diff --git a/ghcidOutput b/ghcidOutput index dcbdca3cf..e7b4e48f2 100644 --- a/ghcidOutput +++ b/ghcidOutput @@ -1 +1 @@ -All good (594 modules, at 14:06:19) +All good (593 modules, at 16:12:32) diff --git a/src/Dodge/Data/HUD.hs b/src/Dodge/Data/HUD.hs index a4d929064..9af8712e2 100644 --- a/src/Dodge/Data/HUD.hs +++ b/src/Dodge/Data/HUD.hs @@ -50,11 +50,10 @@ data HUD = HUD , _carteCenter :: Point2 , _carteZoom :: Float , _carteRot :: Float - , _closeObjects :: [Either FloorItem Button] + , _closeItems :: [FloorItem] + , _closeInterfaces :: [Button] } makeLenses ''HUD makeLenses ''HUDElement makeLenses ''SubInventory - ---makeLenses ''MouseInventorySelection diff --git a/src/Dodge/Default/World.hs b/src/Dodge/Default/World.hs index 587539660..4ffb7b158 100644 --- a/src/Dodge/Default/World.hs +++ b/src/Dodge/Default/World.hs @@ -156,7 +156,8 @@ defaultHUD = , _carteCenter = V2 0 0 , _carteZoom = 0.5 , _carteRot = 0 - , _closeObjects = [] + , _closeItems = mempty + , _closeInterfaces = mempty } defaultDisplayInventory :: HUDElement diff --git a/src/Dodge/DisplayInventory.hs b/src/Dodge/DisplayInventory.hs index 8a17ba5fa..a213cc107 100644 --- a/src/Dodge/DisplayInventory.hs +++ b/src/Dodge/DisplayInventory.hs @@ -1,5 +1,5 @@ -- {-# OPTIONS_GHC -fno-full-laziness #-} -{-# LANGUAGE TupleSections #-} +--{-# LANGUAGE TupleSections #-} module Dodge.DisplayInventory ( toggleCombineInv, @@ -52,10 +52,10 @@ updateCombineSections :: updateCombineSections w cfig = updateSectionsPositioning (const 5) + (const 0) (w ^? hud . hudElement . subInventory . ciSelection . _Just) (getAvailableListLines secondColumnParams cfig) [(0, sclose), (-1, sfclose)] - (IM.fromAscList [(-1,0),(0,0)]) where filtcurs = w ^? hud . hudElement . subInventory . ciSelection . _Just . _1 == Just (-1) (sfclose, sclose) = @@ -117,6 +117,13 @@ displaySectionsSizes 0 = 10 displaySectionsSizes 3 = 10 displaySectionsSizes _ = 3 +displayIndents :: Int -> Int +displayIndents (-3) = 2 +displayIndents 0 = 2 +displayIndents 3 = 2 +displayIndents 5 = 2 +displayIndents _ = 0 + updateDisplaySections :: World -> Configuration -> @@ -125,10 +132,10 @@ updateDisplaySections :: updateDisplaySections w cfig = updateSectionsPositioning displaySectionsSizes + displayIndents mselpos (getAvailableListLines (invDisplayParams w) cfig) [statushead,statusdisplay,invhead,invx,youx, nearbyhead, closex] - (IM.fromAscList [(-4,0),(-3,2),(-2,0),(-1,0),(0,2),(1,0),(2,0),(3,2)]) where mselpos = w ^? hud . hudElement . diSelection . _Just invfiltcurs = mselpos ^? _Just . _1 == Just (-1) @@ -147,21 +154,19 @@ updateDisplaySections w cfig = youx = (1, youitems) 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) + statusdisplay = (-3,IM.singleton 0 $ SelectionInfo ["HEALTH: "++show (_crHP cr)] 1 False white 0) invhead = if null sfinv then makehead "INVENTORY" (-2) else filtinv youitems = IM.singleton 0 $ SelectionItem [thetext] 1 True invDimColor 2 () thetext = displayFreeSlots (crNumFreeSlots cr) closeitms = IM.fromDistinctAscList . zip [0 ..] $ - map closeObjectToSelectionItem (w ^. hud . closeObjects) + map closeItemToSelectionItem (w ^. hud . closeItems) invitems = IM.mapWithKey (\k (indent, x) -> invSelectionItem indent cr k (x ^. locLDT . ldtValue)) (fmap (first removeindentiffiltering) . allInvLocs $ _crInv cr) - -- this clearly deserves refactoring, also check if drawInventory/iextra - -- needs it at the same time removeindentiffiltering = - if maybe False isFilteringInv (w ^? hud . hudElement . diSections) + if maybe False (not . null) (w ^? hud . hudElement . diInvFilter . _Just) then const 0 else id cr = you w @@ -218,7 +223,7 @@ sectionsSizes :: IM.IntMap Int sectionsSizes x f is sss = doSectionSize extraavailable mintaken is sss mempty where - mintaken = IM.mapWithKey (\k y -> min (f k) y) sss + mintaken = IM.mapWithKey (min . f) sss extraavailable = x - sum mintaken doSectionSize :: @@ -249,26 +254,25 @@ doSectionSize extraavailable mintaken is sss done = fromMaybe done $ do updateSectionsPositioning :: (Int -> Int) -> -- for determining each sections minimum size + (Int -> Int) -> -- for determining each sections indent Maybe (Int, Int) -> Int -> [(Int, IM.IntMap (SelectionItem a))] -> - IM.IntMap Int -> IM.IntMap (SelectionSection a) -> IM.IntMap (SelectionSection a) -updateSectionsPositioning f mselpos allavailablelines lsss indents sss = - IM.intersectionWith updateSection ls mss `h` ssizes `g` offsets `h` indents +updateSectionsPositioning f h mselpos allavailablelines lsss sss = + IM.intersectionWithKey (\k -> updateSection (h k) (m k)) ls ssizes `g` offsets where offsets = fmap _ssOffset sss - mss = IM.mapWithKey m ssizes - m k _ = do + m k = do (k', i) <- mselpos guard $ k == k' return i ls = IM.fromList lsss - h = IM.intersectionWith ($) +-- h = IM.intersectionWith ($) -- defaults non-existing offsets to 0 g = merge (mapMissing (const ($ 0))) dropMissing (zipWithMatched (const ($))) - lk = fromMaybe [] $ fmap ((: []) . fst) mselpos + lk = maybe [] ((: []) . fst) mselpos ssizes = sectionsSizes allavailablelines @@ -277,13 +281,13 @@ updateSectionsPositioning f mselpos allavailablelines lsss indents sss = $ sectionsDesiredLines ls updateSection :: - IM.IntMap (SelectionItem a) -> - Maybe Int -> Int -> + Maybe Int -> + IM.IntMap (SelectionItem a) -> Int -> Int -> SelectionSection a -updateSection sis mcsel availablelines oldoffset indent = +updateSection indent mcsel sis availablelines oldoffset = SelectionSection { _ssItems = sis , _ssOffset = offset @@ -363,10 +367,10 @@ enterCombineInv cfig w = } combsection = updateSection - cm - (Just 0) - availablelines 0 + (Just 0) + cm + availablelines 0 regexList :: String -> [String] -> Bool diff --git a/src/Dodge/Inventory.hs b/src/Dodge/Inventory.hs index eb317b1f0..46f1fa3b6 100644 --- a/src/Dodge/Inventory.hs +++ b/src/Dodge/Inventory.hs @@ -9,39 +9,38 @@ module Dodge.Inventory ( scrollAugInvSel, crNumFreeSlots, crInvSize, - selectedCloseObject, + selectedCloseItem, setInvPosFromSS, module Dodge.Inventory.RBList, swapInvItems, scrollAugNextInSection, - isFilteringInv, + -- isFilteringInv, swapItemWith, ) where -import qualified Data.IntSet as IS -import Control.Monad -import Dodge.Item.Grammar -import Dodge.Data.DoubleTree -import Sound.Data -import Dodge.SoundLogic import Control.Applicative +import Control.Monad +import Data.Function +import qualified Data.IntSet as IS import Data.Maybe import Dodge.Base +import Dodge.Data.DoubleTree import Dodge.Data.SelectionList import Dodge.Data.World ---import Dodge.DisplayInventory import Dodge.Euse import Dodge.Inventory.CheckSlots -import Dodge.Inventory.CloseObject import Dodge.Inventory.Location import Dodge.Inventory.RBList import Dodge.ItEffect +import Dodge.Item.Grammar import Dodge.SelectionSections +import Dodge.SoundLogic import Geometry import qualified IntMapHelp as IM import LensHelp import ListHelp import NewInt +import Sound.Data --import Padding @@ -90,12 +89,13 @@ rmInvItem cid invid w = -- & updateCreatureItemLocations cid pointcid = cWorld . lWorld . creatures . ix cid - updateselectionextra | cid == 0 = hud . hudElement . diSelectionExtra .~ mempty + updateselectionextra + | cid == 0 = hud . hudElement . diSelectionExtra .~ mempty | otherwise = id updateselection | cid == 0 && cr ^? crManipulation . manObject . imSelectedItem == Just invid = scrollAugInvSel (-1) . scrollAugInvSel 1 -- . updateInventorySectionItems --- id -- . updateInventorySectionItems + -- id -- . updateInventorySectionItems | otherwise = pointcid . crManipulation . manObject . imSelectedItem %~ g @@ -126,36 +126,34 @@ rmInvItem cid invid w = updateCloseObjects :: World -> World updateCloseObjects w = w - & hud . closeObjects .~ newcloseobjects - & updatecursorposifnecessary + & hud . closeItems %~ f + & hud . closeInterfaces %~ g where - newcloseobjects = unionBy closeObjEq oldCloseFiltered currentClose - updatecursorposifnecessary = - case w ^? cWorld . lWorld . creatures . ix 0 . crManipulation . manObject . ispCloseObject of - Just i - | i >= length newcloseobjects -> scrollAugInvSel 1 - | isNothing (w ^? hud . hudElement . diSections . ix 3 . ssItems . ix i) -> - scrollAugInvSel (-1) - _ -> id - filt = filter $ \obj -> dist ypos (closeObjPos obj) < 40 && hasButtonLOS ypos (closeObjPos obj) w + -- 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 = + filter (isclose . _flItPos) + . IM.elems + $ w ^. cWorld . lWorld . floorItems . unNIntMap + isclose pos = dist ypos pos < 40 && hasButtonLOS ypos pos w ypos = _crPos $ you w activeButtons = - map Right - . filter ((/=) BtNoLabel . _btState) + filter ((/=) BtNoLabel . _btState) . IM.elems $ w ^. cWorld . lWorld . buttons - currentClose = - filt $ - map Left (IM.elems $ w ^. cWorld . lWorld . floorItems . unNIntMap) - ++ activeButtons - oldClose = filt $ mapMaybe updatebyid $ w ^. hud . closeObjects - oldCloseFiltered = intersectBy closeObjEq oldClose currentClose - updatebyid (Left flid) = - fmap Left $ - w - ^? cWorld . lWorld . floorItems . unNIntMap - . ix (_unNInt $ _flItID flid) - updatebyid (Right btid) = fmap Right $ w ^? cWorld . lWorld . buttons . ix (_btID btid) + -- updatecursorposifnecessary = + -- case w ^? cWorld . lWorld . creatures . ix 0 . crManipulation . manObject . ispCloseObject of + -- Just i + -- | i >= length newcloseobjects -> scrollAugInvSel 1 + -- | isNothing (w ^? hud . hudElement . diSections . ix 3 . ssItems . ix i) -> + -- scrollAugInvSel (-1) + -- _ -> id changeSwapSel :: Int -> World -> World changeSwapSel yi w @@ -178,7 +176,7 @@ changeSwapClose f i w = fromMaybe w $ do & swapAnyExtraSelection i k & cWorld . lWorld . creatures . ix 0 . crManipulation . manObject . ispCloseObject .~ k - & hud . closeObjects %~ swapIndices i k + & hud . closeItems %~ swapIndices i k & hud . hudElement . diSelection . _Just . _2 .~ k & worldEventFlags . at InventoryChange ?~ () @@ -196,7 +194,7 @@ swapInvItems f i w = fromMaybe w $ do Just (0, j) | j == i -> hud . hudElement . diSelection . _Just . _2 .~ k _ -> id return $ - w + w & swapAnyExtraSelection i k & checkConnection InventorySound disconnectItemS i k & cWorld . lWorld . creatures . ix 0 %~ updatecreature k @@ -207,15 +205,16 @@ swapInvItems f i w = fromMaybe w $ do & cWorld . lWorld %~ crUpdateItemLocations 0 -- the double application is inefficient, but necessary without further changes -- a rethink is maybe in order & checkConnection InventoryConnectSound connectItemS i k - -- & checkconnect k InventoryConnectSound connectItemS where --- cpos = fromMaybe 0 $ w ^? cWorld . lWorld . creatures . ix 0 . crPos --- checkconnect k stype s w' --- | p (i+1) || p (i-1) --- || p (k+1) || p (k-1) = soundStart stype cpos s Nothing w' --- | otherwise = w' --- where --- p j = maybe False not $ w' ^? cWorld . lWorld . creatures . ix 0 . crInv . ix j . itLocation . ilIsRoot + -- & checkconnect k InventoryConnectSound connectItemS + + -- cpos = fromMaybe 0 $ w ^? cWorld . lWorld . creatures . ix 0 . crPos + -- checkconnect k stype s w' + -- | p (i+1) || p (i-1) + -- || p (k+1) || p (k-1) = soundStart stype cpos s Nothing w' + -- | otherwise = w' + -- where + -- p j = maybe False not $ w' ^? cWorld . lWorld . creatures . ix 0 . crInv . ix j . itLocation . ilIsRoot updatecreature k = (crInv %~ IM.safeSwapKeys i k) . (crManipulation . manObject . imSelectedItem .~ k) @@ -238,8 +237,9 @@ swapAnyExtraSelection i k w = fromMaybe w $ do is <- w ^? hud . hudElement . diSelectionExtra let f = if i `IS.member` is then IS.insert k else id g = if k `IS.member` is then IS.insert i else id - return $ w & hud . hudElement . diSelectionExtra - %~ (f . g . IS.delete i . IS.delete k) + return $ + w & hud . hudElement . diSelectionExtra + %~ (f . g . IS.delete i . IS.delete k) checkConnection :: SoundOrigin -> SoundID -> Int -> Int -> World -> World checkConnection so s i j w = fromMaybe w $ do @@ -253,16 +253,17 @@ checkConnection so s i j w = fromMaybe w $ do isConnected :: LocationLDT b a -> Bool isConnected x = case x ^. locLdtContext of - TopLDT -> not (null $ x ^. locLDT . ldtRight) - || not (null $ x ^. locLDT . ldtLeft) + TopLDT -> + not (null $ x ^. locLDT . ldtRight) + || not (null $ x ^. locLDT . ldtLeft) _ -> True -swapItemWith :: +swapItemWith :: (Int -> IM.IntMap (SelectionItem ()) -> Maybe Int) -> - (Int,Int) -> + (Int, Int) -> World -> World -swapItemWith f (j,i) w = case j of +swapItemWith f (j, i) w = case j of 0 -> w & swapInvItems f i 3 -> w & changeSwapClose f i _ -> w @@ -296,22 +297,18 @@ scrollAugInvSel yi w scrollAugNextInSection :: World -> World scrollAugNextInSection w = - w & hud . hudElement %~ doscroll - & worldEventFlags . at InventoryChange ?~ () - & setInvPosFromSS - & cWorld . lWorld %~ crUpdateItemLocations 0 + w & hud . hudElement %~ doscroll + & worldEventFlags . at InventoryChange ?~ () + & setInvPosFromSS + & cWorld . lWorld %~ crUpdateItemLocations 0 where doscroll he = fromMaybe he $ do sss <- he ^? diSections return $ he & diSelection %~ nextInSectionSS sss -selectedCloseObject :: World -> Maybe (Either FloorItem Button) -selectedCloseObject w = do +selectedCloseItem :: World -> Maybe FloorItem +selectedCloseItem w = do i <- you w ^? crManipulation . manObject . ispCloseObject <|> fmap fst (IM.lookupMin =<< w ^? hud . hudElement . diSections . ix 3 . ssItems) - w ^? hud . closeObjects . ix i - -isFilteringInv :: IM.IntMap (SelectionSection a) -> Bool -isFilteringInv = not . null . (^. ix (-1) . ssItems) - + w ^? hud . closeItems . ix i diff --git a/src/Dodge/Inventory/CloseObject.hs b/src/Dodge/Inventory/CloseObject.hs deleted file mode 100644 index af42a1cd1..000000000 --- a/src/Dodge/Inventory/CloseObject.hs +++ /dev/null @@ -1,18 +0,0 @@ -module Dodge.Inventory.CloseObject ( - closeObjPos, - closeObjEq, -) where - -import Dodge.Data.Button -import Dodge.Data.FloorItem -import Geometry - -closeObjPos :: Either FloorItem Button -> Point2 -closeObjPos e = case e of - Right x -> _btPos x - Left x -> _flItPos x - -closeObjEq :: Either FloorItem Button -> Either FloorItem Button -> Bool -closeObjEq (Right x) (Right y) = _btID x == _btID y -closeObjEq (Left x) (Left y) = _flItID x == _flItID y -closeObjEq _ _ = False diff --git a/src/Dodge/Inventory/SelectionList.hs b/src/Dodge/Inventory/SelectionList.hs index 12e42cb19..239453287 100644 --- a/src/Dodge/Inventory/SelectionList.hs +++ b/src/Dodge/Inventory/SelectionList.hs @@ -1,9 +1,9 @@ -{-# LANGUAGE LambdaCase #-} +--{-# LANGUAGE LambdaCase #-} module Dodge.Inventory.SelectionList ( invSelectionItem, invSelectionItem', - closeObjectToSelectionItem, + closeItemToSelectionItem, ) where import Dodge.Data.ComposedItem @@ -51,8 +51,8 @@ hotkeyToString x = case x of Hotkey9 -> "[9]" Hotkey0 -> "[0]" -closeObjectToSelectionItem :: Either FloorItem Button -> SelectionItem () -closeObjectToSelectionItem e = +closeItemToSelectionItem :: FloorItem -> SelectionItem () +closeItemToSelectionItem e = SelectionItem { _siPictures = pics , _siHeight = length pics @@ -63,11 +63,11 @@ closeObjectToSelectionItem e = , _siPayload = () } where - (pics, col) = closeObjectToTextPictures e + (pics, col) = closeItemToTextPictures e -closeObjectToTextPictures :: Either FloorItem Button -> ([String], Color) -closeObjectToTextPictures = \case - Left flit -> +closeItemToTextPictures :: FloorItem -> ([String], Color) +closeItemToTextPictures flit = let it = _flIt flit in (basicItemDisplay it, itemInvColor . pciToCI $ basePCI it) - Right bt -> ([_btText bt], yellow) + +-- Right bt -> ([_btText bt], yellow) diff --git a/src/Dodge/Render/HUD.hs b/src/Dodge/Render/HUD.hs index 16874b993..2e7193971 100644 --- a/src/Dodge/Render/HUD.hs +++ b/src/Dodge/Render/HUD.hs @@ -4,10 +4,10 @@ module Dodge.Render.HUD ( drawHUD, ) where -import qualified Data.IntSet as IS import Control.Applicative import Control.Lens import Control.Monad +import qualified Data.IntSet as IS import qualified Data.Map.Strict as M import Data.Maybe --import qualified Data.Vector as V @@ -47,19 +47,9 @@ drawHUD :: Configuration -> World -> Picture drawHUD cfig w = case w ^. hud . hudElement of DisplayCarte -> drawCarte cfig w DisplayInventory{_diSections = sections, _subInventory = subinv} -> - drawHP cfig w - <> drawInventory sections w cfig + drawInventory sections w cfig <> drawSubInventory subinv cfig w -drawHP :: Configuration -> World -> Picture -drawHP cfig = - dShadCol white - . translate (halfWidth cfig) (halfHeight cfig - 40) - . scale 0.2 0.2 - . textRight - . show - . (^?! cWorld . lWorld . creatures . ix 0 . crHP) - drawInventory :: IM.IntMap (SelectionSection ()) -> World -> Configuration -> Picture drawInventory sss w cfig = drawSelectionSections sss ldp cfig @@ -72,8 +62,9 @@ drawInventory sss w cfig = curs = invCursorParams w iextra = fromMaybe mempty $ do inv <- w ^? cWorld . lWorld . creatures . ix 0 . crInv - guard . not . isFilteringInv =<< (w ^? hud . hudElement . diSections) - return . inventoryExtra sss cfig w $ invAdj inv + case w ^? hud . hudElement . diInvFilter . _Just of + Just (_ : _) -> Nothing + _ -> return . inventoryExtra sss cfig w $ invAdj inv drawRootCursor :: World -> @@ -109,13 +100,17 @@ getRootItemBounds i inv = do -- this should display while dragging a single inv item drawMouseOver :: Configuration -> World -> Picture -drawMouseOver cfig w = concat (invsel <|> combinvsel - <|> drawDragSelect cfig w) - <> concat (drawDragSelected cfig w) +drawMouseOver cfig w = + concat + ( invsel <|> combinvsel + <|> drawDragSelect cfig w + ) + <> concat (drawDragSelected cfig w) where invsel = do - (j, i) <- w ^? input . mouseContext . mcoInvSelect <|> - w ^? input . mouseContext . mcoInvFilt + (j, i) <- + w ^? input . mouseContext . mcoInvSelect + <|> w ^? input . mouseContext . mcoInvFilt sss <- w ^? hud . hudElement . diSections let idp = invDisplayParams w return . translateScreenPos cfig (invDisplayParams w ^. ldpPos) @@ -123,8 +118,9 @@ drawMouseOver cfig w = concat (invsel <|> combinvsel $ selSecDrawCursorAt 15 idp curs sss (j, i) curs = BackdropCursor combinvsel = do - (j, i) <- (w ^? input . mouseContext . mcoCombSelect) - <|> (w ^? input . mouseContext . mcoCombCombine) + (j, i) <- + (w ^? input . mouseContext . mcoCombSelect) + <|> (w ^? input . mouseContext . mcoCombCombine) sss <- w ^? hud . hudElement . subInventory . ciSections let idp = secondColumnParams return . translateScreenPos cfig (idp ^. ldpPos) @@ -135,23 +131,27 @@ drawDragSelected :: Configuration -> World -> Maybe Picture drawDragSelected cfig w = do ys <- w ^? hud . hudElement . diSelectionExtra guard $ not (IS.null ys) - (i,_) <- w ^? hud . hudElement . diSelection . _Just + (i, _) <- w ^? hud . hudElement . diSelection . _Just sss <- w ^? hud . hudElement . diSections let idp = invDisplayParams w let f x = (selSecDrawCursorAt 15 idp BackdropCursor sss (i, x) <>) return . translateScreenPos cfig (invDisplayParams w ^. ldpPos) - . color (withAlpha 0.2 white) . IS.foldr f mempty $ ys + . color (withAlpha 0.2 white) + . IS.foldr f mempty + $ ys drawDragSelect :: Configuration -> World -> Maybe Picture drawDragSelect cfig w = do - OverInvDragSelect (i,j) mselend <- w ^? input . mouseContext - (a,b) <- mselend + OverInvDragSelect (i, j) mselend <- w ^? input . mouseContext + (a, b) <- mselend guard $ i == a sss <- w ^? hud . hudElement . diSections let idp = invDisplayParams w let f x = selSecDrawCursorAt 15 idp BackdropCursor sss (i, x) return . translateScreenPos cfig (invDisplayParams w ^. ldpPos) - . color (withAlpha 0.2 white) . foldMap f $ [min j b .. max j b] + . color (withAlpha 0.2 white) + . foldMap f + $ [min j b .. max j b] drawSubInventory :: SubInventory -> Configuration -> World -> Picture drawSubInventory subinv cfig w = case subinv of @@ -181,14 +181,15 @@ drawExamineInventory cfig w = <> drawSelectionList secondColumnParams cfig - ( map f - ( makeParagraph 55 $ - yourAugmentedItem - itemInfo - (yourInfo (you w)) - (closeObjectInfo (crNumFreeSlots (you w))) - w - ) + ( map + f + ( makeParagraph 55 $ + yourAugmentedItem + itemInfo + (yourInfo (you w)) + (closeObjectInfo (crNumFreeSlots (you w))) + w + ) ) where f str = @@ -216,7 +217,7 @@ 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 $ w ^?! hud . closeObjects . ix i + Just (SelCloseObject i) -> g . Left $ w ^?! hud . closeItems . ix i _ -> x drawRBOptions :: Configuration -> World -> Picture @@ -323,7 +324,7 @@ combineInventoryExtra sss msel cfig w = fromMaybe mempty $ do let col = _siColor si lnks <- si ^? siPayload . ciInvIDs return (lnkMidPosInvSelsCol cfig w j col lnks) - <> foldMap invcursor lnks + <> foldMap invcursor lnks where invcursor i = do sss' <- w ^? hud . hudElement . diSections @@ -344,7 +345,7 @@ drawTerminalDisplay tid cfig w = fromMaybe mempty $ do invHead cfig (_tmTitle tm ++ ":T" ++ show tid) <> drawSelectionList secondColumnParams cfig (thesellist tm) <> color (withAlpha 0.5 green) (drawSelectionListBackground secondColumnParams cfig 15) - -- when changing the 15, change isOverTerminalScreen + -- when changing the 15, change isOverTerminalScreen <> color (dark $ _tmExternalColor tm) (drawTitleBackground cfig) where toselitm (str, col) = SelectionItem [str] 1 True col 0 () @@ -361,7 +362,8 @@ drawTerminalDisplay tid cfig w = fromMaybe mempty $ do displayInputText tm s | _tmStatus tm == TerminalReady = partcommand tm ++ getPromptTM (tm ^. tmType) ++ s | otherwise = "" - -- | hasfoc = clockCycle 10 (V.fromList [[cFilledRect] , "."]) w + +-- | hasfoc = clockCycle 10 (V.fromList [[cFilledRect] , "."]) w lnkMidPosInvSelsCol :: Configuration -> World -> Int -> Color -> [Int] -> Picture lnkMidPosInvSelsCol cfig w i col = fromMaybe mempty . foldMap f diff --git a/src/Dodge/SelectionSections/Draw.hs b/src/Dodge/SelectionSections/Draw.hs index bf8d6c03b..82ebe25d4 100644 --- a/src/Dodge/SelectionSections/Draw.hs +++ b/src/Dodge/SelectionSections/Draw.hs @@ -26,7 +26,7 @@ drawSelectionSections sss ldp cfig = (_ldpScale ldp) 0 (foldMap - (\ss -> fmap (translate (100*fromIntegral (_ssIndent ss)) 0) $ _ssShownItems ss) sss) + (\ss -> translate (100*fromIntegral (_ssIndent ss)) 0 <$> _ssShownItems ss) sss) drawSSCursor :: IM.IntMap (SelectionSection a) -> diff --git a/src/Dodge/Update/Input/InGame.hs b/src/Dodge/Update/Input/InGame.hs index f95e93a17..a4fe85fac 100644 --- a/src/Dodge/Update/Input/InGame.hs +++ b/src/Dodge/Update/Input/InGame.hs @@ -453,7 +453,7 @@ 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 selectedCloseObject w of + DisplayInventory{_subInventory = NoSubInventory{}} -> case Left <$> selectedCloseItem w of Just (Left flit) -> pickUpItem 0 flit w & worldEventFlags . at InventoryChange ?~ () diff --git a/tags b/tags index 96382f768..6ee623cb6 100644 --- a/tags +++ b/tags @@ -2324,7 +2324,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 -_closeObjects src/Dodge/Data/HUD.hs 53;" 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 @@ -3432,7 +3433,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 276;" 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 @@ -3569,9 +3570,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 168;" f -changeSwapSel src/Dodge/Inventory.hs 160;" f -changeSwapWith src/Dodge/Inventory.hs 270;" f +changeSwapClose src/Dodge/Inventory.hs 166;" f +changeSwapSel src/Dodge/Inventory.hs 158;" f +changeSwapWith src/Dodge/Inventory.hs 271;" f charToTuple src/Picture/Base.hs 317;" f charToTupleGrad src/Picture/Text.hs 18;" f chargeIfEquipped src/Dodge/ItEffect.hs 54;" f @@ -3596,7 +3597,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 160;" f +chooseCursorBorders src/Dodge/Render/List.hs 161;" 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 @@ -3630,11 +3631,11 @@ 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 closeObjEq src/Dodge/Inventory/CloseObject.hs 15;" f closeObjPos src/Dodge/Inventory/CloseObject.hs 10;" f -closeObjectInfo src/Dodge/Render/HUD.hs 204;" f -closeObjectToSelectionItem src/Dodge/Inventory/SelectionList.hs 54;" f -closeObjectToTextPictures src/Dodge/Inventory/SelectionList.hs 68;" f +closeObjectInfo src/Dodge/Render/HUD.hs 205;" f closestCreatureID src/Dodge/Debug.hs 92;" f closestPointOnLine src/Geometry/Intersect.hs 251;" f closestPointOnLineParam src/Geometry/Intersect.hs 267;" f @@ -3668,7 +3669,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 314;" f +combineInventoryExtra src/Dodge/Render/HUD.hs 315;" f combineItemListYouX src/Dodge/Combine.hs 33;" f combineList src/Dodge/Combine.hs 20;" f combineRooms src/Dodge/Room/Procedural.hs 152;" f @@ -3801,7 +3802,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 219;" f +dShadCol src/Dodge/Render/List.hs 220;" f damThingHitWith src/Dodge/WorldEvent/Damage.hs 10;" f damToExpBarrel src/Dodge/Barreloid.hs 57;" f damageBlocksBy src/Dodge/Wall/Damage.hs 36;" f @@ -3890,7 +3891,7 @@ defaultCreatureTargeting src/Dodge/Default/Creature.hs 63;" f defaultCrystalWall src/Dodge/Default/Wall.hs 40;" f defaultDirtBlock src/Dodge/Default/Block.hs 19;" f defaultDirtWall src/Dodge/Default/Wall.hs 61;" f -defaultDisplayInventory src/Dodge/Default/World.hs 162;" f +defaultDisplayInventory src/Dodge/Default/World.hs 163;" f defaultDoor src/Dodge/Default/Door.hs 29;" f defaultDoorWall src/Dodge/Default/Wall.hs 32;" f defaultDrawButton src/Dodge/Button/Draw.hs 28;" f @@ -3946,7 +3947,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 52;" f +destroyInvItem src/Dodge/Inventory.hs 51;" f destroyLS src/Dodge/LightSource.hs 91;" f destroyLSFlashAt src/Dodge/LightSource.hs 101;" f destroyMachine src/Dodge/Machine/Destroy.hs 12;" f @@ -3976,7 +3977,8 @@ 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 202;" f +displayFreeSlots src/Dodge/DisplayInventory.hs 207;" f +displayIndents src/Dodge/DisplayInventory.hs 120;" f displaySectionsSizes src/Dodge/DisplayInventory.hs 115;" f displayTerminalLineString src/Dodge/Update.hs 422;" f dist src/Geometry/Vector.hs 179;" f @@ -4041,7 +4043,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 224;" f +doSectionSize src/Dodge/DisplayInventory.hs 229;" f doSideEffects appDodge/Main.hs 118;" f doStep src/Dodge/ArcStep.hs 9;" f doStrategyActions src/Dodge/Creature/ReaderUpdate.hs 164;" f @@ -4106,9 +4108,9 @@ 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 145;" f +drawDragSelect src/Dodge/Render/HUD.hs 143;" f drawDragSelect src/Dodge/Render/Picture.hs 161;" f -drawDragSelected src/Dodge/Render/HUD.hs 134;" f +drawDragSelected src/Dodge/Render/HUD.hs 130;" 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 @@ -4121,19 +4123,18 @@ 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 -drawHP src/Dodge/Render/HUD.hs 54;" f drawHUD src/Dodge/Render/HUD.hs 46;" 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 63;" f +drawInventory src/Dodge/Render/HUD.hs 53;" 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 drawLightSource src/Dodge/LightSource/Draw.hs 7;" f drawLinearShockwave src/Dodge/LinearShockwave/Draw.hs 10;" f -drawList src/Dodge/Render/List.hs 213;" f -drawListElement src/Dodge/Render/List.hs 191;" f +drawList src/Dodge/Render/List.hs 214;" f +drawListElement src/Dodge/Render/List.hs 192;" f drawListYgapScaleYoff src/Dodge/Render/List.hs 99;" f drawListYoff src/Dodge/Render/List.hs 96;" f drawMachine src/Dodge/Machine/Draw.hs 17;" f @@ -4143,7 +4144,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 111;" f +drawMouseOver src/Dodge/Render/HUD.hs 102;" 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 @@ -4157,13 +4158,13 @@ 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 222;" f +drawRBOptions src/Dodge/Render/HUD.hs 223;" 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 78;" f -drawSSCursor src/Dodge/SelectionSections/Draw.hs 30;" f -drawSSMultiCursor src/Dodge/SelectionSections/Draw.hs 41;" f +drawRootCursor src/Dodge/Render/HUD.hs 69;" 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 drawSelectionList src/Dodge/Render/List.hs 35;" f drawSelectionListBackground src/Dodge/Render/List.hs 51;" f @@ -4182,7 +4183,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 340;" f +drawTerminalDisplay src/Dodge/Render/HUD.hs 341;" 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 @@ -4227,10 +4228,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 338;" f +enterCombineInv src/Dodge/DisplayInventory.hs 343;" f eqConstr src/SameConstr.hs 17;" f eqPosText src/Dodge/Equipment/Text.hs 6;" f -equipAllocString src/Dodge/Render/HUD.hs 280;" f +equipAllocString src/Dodge/Render/HUD.hs 281;" 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 @@ -4276,7 +4277,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 169;" f +filterSectionsPair src/Dodge/DisplayInventory.hs 174;" f findBlips src/Dodge/RadarSweep.hs 44;" f findBoundDists src/Dodge/Update/Camera.hs 235;" f findClosePoint src/Dodge/LevelGen/StaticWalls.hs 155;" f @@ -4322,7 +4323,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 209;" f +floorItemPickupInfo src/Dodge/Render/HUD.hs 210;" f floorItemSPic src/Dodge/Render/ShapePicture.hs 119;" f floorWire src/Dodge/Wire.hs 13;" f foamSprayFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 412;" f @@ -4405,7 +4406,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 101;" f +getRootItemBounds src/Dodge/Render/HUD.hs 92;" f getSensor src/Dodge/Terminal.hs 189;" f getSmoothScrollValue src/Dodge/SmoothScroll.hs 17;" f getSplitString src/Dodge/Debug/Terminal.hs 123;" f @@ -4588,9 +4589,9 @@ 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 196;" f +invDimColor src/Dodge/DisplayInventory.hs 201;" f invDisplayParams src/Dodge/ListDisplayParams.hs 32;" f -invHead src/Dodge/Render/HUD.hs 377;" f +invHead src/Dodge/Render/HUD.hs 379;" 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 @@ -4601,8 +4602,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 289;" f -inventoryExtraH src/Dodge/Render/HUD.hs 300;" f +inventoryExtra src/Dodge/Render/HUD.hs 290;" f +inventoryExtraH src/Dodge/Render/HUD.hs 301;" f inventoryX src/Dodge/Creature.hs 115;" f inverseSelBoundaryDown src/Dodge/SelectionSections.hs 256;" f inverseSelBoundaryUp src/Dodge/SelectionSections.hs 243;" f @@ -4621,7 +4622,6 @@ isAnimate src/Dodge/Creature/Test.hs 136;" f isCognizant src/Dodge/Creature/Perception.hs 105;" f isConnected src/Dodge/Inventory.hs 254;" f isElectrical src/Dodge/Data/Damage.hs 42;" f -isFilteringInv src/Dodge/Inventory.hs 315;" f isFrictionless src/Dodge/Creature/State.hs 341;" f isGas src/Dodge/Euse.hs 64;" f isInLnk src/Dodge/PlacementSpot.hs 160;" f @@ -4761,15 +4761,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 139;" f +listCursorChooseBorderScale src/Dodge/Render/List.hs 140;" f listGuard src/Dodge/Creature/ReaderUpdate.hs 188;" f -listSelectionColorPicture src/Dodge/DisplayInventory.hs 330;" f +listSelectionColorPicture src/Dodge/DisplayInventory.hs 335;" 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 366;" f +lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 368;" f lnkPosDir src/Dodge/RoomLink.hs 97;" f loadDodgeConfig src/Dodge/Config/Load.hs 9;" f loadMusic src/Dodge/SoundLogic/LoadSound.hs 21;" f @@ -5182,7 +5182,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 199;" f +plainRegex src/Dodge/DisplayInventory.hs 204;" f plateCraft src/Dodge/Item/Craftable.hs 45;" f playIfFree src/Sound.hs 136;" f playPositionalSoundQueue src/Sound.hs 144;" f @@ -5412,7 +5412,7 @@ refract src/Dodge/Item/Weapon/LaserPath.hs 40;" f refreshOptionsSelectionList src/Dodge/Menu/Option.hs 39;" f regexCombs src/Dodge/DisplayInventory.hs 70;" f regexIn src/Regex.hs 4;" f -regexList src/Dodge/DisplayInventory.hs 372;" f +regexList src/Dodge/DisplayInventory.hs 377;" f regexList src/Regex.hs 7;" f reload1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 442;" f reloadLevelStart src/Dodge/Save.hs 71;" f @@ -5432,7 +5432,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 196;" f +renderListAt src/Dodge/Render/List.hs 197;" f renderShadows src/Render.hs 117;" f replaceNullWith src/Dodge/Creature/ReaderUpdate.hs 160;" f replacePutID src/Dodge/Placement/Instance/Wall.hs 102;" f @@ -5469,7 +5469,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 65;" f +rmInvItem src/Dodge/Inventory.hs 64;" f rmLinksOfType src/Dodge/RoomLink.hs 135;" f rmOutLinks src/Dodge/RoomLink.hs 138;" f roomC src/Dodge/Room/Room.hs 38;" f @@ -5562,8 +5562,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 284;" f -scrollAugNextInSection src/Dodge/Inventory.hs 297;" 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 @@ -5583,21 +5583,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 208;" f -sectionsSizes src/Dodge/DisplayInventory.hs 213;" f +sectionsDesiredLines src/Dodge/DisplayInventory.hs 213;" f +sectionsSizes src/Dodge/DisplayInventory.hs 218;" 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 426;" f -selNumPosCardinal src/Dodge/Render/HUD.hs 449;" f -selSecDrawCursor src/Dodge/Render/List.hs 129;" f +selNumPos src/Dodge/Render/HUD.hs 428;" f +selNumPosCardinal src/Dodge/Render/HUD.hs 451;" f +selSecDrawCursor src/Dodge/Render/List.hs 130;" f selSecDrawCursorAt src/Dodge/Render/List.hs 108;" f -selSecSelCol src/Dodge/Render/HUD.hs 472;" f +selSecSelCol src/Dodge/Render/HUD.hs 476;" 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 -selectedCloseObject src/Dodge/Inventory.hs 308;" 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 @@ -5871,11 +5871,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 235;" f swapInOutLinks src/Dodge/RoomLink.hs 80;" f swapIndices src/ListHelp.hs 50;" f -swapInvItems src/Dodge/Inventory.hs 186;" f -swapItemWith src/Dodge/Inventory.hs 260;" f +swapInvItems src/Dodge/Inventory.hs 184;" f +swapItemWith src/Dodge/Inventory.hs 261;" 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 @@ -5974,7 +5974,7 @@ toLabel src/Dodge/Cleat.hs 16;" f toLasgunUpdate src/Dodge/Item/Grammar.hs 119;" f toMultiset src/Multiset.hs 64;" f toOnward src/Dodge/Tree/Compose.hs 101;" f -toTopLeft src/Dodge/Render/List.hs 223;" f +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 @@ -6120,7 +6120,7 @@ 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 120;" f +updateDisplaySections src/Dodge/DisplayInventory.hs 127;" f updateDistortion src/Dodge/Distortion.hs 5;" f updateDistortions src/Dodge/Update.hs 513;" f updateEnergyBall src/Dodge/EnergyBall.hs 46;" f @@ -6184,8 +6184,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 279;" f -updateSectionsPositioning src/Dodge/DisplayInventory.hs 250;" f +updateSection src/Dodge/DisplayInventory.hs 284;" f +updateSectionsPositioning src/Dodge/DisplayInventory.hs 255;" 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 +6363,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 216;" f +yourAugmentedItem src/Dodge/Render/HUD.hs 217;" 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