diff --git a/ghcidOutput b/ghcidOutput index 5eb8f3a6c..bb3c15543 100644 --- a/ghcidOutput +++ b/ghcidOutput @@ -1,25 +1 @@ -/home/justin/Haskell/loop/src/Dodge/Update/Input/InGame.hs:128:9-18: warning: [-Wunused-local-binds] - Defined but not used: ‘nfreeslots’ - | -128 | let nfreeslots = crNumFreeSlots cr - | ^^^^^^^^^^ -/home/justin/Haskell/loop/src/Dodge/Update/Input/InGame.hs:130:5-6: warning: [-Wunused-matches] - Defined but not used: ‘xs’ - | -130 | xs <- w ^? hud . hudElement . diSelectionExtra - | ^^ -/home/justin/Haskell/loop/src/Dodge/Update/Input/InGame.hs:131:19: warning: [-Wunused-matches] - Defined but not used: ‘x’ - | -131 | OverInvDrag 3 x <- w ^? input . mouseContext - | ^ -/home/justin/Haskell/loop/src/Dodge/Update/Input/InGame.hs:137:17: warning: [-Wunused-matches] - Defined but not used: ‘i’ - | -137 | OverInvDrag i mpos -> - | ^ -/home/justin/Haskell/loop/src/Dodge/Update/Input/InGame.hs:209:9: warning: [-Wunused-matches] - Defined but not used: ‘j’ - | -209 | (i, j) <- w ^? hud . hudElement . diSelection . _Just - | ^ +All good (594 modules, at 10:49:27) diff --git a/src/Dodge/Data/SelectionList.hs b/src/Dodge/Data/SelectionList.hs index 462fc8b1b..c87c60af9 100644 --- a/src/Dodge/Data/SelectionList.hs +++ b/src/Dodge/Data/SelectionList.hs @@ -29,11 +29,8 @@ data SectionCursor = SectionCursor data SelectionSection a = SelectionSection { _ssItems :: IntMap (SelectionItem a) --- , _ssMinSize :: Int , _ssOffset :: Int , _ssShownItems :: [Picture] - , _ssIndent :: Int - , _ssDescriptor :: String } type IMSS a = IntMap (SelectionSection a) diff --git a/src/Dodge/Default/World.hs b/src/Dodge/Default/World.hs index 08253e649..ed1d8a8ea 100644 --- a/src/Dodge/Default/World.hs +++ b/src/Dodge/Default/World.hs @@ -175,13 +175,12 @@ defaultInvSections :: IM.IntMap (SelectionSection ()) defaultInvSections = IM.fromDistinctAscList $ zip [-2 ..] - [ defaultSS & ssDescriptor .~ "STATUS" + [ defaultSS & ssItems .~ IM.fromAscList [(0,SelectionItem ["STATUS"] 1 False white 0 ())] , defaultFiltSection , defaultInvSection , defaultYouSection - , defaultFiltSection & ssIndent .~ 2 - & ssDescriptor .~ "NEARBY" + , defaultFiltSection , defaultCOSection ] @@ -191,29 +190,20 @@ defaultSS = { _ssItems = mempty , _ssOffset = 0 , _ssShownItems = [] - , _ssIndent = 0 - , _ssDescriptor = "" } defaultCOSection :: SelectionSection () defaultCOSection = defaultSS - & ssIndent .~ 2 - & ssDescriptor .~ "CLOSE OBJECTS" defaultFiltSection :: SelectionSection a defaultFiltSection = defaultSS - & ssIndent .~ 0 - & ssDescriptor .~ "INV" defaultInvSection :: SelectionSection () defaultInvSection = defaultSS - & ssDescriptor .~ "INVENTORY ITEMS" defaultYouSection :: SelectionSection () defaultYouSection = defaultSS - & ssIndent .~ 2 - & ssDescriptor .~ "YOUR STATUS" diff --git a/src/Dodge/DisplayInventory.hs b/src/Dodge/DisplayInventory.hs index cb0f28d6d..48e329d16 100644 --- a/src/Dodge/DisplayInventory.hs +++ b/src/Dodge/DisplayInventory.hs @@ -1,21 +1,22 @@ -- {-# OPTIONS_GHC -fno-full-laziness #-} {-# LANGUAGE TupleSections #-} + module Dodge.DisplayInventory ( toggleCombineInv, updateInventoryPositioning, updateCombinePositioning, ) where -import Data.Monoid -import qualified Data.List as List -import Dodge.CharacterEnums import Control.Applicative 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 +import Dodge.CharacterEnums import Dodge.Combine import Dodge.Data.Combine import Dodge.Data.Config @@ -32,17 +33,15 @@ import ListHelp import Picture.Base toggleCombineInv :: Universe -> Universe -toggleCombineInv uv = case uv ^? uvWorld . hud . hudElement . subInventory of - Just CombineInventory{} -> - uv & uvWorld . hud . hudElement . subInventory - .~ NoSubInventory --MouseInvNothing - _ -> uv & uvWorld %~ enterCombineInv (uv ^. uvConfig) +toggleCombineInv uv = uv & case uv ^? uvWorld . hud . hudElement . subInventory of + Just CombineInventory{} -> uvWorld . hud . hudElement . subInventory .~ NoSubInventory + _ -> uvWorld %~ enterCombineInv (uv ^. uvConfig) updateCombinePositioning :: Universe -> Universe -updateCombinePositioning u = - u & uvWorld . hud . hudElement . subInventory . ciSections +updateCombinePositioning u = u + & uvWorld . hud . hudElement . subInventory . ciSections %~ updateCombineSections (_uvWorld u) (_uvConfig u) - & checkCombineSelectionExists + & checkCombineSelectionExists updateCombineSections :: World -> @@ -56,9 +55,7 @@ updateCombineSections w cfig = (getAvailableListLines secondColumnParams cfig) [(0, sclose), (-1, sfclose)] where - filtcurs = case w ^? hud . hudElement . subInventory . ciSelection . _Just . _1 of - Just (-1) -> [cFilledRect] - _ -> [cWireRect] + filtcurs = w ^? hud . hudElement . subInventory . ciSelection . _Just . _1 == Just (-1) (sfclose, sclose) = filterSectionsPair filtcurs @@ -108,7 +105,7 @@ checkCombineSelectionExists u = fromMaybe u $ do <|> Just (0, 0) Just $ case u ^? uvWorld . hud . hudElement . subInventory . ciSections . ix i . ssItems . ix j of Nothing -> - u & uvWorld . hud . hudElement . subInventory . ciSelection ?~ (0,-1) + u & uvWorld . hud . hudElement . subInventory . ciSelection ?~ (0, -1) & uvWorld . hud . hudElement . subInventory . ciSelection %~ scrollSelectionSections (-1) sss _ -> u @@ -128,32 +125,21 @@ updateDisplaySections w cfig = displaySectionsSizes mselpos (getAvailableListLines (invDisplayParams w) cfig) - addorder + [filtinv, filtclose, invx, youx, closex] where mselpos = w ^? hud . hudElement . diSelection . _Just - addorder = case mselpos of - Just (-1, _) -> reverse [filtinv, filtclose, invx, youx, closex] - Just (0, _) -> reverse [filtinv, filtclose, invx, youx, closex] - Just (1, _) -> reverse [filtinv, filtclose, invx, youx, closex] - Just (2, _) -> reverse [filtinv, filtclose, closex, invx, youx] - Just (3, _) -> reverse [filtinv, filtclose, closex, invx, youx] - _ -> reverse [filtinv, filtclose, invx, closex, youx] - invfiltcurs = case mselpos ^? _Just . _1 of - Just (-1) -> [toEnum 219] -- filled rect - _ -> [toEnum 128] -- wire rect + invfiltcurs = mselpos ^? _Just . _1 == Just (-1) (sfinv, sinv) = filterSectionsPair invfiltcurs plainRegex invitems "INVENTORY" $ w ^? hud . hudElement . diInvFilter . _Just (filtinv, invx) = ((-1, sfinv), (0, sinv)) - closefiltcurs = case mselpos ^? _Just . _1 of - Just (2) -> [toEnum 219] -- filled rect - _ -> [toEnum 128] -- wire rect + closefiltcurs = mselpos ^? _Just . _1 == Just 2 (sfclose, sclose) = filterSectionsPair closefiltcurs plainRegex closeitms "NEARBY" $ w ^? hud . hudElement . diCloseFilter . _Just (filtclose, closex) = ((2, sfclose), (3, sclose)) youx = (1, youitems) - youitems = IM.singleton 0 $ SelectionItem [thetext] 1 True invDimColor 2 () + youitems = IM.singleton 0 $ SelectionItem [thetext] 1 True invDimColor 0 () thetext = displayFreeSlots (crNumFreeSlots cr) closeitms = IM.fromDistinctAscList . zip [0 ..] $ @@ -171,24 +157,23 @@ updateDisplaySections w cfig = cr = you w filterSectionsPair :: - String -> -- string at the end of the input + Bool -> -- check for whether filter is in focus, changes string at the end (String -> SelectionItem a -> Bool) -> IM.IntMap (SelectionItem a) -> String -> Maybe String -> (IM.IntMap (SelectionItem a), IM.IntMap (SelectionItem a)) -filterSectionsPair endstr filtfn itms filtdescription mfilt = - ( filtsis - , itms' - ) +filterSectionsPair infocus filtfn itms filtdescription mfilt = + (filtsis, itms') where + filtcurs = if infocus then cFilledRect else cWireRect filtsis = fold $ do str <- mfilt return $ IM.singleton 0 $ SelectionInfo - [filtdescription ++ " FILTER/" ++ str ++ endstr, numfiltitems] + [filtdescription ++ " FILTER/" ++ str ++ [filtcurs], numfiltitems] 2 True white @@ -234,22 +219,24 @@ doSectionSize :: IM.IntMap Int -> -- sections already sized IM.IntMap Int doSectionSize extraavailable mintaken is sss done = fromMaybe done $ do - (v,others,k,ks) <- getsecusingis <|> getminsec + (v, others, k, ks) <- getsecusingis <|> getminsec minv <- mintaken ^? ix k let extradesired = v - minv linesgiven = min extraavailable extradesired - return $ doSectionSize (extraavailable - linesgiven) mintaken ks others $ done - & at k ?~ linesgiven + minv + return $ + doSectionSize (extraavailable - linesgiven) mintaken ks others $ + done + & at k ?~ linesgiven + minv where getsecusingis = do - (k,ks) <- List.uncons is - let (my,s') = IM.updateLookupWithKey (\_ _ -> Nothing) k sss + (k, ks) <- List.uncons is + let (my, s') = IM.updateLookupWithKey (\_ _ -> Nothing) k sss y <- my - return (y,s',k,ks) + return (y, s', k, ks) getminsec = do - ((k,v),s') <- IM.minViewWithKey sss - return (v,s',k,[]) - + ((k, v), s') <- IM.minViewWithKey sss + return (v, s', k, []) + updateSectionsPositioning :: (Int -> Int) -> -- for determining each sections minimum size Maybe (Int, Int) -> @@ -262,14 +249,18 @@ updateSectionsPositioning f mselpos allavailablelines lsss sss = where mss = IM.mapWithKey m sss m k _ = do - (k',i) <- mselpos + (k', i) <- mselpos guard $ k == k' return i ls = IM.fromList lsss h = IM.intersectionWith ($) - lk = fromMaybe [] $ fmap ((:[]) . fst) mselpos - ssizes = sectionsSizes allavailablelines f - lk $ sectionsDesiredLines $ IM.intersectionWith (set ssItems) ls sss + lk = fromMaybe [] $ fmap ((: []) . fst) mselpos + ssizes = + sectionsSizes + allavailablelines + f + lk + $ sectionsDesiredLines $ IM.intersectionWith (set ssItems) ls sss updateSection :: IM.IntMap (SelectionItem a) -> @@ -297,28 +288,33 @@ updateSection sis mcsel availablelines ss = 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) | offset > 0 = - color moreupcolor (text (theindent ++ replicate 15 (toEnum 30))) : + --color moreupcolor (text (theindent ++ replicate 15 (toEnum 30))) : + color moreupcolor (text (replicate 15 (toEnum 30))) : xs - | otherwise = x : xs + | otherwise = x : xs tweakfirst [] = [] moreupcolor = fromMaybe white $ allstrings ^? ix offset . _1 shownitems | length shownstrings > availablelines = map h (take (availablelines - 1) shownstrings) - ++ [color moredowncolor . text $ theindent ++ replicate 15 (toEnum 31)] +-- ++ [color moredowncolor . text $ theindent ++ replicate 15 (toEnum 31)] + ++ [color moredowncolor . text $ replicate 15 (toEnum 31)] | otherwise = map h shownstrings moredowncolor = fromMaybe white $ allstrings ^? ix (offset + availablelines - 1) . _1 allstrings = listSelectionColorPicture sis shownstrings = drop offset allstrings - h (_, str) = translate (fromIntegral (_ssIndent ss) * 100) 0 str - theindent = replicate (_ssIndent ss) ' ' + --h (_, str) = translate (fromIntegral (_ssIndent ss) * 100) 0 str + h (_, str) = str +-- theindent = replicate (_ssIndent ss) ' ' listSelectionColorPicture :: Foldable t => t (SelectionItem a) -> [(Color, Picture)] listSelectionColorPicture = foldMap f @@ -351,11 +347,9 @@ enterCombineInv cfig w = filtsection = SelectionSection { _ssItems = mempty --- , _ssMinSize = 0 - , _ssOffset = 0 + , -- , _ssMinSize = 0 + _ssOffset = 0 , _ssShownItems = mempty - , _ssIndent = 0 - , _ssDescriptor = "COMB FILTER" } combsection = updateSection @@ -364,11 +358,9 @@ enterCombineInv cfig w = availablelines SelectionSection { _ssItems = cm --- , _ssMinSize = 5 - , _ssOffset = 0 + , -- , _ssMinSize = 5 + _ssOffset = 0 , _ssShownItems = mempty - , _ssIndent = 0 - , _ssDescriptor = "COMBINATIONS" } regexList :: String -> [String] -> Bool diff --git a/src/Dodge/Inventory/SelectionList.hs b/src/Dodge/Inventory/SelectionList.hs index 9eaca124a..12e42cb19 100644 --- a/src/Dodge/Inventory/SelectionList.hs +++ b/src/Dodge/Inventory/SelectionList.hs @@ -59,7 +59,7 @@ closeObjectToSelectionItem e = , _siIsSelectable = True , --, _siWidth = 15 _siColor = col - , _siOffX = 2 + , _siOffX = 0 , _siPayload = () } where diff --git a/src/Dodge/Menu/Option.hs b/src/Dodge/Menu/Option.hs index 895238571..217dabaff 100644 --- a/src/Dodge/Menu/Option.hs +++ b/src/Dodge/Menu/Option.hs @@ -86,17 +86,6 @@ cycleOptions u = fromMaybe u $ do | l + curoff >= n = 0 | otherwise = l + curoff ---colStrToSelItem :: (Color, String) -> SelectionItem (Universe -> Universe) ---colStrToSelItem (col, str) = --- SelectionItem --- { _siPictures = [str] --- , _siHeight = 1 --- , _siIsSelectable = True --- , _siColor = col --- , _siOffX = 0 --- , _siPayload = id --- } - optionValueOffset :: Universe -> MenuOption -> Int optionValueOffset u mo = case _moString mo u of MODStringOption s _ -> length s diff --git a/src/Dodge/Render/HUD.hs b/src/Dodge/Render/HUD.hs index 5fa6eae42..8b10fca98 100644 --- a/src/Dodge/Render/HUD.hs +++ b/src/Dodge/Render/HUD.hs @@ -422,17 +422,6 @@ invHead cfig = --textSelItems :: [String] -> [SelectionItem ()] --textSelItems = map (picsToSelectable . (: [])) ---picsToSelectable :: [String] -> SelectionItem () ---picsToSelectable pics = --- SelectionItem --- { _siPictures = pics --- , _siHeight = length pics --- , _siIsSelectable = True --- , _siColor = white --- , _siOffX = 0 --- , _siPayload = () --- } - -- would be nice to add parameter to orient this with NSEW, cf cursor selNumPos :: Configuration -> diff --git a/src/Dodge/Render/List.hs b/src/Dodge/Render/List.hs index eb5bc8ff6..bded2ae05 100644 --- a/src/Dodge/Render/List.hs +++ b/src/Dodge/Render/List.hs @@ -113,7 +113,6 @@ selSecDrawCursorAt :: Picture selSecDrawCursorAt xsize ldp curs sss (i, j) = fold $ do yint <- selSecYint i j sss - xint <- sss ^? ix i . ssIndent si <- sss ^? ix i . ssItems . ix j return $ listCursorChooseBorderScale @@ -121,7 +120,7 @@ selSecDrawCursorAt xsize ldp curs sss (i, j) = fold $ do (ldp ^. ldpScale) curs yint - (xint + _siOffX si) + (_siOffX si) (_siColor si) xsize (_siHeight si) diff --git a/src/Dodge/SelectionSections/Draw.hs b/src/Dodge/SelectionSections/Draw.hs index 34523fbe8..1a3f4b225 100644 --- a/src/Dodge/SelectionSections/Draw.hs +++ b/src/Dodge/SelectionSections/Draw.hs @@ -51,13 +51,12 @@ drawSSMultiCursor sss msel mextra ldp curs cfig = translateScreenPos cfig (ldp ^ $ do (i, j) <- msel yint <- selSecYint i j sss - xint <- sss ^? ix i . ssIndent ydown <- mextra ssitms <- sss ^? ix i . ssItems let selitms = fst . IM.split (j + ydown + 1) . snd . IM.split (j -1) $ ssitms ysize = sum . fmap _siHeight $ selitms - maxoff = maximum . fmap _siOffX $ selitms - minoff = minimum . fmap _siOffX $ selitms + maxxoff = maximum . fmap _siOffX $ selitms + minxoff = minimum . fmap _siOffX $ selitms let col = white -- col <- fmap (_siColor . fst) $ IM.minView selitms return $ @@ -66,7 +65,7 @@ drawSSMultiCursor sss msel mextra ldp curs cfig = translateScreenPos cfig (ldp ^ (ldp ^. ldpScale) curs yint - (xint + minoff) + minxoff col - (15 + maxoff - minoff) + (15 + maxxoff - minxoff) ysize diff --git a/src/Dodge/Update/Input/InGame.hs b/src/Dodge/Update/Input/InGame.hs index 67034ef2a..8ed2fe6c1 100644 --- a/src/Dodge/Update/Input/InGame.hs +++ b/src/Dodge/Update/Input/InGame.hs @@ -124,17 +124,18 @@ tryDropSelected mpos w = do tryPickupSelected :: Maybe (Int,Int) -> World -> Maybe World tryPickupSelected mpos w = do guard $ maybe True (\(i,_) -> i == 0) mpos - cr <- w ^? cWorld . lWorld . creatures . ix 0 - let nfreeslots = crNumFreeSlots cr +-- cr <- w ^? cWorld . lWorld . creatures . ix 0 +-- let nfreeslots = crNumFreeSlots cr (3, _) <- w ^? hud . hudElement . diSelection . _Just - xs <- w ^? hud . hudElement . diSelectionExtra - OverInvDrag 3 x <- w ^? input . mouseContext +-- xs <- w ^? hud . hudElement . diSelectionExtra +-- OverInvDrag 3 x <- w ^? input . mouseContext return w -- return $ IS.foldr (dropItem cr) w xs updateMouseReleaseInGame :: World -> World updateMouseReleaseInGame w = case w ^. input . mouseContext of - OverInvDrag i mpos -> + --OverInvDrag i mpos -> + OverInvDrag _ mpos -> input . mouseContext .~ MouseInGame $ fromMaybe w $ tryDropSelected mpos w <|> tryPickupSelected mpos w -- OverInvDrag i mpos -> fromMaybe (dropSelected w & input . mouseContext .~ MouseInGame) $ do @@ -206,7 +207,8 @@ updateMouseClickInGame cfig w = case w ^. input . mouseContext of startDrag :: (Int, Int) -> World -> World startDrag (a, b) w = fromMaybe (augInvDirectSelect (a, b) $ setmichosen mempty w) $ do - (i, j) <- w ^? hud . hudElement . diSelection . _Just + --(i, j) <- w ^? hud . hudElement . diSelection . _Just + (i, _) <- w ^? hud . hudElement . diSelection . _Just xs <- w ^? hud . hudElement . diSelectionExtra guard $ i == a && b `IS.member` xs return $ setmichosen xs w diff --git a/tags b/tags index 456deb811..b6c98b719 100644 --- a/tags +++ b/tags @@ -3654,7 +3654,7 @@ colCrsWalls src/Dodge/WallCreatureCollisions.hs 17;" f colSpark src/Dodge/Spark.hs 47;" f colSparkRandDir src/Dodge/Spark.hs 101;" f collectDamageTypes src/Dodge/Damage.hs 32;" f -collectInvItems src/Dodge/Update/Input/InGame.hs 226;" f +collectInvItems src/Dodge/Update/Input/InGame.hs 228;" f collideCircWalls src/Dodge/Base/Collide.hs 149;" f collidePoint src/Dodge/Base/Collide.hs 48;" f collidePointTestFilter src/Dodge/Base/Collide.hs 93;" f @@ -3688,7 +3688,7 @@ composeTree src/Dodge/Tree/Compose.hs 46;" f computerBeepingS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 472;" f conEffects src/Dodge/Concurrent.hs 13;" f concBall src/Dodge/WorldEvent/SpawnParticle.hs 27;" f -concurrentIS src/Dodge/Update/Input/InGame.hs 218;" f +concurrentIS src/Dodge/Update/Input/InGame.hs 220;" f connectItemS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 532;" f connectionBlurb src/Dodge/Terminal.hs 102;" f connectionBlurbLines src/Dodge/Terminal.hs 47;" f @@ -3983,7 +3983,7 @@ 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 206;" f +displayFreeSlots src/Dodge/DisplayInventory.hs 200;" f displaySectionsSizes src/Dodge/DisplayInventory.hs 116;" f displayTerminalLineString src/Dodge/Update.hs 422;" f dist src/Geometry/Vector.hs 179;" f @@ -4042,13 +4042,13 @@ doPropUpdates src/Dodge/Prop/Update.hs 36;" f doQuickload src/Dodge/Save.hs 82;" f doQuicksave src/Dodge/Save.hs 77;" f doRandImpulse src/Dodge/RandImpulse.hs 7;" f -doRegexInput src/Dodge/Update/Input/InGame.hs 353;" f +doRegexInput src/Dodge/Update/Input/InGame.hs 355;" f doRoomInPlacements src/Dodge/Layout.hs 97;" f 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 228;" f +doSectionSize src/Dodge/DisplayInventory.hs 222;" f doSideEffects appDodge/Main.hs 118;" f doStep src/Dodge/ArcStep.hs 9;" f doStrategyActions src/Dodge/Creature/ReaderUpdate.hs 164;" f @@ -4234,7 +4234,7 @@ encircle src/Dodge/Creature/Boid.hs 115;" f encircleCloseP src/Dodge/Creature/Boid.hs 35;" f encircleDistP src/Dodge/Creature/Boid.hs 21;" f encircleP src/Dodge/Creature/Boid.hs 27;" f -enterCombineInv src/Dodge/DisplayInventory.hs 354;" f +enterCombineInv src/Dodge/DisplayInventory.hs 324;" f eqConstr src/SameConstr.hs 17;" f eqPosText src/Dodge/Equipment/Text.hs 6;" f equipAllocString src/Dodge/Render/HUD.hs 280;" f @@ -4283,7 +4283,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 172;" f +filterSectionsPair src/Dodge/DisplayInventory.hs 166;" f findBlips src/Dodge/RadarSweep.hs 44;" f findBoundDists src/Dodge/Update/Camera.hs 235;" f findClosePoint src/Dodge/LevelGen/StaticWalls.hs 155;" f @@ -4595,7 +4595,7 @@ 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 200;" f +invDimColor src/Dodge/DisplayInventory.hs 194;" f invDisplayParams src/Dodge/ListDisplayParams.hs 32;" f invHead src/Dodge/Render/HUD.hs 377;" f invLDT src/Dodge/Item/Grammar.hs 171;" f @@ -4770,7 +4770,7 @@ listConfig src/Dodge/Menu.hs 199;" f listControls src/Dodge/Menu.hs 212;" f listCursorChooseBorderScale src/Dodge/Render/List.hs 139;" f listGuard src/Dodge/Creature/ReaderUpdate.hs 188;" f -listSelectionColorPicture src/Dodge/DisplayInventory.hs 346;" f +listSelectionColorPicture src/Dodge/DisplayInventory.hs 316;" 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 @@ -4907,7 +4907,7 @@ maybeClearPath src/Dodge/Block.hs 77;" f maybeClearPaths src/Dodge/Block.hs 74;" f maybeDestroyBlock src/Dodge/Wall/Damage.hs 26;" f maybeDestroyDoor src/Dodge/Wall/Damage.hs 31;" f -maybeExitCombine src/Dodge/Update/Input/InGame.hs 513;" f +maybeExitCombine src/Dodge/Update/Input/InGame.hs 515;" f maybeOpenTerminal src/Dodge/Update.hs 123;" f maybeReadFile src/Dodge/LoadSeed.hs 10;" f maybeTakeOne src/RandomHelp.hs 111;" f @@ -5132,7 +5132,7 @@ parseNum src/Dodge/Debug/Terminal.hs 73;" f pathConnected src/Dodge/Room/CheckConsistency.hs 14;" f pathEdgeObstructed src/Dodge/Path.hs 43;" f pauseAndFloatCam src/Dodge/Camera.hs 10;" f -pauseGame src/Dodge/Update/Input/InGame.hs 449;" f +pauseGame src/Dodge/Update/Input/InGame.hs 451;" f pauseMenu src/Dodge/Menu.hs 53;" f pauseMenuOptions src/Dodge/Menu.hs 58;" f pauseSound src/Dodge/SoundLogic.hs 41;" f @@ -5189,7 +5189,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 203;" f +plainRegex src/Dodge/DisplayInventory.hs 197;" f plateCraft src/Dodge/Item/Craftable.hs 45;" f playIfFree src/Sound.hs 136;" f playPositionalSoundQueue src/Sound.hs 144;" f @@ -5419,7 +5419,7 @@ refract src/Dodge/Item/Weapon/LaserPath.hs 40;" f refreshOptionsSelectionList src/Dodge/Menu/Option.hs 39;" f regexCombs src/Dodge/DisplayInventory.hs 71;" f regexIn src/Regex.hs 4;" f -regexList src/Dodge/DisplayInventory.hs 397;" f +regexList src/Dodge/DisplayInventory.hs 367;" f regexList src/Regex.hs 7;" f reload1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 442;" f reloadLevelStart src/Dodge/Save.hs 71;" f @@ -5590,8 +5590,8 @@ 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 212;" f -sectionsSizes src/Dodge/DisplayInventory.hs 217;" f +sectionsDesiredLines src/Dodge/DisplayInventory.hs 206;" f +sectionsSizes src/Dodge/DisplayInventory.hs 211;" f seedStartMenu src/Dodge/Menu.hs 79;" f seedStartOptions src/Dodge/Menu.hs 82;" f segOnCirc src/Geometry.hs 116;" f @@ -5690,9 +5690,9 @@ shiftChildren src/Dodge/Tree/Compose.hs 43;" f shiftDraw src/Dodge/Render/ShapePicture.hs 66;" f shiftDraw' src/Dodge/Render/ShapePicture.hs 72;" f shiftInBy src/Dodge/PlacementSpot.hs 236;" f -shiftInvItems src/Dodge/Update/Input/InGame.hs 235;" f -shiftInvItemsDown src/Dodge/Update/Input/InGame.hs 262;" f -shiftInvItemsUp src/Dodge/Update/Input/InGame.hs 256;" f +shiftInvItems src/Dodge/Update/Input/InGame.hs 237;" f +shiftInvItemsDown src/Dodge/Update/Input/InGame.hs 264;" f +shiftInvItemsUp src/Dodge/Update/Input/InGame.hs 258;" f shiftLinkBy src/Dodge/Room/Link.hs 87;" f shiftPSBy src/Dodge/Placement/Shift.hs 12;" f shiftPathBy src/Dodge/Room/Link.hs 92;" f @@ -5791,7 +5791,7 @@ soundToVol src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 4;" f soundWithStatus src/Dodge/SoundLogic.hs 98;" f soundWithStatusVolume src/Dodge/SoundLogic.hs 48;" f southPillarsRoom src/Dodge/Room/LongDoor.hs 85;" f -spaceAction src/Dodge/Update/Input/InGame.hs 452;" f +spaceAction src/Dodge/Update/Input/InGame.hs 454;" f spanColLightBlackI src/Dodge/Placement/Instance/LightSource.hs 186;" f spanColLightI src/Dodge/Placement/Instance/LightSource.hs 179;" f spanLS src/Dodge/Placement/Instance/LightSource.hs 171;" f @@ -5848,7 +5848,7 @@ stackText src/Picture/Base.hs 188;" f stackedInventory src/Dodge/Creature.hs 281;" f startCr src/Dodge/Creature.hs 91;" f startCrafts src/Dodge/Room/Start.hs 92;" f -startDrag src/Dodge/Update/Input/InGame.hs 207;" f +startDrag src/Dodge/Update/Input/InGame.hs 208;" f startInvList src/Dodge/Creature.hs 109;" f startInventory src/Dodge/Creature.hs 112;" f startNewGameInSlot src/Dodge/StartNewGame.hs 15;" f @@ -5989,8 +5989,8 @@ toggleCombineInv src/Dodge/DisplayInventory.hs 34;" f toggleCommand src/Dodge/Terminal.hs 196;" f toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 79;" f toggleJust src/MaybeHelp.hs 41;" f -toggleMap src/Dodge/Update/Input/InGame.hs 476;" f -toggleTweakInv src/Dodge/Update/Input/InGame.hs 490;" f +toggleMap src/Dodge/Update/Input/InGame.hs 478;" f +toggleTweakInv src/Dodge/Update/Input/InGame.hs 492;" f togglesToEffects src/Dodge/Terminal.hs 248;" f tone440S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 474;" f tone440sawtoothS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 444;" f @@ -6061,7 +6061,7 @@ trunkDepth src/TreeHelp.hs 161;" f tryAssignHotkey src/Dodge/Creature/YourControl.hs 85;" f tryAttachBulletBelt src/Dodge/Euse.hs 40;" f tryChargeBattery src/Dodge/Euse.hs 43;" f -tryCombine src/Dodge/Update/Input/InGame.hs 499;" f +tryCombine src/Dodge/Update/Input/InGame.hs 501;" f tryDropSelected src/Dodge/Update/Input/InGame.hs 116;" f tryGetChannel src/Sound.hs 96;" f tryGetRootAttachedFromInvID src/Dodge/Inventory/Location.hs 20;" f @@ -6109,7 +6109,7 @@ updateAllNodes src/TreeHelp.hs 85;" f updateArc src/Dodge/Tesla/Arc.hs 86;" f updateAttachedItems src/Dodge/Creature/State.hs 173;" f updateAutoRecharge src/Dodge/Creature/State.hs 324;" f -updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 387;" f +updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 389;" f updateBarrel src/Dodge/Barreloid.hs 45;" f updateBarreloid src/Dodge/Barreloid.hs 13;" f updateBounds src/Dodge/Update/Camera.hs 245;" f @@ -6127,12 +6127,12 @@ 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 121;" f updateDistortion src/Dodge/Distortion.hs 5;" f updateDistortions src/Dodge/Update.hs 513;" f updateEnergyBall src/Dodge/EnergyBall.hs 46;" f updateEnergyBalls src/Dodge/Update.hs 540;" f -updateEnterRegex src/Dodge/Update/Input/InGame.hs 428;" f +updateEnterRegex src/Dodge/Update/Input/InGame.hs 430;" f updateExpBarrel src/Dodge/Barreloid.hs 19;" f updateFBOTO src/Framebuffer/Update.hs 97;" f updateFBOTO3 src/Framebuffer/Update.hs 131;" f @@ -6140,31 +6140,31 @@ updateFlame src/Dodge/Flame.hs 71;" f updateFlames src/Dodge/Update.hs 537;" f updateFlare src/Dodge/Flare.hs 7;" f updateFloatingCamera src/Dodge/Update/Camera.hs 36;" f -updateFunctionKey src/Dodge/Update/Input/InGame.hs 279;" f -updateFunctionKeys src/Dodge/Update/Input/InGame.hs 272;" f +updateFunctionKey src/Dodge/Update/Input/InGame.hs 281;" f +updateFunctionKeys src/Dodge/Update/Input/InGame.hs 274;" f updateGusts src/Dodge/Update.hs 691;" f updateHeldRootItem src/Dodge/Creature/State.hs 167;" f updateHumanoid src/Dodge/Humanoid.hs 12;" f updateIMl src/Dodge/Update.hs 482;" f updateIMl' src/Dodge/Update.hs 487;" f updateInGameCamera src/Dodge/Update/Camera.hs 70;" f -updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 332;" f +updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 334;" f updateInstantBullets src/Dodge/Update.hs 629;" f updateInv src/Dodge/Creature/State.hs 152;" f updateInventoryPositioning src/Dodge/DisplayInventory.hs 89;" f updateItemTargeting src/Dodge/Creature/State.hs 268;" f updateItemWithOrientation src/Dodge/Creature/State.hs 194;" f -updateKeyInGame src/Dodge/Update/Input/InGame.hs 326;" f -updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 314;" f +updateKeyInGame src/Dodge/Update/Input/InGame.hs 328;" f +updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 316;" f updateLampoid src/Dodge/Lampoid.hs 12;" f updateLaser src/Dodge/Laser/Update.hs 13;" f updateLasers src/Dodge/Update.hs 411;" f updateLightSources src/Dodge/Update.hs 516;" f updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f -updateLongPressInGame src/Dodge/Update/Input/InGame.hs 347;" f +updateLongPressInGame src/Dodge/Update/Input/InGame.hs 349;" f updateMIM src/Dodge/Update.hs 642;" f updateMachine src/Dodge/Machine/Update.hs 19;" f -updateMouseClickInGame src/Dodge/Update/Input/InGame.hs 160;" f +updateMouseClickInGame src/Dodge/Update/Input/InGame.hs 161;" f updateMouseContext src/Dodge/Update.hs 307;" f updateMouseHeldInGame src/Dodge/Update/Input/InGame.hs 96;" f updateMouseInGame src/Dodge/Update/Input/InGame.hs 88;" f @@ -6176,8 +6176,8 @@ updatePastWorlds src/Dodge/Update.hs 399;" f updatePosEvent src/Dodge/PosEvent.hs 11;" f updatePosEvents src/Dodge/Update.hs 549;" f updatePreload src/Preload/Update.hs 20;" f -updatePressedButtonsCarte src/Dodge/Update/Input/InGame.hs 289;" f -updatePressedButtonsCarte' src/Dodge/Update/Input/InGame.hs 292;" f +updatePressedButtonsCarte src/Dodge/Update/Input/InGame.hs 291;" f +updatePressedButtonsCarte' src/Dodge/Update/Input/InGame.hs 294;" f updateProjectile src/Dodge/Projectile/Update.hs 23;" f updateProp src/Dodge/Prop/Update.hs 11;" f updateRBList src/Dodge/Inventory/RBList.hs 16;" f @@ -6191,9 +6191,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 297;" f -updateSectionsPositioning src/Dodge/DisplayInventory.hs 252;" f -updateSectionsPositioning' src/Dodge/DisplayInventory.hs 274;" f +updateSection src/Dodge/DisplayInventory.hs 267;" f +updateSectionsPositioning src/Dodge/DisplayInventory.hs 246;" f updateSeenWalls src/Dodge/Update.hs 660;" f updateShockwave src/Dodge/Shockwave/Update.hs 12;" f updateShockwaves src/Dodge/Update.hs 534;" f