diff --git a/ghcidOutput b/ghcidOutput index ae7b37f81..a32bf4a86 100644 --- a/ghcidOutput +++ b/ghcidOutput @@ -1 +1 @@ -All good (593 modules, at 22:35:05) +All good (593 modules, at 23:30:12) diff --git a/src/Dodge/Data/HUD.hs b/src/Dodge/Data/HUD.hs index 962ba2871..038d3b855 100644 --- a/src/Dodge/Data/HUD.hs +++ b/src/Dodge/Data/HUD.hs @@ -51,7 +51,7 @@ data HUD = HUD , _carteZoom :: Float , _carteRot :: Float , _closeItems :: [NewInt FloorInt] - , _closeInterfaces :: [Int] + , _closeButtons :: [Int] } makeLenses ''HUD diff --git a/src/Dodge/Default/World.hs b/src/Dodge/Default/World.hs index 4ffb7b158..86745b143 100644 --- a/src/Dodge/Default/World.hs +++ b/src/Dodge/Default/World.hs @@ -157,7 +157,7 @@ defaultHUD = , _carteZoom = 0.5 , _carteRot = 0 , _closeItems = mempty - , _closeInterfaces = mempty + , _closeButtons = mempty } defaultDisplayInventory :: HUDElement diff --git a/src/Dodge/DisplayInventory.hs b/src/Dodge/DisplayInventory.hs index e0e184cc3..fe0d23a6f 100644 --- a/src/Dodge/DisplayInventory.hs +++ b/src/Dodge/DisplayInventory.hs @@ -156,7 +156,7 @@ updateDisplaySections w cfig = interfaces = (5,btitems) btitems = IM.fromDistinctAscList . zip [0 ..] $ - mapMaybe (closeButtonToSelectionItem w) (w ^. hud . closeInterfaces) + mapMaybe (closeButtonToSelectionItem w) (w ^. hud . closeButtons) 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) diff --git a/src/Dodge/Inventory.hs b/src/Dodge/Inventory.hs index 3b9dc32e9..ba07613b9 100644 --- a/src/Dodge/Inventory.hs +++ b/src/Dodge/Inventory.hs @@ -9,16 +9,13 @@ module Dodge.Inventory ( scrollAugInvSel, crNumFreeSlots, crInvSize, - selectedCloseItem, setInvPosFromSS, module Dodge.Inventory.RBList, swapInvItems, scrollAugNextInSection, - -- isFilteringInv, swapItemWith, ) where -import Control.Applicative import Control.Monad import Data.Function import qualified Data.IntSet as IS @@ -123,7 +120,7 @@ updateCloseObjects :: World -> World updateCloseObjects w = w & hud . closeItems %~ f - & hud . closeInterfaces %~ g + & hud . closeButtons %~ g where g oldbts = intersect oldbts cbts `union` cbts f olditems = intersect olditems citems `union` citems @@ -156,33 +153,6 @@ changeSwapSel yi w where f g i m = fst <$> g i m ---changeSwapClose :: --- (Int -> IM.IntMap (SelectionItem ()) -> Maybe Int) -> --- Int -> --- World -> --- World ---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 --- return $ --- w --- & swapAnyExtraSelection i k --- & cWorld . lWorld . creatures . ix 0 . crManipulation . manObject . ispCloseItem --- %~ doswap --- & hud . closeItems %~ swapIndices i k --- & hud . hudElement . diSelection . _Just . _2 %~ doswap --- & worldEventFlags . at InventoryChange ?~ () - ---changeSwapClose' :: --- (Int -> IM.IntMap (SelectionItem ()) -> Maybe Int) -> --- Int -> --- World -> --- World - changeSwapOther :: ((Int -> Identity Int) -> ManipulatedObject -> Identity ManipulatedObject) -> Int -> @@ -334,10 +304,10 @@ scrollAugNextInSection w = sss <- he ^? diSections return $ he & diSelection %~ nextInSectionSS sss -selectedCloseItem :: World -> Maybe FloorItem -selectedCloseItem w = do - i <- - you w ^? crManipulation . manObject . ispCloseItem - <|> fmap fst (IM.lookupMin =<< w ^? hud . hudElement . diSections . ix 3 . ssItems) - flitid <- w ^? hud . closeItems . ix i . unNInt - w ^? cWorld . lWorld . floorItems . unNIntMap . ix flitid +--selectedCloseItem :: World -> Maybe FloorItem +--selectedCloseItem w = do +-- i <- +-- you w ^? crManipulation . manObject . ispCloseItem +-- <|> fmap fst (IM.lookupMin =<< w ^? hud . hudElement . diSections . ix 3 . ssItems) +-- flitid <- w ^? hud . closeItems . ix i . unNInt +-- w ^? cWorld . lWorld . floorItems . unNIntMap . ix flitid diff --git a/src/Dodge/Inventory/SelectionList.hs b/src/Dodge/Inventory/SelectionList.hs index ffb1b83c2..f07440cdf 100644 --- a/src/Dodge/Inventory/SelectionList.hs +++ b/src/Dodge/Inventory/SelectionList.hs @@ -2,12 +2,10 @@ module Dodge.Inventory.SelectionList ( invSelectionItem, - invSelectionItem', closeItemToSelectionItem, closeButtonToSelectionItem, ) where -import NewInt import Dodge.Data.ComposedItem import Dodge.Data.SelectionList import Dodge.Data.World @@ -16,12 +14,10 @@ import Dodge.Item.Display import Dodge.Item.Grammar import Dodge.Item.InventoryColor import LensHelp +import NewInt import Padding import Picture.Base -invSelectionItem' :: Creature -> Int -> ComposedItem -> SelectionItem () -invSelectionItem' = invSelectionItem 0 - invSelectionItem :: Int -> Creature -> Int -> ComposedItem -> SelectionItem () invSelectionItem indent cr i ci = SelectionItem @@ -57,30 +53,31 @@ 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 - , _siColor = col - , _siOffX = 0 - , _siPayload = () - } + return + SelectionItem + { _siPictures = pics + , _siHeight = length pics + , _siIsSelectable = True + , _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 = () - } + return + SelectionItem + { _siPictures = [_btText bt] + , _siHeight = 1 + , _siIsSelectable = True + , _siColor = yellow + , _siOffX = 0 + , _siPayload = () + } closeItemToTextPictures :: FloorItem -> ([String], Color) -closeItemToTextPictures flit = - let it = _flIt flit - in (basicItemDisplay it, itemInvColor . pciToCI $ basePCI it) - - +closeItemToTextPictures flit = + (basicItemDisplay it, itemInvColor . pciToCI $ basePCI it) + where + it = _flIt flit diff --git a/src/Dodge/Render/HUD.hs b/src/Dodge/Render/HUD.hs index 12f26112e..e859d9fcd 100644 --- a/src/Dodge/Render/HUD.hs +++ b/src/Dodge/Render/HUD.hs @@ -224,7 +224,7 @@ yourAugmentedItem f x g w = case you w ^? crManipulation . manObject of return . g $ Left flit -- g . Left $ w ^?! hud . closeItems . ix i Just (SelCloseButton i) -> fromMaybe x $ do - j <- w ^? hud . closeInterfaces . ix i + j <- w ^? hud . closeButtons . ix i flit <- w ^? cWorld . lWorld . buttons . ix j return . g $ Right flit _ -> x diff --git a/src/Dodge/Update/Input/InGame.hs b/src/Dodge/Update/Input/InGame.hs index a4fe85fac..9e4aee71f 100644 --- a/src/Dodge/Update/Input/InGame.hs +++ b/src/Dodge/Update/Input/InGame.hs @@ -3,6 +3,7 @@ module Dodge.Update.Input.InGame ( updateMouseInGame, ) where +import NewInt import Control.Applicative import Control.Monad import Data.Foldable @@ -47,35 +48,28 @@ updateUseInputInGame u = updateFunctionKeys $ case u ^. uvWorld . hud . hudEleme & uvWorld . worldEventFlags . at CombineInventoryChange ?~ () _ | inInvRegex (u ^. uvWorld) -> - u & uvWorld . hud . hudElement %~ dodisplayregexinput (-1) + u & uvWorld . hud . hudElement + %~ dodisplayregexinput diInvFilter diInvFilter (-1) & uvWorld . worldEventFlags . at InventoryChange ?~ () & uvWorld %~ setInvPosFromSS _ | inCloseRegex (u ^. uvWorld) -> - u & uvWorld . hud . hudElement %~ dodisplayregexinput' 2 + u & uvWorld . hud . hudElement + %~ dodisplayregexinput diCloseFilter diCloseFilter 2 & uvWorld . worldEventFlags . at InventoryChange ?~ () & uvWorld %~ setInvPosFromSS _ -> M.foldlWithKey' updateKeyInGame u pkeys where pkeys = u ^. uvWorld . input . pressedKeys - dodisplayregexinput x di = fromMaybe di $ do + dodisplayregexinput filterprism filterlens x di = fromMaybe di $ do sss <- di ^? diSections msel <- di ^? diSelection - filts <- di ^? diInvFilter + filts <- di ^? filterprism let (sss', msel', filts') = doRegexInput (u ^. uvWorld . input) x sss msel filts return $ di & diSections .~ sss' & diSelection .~ msel' - & diInvFilter .~ filts' - dodisplayregexinput' x di = fromMaybe di $ do - sss <- di ^? diSections - msel <- di ^? diSelection - filts <- di ^? diCloseFilter - let (sss', msel', filts') = doRegexInput (u ^. uvWorld . input) x sss msel filts - return $ - di & diSections .~ sss' - & diSelection .~ msel' - & diCloseFilter .~ filts' + & filterlens .~ filts' docombineregexinput sss msel ci = fromMaybe ci $ do filts <- ci ^? ciFilter let (sss', msel', filts') = doRegexInput (u ^. uvWorld . input) (-1) sss msel filts @@ -453,27 +447,43 @@ pauseGame u = u & uvScreenLayers .~ [pauseMenu u] spaceAction :: World -> World spaceAction w = case w ^. hud . hudElement of DisplayCarte -> w & hud . carteCenter .~ theLoc - DisplayInventory{_subInventory = NoSubInventory{}} -> case Left <$> selectedCloseItem w of - Just (Left flit) -> - pickUpItem 0 flit w + DisplayInventory{_subInventory = NoSubInventory{}} -> fromMaybe w $ do + cobj <- selCloseObj w + return $ case cobj of -- case Left <$> selectedCloseItem w of + (Left flit) -> pickUpItem 0 flit w & worldEventFlags . at InventoryChange ?~ () - Just (Right but) -> - doButtonEvent (_btEvent but) but w + (Right but) -> doButtonEvent (_btEvent but) but w & worldEventFlags . at InventoryChange ?~ () - _ -> w - DisplayInventory{_subInventory = DisplayTerminal{}} -> - w & hud . hudElement . subInventory - .~ NoSubInventory --MouseInvNothing + DisplayInventory{_subInventory = DisplayTerminal{}} -> w + & hud . hudElement . subInventory .~ NoSubInventory & worldEventFlags . at InventoryChange ?~ () - _ -> - w & hud . hudElement . subInventory - .~ NoSubInventory --MouseInvNothing + _ -> w & hud . hudElement . subInventory .~ NoSubInventory where theLoc = doWorldPos (w ^?! cWorld . lWorld . seenLocations . ix (w ^. cWorld . lWorld . selLocation) . _1) w +selCloseObj :: World -> Maybe (Either FloorItem Button) +selCloseObj w = selobj <|> firstcitem <|> firstcbut + where + selobj = do + (i,j) <- w ^? hud . hudElement . diSelection . _Just + case i of + 3 -> do + NInt k <- w ^? hud . closeItems . ix j + fmap Left $ w ^? cWorld . lWorld . floorItems . unNIntMap . ix k + 5 -> do + k <- w ^? hud . closeButtons . ix j + fmap Right $ w ^? cWorld . lWorld . buttons . ix k + _ -> Nothing + firstcitem = do + NInt k <- w ^? hud . closeItems . ix 0 + fmap Left $ w ^? cWorld . lWorld . floorItems . unNIntMap . ix k + firstcbut = do + k <- w ^? hud . closeButtons . ix 0 + fmap Right $ w ^? cWorld . lWorld . buttons . ix k + toggleMap :: Universe -> Universe toggleMap u = case u ^. uvWorld . hud . hudElement of DisplayCarte -> diff --git a/tags b/tags index 6991123d4..266a4423d 100644 --- a/tags +++ b/tags @@ -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 41;" C +CombineInventory src/Dodge/Data/HUD.hs 40;" 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 28;" C -DisplayInventory src/Dodge/Data/HUD.hs 19;" C +DisplayCarte src/Dodge/Data/HUD.hs 27;" C +DisplayInventory src/Dodge/Data/HUD.hs 18;" C DisplayInventory src/Dodge/DisplayInventory.hs 4;" m -DisplayTerminal src/Dodge/Data/HUD.hs 47;" C +DisplayTerminal src/Dodge/Data/HUD.hs 46;" 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 40;" C +ExamineInventory src/Dodge/Data/HUD.hs 39;" 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 49;" t +HUD src/Dodge/Data/HUD.hs 48;" t HUD src/Dodge/Data/HUD.hs 6;" m HUD src/Dodge/Render/HUD.hs 3;" m -HUDElement src/Dodge/Data/HUD.hs 18;" t +HUDElement src/Dodge/Data/HUD.hs 17;" 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 46;" C +LockedInventory src/Dodge/Data/HUD.hs 45;" 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 @@ -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 37;" C +NoSubInventory src/Dodge/Data/HUD.hs 36;" 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 @@ -1826,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 36;" t +SubInventory src/Dodge/Data/HUD.hs 35;" t Superfluous src/Shape/Data.hs 38;" C Surface src/Shape/Data.hs 41;" t Survive src/Dodge/Data/Scenario.hs 5;" C @@ -2293,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 51;" f -_carteRot src/Dodge/Data/HUD.hs 53;" f -_carteZoom src/Dodge/Data/HUD.hs 52;" f +_carteCenter src/Dodge/Data/HUD.hs 50;" f +_carteRot src/Dodge/Data/HUD.hs 52;" f +_carteZoom src/Dodge/Data/HUD.hs 51;" f _ceSideEffect src/Dodge/Data/Universe.hs 62;" f _ceString src/Dodge/Data/Universe.hs 63;" f -_ciFilter src/Dodge/Data/HUD.hs 44;" f +_ciFilter src/Dodge/Data/HUD.hs 43;" f _ciInvIDs src/Dodge/Data/Combine.hs 6;" f _ciItem src/Dodge/Data/Combine.hs 7;" f -_ciSections src/Dodge/Data/HUD.hs 42;" f -_ciSelection src/Dodge/Data/HUD.hs 43;" f +_ciSections src/Dodge/Data/HUD.hs 41;" f +_ciSelection src/Dodge/Data/HUD.hs 42;" 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 @@ -2326,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 55;" f -_closeItems src/Dodge/Data/HUD.hs 54;" f +_closeInterfaces src/Dodge/Data/HUD.hs 54;" f +_closeItems src/Dodge/Data/HUD.hs 53;" f _cloudEBO src/Data/Preload/Render.hs 49;" f _cloudShader src/Data/Preload/Render.hs 48;" f _cloudVBO src/Data/Preload/Render.hs 47;" f @@ -2437,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 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 +_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 _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 @@ -2610,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 50;" f +_hudElement src/Dodge/Data/HUD.hs 49;" f _humanoidAI src/Dodge/Data/Creature/Misc.hs 69;" f _iaLoaded src/Dodge/Data/Item/Use/Consumption.hs 22;" f _iaMax src/Dodge/Data/Item/Use/Consumption.hs 21;" f @@ -3095,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 20;" f +_subInventory src/Dodge/Data/HUD.hs 19;" 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 @@ -3122,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 47;" f +_termID src/Dodge/Data/HUD.hs 46;" 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 @@ -3436,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 278;" f +augInvDirectSelect src/Dodge/Inventory.hs 277;" 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 @@ -3573,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 163;" f -changeSwapSel src/Dodge/Inventory.hs 155;" f -changeSwapWith src/Dodge/Inventory.hs 272;" f +changeSwapOther src/Dodge/Inventory.hs 158;" f +changeSwapSel src/Dodge/Inventory.hs 150;" f +changeSwapWith src/Dodge/Inventory.hs 270;" f charToTuple src/Picture/Base.hs 317;" f charToTupleGrad src/Picture/Text.hs 18;" f chargeIfEquipped src/Dodge/ItEffect.hs 54;" f @@ -3587,7 +3587,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 checkCombineSelectionExists src/Dodge/DisplayInventory.hs 101;" f -checkConnection src/Dodge/Inventory.hs 245;" f +checkConnection src/Dodge/Inventory.hs 242;" f checkDeath src/Dodge/Creature/State.hs 75;" f checkEndGame src/Dodge/Update.hs 680;" f checkErrorGL src/Shader/Compile.hs 255;" f @@ -3636,7 +3636,7 @@ clipZoom src/Dodge/Update/Camera.hs 215;" f clockCycle src/Dodge/Clock.hs 9;" 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 +closeItemToTextPictures src/Dodge/Inventory/SelectionList.hs 81;" f closeObjEq src/Dodge/Inventory/CloseObject.hs 15;" f closeObjPos src/Dodge/Inventory/CloseObject.hs 10;" f closeObjectInfo src/Dodge/Render/HUD.hs 206;" f @@ -3673,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 321;" f +combineInventoryExtra src/Dodge/Render/HUD.hs 324;" f combineItemListYouX src/Dodge/Combine.hs 33;" f combineList src/Dodge/Combine.hs 20;" f combineRooms src/Dodge/Room/Procedural.hs 152;" f @@ -3951,7 +3951,7 @@ denormalEdges src/Polyhedra.hs 136;" f destroyAt src/Dodge/Bullet.hs 201;" f destroyBlock src/Dodge/Block.hs 56;" f destroyDoor src/Dodge/Block.hs 85;" f -destroyInvItem src/Dodge/Inventory.hs 51;" f +destroyInvItem src/Dodge/Inventory.hs 50;" f destroyLS src/Dodge/LightSource.hs 91;" f destroyLSFlashAt src/Dodge/LightSource.hs 101;" f destroyMachine src/Dodge/Machine/Destroy.hs 12;" f @@ -4162,7 +4162,7 @@ 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 229;" f +drawRBOptions src/Dodge/Render/HUD.hs 232;" 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 @@ -4187,7 +4187,7 @@ 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 347;" f +drawTerminalDisplay src/Dodge/Render/HUD.hs 350;" 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 @@ -4235,7 +4235,7 @@ encircleP src/Dodge/Creature/Boid.hs 27;" 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 287;" f +equipAllocString src/Dodge/Render/HUD.hs 290;" 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 @@ -4595,7 +4595,7 @@ invAdj src/Dodge/Item/Grammar.hs 188;" f invCursorParams src/Dodge/ListDisplayParams.hs 38;" f invDimColor src/Dodge/DisplayInventory.hs 206;" f invDisplayParams src/Dodge/ListDisplayParams.hs 32;" f -invHead src/Dodge/Render/HUD.hs 385;" f +invHead src/Dodge/Render/HUD.hs 388;" 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 @@ -4606,8 +4606,8 @@ 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 296;" f -inventoryExtraH src/Dodge/Render/HUD.hs 307;" f +inventoryExtra src/Dodge/Render/HUD.hs 299;" f +inventoryExtraH src/Dodge/Render/HUD.hs 310;" f inventoryX src/Dodge/Creature.hs 115;" f inverseSelBoundaryDown src/Dodge/SelectionSections.hs 256;" f inverseSelBoundaryUp src/Dodge/SelectionSections.hs 243;" f @@ -4624,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 255;" f +isConnected src/Dodge/Inventory.hs 252;" f isElectrical src/Dodge/Data/Damage.hs 42;" f isFrictionless src/Dodge/Creature/State.hs 341;" f isGas src/Dodge/Euse.hs 64;" f @@ -4773,7 +4773,7 @@ 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 374;" f +lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 377;" f lnkPosDir src/Dodge/RoomLink.hs 97;" f loadDodgeConfig src/Dodge/Config/Load.hs 9;" f loadMusic src/Dodge/SoundLogic/LoadSound.hs 21;" f @@ -5473,7 +5473,7 @@ rightPad src/Padding.hs 22;" f rightPadNoSquash src/Padding.hs 26;" f rlPosDir src/Dodge/RoomLink.hs 94;" f rmInLinks src/Dodge/RoomLink.hs 138;" f -rmInvItem src/Dodge/Inventory.hs 64;" f +rmInvItem src/Dodge/Inventory.hs 63;" f rmLinksOfType src/Dodge/RoomLink.hs 135;" f rmOutLinks src/Dodge/RoomLink.hs 138;" f roomC src/Dodge/Room/Room.hs 38;" f @@ -5566,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 286;" f -scrollAugNextInSection src/Dodge/Inventory.hs 299;" f +scrollAugInvSel src/Dodge/Inventory.hs 285;" f +scrollAugNextInSection src/Dodge/Inventory.hs 298;" f scrollCommandStrings src/Dodge/Update/Scroll.hs 135;" f scrollCommands src/Dodge/Update/Scroll.hs 132;" f scrollDebugInfoInt src/Dodge/Debug.hs 47;" f @@ -5592,16 +5592,16 @@ 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 434;" f -selNumPosCardinal src/Dodge/Render/HUD.hs 457;" f +selNumPos src/Dodge/Render/HUD.hs 437;" f +selNumPosCardinal src/Dodge/Render/HUD.hs 460;" f selSecDrawCursor src/Dodge/Render/List.hs 130;" f selSecDrawCursorAt src/Dodge/Render/List.hs 108;" f -selSecSelCol src/Dodge/Render/HUD.hs 482;" f +selSecSelCol src/Dodge/Render/HUD.hs 485;" 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 310;" f +selectedCloseItem src/Dodge/Inventory.hs 309;" 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 @@ -5875,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 236;" f +swapAnyExtraSelection src/Dodge/Inventory.hs 233;" f swapInOutLinks src/Dodge/RoomLink.hs 80;" f swapIndices src/ListHelp.hs 50;" f -swapInvItems src/Dodge/Inventory.hs 185;" f -swapItemWith src/Dodge/Inventory.hs 262;" f +swapInvItems src/Dodge/Inventory.hs 182;" f +swapItemWith src/Dodge/Inventory.hs 259;" 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 @@ -6114,7 +6114,7 @@ updateBulVel src/Dodge/Bullet.hs 50;" f updateBullet src/Dodge/Bullet.hs 28;" f updateBullets src/Dodge/Update.hs 523;" f updateCamera src/Dodge/Update/Camera.hs 31;" f -updateCloseObjects src/Dodge/Inventory.hs 126;" f +updateCloseObjects src/Dodge/Inventory.hs 121;" f updateCloud src/Dodge/Update.hs 708;" f updateClouds src/Dodge/Update.hs 552;" f updateCombinePositioning src/Dodge/DisplayInventory.hs 40;" f