From dc34172691c826379a4484e7132d124ddc47f5f9 Mon Sep 17 00:00:00 2001 From: justin Date: Sat, 26 Oct 2024 00:01:12 +0100 Subject: [PATCH] Unify regex/filtering code --- ghcidOutput | 8 +- src/Dodge/Data/SelectionList.hs | 17 +- src/Dodge/Default/World.hs | 7 - src/Dodge/DisplayInventory.hs | 142 +++++---- src/Dodge/Inventory/SelectionList.hs | 25 +- tags | 423 ++++++++++++++------------- 6 files changed, 316 insertions(+), 306 deletions(-) diff --git a/ghcidOutput b/ghcidOutput index 0d11fd430..950e6d680 100644 --- a/ghcidOutput +++ b/ghcidOutput @@ -1,7 +1 @@ -/home/justin/Haskell/loop/src/Dodge/DisplayInventory.hs:(134,16)-(136,62): warning: [GHC-62161] [-Wincomplete-patterns] - Pattern match(es) are non-exhaustive - In a case alternative: - Patterns of type ‘a’ not matched: p where p is not one of {(-1), 2} - | -134 | mstr = case i of - | ^^^^^^^^^... +All good (595 modules, at 00:00:33) diff --git a/src/Dodge/Data/SelectionList.hs b/src/Dodge/Data/SelectionList.hs index d6bffe17b..d789c3b71 100644 --- a/src/Dodge/Data/SelectionList.hs +++ b/src/Dodge/Data/SelectionList.hs @@ -1,6 +1,4 @@ {-# LANGUAGE StrictData #-} ---{-# LANGUAGE DeriveGeneric #-} ---{-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE TemplateHaskell #-} module Dodge.Data.SelectionList where @@ -12,9 +10,6 @@ import Dodge.Data.CardinalPoint import Dodge.Data.ScreenPos import Picture.Data ---import Data.Aeson ---import Data.Aeson.TH - data ListDisplayParams = ListDisplayParams { _ldpPos :: ScreenPos , _ldpScale :: Float @@ -23,9 +18,7 @@ data ListDisplayParams = ListDisplayParams } data CursorDisplay - = BoundaryCursor - { _cursSides :: [CardinalPoint] - } + = BoundaryCursor {_cursSides :: [CardinalPoint]} | BackdropCursor data SelectionList a = SelectionList @@ -33,10 +26,6 @@ data SelectionList a = SelectionList , _slSelPos :: Maybe Int } ---data SelectionSections a = SelectionSections --- { _sssSections :: IntMap (SelectionSection a) --- } - data SectionCursor = SectionCursor { _scurPos :: Int , _scurSize :: Int @@ -81,9 +70,5 @@ makeLenses ''ListDisplayParams makeLenses ''SelectionList makeLenses ''SelectionItem makeLenses ''SelectionSection ---makeLenses ''SelectionSections makeLenses ''SectionCursor makeLenses ''CursorDisplay - ---deriveJSON defaultOptions ''SelectionItem ---deriveJSON defaultOptions ''SelectionList diff --git a/src/Dodge/Default/World.hs b/src/Dodge/Default/World.hs index 2c9b51633..9a3ec5a0a 100644 --- a/src/Dodge/Default/World.hs +++ b/src/Dodge/Default/World.hs @@ -168,17 +168,10 @@ defaultDisplayInventory = , _diSections = defaultInvSections , _diSelection = Just (1,0) , _diSelectionExtra = 0 --- , _diFilters = IM.fromList [(-1, mempty), (2, mempty)] , _diInvFilter = mempty , _diCloseFilter = mempty } ---defaultSSSExtra :: SSSExtra ---defaultSSSExtra = --- SSSExtra --- { _sssFilters = IM.fromList [(-1, mempty), (2, mempty)] --- } - defaultInvSections :: IM.IntMap (SelectionSection ()) defaultInvSections = IM.fromDistinctAscList $ zip diff --git a/src/Dodge/DisplayInventory.hs b/src/Dodge/DisplayInventory.hs index 538672de3..c236bac41 100644 --- a/src/Dodge/DisplayInventory.hs +++ b/src/Dodge/DisplayInventory.hs @@ -1,4 +1,4 @@ ---{-# OPTIONS_GHC -fno-full-laziness #-} +-- {-# OPTIONS_GHC -fno-full-laziness #-} module Dodge.DisplayInventory ( toggleCombineInv, updateInventoryPositioning, @@ -42,31 +42,36 @@ updateCombineSections :: IM.IntMap (SelectionSection CombinableItem) -> IM.IntMap (SelectionSection CombinableItem) updateCombineSections w cfig = - updateSectionsPositioning - mselpos - availablelines - [(0, showncombs), (-1, filtinv)] + updateSectionsPositioning + (w ^? hud . hudElement . subInventory . ciSelection . _Just) + (getAvailableListLines secondColumnParams cfig) + [(0, sclose), (-1, sfclose)] where - mselpos = w ^? hud . hudElement . subInventory . ciSelection . _Just - availablelines = getAvailableListLines secondColumnParams cfig + (sfclose,sclose) = filterSectionsPair (flip (andOrRegex $ regexCombs invitms)) + allcombs "COMBINATIONS" $ mstr + invitms = fromMaybe mempty $ w ^? hud . hudElement . diSections . ix 0 . ssItems allcombs = IM.fromDistinctAscList $ zip [0 ..] $ combineList w - filtcombs = fromMaybe allcombs $ do - str <- mstr - invitms <- w ^? hud . hudElement . diSections . ix 0 . ssItems - return $ IM.filter (flip (andOrRegex $ regexCombs invitms) str) allcombs - showncombs - | null filtcombs = - IM.singleton 0 $ - SelectionInfo ["No possible combinations"] 1 False white 0 - | otherwise = filtcombs - filtinv = fromMaybe mempty $ do - str <- mstr - return $ - IM.singleton - 0 - (SelectionInfo ["COMBINATIONS FILTER: " ++ str, numfiltitems] 2 True white 0) +-- filtcombs = fromMaybe allcombs $ do +-- str <- mstr +-- invitms <- w ^? hud . hudElement . diSections . ix 0 . ssItems +-- return $ IM.filter (flip (andOrRegex $ regexCombs invitms) str) allcombs +-- showncombs +-- | null filtcombs = +-- IM.singleton 0 $ +-- SelectionInfo ["No possible combinations"] 1 False white 0 +-- | otherwise = filtcombs +-- filterdisplay = fromMaybe mempty $ do +-- str <- mstr +-- return $ +-- IM.singleton 0 $ +-- SelectionInfo +-- ["COMBINATIONS FILTER: " ++ str, numfiltitems] +-- 2 +-- True +-- white +-- 0 mstr = w ^? hud . hudElement . subInventory . ciFilter . _Just - numfiltitems = " " ++ show (length allcombs - length filtcombs) ++ " FILTERED" +-- numfiltitems = " " ++ show (length allcombs - length filtcombs) ++ " FILTERED" regexCombs :: IM.IntMap (SelectionItem ()) -> SelectionItem CombinableItem -> String -> Bool regexCombs inv ci str = case str of @@ -96,12 +101,11 @@ updateDisplaySections :: Configuration -> IM.IntMap (SelectionSection ()) -> IM.IntMap (SelectionSection ()) -updateDisplaySections w cfig sss = - updateSectionsPositioning - mselpos - availablelines - addorder - sss +updateDisplaySections w cfig = + updateSectionsPositioning + mselpos + (getAvailableListLines (invDisplayParams w) cfig) + addorder where mselpos = w ^? hud . hudElement . diSelection . _Just addorder = case mselpos of @@ -110,40 +114,70 @@ updateDisplaySections w cfig sss = Just (1, _) -> reverse [filtinv, filtclose, invx, youx, closex] Just (2, _) -> reverse [filtinv, filtclose, closex, invx, youx] _ -> reverse [filtinv, filtclose, closex, invx, youx] - (filtinv, invx) = filtpair (-1) invitems' "INV. " - (filtclose, closex) = filtpair 2 coitems' "NEARBY " + (sfinv,sinv) = filterSectionsPair plainRegex invitems "INVTORY" $ + w ^? hud . hudElement . diInvFilter . _Just + (filtinv, invx) = ((-1,sfinv),(0,sinv)) +-- filtpair (-1) invitems "INV. " $ +-- w ^? hud . hudElement . diInvFilter . _Just + (sfclose,sclose) = filterSectionsPair plainRegex coitems "NEARBY" $ + w ^? hud . hudElement . diCloseFilter . _Just + (filtclose, closex) = ((2,sfclose),(3,sclose)) +-- filtpair 2 coitems "NEARBY " $ +-- w ^? hud . hudElement . diCloseFilter . _Just youx = (1, youitems) youitems = IM.singleton 0 $ SelectionItem [thetext] 1 True invDimColor 2 () thetext = displayFreeSlots nfreeslots - availablelines = getAvailableListLines (invDisplayParams w) cfig - coitems' = + coitems = IM.fromDistinctAscList . zip [0 ..] $ map closeObjectToSelectionItem (w ^. hud . closeObjects) - invitems' = + invitems = IM.mapWithKey - (\k (y, x) -> invSelectionItem cr k (x ^. locLDT . ldtValue) y) - invlocs + (\k (y, x) -> invSelectionItem y cr k (x ^. locLDT . ldtValue)) + (allInvLocs $ _crInv cr) cr = you w - invlocs = allInvLocs $ _crInv (you w) nfreeslots = crNumFreeSlots cr - filtpair i itms filtdescription = - ( (i, filtsis) - , (i + 1, itms') - ) - where - mstr = case i of - (-1) -> w ^? hud . hudElement . diInvFilter . _Just - 2 -> w ^? hud . hudElement . diCloseFilter . _Just - filtsis = fromMaybe mempty $ do - str <- mstr - return $ - IM.singleton +-- filtpair i itms filtdescription mstr = +-- ( (i, filtsis) +-- , (i + 1, itms') +-- ) +-- where +-- filtsis = fromMaybe mempty $ do +-- str <- mstr +-- return $ +-- IM.singleton +-- 0 +-- (SelectionInfo [filtdescription ++ "FILTER: " ++ str, numfiltitems] 2 True white 0) +-- itms' = fromMaybe itms $ do +-- str <- mstr +-- return $ IM.filter (plainRegex str) itms +-- numfiltitems = " " ++ show (length itms - length itms') ++ " FILTERED" + +filterSectionsPair :: + (String -> SelectionItem a -> Bool) -> + IM.IntMap (SelectionItem a) -> + String -> + Maybe String -> + (IM.IntMap (SelectionItem a), IM.IntMap (SelectionItem a)) +filterSectionsPair filtfn itms filtdescription mfilt = + ( filtsis + , itms' + ) + where + filtsis = fromMaybe mempty $ do + str <- mfilt + return $ + IM.singleton + 0 + $ SelectionInfo + [filtdescription ++ " FILTER: " ++ str, numfiltitems] + 2 + True + white 0 - (SelectionInfo [filtdescription ++ "FILTER: " ++ str, numfiltitems] 2 True white 0) - itms' = fromMaybe itms $ do - str <- mstr - return $ IM.filter (plainRegex str) itms - numfiltitems = " " ++ show (length itms - length itms') ++ " FILTERED" + itms' = fromMaybe itms $ do + str <- mfilt + return $ IM.filter (filtfn str) itms + numfiltitems = " " ++ show (length itms - length itms') ++ " FILTERED" invDimColor :: Color invDimColor = greyN 0.7 diff --git a/src/Dodge/Inventory/SelectionList.hs b/src/Dodge/Inventory/SelectionList.hs index c6e55a3af..9eaca124a 100644 --- a/src/Dodge/Inventory/SelectionList.hs +++ b/src/Dodge/Inventory/SelectionList.hs @@ -1,38 +1,38 @@ {-# LANGUAGE LambdaCase #-} + module Dodge.Inventory.SelectionList ( invSelectionItem, invSelectionItem', closeObjectToSelectionItem, ) where -import Dodge.Item.Grammar import Dodge.Data.ComposedItem -import Padding -import Dodge.Equipment.Text import Dodge.Data.SelectionList import Dodge.Data.World +import Dodge.Equipment.Text import Dodge.Item.Display +import Dodge.Item.Grammar import Dodge.Item.InventoryColor import LensHelp +import Padding import Picture.Base invSelectionItem' :: Creature -> Int -> ComposedItem -> SelectionItem () -invSelectionItem' cr i it = invSelectionItem cr i it 0 +invSelectionItem' = invSelectionItem 0 -invSelectionItem :: Creature -> Int -> ComposedItem -> Int -> SelectionItem () -invSelectionItem cr i ci indent = +invSelectionItem :: Int -> Creature -> Int -> ComposedItem -> SelectionItem () +invSelectionItem indent cr i ci = SelectionItem { _siPictures = pics & ix 0 %~ (++ anyequippos ++ anyhotkey) - , _siHeight = _itInvSize itm + , _siHeight = _itInvSize $ _cItem ci , _siIsSelectable = True , _siColor = col , _siOffX = indent , _siPayload = () } where - itm = _cItem ci - anyhotkey = maybe [] ((' ':) .hotkeyToString) (cr ^? crInvHotkeys . ix i) - anyequippos = maybe [] (rightPad 8 ' ' . (' ':) . eqPosText) (cr ^? crInvEquipped . ix i) + anyhotkey = maybe [] ((' ' :) . hotkeyToString) (cr ^? crInvHotkeys . ix i) + anyequippos = maybe [] (rightPad 8 ' ' . (' ' :) . eqPosText) (cr ^? crInvEquipped . ix i) col = itemInvColor ci pics = itemDisplay cr ci @@ -65,8 +65,9 @@ closeObjectToSelectionItem e = where (pics, col) = closeObjectToTextPictures e --- closeObjectToTextPictures :: Either FloorItem Button -> ([String], Color) closeObjectToTextPictures = \case - Left flit -> let it = _flIt flit in (basicItemDisplay it, itemInvColor . pciToCI $ basePCI it) + Left flit -> + let it = _flIt flit + in (basicItemDisplay it, itemInvColor . pciToCI $ basePCI it) Right bt -> ([_btText bt], yellow) diff --git a/tags b/tags index 27f71dac9..1ec7cd93b 100644 --- a/tags +++ b/tags @@ -128,7 +128,7 @@ BULLETBELTPACK src/Dodge/Data/Item/Combine.hs 113;" C BULLETMOD src/Dodge/Data/Item/Combine.hs 24;" C BULLETSYNTHESIZER src/Dodge/Data/Item/Combine.hs 80;" C BURSTRIFLE src/Dodge/Data/Item/Combine.hs 142;" C -BackdropCursor src/Dodge/Data/SelectionList.hs 29;" C +BackdropCursor src/Dodge/Data/SelectionList.hs 22;" C BackgroundSound src/Dodge/Data/SoundOrigin.hs 14;" C Ball src/Dodge/Tesla/Ball.hs 1;" m Bark src/Dodge/Data/ActionPlan.hs 40;" C @@ -197,7 +197,7 @@ BottomEscapeMenuOption src/Dodge/Data/Universe.hs 73;" C BounceBullet src/Dodge/Data/Bullet.hs 38;" C Bound src/Bound.hs 1;" m Bound_box_screen src/Dodge/Data/Config.hs 81;" C -BoundaryCursor src/Dodge/Data/SelectionList.hs 26;" C +BoundaryCursor src/Dodge/Data/SelectionList.hs 21;" C Bounds src/Dodge/Data/Bounds.hs 12;" t Bounds src/Dodge/Data/Bounds.hs 6;" m Branch src/Dodge/Room/Branch.hs 4;" m @@ -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 38;" C +CombineInventory src/Dodge/Data/HUD.hs 39;" C CombineInventoryChange src/Dodge/Data/World.hs 34;" C Common src/Dodge/Zoning/Common.hs 1;" m Compile src/Shader/Compile.hs 1;" m @@ -436,7 +436,7 @@ Cull_more_lights src/Dodge/Data/Config.hs 78;" C CumulativeMuzzleEffect src/Dodge/Data/MuzzleEffect.hs 11;" t CurseStatus src/Dodge/Data/Item/CurseStatus.hs 11;" t CurseStatus src/Dodge/Data/Item/CurseStatus.hs 6;" m -CursorDisplay src/Dodge/Data/SelectionList.hs 25;" t +CursorDisplay src/Dodge/Data/SelectionList.hs 20;" t Cuse src/Dodge/Data/Item/HeldUse.hs 15;" t Cuse src/Dodge/Cuse.hs 1;" m Cylinder src/Shape/Data.hs 19;" C @@ -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 24;" C +DisplayCarte src/Dodge/Data/HUD.hs 25;" C DisplayInventory src/Dodge/Data/HUD.hs 17;" C DisplayInventory src/Dodge/DisplayInventory.hs 2;" m -DisplayTerminal src/Dodge/Data/HUD.hs 44;" C +DisplayTerminal src/Dodge/Data/HUD.hs 45;" 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 37;" C +ExamineInventory src/Dodge/Data/HUD.hs 38;" 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 @@ -691,7 +691,7 @@ FetchItem src/Dodge/Data/Scenario.hs 11;" C Fixated src/Dodge/Data/Creature/Perception.hs 62;" C FixedCoordLayer src/Picture/Data.hs 28;" C FixedRate src/Dodge/Data/Item/HeldDelay.hs 15;" C -FixedSelectionWidth src/Dodge/Data/SelectionList.hs 57;" C +FixedSelectionWidth src/Dodge/Data/SelectionList.hs 48;" C FlIt src/Dodge/Data/FloorItem.hs 16;" C Flame src/Dodge/Data/Flame.hs 14;" t Flame src/Dodge/Data/Flame.hs 6;" m @@ -817,7 +817,7 @@ 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 48;" t +HUD src/Dodge/Data/HUD.hs 47;" t HUD src/Dodge/Data/HUD.hs 6;" m HUD src/Dodge/Render/HUD.hs 3;" m HUDElement src/Dodge/Data/HUD.hs 16;" t @@ -866,6 +866,7 @@ Humanoid src/Dodge/Data/Creature/Misc.hs 65;" C Humanoid src/Dodge/Humanoid.hs 1;" m HumanoidAI src/Dodge/Data/Creature/Misc.hs 48;" t ILink src/Dodge/Data/ComposedItem.hs 51;" C +IMSS src/Dodge/Data/SelectionList.hs 45;" t INVISIBILITYEQUIPMENT src/Dodge/Data/Item/Combine.hs 105;" C IRONBAR src/Dodge/Data/Item/Combine.hs 57;" C ITEMDETECTOR src/Dodge/Data/Item/Combine.hs 169;" C @@ -1054,7 +1055,7 @@ 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 2;" m -ListDisplayParams src/Dodge/Data/SelectionList.hs 18;" t +ListDisplayParams src/Dodge/Data/SelectionList.hs 13;" t ListDisplayParams src/Dodge/ListDisplayParams.hs 1;" m ListHelp src/ListHelp.hs 1;" m LiveLongAndProsper src/Dodge/Data/ActionPlan.hs 197;" C @@ -1073,7 +1074,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 43;" C +LockedInventory src/Dodge/Data/HUD.hs 44;" 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 +1186,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 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 +MouseInvDrag src/Dodge/Data/HUD.hs 30;" C +MouseInvNothing src/Dodge/Data/HUD.hs 31;" C +MouseInvSelect src/Dodge/Data/HUD.hs 28;" C +MouseInventorySelection src/Dodge/Data/HUD.hs 27;" 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 +1265,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 33;" C +NoSubInventory src/Dodge/Data/HUD.hs 34;" 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 @@ -1659,7 +1660,7 @@ ScreenPos src/Dodge/ScreenPos.hs 1;" m Scroll src/Dodge/Update/Scroll.hs 1;" m ScrollValue src/Dodge/ScrollValue.hs 1;" m SecretCabal src/Dodge/Data/Scenario.hs 44;" C -SectionCursor src/Dodge/Data/SelectionList.hs 40;" t +SectionCursor src/Dodge/Data/SelectionList.hs 29;" t SeeAbove src/Dodge/Data/Wall.hs 40;" C SeeThrough src/Dodge/Data/Wall.hs 39;" C SelCloseObject src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 30;" C @@ -1667,16 +1668,16 @@ SelNothing src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 28;" C SelectUse src/Dodge/SelectUse.hs 1;" m Select_creature src/Dodge/Data/Config.hs 92;" C SelectedItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 23;" C -SelectionInfo src/Dodge/Data/SelectionList.hs 70;" C -SelectionItem src/Dodge/Data/SelectionList.hs 61;" t -SelectionList src/Dodge/Data/SelectionList.hs 31;" t -SelectionList src/Dodge/Data/SelectionList.hs 6;" m +SelectionInfo src/Dodge/Data/SelectionList.hs 61;" C +SelectionItem src/Dodge/Data/SelectionList.hs 52;" t +SelectionList src/Dodge/Data/SelectionList.hs 24;" t +SelectionList src/Dodge/Data/SelectionList.hs 4;" m SelectionList src/Dodge/Default/SelectionList.hs 1;" m -SelectionList src/Dodge/Inventory/SelectionList.hs 2;" m +SelectionList src/Dodge/Inventory/SelectionList.hs 3;" m SelectionList src/Dodge/SelectionList.hs 1;" m -SelectionSection src/Dodge/Data/SelectionList.hs 46;" t +SelectionSection src/Dodge/Data/SelectionList.hs 35;" t SelectionSections src/Dodge/SelectionSections.hs 1;" m -SelectionWidth src/Dodge/Data/SelectionList.hs 56;" t +SelectionWidth src/Dodge/Data/SelectionList.hs 47;" t SelfTree src/Dodge/Tree/Compose/Data.hs 12;" t Sensor src/Dodge/Data/Machine/Sensor.hs 16;" t Sensor src/Dodge/Data/Machine/Sensor.hs 6;" m @@ -1807,7 +1808,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 32;" t +SubInventory src/Dodge/Data/HUD.hs 33;" t Superfluous src/Shape/Data.hs 38;" C Surface src/Shape/Data.hs 41;" t Survive src/Dodge/Data/Scenario.hs 5;" C @@ -2018,7 +2019,7 @@ UseHeld src/Dodge/Data/Item/Use.hs 36;" C UseHotkey src/Dodge/Data/Item/Use.hs 44;" C UseItem src/Dodge/Data/ActionPlan.hs 37;" C UseItem src/Dodge/Creature/Impulse/UseItem.hs 1;" m -UseMaxSelectionItemWidth src/Dodge/Data/SelectionList.hs 59;" C +UseMaxSelectionItemWidth src/Dodge/Data/SelectionList.hs 50;" C UseMvTargetPos src/Dodge/Data/ActionPlan.hs 163;" C UseScope src/Dodge/Data/Item/Use.hs 60;" C UseSelf src/Dodge/Data/ActionPlan.hs 157;" C @@ -2032,7 +2033,7 @@ VBO src/Shader/Data.hs 81;" t VF src/Polyhedra/Data.hs 21;" t VIOLET src/Color/Data.hs 22;" C VOLLEYGUN src/Dodge/Data/Item/Combine.hs 139;" C -VariableSelectionWidth src/Dodge/Data/SelectionList.hs 58;" C +VariableSelectionWidth src/Dodge/Data/SelectionList.hs 49;" C Vector src/Geometry/Vector.hs 3;" m Vector3D src/Geometry/Vector3D.hs 2;" m VertexAttribute src/Shader/Data.hs 68;" t @@ -2272,17 +2273,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 50;" f -_carteRot src/Dodge/Data/HUD.hs 52;" f -_carteZoom src/Dodge/Data/HUD.hs 51;" f +_carteCenter src/Dodge/Data/HUD.hs 49;" f +_carteRot src/Dodge/Data/HUD.hs 51;" f +_carteZoom src/Dodge/Data/HUD.hs 50;" 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 +_ciFilter src/Dodge/Data/HUD.hs 42;" 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 39;" f -_ciSelection src/Dodge/Data/HUD.hs 40;" f +_ciSections src/Dodge/Data/HUD.hs 40;" f +_ciSelection src/Dodge/Data/HUD.hs 41;" 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 @@ -2306,7 +2307,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 53;" f +_closeObjects src/Dodge/Data/HUD.hs 52;" 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 @@ -2390,7 +2391,7 @@ _ctPos src/Dodge/Data/Creature.hs 85;" f _ctType src/Dodge/Data/Creature.hs 86;" f _currentArc src/Dodge/Data/Item/Params.hs 22;" f _currentFoot src/Dodge/Data/Creature/Stance.hs 23;" f -_cursSides src/Dodge/Data/SelectionList.hs 27;" f +_cursSides src/Dodge/Data/SelectionList.hs 21;" f _cwGen src/Dodge/Data/CWorld.hs 27;" f _cwTiles src/Dodge/Data/CWorld.hs 30;" f _cwgGameRooms src/Dodge/Data/CWorld.hs 38;" f @@ -2417,10 +2418,11 @@ _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 -_diFilters src/Dodge/Data/HUD.hs 21;" f +_diCloseFilter src/Dodge/Data/HUD.hs 22;" f +_diInvFilter 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 +_diSelectionExtra src/Dodge/Data/HUD.hs 23;" 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 49;" f +_hudElement src/Dodge/Data/HUD.hs 48;" 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 @@ -2659,10 +2661,10 @@ _laserEmmiter src/Dodge/Data/Laser.hs 18;" f _laserTypeDamage src/Dodge/Data/Laser.hs 17;" f _lasers src/Dodge/Data/LWorld.hs 115;" f _lasersToDraw src/Dodge/Data/LWorld.hs 116;" f -_ldpPos src/Dodge/Data/SelectionList.hs 19;" f -_ldpScale src/Dodge/Data/SelectionList.hs 20;" f -_ldpVerticalGap src/Dodge/Data/SelectionList.hs 21;" f -_ldpWidth src/Dodge/Data/SelectionList.hs 22;" f +_ldpPos src/Dodge/Data/SelectionList.hs 14;" f +_ldpScale src/Dodge/Data/SelectionList.hs 15;" f +_ldpVerticalGap src/Dodge/Data/SelectionList.hs 16;" f +_ldpWidth src/Dodge/Data/SelectionList.hs 17;" f _ldtLeft src/Dodge/Data/DoubleTree.hs 39;" f _ldtRight src/Dodge/Data/DoubleTree.hs 40;" f _ldtValue src/Dodge/Data/DoubleTree.hs 39;" 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 28;" f -_misSelStart src/Dodge/Data/HUD.hs 28;" f +_misMaybeEnd src/Dodge/Data/HUD.hs 29;" f +_misSelStart src/Dodge/Data/HUD.hs 29;" 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 35;" f -_nsSelected src/Dodge/Data/HUD.hs 34;" f +_nsMouseOver src/Dodge/Data/HUD.hs 36;" f +_nsSelected src/Dodge/Data/HUD.hs 35;" 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 @@ -2990,9 +2992,9 @@ _scrollSmoothing src/Dodge/Data/World.hs 63;" f _scrollSmoothing src/Dodge/Data/World.hs 69;" f _scrollTestFloat src/Dodge/Data/Input.hs 31;" f _scrollTestInt src/Dodge/Data/Input.hs 32;" f -_scurColor src/Dodge/Data/SelectionList.hs 43;" f -_scurPos src/Dodge/Data/SelectionList.hs 41;" f -_scurSize src/Dodge/Data/SelectionList.hs 42;" f +_scurColor src/Dodge/Data/SelectionList.hs 32;" f +_scurPos src/Dodge/Data/SelectionList.hs 30;" f +_scurSize src/Dodge/Data/SelectionList.hs 31;" f _seenLocations src/Dodge/Data/LWorld.hs 139;" f _seenWalls src/Dodge/Data/CWorld.hs 29;" f _selLocation src/Dodge/Data/LWorld.hs 140;" f @@ -3018,17 +3020,17 @@ _shapeHalfSize src/Shape/Data.hs 18;" f _shapeShader src/Data/Preload/Render.hs 25;" f _shockwaves src/Dodge/Data/LWorld.hs 114;" f _shrinkGunStatus src/Dodge/Data/Item/Params.hs 18;" f -_siColor src/Dodge/Data/SelectionList.hs 66;" f -_siColor src/Dodge/Data/SelectionList.hs 74;" f -_siHeight src/Dodge/Data/SelectionList.hs 64;" f -_siHeight src/Dodge/Data/SelectionList.hs 72;" f -_siIsSelectable src/Dodge/Data/SelectionList.hs 65;" f -_siIsSelectable src/Dodge/Data/SelectionList.hs 73;" f -_siOffX src/Dodge/Data/SelectionList.hs 67;" f -_siOffX src/Dodge/Data/SelectionList.hs 75;" f -_siPayload src/Dodge/Data/SelectionList.hs 68;" f -_siPictures src/Dodge/Data/SelectionList.hs 63;" f -_siPictures src/Dodge/Data/SelectionList.hs 71;" f +_siColor src/Dodge/Data/SelectionList.hs 57;" f +_siColor src/Dodge/Data/SelectionList.hs 65;" f +_siHeight src/Dodge/Data/SelectionList.hs 55;" f +_siHeight src/Dodge/Data/SelectionList.hs 63;" f +_siIsSelectable src/Dodge/Data/SelectionList.hs 56;" f +_siIsSelectable src/Dodge/Data/SelectionList.hs 64;" f +_siOffX src/Dodge/Data/SelectionList.hs 58;" f +_siOffX src/Dodge/Data/SelectionList.hs 66;" f +_siPayload src/Dodge/Data/SelectionList.hs 59;" f +_siPictures src/Dodge/Data/SelectionList.hs 54;" f +_siPictures src/Dodge/Data/SelectionList.hs 62;" f _sideEffect src/Loop/Data.hs 13;" f _sideImpulses src/Dodge/Data/ActionPlan.hs 170;" f _sidePush src/Dodge/Data/Item/Use.hs 87;" f @@ -3043,8 +3045,8 @@ _skWidth src/Dodge/Data/Spark.hs 20;" f _skinHead src/Dodge/Data/Creature/Misc.hs 66;" f _skinLower src/Dodge/Data/Creature/Misc.hs 68;" f _skinUpper src/Dodge/Data/Creature/Misc.hs 67;" f -_slItems src/Dodge/Data/SelectionList.hs 32;" f -_slSelPos src/Dodge/Data/SelectionList.hs 33;" f +_slItems src/Dodge/Data/SelectionList.hs 25;" f +_slSelPos src/Dodge/Data/SelectionList.hs 26;" f _smoothScrollAmount src/Dodge/Data/Input.hs 25;" f _soundAngDist src/Sound/Data.hs 53;" f _soundChannel src/Sound/Data.hs 52;" f @@ -3060,13 +3062,13 @@ _spPixelOff src/Dodge/Data/ScreenPos.hs 11;" f _spScreenOff src/Dodge/Data/ScreenPos.hs 10;" f _sparks src/Dodge/Data/LWorld.hs 110;" f _spawnEBT src/Dodge/Data/Bullet.hs 43;" f -_ssCursor src/Dodge/Data/SelectionList.hs 48;" f -_ssDescriptor src/Dodge/Data/SelectionList.hs 53;" f -_ssIndent src/Dodge/Data/SelectionList.hs 52;" f -_ssItems src/Dodge/Data/SelectionList.hs 47;" f -_ssMinSize src/Dodge/Data/SelectionList.hs 49;" f -_ssOffset src/Dodge/Data/SelectionList.hs 50;" f -_ssShownItems src/Dodge/Data/SelectionList.hs 51;" f +_ssCursor src/Dodge/Data/SelectionList.hs 37;" f +_ssDescriptor src/Dodge/Data/SelectionList.hs 42;" f +_ssIndent src/Dodge/Data/SelectionList.hs 41;" f +_ssItems src/Dodge/Data/SelectionList.hs 36;" f +_ssMinSize src/Dodge/Data/SelectionList.hs 38;" f +_ssOffset src/Dodge/Data/SelectionList.hs 39;" f +_ssShownItems src/Dodge/Data/SelectionList.hs 40;" 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 @@ -3097,7 +3099,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 44;" f +_termID src/Dodge/Data/HUD.hs 45;" 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 @@ -3320,7 +3322,7 @@ addToTrunk src/TreeHelp.hs 156;" f addWarningTerminal src/Dodge/Room/Warning.hs 37;" f addZ src/Geometry/Vector3D.hs 89;" f adjustIMZone src/Dodge/Base.hs 77;" f -advanceScrollAmount src/Dodge/Update.hs 393;" f +advanceScrollAmount src/Dodge/Update.hs 397;" f advanceSmoothScroll src/Dodge/SmoothScroll.hs 29;" f advanceStepCounter src/Dodge/Creature/Impulse/Movement.hs 45;" f aimDelaySweep src/Dodge/Render/ShapePicture.hs 56;" f @@ -3346,7 +3348,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 77;" f +andOrRegex src/Dodge/DisplayInventory.hs 82;" f angleBetween src/Geometry.hs 145;" f angleVV src/Geometry/Vector.hs 57;" f angleVV3 src/Geometry/Vector3D.hs 122;" f @@ -3561,7 +3563,7 @@ chaseCritMv src/Dodge/Creature/ReaderUpdate.hs 112;" f chaseCritPerceptionUpdate src/Dodge/Creature/Perception.hs 30;" f chaseCritVocalization src/Dodge/Creature/ChaseCrit.hs 46;" f checkDeath src/Dodge/Creature/State.hs 75;" f -checkEndGame src/Dodge/Update.hs 680;" f +checkEndGame src/Dodge/Update.hs 684;" f checkErrorGL src/Shader/Compile.hs 255;" f checkFBO src/Framebuffer/Check.hs 6;" f checkGLError src/GLHelp.hs 17;" f @@ -3571,7 +3573,7 @@ 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 110;" f -chooseCursorBorders src/Dodge/Render/List.hs 138;" f +chooseCursorBorders src/Dodge/Render/List.hs 139;" f chooseEquipmentPosition src/Dodge/Inventory/RBList.hs 36;" f chooseFootSound src/Dodge/Creature/State/WalkCycle.hs 39;" f chooseFreeSite src/Dodge/Inventory/RBList.hs 42;" f @@ -3587,7 +3589,7 @@ circle src/Picture/Base.hs 180;" f circleDecoration src/Dodge/Placement/TopDecoration.hs 56;" f circleSolid src/Picture/Base.hs 164;" f circleSolidCol src/Picture/Base.hs 168;" f -clClSpringVel src/Dodge/Update.hs 733;" f +clClSpringVel src/Dodge/Update.hs 737;" f clZoneSize src/Dodge/Zone/Size.hs 3;" f clZoneSize src/Dodge/Zoning/Cloud.hs 21;" f clampPath src/Dodge/Room/Procedural.hs 166;" f @@ -3607,14 +3609,14 @@ clipZoom src/Dodge/Update/Camera.hs 215;" f clockCycle src/Dodge/Clock.hs 9;" f closeObjEq src/Dodge/Inventory/CloseObject.hs 15;" f closeObjPos src/Dodge/Inventory/CloseObject.hs 10;" f -closeObjectInfo src/Dodge/Render/HUD.hs 166;" f +closeObjectInfo src/Dodge/Render/HUD.hs 170;" f closeObjectToSelectionItem src/Dodge/Inventory/SelectionList.hs 54;" f -closeObjectToTextPictures src/Dodge/Inventory/SelectionList.hs 69;" f +closeObjectToTextPictures src/Dodge/Inventory/SelectionList.hs 68;" f closestCreatureID src/Dodge/Debug.hs 92;" f closestPointOnLine src/Geometry/Intersect.hs 251;" f closestPointOnLineParam src/Geometry/Intersect.hs 267;" f closestPointOnSeg src/Geometry/Intersect.hs 282;" f -cloudEffect src/Dodge/Update.hs 703;" f +cloudEffect src/Dodge/Update.hs 707;" f cloudPoisonDamage src/Dodge/Update/Cloud.hs 9;" f clsNearCirc src/Dodge/Zoning/Cloud.hs 18;" f clsNearPoint src/Dodge/Zoning/Cloud.hs 9;" f @@ -3643,7 +3645,7 @@ combinationsOf src/Multiset.hs 46;" f combinationsTrie src/Dodge/Combine.hs 41;" f combineAwareness src/Dodge/Creature/Perception.hs 109;" f combineFloors src/Dodge/Room/Procedural.hs 172;" f -combineInventoryExtra src/Dodge/Render/HUD.hs 270;" f +combineInventoryExtra src/Dodge/Render/HUD.hs 280;" f combineItemListYouX src/Dodge/Combine.hs 33;" f combineList src/Dodge/Combine.hs 20;" f combineRooms src/Dodge/Room/Procedural.hs 152;" f @@ -3684,7 +3686,7 @@ crAdd src/Dodge/Room/RezBox.hs 104;" f crAwayFromPost src/Dodge/Creature/Test.hs 77;" f crBlips src/Dodge/RadarSweep.hs 69;" f crCanSeeCr src/Dodge/Creature/Test.hs 48;" f -crCrSpring src/Dodge/Update.hs 751;" f +crCrSpring src/Dodge/Update.hs 755;" f crCurrentEquipment src/Dodge/Creature/Statistics.hs 28;" f crDisplayAwareness src/Dodge/Creature/Picture/Awareness.hs 37;" f crDisplayVigilance src/Dodge/Creature/Picture/Awareness.hs 51;" f @@ -3704,7 +3706,7 @@ crNearPoint src/Dodge/Creature/Test.hs 135;" f crNumFreeSlots src/Dodge/Inventory/CheckSlots.hs 35;" f crOnWall src/Dodge/WallCreatureCollisions.hs 84;" f crSafeDistFromTarg src/Dodge/Creature/Test.hs 67;" f -crSpring src/Dodge/Update.hs 746;" f +crSpring src/Dodge/Update.hs 750;" f crStratConMatches src/Dodge/Creature/Test.hs 72;" f crUpdate src/Dodge/Creature/State.hs 62;" f crUpdateInvidLocations src/Dodge/Inventory/Location.hs 49;" f @@ -3774,7 +3776,7 @@ cylinderIndices src/Shader/Poke.hs 374;" f cylinderOnSeg src/Geometry.hs 125;" f cylinderPoly src/Shape.hs 86;" f cylinderRoundIndices src/Shader/Poke.hs 381;" f -dShadCol src/Dodge/Render/List.hs 195;" f +dShadCol src/Dodge/Render/List.hs 196;" f damThingHitWith src/Dodge/WorldEvent/Damage.hs 10;" f damToExpBarrel src/Dodge/Barreloid.hs 57;" f damageBlocksBy src/Dodge/Wall/Damage.hs 36;" f @@ -3848,7 +3850,7 @@ defaultBounds src/Dodge/Data/Bounds.hs 20;" f defaultBullet src/Dodge/Item/Weapon/Bullet.hs 10;" f defaultBulletWeapon src/Dodge/Default/Item.hs 47;" f defaultButton src/Dodge/Default.hs 51;" f -defaultCOSection src/Dodge/Default/World.hs 204;" f +defaultCOSection src/Dodge/Default/World.hs 199;" f defaultCWCam src/Dodge/Default/World.hs 65;" f defaultCWGen src/Dodge/Default/World.hs 55;" f defaultCWorld src/Dodge/Default/World.hs 80;" f @@ -3872,7 +3874,7 @@ defaultDrawButton src/Dodge/Button/Draw.hs 28;" f defaultEquip src/Dodge/Default/Item/Use/Equipment.hs 6;" f defaultEquipUse src/Dodge/Default/Item/Use.hs 23;" f defaultEquipment src/Dodge/Default.hs 27;" f -defaultFiltSection src/Dodge/Default/World.hs 210;" f +defaultFiltSection src/Dodge/Default/World.hs 205;" f defaultFlIt src/Dodge/Default.hs 30;" f defaultForeground src/Dodge/Default/ForegroundShape.hs 5;" f defaultHUD src/Dodge/Default/World.hs 151;" f @@ -3882,8 +3884,8 @@ defaultImpulsive src/Dodge/Humanoid.hs 190;" f defaultInanimate src/Dodge/Default/Creature.hs 69;" f defaultInput src/Dodge/Default/World.hs 14;" f defaultIntention src/Dodge/Default/Creature.hs 105;" f -defaultInvSection src/Dodge/Default/World.hs 217;" f -defaultInvSections src/Dodge/Default/World.hs 180;" f +defaultInvSection src/Dodge/Default/World.hs 212;" f +defaultInvSections src/Dodge/Default/World.hs 175;" f defaultInvSize src/Dodge/Default/Creature.hs 79;" f defaultItEffect src/Dodge/Default/Item.hs 55;" f defaultItEffect src/Dodge/Default/Item/Effect.hs 5;" f @@ -3902,7 +3904,7 @@ defaultPerceptionState src/Dodge/Default/Creature.hs 82;" f defaultProp src/Dodge/Default/Prop.hs 6;" f defaultProximitySensor src/Dodge/Default.hs 80;" f defaultRoom src/Dodge/Default/Room.hs 9;" f -defaultSS src/Dodge/Default/World.hs 192;" f +defaultSS src/Dodge/Default/World.hs 187;" f defaultSelectionList src/Dodge/Default/SelectionList.hs 5;" f defaultSensorWall src/Dodge/Default/Wall.hs 58;" f defaultState src/Dodge/Default/Creature.hs 140;" f @@ -3914,7 +3916,7 @@ defaultVision src/Dodge/Default/Creature.hs 92;" f defaultWall src/Dodge/Default/Wall.hs 10;" f defaultWindow src/Dodge/Default/Wall.hs 74;" f defaultWorld src/Dodge/Default/World.hs 32;" f -defaultYouSection src/Dodge/Default/World.hs 222;" f +defaultYouSection src/Dodge/Default/World.hs 217;" f defocusTerminalInput src/Dodge/Terminal/LeftButton.hs 20;" f degToRad src/Geometry/Vector.hs 117;" f deleteIMInZone src/Dodge/Base.hs 70;" f @@ -3955,9 +3957,9 @@ disconnectTerminal src/Dodge/Terminal.hs 215;" f displayConfig src/Dodge/Menu.hs 196;" f displayControls src/Dodge/Menu.hs 206;" f displayFrameTicks src/Dodge/Render/Picture.hs 33;" f -displayFreeSlots src/Dodge/DisplayInventory.hs 148;" f -displayTerminal src/Dodge/Render/HUD.hs 307;" f -displayTerminalLineString src/Dodge/Update.hs 422;" f +displayFreeSlots src/Dodge/DisplayInventory.hs 169;" f +displayTerminal src/Dodge/Render/HUD.hs 317;" f +displayTerminalLineString src/Dodge/Update.hs 426;" f dist src/Geometry/Vector.hs 179;" f dist3 src/Geometry/Vector3D.hs 101;" f divTo src/Geometry/Zone.hs 6;" f @@ -4014,7 +4016,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 156;" f +doRegexInput src/Dodge/Update/Input/InGame.hs 165;" f doRoomInPlacements src/Dodge/Layout.hs 97;" f doRoomOutPlacements src/Dodge/Layout.hs 107;" f doRoomPlacements src/Dodge/Layout.hs 122;" f @@ -4040,7 +4042,7 @@ doWdCrCr src/Dodge/CreatureEffect.hs 12;" f doWdP2f src/Dodge/WdP2f.hs 12;" f doWdWd src/Dodge/WorldEffect.hs 26;" f doWeaponRepetitions src/Dodge/HeldUse.hs 56;" f -doWorldEvents src/Dodge/Update.hs 404;" f +doWorldEvents src/Dodge/Update.hs 408;" 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 @@ -4075,7 +4077,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 48;" f +drawCursorAt src/Dodge/Render/List.hs 49;" 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 @@ -4084,7 +4086,7 @@ drawDoorPaths src/Dodge/Debug/Picture.hs 217;" f drawDoubleLampCover src/Dodge/Prop/Draw.hs 81;" f drawEnergyBall src/Dodge/EnergyBall/Draw.hs 8;" f drawEquipment src/Dodge/Creature/Picture.hs 140;" f -drawExamineInventory src/Dodge/Render/HUD.hs 136;" f +drawExamineInventory src/Dodge/Render/HUD.hs 140;" f drawFarWallDetect src/Dodge/Debug/Picture.hs 234;" f drawFlame src/Dodge/Flame/Draw.hs 7;" f drawFlamelet src/Dodge/EnergyBall/Draw.hs 23;" f @@ -4103,10 +4105,10 @@ drawLampCover src/Dodge/Prop/Draw.hs 44;" f drawLaser src/Dodge/Laser/Draw.hs 6;" f 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 76;" f -drawListYoff src/Dodge/Render/List.hs 73;" f +drawList src/Dodge/Render/List.hs 190;" f +drawListElement src/Dodge/Render/List.hs 170;" f +drawListYgapScaleYoff src/Dodge/Render/List.hs 77;" f +drawListYoff src/Dodge/Render/List.hs 74;" 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 @@ -4125,12 +4127,12 @@ drawPointLabel src/Dodge/Render/Label.hs 13;" f drawProjectile src/Dodge/Projectile/Draw.hs 13;" f drawProp src/Dodge/Prop/Draw.hs 15;" f drawProp' src/Dodge/Prop/Draw.hs 12;" f -drawRBOptions src/Dodge/Render/HUD.hs 184;" f +drawRBOptions src/Dodge/Render/HUD.hs 188;" 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 29;" f -drawSelectionSections src/Dodge/SelectionSections/Draw.hs 13;" f +drawSSCursor src/Dodge/SelectionSections/Draw.hs 27;" f +drawSelectionList src/Dodge/Render/List.hs 30;" f +drawSelectionSections src/Dodge/SelectionSections/Draw.hs 14;" f drawSensor src/Dodge/Machine/Draw.hs 21;" f drawShader src/Shader.hs 27;" f drawShaderLay src/Shader.hs 16;" f @@ -4188,10 +4190,10 @@ 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 248;" f +enterCombineInv src/Dodge/DisplayInventory.hs 269;" f eqConstr src/SameConstr.hs 17;" f eqPosText src/Dodge/Equipment/Text.hs 6;" f -equipAllocString src/Dodge/Render/HUD.hs 242;" f +equipAllocString src/Dodge/Render/HUD.hs 246;" f equipInfo src/Dodge/Item/Info.hs 103;" f equipItemSPic src/Dodge/Item/Draw/SPic.hs 65;" f equipPosition src/Dodge/Item/Draw.hs 29;" f @@ -4237,6 +4239,7 @@ fdiv src/ShortShow.hs 27;" 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 145;" f findBlips src/Dodge/RadarSweep.hs 44;" f findBoundDists src/Dodge/Update/Camera.hs 235;" f findClosePoint src/Dodge/LevelGen/StaticWalls.hs 155;" f @@ -4283,7 +4286,7 @@ flockPointTarget src/Dodge/Creature/Boid.hs 199;" f flockPointTargetR src/Dodge/Creature/Boid.hs 266;" f flockToPointUsing src/Dodge/Creature/Boid.hs 214;" f flockToPointUsing' src/Dodge/Creature/Boid.hs 227;" f -floorItemPickupInfo src/Dodge/Render/HUD.hs 171;" f +floorItemPickupInfo src/Dodge/Render/HUD.hs 175;" f floorItemSPic src/Dodge/Render/ShapePicture.hs 165;" f floorWire src/Dodge/Wire.hs 13;" f foamSprayFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 398;" f @@ -4356,7 +4359,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 68;" f +getLDPWidth src/Dodge/Render/List.hs 69;" f getLaserColor src/Dodge/HeldUse.hs 196;" f getLaserDamage src/Dodge/HeldUse.hs 193;" f getLaserPhaseV src/Dodge/HeldUse.hs 190;" f @@ -4480,14 +4483,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 95;" f +inCloseRegex src/Dodge/InputFocus.hs 94;" f inInputFocus src/Dodge/InputFocus.hs 59;" f -inInvRegex src/Dodge/InputFocus.hs 92;" f +inInvRegex src/Dodge/InputFocus.hs 91;" f inLink src/Dodge/RoomLink.hs 113;" f inSegArea src/Geometry/Intersect.hs 298;" f -inSubInvRegex src/Dodge/InputFocus.hs 98;" f +inSubInvRegex src/Dodge/InputFocus.hs 97;" f inTermFocus src/Dodge/InputFocus.hs 17;" f -inTopRegex src/Dodge/InputFocus.hs 87;" f +inTopRegex src/Dodge/InputFocus.hs 86;" f incBallAt src/Dodge/EnergyBall.hs 54;" f incidenceToFunction src/Dodge/Graph.hs 26;" f indefiniteExceptions src/StringHelp.hs 29;" f @@ -4549,27 +4552,27 @@ interweave src/Justify.hs 17;" f intsToPos src/Dodge/Room/Modify/Girder.hs 160;" f invAdj src/Dodge/Item/Grammar.hs 182;" f invCursorParams src/Dodge/ListDisplayParams.hs 38;" f -invDimColor src/Dodge/DisplayInventory.hs 142;" f +invDimColor src/Dodge/DisplayInventory.hs 163;" f invDisplayParams src/Dodge/ListDisplayParams.hs 32;" f -invHead src/Dodge/Render/HUD.hs 343;" f +invHead src/Dodge/Render/HUD.hs 353;" f invLDT src/Dodge/Item/Grammar.hs 166;" f invRootMap src/Dodge/Item/Grammar.hs 175;" f invRootTrees src/Dodge/Item/Grammar.hs 207;" f -invSelectionItem src/Dodge/Inventory/SelectionList.hs 22;" f -invSelectionItem' src/Dodge/Inventory/SelectionList.hs 19;" f +invSelectionItem src/Dodge/Inventory/SelectionList.hs 23;" f +invSelectionItem' src/Dodge/Inventory/SelectionList.hs 20;" f invShiftPointBy src/Dodge/ShiftPoint.hs 8;" f invSideEff src/Dodge/Creature/State.hs 162;" f invSize src/Dodge/Inventory/CheckSlots.hs 41;" f invTrees src/Dodge/Item/Grammar.hs 195;" f invTrees' src/Dodge/Item/Grammar.hs 199;" f -inventoryExtra src/Dodge/Render/HUD.hs 251;" f -inventoryExtraH src/Dodge/Render/HUD.hs 262;" f +inventoryExtra src/Dodge/Render/HUD.hs 255;" f +inventoryExtraH src/Dodge/Render/HUD.hs 266;" f inventoryX src/Dodge/Creature.hs 115;" 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 +inverseSelBoundaryDown src/Dodge/SelectionSections.hs 227;" f +inverseSelBoundaryUp src/Dodge/SelectionSections.hs 214;" f +inverseSelNumPos src/Dodge/SelectionSections.hs 205;" f +inverseSelSecYint src/Dodge/SelectionSections.hs 175;" f +inverseSelSecYintXPosCheck src/Dodge/SelectionSections.hs 186;" f inverseShockwaveAt src/Dodge/WorldEvent/Shockwave.hs 43;" f invertEncircleDistP src/Dodge/Creature/Boid.hs 13;" f invertIntMap src/IntMapHelp.hs 99;" f @@ -4719,15 +4722,15 @@ linksAndPath' src/Dodge/Room/Path.hs 44;" f linksOnPath src/Dodge/Room/CheckConsistency.hs 7;" f listConfig src/Dodge/Menu.hs 199;" f listControls src/Dodge/Menu.hs 212;" f -listCursorChooseBorderScale src/Dodge/Render/List.hs 117;" f +listCursorChooseBorderScale src/Dodge/Render/List.hs 118;" f listGuard src/Dodge/Creature/ReaderUpdate.hs 188;" f -listSelectionColorPicture src/Dodge/DisplayInventory.hs 240;" f +listSelectionColorPicture src/Dodge/DisplayInventory.hs 261;" 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 lmt src/MatrixHelper.hs 43;" f lnkBothAnd src/Dodge/Room/Procedural.hs 121;" f -lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 332;" f +lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 342;" f lnkPosDir src/Dodge/RoomLink.hs 97;" f loadDodgeConfig src/Dodge/Config/Load.hs 9;" f loadMusic src/Dodge/SoundLogic/LoadSound.hs 21;" f @@ -4817,7 +4820,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 43;" f +makeSelectionListPictures src/Dodge/Render/List.hs 44;" f makeShaderEBO src/Shader/Compile.hs 53;" f makeShaderProgram src/Shader/Compile.hs 241;" f makeShaderUsingVAO src/Shader/Compile.hs 146;" f @@ -4842,7 +4845,7 @@ makeTlsTimeRadColPos src/Dodge/LightSource.hs 88;" f makeTypeCraft src/Dodge/Item/Craftable.hs 13;" f makeTypeCraftNum src/Dodge/Item/Craftable.hs 7;" f mapOverlay src/Dodge/Render/HUD/Carte.hs 24;" f -markWallSeen src/Dodge/Update.hs 665;" f +markWallSeen src/Dodge/Update.hs 669;" f maxDamageType src/Dodge/Damage.hs 37;" f maxShowX src/Dodge/Combine/Graph.hs 43;" f maxViewDistance src/Dodge/Viewpoints.hs 26;" f @@ -4853,7 +4856,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 307;" f +maybeExitCombine src/Dodge/Update/Input/InGame.hs 327;" f maybeOpenTerminal src/Dodge/Update.hs 116;" f maybeReadFile src/Dodge/LoadSeed.hs 10;" f maybeTakeOne src/RandomHelp.hs 111;" f @@ -4974,7 +4977,7 @@ mvBullet src/Dodge/Bullet.hs 33;" f mvButton src/Dodge/Placement/PlaceSpot.hs 181;" f mvCr src/Dodge/Placement/PlaceSpot.hs 191;" f mvFS src/Dodge/Placement/PlaceSpot.hs 194;" f -mvGust src/Dodge/Update.hs 694;" f +mvGust src/Dodge/Update.hs 698;" f mvLS src/Dodge/Placement/PlaceSpot.hs 222;" f mvP src/Dodge/Wall/Move.hs 54;" f mvPP src/Dodge/Placement/PlaceSpot.hs 188;" f @@ -5036,7 +5039,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 80;" f +orRegex src/Dodge/DisplayInventory.hs 85;" f orange src/Color.hs 25;" f orderAround3 src/Geometry/Vector3D.hs 105;" f orderAroundFirst src/Geometry/Polygon.hs 82;" f @@ -5082,7 +5085,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 249;" f +pauseGame src/Dodge/Update/Input/InGame.hs 262;" f pauseMenu src/Dodge/Menu.hs 53;" f pauseMenuOptions src/Dodge/Menu.hs 58;" f pauseSound src/Dodge/SoundLogic.hs 41;" f @@ -5139,7 +5142,7 @@ placeSpotRoomRand src/Dodge/Placement/PlaceSpot.hs 90;" f placeSpotUsingLink src/Dodge/Placement/PlaceSpot.hs 71;" f placeString src/Dodge/Render/MenuScreen.hs 54;" f placeWallPoly src/Dodge/Placement/PlaceSpot.hs 167;" f -plainRegex src/Dodge/DisplayInventory.hs 145;" f +plainRegex src/Dodge/DisplayInventory.hs 166;" f plateCraft src/Dodge/Item/Craftable.hs 45;" f playIfFree src/Sound.hs 136;" f playPositionalSoundQueue src/Sound.hs 144;" f @@ -5228,7 +5231,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 137;" f +posSelSecYint src/Dodge/SelectionSections.hs 156;" f positionRoomsFromTree src/Dodge/Tree/Shift.hs 35;" f postGenerationProcessing src/Dodge/LevelGen.hs 33;" f postUniverseLoadSideEffect src/Dodge/WorldLoad.hs 11;" f @@ -5241,7 +5244,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 162;" f -ppEvents src/Dodge/Update.hs 657;" f +ppEvents src/Dodge/Update.hs 661;" f ppLevelReset src/Dodge/PressPlate.hs 13;" f preCritStart src/Dodge/Room/Start.hs 82;" f preloadRender src/Preload/Render.hs 30;" f @@ -5367,9 +5370,9 @@ 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 67;" f +regexCombs src/Dodge/DisplayInventory.hs 72;" f regexIn src/Regex.hs 4;" f -regexList src/Dodge/DisplayInventory.hs 291;" f +regexList src/Dodge/DisplayInventory.hs 313;" f regexList src/Regex.hs 7;" f reload1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 428;" f reloadLevelStart src/Dodge/Save.hs 71;" f @@ -5389,7 +5392,7 @@ renderInfoListAt src/Dodge/Render/InfoBox.hs 17;" f renderInfoListsAt src/Dodge/Render/InfoBox.hs 44;" f renderLayer src/Render.hs 233;" f renderLightingNoShadows src/Render.hs 48;" f -renderListAt src/Dodge/Render/List.hs 174;" f +renderListAt src/Dodge/Render/List.hs 175;" f renderShadows src/Render.hs 117;" f replaceNullWith src/Dodge/Creature/ReaderUpdate.hs 160;" f replacePutID src/Dodge/Placement/Instance/Wall.hs 102;" f @@ -5541,13 +5544,13 @@ secondColumnParams src/Dodge/ListDisplayParams.hs 45;" f seedStartMenu src/Dodge/Menu.hs 79;" f 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 107;" f -selSecDrawCursorAt src/Dodge/Render/List.hs 85;" f -selSecSelCol src/Dodge/Render/HUD.hs 449;" f -selSecSelSize src/Dodge/SelectionSections.hs 133;" f -selSecYint src/Dodge/SelectionSections.hs 142;" f +selNumPos src/Dodge/Render/HUD.hs 413;" f +selNumPosCardinal src/Dodge/Render/HUD.hs 436;" f +selSecDrawCursor src/Dodge/Render/List.hs 108;" f +selSecDrawCursorAt src/Dodge/Render/List.hs 86;" f +selSecSelCol src/Dodge/Render/HUD.hs 459;" f +selSecSelSize src/Dodge/SelectionSections.hs 152;" f +selSecYint src/Dodge/SelectionSections.hs 161;" f selectCreatureDebugItem src/Dodge/Debug.hs 39;" f selectUse src/Dodge/SelectUse.hs 11;" f selectedCloseObject src/Dodge/Inventory.hs 238;" f @@ -5581,7 +5584,7 @@ setLinkTypePD src/Dodge/RoomLink.hs 67;" f setMinInvSize src/Dodge/Creature/Action.hs 150;" f setMusicVolume src/Sound.hs 161;" f setMvPos src/Dodge/Creature/ReaderUpdate.hs 51;" f -setOldPos src/Dodge/Update.hs 446;" f +setOldPos src/Dodge/Update.hs 450;" f setOutLinks src/Dodge/RoomLink.hs 48;" f setOutLinksByType src/Dodge/RoomLink.hs 57;" f setOutLinksPD src/Dodge/RoomLink.hs 77;" f @@ -5637,9 +5640,9 @@ shiftDec src/Dodge/Placement/PlaceSpot.hs 151;" f shiftDraw src/Dodge/Render/ShapePicture.hs 107;" f shiftDraw' src/Dodge/Render/ShapePicture.hs 113;" f shiftInBy src/Dodge/PlacementSpot.hs 236;" f -shiftInvItems src/Dodge/Update.hs 347;" f -shiftInvItemsDown src/Dodge/Update.hs 368;" f -shiftInvItemsUp src/Dodge/Update.hs 362;" f +shiftInvItems src/Dodge/Update.hs 351;" f +shiftInvItemsDown src/Dodge/Update.hs 372;" f +shiftInvItemsUp src/Dodge/Update.hs 366;" f shiftLinkBy src/Dodge/Room/Link.hs 87;" f shiftPSBy src/Dodge/Placement/Shift.hs 12;" f shiftPathBy src/Dodge/Room/Link.hs 92;" f @@ -5689,7 +5692,7 @@ shuffleLinks src/Dodge/Room/Link.hs 30;" f shuffleRoomPos src/Dodge/Layout.hs 78;" f shuffleTail src/RandomHelp.hs 59;" f sigmoid src/Dodge/Base.hs 129;" f -simpleCrSprings src/Dodge/Update.hs 742;" f +simpleCrSprings src/Dodge/Update.hs 746;" f simpleDamFL src/Dodge/Flame.hs 41;" f simpleTermMessage src/Dodge/Terminal.hs 250;" f sineRaisePitchOneSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 486;" f @@ -5738,7 +5741,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 252;" f +spaceAction src/Dodge/Update/Input/InGame.hs 265;" 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 @@ -5772,27 +5775,27 @@ 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 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 +ssLookupDown src/Dodge/SelectionSections.hs 87;" f +ssLookupGE' src/Dodge/SelectionSections.hs 145;" f +ssLookupGT src/Dodge/SelectionSections.hs 128;" f +ssLookupGT' src/Dodge/SelectionSections.hs 138;" f +ssLookupLE' src/Dodge/SelectionSections.hs 116;" f +ssLookupLT src/Dodge/SelectionSections.hs 96;" f +ssLookupLT' src/Dodge/SelectionSections.hs 106;" f ssLookupMax src/Dodge/SelectionSections.hs 73;" f -ssLookupMin src/Dodge/SelectionSections.hs 108;" f +ssLookupMin src/Dodge/SelectionSections.hs 123;" 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 79;" f -stackPicturesAtOff src/Dodge/Render/List.hs 82;" f +stackPicturesAt src/Dodge/Render/List.hs 80;" f +stackPicturesAtOff src/Dodge/Render/List.hs 83;" f stackText src/Picture/Base.hs 188;" f stackedInventory src/Dodge/Creature.hs 282;" f startCr src/Dodge/Creature.hs 91;" f startCrafts src/Dodge/Room/Start.hs 92;" f -startDrag src/Dodge/Update.hs 336;" f +startDrag src/Dodge/Update.hs 340;" f startInvList src/Dodge/Creature.hs 109;" f startInventory src/Dodge/Creature.hs 112;" f startNewGameInSlot src/Dodge/StartNewGame.hs 15;" f @@ -5911,7 +5914,7 @@ titleOptionsMenu src/Dodge/Menu.hs 99;" f titleOptionsNoWrite src/Dodge/Menu.hs 102;" f tlsTimeRadColPos src/Dodge/LightSource.hs 69;" f tlsTimeRadFunPos src/Dodge/LightSource.hs 26;" f -tmUpdate src/Dodge/Update.hs 426;" f +tmUpdate src/Dodge/Update.hs 430;" f toBothLnk src/Dodge/RoomLink.hs 121;" f toClosestMultiple src/HelpNum.hs 3;" f toColor8 src/Color.hs 148;" f @@ -5921,7 +5924,7 @@ toLabel src/Dodge/Cleat.hs 16;" f toLasgunUpdate src/Dodge/Item/Grammar.hs 114;" f toMultiset src/Multiset.hs 64;" f toOnward src/Dodge/Tree/Compose.hs 101;" f -toTopLeft src/Dodge/Render/List.hs 199;" f +toTopLeft src/Dodge/Render/List.hs 200;" f toV2 src/Geometry/Data.hs 36;" f toV3 src/Geometry/Data.hs 38;" f toV4 src/Geometry/Data.hs 40;" f @@ -5929,8 +5932,8 @@ 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 276;" f -toggleTweakInv src/Dodge/Update/Input/InGame.hs 289;" f +toggleMap src/Dodge/Update/Input/InGame.hs 289;" f +toggleTweakInv src/Dodge/Update/Input/InGame.hs 304;" f togglesToEffects src/Dodge/Terminal.hs 245;" f tone440S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 460;" f tone440sawtoothS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 430;" f @@ -6001,7 +6004,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 299;" f +tryCombine src/Dodge/Update/Input/InGame.hs 315;" f tryGetChannel src/Sound.hs 96;" f tryGetRootAttachedFromInvID src/Dodge/Inventory/Location.hs 19;" f tryGetRootItemInvID src/Dodge/Inventory/Location.hs 28;" f @@ -6047,99 +6050,99 @@ 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 192;" f +updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 200;" f updateBarrel src/Dodge/Barreloid.hs 45;" f updateBarreloid src/Dodge/Barreloid.hs 13;" f updateBounds src/Dodge/Update/Camera.hs 245;" f updateBulVel src/Dodge/Bullet.hs 50;" f updateBullet src/Dodge/Bullet.hs 28;" f -updateBullets src/Dodge/Update.hs 523;" f +updateBullets src/Dodge/Update.hs 527;" f 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 +updateCloud src/Dodge/Update.hs 712;" f +updateClouds src/Dodge/Update.hs 556;" 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 +updateCreatureGroups src/Dodge/Update.hs 496;" f +updateCreatureSoundPositions src/Dodge/Update.hs 472;" f updateDebugMessageOffset src/Dodge/Update.hs 89;" f -updateDelayedEvents src/Dodge/Update.hs 771;" f -updateDisplaySections src/Dodge/DisplayInventory.hs 90;" f +updateDelayedEvents src/Dodge/Update.hs 775;" f +updateDisplaySections src/Dodge/DisplayInventory.hs 95;" f updateDistortion src/Dodge/Distortion.hs 5;" f -updateDistortions src/Dodge/Update.hs 513;" f +updateDistortions src/Dodge/Update.hs 517;" f updateEnergyBall src/Dodge/EnergyBall.hs 46;" f -updateEnergyBalls src/Dodge/Update.hs 540;" f -updateEnterRegex src/Dodge/Update/Input/InGame.hs 228;" f +updateEnergyBalls src/Dodge/Update.hs 544;" f +updateEnterRegex src/Dodge/Update/Input/InGame.hs 241;" f updateExpBarrel src/Dodge/Barreloid.hs 19;" f updateFBOTO src/Framebuffer/Update.hs 97;" f updateFBOTO3 src/Framebuffer/Update.hs 131;" f updateFlame src/Dodge/Flame.hs 71;" f -updateFlames src/Dodge/Update.hs 537;" f +updateFlames src/Dodge/Update.hs 541;" f updateFlare src/Dodge/Flare.hs 7;" f updateFloatingCamera src/Dodge/Update/Camera.hs 36;" f -updateGusts src/Dodge/Update.hs 691;" f +updateGusts src/Dodge/Update.hs 695;" f updateHeldRootItem src/Dodge/Creature/State.hs 167;" f updateHumanoid src/Dodge/Humanoid.hs 12;" f -updateIMl src/Dodge/Update.hs 482;" f -updateIMl' src/Dodge/Update.hs 487;" f +updateIMl src/Dodge/Update.hs 486;" f +updateIMl' src/Dodge/Update.hs 491;" f updateInGameCamera src/Dodge/Update/Camera.hs 70;" f -updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 130;" f -updateInstantBullets src/Dodge/Update.hs 629;" f +updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 139;" f +updateInstantBullets src/Dodge/Update.hs 633;" f updateInv src/Dodge/Creature/State.hs 152;" f -updateInventoryPositioning src/Dodge/DisplayInventory.hs 85;" f +updateInventoryPositioning src/Dodge/DisplayInventory.hs 90;" f updateItemTargeting src/Dodge/Creature/State.hs 268;" f updateItemWithOrientation src/Dodge/Creature/State.hs 194;" f -updateKeyInGame src/Dodge/Update/Input/InGame.hs 124;" f -updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 113;" f +updateKeyInGame src/Dodge/Update/Input/InGame.hs 133;" f +updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 122;" 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 +updateLasers src/Dodge/Update.hs 415;" f +updateLightSources src/Dodge/Update.hs 520;" f updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f -updateLongPressInGame src/Dodge/Update/Input/InGame.hs 150;" f -updateMIM src/Dodge/Update.hs 642;" f +updateLongPressInGame src/Dodge/Update/Input/InGame.hs 159;" f +updateMIM src/Dodge/Update.hs 646;" f updateMachine src/Dodge/Machine/Update.hs 16;" f updateMouseInventorySelection src/Dodge/Update.hs 299;" f updateMouseInventorySelection' src/Dodge/Update.hs 304;" f -updateMouseOverInventory src/Dodge/Update.hs 377;" f +updateMouseOverInventory src/Dodge/Update.hs 381;" f updateMovement src/Dodge/Creature/State.hs 331;" f -updateObjCatMaybes src/Dodge/Update.hs 504;" f -updateObjMapMaybe src/Dodge/Update.hs 497;" f -updatePastWorlds src/Dodge/Update.hs 399;" f +updateObjCatMaybes src/Dodge/Update.hs 508;" f +updateObjMapMaybe src/Dodge/Update.hs 501;" f +updatePastWorlds src/Dodge/Update.hs 403;" f updatePosEvent src/Dodge/PosEvent.hs 11;" f -updatePosEvents src/Dodge/Update.hs 549;" f +updatePosEvents src/Dodge/Update.hs 553;" f updatePreload src/Preload/Update.hs 20;" f -updatePressedButtonsCarte src/Dodge/Update/Input/InGame.hs 88;" f -updatePressedButtonsCarte' src/Dodge/Update/Input/InGame.hs 91;" f +updatePressedButtonsCarte src/Dodge/Update/Input/InGame.hs 97;" f +updatePressedButtonsCarte' src/Dodge/Update/Input/InGame.hs 100;" 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 updateRadarBlip src/Dodge/RadarBlip.hs 8;" f -updateRadarBlips src/Dodge/Update.hs 519;" f +updateRadarBlips src/Dodge/Update.hs 523;" f updateRadarSweep src/Dodge/RadarSweep.hs 25;" f -updateRadarSweeps src/Dodge/Update.hs 543;" f +updateRadarSweeps src/Dodge/Update.hs 547;" f updateRandNode src/TreeHelp.hs 108;" f updateRenderSplit appDodge/Main.hs 106;" f updateRootItemID src/Dodge/Inventory/Location.hs 36;" f updateScopeZoom src/Dodge/Update/Camera.hs 127;" f updateScopeZoom' src/Dodge/Update/Camera.hs 132;" f updateScrollTestValue src/Dodge/ScrollValue.hs 6;" f -updateSection src/Dodge/DisplayInventory.hs 175;" f -updateSectionsPositioning src/Dodge/DisplayInventory.hs 154;" f -updateSeenWalls src/Dodge/Update.hs 660;" f +updateSection src/Dodge/DisplayInventory.hs 196;" f +updateSectionsPositioning src/Dodge/DisplayInventory.hs 175;" f +updateSeenWalls src/Dodge/Update.hs 664;" f updateShockwave src/Dodge/Shockwave/Update.hs 12;" f -updateShockwaves src/Dodge/Update.hs 534;" f +updateShockwaves src/Dodge/Update.hs 538;" f updateSingleNodes src/TreeHelp.hs 97;" f updateSound src/Sound.hs 71;" f updateSounds src/Sound.hs 66;" f updateSpark src/Dodge/Spark.hs 19;" f -updateSparks src/Dodge/Update.hs 546;" f +updateSparks src/Dodge/Update.hs 550;" f updateTempLightSource src/Dodge/LightSource/Update.hs 7;" f updateTeslaArc src/Dodge/Tesla/Arc.hs 29;" f -updateTeslaArcs src/Dodge/Update.hs 528;" f +updateTeslaArcs src/Dodge/Update.hs 532;" f updateTractorBeam src/Dodge/TractorBeam/Update.hs 9;" f -updateTractorBeams src/Dodge/Update.hs 531;" f +updateTractorBeams src/Dodge/Update.hs 535;" f updateTurret src/Dodge/Machine/Update.hs 31;" f updateUniverse src/Dodge/Update.hs 69;" f updateUniverseFirst src/Dodge/Update.hs 80;" f @@ -6150,7 +6153,7 @@ 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 updateWheelEvent src/Dodge/Update/Scroll.hs 20;" f -updateWheelEvents src/Dodge/Update.hs 386;" f +updateWheelEvents src/Dodge/Update.hs 390;" f updateWorldEventFlag src/Dodge/Update.hs 110;" f updateWorldEventFlags src/Dodge/Update.hs 101;" f upperBody src/Dodge/Creature/Picture.hs 133;" f @@ -6303,7 +6306,7 @@ yV2 src/Geometry/Vector.hs 203;" f yellow src/Color.hs 17;" f you src/Dodge/Base/You.hs 18;" f youDropItem src/Dodge/Creature/Action.hs 184;" f -yourAugmentedItem src/Dodge/Render/HUD.hs 178;" f +yourAugmentedItem src/Dodge/Render/HUD.hs 182;" f yourControl src/Dodge/Creature/YourControl.hs 22;" f yourDefaultSpeed src/Dodge/Default/Creature.hs 134;" f yourDefaultStrideLength src/Dodge/Default/Creature.hs 137;" f @@ -6320,9 +6323,9 @@ zipCount src/Dodge/Tree/Shift.hs 129;" f zipCountDown src/Dodge/Room/Procedural.hs 118;" f zipWithDefaults src/Dodge/Item/Display.hs 21;" f zoneCloud src/Dodge/Zoning/Cloud.hs 27;" f -zoneClouds src/Dodge/Update.hs 419;" f +zoneClouds src/Dodge/Update.hs 423;" f zoneCreature src/Dodge/Zoning/Creature.hs 52;" f -zoneCreatures src/Dodge/Update.hs 463;" f +zoneCreatures src/Dodge/Update.hs 467;" f zoneExtract src/Dodge/Zoning/Base.hs 50;" f zoneMonoid src/Dodge/Zoning/Base.hs 80;" f zoneOfCirc src/Dodge/Zoning/Base.hs 22;" f