From a20fc48eaaaf2fb6517010cbb4c25f26588db3e0 Mon Sep 17 00:00:00 2001 From: justin Date: Fri, 25 Oct 2024 21:55:09 +0100 Subject: [PATCH] Move SSSExtra out of SelectionSections --- ghcidOutput | 16 ++- src/Dodge/Data/HUD.hs | 10 +- src/Dodge/Data/SelectionList.hs | 2 +- src/Dodge/Default/World.hs | 13 +- src/Dodge/DisplayInventory.hs | 9 +- src/Dodge/InputFocus.hs | 74 +++++------ src/Dodge/Update/Input/InGame.hs | 42 +++--- tags | 222 ++++++++++++++++--------------- 8 files changed, 207 insertions(+), 181 deletions(-) diff --git a/ghcidOutput b/ghcidOutput index a6909acad..024bd44f6 100644 --- a/ghcidOutput +++ b/ghcidOutput @@ -1 +1,15 @@ -All good (595 modules, at 21:27:54) +/home/justin/Haskell/loop/src/Dodge/Update/Input/InGame.hs:211:9-11: warning: [-Wunused-matches] + Defined but not used: ‘sss’ + | +211 | sss <- he ^? diSections + | ^^^ +/home/justin/Haskell/loop/src/Dodge/Update/Input/InGame.hs:219:9-11: warning: [-Wunused-matches] + Defined but not used: ‘sss’ + | +219 | sss <- ci ^? ciSections + | ^^^ +/home/justin/Haskell/loop/src/Dodge/InputFocus.hs:14:1-31: warning: [-Wunused-imports] + The import of ‘Dodge.Data.SelectionList’ is redundant + | +14 | import Dodge.Data.SelectionList + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/src/Dodge/Data/HUD.hs b/src/Dodge/Data/HUD.hs index c3d714ec9..fcbb7cfed 100644 --- a/src/Dodge/Data/HUD.hs +++ b/src/Dodge/Data/HUD.hs @@ -5,6 +5,7 @@ module Dodge.Data.HUD where +import Data.IntMap import Control.Lens import Dodge.Data.Button import Dodge.Data.Combine @@ -16,7 +17,8 @@ data HUDElement = DisplayInventory { _subInventory :: SubInventory , _diSections :: SelectionSections () - , _diSelection :: Maybe (Int,Int) + , _diSelection :: Maybe (Int, Int) + , _diFilters :: IntMap (Maybe String) , _diSelectionExtra :: Int } | DisplayCarte @@ -33,8 +35,10 @@ data SubInventory , _nsMouseOver :: Maybe (Int, Int) } | ExamineInventory - | CombineInventory {_ciSections :: SelectionSections CombinableItem - , _ciSelection :: Maybe (Int,Int) + | CombineInventory + { _ciSections :: SelectionSections CombinableItem + , _ciSelection :: Maybe (Int, Int) + , _ciFilters :: IntMap (Maybe String) } | LockedInventory | DisplayTerminal {_termID :: Int} diff --git a/src/Dodge/Data/SelectionList.hs b/src/Dodge/Data/SelectionList.hs index b1a30414c..360c71fe8 100644 --- a/src/Dodge/Data/SelectionList.hs +++ b/src/Dodge/Data/SelectionList.hs @@ -35,7 +35,7 @@ data SelectionList a = SelectionList data SelectionSections a = SelectionSections { _sssSections :: IntMap (SelectionSection a) - , _sssExtra :: SSSExtra +-- , _sssExtra :: SSSExtra } -- note that filters are arbitrary: the sssFilters point to the lower of diff --git a/src/Dodge/Default/World.hs b/src/Dodge/Default/World.hs index 70d0cfa70..fc869ce32 100644 --- a/src/Dodge/Default/World.hs +++ b/src/Dodge/Default/World.hs @@ -168,13 +168,14 @@ defaultDisplayInventory = , _diSections = defaultInvSections , _diSelection = Just (1,0) , _diSelectionExtra = 0 + , _diFilters = IM.fromList [(-1, mempty), (2, mempty)] } -defaultSSSExtra :: SSSExtra -defaultSSSExtra = - SSSExtra - { _sssFilters = IM.fromList [(-1, mempty), (2, mempty)] - } +--defaultSSSExtra :: SSSExtra +--defaultSSSExtra = +-- SSSExtra +-- { _sssFilters = IM.fromList [(-1, mempty), (2, mempty)] +-- } defaultInvSections :: SelectionSections () defaultInvSections = @@ -190,7 +191,7 @@ defaultInvSections = & ssDescriptor .~ "NEARBY" , defaultCOSection ] - , _sssExtra = defaultSSSExtra +-- , _sssExtra = defaultSSSExtra } defaultSS :: SelectionSection a diff --git a/src/Dodge/DisplayInventory.hs b/src/Dodge/DisplayInventory.hs index 5ba16dc3c..1d785e06f 100644 --- a/src/Dodge/DisplayInventory.hs +++ b/src/Dodge/DisplayInventory.hs @@ -61,7 +61,7 @@ updateCombineSections w cfig = IM.singleton 0 (SelectionInfo ["COMBINATIONS FILTER: " ++ str, numfiltitems] 2 True white 0) - mstr = w ^? hud . hudElement . subInventory . ciSections . sssExtra . sssFilters . ix (-1) . _Just + mstr = w ^? hud . hudElement . subInventory . ciFilters . ix (-1) . _Just numfiltitems = " " ++ show (length allcombs - length filtcombs) ++ " FILTERED" regexCombs :: IM.IntMap (SelectionItem ()) -> SelectionItem CombinableItem -> String -> Bool @@ -127,7 +127,7 @@ updateDisplaySections w cfig sss = , (i + 1, itms') ) where - mstr = w ^? hud . hudElement . diSections . sssExtra . sssFilters . ix i . _Just + mstr = w ^? hud . hudElement . diFilters . ix i . _Just filtsis = fromMaybe mempty $ do str <- mstr return $ @@ -247,6 +247,7 @@ listSelectionColorPicture = foldMap f enterCombineInv :: Configuration -> World -> World enterCombineInv cfig w = w & hud . hudElement . subInventory .~ CombineInventory sss selpos + (IM.singleton (-1) Nothing) where cm' = IM.fromDistinctAscList . zip [0 ..] $ combineList w cm @@ -255,10 +256,6 @@ enterCombineInv cfig w = w & hud . hudElement . subInventory .~ CombineInventory sss = SelectionSections { _sssSections = IM.fromDistinctAscList [(-1, filtsection), (0, combsection)] - , _sssExtra = - SSSExtra - { _sssFilters = IM.singleton (-1) Nothing - } } selpos | null cm' = Nothing diff --git a/src/Dodge/InputFocus.hs b/src/Dodge/InputFocus.hs index f4936bbd3..f93cb9429 100644 --- a/src/Dodge/InputFocus.hs +++ b/src/Dodge/InputFocus.hs @@ -5,8 +5,8 @@ module Dodge.InputFocus ( inSubInvRegex, inputFocus, inInputFocus, - regexScope, - regexFocus, +-- regexScope, +-- regexFocus, ) where import Control.Monad @@ -22,40 +22,40 @@ inTermFocus w = fromMaybe False $ do connectionstatus <- w ^? cWorld . lWorld . terminals . ix tmid . tmStatus return $ hasfocus && connectionstatus == TerminalReady -regexScope :: - (Applicative f) => - World -> - Maybe ((SSSExtra -> f SSSExtra) -> HUDElement -> f HUDElement, Int) -regexScope w = case w ^? hud . hudElement . subInventory of - Just NoSubInventory{} -> case he ^? diSelection . _Just of - Just (-1, _) -> di (-1) - Just (0, _) -> di (-1) - Just (2, _) -> di 2 - Just (3, _) -> di 2 - _ -> Nothing - Just CombineInventory{} -> - Just (subInventory . ciSections . sssExtra, -1) - _ -> Nothing - where - di x = Just (diSections . sssExtra, x) - he = w ^. hud . hudElement +--regexScope :: +-- (Applicative f) => +-- World -> +-- Maybe ((SSSExtra -> f SSSExtra) -> HUDElement -> f HUDElement, Int) +--regexScope w = case w ^? hud . hudElement . subInventory of +-- Just NoSubInventory{} -> case he ^? diSelection . _Just of +-- Just (-1, _) -> di (-1) +-- Just (0, _) -> di (-1) +-- Just (2, _) -> di 2 +-- Just (3, _) -> di 2 +-- _ -> Nothing +-- Just CombineInventory{} -> +-- Just (subInventory . ciSections . sssExtra, -1) +-- _ -> Nothing +-- where +-- di x = Just (diSections . sssExtra, x) +-- he = w ^. hud . hudElement -regexFocus :: - (Applicative f) => - World -> - Maybe - ((SSSExtra -> f SSSExtra) -> HUDElement -> f HUDElement, Int) -regexFocus w = case w ^? hud . hudElement . subInventory of - Just NoSubInventory{} -> case he ^? diSelection . _Just of - Just (-1, _) -> di (-1) - Just (2, _) -> di 2 - _ -> Nothing - Just CombineInventory{} -> - Just (subInventory . ciSections . sssExtra, -1) - _ -> Nothing - where - di x = Just (diSections . sssExtra, x) - he = w ^. hud . hudElement +--regexFocus :: +-- (Applicative f) => +-- World -> +-- Maybe +-- ((SSSExtra -> f SSSExtra) -> HUDElement -> f HUDElement, Int) +--regexFocus w = case w ^? hud . hudElement . subInventory of +-- Just NoSubInventory{} -> case he ^? diSelection . _Just of +-- Just (-1, _) -> di (-1) +-- Just (2, _) -> di 2 +-- _ -> Nothing +-- Just CombineInventory{} -> +-- Just (subInventory . ciSections . sssExtra, -1) +-- _ -> Nothing +-- where +-- di x = Just (diSections . sssExtra, x) +-- he = w ^. hud . hudElement inInputFocus :: World -> Bool inInputFocus = isJust . inputFocusI @@ -73,7 +73,7 @@ inputFocus w = case w ^? hud . hudElement . subInventory of Just (2, _) -> di 2 _ -> Nothing Just CombineInventory{} -> case he ^? subInventory . ciSelection . _Just of - Just (-1, _) -> Just $ hud . hudElement . subInventory . ciSections . sssExtra . sssFilters . ix (-1) . _Just + Just (-1, _) -> Just $ hud . hudElement . subInventory . ciFilters . ix (-1) . _Just _ -> Nothing Just DisplayTerminal{_termID = tmid} -> do hasfocus <- w ^? cWorld . lWorld . terminals . ix tmid . tmInput . tiFocus @@ -82,7 +82,7 @@ inputFocus w = case w ^? hud . hudElement . subInventory of return $ cWorld . lWorld . terminals . ix tmid . tmInput . tiText _ -> Nothing where - di x = Just $ hud . hudElement . diSections . sssExtra . sssFilters . ix x . _Just + di x = Just $ hud . hudElement . diFilters . ix x . _Just he = w ^. hud . hudElement inTopRegex :: Int -> World -> Bool diff --git a/src/Dodge/Update/Input/InGame.hs b/src/Dodge/Update/Input/InGame.hs index 25eb287f9..af33448f0 100644 --- a/src/Dodge/Update/Input/InGame.hs +++ b/src/Dodge/Update/Input/InGame.hs @@ -69,17 +69,21 @@ updateUseInputInGame u = case u ^. uvWorld . hud . hudElement of docombineregexinput ci = fromMaybe ci $ do sss <- ci ^? ciSections msel <- ci ^? ciSelection - let (sss', msel') = doRegexInput (u ^. uvWorld . input) (-1) sss msel + filts <- ci ^? ciFilters + let (sss', msel',filts') = doRegexInput (u ^. uvWorld . input) (-1) sss msel filts return $ ci & ciSections .~ sss' & ciSelection .~ msel' + & ciFilters .~ filts' dodisplayregexinput x di = fromMaybe di $ do sss <- di ^? diSections msel <- di ^? diSelection - let (sss', msel') = doRegexInput (u ^. uvWorld . input) x sss msel + filts <- di ^? diFilters + let (sss', msel',filts') = doRegexInput (u ^. uvWorld . input) x sss msel filts return $ di & diSections .~ sss' & diSelection .~ msel' + & diFilters .~ filts' updatePressedButtonsCarte :: World -> World updatePressedButtonsCarte w = updatePressedButtonsCarte' (_mouseButtons (_input w)) w @@ -154,19 +158,22 @@ doRegexInput :: Int -> SelectionSections a -> Maybe (Int, Int) -> - (SelectionSections a, Maybe (Int, Int)) -doRegexInput inp i sss msel + IM.IntMap (Maybe String) -> + (SelectionSections a, Maybe (Int, Int), IM.IntMap (Maybe String)) +doRegexInput inp i sss msel filts | backspacetonothing || escapekey = endregex i 0 | endkeys || endmouse = endregex (i + 1) (j -1) | otherwise = - ( sss & doTextInputOver inp (sssExtra . sssFilters . ix i . _Just) + ( sss , msel + , filts & doTextInputOver inp (ix i . _Just) ) where endregex a b = - ( sss & sssExtra . sssFilters . ix i .~ Nothing + ( sss & sssSections . ix i . ssItems .~ mempty , msel & ssSetCursor (ssLookupDown a b) sss + , filts & ix i .~ Nothing ) j = fromMaybe 0 $ do itms <- sss ^? sssSections . ix (i + 1) . ssItems @@ -178,7 +185,7 @@ doRegexInput inp i sss msel [ScancodeReturn, ScancodeSlash] endmouse = (Just 0 ==) $ inp ^? mouseButtons . ix ButtonLeft backspacetonothing = - sss ^? sssExtra . sssFilters . ix i . _Just == Just "" + filts ^? ix i . _Just == Just "" && ScancodeBackspace `M.lookup` pkeys == Just InitialPress pkeys = inp ^. pressedKeys @@ -202,20 +209,20 @@ updateBackspaceRegex w = case di ^? subInventory of return $ i == a || i == b trybackspace x he = fromMaybe he $ do sss <- he ^? diSections - str <- sss ^? sssExtra . sssFilters . ix x . _Just + str <- he ^? diFilters . ix x . _Just return $ case str of (_ : _) -> - he & diSections . sssExtra . sssFilters . ix x . _Just %~ init + he & diFilters . ix x . _Just %~ init & diSelection ?~ (x, 0) - [] -> he & diSections . sssExtra . sssFilters . ix x .~ Nothing + [] -> he & diFilters . ix x .~ Nothing trybackspace' x ci = fromMaybe ci $ do sss <- ci ^? ciSections - str <- sss ^? sssExtra . sssFilters . ix x . _Just + str <- ci ^? ciFilters . ix x . _Just return $ case str of (_ : _) -> - ci & ciSections . sssExtra . sssFilters . ix x . _Just %~ init + ci & ciFilters . ix x . _Just %~ init & ciSelection ?~ (x, 0) - [] -> ci & ciSections . sssExtra . sssFilters . ix x .~ Nothing + [] -> ci & ciFilters . ix x .~ Nothing di = w ^. hud . hudElement updateEnterRegex :: World -> World @@ -223,13 +230,13 @@ updateEnterRegex w = case w ^? hud . hudElement . subInventory of Just NoSubInventory{} | secfocus (-1) 0 -> w & hud . hudElement . diSelection ?~ (-1, 0) - & hud . hudElement . diSections %~ enterregex (-1) + & hud . hudElement . diFilters %~ enterregex (-1) Just NoSubInventory{} | secfocus 2 3 -> w & hud . hudElement . diSelection ?~ (2, 0) - & hud . hudElement . diSections %~ enterregex 2 + & hud . hudElement . diFilters %~ enterregex 2 Just CombineInventory{} -> - w & hud . hudElement . subInventory . ciSections %~ enterregex (-1) + w & hud . hudElement . subInventory . ciFilters %~ enterregex (-1) & hud . hudElement . subInventory . ciSelection ?~ (-1, 0) _ -> w where @@ -237,7 +244,7 @@ updateEnterRegex w = case w ^? hud . hudElement . subInventory of secfocus a b = fromMaybe False $ do i <- di ^? diSelection . _Just . _1 return $ i == a || i == b - enterregex x = sssExtra . sssFilters . ix x %~ (<|> Just "") + enterregex x = ix x %~ (<|> Just "") pauseGame :: Universe -> Universe pauseGame u = u & uvScreenLayers .~ [pauseMenu u] @@ -275,6 +282,7 @@ toggleMap u = case u ^. uvWorld . hud . hudElement of , _diSections = defaultInvSections , _diSelection = Nothing , _diSelectionExtra = 0 + , _diFilters = IM.fromList [(-1, mempty), (2, mempty)] } _ -> u & uvWorld . hud . hudElement .~ DisplayCarte diff --git a/tags b/tags index 434c21201..ed75824d5 100644 --- a/tags +++ b/tags @@ -334,7 +334,7 @@ Combinations src/Dodge/Combine/Combinations.hs 3;" m Combine src/Dodge/Combine.hs 2;" m Combine src/Dodge/Data/Combine.hs 2;" m Combine src/Dodge/Data/Item/Combine.hs 6;" m -CombineInventory src/Dodge/Data/HUD.hs 36;" C +CombineInventory src/Dodge/Data/HUD.hs 38;" C CombineInventoryChange src/Dodge/Data/World.hs 34;" C Common src/Dodge/Zoning/Common.hs 1;" m Compile src/Shader/Compile.hs 1;" m @@ -511,10 +511,10 @@ Detector src/Dodge/Data/Item/Combine.hs 168;" t Dirt src/Dodge/Data/Material.hs 11;" C DisasterType src/Dodge/Data/Scenario.hs 24;" t Display src/Dodge/Item/Display.hs 1;" m -DisplayCarte src/Dodge/Data/HUD.hs 22;" C -DisplayInventory src/Dodge/Data/HUD.hs 16;" C -DisplayInventory src/Dodge/DisplayInventory.hs 5;" m -DisplayTerminal src/Dodge/Data/HUD.hs 40;" C +DisplayCarte src/Dodge/Data/HUD.hs 24;" C +DisplayInventory src/Dodge/Data/HUD.hs 17;" C +DisplayInventory src/Dodge/DisplayInventory.hs 2;" m +DisplayTerminal src/Dodge/Data/HUD.hs 44;" C Distortion src/Dodge/Data/Distortion.hs 12;" t Distortion src/Dodge/Data/Distortion.hs 6;" m Distortion src/Dodge/Distortion.hs 1;" m @@ -659,7 +659,7 @@ Euse src/Dodge/Data/Item/HeldUse.hs 20;" t Euse src/Dodge/Euse.hs 1;" m Event src/Dodge/Button/Event.hs 1;" m Event src/Dodge/Event.hs 14;" m -ExamineInventory src/Dodge/Data/HUD.hs 35;" C +ExamineInventory src/Dodge/Data/HUD.hs 37;" C Explore src/Dodge/Data/Scenario.hs 4;" C Explosion src/Dodge/Data/SoundOrigin.hs 36;" C Explosion src/Dodge/WorldEvent/Explosion.hs 4;" m @@ -817,10 +817,10 @@ HELD src/Dodge/Data/Item/Combine.hs 16;" C HELDDETECTOR src/Dodge/Data/Item/Combine.hs 162;" C HOMINGMODULE src/Dodge/Data/Item/Combine.hs 82;" C HOSE src/Dodge/Data/Item/Combine.hs 32;" C -HUD src/Dodge/Data/HUD.hs 44;" t +HUD src/Dodge/Data/HUD.hs 48;" t HUD src/Dodge/Data/HUD.hs 6;" m HUD src/Dodge/Render/HUD.hs 3;" m -HUDElement src/Dodge/Data/HUD.hs 15;" t +HUDElement src/Dodge/Data/HUD.hs 16;" t HalfRes src/Dodge/Data/Config.hs 95;" C Hammer src/Dodge/Data/Hammer.hs 6;" m Hammer src/Dodge/Hammer.hs 1;" m @@ -1053,7 +1053,7 @@ LinkDecoration src/Dodge/Debug/LinkDecoration.hs 1;" m LinkTest src/Dodge/Data/ComposedItem.hs 56;" t LinkUpdate src/Dodge/Data/ComposedItem.hs 61;" t List src/Dodge/Combine/List.hs 1;" m -List src/Dodge/Render/List.hs 1;" m +List src/Dodge/Render/List.hs 2;" m ListDisplayParams src/Dodge/Data/SelectionList.hs 18;" t ListDisplayParams src/Dodge/ListDisplayParams.hs 1;" m ListHelp src/ListHelp.hs 1;" m @@ -1073,7 +1073,7 @@ Location src/Dodge/Item/Location.hs 1;" m LocationLDT src/Dodge/Data/DoubleTree.hs 62;" t Lock src/Dodge/Inventory/Lock.hs 1;" m LockAndKey src/Dodge/LockAndKey.hs 1;" m -LockedInventory src/Dodge/Data/HUD.hs 39;" C +LockedInventory src/Dodge/Data/HUD.hs 43;" C LoneWolf src/Dodge/Data/Creature/State.hs 46;" C LongAI src/Dodge/Data/Creature/Misc.hs 60;" C LongDoor src/Dodge/Room/LongDoor.hs 2;" m @@ -1185,10 +1185,10 @@ MountedLS src/Dodge/Data/MountedObject.hs 12;" C MountedObject src/Dodge/Data/MountedObject.hs 11;" t MountedObject src/Dodge/Data/MountedObject.hs 6;" m MountedProp src/Dodge/Data/MountedObject.hs 13;" C -MouseInvDrag src/Dodge/Data/HUD.hs 27;" C -MouseInvNothing src/Dodge/Data/HUD.hs 28;" C -MouseInvSelect src/Dodge/Data/HUD.hs 25;" C -MouseInventorySelection src/Dodge/Data/HUD.hs 24;" t +MouseInvDrag src/Dodge/Data/HUD.hs 29;" C +MouseInvNothing src/Dodge/Data/HUD.hs 30;" C +MouseInvSelect src/Dodge/Data/HUD.hs 27;" C +MouseInventorySelection src/Dodge/Data/HUD.hs 26;" t Mouse_position src/Dodge/Data/Config.hs 73;" C Move src/Dodge/Data/ActionPlan.hs 28;" C Move src/Dodge/Wall/Move.hs 3;" m @@ -1264,7 +1264,7 @@ NoRightButtonOptions src/Dodge/Data/RightButtonOptions.hs 14;" C NoRoomClipBoundaries src/Dodge/Data/Config.hs 105;" C NoShadowFidelity src/Shape/Data.hs 25;" C NoShadows src/Dodge/Data/Config.hs 101;" C -NoSubInventory src/Dodge/Data/HUD.hs 31;" C +NoSubInventory src/Dodge/Data/HUD.hs 33;" C NoWorldEffect src/Dodge/Data/WorldEffect.hs 24;" C Noclip src/Dodge/Data/Config.hs 70;" C NodeMTree src/Dodge/Tree/Compose/Data.hs 9;" C @@ -1809,7 +1809,7 @@ Strategy src/Dodge/Creature/Strategy.hs 1;" m StrategyActions src/Dodge/Data/ActionPlan.hs 188;" C StrictHelp src/StrictHelp.hs 1;" m StringHelp src/StringHelp.hs 1;" m -SubInventory src/Dodge/Data/HUD.hs 30;" t +SubInventory src/Dodge/Data/HUD.hs 32;" t Superfluous src/Shape/Data.hs 38;" C Surface src/Shape/Data.hs 41;" t Survive src/Dodge/Data/Scenario.hs 5;" C @@ -2274,16 +2274,17 @@ _camViewDistance src/Dodge/Data/Camera.hs 30;" f _camViewFrom src/Dodge/Data/Camera.hs 29;" f _camZoom src/Dodge/Data/Camera.hs 26;" f _carriage src/Dodge/Data/Creature/Stance.hs 14;" f -_carteCenter src/Dodge/Data/HUD.hs 46;" f -_carteRot src/Dodge/Data/HUD.hs 48;" f -_carteZoom src/Dodge/Data/HUD.hs 47;" f +_carteCenter src/Dodge/Data/HUD.hs 50;" f +_carteRot src/Dodge/Data/HUD.hs 52;" f +_carteZoom src/Dodge/Data/HUD.hs 51;" f _ceSideEffect src/Dodge/Data/Universe.hs 62;" f _ceString src/Dodge/Data/Universe.hs 63;" f +_ciFilters src/Dodge/Data/HUD.hs 41;" f _ciInfo src/Dodge/Data/Combine.hs 8;" f _ciInvIDs src/Dodge/Data/Combine.hs 6;" f _ciItem src/Dodge/Data/Combine.hs 7;" f -_ciSections src/Dodge/Data/HUD.hs 36;" f -_ciSelection src/Dodge/Data/HUD.hs 37;" f +_ciSections src/Dodge/Data/HUD.hs 39;" f +_ciSelection src/Dodge/Data/HUD.hs 40;" f _cigType src/Dodge/Data/Camera.hs 19;" f _clAlt src/Dodge/Data/Cloud.hs 23;" f _clPict src/Dodge/Data/Cloud.hs 21;" f @@ -2307,7 +2308,7 @@ _cldtUp src/Dodge/Data/DoubleTree.hs 46;" f _cldtUp src/Dodge/Data/DoubleTree.hs 54;" f _clickPos src/Dodge/Data/Input.hs 26;" f _clickWorldPos src/Dodge/Data/Input.hs 28;" f -_closeObjects src/Dodge/Data/HUD.hs 49;" f +_closeObjects src/Dodge/Data/HUD.hs 53;" f _cloudEBO src/Data/Preload/Render.hs 49;" f _cloudShader src/Data/Preload/Render.hs 48;" f _cloudVBO src/Data/Preload/Render.hs 47;" f @@ -2418,9 +2419,10 @@ _debug_view_clip_bounds src/Dodge/Data/Config.hs 56;" f _decorations src/Dodge/Data/LWorld.hs 134;" f _delayedEvents src/Dodge/Data/LWorld.hs 131;" f _dexterity src/Dodge/Data/Creature/Misc.hs 22;" f -_diSections src/Dodge/Data/HUD.hs 18;" f -_diSelection src/Dodge/Data/HUD.hs 19;" f -_diSelectionExtra src/Dodge/Data/HUD.hs 20;" f +_diFilters src/Dodge/Data/HUD.hs 21;" f +_diSections src/Dodge/Data/HUD.hs 19;" f +_diSelection src/Dodge/Data/HUD.hs 20;" f +_diSelectionExtra src/Dodge/Data/HUD.hs 22;" f _dimAttachPos src/Dodge/Data/Item/Misc.hs 16;" f _dimCenter src/Dodge/Data/Item/Misc.hs 15;" f _dimRad src/Dodge/Data/Item/Misc.hs 14;" f @@ -2589,7 +2591,7 @@ _heldPos src/Dodge/Data/Input.hs 27;" f _heldTriggerType src/Dodge/Data/Item/Use.hs 42;" f _heldWorldPos src/Dodge/Data/Input.hs 29;" f _hud src/Dodge/Data/World.hs 47;" f -_hudElement src/Dodge/Data/HUD.hs 45;" f +_hudElement src/Dodge/Data/HUD.hs 49;" f _humanoidAI src/Dodge/Data/Creature/Misc.hs 69;" f _iaLoaded src/Dodge/Data/Item/Use/Consumption.hs 22;" f _iaMax src/Dodge/Data/Item/Use/Consumption.hs 21;" f @@ -2742,8 +2744,8 @@ _mgField src/Dodge/Data/Magnet.hs 25;" f _mgID src/Dodge/Data/Magnet.hs 22;" f _mgPos src/Dodge/Data/Magnet.hs 24;" f _mgUpdate src/Dodge/Data/Magnet.hs 23;" f -_misMaybeEnd src/Dodge/Data/HUD.hs 26;" f -_misSelStart src/Dodge/Data/HUD.hs 26;" f +_misMaybeEnd src/Dodge/Data/HUD.hs 28;" f +_misSelStart src/Dodge/Data/HUD.hs 28;" f _moEff src/Dodge/Data/Universe.hs 101;" f _moEff1 src/Dodge/Data/Universe.hs 105;" f _moEff2 src/Dodge/Data/Universe.hs 106;" f @@ -2775,8 +2777,8 @@ _newArcStep src/Dodge/Data/Item/Params.hs 25;" f _nodeMetaTree src/Dodge/Tree/Compose/Data.hs 9;" f _nodeTree src/Dodge/Tree/Compose/Data.hs 9;" f _nodesSearched src/Dodge/Data/Creature/Memory.hs 15;" f -_nsMouseOver src/Dodge/Data/HUD.hs 33;" f -_nsSelected src/Dodge/Data/HUD.hs 32;" f +_nsMouseOver src/Dodge/Data/HUD.hs 35;" f +_nsSelected src/Dodge/Data/HUD.hs 34;" f _numLinkEW src/Dodge/Data/Room.hs 33;" f _numLinkNS src/Dodge/Data/Room.hs 34;" f _numberFloorVerxs src/Dodge/Data/CWorld.hs 32;" f @@ -3067,13 +3069,12 @@ _ssItems src/Dodge/Data/SelectionList.hs 55;" f _ssMinSize src/Dodge/Data/SelectionList.hs 57;" f _ssOffset src/Dodge/Data/SelectionList.hs 58;" f _ssShownItems src/Dodge/Data/SelectionList.hs 59;" f -_sssExtra src/Dodge/Data/SelectionList.hs 38;" f _sssFilters src/Dodge/Data/SelectionList.hs 45;" f _sssSections src/Dodge/Data/SelectionList.hs 37;" f _strength src/Dodge/Data/Creature/Misc.hs 21;" f _strideAmount src/Dodge/Data/Creature/Stance.hs 22;" f _strideLength src/Dodge/Data/Creature/Stance.hs 16;" f -_subInventory src/Dodge/Data/HUD.hs 17;" f +_subInventory src/Dodge/Data/HUD.hs 18;" f _swColor src/Dodge/Data/Shockwave.hs 18;" f _swDam src/Dodge/Data/Shockwave.hs 23;" f _swDirection src/Dodge/Data/Shockwave.hs 19;" f @@ -3100,7 +3101,7 @@ _tcEffect src/Dodge/Data/Terminal.hs 118;" f _tcHelp src/Dodge/Data/Terminal.hs 117;" f _tcString src/Dodge/Data/Terminal.hs 115;" f _tempLightSources src/Dodge/Data/LWorld.hs 138;" f -_termID src/Dodge/Data/HUD.hs 40;" f +_termID src/Dodge/Data/HUD.hs 44;" f _terminals src/Dodge/Data/LWorld.hs 123;" f _teslaArcs src/Dodge/Data/LWorld.hs 113;" f _testFloat src/Dodge/Data/World.hs 45;" f @@ -3349,7 +3350,7 @@ ammoMagSPic src/Dodge/Item/Draw/SPic.hs 45;" f amr src/Dodge/Item/Held/Rod.hs 46;" f analyser src/Dodge/Placement/Instance/Analyser.hs 12;" f analyserByDoor src/Dodge/Room/LasTurret.hs 75;" f -andOrRegex src/Dodge/DisplayInventory.hs 79;" f +andOrRegex src/Dodge/DisplayInventory.hs 77;" f angleBetween src/Geometry.hs 145;" f angleVV src/Geometry/Vector.hs 57;" f angleVV3 src/Geometry/Vector3D.hs 122;" f @@ -3768,9 +3769,9 @@ cutWallsWithPoints src/Dodge/LevelGen/StaticWalls.hs 112;" f cyan src/Color.hs 18;" f cycleDownEnum src/Dodge/Menu/OptionType.hs 27;" f cycleEnum src/Dodge/Menu/OptionType.hs 22;" f -cycleGT src/IntMapHelp.hs 95;" f +cycleGT src/IntMapHelp.hs 93;" f cycleL src/DoubleStack.hs 28;" f -cycleLT src/IntMapHelp.hs 98;" f +cycleLT src/IntMapHelp.hs 96;" f cycleOptions src/Dodge/Menu/Option.hs 84;" f cycleR src/DoubleStack.hs 32;" f cylinderIndices src/Shader/Poke.hs 374;" f @@ -4018,7 +4019,7 @@ doPropUpdates src/Dodge/Prop/Update.hs 36;" f doQuickload src/Dodge/Save.hs 82;" f doQuicksave src/Dodge/Save.hs 77;" f doRandImpulse src/Dodge/RandImpulse.hs 7;" f -doRegexInput src/Dodge/Update/Input/InGame.hs 151;" f +doRegexInput src/Dodge/Update/Input/InGame.hs 152;" f doRoomInPlacements src/Dodge/Layout.hs 97;" f doRoomOutPlacements src/Dodge/Layout.hs 107;" f doRoomPlacements src/Dodge/Layout.hs 122;" f @@ -4079,7 +4080,7 @@ drawCreature src/Dodge/Render/ShapePicture.hs 82;" f drawCreatureDisplayTexts src/Dodge/Debug/Picture.hs 165;" f drawCross src/Dodge/Render/Label.hs 24;" f drawCrossCol src/Dodge/Render/Label.hs 21;" f -drawCursorAt src/Dodge/Render/List.hs 47;" f +drawCursorAt src/Dodge/Render/List.hs 48;" f drawDDATest src/Dodge/Debug/Picture.hs 256;" f drawDIMouseOver src/Dodge/Render/HUD.hs 80;" f drawDISelections src/Dodge/Render/HUD.hs 100;" f @@ -4109,8 +4110,8 @@ drawLightSource src/Dodge/LightSource/Draw.hs 7;" f drawLinearShockwave src/Dodge/LinearShockwave/Draw.hs 10;" f drawList src/Dodge/Render/List.hs 189;" f drawListElement src/Dodge/Render/List.hs 169;" f -drawListYgapScaleYoff src/Dodge/Render/List.hs 75;" f -drawListYoff src/Dodge/Render/List.hs 72;" f +drawListYgapScaleYoff src/Dodge/Render/List.hs 76;" f +drawListYoff src/Dodge/Render/List.hs 73;" f drawMachine src/Dodge/Machine/Draw.hs 14;" f drawMapWall src/Dodge/Render/HUD/Carte.hs 33;" f drawMenuOrHUD src/Dodge/Render/Picture.hs 53;" f @@ -4133,7 +4134,7 @@ drawRBOptions src/Dodge/Render/HUD.hs 184;" f drawRadarSweep src/Dodge/RadarSweep/Draw.hs 7;" f drawRemoteShell src/Dodge/Projectile/Draw.hs 30;" f drawSSCursor src/Dodge/SelectionSections/Draw.hs 26;" f -drawSelectionList src/Dodge/Render/List.hs 28;" f +drawSelectionList src/Dodge/Render/List.hs 29;" f drawSelectionSections src/Dodge/SelectionSections/Draw.hs 13;" f drawSensor src/Dodge/Machine/Draw.hs 21;" f drawShader src/Shader.hs 27;" f @@ -4192,7 +4193,7 @@ encircle src/Dodge/Creature/Boid.hs 115;" f encircleCloseP src/Dodge/Creature/Boid.hs 35;" f encircleDistP src/Dodge/Creature/Boid.hs 21;" f encircleP src/Dodge/Creature/Boid.hs 27;" f -enterCombineInv src/Dodge/DisplayInventory.hs 243;" f +enterCombineInv src/Dodge/DisplayInventory.hs 248;" f eqConstr src/SameConstr.hs 17;" f eqPosText src/Dodge/Equipment/Text.hs 6;" f equipAllocString src/Dodge/Render/HUD.hs 242;" f @@ -4245,7 +4246,7 @@ findBlips src/Dodge/RadarSweep.hs 44;" f findBoundDists src/Dodge/Update/Camera.hs 235;" f findClosePoint src/Dodge/LevelGen/StaticWalls.hs 155;" f findClosePoint src/Dodge/LevelGen/StaticWalls/Deprecated.hs 74;" f -findIndex src/IntMapHelp.hs 87;" f +findIndex src/IntMapHelp.hs 85;" f findItemSlot src/Dodge/Inventory/CheckSlots.hs 26;" f findReverseEdge src/Polyhedra.hs 50;" f findReverseEdgeList src/Polyhedra.hs 57;" f @@ -4360,7 +4361,7 @@ getDamageCoding src/Dodge/Terminal.hs 175;" f getDistortions src/Dodge/Render.hs 382;" f getEquipmentAllocation src/Dodge/Inventory/RBList.hs 47;" f getItem src/Dodge/Item/Location.hs 15;" f -getLDPWidth src/Dodge/Render/List.hs 67;" f +getLDPWidth src/Dodge/Render/List.hs 68;" f getLaserColor src/Dodge/HeldUse.hs 196;" f getLaserDamage src/Dodge/HeldUse.hs 193;" f getLaserPhaseV src/Dodge/HeldUse.hs 190;" f @@ -4484,14 +4485,14 @@ icosohedronFaces src/Polyhedra/Geodesic.hs 19;" f ifConfigWallRotate src/Dodge/Update/Camera.hs 171;" f ildtPropagate src/Dodge/DoubleTree.hs 57;" f impulsiveAIBefore src/Dodge/Creature/Impulse.hs 22;" f -inCloseRegex src/Dodge/InputFocus.hs 99;" f -inInputFocus src/Dodge/InputFocus.hs 63;" f -inInvRegex src/Dodge/InputFocus.hs 96;" f +inCloseRegex src/Dodge/InputFocus.hs 96;" f +inInputFocus src/Dodge/InputFocus.hs 60;" f +inInvRegex src/Dodge/InputFocus.hs 93;" f inLink src/Dodge/RoomLink.hs 113;" f inSegArea src/Geometry/Intersect.hs 298;" f -inSubInvRegex src/Dodge/InputFocus.hs 102;" f -inTermFocus src/Dodge/InputFocus.hs 20;" f -inTopRegex src/Dodge/InputFocus.hs 91;" f +inSubInvRegex src/Dodge/InputFocus.hs 99;" f +inTermFocus src/Dodge/InputFocus.hs 18;" f +inTopRegex src/Dodge/InputFocus.hs 88;" f incBallAt src/Dodge/EnergyBall.hs 54;" f incidenceToFunction src/Dodge/Graph.hs 26;" f indefiniteExceptions src/StringHelp.hs 29;" f @@ -4518,19 +4519,19 @@ initializeOptionMenu src/Dodge/Menu/Option.hs 14;" f initializeOptionMenuBO src/Dodge/Menu/Option.hs 29;" f initializeTexture2D src/Framebuffer/Update.hs 221;" f inorderNumberTree src/TreeHelp.hs 189;" f -inputFocus src/Dodge/InputFocus.hs 69;" f -inputFocusI src/Dodge/InputFocus.hs 66;" f +inputFocus src/Dodge/InputFocus.hs 66;" f +inputFocusI src/Dodge/InputFocus.hs 63;" f insertAt src/Padding.hs 60;" f insertIMInZone src/Dodge/Base.hs 59;" f insertInTrie src/SimpleTrie.hs 23;" f -insertNewKey src/IntMapHelp.hs 66;" f +insertNewKey src/IntMapHelp.hs 64;" f insertOneS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 368;" f insertOver src/ListHelp.hs 47;" f insertS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 318;" f insertWall src/Dodge/Placement/PlaceSpot/Block.hs 122;" f insertWallInZones src/Dodge/Wall/Zone.hs 20;" f insertWalls src/Dodge/Placement/PlaceSpot/Block.hs 117;" f -insertWithNewKeys src/IntMapHelp.hs 72;" f +insertWithNewKeys src/IntMapHelp.hs 70;" f internalCreatureUpdate src/Dodge/Creature/State.hs 108;" f interpWith src/Dodge/Creature/Boid.hs 10;" f intersectCircSeg src/Geometry/Intersect.hs 303;" f @@ -4569,14 +4570,14 @@ invTrees' src/Dodge/Item/Grammar.hs 199;" f inventoryExtra src/Dodge/Render/HUD.hs 251;" f inventoryExtraH src/Dodge/Render/HUD.hs 262;" f inventoryX src/Dodge/Creature.hs 115;" f -inverseSelBoundaryDown src/Dodge/SelectionSections.hs 211;" f -inverseSelBoundaryUp src/Dodge/SelectionSections.hs 198;" f -inverseSelNumPos src/Dodge/SelectionSections.hs 189;" f -inverseSelSecYint src/Dodge/SelectionSections.hs 159;" f -inverseSelSecYintXPosCheck src/Dodge/SelectionSections.hs 170;" f +inverseSelBoundaryDown src/Dodge/SelectionSections.hs 208;" f +inverseSelBoundaryUp src/Dodge/SelectionSections.hs 195;" f +inverseSelNumPos src/Dodge/SelectionSections.hs 186;" f +inverseSelSecYint src/Dodge/SelectionSections.hs 156;" f +inverseSelSecYintXPosCheck src/Dodge/SelectionSections.hs 167;" f inverseShockwaveAt src/Dodge/WorldEvent/Shockwave.hs 43;" f invertEncircleDistP src/Dodge/Creature/Boid.hs 13;" f -invertIntMap src/IntMapHelp.hs 101;" f +invertIntMap src/IntMapHelp.hs 99;" f invertIntMap src/Multiset.hs 67;" f invertInventoryToMap src/Dodge/Combine.hs 54;" f invisibleChaseCrit src/Dodge/Creature/ChaseCrit.hs 25;" f @@ -4725,7 +4726,7 @@ listConfig src/Dodge/Menu.hs 199;" f listControls src/Dodge/Menu.hs 212;" f listCursorChooseBorderScale src/Dodge/Render/List.hs 117;" f listGuard src/Dodge/Creature/ReaderUpdate.hs 188;" f -listSelectionColorPicture src/Dodge/DisplayInventory.hs 235;" f +listSelectionColorPicture src/Dodge/DisplayInventory.hs 240;" f litCorridor90 src/Dodge/Room/RoadBlock.hs 26;" f llleft src/Dodge/Item/Grammar.hs 105;" f llright src/Dodge/Item/Grammar.hs 109;" f @@ -4821,7 +4822,7 @@ makePathBetween src/Dodge/Path.hs 35;" f makePathBetweenPs src/Dodge/Path.hs 54;" f makePoisonExplosionAt src/Dodge/WorldEvent/Explosion.hs 26;" f makeRect src/Grid.hs 82;" f -makeSelectionListPictures src/Dodge/Render/List.hs 42;" f +makeSelectionListPictures src/Dodge/Render/List.hs 43;" f makeShaderEBO src/Shader/Compile.hs 53;" f makeShaderProgram src/Shader/Compile.hs 241;" f makeShaderUsingVAO src/Shader/Compile.hs 146;" f @@ -4857,7 +4858,7 @@ maybeClearPath src/Dodge/Block.hs 77;" f maybeClearPaths src/Dodge/Block.hs 74;" f maybeDestroyBlock src/Dodge/Wall/Damage.hs 26;" f maybeDestroyDoor src/Dodge/Wall/Damage.hs 31;" f -maybeExitCombine src/Dodge/Update/Input/InGame.hs 301;" f +maybeExitCombine src/Dodge/Update/Input/InGame.hs 299;" f maybeOpenTerminal src/Dodge/Update.hs 116;" f maybeReadFile src/Dodge/LoadSeed.hs 10;" f maybeTakeOne src/RandomHelp.hs 111;" f @@ -5000,7 +5001,7 @@ nearRect src/Dodge/Zoning/Common.hs 16;" f nearSeg src/Dodge/Zoning/Common.hs 12;" f newExtraAwareness src/Dodge/Creature/Perception.hs 137;" f newHotkey src/Dodge/Hotkey.hs 18;" f -newKey src/IntMapHelp.hs 62;" f +newKey src/IntMapHelp.hs 60;" f newSounds src/Dodge/Creature/Perception.hs 170;" f newTextureFramebuffer src/Framebuffer/Setup.hs 16;" f noPic src/ShapePicture.hs 25;" f @@ -5040,7 +5041,7 @@ optionScreenUpdate src/Dodge/Update/Input/ScreenLayer.hs 39;" f optionValueOffset src/Dodge/Menu/Option.hs 106;" f optionsOptions src/Dodge/Menu.hs 108;" f optionsToSelections src/Dodge/Menu/Option.hs 59;" f -orRegex src/Dodge/DisplayInventory.hs 82;" f +orRegex src/Dodge/DisplayInventory.hs 80;" f orange src/Color.hs 25;" f orderAround3 src/Geometry/Vector3D.hs 105;" f orderAroundFirst src/Geometry/Polygon.hs 82;" f @@ -5086,7 +5087,7 @@ parseNum src/Dodge/Debug/Terminal.hs 73;" f pathConnected src/Dodge/Room/CheckConsistency.hs 14;" f pathEdgeObstructed src/Dodge/Path.hs 43;" f pauseAndFloatCam src/Dodge/Camera.hs 10;" f -pauseGame src/Dodge/Update/Input/InGame.hs 244;" f +pauseGame src/Dodge/Update/Input/InGame.hs 242;" f pauseMenu src/Dodge/Menu.hs 53;" f pauseMenuOptions src/Dodge/Menu.hs 58;" f pauseSound src/Dodge/SoundLogic.hs 41;" f @@ -5232,7 +5233,7 @@ polysToPic src/Polyhedra.hs 130;" f popScreen src/Dodge/Menu/PushPop.hs 6;" f posEventEffect src/Dodge/PosEvent.hs 16;" f posRms src/Dodge/Tree/Shift.hs 44;" f -posSelSecYint src/Dodge/SelectionSections.hs 140;" f +posSelSecYint src/Dodge/SelectionSections.hs 137;" f positionRoomsFromTree src/Dodge/Tree/Shift.hs 35;" f postGenerationProcessing src/Dodge/LevelGen.hs 33;" f postUniverseLoadSideEffect src/Dodge/WorldLoad.hs 11;" f @@ -5371,11 +5372,12 @@ reflectInParam src/Geometry.hs 233;" f reflectLaserAlong src/Dodge/Item/Weapon/LaserPath.hs 13;" f refract src/Dodge/Item/Weapon/LaserPath.hs 40;" f refreshOptionsSelectionList src/Dodge/Menu/Option.hs 34;" f -regexCombs src/Dodge/DisplayInventory.hs 69;" f -regexFocus src/Dodge/InputFocus.hs 46;" f +regexCombs src/Dodge/DisplayInventory.hs 67;" f +regexFocus src/Dodge/InputFocus.hs 43;" f regexIn src/Regex.hs 4;" f +regexList src/Dodge/DisplayInventory.hs 291;" f regexList src/Regex.hs 7;" f -regexScope src/Dodge/InputFocus.hs 27;" f +regexScope src/Dodge/InputFocus.hs 25;" f reload1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 428;" f reloadLevelStart src/Dodge/Save.hs 71;" f reloadS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 426;" f @@ -5502,7 +5504,7 @@ safeMinimumOnMaybe src/FoldableHelp.hs 67;" f safeMinimumOnMaybeF src/FoldableHelp.hs 39;" f safeMinimumOnMaybeL src/FoldableHelp.hs 57;" f safeNormalizeV src/Geometry/Vector.hs 153;" f -safeSwapKeys src/IntMapHelp.hs 79;" f +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 @@ -5529,7 +5531,7 @@ scrollCommandStrings src/Dodge/Update/Scroll.hs 137;" f scrollCommands src/Dodge/Update/Scroll.hs 134;" f scrollDebugInfoInt src/Dodge/Debug.hs 47;" f scrollRBOption src/Dodge/Update/Scroll.hs 111;" f -scrollSelectionSections src/Dodge/SelectionSections.hs 27;" f +scrollSelectionSections src/Dodge/SelectionSections.hs 28;" f scrollTimeBack src/Dodge/Update.hs 200;" f scrollTimeForward src/Dodge/Update.hs 220;" f scrollWatch src/Dodge/Item/Weapon/Utility.hs 30;" f @@ -5548,11 +5550,11 @@ seedStartOptions src/Dodge/Menu.hs 82;" f segOnCirc src/Geometry.hs 116;" f selNumPos src/Dodge/Render/HUD.hs 403;" f selNumPosCardinal src/Dodge/Render/HUD.hs 426;" f -selSecDrawCursor src/Dodge/Render/List.hs 106;" f -selSecDrawCursorAt src/Dodge/Render/List.hs 84;" f +selSecDrawCursor src/Dodge/Render/List.hs 107;" f +selSecDrawCursorAt src/Dodge/Render/List.hs 85;" f selSecSelCol src/Dodge/Render/HUD.hs 449;" f -selSecSelSize src/Dodge/SelectionSections.hs 136;" f -selSecYint src/Dodge/SelectionSections.hs 145;" f +selSecSelSize src/Dodge/SelectionSections.hs 133;" f +selSecYint src/Dodge/SelectionSections.hs 142;" f selectCreatureDebugItem src/Dodge/Debug.hs 39;" f selectUse src/Dodge/SelectUse.hs 11;" f selectedCloseObject src/Dodge/Inventory.hs 238;" f @@ -5743,7 +5745,7 @@ soundToVol src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 4;" f soundWithStatus src/Dodge/SoundLogic.hs 98;" f soundWithStatusVolume src/Dodge/SoundLogic.hs 48;" f southPillarsRoom src/Dodge/Room/LongDoor.hs 85;" f -spaceAction src/Dodge/Update/Input/InGame.hs 247;" f +spaceAction src/Dodge/Update/Input/InGame.hs 245;" f spanColLightBlackI src/Dodge/Placement/Instance/LightSource.hs 186;" f spanColLightI src/Dodge/Placement/Instance/LightSource.hs 179;" f spanLS src/Dodge/Placement/Instance/LightSource.hs 171;" f @@ -5777,22 +5779,22 @@ square src/Geometry/Polygon.hs 46;" f squareDecoration src/Dodge/Placement/TopDecoration.hs 41;" f squashIntersectCirclePoint src/Dodge/WallCreatureCollisions.hs 110;" f squashNormalizeV src/Geometry/Vector.hs 146;" f -ssLookupDown src/Dodge/SelectionSections.hs 86;" f -ssLookupGE' src/Dodge/SelectionSections.hs 129;" f -ssLookupGT src/Dodge/SelectionSections.hs 116;" f -ssLookupGT' src/Dodge/SelectionSections.hs 122;" f -ssLookupLE' src/Dodge/SelectionSections.hs 104;" f -ssLookupLT src/Dodge/SelectionSections.hs 91;" f -ssLookupLT' src/Dodge/SelectionSections.hs 97;" f -ssLookupMax src/Dodge/SelectionSections.hs 76;" f -ssLookupMin src/Dodge/SelectionSections.hs 111;" f -ssLookupUp src/Dodge/SelectionSections.hs 81;" f -ssScrollMinOnFail src/Dodge/SelectionSections.hs 52;" f -ssScrollUsing src/Dodge/SelectionSections.hs 42;" f -ssSetCursor src/Dodge/SelectionSections.hs 67;" f +ssLookupDown src/Dodge/SelectionSections.hs 83;" f +ssLookupGE' src/Dodge/SelectionSections.hs 126;" f +ssLookupGT src/Dodge/SelectionSections.hs 113;" f +ssLookupGT' src/Dodge/SelectionSections.hs 119;" f +ssLookupLE' src/Dodge/SelectionSections.hs 101;" f +ssLookupLT src/Dodge/SelectionSections.hs 88;" f +ssLookupLT' src/Dodge/SelectionSections.hs 94;" f +ssLookupMax src/Dodge/SelectionSections.hs 73;" f +ssLookupMin src/Dodge/SelectionSections.hs 108;" f +ssLookupUp src/Dodge/SelectionSections.hs 78;" f +ssScrollMinOnFail src/Dodge/SelectionSections.hs 53;" f +ssScrollUsing src/Dodge/SelectionSections.hs 43;" f +ssSetCursor src/Dodge/SelectionSections.hs 64;" f ssfold src/FoldableHelp.hs 105;" f -stackPicturesAt src/Dodge/Render/List.hs 78;" f -stackPicturesAtOff src/Dodge/Render/List.hs 81;" f +stackPicturesAt src/Dodge/Render/List.hs 79;" f +stackPicturesAtOff src/Dodge/Render/List.hs 82;" f stackText src/Picture/Base.hs 188;" f stackedInventory src/Dodge/Creature.hs 282;" f startCr src/Dodge/Creature.hs 91;" f @@ -5930,12 +5932,12 @@ toTopLeft src/Dodge/Render/List.hs 199;" f toV2 src/Geometry/Data.hs 36;" f toV3 src/Geometry/Data.hs 38;" f toV4 src/Geometry/Data.hs 40;" f -toggleCombineInv src/Dodge/DisplayInventory.hs 31;" f +toggleCombineInv src/Dodge/DisplayInventory.hs 27;" f toggleCommand src/Dodge/Terminal.hs 194;" f toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 75;" f toggleJust src/MaybeHelp.hs 41;" f -toggleMap src/Dodge/Update/Input/InGame.hs 271;" f -toggleTweakInv src/Dodge/Update/Input/InGame.hs 283;" f +toggleMap src/Dodge/Update/Input/InGame.hs 269;" f +toggleTweakInv src/Dodge/Update/Input/InGame.hs 281;" f togglesToEffects src/Dodge/Terminal.hs 245;" f tone440S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 460;" f tone440sawtoothS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 430;" f @@ -6006,7 +6008,7 @@ trunkDepth src/TreeHelp.hs 161;" f tryAssignHotkey src/Dodge/Creature/YourControl.hs 85;" f tryAttachBulletBelt src/Dodge/Euse.hs 40;" f tryChargeBattery src/Dodge/Euse.hs 43;" f -tryCombine src/Dodge/Update/Input/InGame.hs 293;" f +tryCombine src/Dodge/Update/Input/InGame.hs 291;" f tryGetChannel src/Sound.hs 96;" f tryGetRootAttachedFromInvID src/Dodge/Inventory/Location.hs 19;" f tryGetRootItemInvID src/Dodge/Inventory/Location.hs 28;" f @@ -6038,7 +6040,7 @@ unlockInv src/Dodge/Inventory/Lock.hs 9;" f unpause src/Dodge/Menu.hs 192;" f unsafeBlinkAction src/Dodge/Creature/Action/Blink.hs 52;" f unsafeBlinkGun src/Dodge/Item/Weapon/Utility.hs 52;" f -unsafeSwapKeys src/IntMapHelp.hs 76;" f +unsafeSwapKeys src/IntMapHelp.hs 74;" f unshadowBlock src/Dodge/Block.hs 43;" f untilJust src/MonadHelp.hs 7;" f untilJustCount src/MonadHelp.hs 14;" f @@ -6052,7 +6054,7 @@ updateAllNodes src/TreeHelp.hs 85;" f updateArc src/Dodge/Tesla/Arc.hs 86;" f updateAttachedItems src/Dodge/Creature/State.hs 173;" f updateAutoRecharge src/Dodge/Creature/State.hs 324;" f -updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 184;" f +updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 185;" f updateBarrel src/Dodge/Barreloid.hs 45;" f updateBarreloid src/Dodge/Barreloid.hs 13;" f updateBounds src/Dodge/Update/Camera.hs 245;" f @@ -6063,19 +6065,19 @@ updateCamera src/Dodge/Update/Camera.hs 31;" f updateCloseObjects src/Dodge/Inventory.hs 114;" f updateCloud src/Dodge/Update.hs 708;" f updateClouds src/Dodge/Update.hs 552;" f -updateCombinePositioning src/Dodge/DisplayInventory.hs 37;" f -updateCombineSections src/Dodge/DisplayInventory.hs 42;" f +updateCombinePositioning src/Dodge/DisplayInventory.hs 34;" f +updateCombineSections src/Dodge/DisplayInventory.hs 39;" f updateCreature src/Dodge/Creature/Update.hs 10;" f updateCreatureGroups src/Dodge/Update.hs 492;" f updateCreatureSoundPositions src/Dodge/Update.hs 468;" f updateDebugMessageOffset src/Dodge/Update.hs 89;" f updateDelayedEvents src/Dodge/Update.hs 771;" f -updateDisplaySections src/Dodge/DisplayInventory.hs 92;" f +updateDisplaySections src/Dodge/DisplayInventory.hs 90;" f updateDistortion src/Dodge/Distortion.hs 5;" f updateDistortions src/Dodge/Update.hs 513;" f updateEnergyBall src/Dodge/EnergyBall.hs 46;" f updateEnergyBalls src/Dodge/Update.hs 540;" f -updateEnterRegex src/Dodge/Update/Input/InGame.hs 220;" f +updateEnterRegex src/Dodge/Update/Input/InGame.hs 221;" f updateExpBarrel src/Dodge/Barreloid.hs 19;" f updateFBOTO src/Framebuffer/Update.hs 97;" f updateFBOTO3 src/Framebuffer/Update.hs 131;" f @@ -6089,20 +6091,20 @@ updateHumanoid src/Dodge/Humanoid.hs 12;" f updateIMl src/Dodge/Update.hs 482;" f updateIMl' src/Dodge/Update.hs 487;" f updateInGameCamera src/Dodge/Update/Camera.hs 70;" f -updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 125;" f +updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 126;" f updateInstantBullets src/Dodge/Update.hs 629;" f updateInv src/Dodge/Creature/State.hs 152;" f -updateInventoryPositioning src/Dodge/DisplayInventory.hs 87;" f +updateInventoryPositioning src/Dodge/DisplayInventory.hs 85;" f updateItemTargeting src/Dodge/Creature/State.hs 268;" f updateItemWithOrientation src/Dodge/Creature/State.hs 194;" f -updateKeyInGame src/Dodge/Update/Input/InGame.hs 119;" f -updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 108;" f +updateKeyInGame src/Dodge/Update/Input/InGame.hs 120;" f +updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 109;" f updateLampoid src/Dodge/Lampoid.hs 12;" f updateLaser src/Dodge/Laser/Update.hs 13;" f updateLasers src/Dodge/Update.hs 411;" f updateLightSources src/Dodge/Update.hs 516;" f updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f -updateLongPressInGame src/Dodge/Update/Input/InGame.hs 145;" f +updateLongPressInGame src/Dodge/Update/Input/InGame.hs 146;" f updateMIM src/Dodge/Update.hs 642;" f updateMachine src/Dodge/Machine/Update.hs 16;" f updateMouseInventorySelection src/Dodge/Update.hs 299;" f @@ -6115,8 +6117,8 @@ updatePastWorlds src/Dodge/Update.hs 399;" f updatePosEvent src/Dodge/PosEvent.hs 11;" f updatePosEvents src/Dodge/Update.hs 549;" f updatePreload src/Preload/Update.hs 20;" f -updatePressedButtonsCarte src/Dodge/Update/Input/InGame.hs 83;" f -updatePressedButtonsCarte' src/Dodge/Update/Input/InGame.hs 86;" f +updatePressedButtonsCarte src/Dodge/Update/Input/InGame.hs 84;" f +updatePressedButtonsCarte' src/Dodge/Update/Input/InGame.hs 87;" f updateProjectile src/Dodge/Projectile/Update.hs 23;" f updateProp src/Dodge/Prop/Update.hs 11;" f updateRBList src/Dodge/Inventory/RBList.hs 16;" f @@ -6150,7 +6152,7 @@ updateUniverse src/Dodge/Update.hs 69;" f updateUniverseFirst src/Dodge/Update.hs 80;" f updateUniverseLast src/Dodge/Update.hs 126;" f updateUniverseMid src/Dodge/Update.hs 147;" f -updateUseInputInGame src/Dodge/Update/Input/InGame.hs 31;" f +updateUseInputInGame src/Dodge/Update/Input/InGame.hs 32;" f updateUseInputOnScreen src/Dodge/Update/Input/ScreenLayer.hs 20;" f updateWalkCycle src/Dodge/Creature/State/WalkCycle.hs 12;" f updateWallDamages src/Dodge/Update/WallDamage.hs 10;" f