diff --git a/ghcidOutput b/ghcidOutput index e7b4e48f2..f762640f4 100644 --- a/ghcidOutput +++ b/ghcidOutput @@ -1 +1 @@ -All good (593 modules, at 16:12:32) +All good (593 modules, at 22:07:48) diff --git a/src/Dodge/Data/HUD.hs b/src/Dodge/Data/HUD.hs index 9af8712e2..962ba2871 100644 --- a/src/Dodge/Data/HUD.hs +++ b/src/Dodge/Data/HUD.hs @@ -5,12 +5,12 @@ module Dodge.Data.HUD where +import Dodge.Data.Item.Location +import NewInt import Control.Lens import Data.IntMap import Data.IntSet (IntSet) -import Dodge.Data.Button import Dodge.Data.Combine -import Dodge.Data.FloorItem import Dodge.Data.SelectionList import Geometry.Data @@ -50,8 +50,8 @@ data HUD = HUD , _carteCenter :: Point2 , _carteZoom :: Float , _carteRot :: Float - , _closeItems :: [FloorItem] - , _closeInterfaces :: [Button] + , _closeItems :: [NewInt FloorInt] + , _closeInterfaces :: [Int] } makeLenses ''HUD diff --git a/src/Dodge/Data/Item/Use/Consumption/LoadAction.hs b/src/Dodge/Data/Item/Use/Consumption/LoadAction.hs index b93698696..3f9f39b38 100644 --- a/src/Dodge/Data/Item/Use/Consumption/LoadAction.hs +++ b/src/Dodge/Data/Item/Use/Consumption/LoadAction.hs @@ -12,7 +12,6 @@ import Data.Aeson.TH --import Sound.Data data Manipulation -- should be ManipulatedObject? - -- = InvSel {_isel :: SelPos} = Manipulator {_manObject :: ManipulatedObject } | Brute @@ -20,14 +19,16 @@ data Manipulation -- should be ManipulatedObject? data ManipulatedObject = SortInventory - | SelectedItem + | SelectedItem { _imSelectedItem :: Int , _imRootSelectedItem :: Int , _imAttachedItems :: IS.IntSet } | SelNothing - | SortNearby - | SelCloseObject {_ispCloseObject :: Int} + | SortCloseItem + | SelCloseItem {_ispCloseItem :: Int} + | SortCloseButton + | SelCloseButton {_ispCloseButton :: Int} deriving (Eq, Ord, Show, Read) --Generic, Flat) makeLenses ''ManipulatedObject diff --git a/src/Dodge/DisplayInventory.hs b/src/Dodge/DisplayInventory.hs index a213cc107..e0e184cc3 100644 --- a/src/Dodge/DisplayInventory.hs +++ b/src/Dodge/DisplayInventory.hs @@ -13,7 +13,6 @@ import Control.Lens import Control.Monad import Data.Bifunctor import qualified Data.IntMap.Strict as IM ---import qualified Data.List as List import Data.Maybe import Data.Monoid import Dodge.Base.You @@ -135,7 +134,8 @@ updateDisplaySections w cfig = displayIndents mselpos (getAvailableListLines (invDisplayParams w) cfig) - [statushead,statusdisplay,invhead,invx,youx, nearbyhead, closex] + [statushead,statusdisplay,invhead,invx,youx, nearbyhead, closex + ,interfaceshead,interfaces] where mselpos = w ^? hud . hudElement . diSelection . _Just invfiltcurs = mselpos ^? _Just . _1 == Just (-1) @@ -152,6 +152,11 @@ updateDisplaySections w cfig = then if null sclose then (2,mempty) else makehead "NEARBY ITEMS" 2 else filtclose youx = (1, youitems) + interfaceshead = if null btitems then (4,mempty) else makehead "NEARBY INTERFACES" 4 + interfaces = (5,btitems) + btitems = + IM.fromDistinctAscList . zip [0 ..] $ + mapMaybe (closeButtonToSelectionItem w) (w ^. hud . closeInterfaces) makehead str i = (i,IM.singleton 0 $ SelectionInfo [str] 1 False white 0) statushead = (-4,IM.singleton 0 $ SelectionInfo ["STATUS"] 1 False white 0) statusdisplay = (-3,IM.singleton 0 $ SelectionInfo ["HEALTH: "++show (_crHP cr)] 1 False white 0) @@ -160,7 +165,7 @@ updateDisplaySections w cfig = thetext = displayFreeSlots (crNumFreeSlots cr) closeitms = IM.fromDistinctAscList . zip [0 ..] $ - map closeItemToSelectionItem (w ^. hud . closeItems) + mapMaybe (closeItemToSelectionItem w) (w ^. hud . closeItems) invitems = IM.mapWithKey (\k (indent, x) -> invSelectionItem indent cr k (x ^. locLDT . ldtValue)) @@ -269,7 +274,6 @@ updateSectionsPositioning f h mselpos allavailablelines lsss sss = guard $ k == k' return i ls = IM.fromList lsss --- h = IM.intersectionWith ($) -- defaults non-existing offsets to 0 g = merge (mapMissing (const ($ 0))) dropMissing (zipWithMatched (const ($))) lk = maybe [] ((: []) . fst) mselpos @@ -308,11 +312,9 @@ updateSection indent mcsel sis availablelines oldoffset = pos | pos == 0 || length allstrings <= availablelines -> 0 pos | pos - 1 < oldoffset -> pos - 1 pos | maxcsel == csel -> pos - availablelines + xselsize - pos - | pos + 1 + xselsize - availablelines > oldoffset -> + pos | pos + 1 + xselsize - availablelines > oldoffset -> pos - availablelines + 1 + xselsize - _ - | length allstrings - oldoffset < availablelines -> + _ | length allstrings - oldoffset < availablelines -> length allstrings - availablelines _ -> oldoffset tweakfirst (x : xs) diff --git a/src/Dodge/Inventory.hs b/src/Dodge/Inventory.hs index 46f1fa3b6..eeb2dd77e 100644 --- a/src/Dodge/Inventory.hs +++ b/src/Dodge/Inventory.hs @@ -129,15 +129,10 @@ updateCloseObjects w = & hud . closeItems %~ f & hud . closeInterfaces %~ g where - -- the following should update any changed properties of flits/bts - g oldbts = intersectBy bteq cbts oldbts `btunion` cbts - f olditems = intersectBy feq citems olditems `itunion` citems - itunion = unionBy feq - btunion = unionBy bteq - feq = (==) `on` _flItID - bteq = (==) `on` _btID - cbts = filter (isclose . _btPos) activeButtons - citems = + g oldbts = intersect oldbts cbts `union` cbts + f olditems = intersect olditems citems `union` citems + cbts = fmap _btID $ filter (isclose . _btPos) activeButtons + citems = fmap _flItID . filter (isclose . _flItPos) . IM.elems $ w ^. cWorld . lWorld . floorItems . unNIntMap @@ -171,13 +166,22 @@ changeSwapClose :: changeSwapClose f i w = fromMaybe w $ do ss <- w ^? hud . hudElement . diSections . ix 3 . ssItems k <- f i ss + let doswap j + | j == i= k + | j == k = i + | otherwise = j +-- updateselection = case w ^? hud . hudElement . diSelection . _Just of +-- Just (0, j) | j == k -> hud . hudElement . diSelection . _Just . _2 .~ i +-- Just (0, j) | j == i -> hud . hudElement . diSelection . _Just . _2 .~ k +-- _ -> id return $ w & swapAnyExtraSelection i k - & cWorld . lWorld . creatures . ix 0 . crManipulation . manObject . ispCloseObject - .~ k + & cWorld . lWorld . creatures . ix 0 . crManipulation . manObject . ispCloseItem + %~ doswap & hud . closeItems %~ swapIndices i k - & hud . hudElement . diSelection . _Just . _2 .~ k + & hud . hudElement . diSelection . _Just . _2 %~ doswap +-- & updateselection & worldEventFlags . at InventoryChange ?~ () -- can be specialised for when we know that item i is selected @@ -309,6 +313,7 @@ scrollAugNextInSection w = selectedCloseItem :: World -> Maybe FloorItem selectedCloseItem w = do i <- - you w ^? crManipulation . manObject . ispCloseObject + you w ^? crManipulation . manObject . ispCloseItem <|> fmap fst (IM.lookupMin =<< w ^? hud . hudElement . diSections . ix 3 . ssItems) - w ^? hud . closeItems . ix i + flitid <- w ^? hud . closeItems . ix i . unNInt + w ^? cWorld . lWorld . floorItems . unNIntMap . ix flitid diff --git a/src/Dodge/Inventory/Location.hs b/src/Dodge/Inventory/Location.hs index 547049b88..d7b7a2da5 100644 --- a/src/Dodge/Inventory/Location.hs +++ b/src/Dodge/Inventory/Location.hs @@ -95,6 +95,8 @@ setInvPosFromSS w = , _imAttachedItems = aset } 1 -> Just SelNothing - 2 -> Just SortNearby - 3 -> Just $ SelCloseObject j + 2 -> Just SortCloseItem + 3 -> Just $ SelCloseItem j + 4 -> Just SortCloseButton + 5 -> Just $ SelCloseButton j _ -> error "selection out of bounds" diff --git a/src/Dodge/Inventory/SelectionList.hs b/src/Dodge/Inventory/SelectionList.hs index 239453287..ffb1b83c2 100644 --- a/src/Dodge/Inventory/SelectionList.hs +++ b/src/Dodge/Inventory/SelectionList.hs @@ -4,8 +4,10 @@ module Dodge.Inventory.SelectionList ( invSelectionItem, invSelectionItem', closeItemToSelectionItem, + closeButtonToSelectionItem, ) where +import NewInt import Dodge.Data.ComposedItem import Dodge.Data.SelectionList import Dodge.Data.World @@ -51,23 +53,34 @@ hotkeyToString x = case x of Hotkey9 -> "[9]" Hotkey0 -> "[0]" -closeItemToSelectionItem :: FloorItem -> SelectionItem () -closeItemToSelectionItem e = - SelectionItem +closeItemToSelectionItem :: World -> NewInt FloorInt -> Maybe (SelectionItem ()) +closeItemToSelectionItem w (NInt i) = do + e <- w ^? cWorld . lWorld . floorItems . unNIntMap . ix i + let (pics, col) = closeItemToTextPictures e + return SelectionItem { _siPictures = pics , _siHeight = length pics , _siIsSelectable = True - , --, _siWidth = 15 - _siColor = col + , _siColor = col + , _siOffX = 0 + , _siPayload = () + } + +closeButtonToSelectionItem :: World -> Int -> Maybe (SelectionItem ()) +closeButtonToSelectionItem w i = do + bt <- w ^? cWorld . lWorld . buttons . ix i + return SelectionItem + { _siPictures = [_btText bt] + , _siHeight = 1 + , _siIsSelectable = True + , _siColor = yellow , _siOffX = 0 , _siPayload = () } - where - (pics, col) = closeItemToTextPictures e closeItemToTextPictures :: FloorItem -> ([String], Color) closeItemToTextPictures flit = let it = _flIt flit in (basicItemDisplay it, itemInvColor . pciToCI $ basePCI it) --- Right bt -> ([_btText bt], yellow) + diff --git a/src/Dodge/Render/HUD.hs b/src/Dodge/Render/HUD.hs index 2e7193971..12f26112e 100644 --- a/src/Dodge/Render/HUD.hs +++ b/src/Dodge/Render/HUD.hs @@ -4,6 +4,7 @@ module Dodge.Render.HUD ( drawHUD, ) where +import NewInt import Control.Applicative import Control.Lens import Control.Monad @@ -217,7 +218,15 @@ floorItemPickupInfo n itm yourAugmentedItem :: (Item -> a) -> a -> (Either FloorItem Button -> a) -> World -> a yourAugmentedItem f x g w = case you w ^? crManipulation . manObject of Just (SelectedItem i _ _) -> f $ yourInv w ^?! ix i - Just (SelCloseObject i) -> g . Left $ w ^?! hud . closeItems . ix i + Just (SelCloseItem i) -> fromMaybe x $ do + j <- w ^? hud . closeItems . ix i . unNInt + flit <- w ^? cWorld . lWorld . floorItems . unNIntMap . ix j + return . g $ Left flit +-- g . Left $ w ^?! hud . closeItems . ix i + Just (SelCloseButton i) -> fromMaybe x $ do + j <- w ^? hud . closeInterfaces . ix i + flit <- w ^? cWorld . lWorld . buttons . ix j + return . g $ Right flit _ -> x drawRBOptions :: Configuration -> World -> Picture diff --git a/src/Dodge/TestString.hs b/src/Dodge/TestString.hs index 941822f12..2345b1971 100644 --- a/src/Dodge/TestString.hs +++ b/src/Dodge/TestString.hs @@ -50,8 +50,10 @@ showManObj :: ManipulatedObject -> String showManObj SortInventory = "SortInventory" showManObj (SelectedItem x y z) = "SelItem: "++ show x++ " Root: "++show y++" Attached: "++show z showManObj SelNothing = "SelNothing" -showManObj SortNearby = "SortNearby" -showManObj (SelCloseObject x) = "Close " ++ show x +showManObj SortCloseItem = "SortCloseItem" +showManObj (SelCloseItem x) = "CloseItem " ++ show x +showManObj SortCloseButton = "SortCloseButton" +showManObj (SelCloseButton x) = "CloseButton " ++ show x --testStringInit u = fromMaybe mempty $ do diff --git a/tags b/tags index 6ee623cb6..6991123d4 100644 --- a/tags +++ b/tags @@ -203,7 +203,7 @@ Bounds src/Dodge/Data/Bounds.hs 6;" m Branch src/Dodge/Room/Branch.hs 4;" m Breather src/Dodge/Room/Breather.hs 1;" m BrigSS src/Dodge/Data/Scenario.hs 102;" C -Brute src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 18;" C +Brute src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 17;" C BtNoLabel src/Dodge/Data/Button.hs 63;" C BtOff src/Dodge/Data/Button.hs 63;" C BtOn src/Dodge/Data/Button.hs 63;" C @@ -336,7 +336,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 40;" C +CombineInventory src/Dodge/Data/HUD.hs 41;" C CombineInventoryChange src/Dodge/Data/World.hs 34;" C Common src/Dodge/Zoning/Common.hs 1;" m Compile src/Shader/Compile.hs 1;" m @@ -514,10 +514,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 27;" C -DisplayInventory src/Dodge/Data/HUD.hs 18;" C +DisplayCarte src/Dodge/Data/HUD.hs 28;" C +DisplayInventory src/Dodge/Data/HUD.hs 19;" C DisplayInventory src/Dodge/DisplayInventory.hs 4;" m -DisplayTerminal src/Dodge/Data/HUD.hs 46;" C +DisplayTerminal src/Dodge/Data/HUD.hs 47;" C Distortion src/Dodge/Data/Distortion.hs 12;" t Distortion src/Dodge/Data/Distortion.hs 6;" m Distortion src/Dodge/Distortion.hs 1;" m @@ -663,7 +663,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 39;" C +ExamineInventory src/Dodge/Data/HUD.hs 40;" C Explore src/Dodge/Data/Scenario.hs 4;" C Explosion src/Dodge/Data/SoundOrigin.hs 37;" C Explosion src/Dodge/WorldEvent/Explosion.hs 4;" m @@ -821,10 +821,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 48;" t +HUD src/Dodge/Data/HUD.hs 49;" t HUD src/Dodge/Data/HUD.hs 6;" m HUD src/Dodge/Render/HUD.hs 3;" m -HUDElement src/Dodge/Data/HUD.hs 17;" t +HUDElement src/Dodge/Data/HUD.hs 18;" t HalfRes src/Dodge/Data/Config.hs 95;" C Hammer src/Dodge/Data/Hammer.hs 6;" m Hammer src/Dodge/Hammer.hs 1;" m @@ -1080,7 +1080,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 45;" C +LockedInventory src/Dodge/Data/HUD.hs 46;" 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 @@ -1138,9 +1138,9 @@ Make src/Dodge/Corpse/Make.hs 1;" m MakeDefaultCorpse src/Dodge/Data/Creature.hs 91;" C MakeSound src/Dodge/Data/ActionPlan.hs 43;" C MakeStartCloudAt src/Dodge/Data/WorldEffect.hs 31;" C -ManipulatedObject src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 21;" t +ManipulatedObject src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 20;" t Manipulation src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 14;" t -Manipulator src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 16;" C +Manipulator src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 15;" C Material src/Dodge/Data/Material.hs 11;" t Material src/Dodge/Data/Material.hs 6;" m Material src/Dodge/Material.hs 1;" m @@ -1273,7 +1273,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 36;" C +NoSubInventory src/Dodge/Data/HUD.hs 37;" 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 @@ -1680,11 +1680,12 @@ SecretCabal src/Dodge/Data/Scenario.hs 44;" C SectionCursor src/Dodge/Data/SelectionList.hs 24;" 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 -SelNothing src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 28;" C +SelCloseButton src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 31;" C +SelCloseItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 29;" C +SelNothing src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 27;" 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 +SelectedItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 22;" C SelectionInfo src/Dodge/Data/SelectionList.hs 53;" C SelectionItem src/Dodge/Data/SelectionList.hs 44;" t SelectionList src/Dodge/Data/SelectionList.hs 4;" m @@ -1766,8 +1767,9 @@ SmoothScroll src/Dodge/SmoothScroll.hs 1;" m SocialUpheaval src/Dodge/Data/Scenario.hs 27;" C SolarGovernment src/Dodge/Data/Scenario.hs 53;" C SonicGuns src/Dodge/Item/Weapon/SonicGuns.hs 1;" m -SortInventory src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 22;" C -SortNearby src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 29;" C +SortCloseButton src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 30;" C +SortCloseItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 28;" C +SortInventory src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 21;" C Sound src/Sound/Data.hs 49;" t Sound src/Dodge/Material/Sound.hs 1;" m Sound src/Dodge/WorldEvent/Sound.hs 1;" m @@ -1824,7 +1826,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 35;" t +SubInventory src/Dodge/Data/HUD.hs 36;" t Superfluous src/Shape/Data.hs 38;" C Surface src/Shape/Data.hs 41;" t Survive src/Dodge/Data/Scenario.hs 5;" C @@ -2291,16 +2293,16 @@ _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 51;" f +_carteRot src/Dodge/Data/HUD.hs 53;" f +_carteZoom src/Dodge/Data/HUD.hs 52;" f _ceSideEffect src/Dodge/Data/Universe.hs 62;" f _ceString src/Dodge/Data/Universe.hs 63;" f -_ciFilter src/Dodge/Data/HUD.hs 43;" f +_ciFilter src/Dodge/Data/HUD.hs 44;" f _ciInvIDs src/Dodge/Data/Combine.hs 6;" f _ciItem src/Dodge/Data/Combine.hs 7;" f -_ciSections src/Dodge/Data/HUD.hs 41;" f -_ciSelection src/Dodge/Data/HUD.hs 42;" f +_ciSections src/Dodge/Data/HUD.hs 42;" f +_ciSelection src/Dodge/Data/HUD.hs 43;" 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 @@ -2324,8 +2326,8 @@ _cldtUp src/Dodge/Data/DoubleTree.hs 46;" f _cldtUp src/Dodge/Data/DoubleTree.hs 54;" f _clickPos src/Dodge/Data/Input.hs 46;" f _clickWorldPos src/Dodge/Data/Input.hs 48;" f -_closeInterfaces src/Dodge/Data/HUD.hs 54;" f -_closeItems src/Dodge/Data/HUD.hs 53;" f +_closeInterfaces src/Dodge/Data/HUD.hs 55;" f +_closeItems src/Dodge/Data/HUD.hs 54;" 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 @@ -2435,11 +2437,11 @@ _debug_booleans src/Dodge/Data/Config.hs 57;" f _debug_view_clip_bounds src/Dodge/Data/Config.hs 56;" f _delayedEvents src/Dodge/Data/LWorld.hs 131;" f _dexterity src/Dodge/Data/Creature/Misc.hs 22;" f -_diCloseFilter src/Dodge/Data/HUD.hs 23;" f -_diInvFilter src/Dodge/Data/HUD.hs 22;" f -_diSections src/Dodge/Data/HUD.hs 20;" f -_diSelection src/Dodge/Data/HUD.hs 21;" f -_diSelectionExtra src/Dodge/Data/HUD.hs 24;" f +_diCloseFilter src/Dodge/Data/HUD.hs 24;" f +_diInvFilter src/Dodge/Data/HUD.hs 23;" f +_diSections src/Dodge/Data/HUD.hs 21;" f +_diSelection src/Dodge/Data/HUD.hs 22;" f +_diSelectionExtra src/Dodge/Data/HUD.hs 25;" 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 @@ -2608,7 +2610,7 @@ _heldPos src/Dodge/Data/Input.hs 47;" f _heldTriggerType src/Dodge/Data/Item/Use.hs 42;" f _heldWorldPos src/Dodge/Data/Input.hs 49;" f _hud src/Dodge/Data/World.hs 47;" f -_hudElement src/Dodge/Data/HUD.hs 49;" f +_hudElement src/Dodge/Data/HUD.hs 50;" 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 @@ -2633,9 +2635,9 @@ _ilIsAttached src/Dodge/Data/Item/Location.hs 33;" f _ilIsRoot src/Dodge/Data/Item/Location.hs 31;" f _ilIsSelected src/Dodge/Data/Item/Location.hs 32;" f _ilTuID src/Dodge/Data/Item/Location.hs 35;" f -_imAttachedItems src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 26;" f -_imRootSelectedItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 25;" f -_imSelectedItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 24;" f +_imAttachedItems src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 25;" f +_imRootSelectedItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 24;" f +_imSelectedItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 23;" f _immediateEffect src/Loop/Data.hs 9;" f _immediateUpdate src/Loop/Data.hs 12;" f _impulseUseAheadPos src/Dodge/Data/ActionPlan.hs 56;" f @@ -2648,7 +2650,8 @@ _intelligence src/Dodge/Data/Creature/Misc.hs 23;" f _ipPlacement src/Dodge/Data/GenWorld.hs 132;" f _ipPlacementID src/Dodge/Data/GenWorld.hs 133;" f _isLooping src/Sound/Data.hs 19;" f -_ispCloseObject src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 30;" f +_ispCloseButton src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 31;" f +_ispCloseItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 29;" f _itAmmoSlots src/Dodge/Data/Item.hs 38;" f _itDimension src/Dodge/Data/Item.hs 40;" f _itEffect src/Dodge/Data/Item.hs 36;" f @@ -2729,7 +2732,7 @@ _machines src/Dodge/Data/LWorld.hs 122;" f _magShieldMgMIX src/Dodge/Data/Item/Params.hs 16;" f _magnets src/Dodge/Data/LWorld.hs 124;" f _mainAction src/Dodge/Data/ActionPlan.hs 171;" f -_manObject src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 16;" f +_manObject src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 15;" f _matUBO src/Data/Preload/Render.hs 39;" f _mbAttach src/Dodge/Tree/Compose/Data.hs 10;" f _mbTree src/Dodge/Tree/Compose/Data.hs 10;" f @@ -3092,7 +3095,7 @@ _ssShownItems src/Dodge/Data/SelectionList.hs 33;" 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 19;" f +_subInventory src/Dodge/Data/HUD.hs 20;" 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 @@ -3119,7 +3122,7 @@ _tcEffect src/Dodge/Data/Terminal.hs 120;" f _tcHelp src/Dodge/Data/Terminal.hs 119;" f _tcString src/Dodge/Data/Terminal.hs 117;" f _tempLightSources src/Dodge/Data/LWorld.hs 137;" f -_termID src/Dodge/Data/HUD.hs 46;" f +_termID src/Dodge/Data/HUD.hs 47;" 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 @@ -3368,7 +3371,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 80;" f +andOrRegex src/Dodge/DisplayInventory.hs 79;" f angleBetween src/Geometry.hs 145;" f angleVV src/Geometry/Vector.hs 57;" f angleVV3 src/Geometry/Vector3D.hs 122;" f @@ -3433,7 +3436,7 @@ attachOnward' src/Dodge/Tree/Compose.hs 98;" f attachTree src/Dodge/Tree/Compose.hs 38;" f attentionViewPoint src/Dodge/Creature/ReaderUpdate.hs 66;" f attribSize src/Shader/Compile.hs 306;" f -augInvDirectSelect src/Dodge/Inventory.hs 277;" f +augInvDirectSelect src/Dodge/Inventory.hs 278;" f augmentedHUD src/Dodge/Item/Scope.hs 47;" f autoAmr src/Dodge/Item/Held/Rod.hs 51;" f autoBS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 362;" f @@ -3570,9 +3573,9 @@ centroidNum src/Geometry/Polygon.hs 133;" f chainCreatureUpdates src/Dodge/Creature/ChainUpdates.hs 6;" f chainLinkOrientation src/Dodge/Creature/State.hs 183;" f chainPairs src/Geometry.hs 363;" f -changeSwapClose src/Dodge/Inventory.hs 166;" f -changeSwapSel src/Dodge/Inventory.hs 158;" f -changeSwapWith src/Dodge/Inventory.hs 271;" f +changeSwapClose src/Dodge/Inventory.hs 163;" f +changeSwapSel src/Dodge/Inventory.hs 155;" f +changeSwapWith src/Dodge/Inventory.hs 272;" f charToTuple src/Picture/Base.hs 317;" f charToTupleGrad src/Picture/Text.hs 18;" f chargeIfEquipped src/Dodge/ItEffect.hs 54;" f @@ -3583,15 +3586,15 @@ chaseCritAwarenessUpdate src/Dodge/Creature/Perception.hs 69;" f chaseCritMv src/Dodge/Creature/ReaderUpdate.hs 112;" f chaseCritPerceptionUpdate src/Dodge/Creature/Perception.hs 30;" f chaseCritVocalization src/Dodge/Creature/ChaseCrit.hs 46;" f -checkCombineSelectionExists src/Dodge/DisplayInventory.hs 102;" f -checkConnection src/Dodge/Inventory.hs 244;" f +checkCombineSelectionExists src/Dodge/DisplayInventory.hs 101;" f +checkConnection src/Dodge/Inventory.hs 245;" f checkDeath src/Dodge/Creature/State.hs 75;" f checkEndGame src/Dodge/Update.hs 680;" f checkErrorGL src/Shader/Compile.hs 255;" f checkFBO src/Framebuffer/Check.hs 6;" f checkGLError src/GLHelp.hs 17;" f checkInvSlotsYou src/Dodge/Inventory/CheckSlots.hs 16;" f -checkInventorySelectionExists src/Dodge/DisplayInventory.hs 95;" f +checkInventorySelectionExists src/Dodge/DisplayInventory.hs 94;" f checkTermDist src/Dodge/Update.hs 297;" f checkWallLeft src/Dodge/LevelGen/StaticWalls/Deprecated.hs 29;" f checkWallRight src/Dodge/LevelGen/StaticWalls.hs 54;" f @@ -3631,11 +3634,12 @@ clickGetCreature src/Dodge/Debug.hs 83;" f clipV src/Geometry/Vector.hs 47;" f clipZoom src/Dodge/Update/Camera.hs 215;" f clockCycle src/Dodge/Clock.hs 9;" f -closeItemToSelectionItem src/Dodge/Inventory/SelectionList.hs 54;" f -closeItemToTextPictures src/Dodge/Inventory/SelectionList.hs 68;" f +closeButtonToSelectionItem src/Dodge/Inventory/SelectionList.hs 69;" f +closeItemToSelectionItem src/Dodge/Inventory/SelectionList.hs 56;" f +closeItemToTextPictures src/Dodge/Inventory/SelectionList.hs 80;" f closeObjEq src/Dodge/Inventory/CloseObject.hs 15;" f closeObjPos src/Dodge/Inventory/CloseObject.hs 10;" f -closeObjectInfo src/Dodge/Render/HUD.hs 205;" f +closeObjectInfo src/Dodge/Render/HUD.hs 206;" f closestCreatureID src/Dodge/Debug.hs 92;" f closestPointOnLine src/Geometry/Intersect.hs 251;" f closestPointOnLineParam src/Geometry/Intersect.hs 267;" f @@ -3669,7 +3673,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 315;" f +combineInventoryExtra src/Dodge/Render/HUD.hs 321;" f combineItemListYouX src/Dodge/Combine.hs 33;" f combineList src/Dodge/Combine.hs 20;" f combineRooms src/Dodge/Room/Procedural.hs 152;" f @@ -3977,9 +3981,9 @@ disconnectTerminal src/Dodge/Terminal.hs 217;" f displayConfig src/Dodge/Menu.hs 196;" f displayControls src/Dodge/Menu.hs 206;" f displayFrameTicks src/Dodge/Render/Picture.hs 39;" f -displayFreeSlots src/Dodge/DisplayInventory.hs 207;" f -displayIndents src/Dodge/DisplayInventory.hs 120;" f -displaySectionsSizes src/Dodge/DisplayInventory.hs 115;" f +displayFreeSlots src/Dodge/DisplayInventory.hs 212;" f +displayIndents src/Dodge/DisplayInventory.hs 119;" f +displaySectionsSizes src/Dodge/DisplayInventory.hs 114;" f displayTerminalLineString src/Dodge/Update.hs 422;" f dist src/Geometry/Vector.hs 179;" f dist3 src/Geometry/Vector3D.hs 101;" f @@ -4043,7 +4047,7 @@ doRoomOutPlacements src/Dodge/Layout.hs 107;" f doRoomPlacements src/Dodge/Layout.hs 122;" f doRoomShift src/Dodge/Room/Link.hs 33;" f doScopeZoom src/Dodge/Update/Camera.hs 141;" f -doSectionSize src/Dodge/DisplayInventory.hs 229;" f +doSectionSize src/Dodge/DisplayInventory.hs 234;" f doSideEffects appDodge/Main.hs 118;" f doStep src/Dodge/ArcStep.hs 9;" f doStrategyActions src/Dodge/Creature/ReaderUpdate.hs 164;" f @@ -4093,7 +4097,7 @@ drawCircFlare src/Dodge/Flare.hs 25;" f drawCollisionTest src/Dodge/Debug/Picture.hs 103;" f drawCombFilter src/Dodge/Render/Picture.hs 214;" f drawCombFilterJump src/Dodge/Render/Picture.hs 157;" f -drawCombineInventory src/Dodge/Render/HUD.hs 164;" f +drawCombineInventory src/Dodge/Render/HUD.hs 165;" f drawConcurrentMessage src/Dodge/Render/Picture.hs 62;" f drawCorpse src/Dodge/Corpse/Draw.hs 6;" f drawCrInfo src/Dodge/Debug/Picture.hs 342;" f @@ -4108,13 +4112,13 @@ drawDoubleLampCover src/Dodge/Prop/Draw.hs 81;" f drawDrag src/Dodge/Render/Picture.hs 164;" f drawDragDrop src/Dodge/Render/Picture.hs 175;" f drawDragPickup src/Dodge/Render/Picture.hs 184;" f -drawDragSelect src/Dodge/Render/HUD.hs 143;" f +drawDragSelect src/Dodge/Render/HUD.hs 144;" f drawDragSelect src/Dodge/Render/Picture.hs 161;" f -drawDragSelected src/Dodge/Render/HUD.hs 130;" f +drawDragSelected src/Dodge/Render/HUD.hs 131;" f drawEmptySet src/Dodge/Render/Picture.hs 112;" f drawEnergyBall src/Dodge/EnergyBall/Draw.hs 8;" f drawEquipment src/Dodge/Creature/Picture.hs 140;" f -drawExamineInventory src/Dodge/Render/HUD.hs 178;" f +drawExamineInventory src/Dodge/Render/HUD.hs 179;" 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 @@ -4123,11 +4127,11 @@ drawFooterText src/Dodge/Render/MenuScreen.hs 74;" f drawForceField src/Dodge/Wall/Draw.hs 11;" f drawGapPlus src/Dodge/Render/Picture.hs 224;" f drawGib src/Dodge/Prop/Draw.hs 28;" f -drawHUD src/Dodge/Render/HUD.hs 46;" f +drawHUD src/Dodge/Render/HUD.hs 47;" f drawInputMenu src/Dodge/Render/MenuScreen.hs 21;" f drawInspectWall src/Dodge/Debug/Picture.hs 209;" f drawInspectWalls src/Dodge/Debug/Picture.hs 197;" f -drawInventory src/Dodge/Render/HUD.hs 53;" f +drawInventory src/Dodge/Render/HUD.hs 54;" f drawLabCrossCol src/Dodge/Render/Label.hs 8;" f drawLampCover src/Dodge/Prop/Draw.hs 44;" f drawLaser src/Dodge/Laser/Draw.hs 6;" f @@ -4144,7 +4148,7 @@ drawMenuCursor src/Dodge/Render/Picture.hs 145;" f drawMenuOrHUD src/Dodge/Render/Picture.hs 57;" f drawMenuScreen src/Dodge/Render/MenuScreen.hs 15;" f drawMouseCursor src/Dodge/Render/Picture.hs 73;" f -drawMouseOver src/Dodge/Render/HUD.hs 102;" f +drawMouseOver src/Dodge/Render/HUD.hs 103;" f drawMousePosition src/Dodge/Debug/Picture.hs 319;" f drawMovingShape src/Dodge/Prop/Draw.hs 67;" f drawMovingShapeCol src/Dodge/Prop/Draw.hs 73;" f @@ -4158,11 +4162,11 @@ 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 223;" f +drawRBOptions src/Dodge/Render/HUD.hs 229;" f drawRadarSweep src/Dodge/RadarSweep/Draw.hs 7;" f drawRemoteShell src/Dodge/Projectile/Draw.hs 30;" f drawReturn src/Dodge/Render/Picture.hs 118;" f -drawRootCursor src/Dodge/Render/HUD.hs 69;" f +drawRootCursor src/Dodge/Render/HUD.hs 70;" f drawSSCursor src/Dodge/SelectionSections/Draw.hs 31;" f drawSSMultiCursor src/Dodge/SelectionSections/Draw.hs 42;" f drawSelect src/Dodge/Render/Picture.hs 203;" f @@ -4177,13 +4181,13 @@ drawShell src/Dodge/Projectile/Draw.hs 20;" f drawShockwave src/Dodge/Shockwave/Draw.hs 7;" f drawSpark src/Dodge/Spark/Draw.hs 6;" f drawStaticBall src/Dodge/EnergyBall/Draw.hs 14;" f -drawSubInventory src/Dodge/Render/HUD.hs 156;" f +drawSubInventory src/Dodge/Render/HUD.hs 157;" f drawSweep src/Dodge/Render/Picture.hs 240;" f drawSwitch src/Dodge/Button/Draw.hs 15;" f drawSwitchWire src/Dodge/LevelGen/Switch.hs 28;" f drawTargetLaser src/Dodge/Particle/Draw.hs 6;" f drawTargeting src/Dodge/Targeting/Draw.hs 13;" f -drawTerminalDisplay src/Dodge/Render/HUD.hs 341;" f +drawTerminalDisplay src/Dodge/Render/HUD.hs 347;" f drawTeslaArc src/Dodge/Tesla/Arc/Draw.hs 7;" f drawText src/Picture/Base.hs 220;" f drawTitle src/Dodge/Render/MenuScreen.hs 57;" f @@ -4228,10 +4232,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 343;" f +enterCombineInv src/Dodge/DisplayInventory.hs 344;" f eqConstr src/SameConstr.hs 17;" f eqPosText src/Dodge/Equipment/Text.hs 6;" f -equipAllocString src/Dodge/Render/HUD.hs 281;" f +equipAllocString src/Dodge/Render/HUD.hs 287;" f equipInfo src/Dodge/Item/Info.hs 103;" f equipItemSPic src/Dodge/Item/Draw/SPic.hs 65;" f equipPosition src/Dodge/Item/Draw.hs 30;" f @@ -4277,7 +4281,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 174;" f +filterSectionsPair src/Dodge/DisplayInventory.hs 179;" f findBlips src/Dodge/RadarSweep.hs 44;" f findBoundDists src/Dodge/Update/Camera.hs 235;" f findClosePoint src/Dodge/LevelGen/StaticWalls.hs 155;" f @@ -4323,7 +4327,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 210;" f +floorItemPickupInfo src/Dodge/Render/HUD.hs 211;" f floorItemSPic src/Dodge/Render/ShapePicture.hs 119;" f floorWire src/Dodge/Wire.hs 13;" f foamSprayFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 412;" f @@ -4406,7 +4410,7 @@ getNodePos src/Dodge/Path.hs 31;" f getPretty src/AesonHelp.hs 7;" f getPrettyShort src/AesonHelp.hs 10;" f getPromptTM src/Dodge/Terminal/Type.hs 8;" f -getRootItemBounds src/Dodge/Render/HUD.hs 92;" f +getRootItemBounds src/Dodge/Render/HUD.hs 93;" f getSensor src/Dodge/Terminal.hs 189;" f getSmoothScrollValue src/Dodge/SmoothScroll.hs 17;" f getSplitString src/Dodge/Debug/Terminal.hs 123;" f @@ -4512,7 +4516,7 @@ homingDrawType src/Dodge/Projectile/Create.hs 12;" f homingModule src/Dodge/Item/Scope.hs 32;" f horPipe src/Dodge/Placement/Instance/Pipe.hs 9;" f hotkeyToScancode src/Dodge/Creature/YourControl.hs 54;" f -hotkeyToString src/Dodge/Inventory/SelectionList.hs 39;" f +hotkeyToString src/Dodge/Inventory/SelectionList.hs 41;" f humanoidAIList src/Dodge/Humanoid.hs 181;" f hvBulletAmmo src/Dodge/Item/Weapon/Bullet.hs 31;" f iShape src/Dodge/Placement/Instance/LightSource.hs 74;" f @@ -4589,21 +4593,21 @@ interweave src/Justify.hs 17;" f intsToPos src/Dodge/Room/Modify/Girder.hs 160;" f invAdj src/Dodge/Item/Grammar.hs 188;" f invCursorParams src/Dodge/ListDisplayParams.hs 38;" f -invDimColor src/Dodge/DisplayInventory.hs 201;" f +invDimColor src/Dodge/DisplayInventory.hs 206;" f invDisplayParams src/Dodge/ListDisplayParams.hs 32;" f -invHead src/Dodge/Render/HUD.hs 379;" f +invHead src/Dodge/Render/HUD.hs 385;" f invLDT src/Dodge/Item/Grammar.hs 171;" f invRootMap src/Dodge/Item/Grammar.hs 180;" f invRootTrees src/Dodge/Item/Grammar.hs 210;" f -invSelectionItem src/Dodge/Inventory/SelectionList.hs 23;" f -invSelectionItem' src/Dodge/Inventory/SelectionList.hs 20;" f +invSelectionItem src/Dodge/Inventory/SelectionList.hs 25;" f +invSelectionItem' src/Dodge/Inventory/SelectionList.hs 22;" f invShiftPointBy src/Dodge/ShiftPoint.hs 8;" f invSideEff src/Dodge/Creature/State.hs 162;" f invSize src/Dodge/Inventory/CheckSlots.hs 30;" f invTrees src/Dodge/Item/Grammar.hs 198;" f invTrees' src/Dodge/Item/Grammar.hs 202;" f -inventoryExtra src/Dodge/Render/HUD.hs 290;" f -inventoryExtraH src/Dodge/Render/HUD.hs 301;" f +inventoryExtra src/Dodge/Render/HUD.hs 296;" f +inventoryExtraH src/Dodge/Render/HUD.hs 307;" f inventoryX src/Dodge/Creature.hs 115;" f inverseSelBoundaryDown src/Dodge/SelectionSections.hs 256;" f inverseSelBoundaryUp src/Dodge/SelectionSections.hs 243;" f @@ -4620,7 +4624,7 @@ invisibleWall src/Dodge/Placement/Instance/Wall.hs 16;" f isAmmoIntLink src/Dodge/HeldUse.hs 206;" f isAnimate src/Dodge/Creature/Test.hs 136;" f isCognizant src/Dodge/Creature/Perception.hs 105;" f -isConnected src/Dodge/Inventory.hs 254;" f +isConnected src/Dodge/Inventory.hs 255;" f isElectrical src/Dodge/Data/Damage.hs 42;" f isFrictionless src/Dodge/Creature/State.hs 341;" f isGas src/Dodge/Euse.hs 64;" f @@ -4763,13 +4767,13 @@ listConfig src/Dodge/Menu.hs 199;" f listControls src/Dodge/Menu.hs 212;" f listCursorChooseBorderScale src/Dodge/Render/List.hs 140;" f listGuard src/Dodge/Creature/ReaderUpdate.hs 188;" f -listSelectionColorPicture src/Dodge/DisplayInventory.hs 335;" f +listSelectionColorPicture src/Dodge/DisplayInventory.hs 336;" f litCorridor90 src/Dodge/Room/RoadBlock.hs 26;" f llleft src/Dodge/Item/Grammar.hs 107;" f llright src/Dodge/Item/Grammar.hs 114;" f lmt src/MatrixHelper.hs 43;" f lnkBothAnd src/Dodge/Room/Procedural.hs 121;" f -lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 368;" f +lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 374;" f lnkPosDir src/Dodge/RoomLink.hs 97;" f loadDodgeConfig src/Dodge/Config/Load.hs 9;" f loadMusic src/Dodge/SoundLogic/LoadSound.hs 21;" f @@ -5079,7 +5083,7 @@ optionScreenUpdate src/Dodge/Update/Input/ScreenLayer.hs 41;" f optionValueOffset src/Dodge/Menu/Option.hs 89;" f optionsOptions src/Dodge/Menu.hs 108;" f optionsToSelections src/Dodge/Menu/Option.hs 51;" f -orRegex src/Dodge/DisplayInventory.hs 83;" f +orRegex src/Dodge/DisplayInventory.hs 82;" f orange src/Color.hs 25;" f orderAround3 src/Geometry/Vector3D.hs 105;" f orderAroundFirst src/Geometry/Polygon.hs 82;" f @@ -5182,7 +5186,7 @@ placeSpotRoomRand src/Dodge/Placement/PlaceSpot.hs 89;" f placeSpotUsingLink src/Dodge/Placement/PlaceSpot.hs 70;" f placeString src/Dodge/Render/MenuScreen.hs 63;" f placeWallPoly src/Dodge/Placement/PlaceSpot.hs 162;" f -plainRegex src/Dodge/DisplayInventory.hs 204;" f +plainRegex src/Dodge/DisplayInventory.hs 209;" f plateCraft src/Dodge/Item/Craftable.hs 45;" f playIfFree src/Sound.hs 136;" f playPositionalSoundQueue src/Sound.hs 144;" f @@ -5410,9 +5414,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 39;" f -regexCombs src/Dodge/DisplayInventory.hs 70;" f +regexCombs src/Dodge/DisplayInventory.hs 69;" f regexIn src/Regex.hs 4;" f -regexList src/Dodge/DisplayInventory.hs 377;" f +regexList src/Dodge/DisplayInventory.hs 378;" f regexList src/Regex.hs 7;" f reload1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 442;" f reloadLevelStart src/Dodge/Save.hs 71;" f @@ -5562,8 +5566,8 @@ screenPolygon src/Dodge/Base/Window.hs 17;" f screenPolygonBord src/Dodge/Base/Window.hs 27;" f screenPosAbs src/Dodge/ScreenPos.hs 15;" f screenToWorldPos src/Dodge/Base/Coordinate.hs 53;" f -scrollAugInvSel src/Dodge/Inventory.hs 285;" f -scrollAugNextInSection src/Dodge/Inventory.hs 298;" f +scrollAugInvSel src/Dodge/Inventory.hs 286;" f +scrollAugNextInSection src/Dodge/Inventory.hs 299;" f scrollCommandStrings src/Dodge/Update/Scroll.hs 135;" f scrollCommands src/Dodge/Update/Scroll.hs 132;" f scrollDebugInfoInt src/Dodge/Debug.hs 47;" f @@ -5583,21 +5587,21 @@ seagullWhistle1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 372;" f seagullWhistleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 530;" f searchIfDamaged src/Dodge/Creature/ReaderUpdate.hs 203;" f secondColumnParams src/Dodge/ListDisplayParams.hs 45;" f -sectionsDesiredLines src/Dodge/DisplayInventory.hs 213;" f -sectionsSizes src/Dodge/DisplayInventory.hs 218;" f +sectionsDesiredLines src/Dodge/DisplayInventory.hs 218;" f +sectionsSizes src/Dodge/DisplayInventory.hs 223;" 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 428;" f -selNumPosCardinal src/Dodge/Render/HUD.hs 451;" f +selNumPos src/Dodge/Render/HUD.hs 434;" f +selNumPosCardinal src/Dodge/Render/HUD.hs 457;" f selSecDrawCursor src/Dodge/Render/List.hs 130;" f selSecDrawCursorAt src/Dodge/Render/List.hs 108;" f -selSecSelCol src/Dodge/Render/HUD.hs 476;" f +selSecSelCol src/Dodge/Render/HUD.hs 482;" f selSecSelSize src/Dodge/SelectionSections.hs 182;" f selSecYint src/Dodge/SelectionSections.hs 191;" f selectCreatureDebugItem src/Dodge/Debug.hs 39;" f selectUse src/Dodge/SelectUse.hs 10;" f -selectedCloseItem src/Dodge/Inventory.hs 309;" f +selectedCloseItem src/Dodge/Inventory.hs 310;" f sensAboveDoor src/Dodge/Room/SensorDoor.hs 63;" f sensInsideDoor src/Dodge/Room/SensorDoor.hs 69;" f senseDamage src/Dodge/Machine/Update.hs 152;" f @@ -5727,7 +5731,7 @@ showInt src/Dodge/Item/Info.hs 31;" f showIntsString src/Dodge/Tree/Compose.hs 129;" f showManObj src/Dodge/TestString.hs 49;" f showTerminalError src/Dodge/Debug/Terminal.hs 76;" f -showTimeFlow src/Dodge/TestString.hs 96;" f +showTimeFlow src/Dodge/TestString.hs 98;" f shrinkPolyOnEdges src/Geometry/Polygon.hs 136;" f shrinkVert src/Geometry/Polygon.hs 140;" f shuffle src/RandomHelp.hs 49;" f @@ -5871,11 +5875,11 @@ stripZ src/Geometry/Vector3D.hs 97;" f subInvX src/Dodge/ListDisplayParams.hs 50;" f subMap src/TreeHelp.hs 118;" f subZipWith src/Dodge/Placement/Instance/Wall.hs 115;" f -swapAnyExtraSelection src/Dodge/Inventory.hs 235;" f +swapAnyExtraSelection src/Dodge/Inventory.hs 236;" f swapInOutLinks src/Dodge/RoomLink.hs 80;" f swapIndices src/ListHelp.hs 50;" f -swapInvItems src/Dodge/Inventory.hs 184;" f -swapItemWith src/Dodge/Inventory.hs 261;" f +swapInvItems src/Dodge/Inventory.hs 185;" f +swapItemWith src/Dodge/Inventory.hs 262;" f swarmCrit src/Dodge/Creature/SwarmCrit.hs 10;" f swarmUsingCenter src/Dodge/Creature/Boid.hs 171;" f switchDoor src/Dodge/Placement/Instance/Door.hs 96;" f @@ -5978,7 +5982,7 @@ toTopLeft src/Dodge/Render/List.hs 224;" 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 36;" f +toggleCombineInv src/Dodge/DisplayInventory.hs 35;" f toggleCommand src/Dodge/Terminal.hs 196;" f toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 79;" f toggleJust src/MaybeHelp.hs 41;" f @@ -6113,14 +6117,14 @@ updateCamera src/Dodge/Update/Camera.hs 31;" f updateCloseObjects src/Dodge/Inventory.hs 126;" f updateCloud src/Dodge/Update.hs 708;" f updateClouds src/Dodge/Update.hs 552;" f -updateCombinePositioning src/Dodge/DisplayInventory.hs 41;" f -updateCombineSections src/Dodge/DisplayInventory.hs 47;" f +updateCombinePositioning src/Dodge/DisplayInventory.hs 40;" f +updateCombineSections src/Dodge/DisplayInventory.hs 46;" 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 92;" f updateDelayedEvents src/Dodge/Update.hs 771;" f -updateDisplaySections src/Dodge/DisplayInventory.hs 127;" f +updateDisplaySections src/Dodge/DisplayInventory.hs 126;" f updateDistortion src/Dodge/Distortion.hs 5;" f updateDistortions src/Dodge/Update.hs 513;" f updateEnergyBall src/Dodge/EnergyBall.hs 46;" f @@ -6144,7 +6148,7 @@ updateInGameCamera src/Dodge/Update/Camera.hs 70;" f updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 333;" f updateInstantBullets src/Dodge/Update.hs 629;" f updateInv src/Dodge/Creature/State.hs 152;" f -updateInventoryPositioning src/Dodge/DisplayInventory.hs 88;" f +updateInventoryPositioning src/Dodge/DisplayInventory.hs 87;" f updateItemTargeting src/Dodge/Creature/State.hs 268;" f updateItemWithOrientation src/Dodge/Creature/State.hs 194;" f updateKeyInGame src/Dodge/Update/Input/InGame.hs 327;" f @@ -6184,8 +6188,8 @@ updateRootItemID src/Dodge/Inventory/Location.hs 35;" 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 284;" f -updateSectionsPositioning src/Dodge/DisplayInventory.hs 255;" f +updateSection src/Dodge/DisplayInventory.hs 287;" f +updateSectionsPositioning src/Dodge/DisplayInventory.hs 260;" f updateSeenWalls src/Dodge/Update.hs 660;" f updateShockwave src/Dodge/Shockwave/Update.hs 12;" f updateShockwaves src/Dodge/Update.hs 534;" f @@ -6363,7 +6367,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 186;" f -yourAugmentedItem src/Dodge/Render/HUD.hs 217;" f +yourAugmentedItem src/Dodge/Render/HUD.hs 218;" 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