From eddb313ea1cabb8570985c537e382c1c4908060c Mon Sep 17 00:00:00 2001 From: justin Date: Wed, 11 Sep 2024 16:39:56 +0100 Subject: [PATCH] Simplify selection menu, remove overlapping --- ghcidOutput | 2 +- src/Dodge/Combine.hs | 3 +- src/Dodge/Data/SelectionList.hs | 2 - src/Dodge/DisplayInventory.hs | 46 +++-- src/Dodge/Inventory/SelectionList.hs | 8 +- src/Dodge/Item/Display.hs | 16 +- src/Dodge/Menu/Option.hs | 2 - src/Dodge/Render/HUD.hs | 4 +- tags | 253 ++++++++++++++------------- 9 files changed, 167 insertions(+), 169 deletions(-) diff --git a/ghcidOutput b/ghcidOutput index fb19e99c2..430312a1b 100644 --- a/ghcidOutput +++ b/ghcidOutput @@ -1 +1 @@ -All good (614 modules, at 15:05:45) +All good (614 modules, at 16:34:09) diff --git a/src/Dodge/Combine.hs b/src/Dodge/Combine.hs index 16b4ccc16..b60ea5a68 100644 --- a/src/Dodge/Combine.hs +++ b/src/Dodge/Combine.hs @@ -77,7 +77,7 @@ combineItemListYouX = map (first $ concat) . flatLookupItems . yourInv combineList :: World -> [SelectionItem CombinableItem] combineList w = case combineList' w of - [] -> [SelectionInfo ["No possible combinations"] 1 False white 0 0] + [] -> [SelectionInfo ["No possible combinations"] 1 False white 0] xs -> xs combineList' :: World -> [SelectionItem CombinableItem] @@ -90,7 +90,6 @@ combineList' = map f . combineListInfo , _siIsSelectable = True , _siColor = itemInvColor itm , _siOffX = 0 - , _siOffY = 0 , _siPayload = CombinableItem is itm strs } diff --git a/src/Dodge/Data/SelectionList.hs b/src/Dodge/Data/SelectionList.hs index 97de94930..ace638c2c 100644 --- a/src/Dodge/Data/SelectionList.hs +++ b/src/Dodge/Data/SelectionList.hs @@ -90,7 +90,6 @@ data SelectionItem a , _siIsSelectable :: Bool , _siColor :: Color , _siOffX :: Int - , _siOffY :: Int , _siPayload :: a } | SelectionInfo @@ -99,7 +98,6 @@ data SelectionItem a , _siIsSelectable :: Bool , _siColor :: Color , _siOffX :: Int - , _siOffY :: Int } makeLenses ''ListDisplayParams diff --git a/src/Dodge/DisplayInventory.hs b/src/Dodge/DisplayInventory.hs index a9dc9cea9..c15fe2fee 100644 --- a/src/Dodge/DisplayInventory.hs +++ b/src/Dodge/DisplayInventory.hs @@ -55,14 +55,14 @@ updateCombineSections w cfig sss = invitms <- w ^? hud . hudElement . diSections . sssSections . ix 0 . ssItems return $ IM.filter (flip (andOrRegex $ regexCombs invitms) str) allcombs showncombs - | null filtcombs = IM.singleton 0 $ SelectionInfo ["No possible combinations"] 1 False white 0 0 + | null filtcombs = IM.singleton 0 $ SelectionInfo ["No possible combinations"] 1 False white 0 | otherwise = filtcombs filtinv = fromMaybe mempty $ do str <- mstr return $ IM.singleton 0 - (SelectionInfo ["COMBINATIONS FILTER: " ++ str, numfiltitems] 2 True white 0 0) + (SelectionInfo ["COMBINATIONS FILTER: " ++ str, numfiltitems] 2 True white 0) mstr = w ^? hud . hudElement . subInventory . ciSections . sssExtra . sssFilters . ix (-1) . _Just numfiltitems = " " ++ show (length allcombs - length filtcombs) ++ " FILTERED" @@ -107,7 +107,7 @@ updateDisplaySections w cfig sss = (filtinv, invx) = filtpair (-1) invitems' "INV. " (filtclose, closex) = filtpair 2 coitems' "NEARBY " youx = (1, youitems) - youitems = IM.singleton 0 $ SelectionItem [thetext] 1 True invDimColor 2 0 () + youitems = IM.singleton 0 $ SelectionItem [thetext] 1 True invDimColor 2 () thetext = displayFreeSlots nfreeslots availablelines = getAvailableListLines (invDisplayParams w) cfig coitems' = @@ -131,7 +131,7 @@ updateDisplaySections w cfig sss = return $ IM.singleton 0 - (SelectionInfo [filtdescription ++ "FILTER: " ++ str, numfiltitems] 2 True white 0 0) + (SelectionInfo [filtdescription ++ "FILTER: " ++ str, numfiltitems] 2 True white 0) itms' = fromMaybe itms $ do str <- mstr return $ IM.filter (plainRegex str) itms @@ -246,25 +246,33 @@ updateSection sis mcsel availablelines ss = | otherwise = tweakfirst shownstrings moredowncolor = fromMaybe white $ allstrings ^? ix (offset + availablelines - 1) . _1 allstrings :: [(Color, Picture)] - allstrings = IM.elems $ overlapSelectionItems $ IM.elems sis +-- allstrings = IM.elems $ overlapSelectionItems $ IM.elems sis + allstrings = listSelectionColorPicture sis shownstrings = drop offset allstrings h (_, str) = translate (fromIntegral (_ssIndent ss) * 100) 0 str theindent = replicate (_ssIndent ss) ' ' --xtra str = color white . text $ theindent ++ str ++ " MORE " ++ _ssDescriptor ss -overlapSelectionItems :: [SelectionItem a] -> IM.IntMap (Color, Picture) -overlapSelectionItems = go 0 +listSelectionColorPicture :: Foldable t => t (SelectionItem a) -> [(Color,Picture)] +listSelectionColorPicture = foldMap f where - go _ [] = mempty - go i (si : xs) = doinsert $ go (i + _siHeight si) xs - where - thecol = _siColor si - doinsert m = - ifoldr - (\j str -> IM.insertWith ihelp (i + j + _siOffY si) (thecol,color thecol (text str))) - m - (_siPictures si) - ihelp (_,x) (col,y) = ( col, x<>y) + f si = map g (_siPictures si) + where + g str = (_siColor si,color (_siColor si) $ text str) + +--overlapSelectionItems :: [SelectionItem a] -> IM.IntMap (Color, Picture) +--overlapSelectionItems = go 0 +-- where +-- go _ [] = mempty +-- go i (si : xs) = doinsert $ go (i + _siHeight si) xs +-- where +-- thecol = _siColor si +-- doinsert m = +-- ifoldr +-- (\j str -> IM.insertWith ihelp (i + j) (thecol,color thecol (text str))) +-- m +-- (_siPictures si) +-- ihelp (_,x) (col,y) = ( col, x<>y) enterCombineInv :: Configuration -> World -> World enterCombineInv cfig w = @@ -275,7 +283,7 @@ enterCombineInv cfig w = where cm' = IM.fromAscList $ zip [0 ..] $ combineList' w cm - | null cm' = IM.singleton 0 $ SelectionInfo ["No possible combinations"] 1 False white 0 0 + | null cm' = IM.singleton 0 $ SelectionInfo ["No possible combinations"] 1 False white 0 | otherwise = cm' sss = SelectionSections @@ -292,7 +300,7 @@ enterCombineInv cfig w = availablelines = getAvailableListLines secondColumnParams cfig filtsection = SelectionSection - { _ssItems = IM.singleton 0 $ SelectionInfo ["No possible combinations"] 1 False white 0 0 + { _ssItems = IM.singleton 0 $ SelectionInfo ["No possible combinations"] 1 False white 0 , _ssCursor = Nothing , _ssMinSize = 0 , _ssOffset = 0 diff --git a/src/Dodge/Inventory/SelectionList.hs b/src/Dodge/Inventory/SelectionList.hs index 6dc52abf1..de16cdac1 100644 --- a/src/Dodge/Inventory/SelectionList.hs +++ b/src/Dodge/Inventory/SelectionList.hs @@ -21,16 +21,15 @@ invSelectionItem cr i it = , _siIsSelectable = True , _siColor = col , _siOffX = 0 - , _siOffY = yoff , _siPayload = () } where anyhotkey = maybe [] ((' ':) .hotkeyToString) (cr ^? crInvHotkeys . ix i) anyequippos = maybe [] (rightPad 8 ' ' . (' ':) . eqPosText) (cr ^? crInvEquipped . ix i) col = itemInvColor it - (yoff,pics) = case _itCurseStatus it of - UndroppableIdentified -> itemDisplayOffset cr it - _ -> itemDisplayOffset cr it + pics = case _itCurseStatus it of + UndroppableIdentified -> itemDisplay cr it + _ -> itemDisplay cr it hotkeyToString :: Hotkey -> String hotkeyToString x = case x of @@ -56,7 +55,6 @@ closeObjectToSelectionItem e = , --, _siWidth = 15 _siColor = col , _siOffX = 2 - , _siOffY = 0 , _siPayload = () } where diff --git a/src/Dodge/Item/Display.hs b/src/Dodge/Item/Display.hs index a223bb70c..ab1981a5e 100644 --- a/src/Dodge/Item/Display.hs +++ b/src/Dodge/Item/Display.hs @@ -1,8 +1,6 @@ module Dodge.Item.Display ( - --itemDisplay, - itemDisplayOffset, + itemDisplay, canAttachTargeting, - -- selectedItemDisplay, itemString, itemBaseName, basicItemDisplay, @@ -18,18 +16,6 @@ import Dodge.Module import LensHelp import Padding -itemDisplayOffset :: Creature -> Item -> (Int, [String]) -itemDisplayOffset cr itm = case itm ^. itType . iyBase of --- EQUIP (TARGETINGHAT tt) --- | targetItemCanAttachAbove cr itm -> --- ( -1 --- , leftPad 15 ' ' (targetingTypeString tt) : --- (itemDisplay cr itm & ix 0 %~ (\s -> itemDisplayPad s (replicate (length (targetingTypeString tt)) '^'))) --- ) --- EQUIP (TARGETINGHAT tt) -> --- (0, itemDisplay cr itm & ix 0 %~ (\s -> itemDisplayPad s (targetingTypeString tt))) - _ -> (0, itemDisplay cr itm) - canAttachTargeting :: TargetType -> Item -> Bool canAttachTargeting TARGETLASER _ = True canAttachTargeting _ itm = diff --git a/src/Dodge/Menu/Option.hs b/src/Dodge/Menu/Option.hs index d7d7dc385..57ab3ca57 100644 --- a/src/Dodge/Menu/Option.hs +++ b/src/Dodge/Menu/Option.hs @@ -100,7 +100,6 @@ colStrToSelItem (col, str) = , _siIsSelectable = True , _siColor = col , _siOffX = 0 - , _siOffY = 0 , _siPayload = id } @@ -121,7 +120,6 @@ menuOptionToSelectionItem w padAmount mo = , _siIsSelectable = isselectable , _siColor = thecol , _siOffX = 0 - , _siOffY = 0 , _siPayload = (f, g) } where diff --git a/src/Dodge/Render/HUD.hs b/src/Dodge/Render/HUD.hs index 91809a697..963fced91 100644 --- a/src/Dodge/Render/HUD.hs +++ b/src/Dodge/Render/HUD.hs @@ -99,7 +99,6 @@ drawExamineInventory cfig mtweaki w = , _siIsSelectable = True , _siColor = white , _siOffX = 0 - , _siOffY = 0 , _siPayload = () } @@ -215,7 +214,7 @@ displayTerminal tid cfig w = fromMaybe mempty $ do invHead cfig (_tmTitle tm ++ ":T" ++ show tid) <> drawSelectionList secondColumnParams cfig (thesellist tm) where - toselitm (str, col) = SelectionItem [str] 1 True col 0 0 () + toselitm (str, col) = SelectionItem [str] 1 True col 0 () thesellist tm = defaultSelectionList & slItems .~ thelist tm thelist tm = map toselitm . displayTermInput tm @@ -334,7 +333,6 @@ picsToSelectable pics = , _siIsSelectable = True , _siColor = white , _siOffX = 0 - , _siOffY = 0 , _siPayload = () } diff --git a/tags b/tags index 6a283fa48..2d6122a8e 100644 --- a/tags +++ b/tags @@ -273,7 +273,7 @@ Booster src/Dodge/Item/Equipment/Booster.hs 1;" m Booster src/Dodge/Item/Weapon/Booster.hs 1;" m Boosting src/Dodge/Creature/Stance/Data.hs 28;" C Boosting src/Dodge/Data/Creature/Stance.hs 28;" C -BorderCursor src/Dodge/Data/SelectionList.hs 72;" C +BorderCursor src/Dodge/Data/SelectionList.hs 84;" C Boss src/Dodge/Room/Boss.hs 2;" m BossAno src/Dodge/Layout/Tree/Annotate.hs 24;" C BottomEscapeMenuOption src/Dodge/Data/Universe.hs 73;" C @@ -338,6 +338,7 @@ CAN src/Dodge/Data/Item/Combine.hs 36;" C CDoNothing src/Dodge/Data/Item/HeldUse.hs 34;" C CHARTREUSE src/Color/Data.hs 25;" C CHeal src/Dodge/Data/Item/HeldUse.hs 35;" C +CIL src/Dodge/Item/Grammar.hs 22;" t CIRCLE src/Dodge/Data/GenParams.hs 20;" C CONCUSBUL src/Dodge/Combine/Data.hs 206;" C CONCUSSIVE src/Dodge/Data/Damage/Type.hs 22;" C @@ -578,7 +579,7 @@ Cull_more_lights src/Dodge/Data/Config.hs 78;" C CurseStatus src/Dodge/Data/Item/CurseStatus.hs 11;" t CurseStatus src/Dodge/Item/Data.hs 7;" t CurseStatus src/Dodge/Data/Item/CurseStatus.hs 6;" m -CursorType src/Dodge/Data/SelectionList.hs 70;" t +CursorType src/Dodge/Data/SelectionList.hs 82;" t Cuse src/Dodge/Data/Item/HeldUse.hs 33;" t Cuse src/Dodge/Cuse.hs 1;" m Cylinder src/Shape/Data.hs 19;" C @@ -931,7 +932,7 @@ FixedCoordLayer src/Picture/Data.hs 28;" C FixedRate src/Dodge/Data/Item/HeldDelay.hs 14;" C FixedRate src/Dodge/Data/Item/Use/Delay.hs 12;" C FixedRate src/Dodge/Data/Item/UseDelay.hs 12;" C -FixedSelectionWidth src/Dodge/Data/SelectionList.hs 66;" C +FixedSelectionWidth src/Dodge/Data/SelectionList.hs 78;" C FlIt src/Dodge/Data/FloorItem.hs 14;" C FlItLayer src/Dodge/Picture/Layer/Data.hs 10;" C Flag src/Dodge/Debug/Flag.hs 1;" m @@ -1344,9 +1345,9 @@ LBlink src/Dodge/Data/Item/HeldUse.hs 63;" C LBoost src/Dodge/Data/Item/HeldUse.hs 65;" C LBranches src/TreeExtra.hs 24;" C LDT src/Dodge/Data/DoubleTree.hs 17;" C -LDTComb src/Dodge/Item/Grammar.hs 43;" t -LDTCombine src/Dodge/Item/Grammar.hs 41;" t -LDTTest src/Dodge/Item/Grammar.hs 40;" t +LDTComb src/Dodge/Item/Grammar.hs 60;" t +LDTCombine src/Dodge/Item/Grammar.hs 58;" t +LDTTest src/Dodge/Item/Grammar.hs 57;" t LDoNothing src/Dodge/Data/Item/HeldUse.hs 58;" C LED src/Dodge/Combine/Data.hs 51;" C LED src/Dodge/Data/Item/Combine.hs 57;" C @@ -1446,7 +1447,7 @@ Link src/Dodge/Room/Link.hs 6;" m LinkDecoration src/Dodge/Debug/LinkDecoration.hs 1;" m List src/Dodge/Combine/List.hs 1;" m List src/Dodge/Render/List.hs 1;" m -ListDisplayParams src/Dodge/Data/SelectionList.hs 18;" t +ListDisplayParams src/Dodge/Data/SelectionList.hs 19;" t ListDisplayParams src/Dodge/ListDisplayParams.hs 1;" m ListHelp src/ListHelp.hs 1;" m Listed src/Dodge/Room/Listed.hs 1;" m @@ -1690,7 +1691,7 @@ NoConsumption src/Dodge/Data/Item/Consumption.hs 33;" C NoCrImp src/Dodge/Data/CreatureEffect.hs 24;" C NoCrWdImp src/Dodge/Data/CreatureEffect.hs 14;" C NoCreatureEffect src/Dodge/Data/CreatureEffect.hs 11;" C -NoCursor src/Dodge/Data/SelectionList.hs 71;" C +NoCursor src/Dodge/Data/SelectionList.hs 83;" C NoDamageEffect src/Dodge/Data/Damage.hs 29;" C NoDamageEffect src/Dodge/Data/DamageType.hs 35;" C NoDebugInfo src/Dodge/Data/Universe.hs 54;" C @@ -2251,7 +2252,7 @@ SPRING src/Dodge/Data/Item/Combine.hs 33;" C SPic src/ShapePicture/Data.hs 4;" t SPic src/Dodge/Item/Draw/SPic.hs 1;" m SQUARE src/Dodge/Data/GenParams.hs 20;" C -SSSExtra src/Dodge/Data/SelectionList.hs 44;" t +SSSExtra src/Dodge/Data/SelectionList.hs 45;" t ST src/Dodge/Tree/Compose/Data.hs 12;" C STATICBUL src/Dodge/Combine/Data.hs 205;" C STATICLAS src/Dodge/Combine/Data.hs 215;" C @@ -2284,25 +2285,26 @@ ScrollAttachParams src/Dodge/Data/Item/Use.hs 78;" C ScrollAttachType src/Dodge/Data/Item/Combine.hs 105;" t ScrollValue src/Dodge/ScrollValue.hs 1;" m SecretCabal src/Dodge/Data/Scenario.hs 44;" C -SectionCursor src/Dodge/Data/SelectionList.hs 49;" t +SectionCursor src/Dodge/Data/SelectionList.hs 50;" t SeeAbove src/Dodge/Data/Wall.hs 40;" C SeeThrough src/Dodge/Data/Wall.hs 39;" C SelCloseObject src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 28;" C SelItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 33;" C SelNothing src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 22;" C Select_creature src/Dodge/Data/Config.hs 92;" C -SelectionInfo src/Dodge/Data/SelectionList.hs 84;" C +SelectionInfo src/Dodge/Data/SelectionList.hs 95;" C SelectionIntMap src/SelectionIntMap.hs 1;" m -SelectionItem src/Dodge/Data/SelectionList.hs 74;" t -SelectionList src/Dodge/Data/SelectionList.hs 26;" t +SelectionItem src/Dodge/Data/SelectionList.hs 86;" t +SelectionList src/Dodge/Data/SelectionList.hs 27;" t SelectionList src/Dodge/Data/SelectionList.hs 6;" m SelectionList src/Dodge/Default/SelectionList.hs 1;" m SelectionList src/Dodge/Inventory/SelectionList.hs 1;" m SelectionList src/Dodge/SelectionList.hs 1;" m -SelectionSection src/Dodge/Data/SelectionList.hs 55;" t -SelectionSections src/Dodge/Data/SelectionList.hs 36;" t +SelectionSection src/Dodge/Data/SelectionList.hs 56;" t +SelectionSections src/Dodge/Data/SelectionList.hs 37;" t SelectionSections src/Dodge/SelectionSections.hs 1;" m -SelectionWidth src/Dodge/Data/SelectionList.hs 65;" t +SelectionTreeSection src/Dodge/Data/SelectionList.hs 66;" C +SelectionWidth src/Dodge/Data/SelectionList.hs 77;" t SelfTree src/Dodge/Tree/Compose/Data.hs 12;" t Sensor src/Dodge/Data/Machine/Sensor.hs 16;" t Sensor src/Dodge/Data/Sensor.hs 12;" t @@ -2766,7 +2768,7 @@ UseItem src/Dodge/Data/ActionPlan.hs 37;" C UseItem src/Dodge/Creature/Action/UseItem.hs 1;" m UseItem src/Dodge/Creature/Impulse/UseItem.hs 1;" m UseLabel src/Dodge/Layout/Tree/Annotate.hs 27;" C -UseMaxSelectionItemWidth src/Dodge/Data/SelectionList.hs 68;" C +UseMaxSelectionItemWidth src/Dodge/Data/SelectionList.hs 80;" C UseMvTargetPos src/Dodge/Data/ActionPlan.hs 163;" C UseSelf src/Dodge/Data/ActionPlan.hs 157;" C UseTarget src/Dodge/Data/ActionPlan.hs 154;" C @@ -2784,7 +2786,7 @@ VOLLEYGUN src/Dodge/Data/Item/Combine.hs 170;" C VariableRate src/Dodge/Data/Item/HeldDelay.hs 18;" C VariableRate src/Dodge/Data/Item/Use/Delay.hs 16;" C VariableRate src/Dodge/Data/Item/UseDelay.hs 16;" C -VariableSelectionWidth src/Dodge/Data/SelectionList.hs 67;" C +VariableSelectionWidth src/Dodge/Data/SelectionList.hs 79;" C Vector src/Geometry/Vector.hs 3;" m Vector3D src/Geometry/Vector3D.hs 2;" m Vert src/PolyPic.hs 11;" t @@ -3557,11 +3559,11 @@ _lasDamage src/Dodge/Data/Item/Params.hs 41;" f _laserTypeDamage src/Dodge/Data/Laser.hs 15;" f _lasers src/Dodge/Data/LWorld.hs 118;" f _lasersToDraw src/Dodge/Data/LWorld.hs 119;" f -_ldpCursorSides src/Dodge/Data/SelectionList.hs 22;" f -_ldpPos src/Dodge/Data/SelectionList.hs 19;" f -_ldpScale src/Dodge/Data/SelectionList.hs 20;" f -_ldpVerticalGap src/Dodge/Data/SelectionList.hs 21;" f -_ldpWidth src/Dodge/Data/SelectionList.hs 23;" f +_ldpCursorSides src/Dodge/Data/SelectionList.hs 23;" f +_ldpPos src/Dodge/Data/SelectionList.hs 20;" f +_ldpScale src/Dodge/Data/SelectionList.hs 21;" f +_ldpVerticalGap src/Dodge/Data/SelectionList.hs 22;" f +_ldpWidth src/Dodge/Data/SelectionList.hs 24;" f _ldtLeft src/Dodge/Data/DoubleTree.hs 17;" f _ldtRight src/Dodge/Data/DoubleTree.hs 18;" f _ldtValue src/Dodge/Data/DoubleTree.hs 17;" f @@ -3968,9 +3970,9 @@ _scrollSmoothing src/Dodge/Data/World.hs 62;" f _scrollSmoothing src/Dodge/Data/World.hs 68;" f _scrollTestFloat src/Dodge/Data/Input.hs 31;" f _scrollTestInt src/Dodge/Data/Input.hs 32;" f -_scurColor src/Dodge/Data/SelectionList.hs 52;" f -_scurPos src/Dodge/Data/SelectionList.hs 50;" f -_scurSize src/Dodge/Data/SelectionList.hs 51;" f +_scurColor src/Dodge/Data/SelectionList.hs 53;" f +_scurPos src/Dodge/Data/SelectionList.hs 51;" f +_scurSize src/Dodge/Data/SelectionList.hs 52;" f _seenLocations src/Dodge/Data/LWorld.hs 142;" f _seenWalls src/Dodge/Data/CWorld.hs 29;" f _selLocation src/Dodge/Data/LWorld.hs 143;" f @@ -4003,19 +4005,17 @@ _shellSpinDrag src/Dodge/Data/Item/Params.hs 25;" f _shellThrustDelay src/Dodge/Data/Item/Params.hs 27;" f _shockwaves src/Dodge/Data/LWorld.hs 117;" f _shrinkGunStatus src/Dodge/Data/Item/Params.hs 21;" f -_siColor src/Dodge/Data/SelectionList.hs 79;" f -_siColor src/Dodge/Data/SelectionList.hs 88;" f -_siHeight src/Dodge/Data/SelectionList.hs 77;" f -_siHeight src/Dodge/Data/SelectionList.hs 86;" f -_siIsSelectable src/Dodge/Data/SelectionList.hs 78;" f -_siIsSelectable src/Dodge/Data/SelectionList.hs 87;" f -_siOffX src/Dodge/Data/SelectionList.hs 80;" f -_siOffX src/Dodge/Data/SelectionList.hs 89;" f -_siOffY src/Dodge/Data/SelectionList.hs 81;" f -_siOffY src/Dodge/Data/SelectionList.hs 90;" f -_siPayload src/Dodge/Data/SelectionList.hs 82;" f -_siPictures src/Dodge/Data/SelectionList.hs 76;" f -_siPictures src/Dodge/Data/SelectionList.hs 85;" f +_siColor src/Dodge/Data/SelectionList.hs 91;" f +_siColor src/Dodge/Data/SelectionList.hs 99;" f +_siHeight src/Dodge/Data/SelectionList.hs 89;" f +_siHeight src/Dodge/Data/SelectionList.hs 97;" f +_siIsSelectable src/Dodge/Data/SelectionList.hs 90;" f +_siIsSelectable src/Dodge/Data/SelectionList.hs 98;" f +_siOffX src/Dodge/Data/SelectionList.hs 92;" f +_siOffX src/Dodge/Data/SelectionList.hs 100;" f +_siPayload src/Dodge/Data/SelectionList.hs 93;" f +_siPictures src/Dodge/Data/SelectionList.hs 88;" f +_siPictures src/Dodge/Data/SelectionList.hs 96;" f _sideEffect src/Loop/Data.hs 13;" f _sideImpulses src/Dodge/Data/ActionPlan.hs 170;" f _silhouetteEBO src/Data/Preload/Render.hs 27;" f @@ -4028,11 +4028,11 @@ _skWidth src/Dodge/Data/Spark.hs 20;" f _skinHead src/Dodge/Data/Creature/Misc.hs 66;" f _skinLower src/Dodge/Data/Creature/Misc.hs 68;" f _skinUpper src/Dodge/Data/Creature/Misc.hs 67;" f -_slItems src/Dodge/Data/SelectionList.hs 27;" f -_slRegex src/Dodge/Data/SelectionList.hs 29;" f -_slRegexInput src/Dodge/Data/SelectionList.hs 30;" f -_slRegexList src/Dodge/Data/SelectionList.hs 31;" f -_slSelPos src/Dodge/Data/SelectionList.hs 28;" f +_slItems src/Dodge/Data/SelectionList.hs 28;" f +_slRegex src/Dodge/Data/SelectionList.hs 30;" f +_slRegexInput src/Dodge/Data/SelectionList.hs 31;" f +_slRegexList src/Dodge/Data/SelectionList.hs 32;" f +_slSelPos src/Dodge/Data/SelectionList.hs 29;" f _smoothScrollAmount src/Dodge/Data/Input.hs 25;" f _soundAngDist src/Sound/Data.hs 53;" f _soundChannel src/Sound/Data.hs 52;" f @@ -4050,22 +4050,29 @@ _spScreenOff src/Dodge/Data/ScreenPos.hs 10;" f _sparks src/Dodge/Data/LWorld.hs 111;" f _spawnEBT src/Dodge/Data/Bullet.hs 43;" f _sprayNozzles src/Dodge/Data/Item/Params.hs 47;" f -_ssCursor src/Dodge/Data/SelectionList.hs 57;" f -_ssDescriptor src/Dodge/Data/SelectionList.hs 62;" f -_ssIndent src/Dodge/Data/SelectionList.hs 61;" f -_ssItems src/Dodge/Data/SelectionList.hs 56;" f -_ssMinSize src/Dodge/Data/SelectionList.hs 58;" f -_ssOffset src/Dodge/Data/SelectionList.hs 59;" f -_ssShownItems src/Dodge/Data/SelectionList.hs 60;" f -_sssExtra src/Dodge/Data/SelectionList.hs 38;" f -_sssFilters src/Dodge/Data/SelectionList.hs 46;" f -_sssSections src/Dodge/Data/SelectionList.hs 37;" f -_sssSelPos src/Dodge/Data/SelectionList.hs 45;" f +_ssCursor src/Dodge/Data/SelectionList.hs 58;" f +_ssCursor src/Dodge/Data/SelectionList.hs 68;" f +_ssDescriptor src/Dodge/Data/SelectionList.hs 63;" f +_ssDescriptor src/Dodge/Data/SelectionList.hs 73;" f +_ssIndent src/Dodge/Data/SelectionList.hs 62;" f +_ssIndent src/Dodge/Data/SelectionList.hs 72;" f +_ssItems src/Dodge/Data/SelectionList.hs 57;" f +_ssMinSize src/Dodge/Data/SelectionList.hs 59;" f +_ssMinSize src/Dodge/Data/SelectionList.hs 69;" f +_ssOffset src/Dodge/Data/SelectionList.hs 60;" f +_ssOffset src/Dodge/Data/SelectionList.hs 70;" f +_ssShownItems src/Dodge/Data/SelectionList.hs 61;" f +_ssShownItems src/Dodge/Data/SelectionList.hs 71;" f +_sssExtra src/Dodge/Data/SelectionList.hs 39;" f +_sssFilters src/Dodge/Data/SelectionList.hs 47;" f +_sssSections src/Dodge/Data/SelectionList.hs 38;" f +_sssSelPos src/Dodge/Data/SelectionList.hs 46;" f _strength src/Dodge/Data/Creature/Misc.hs 21;" f _strideAmount src/Dodge/Creature/Stance/Data.hs 22;" f _strideAmount src/Dodge/Data/Creature/Stance.hs 22;" f _strideLength src/Dodge/Creature/Stance/Data.hs 14;" f _strideLength src/Dodge/Data/Creature/Stance.hs 16;" f +_stsItems src/Dodge/Data/SelectionList.hs 67;" f _subInvMSel src/Dodge/Data/HUD.hs 25;" f _subInventory src/Dodge/Data/HUD.hs 18;" f _subParams src/Dodge/Data/Item/Params.hs 43;" f @@ -4395,7 +4402,7 @@ allHotkeys src/Dodge/Creature/YourControl.hs 52;" f allVisibleWalls src/Dodge/Base/Collide.hs 131;" f alongSegBy src/Geometry.hs 43;" f ammoCheckI src/Dodge/Item/Weapon/TriggerType.hs 143;" f -ammoTweakStrings src/Dodge/Render/HUD.hs 268;" f +ammoTweakStrings src/Dodge/Render/HUD.hs 267;" f amr src/Dodge/Item/Held/Rod.hs 50;" f amr src/Dodge/Item/Weapon/BulletGun/Rod.hs 56;" f anItemFindPulse src/Dodge/Item/Weapon/UseEffect.hs 25;" f @@ -4516,11 +4523,13 @@ baseAMRShape src/Dodge/Item/Draw/SPic.hs 445;" f baseBlockPane src/Dodge/Placement/Instance/Wall.hs 86;" f baseBlockPane src/Dodge/Placements/Wall.hs 63;" f baseBlockPane src/Dodge/Room/Placement.hs 93;" f -baseCI src/Dodge/Item/Grammar.hs 33;" f +baseCI src/Dodge/Item/Grammar.hs 50;" f baseCaneShape src/Dodge/Item/Draw/SPic.hs 251;" f -baseComposedItem src/Dodge/Item/Grammar.hs 25;" f +baseComposedItem src/Dodge/Item/Grammar.hs 30;" f +baseComposedItem' src/Dodge/Item/Grammar.hs 38;" f baseDebris src/Dodge/Block/Debris.hs 122;" f baseFloorTileSize src/Tile.hs 38;" f +basePCI src/Dodge/Item/Grammar.hs 46;" f baseRifleShape src/Dodge/Item/Draw/SPic.hs 254;" f baseRodShape src/Dodge/Item/Draw/SPic.hs 442;" f baseSMGShape src/Dodge/Item/Draw/SPic.hs 413;" f @@ -4542,7 +4551,7 @@ basicCrPict src/Dodge/Creature/Picture.hs 25;" f basicCrShape src/Dodge/Creature/Picture.hs 32;" f basicCrSilhouette src/Dodge/Creature/Silhouette.hs 17;" f basicDrawBeam src/Dodge/Beam/Draw.hs 11;" f -basicItemDisplay src/Dodge/Item/Display.hs 64;" f +basicItemDisplay src/Dodge/Item/Display.hs 50;" f basicMachineApplyDamage src/Dodge/Machine/Damage.hs 6;" f basicMachineUpdate src/Dodge/Machine.hs 13;" f basicPerceptionUpdateR src/Dodge/Creature/AlertLevel.hs 17;" f @@ -4638,7 +4647,7 @@ buzzS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 502;" f buzzSound src/Dodge/SoundLogic/Synonyms.hs 4;" f calcSmoothScroll src/Dodge/SmoothScroll.hs 7;" f calcTexCoord src/Tile.hs 17;" f -canAttachTargeting src/Dodge/Item/Display.hs 33;" f +canAttachTargeting src/Dodge/Item/Display.hs 19;" f canHeldScrollAttach src/Dodge/HeldScroll.hs 75;" f canSee src/Dodge/Base/Collide.hs 228;" f canSeeIndirect src/Dodge/Base/Collide.hs 235;" f @@ -4727,9 +4736,9 @@ clipZoom src/Dodge/Update/Camera.hs 236;" f clockCycle src/Dodge/Clock.hs 9;" f closeObjEq src/Dodge/Inventory/CloseObject.hs 12;" f closeObjPos src/Dodge/Inventory/CloseObject.hs 7;" f -closeObjectInfo src/Dodge/Render/HUD.hs 106;" f -closeObjectToSelectionItem src/Dodge/Inventory/SelectionList.hs 50;" f -closeObjectToTextPictures src/Dodge/Inventory/SelectionList.hs 66;" f +closeObjectInfo src/Dodge/Render/HUD.hs 105;" f +closeObjectToSelectionItem src/Dodge/Inventory/SelectionList.hs 49;" f +closeObjectToTextPictures src/Dodge/Inventory/SelectionList.hs 64;" f closestCreatureID src/Dodge/Debug.hs 91;" f closestPointOnLine src/Geometry/Intersect.hs 251;" f closestPointOnLineParam src/Geometry/Intersect.hs 267;" f @@ -4743,7 +4752,7 @@ clsNearRect src/Dodge/Zoning/Cloud.hs 15;" f clsNearSeg src/Dodge/Zoning/Cloud.hs 12;" f clusterFormatting src/Dodge/Combine/Graph.hs 113;" f clusterFunc src/Dodge/Combine/Graph.hs 107;" f -cmm src/Dodge/Combine.hs 103;" f +cmm src/Dodge/Combine.hs 102;" f cogRaised src/Dodge/Creature/Perception.hs 101;" f colCrWall src/Dodge/WallCreatureCollisions.hs 26;" f colCrsWalls src/Dodge/WallCreatureCollisions.hs 17;" f @@ -4772,17 +4781,17 @@ combineAwareness src/Dodge/Creature/Perception.hs 109;" f combineBeamBeams src/Dodge/Update.hs 475;" f combineBeams src/Dodge/Update.hs 466;" f combineFloors src/Dodge/Room/Procedural.hs 171;" f -combineInventoryExtra src/Dodge/Render/HUD.hs 181;" f +combineInventoryExtra src/Dodge/Render/HUD.hs 180;" f combineItemListYouX src/Dodge/Combine.hs 70;" f combineList src/Dodge/Combine.hs 78;" f combineList' src/Dodge/Combine.hs 83;" f -combineListInfo src/Dodge/Combine.hs 97;" f -combineMaybe src/Dodge/Item/Grammar.hs 37;" f -combineModuleMaps src/Dodge/Combine.hs 108;" f +combineListInfo src/Dodge/Combine.hs 96;" f +combineMaybe src/Dodge/Item/Grammar.hs 54;" f +combineModuleMaps src/Dodge/Combine.hs 107;" f combineRooms src/Dodge/Room/Procedural.hs 151;" f combineS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 344;" f combineTree src/Dodge/Tree/Compose.hs 66;" f -combineTwoModuleMaps src/Dodge/Combine.hs 114;" f +combineTwoModuleMaps src/Dodge/Combine.hs 113;" f commandColor src/Dodge/Terminal.hs 130;" f commandFutureLines src/Dodge/Terminal.hs 252;" f commandsCommand src/Dodge/Terminal.hs 91;" f @@ -5149,7 +5158,7 @@ displayControls src/Dodge/Menu.hs 206;" f displayEnergyBallType src/Dodge/Module/Info.hs 19;" f displayFrameTicks src/Dodge/Render/Picture.hs 27;" f displayFreeSlots src/Dodge/DisplayInventory.hs 159;" f -displayTerminal src/Dodge/Render/HUD.hs 211;" f +displayTerminal src/Dodge/Render/HUD.hs 210;" f displayTerminalLineString src/Dodge/Update.hs 325;" f dist src/Geometry/Vector.hs 179;" f dist3 src/Geometry/Vector3D.hs 101;" f @@ -5330,7 +5339,7 @@ drawPointLabel src/Dodge/Render/Label.hs 13;" f drawProjectile src/Dodge/Projectile/Draw.hs 10;" f drawProp src/Dodge/Prop/Draw.hs 15;" f drawProp' src/Dodge/Prop/Draw.hs 12;" f -drawRBOptions src/Dodge/Render/HUD.hs 124;" f +drawRBOptions src/Dodge/Render/HUD.hs 123;" f drawRadarSweep src/Dodge/RadarSweep/Draw.hs 7;" f drawRemoteShell src/Dodge/Projectile/Draw.hs 27;" f drawSelectionCursor src/Dodge/Render/List.hs 40;" f @@ -5399,7 +5408,7 @@ encircleCloseP src/Dodge/Creature/Boid.hs 35;" f encircleDistP src/Dodge/Creature/Boid.hs 21;" f encircleP src/Dodge/Creature/Boid.hs 27;" f energyBallCraft src/Dodge/Item/Craftable.hs 18;" f -enterCombineInv src/Dodge/DisplayInventory.hs 269;" f +enterCombineInv src/Dodge/DisplayInventory.hs 275;" f eqConstr src/SameConstr.hs 17;" f eqPosText src/Dodge/Equipment/Text.hs 6;" f equipAimSpeed src/Dodge/Creature/Action/Movement.hs 109;" f @@ -5423,7 +5432,7 @@ errorPointInPolygon src/Geometry.hs 49;" f escapeKey src/Dodge/Config/KeyConfig.hs 23;" f evaluateRandPS src/Dodge/Placement/PlaceSpot.hs 137;" f evenOddSplit src/Dodge/Base.hs 138;" f -examineInventoryExtra src/Dodge/Render/HUD.hs 173;" f +examineInventoryExtra src/Dodge/Render/HUD.hs 172;" f exitTerminalSubInv src/Dodge/Terminal.hs 223;" f expandLine src/Dodge/Base/Zone.hs 106;" f expandLine src/Dodge/Picture.hs 30;" f @@ -5500,7 +5509,7 @@ flatShieldEquipSPic src/Dodge/Item/Draw/SPic.hs 489;" f flatV2 src/Picture/Data.hs 65;" f flatV3 src/Picture/Data.hs 68;" f flatV4 src/Picture/Data.hs 71;" f -flattenDT src/Dodge/Item/Grammar.hs 158;" f +flattenDT src/Dodge/Item/Grammar.hs 139;" f flattenIMIMIM src/Dodge/Base/Zone.hs 246;" f fleeFrom src/Dodge/CreatureEffect.hs 119;" f fleeFromTarget src/Dodge/CreatureEffect.hs 65;" f @@ -5518,7 +5527,7 @@ flockPointTargetR src/Dodge/Creature/Boid.hs 266;" f flockToPointUsing src/Dodge/Creature/Boid.hs 214;" f flockToPointUsing' src/Dodge/Creature/Boid.hs 227;" f floorHun src/Dodge/Base/Zone.hs 40;" f -floorItemPickupInfo src/Dodge/Render/HUD.hs 111;" f +floorItemPickupInfo src/Dodge/Render/HUD.hs 110;" f floorItemSPic src/Dodge/Render/ShapePicture.hs 159;" f floorWire src/Dodge/Wire.hs 13;" f foamSpray src/Dodge/SoundLogic/Synonyms.hs 27;" f @@ -5559,7 +5568,7 @@ fromV3 src/Geometry/Data.hs 43;" f frontArmour src/Dodge/Item/Equipment.hs 43;" f fstV2 src/Geometry/Data.hs 50;" f fuelPack src/Dodge/Item/Equipment.hs 66;" f -fullModuleName src/Dodge/Combine.hs 133;" f +fullModuleName src/Dodge/Combine.hs 132;" f functionalUpdate src/Dodge/Update.hs 230;" f fuseFunc src/Dodge/Path.hs 150;" f fusePairs src/Dodge/Path.hs 153;" f @@ -5688,7 +5697,7 @@ hatCombinations src/Dodge/Combine/Combinations.hs 33;" f head src/DoubleStack.hs 14;" f headLamp src/Dodge/Item/Equipment.hs 118;" f headLampShape src/Dodge/Item/Draw/SPic.hs 495;" f -headMap src/Dodge/Item/Grammar.hs 129;" f +headMap src/Dodge/Item/Grammar.hs 110;" f heal src/Dodge/Item/Consumable.hs 17;" f heal25 src/Dodge/Item/Consumable.hs 14;" f healS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 354;" f @@ -5720,15 +5729,15 @@ holsterWeaponSound src/Dodge/SoundLogic/Synonyms.hs 4;" f homingLaunchers src/Dodge/Combine/Combinations.hs 224;" f horPipe src/Dodge/Placement/Instance/Pipe.hs 9;" f hotkeyToScancode src/Dodge/Creature/YourControl.hs 55;" f -hotkeyToString src/Dodge/Inventory/SelectionList.hs 35;" f +hotkeyToString src/Dodge/Inventory/SelectionList.hs 34;" f humanoidAIList src/Dodge/Humanoid.hs 181;" f hvBulDams src/Dodge/Particle/Damage.hs 13;" f hvBulHitCr src/Dodge/Particle/Bullet/HitEffect.hs 17;" f hvBulHitWall src/Dodge/Particle/Bullet/HitEffect.hs 54;" f hvBulletAmmo src/Dodge/Item/Weapon/Bullet.hs 31;" f -iDTL src/Dodge/Item/Grammar.hs 143;" f -iDTR src/Dodge/Item/Grammar.hs 148;" f -iDTboth src/Dodge/Item/Grammar.hs 153;" f +iDTL src/Dodge/Item/Grammar.hs 124;" f +iDTR src/Dodge/Item/Grammar.hs 129;" f +iDTboth src/Dodge/Item/Grammar.hs 134;" f iShape src/Dodge/Placement/Instance/LightSource.hs 74;" f iShape src/Dodge/Placements/LightSource.hs 32;" f icosahedronPoints src/Polyhedra/Geodesic.hs 11;" f @@ -5748,8 +5757,8 @@ incBallAt src/Dodge/EnergyBall.hs 54;" f incendiaryModule src/Dodge/Item/Craftable.hs 21;" f incidenceToFunction src/Dodge/Graph.hs 26;" f indefiniteExceptions src/StringHelp.hs 29;" f -indentDoubleTreeWith src/Dodge/Item/Grammar.hs 138;" f -indentInv src/Dodge/Item/Grammar.hs 169;" f +indentDoubleTreeWith src/Dodge/Item/Grammar.hs 119;" f +indentInv src/Dodge/Item/Grammar.hs 154;" f initCrItemLocation src/Dodge/Item/Location/Initialize.hs 39;" f initCrItemLocations src/Dodge/Item/Location/Initialize.hs 34;" f initCrsItemLocations src/Dodge/Item/Location/Initialize.hs 14;" f @@ -5819,12 +5828,13 @@ intsToPos src/Dodge/Room/Modify/Girder.hs 160;" f invDimColor src/Dodge/DisplayInventory.hs 140;" f invDimColor src/Dodge/Inventory/Color.hs 4;" f invDisplayParams src/Dodge/ListDisplayParams.hs 29;" f -invHead src/Dodge/Render/HUD.hs 276;" f +invHead src/Dodge/Render/HUD.hs 275;" f +invLDT src/Dodge/Item/Grammar.hs 160;" f invSelectionItem src/Dodge/Inventory/SelectionList.hs 16;" f invShiftPointBy src/Dodge/ShiftPoint.hs 8;" f invSideEff src/Dodge/Creature/State.hs 232;" f invSize src/Dodge/Inventory/CheckSlots.hs 40;" f -invTree src/Dodge/Item/Grammar.hs 165;" f +invTree src/Dodge/Item/Grammar.hs 150;" f inventoryX src/Dodge/Creature.hs 115;" f inverseShockwaveAt src/Dodge/WorldEvent/Shockwave.hs 43;" f invertEncircleDistP src/Dodge/Creature/Boid.hs 13;" f @@ -5864,14 +5874,13 @@ itSlotsTaken src/Dodge/Inventory/ItemSpace.hs 9;" f itSlotsTaken src/Dodge/Item/SlotsTaken.hs 9;" f itStackAmount src/Dodge/Item/Amount.hs 7;" f itUseCharge src/Dodge/Item/Weapon/TriggerType.hs 156;" f -itemBaseName src/Dodge/Item/Display.hs 75;" f +itemBaseName src/Dodge/Item/Display.hs 61;" f itemBlips src/Dodge/Item/Weapon/UseEffect.hs 38;" f itemBlips src/Dodge/RadarSweep.hs 74;" f itemCombinations src/Dodge/Combine/Combinations.hs 54;" f itemCombinationsEdges src/Dodge/Combine/Graph.hs 55;" f -itemDisplay src/Dodge/Item/Display.hs 47;" f -itemDisplayOffset src/Dodge/Item/Display.hs 21;" f -itemDisplayPad src/Dodge/Item/Display.hs 59;" f +itemDisplay src/Dodge/Item/Display.hs 33;" f +itemDisplayPad src/Dodge/Item/Display.hs 45;" f itemEffect src/Dodge/Creature/Action/UseItem.hs 28;" f itemEffect src/Dodge/Creature/Impulse/UseItem.hs 39;" f itemEquipPict src/Dodge/Item/Draw.hs 17;" f @@ -5885,10 +5894,10 @@ itemFromLeftType src/Dodge/Item.hs 72;" f itemInfo src/Dodge/Item/Info.hs 10;" f itemInvColor src/Dodge/Item/InventoryColor.hs 7;" f itemInvSideEffect src/Dodge/Creature/State.hs 245;" f -itemNumberDisplay src/Dodge/Item/Display.hs 119;" f +itemNumberDisplay src/Dodge/Item/Display.hs 105;" f itemRooms src/Dodge/LockAndKey.hs 41;" f itemSPic src/Dodge/Item/Draw/SPic.hs 27;" f -itemString src/Dodge/Item/Display.hs 72;" f +itemString src/Dodge/Item/Display.hs 58;" f itemUpdate src/Dodge/Creature/State.hs 257;" f iterateUntil src/MonadHelp.hs 23;" f iterateWhile src/MonadHelp.hs 30;" f @@ -5903,8 +5912,8 @@ jShape src/Dodge/Placement/Instance/LightSource.hs 86;" f jShape src/Dodge/Placements/LightSource.hs 43;" f jaggedShape src/Dodge/Block/Debris.hs 191;" f jetPack src/Dodge/Item/Equipment.hs 92;" f -joinItems src/Dodge/Item/Grammar.hs 80;" f -joinItemsInList src/Dodge/Item/Grammar.hs 120;" f +joinItems src/Dodge/Item/Grammar.hs 88;" f +joinItemsInList src/Dodge/Item/Grammar.hs 101;" f jps0' src/Dodge/LevelGen/Data.hs 60;" f jps0' src/Dodge/LevelGen/PlacementHelper.hs 60;" f jps0PushPS src/Dodge/LevelGen/Data.hs 63;" f @@ -5954,7 +5963,7 @@ lasTurret src/Dodge/Placement/Instance/Turret.hs 23;" f lasTurret src/Dodge/Placements/Turret.hs 29;" f lasWide src/Dodge/Item/Held/BatteryGuns.hs 97;" f lasWideRate src/Dodge/HeldUse.hs 353;" f -lastMap src/Dodge/Item/Grammar.hs 133;" f +lastMap src/Dodge/Item/Grammar.hs 114;" f latchkey src/Dodge/Item/Held/Utility.hs 23;" f latchkey src/Dodge/Item/PassKey.hs 14;" f launcher src/Dodge/Item/Held/Launcher.hs 10;" f @@ -5966,11 +5975,11 @@ layerNum src/Picture/Data.hs 31;" f layoutLevelFromSeed src/Dodge/LevelGen.hs 47;" f ldpVerticalSelection src/Dodge/Update/Input/ScreenLayer.hs 90;" f left src/DoubleStack.hs 16;" f -leftCombine src/Dodge/Item/Grammar.hs 45;" f leftInfo src/Dodge/Item/Info.hs 110;" f +leftIsParentCombine src/Dodge/Item/Grammar.hs 63;" f leftItemSPic src/Dodge/Item/Draw/SPic.hs 72;" f leftPad src/Padding.hs 14;" f -leftRightCombine src/Dodge/Item/Grammar.hs 54;" f +leftRightCombine src/Dodge/Item/Grammar.hs 77;" f legsSPic src/Dodge/Item/Draw/SPic.hs 529;" f liShape src/Dodge/Placement/Instance/LightSource.hs 99;" f liShape src/Dodge/Placements/LightSource.hs 55;" f @@ -6002,11 +6011,12 @@ listConfig src/Dodge/Menu.hs 199;" f listControls src/Dodge/Menu.hs 212;" f listCursorChooseBorderScale src/Dodge/Render/List.hs 105;" f listGuard src/Dodge/Creature/ReaderUpdate.hs 188;" f +listSelectionItems src/Dodge/DisplayInventory.hs 256;" f litCorridor90 src/Dodge/Room/RoadBlock.hs 26;" f lmt src/MatrixHelper.hs 43;" f lnkBothAnd src/Dodge/Room/Procedural.hs 120;" f lnkEff src/Dodge/Layout/Tree/Shift.hs 55;" f -lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 254;" f +lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 253;" f lnkPosDir src/Dodge/RoomLink.hs 97;" f loadConfig src/LoadConfig.hs 22;" f loadDodgeConfig src/Dodge/Config/Load.hs 9;" f @@ -6149,11 +6159,11 @@ maybeDestroyBlock src/Dodge/Wall/Damage.hs 26;" f maybeDestroyDoor src/Dodge/Wall/Damage.hs 31;" f maybeExitCombine src/Dodge/Update/Input/InGame.hs 258;" f maybeOpenTerminal src/Dodge/Update.hs 113;" f -maybeRateStatus src/Dodge/Item/Display.hs 199;" f +maybeRateStatus src/Dodge/Item/Display.hs 185;" f maybeReadFile src/Dodge/LoadSeed.hs 10;" f maybeTakeOne src/Dodge/RandomHelp.hs 96;" f maybeTakeOne src/RandomHelp.hs 107;" f -maybeWarmupStatus src/Dodge/Item/Display.hs 189;" f +maybeWarmupStatus src/Dodge/Item/Display.hs 175;" f mcApplyDamage src/Dodge/Machine/Update.hs 90;" f mcKillBut src/Dodge/Machine/Destroy.hs 34;" f mcKillTerm src/Dodge/Machine/Destroy.hs 26;" f @@ -6178,8 +6188,8 @@ memoFlatIndices src/Shader/Poke.hs 303;" f memoTopPrismEdgeIndices src/Shader/Poke.hs 321;" f memoTopPrismIndices src/Shader/Poke.hs 309;" f menuOptionToEffects src/Dodge/Event/Menu.hs 34;" f -menuOptionToSelectionItem src/Dodge/Menu/Option.hs 112;" f -menuOptionToString src/Dodge/Menu/Option.hs 140;" f +menuOptionToSelectionItem src/Dodge/Menu/Option.hs 111;" f +menuOptionToString src/Dodge/Menu/Option.hs 138;" f menuWheelEvents src/Dodge/Update/Input/ScreenLayer.hs 103;" f menuWheelStep src/Dodge/Update/Input/ScreenLayer.hs 109;" f merge src/ListHelp.hs 81;" f @@ -6380,7 +6390,7 @@ optionListToEffects src/Dodge/Event/Menu.hs 11;" f optionMenu src/Dodge/Menu.hs 105;" f optionScreenDefaultEffect src/Dodge/Update/Input/ScreenLayer.hs 50;" f optionScreenUpdate src/Dodge/Update/Input/ScreenLayer.hs 39;" f -optionValueOffset src/Dodge/Menu/Option.hs 107;" f +optionValueOffset src/Dodge/Menu/Option.hs 106;" f optionsOptions src/Dodge/Menu.hs 108;" f optionsToSelections src/Dodge/Menu/Option.hs 59;" f orRegex src/Dodge/DisplayInventory.hs 82;" f @@ -6413,7 +6423,7 @@ overlapCircWalls src/Dodge/Base/Collide.hs 137;" f overlapCircWallsClosest src/Dodge/Base/Collide.hs 168;" f overlapSegCrs src/Dodge/Base/Collide.hs 58;" f overlapSegWalls src/Dodge/Base/Collide.hs 119;" f -overlapSelectionItems src/Dodge/DisplayInventory.hs 255;" f +overlapSelectionItems src/Dodge/DisplayInventory.hs 261;" f overrideInternal src/Dodge/Creature/ReaderUpdate.hs 172;" f overrideMeleeCloseTarget src/Dodge/Creature/ReaderUpdate.hs 33;" f overwriteLabel src/Dodge/Tree/Compose.hs 31;" f @@ -6467,7 +6477,7 @@ pickUpItem src/Dodge/Creature/Action.hs 242;" f pickUpItemID src/Dodge/Creature/Action.hs 238;" f pickUpS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 444;" f pickUpSound src/Dodge/SoundLogic/Synonyms.hs 4;" f -picsToSelectable src/Dodge/Render/HUD.hs 329;" f +picsToSelectable src/Dodge/Render/HUD.hs 328;" f pictureOnEquip src/Dodge/Item/Equipment/Shape.hs 9;" f pincerP src/Dodge/Creature/Boid.hs 60;" f pincerP' src/Dodge/Creature/Boid.hs 93;" f @@ -6621,7 +6631,8 @@ prependTwo src/Geometry.hs 165;" f pressedMBEffects src/Dodge/Update/UsingInput.hs 27;" f pressedMBEffectsNoInventory src/Dodge/Update/UsingInput.hs 40;" f pressedMBEffectsTopInventory src/Dodge/Creature/YourControl.hs 206;" f -prettyDT src/Dodge/Item/Grammar.hs 161;" f +prettyDT src/Dodge/Item/Grammar.hs 142;" f +prettyLDT src/Dodge/Item/Grammar.hs 146;" f primeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 422;" f printColumnTitles src/Dodge/Tree/Shift.hs 142;" f printColumns src/Dodge/Tree/Shift.hs 132;" f @@ -6866,6 +6877,7 @@ rhombus src/Polyhedra.hs 71;" f rifle src/Dodge/Item/Held/Cane.hs 61;" f rifle src/Dodge/Item/Weapon/BulletGun/Cane.hs 77;" f right src/DoubleStack.hs 16;" f +rightIsParentCombine src/Dodge/Item/Grammar.hs 70;" f rightPad src/Padding.hs 22;" f rightPadNoSquash src/Padding.hs 26;" f rlPosDir src/Dodge/RoomLink.hs 94;" f @@ -6993,9 +7005,9 @@ secondColumnParams src/Dodge/ListDisplayParams.hs 42;" 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 341;" f +selNumPos src/Dodge/Render/HUD.hs 339;" f selSecDrawCursor src/Dodge/Render/List.hs 87;" f -selSecSelCol src/Dodge/Render/HUD.hs 358;" f +selSecSelCol src/Dodge/Render/HUD.hs 356;" f selSecSelSize src/Dodge/SelectionSections.hs 124;" f selSecYint src/Dodge/SelectionSections.hs 127;" f selectCreatureDebugItem src/Dodge/Debug.hs 38;" f @@ -7154,18 +7166,18 @@ shotgunSound src/Dodge/SoundLogic/Synonyms.hs 4;" f shoulderHeight src/Dodge/Item/HeldOffset.hs 60;" f shoulderSH src/Dodge/Creature/Picture.hs 170;" f shoulderSP src/Dodge/Creature/HandPos.hs 196;" f -showAttachItem src/Dodge/Item/Display.hs 87;" f -showAutoRechargeProgress src/Dodge/Item/Display.hs 98;" f -showEquipItem src/Dodge/Item/Display.hs 93;" f -showEquipmentNumber src/Dodge/Item/Display.hs 135;" f +showAttachItem src/Dodge/Item/Display.hs 73;" f +showAutoRechargeProgress src/Dodge/Item/Display.hs 84;" f +showEquipItem src/Dodge/Item/Display.hs 79;" f +showEquipmentNumber src/Dodge/Item/Display.hs 121;" f showInt src/Dodge/Item/Info.hs 30;" f showIntKMG src/Dodge/Item/Info.hs 47;" f showIntKMG' src/Dodge/Item/Info.hs 54;" f showIntsString src/Dodge/Tree/Compose.hs 129;" f -showLoadedAmount src/Dodge/Item/Display.hs 158;" f +showLoadedAmount src/Dodge/Item/Display.hs 144;" f showPhaseV src/Dodge/Tweak/Show.hs 16;" f showTerminalError src/Dodge/Debug/Terminal.hs 75;" f -showTimeFlow src/Dodge/TestString.hs 58;" f +showTimeFlow src/Dodge/TestString.hs 61;" f showTractionPower src/Dodge/Tweak/Show.hs 22;" f showTweak src/Dodge/Tweak/Show.hs 5;" f shrinkGun src/Dodge/Item/Weapon/Utility.hs 44;" f @@ -7192,7 +7204,8 @@ singleBarrel src/Dodge/Item/Held/SingleBarrel.hs 6;" f singleBlock src/Dodge/Placement/Instance/Wall.hs 30;" f singleBlock src/Dodge/Placements/Wall.hs 11;" f singleBlock src/Dodge/Room/Placement.hs 23;" f -singleDT src/Dodge/Item/Grammar.hs 22;" f +singleDT src/Dodge/Item/Grammar.hs 24;" f +singleLDT src/Dodge/Item/Grammar.hs 27;" f singleton src/DoubleStack.hs 11;" f singletonTrie src/SimpleTrie.hs 14;" f sizeFBOs src/Framebuffer/Update.hs 22;" f @@ -7419,7 +7432,7 @@ testEvent src/Dodge/Event/Test.hs 10;" f testEventKey src/Dodge/Config/KeyConfig.hs 27;" f testInventory src/Dodge/Creature.hs 245;" f testPic src/Dodge/Render/ShapePicture.hs 153;" f -testStringInit src/Dodge/TestString.hs 22;" f +testStringInit src/Dodge/TestString.hs 21;" f text src/Picture/Base.hs 192;" f textGrad src/Picture/Text.hs 5;" f textJustifyCenter src/Picture/Base.hs 211;" f @@ -7427,7 +7440,7 @@ textJustifyLeft src/Picture/Base.hs 207;" f textJustifyRight src/Picture/Base.hs 197;" f textNum src/Picture/Data.hs 53;" f textRight src/Picture/Base.hs 202;" f -textSelItems src/Dodge/Render/HUD.hs 326;" f +textSelItems src/Dodge/Render/HUD.hs 325;" f textVMirror src/Picture/Base.hs 215;" f tflat2 src/Picture/Data.hs 80;" f tflat3 src/Picture/Data.hs 83;" f @@ -7593,9 +7606,9 @@ turnTo src/Dodge/Movement/Turn.hs 4;" f turnTo src/Dodge/Placements/Turret.hs 71;" f turnToAmount src/Dodge/Movement/Turn.hs 15;" f turretItemOffset src/Dodge/Item/HeldOffset.hs 14;" f -tweakItems src/Dodge/Render/HUD.hs 265;" f +tweakItems src/Dodge/Render/HUD.hs 264;" f tweakPhaseV src/Dodge/Tweak.hs 21;" f -tweakString src/Dodge/Render/HUD.hs 273;" f +tweakString src/Dodge/Render/HUD.hs 272;" f tweakTractionPower src/Dodge/Tweak.hs 14;" f tweenAngles src/Geometry/Vector.hs 184;" f twinSlowDoorChasers src/Dodge/Room/LongDoor.hs 78;" f @@ -7962,7 +7975,7 @@ you src/Dodge/Base/You.hs 17;" f youBox' src/Dodge/Creature/ShadowBox.hs 8;" f youDropItem src/Dodge/Creature/Action.hs 192;" f youSil src/Dodge/Creature/ShadowBox.hs 15;" f -yourAugmentedItem src/Dodge/Render/HUD.hs 118;" f +yourAugmentedItem src/Dodge/Render/HUD.hs 117;" 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 @@ -7978,7 +7991,7 @@ zeroZ src/Geometry/Vector.hs 8;" f zipArcs src/Dodge/Tesla/Arc.hs 96;" f zipCount src/Dodge/Tree/Shift.hs 129;" f zipCountDown src/Dodge/Room/Procedural.hs 117;" f -zipWithDefaults src/Dodge/Item/Display.hs 52;" f +zipWithDefaults src/Dodge/Item/Display.hs 38;" f zoneAroundPoint src/Dodge/Base/Zone.hs 63;" f zoneAroundPoint src/Dodge/Zone.hs 43;" f zoneAroundPoint' src/Dodge/Base/Zone.hs 69;" f