From 388064895f4c7ceac9f1c1dd135eb1171059eb06 Mon Sep 17 00:00:00 2001 From: justin Date: Thu, 24 Oct 2024 14:55:51 +0100 Subject: [PATCH] Decouple selection section inventory position --- ghcidOutput | 10 + src/Dodge/Data/HUD.hs | 5 +- src/Dodge/Data/SelectionList.hs | 3 +- src/Dodge/Default/World.hs | 2 +- src/Dodge/DisplayInventory.hs | 15 +- src/Dodge/InputFocus.hs | 12 +- src/Dodge/Inventory.hs | 18 +- src/Dodge/Inventory/Location.hs | 2 +- src/Dodge/Render/HUD.hs | 22 +- src/Dodge/Render/List.hs | 7 +- src/Dodge/SelectionSections.hs | 21 +- src/Dodge/SelectionSections/Draw.hs | 6 +- src/Dodge/TestString.hs | 3 +- src/Dodge/Update.hs | 2 +- src/Dodge/Update/Input/InGame.hs | 82 ++++--- src/Dodge/Update/Scroll.hs | 7 +- tags | 348 ++++++++++++++-------------- 17 files changed, 304 insertions(+), 261 deletions(-) diff --git a/ghcidOutput b/ghcidOutput index 135d43ff0..2ccf1a9ef 100644 --- a/ghcidOutput +++ b/ghcidOutput @@ -3,3 +3,13 @@ | 357 | shiftInvItems x w = w | ^ +/home/justin/Haskell/loop/src/Dodge/Inventory/Location.hs:13:1-31: warning: [-Wunused-imports] + The import of ‘Dodge.Data.SelectionList’ is redundant + | +13 | import Dodge.Data.SelectionList + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +/home/justin/Haskell/loop/src/Dodge/Inventory/Location.hs:75:9-11: warning: [-Wunused-matches] + Defined but not used: ‘sss’ + | +75 | sss <- w ^? hud . hudElement . diSections + | ^^^ diff --git a/src/Dodge/Data/HUD.hs b/src/Dodge/Data/HUD.hs index 688cd96a2..6ef3bd9fa 100644 --- a/src/Dodge/Data/HUD.hs +++ b/src/Dodge/Data/HUD.hs @@ -16,6 +16,7 @@ data HUDElement = DisplayInventory { _subInventory :: SubInventory , _diSections :: SelectionSections () + , _diSelection :: Maybe (Int,Int) } | DisplayCarte @@ -33,7 +34,9 @@ data SubInventory , _nsMouseOver :: Maybe (Int, Int) } | ExamineInventory - | CombineInventory {_ciSections :: SelectionSections CombinableItem} + | CombineInventory {_ciSections :: SelectionSections CombinableItem + , _ciSelection :: Maybe (Int,Int) + } | LockedInventory | DisplayTerminal {_termID :: Int} diff --git a/src/Dodge/Data/SelectionList.hs b/src/Dodge/Data/SelectionList.hs index 035472b42..9ea018ada 100644 --- a/src/Dodge/Data/SelectionList.hs +++ b/src/Dodge/Data/SelectionList.hs @@ -42,8 +42,7 @@ data SelectionSections a = SelectionSections -- a pair of ints (i,i+1) such that the lower is the regex section, the higher -- is the items section. data SSSExtra = SSSExtra - { _sssSelPos :: Maybe (Int, Int) - , _sssFilters :: IntMap (Maybe String) + { _sssFilters :: IntMap (Maybe String) } data SectionCursor = SectionCursor diff --git a/src/Dodge/Default/World.hs b/src/Dodge/Default/World.hs index f3f8a5b86..4f99a7363 100644 --- a/src/Dodge/Default/World.hs +++ b/src/Dodge/Default/World.hs @@ -166,13 +166,13 @@ defaultDisplayInventory = , _nsMouseOver = Just (0,3) } , _diSections = defaultInvSections + , _diSelection = Just (1,0) } defaultSSSExtra :: SSSExtra defaultSSSExtra = SSSExtra { _sssFilters = IM.fromList [(-1, mempty), (2, mempty)] - , _sssSelPos = Nothing } defaultInvSections :: SelectionSections () diff --git a/src/Dodge/DisplayInventory.hs b/src/Dodge/DisplayInventory.hs index 79180bc9d..03e0949be 100644 --- a/src/Dodge/DisplayInventory.hs +++ b/src/Dodge/DisplayInventory.hs @@ -47,7 +47,7 @@ updateCombineSections w cfig sss = availablelines [(0, showncombs), (-1, filtinv)] where - mselpos = sss ^. sssExtra . sssSelPos + mselpos = w ^? hud . hudElement . subInventory . ciSelection . _Just availablelines = getAvailableListLines secondColumnParams cfig allcombs = IM.fromDistinctAscList $ zip [0 ..] $ combineList w filtcombs = fromMaybe allcombs $ do @@ -89,7 +89,11 @@ updateInventoryPositioning u = u & uvWorld . hud . hudElement . diSections %~ updateDisplaySections (_uvWorld u) (_uvConfig u) -updateDisplaySections :: World -> Configuration -> SelectionSections () -> SelectionSections () +updateDisplaySections + :: World + -> Configuration + -> SelectionSections () + -> SelectionSections () updateDisplaySections w cfig sss = sss & sssSections %~ updateSectionsPositioning @@ -97,7 +101,7 @@ updateDisplaySections w cfig sss = availablelines addorder where - mselpos = sss ^. sssExtra . sssSelPos + 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] @@ -237,7 +241,7 @@ listSelectionColorPicture = foldMap f g str = (_siColor si,translate indent 0 . color (_siColor si) $ text str) enterCombineInv :: Configuration -> World -> World -enterCombineInv cfig w = w & hud . hudElement . subInventory .~ CombineInventory sss +enterCombineInv cfig w = w & hud . hudElement . subInventory .~ CombineInventory sss selpos where cm' = IM.fromDistinctAscList . zip [0 ..] $ combineList w cm @@ -248,8 +252,7 @@ enterCombineInv cfig w = w & hud . hudElement . subInventory .~ CombineInventory { _sssSections = IM.fromDistinctAscList [(-1, filtsection), (0, combsection)] , _sssExtra = SSSExtra - { _sssSelPos = selpos - , _sssFilters = IM.singleton (-1) Nothing + { _sssFilters = IM.singleton (-1) Nothing } } selpos diff --git a/src/Dodge/InputFocus.hs b/src/Dodge/InputFocus.hs index 0300f1435..5067d9bbe 100644 --- a/src/Dodge/InputFocus.hs +++ b/src/Dodge/InputFocus.hs @@ -30,7 +30,7 @@ regexScope :: Maybe ((SSSExtra -> f SSSExtra) -> HUDElement -> f HUDElement, Int) regexScope w = case w ^? hud . hudElement . subInventory of - Just NoSubInventory{} -> case he ^? diSections . sssExtra . sssSelPos . _Just of + Just NoSubInventory{} -> case he ^? diSelection . _Just of Just (-1, _) -> di (-1) Just (0, _) -> di (-1) Just (2, _) -> di 2 @@ -49,7 +49,7 @@ regexFocus :: Maybe ((SSSExtra -> f SSSExtra) -> HUDElement -> f HUDElement, Int) regexFocus w = case w ^? hud . hudElement . subInventory of - Just NoSubInventory{} -> case he ^? diSections . sssExtra . sssSelPos . _Just of + Just NoSubInventory{} -> case he ^? diSelection . _Just of Just (-1, _) -> di (-1) Just (2, _) -> di 2 _ -> Nothing @@ -71,11 +71,11 @@ inputFocus :: World -> Maybe ((String -> f String) -> World -> f World) inputFocus w = case w ^? hud . hudElement . subInventory of - Just NoSubInventory{} -> case he ^? diSections . sssExtra . sssSelPos . _Just of + Just NoSubInventory{} -> case he ^? diSelection . _Just of Just (-1, _) -> di (-1) Just (2, _) -> di 2 _ -> Nothing - Just CombineInventory{} -> case he ^? subInventory . ciSections . sssExtra . sssSelPos . _Just of + Just CombineInventory{} -> case he ^? subInventory . ciSelection . _Just of Just (-1, _) -> Just $ hud . hudElement . subInventory . ciSections . sssExtra . sssFilters . ix (-1) . _Just _ -> Nothing Just DisplayTerminal{_termID = tmid} -> do @@ -90,7 +90,7 @@ inputFocus w = case w ^? hud . hudElement . subInventory of inTopRegex :: Int -> World -> Bool inTopRegex x w = fromMaybe False $ do - i <- w ^? hud . hudElement . diSections . sssExtra . sssSelPos . _Just . _1 + i <- w ^? hud . hudElement . diSelection . _Just . _1 return $ i == x inInvRegex :: World -> Bool @@ -101,7 +101,7 @@ inCloseRegex = inTopRegex 2 inSubInvRegex :: World -> Bool inSubInvRegex w = fromMaybe False $ do - i <- w ^? hud . hudElement . subInventory . ciSections . sssExtra . sssSelPos . _Just . _1 + i <- w ^? hud . hudElement . subInventory . ciSelection . _Just . _1 return $ i == (-1) --inputFocus :: World -> Bool diff --git a/src/Dodge/Inventory.hs b/src/Dodge/Inventory.hs index 617467fad..ed7b3e31e 100644 --- a/src/Dodge/Inventory.hs +++ b/src/Dodge/Inventory.hs @@ -166,7 +166,7 @@ changeSwapClose f i w = fromMaybe w $ do & cWorld . lWorld . creatures . ix 0 . crManipulation . manObject . ispCloseObject .~ k & hud . closeObjects %~ swapIndices i k - & hud . hudElement . diSections . sssExtra . sssSelPos . _Just . _2 .~ k + & hud . hudElement . diSelection . _Just . _2 .~ k & worldEventFlags . at InventoryChange ?~ () -- can be specialised for when we know that item i is selected @@ -178,9 +178,9 @@ swapInvItems :: swapInvItems f i w = fromMaybe w $ do ss <- w ^? hud . hudElement . diSections . sssSections . ix 0 . ssItems k <- f i ss - let updateselection = case w ^? hud . hudElement . diSections . sssExtra . sssSelPos . _Just of - Just (0, j) | j == k -> hud . hudElement . diSections . sssExtra . sssSelPos . _Just . _2 .~ i - Just (0, j) | j == i -> hud . hudElement . diSections . sssExtra . sssSelPos . _Just . _2 .~ k + let updateselection = case w ^? hud . hudElement . diSelection . _Just of + Just (0, j) | j == k -> hud . hudElement . diSelection . _Just . _2 .~ i + Just (0, j) | j == i -> hud . hudElement . diSelection . _Just . _2 .~ k _ -> id return $ w & cWorld . lWorld . creatures . ix 0 %~ updatecreature k @@ -209,7 +209,7 @@ swapInvItems f i w = fromMaybe w $ do Nothing -> id changeSwapWith :: (Int -> IM.IntMap (SelectionItem ()) -> Maybe Int) -> World -> World -changeSwapWith f w = case w ^? hud . hudElement . diSections . sssExtra . sssSelPos . _Just of +changeSwapWith f w = case w ^? hud . hudElement . diSelection . _Just of Just (0, i) -> w & swapInvItems f i Just (3, i) -> w & changeSwapClose f i _ -> w @@ -217,7 +217,7 @@ changeSwapWith f w = case w ^? hud . hudElement . diSections . sssExtra . sssSel augInvDirectSelect :: (Int, Int) -> World -> World augInvDirectSelect (i, j) w = w - & hud . hudElement . diSections . sssExtra . sssSelPos .~ Just (i, j) + & hud . hudElement . diSelection .~ Just (i, j) & worldEventFlags . at InventoryChange ?~ () & setInvPosFromSS & cWorld . lWorld %~ crUpdateItemLocations 0 @@ -226,12 +226,14 @@ scrollAugInvSel :: Int -> World -> World scrollAugInvSel yi w | yi == 0 = w | otherwise = - w & hud . hudElement . diSections %~ doscroll + w & hud . hudElement %~ doscroll & worldEventFlags . at InventoryChange ?~ () & setInvPosFromSS & cWorld . lWorld %~ crUpdateItemLocations 0 where - doscroll sss = sss & sssExtra . sssSelPos %~ scrollSelectionSections yi sss + doscroll he = fromMaybe he $ do + sss <- he ^? diSections + return $ he & diSelection %~ scrollSelectionSections yi sss selectedCloseObject :: World -> Maybe (Either FloorItem Button) selectedCloseObject w = do diff --git a/src/Dodge/Inventory/Location.hs b/src/Dodge/Inventory/Location.hs index f44d14133..a7698cbdb 100644 --- a/src/Dodge/Inventory/Location.hs +++ b/src/Dodge/Inventory/Location.hs @@ -73,7 +73,7 @@ setInvPosFromSS w = where thesel = fromMaybe SelNothing $ do sss <- w ^? hud . hudElement . diSections - (i, j) <- sss ^? sssExtra . sssSelPos . _Just + (i, j) <- w ^? hud . hudElement . diSelection . _Just case i of (-1) -> Just SortInventory 0 -> do diff --git a/src/Dodge/Render/HUD.hs b/src/Dodge/Render/HUD.hs index 25c4676b3..75be0d7c4 100644 --- a/src/Dodge/Render/HUD.hs +++ b/src/Dodge/Render/HUD.hs @@ -58,7 +58,7 @@ drawHP cfig = drawInventory :: SelectionSections () -> World -> Configuration -> Picture drawInventory sss w cfig = - drawSelectionSections sss ldp cfig + drawSelectionSections sss (w ^? hud . hudElement . diSelection . _Just) ldp cfig <> iextra <> translateScreenPos cfig (ldp ^. ldpPos) (drawDIMouseOver w) @@ -88,7 +88,7 @@ getMouseInvSel w = case w ^? hud . hudElement . subInventory . nsSelected of getMouseInvSel' :: World -> Maybe ((Int,Int),(Int,Int)) getMouseInvSel' w = case w ^? hud . hudElement . subInventory . nsSelected of Just (MouseInvChosen x) -> do - (i,j) <- w ^? hud . hudElement . diSections . sssExtra . sssSelPos . _Just + (i,j) <- w ^? hud . hudElement . diSelection . _Just return ((i,j),(i,j+x)) _ -> Nothing @@ -122,8 +122,10 @@ drawSubInventory subinv cfig w = case subinv of drawCombineInventory :: Configuration -> SelectionSections CombinableItem -> World -> Picture drawCombineInventory cfig sss w = invHead cfig "COMBINE" - <> drawSelectionSections sss secondColumnParams cfig - <> combineInventoryExtra sss cfig w + <> drawSelectionSections sss msel secondColumnParams cfig + <> combineInventoryExtra sss msel cfig w + where + msel = w ^? hud . hudElement . subInventory . ciSelection . _Just drawExamineInventory :: Configuration -> World -> Picture drawExamineInventory cfig w = @@ -181,7 +183,7 @@ drawRBOptions cfig w = fromMaybe mempty $ do i <- w ^? rbOptions . opSel let ae = getEquipmentAllocation w sss <- w ^? hud . hudElement . diSections - (i', j) <- sss ^? sssExtra . sssSelPos . _Just + (i', j) <- w ^? hud . hudElement . diSelection . _Just curpos <- selSecYint i' j sss let ytext = drawListElement 0 1 0 curpos . text midstr = equipAllocString ae @@ -244,9 +246,11 @@ inventoryExtraH sss cfig w i is = fromMaybe mempty $ do where snum = selNumPos cfig (invDisplayParams w) sss 0 -combineInventoryExtra :: SelectionSections CombinableItem -> Configuration -> World -> Picture -combineInventoryExtra sss cfig w = fromMaybe mempty $ do - (i, j) <- sss ^? sssExtra . sssSelPos . _Just +combineInventoryExtra :: SelectionSections CombinableItem + -> Maybe (Int,Int) + -> Configuration -> World -> Picture +combineInventoryExtra sss msel cfig w = fromMaybe mempty $ do + (i, j) <- msel cpos <- selSecYint i j sss si <- sss ^? sssSections . ix i . ssItems . ix j let col = _siColor si @@ -269,7 +273,7 @@ combineInventoryExtra sss cfig w = fromMaybe mempty $ do let idp = invDisplayParams w & ldpCursorSides .~ [North, South, East, West] return $ translateScreenPos cfig (idp ^. ldpPos) $ - selSecDrawCursor 17 idp (sss' & sssExtra . sssSelPos ?~ (0, i)) + selSecDrawCursor 17 idp sss' (Just (0, i)) displayTerminal :: Int -> Configuration -> LWorld -> Picture displayTerminal tid cfig w = fromMaybe mempty $ do diff --git a/src/Dodge/Render/List.hs b/src/Dodge/Render/List.hs index 73a28fc5e..a4ecc0d39 100644 --- a/src/Dodge/Render/List.hs +++ b/src/Dodge/Render/List.hs @@ -101,10 +101,11 @@ selSecDrawCursorAt (i,j) xsize ldp sss = fromMaybe mempty $ do xsize (_siHeight si) -selSecDrawCursor :: Int -> ListDisplayParams -> SelectionSections a -> Picture -selSecDrawCursor xsize ldp sss = maybe mempty +selSecDrawCursor :: Int -> ListDisplayParams -> SelectionSections a -> + Maybe (Int,Int) -> Picture +selSecDrawCursor xsize ldp sss msel = maybe mempty (\x -> selSecDrawCursorAt x xsize ldp sss) - (sss ^? sssExtra . sssSelPos . _Just) + msel -- displays a cursor that should match up to list text pictures listCursorChooseBorderScale :: diff --git a/src/Dodge/SelectionSections.hs b/src/Dodge/SelectionSections.hs index f421a589f..facf1617f 100644 --- a/src/Dodge/SelectionSections.hs +++ b/src/Dodge/SelectionSections.hs @@ -3,7 +3,7 @@ module Dodge.SelectionSections ( ssLookupDown, ssLookupGT, ssSetCursor, - setFirstPosSelectionSections, +-- setFirstPosSelectionSections, selSecYint, selSecSelSize, inverseSelSecYint, @@ -31,10 +31,10 @@ scrollSelectionSections yi sss msel | yi > 0 = foldr ($) msel $ replicate yi (ssScrollUsing ssLookupUp sss) | otherwise = foldr ($) msel $ replicate (negate yi) (ssScrollUsing ssLookupDown sss) -setFirstPosSelectionSections :: SelectionSections a -> SelectionSections a -setFirstPosSelectionSections sss = fromMaybe sss $ do - (i, j, _) <- ssLookupMin sss - return $ sss & sssExtra . sssSelPos ?~ (i, j) +--setFirstPosSelectionSections :: SelectionSections a -> SelectionSections a +--setFirstPosSelectionSections sss = fromMaybe sss $ do +-- (i, j, _) <- ssLookupMin sss +-- return $ sss & sssExtra . sssSelPos ?~ (i, j) ssScrollUsing :: (Int -> Int -> SelectionSections a -> Maybe (Int, Int, SelectionItem a)) -> @@ -66,14 +66,11 @@ ssScrollMinOnFail f sss msel = fmap (\(i, j, _) -> (i, j)) $ l <|> ssLookupMin s ssSetCursor :: (SelectionSections a -> Maybe (Int, Int, SelectionItem a)) -> SelectionSections a -> - SelectionSections a -ssSetCursor f sss = fromMaybe sss $ do + Maybe (Int,Int) -> + Maybe (Int,Int) +ssSetCursor f sss msel = fromMaybe msel $ do (i, j, _) <- f sss - return $ - sss - & sssExtra . sssSelPos ?~ (i, j) - --- & sssSections . ix i . ssCursor ?~ SectionCursor j j (_siHeight si) (_siColor si) + return $ Just (i, j) ssLookupMax :: SelectionSections a -> Maybe (Int, Int, SelectionItem a) ssLookupMax sss = do diff --git a/src/Dodge/SelectionSections/Draw.hs b/src/Dodge/SelectionSections/Draw.hs index 72ad22bc3..17149b500 100644 --- a/src/Dodge/SelectionSections/Draw.hs +++ b/src/Dodge/SelectionSections/Draw.hs @@ -7,14 +7,14 @@ import Dodge.Render.List import Dodge.ScreenPos import Picture.Base -drawSelectionSections :: SelectionSections a -> ListDisplayParams -> Configuration -> Picture -drawSelectionSections sss ldp cfig = +drawSelectionSections :: SelectionSections a -> Maybe (Int,Int) -> ListDisplayParams -> Configuration -> Picture +drawSelectionSections sss msel ldp cfig = translateScreenPos cfig (ldp ^. ldpPos) $ drawListYgapScaleYoff (_ldpVerticalGap ldp) (_ldpScale ldp) 0 pics - <> selSecDrawCursor 15 ldp sss + <> selSecDrawCursor 15 ldp sss msel where pics = foldMap _ssShownItems (_sssSections sss) diff --git a/src/Dodge/TestString.hs b/src/Dodge/TestString.hs index 4826322fd..9d964714a 100644 --- a/src/Dodge/TestString.hs +++ b/src/Dodge/TestString.hs @@ -37,8 +37,7 @@ testStringInit u = [show $ u ^? uvWorld . hud . hudElement . subInventory . nsMo -- showh _ = "" topTestPart :: Universe -> [String] -topTestPart u = [show $ u ^? uvWorld . hud . hudElement . diSections . sssExtra . sssSelPos - , maybe "" showManObj $ u ^? uvWorld . cWorld . lWorld . creatures . ix 0 . crManipulation . manObject +topTestPart u = [maybe "" showManObj $ u ^? uvWorld . cWorld . lWorld . creatures . ix 0 . crManipulation . manObject ] showManObj :: ManipulatedObject -> String diff --git a/src/Dodge/Update.hs b/src/Dodge/Update.hs index a678c8005..a4edbc82e 100644 --- a/src/Dodge/Update.hs +++ b/src/Dodge/Update.hs @@ -344,7 +344,7 @@ updateMouseInventorySelection' sss cfig w startDrag :: (Int,Int) -> World -> World startDrag (a,b) w = fromMaybe (augInvDirectSelect (a,b) $ setmichosen 0 w) $ do - (i,j) <- w ^? hud . hudElement . diSections . sssExtra . sssSelPos . _Just + (i,j) <- w ^? hud . hudElement . diSelection . _Just x <- w ^? hud . hudElement . subInventory . nsSelected . misExtra guard $ i == a && b >= j && b <= j + x return w diff --git a/src/Dodge/Update/Input/InGame.hs b/src/Dodge/Update/Input/InGame.hs index 637da41dd..e6274feec 100644 --- a/src/Dodge/Update/Input/InGame.hs +++ b/src/Dodge/Update/Input/InGame.hs @@ -38,24 +38,26 @@ updateUseInputInGame u = case u ^. uvWorld . hud . hudElement of | inTermFocus (_uvWorld u) -> updateKeysInTerminal tmid u | lbinitialpress -> u & uvWorld . cWorld . lWorld . terminals . ix tmid . tmInput . tiFocus %~ const True - CombineInventory{_ciSections = sss} + CombineInventory{_ciSections = sss, _ciSelection = msel} | inSubInvRegex (u ^. uvWorld) -> u - & uvWorld . hud . hudElement . subInventory . ciSections - %~ doRegexInput (u ^. uvWorld . input) (-1) + & uvWorld . hud . hudElement . subInventory + %~ docombineregexinput & uvWorld . worldEventFlags . at CombineInventoryChange ?~ () | lbinitialpress -> (uvWorld . worldEventFlags . at InventoryChange ?~ ()) . maybeExitCombine $ - over uvWorld (tryCombine sss) u + over uvWorld (tryCombine sss msel) u & uvWorld . worldEventFlags . at CombineInventoryChange ?~ () _ | inInvRegex (u ^. uvWorld) -> - u & uvWorld . hud . hudElement . diSections %~ doRegexInput (u ^. uvWorld . input) (-1) + u & uvWorld . hud . hudElement %~ dodisplayregexinput (-1) + -- . diSections %~ doRegexInput (u ^. uvWorld . input) (-1) & uvWorld . worldEventFlags . at InventoryChange ?~ () & uvWorld %~ setInvPosFromSS _ | inCloseRegex (u ^. uvWorld) -> - u & uvWorld . hud . hudElement . diSections %~ doRegexInput (u ^. uvWorld . input) 2 + --u & uvWorld . hud . hudElement . diSections %~ doRegexInput (u ^. uvWorld . input) 2 + u & uvWorld . hud . hudElement %~ dodisplayregexinput 2 & uvWorld . worldEventFlags . at InventoryChange ?~ () & uvWorld %~ setInvPosFromSS _ -> M.foldlWithKey' updateKeyInGame u pkeys @@ -63,6 +65,18 @@ updateUseInputInGame u = case u ^. uvWorld . hud . hudElement of w = u ^. uvWorld pkeys = u ^. uvWorld . input . pressedKeys lbinitialpress = u ^? uvWorld . input . mouseButtons . ix ButtonLeft == Just 0 + docombineregexinput ci = fromMaybe ci $ do + sss <- ci ^? ciSections + msel <- ci ^? ciSelection + let (sss',msel') = doRegexInput (u ^. uvWorld . input) (-1) sss msel + return $ ci & ciSections .~ sss' + & ciSelection .~ msel' + dodisplayregexinput x di = fromMaybe di $ do + sss <- di ^? diSections + msel <- di ^? diSelection + let (sss',msel') = doRegexInput (u ^. uvWorld . input) x sss msel + return $ di & diSections .~ sss' + & diSelection .~ msel' updatePressedButtonsCarte :: World -> World updatePressedButtonsCarte w = updatePressedButtonsCarte' (_mouseButtons (_input w)) w @@ -132,17 +146,18 @@ updateLongPressInGame uv sc = case sc of ScancodeSpace -> over uvWorld spaceAction uv _ -> uv -doRegexInput :: Input -> Int -> SelectionSections a -> SelectionSections a -doRegexInput inp i sss +doRegexInput :: Input -> Int -> SelectionSections a -> Maybe (Int,Int) + -> (SelectionSections a, Maybe (Int,Int)) +doRegexInput inp i sss msel | backspacetonothing || escapekey = endregex i 0 | endkeys || endmouse = endregex (i + 1) (j -1) - | otherwise = sss & doTextInputOver inp (sssExtra . sssFilters . ix i . _Just) + | otherwise = (sss & doTextInputOver inp (sssExtra . sssFilters . ix i . _Just) + , msel) where endregex a b = - sss - & sssExtra . sssFilters . ix i .~ Nothing + (sss & sssExtra . sssFilters . ix i .~ Nothing & sssSections . ix i . ssItems .~ mempty - & ssSetCursor (ssLookupDown a b) + , msel & ssSetCursor (ssLookupDown a b) sss) j = fromMaybe 0 $ do itms <- sss ^? sssSections . ix (i + 1) . ssItems fst <$> IM.lookupMin itms @@ -161,53 +176,59 @@ updateBackspaceRegex :: World -> World updateBackspaceRegex w = case di ^? subInventory of Just NoSubInventory{} | secfocus (-1) 0 -> - w & hud . hudElement . diSections %~ trybackspace (-1) + w & hud . hudElement %~ trybackspace (-1) & worldEventFlags . at InventoryChange ?~ () Just NoSubInventory{} | secfocus 2 3 -> - w & hud . hudElement . diSections %~ trybackspace 2 + w & hud . hudElement %~ trybackspace 2 & worldEventFlags . at InventoryChange ?~ () Just CombineInventory{} -> - w & hud . hudElement . subInventory . ciSections %~ trybackspace (-1) + w & hud . hudElement . subInventory %~ trybackspace' (-1) & worldEventFlags . at InventoryChange ?~ () _ -> w where secfocus a b = fromMaybe False $ do - i <- di ^? diSections . sssExtra . sssSelPos . _Just . _1 + i <- di ^? diSelection . _Just . _1 return $ i == a || i == b - trybackspace x sss = fromMaybe sss $ do - -- i <- fss ^? fssSections . sssSelPos . _Just . _1 - -- guard (i == x || i == x+1) + trybackspace x he = fromMaybe he $ do + sss <- he ^? diSections str <- sss ^? sssExtra . sssFilters . ix x . _Just return $ case str of (_ : _) -> - sss & sssExtra . sssFilters . ix x . _Just %~ init - & sssExtra . sssSelPos ?~ (x, 0) - [] -> sss & sssExtra . sssFilters . ix x .~ Nothing + he & diSections . sssExtra . sssFilters . ix x . _Just %~ init + & diSelection ?~ (x, 0) + [] -> he & diSections . sssExtra . sssFilters . ix x .~ Nothing + trybackspace' x ci = fromMaybe ci $ do + sss <- ci ^? ciSections + str <- sss ^? sssExtra . sssFilters . ix x . _Just + return $ case str of + (_ : _) -> + ci & ciSections . sssExtra . sssFilters . ix x . _Just %~ init + & ciSelection ?~ (x, 0) + [] -> ci & ciSections . sssExtra . sssFilters . ix x .~ Nothing di = w ^. hud . hudElement updateEnterRegex :: World -> World updateEnterRegex w = case w ^? hud . hudElement . subInventory of Just NoSubInventory{} | secfocus (-1) 0 -> - w & hud . hudElement . diSections . sssExtra . sssSelPos ?~ (-1, 0) + w & hud . hudElement . diSelection ?~ (-1, 0) & hud . hudElement . diSections %~ enterregex (-1) Just NoSubInventory{} | secfocus 2 3 -> - w & hud . hudElement . diSections . sssExtra . sssSelPos ?~ (2, 0) + w & hud . hudElement . diSelection ?~ (2, 0) & hud . hudElement . diSections %~ enterregex 2 Just CombineInventory{} -> w & hud . hudElement . subInventory . ciSections %~ enterregex (-1) - & hud . hudElement . subInventory . ciSections . sssExtra . sssSelPos ?~ (-1, 0) + & hud . hudElement . subInventory . ciSelection ?~ (-1, 0) _ -> w where di = w ^. hud . hudElement secfocus a b = fromMaybe False $ do - i <- di ^? diSections . sssExtra . sssSelPos . _Just . _1 + i <- di ^? diSelection . _Just . _1 return $ i == a || i == b enterregex x sss = sss & sssExtra . sssFilters . ix x %~ f - & sssExtra . sssSelPos ?~ (x, 0) f Nothing = Just "" f x = x @@ -242,6 +263,7 @@ toggleMap u = case u ^. uvWorld . hud . hudElement of .~ DisplayInventory { _subInventory = NoSubInventory NoMouseSel Nothing , _diSections = defaultInvSections + , _diSelection = Nothing } _ -> u & uvWorld . hud . hudElement .~ DisplayCarte @@ -254,9 +276,9 @@ toggleTweakInv w = case w ^? hud . hudElement . subInventory of -- mi = 0 <$ (yourSelectedItem w >>= (^? itTweaks . tweakParams . ix 0)) -tryCombine :: SelectionSections CombinableItem -> World -> World -tryCombine sss w = fromMaybe w $ do - (i, j) <- sss ^? sssExtra . sssSelPos . _Just +tryCombine :: SelectionSections CombinableItem -> Maybe (Int,Int) -> World -> World +tryCombine sss msel w = fromMaybe w $ do + (i, j) <- msel CombinableItem is it _ <- sss ^? sssSections . ix i . ssItems . ix j . siPayload return $ snd (createItemYou it (foldr (destroyInvItem 0) w (sort is))) diff --git a/src/Dodge/Update/Scroll.hs b/src/Dodge/Update/Scroll.hs index 87350bd02..43113ac14 100644 --- a/src/Dodge/Update/Scroll.hs +++ b/src/Dodge/Update/Scroll.hs @@ -58,12 +58,13 @@ updateWheelEvent yi w = case w ^. hud . hudElement of moveCombineSel :: Int -> World -> World moveCombineSel yi = - ( hud . hudElement . subInventory . ciSections - %~ doscroll + ( hud . hudElement . subInventory %~ doscroll ) . (worldEventFlags . at CombineInventoryChange ?~ ()) where - doscroll sss = sss & sssExtra . sssSelPos %~ scrollSelectionSections yi sss + doscroll ci = fromMaybe ci $ do + sss <- ci ^? ciSections + return $ ci & ciSelection %~ scrollSelectionSections yi sss --moveSubSel :: Int -> Int -> World -> World --moveSubSel yi maxyi = diff --git a/tags b/tags index 0cc2fd61e..5b4c393ff 100644 --- a/tags +++ b/tags @@ -191,7 +191,7 @@ Boid src/Dodge/Creature/Boid.hs 1;" m BoostPropIX src/Dodge/Data/Item/Params.hs 29;" C Booster src/Dodge/Item/Equipment/Booster.hs 1;" m Boosting src/Dodge/Data/Creature/Stance.hs 28;" C -BorderCursor src/Dodge/Data/SelectionList.hs 73;" C +BorderCursor src/Dodge/Data/SelectionList.hs 72;" C Boss src/Dodge/Room/Boss.hs 2;" m BottomEscapeMenuOption src/Dodge/Data/Universe.hs 73;" C BounceBullet src/Dodge/Data/Bullet.hs 38;" C @@ -333,7 +333,7 @@ Combinations src/Dodge/Combine/Combinations.hs 3;" m Combine src/Dodge/Combine.hs 2;" m Combine src/Dodge/Data/Combine.hs 2;" m Combine src/Dodge/Data/Item/Combine.hs 6;" m -CombineInventory src/Dodge/Data/HUD.hs 36;" C +CombineInventory src/Dodge/Data/HUD.hs 37;" C CombineInventoryChange src/Dodge/Data/World.hs 34;" C Common src/Dodge/Zoning/Common.hs 1;" m Compile src/Shader/Compile.hs 1;" m @@ -435,7 +435,7 @@ Cull_more_lights src/Dodge/Data/Config.hs 78;" C CumulativeMuzzleEffect src/Dodge/Data/MuzzleEffect.hs 11;" t CurseStatus src/Dodge/Data/Item/CurseStatus.hs 11;" t CurseStatus src/Dodge/Data/Item/CurseStatus.hs 6;" m -CursorType src/Dodge/Data/SelectionList.hs 71;" t +CursorType src/Dodge/Data/SelectionList.hs 70;" t Cuse src/Dodge/Data/Item/HeldUse.hs 15;" t Cuse src/Dodge/Cuse.hs 1;" m Cylinder src/Shape/Data.hs 19;" C @@ -510,10 +510,10 @@ Detector src/Dodge/Data/Item/Combine.hs 168;" t Dirt src/Dodge/Data/Material.hs 11;" C DisasterType src/Dodge/Data/Scenario.hs 24;" t Display src/Dodge/Item/Display.hs 1;" m -DisplayCarte src/Dodge/Data/HUD.hs 20;" C +DisplayCarte src/Dodge/Data/HUD.hs 21;" C DisplayInventory src/Dodge/Data/HUD.hs 16;" C DisplayInventory src/Dodge/DisplayInventory.hs 5;" m -DisplayTerminal src/Dodge/Data/HUD.hs 38;" C +DisplayTerminal src/Dodge/Data/HUD.hs 41;" C Distortion src/Dodge/Data/Distortion.hs 12;" t Distortion src/Dodge/Data/Distortion.hs 6;" m Distortion src/Dodge/Distortion.hs 1;" m @@ -658,7 +658,7 @@ Euse src/Dodge/Data/Item/HeldUse.hs 20;" t Euse src/Dodge/Euse.hs 1;" m Event src/Dodge/Button/Event.hs 1;" m Event src/Dodge/Event.hs 14;" m -ExamineInventory src/Dodge/Data/HUD.hs 35;" C +ExamineInventory src/Dodge/Data/HUD.hs 36;" C Explore src/Dodge/Data/Scenario.hs 4;" C Explosion src/Dodge/Data/SoundOrigin.hs 36;" C Explosion src/Dodge/WorldEvent/Explosion.hs 4;" m @@ -690,7 +690,7 @@ FetchItem src/Dodge/Data/Scenario.hs 11;" C Fixated src/Dodge/Data/Creature/Perception.hs 62;" C FixedCoordLayer src/Picture/Data.hs 28;" C FixedRate src/Dodge/Data/Item/HeldDelay.hs 15;" C -FixedSelectionWidth src/Dodge/Data/SelectionList.hs 67;" C +FixedSelectionWidth src/Dodge/Data/SelectionList.hs 66;" C FlIt src/Dodge/Data/FloorItem.hs 16;" C Flame src/Dodge/Data/Flame.hs 14;" t Flame src/Dodge/Data/Flame.hs 6;" m @@ -816,7 +816,7 @@ HELD src/Dodge/Data/Item/Combine.hs 16;" C HELDDETECTOR src/Dodge/Data/Item/Combine.hs 162;" C HOMINGMODULE src/Dodge/Data/Item/Combine.hs 82;" C HOSE src/Dodge/Data/Item/Combine.hs 32;" C -HUD src/Dodge/Data/HUD.hs 42;" t +HUD src/Dodge/Data/HUD.hs 45;" t HUD src/Dodge/Data/HUD.hs 6;" m HUD src/Dodge/Render/HUD.hs 3;" m HUDElement src/Dodge/Data/HUD.hs 15;" t @@ -1072,7 +1072,7 @@ Location src/Dodge/Item/Location.hs 1;" m LocationLDT src/Dodge/Data/DoubleTree.hs 62;" t Lock src/Dodge/Inventory/Lock.hs 1;" m LockAndKey src/Dodge/LockAndKey.hs 1;" m -LockedInventory src/Dodge/Data/HUD.hs 37;" C +LockedInventory src/Dodge/Data/HUD.hs 40;" C LoneWolf src/Dodge/Data/Creature/State.hs 46;" C LongAI src/Dodge/Data/Creature/Misc.hs 60;" C LongDoor src/Dodge/Room/LongDoor.hs 2;" m @@ -1184,9 +1184,9 @@ MountedLS src/Dodge/Data/MountedObject.hs 12;" C MountedObject src/Dodge/Data/MountedObject.hs 11;" t MountedObject src/Dodge/Data/MountedObject.hs 6;" m MountedProp src/Dodge/Data/MountedObject.hs 13;" C -MouseInvChosen src/Dodge/Data/HUD.hs 26;" C -MouseInvSelect src/Dodge/Data/HUD.hs 24;" C -MouseInventorySelection src/Dodge/Data/HUD.hs 22;" t +MouseInvChosen src/Dodge/Data/HUD.hs 27;" C +MouseInvSelect src/Dodge/Data/HUD.hs 25;" C +MouseInventorySelection src/Dodge/Data/HUD.hs 23;" t Mouse_position src/Dodge/Data/Config.hs 73;" C Move src/Dodge/Data/ActionPlan.hs 28;" C Move src/Dodge/Wall/Move.hs 3;" m @@ -1239,7 +1239,7 @@ NoConcurrentEffect src/Loop/Data.hs 7;" 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 72;" C +NoCursor src/Dodge/Data/SelectionList.hs 71;" C NoDamageEffect src/Dodge/Data/Damage.hs 29;" C NoDebugInfo src/Dodge/Data/Universe.hs 54;" C NoDelay src/Dodge/Data/Item/HeldDelay.hs 14;" C @@ -1253,7 +1253,7 @@ NoIntImp src/Dodge/Data/CreatureEffect.hs 20;" C NoInvEffect src/Dodge/Data/Item/Effect.hs 20;" C NoItTargeting src/Dodge/Data/Item.hs 44;" C NoLighting src/Dodge/Data/Config.hs 102;" C -NoMouseSel src/Dodge/Data/HUD.hs 23;" C +NoMouseSel src/Dodge/Data/HUD.hs 24;" C NoMvType src/Dodge/Data/Creature/Misc.hs 38;" C NoNeedWeapon src/Dodge/Room/NoNeedWeapon.hs 2;" m NoObjShads src/Dodge/Data/Config.hs 100;" C @@ -1264,7 +1264,7 @@ NoRightButtonOptions src/Dodge/Data/RightButtonOptions.hs 14;" C NoRoomClipBoundaries src/Dodge/Data/Config.hs 105;" C NoShadowFidelity src/Shape/Data.hs 25;" C NoShadows src/Dodge/Data/Config.hs 101;" C -NoSubInventory src/Dodge/Data/HUD.hs 31;" C +NoSubInventory src/Dodge/Data/HUD.hs 32;" C NoWorldEffect src/Dodge/Data/WorldEffect.hs 24;" C Noclip src/Dodge/Data/Config.hs 70;" C NodeMTree src/Dodge/Tree/Compose/Data.hs 9;" C @@ -1660,7 +1660,7 @@ ScreenPos src/Dodge/ScreenPos.hs 1;" m Scroll src/Dodge/Update/Scroll.hs 1;" m 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 48;" t SeeAbove src/Dodge/Data/Wall.hs 40;" C SeeThrough src/Dodge/Data/Wall.hs 39;" C SelCloseObject src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 30;" C @@ -1668,17 +1668,17 @@ SelNothing src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 28;" C SelectUse src/Dodge/SelectUse.hs 1;" m Select_creature src/Dodge/Data/Config.hs 92;" C SelectedItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 23;" C -SelectionInfo src/Dodge/Data/SelectionList.hs 84;" C -SelectionItem src/Dodge/Data/SelectionList.hs 75;" t +SelectionInfo src/Dodge/Data/SelectionList.hs 83;" C +SelectionItem src/Dodge/Data/SelectionList.hs 74;" t SelectionList src/Dodge/Data/SelectionList.hs 26;" t SelectionList src/Dodge/Data/SelectionList.hs 6;" m SelectionList src/Dodge/Default/SelectionList.hs 1;" m SelectionList src/Dodge/Inventory/SelectionList.hs 2;" m SelectionList src/Dodge/SelectionList.hs 1;" m -SelectionSection src/Dodge/Data/SelectionList.hs 55;" t +SelectionSection src/Dodge/Data/SelectionList.hs 54;" t SelectionSections src/Dodge/Data/SelectionList.hs 36;" t SelectionSections src/Dodge/SelectionSections.hs 1;" m -SelectionWidth src/Dodge/Data/SelectionList.hs 66;" t +SelectionWidth src/Dodge/Data/SelectionList.hs 65;" t SelfTree src/Dodge/Tree/Compose/Data.hs 12;" t Sensor src/Dodge/Data/Machine/Sensor.hs 16;" t Sensor src/Dodge/Data/Machine/Sensor.hs 6;" m @@ -1809,7 +1809,7 @@ Strategy src/Dodge/Creature/Strategy.hs 1;" m StrategyActions src/Dodge/Data/ActionPlan.hs 188;" C StrictHelp src/StrictHelp.hs 1;" m StringHelp src/StringHelp.hs 1;" m -SubInventory src/Dodge/Data/HUD.hs 30;" t +SubInventory src/Dodge/Data/HUD.hs 31;" t Superfluous src/Shape/Data.hs 38;" C Surface src/Shape/Data.hs 41;" t Survive src/Dodge/Data/Scenario.hs 5;" C @@ -2020,7 +2020,7 @@ UseHeld src/Dodge/Data/Item/Use.hs 36;" C UseHotkey src/Dodge/Data/Item/Use.hs 44;" C UseItem src/Dodge/Data/ActionPlan.hs 37;" C UseItem src/Dodge/Creature/Impulse/UseItem.hs 1;" m -UseMaxSelectionItemWidth src/Dodge/Data/SelectionList.hs 69;" C +UseMaxSelectionItemWidth src/Dodge/Data/SelectionList.hs 68;" C UseMvTargetPos src/Dodge/Data/ActionPlan.hs 163;" C UseScope src/Dodge/Data/Item/Use.hs 60;" C UseSelf src/Dodge/Data/ActionPlan.hs 157;" C @@ -2034,7 +2034,7 @@ VBO src/Shader/Data.hs 81;" t VF src/Polyhedra/Data.hs 21;" t VIOLET src/Color/Data.hs 22;" C VOLLEYGUN src/Dodge/Data/Item/Combine.hs 139;" C -VariableSelectionWidth src/Dodge/Data/SelectionList.hs 68;" C +VariableSelectionWidth src/Dodge/Data/SelectionList.hs 67;" C Vector src/Geometry/Vector.hs 3;" m Vector3D src/Geometry/Vector3D.hs 2;" m VertexAttribute src/Shader/Data.hs 68;" t @@ -2274,15 +2274,16 @@ _camViewDistance src/Dodge/Data/Camera.hs 30;" f _camViewFrom src/Dodge/Data/Camera.hs 29;" f _camZoom src/Dodge/Data/Camera.hs 26;" f _carriage src/Dodge/Data/Creature/Stance.hs 14;" f -_carteCenter src/Dodge/Data/HUD.hs 44;" f -_carteRot src/Dodge/Data/HUD.hs 46;" f -_carteZoom src/Dodge/Data/HUD.hs 45;" f +_carteCenter src/Dodge/Data/HUD.hs 47;" f +_carteRot src/Dodge/Data/HUD.hs 49;" f +_carteZoom src/Dodge/Data/HUD.hs 48;" f _ceSideEffect src/Dodge/Data/Universe.hs 62;" f _ceString src/Dodge/Data/Universe.hs 63;" f _ciInfo src/Dodge/Data/Combine.hs 8;" f _ciInvIDs src/Dodge/Data/Combine.hs 6;" f _ciItem src/Dodge/Data/Combine.hs 7;" f -_ciSections src/Dodge/Data/HUD.hs 36;" f +_ciSections src/Dodge/Data/HUD.hs 37;" f +_ciSelection src/Dodge/Data/HUD.hs 38;" f _cigType src/Dodge/Data/Camera.hs 19;" f _clAlt src/Dodge/Data/Cloud.hs 23;" f _clPict src/Dodge/Data/Cloud.hs 21;" f @@ -2306,7 +2307,7 @@ _cldtUp src/Dodge/Data/DoubleTree.hs 46;" f _cldtUp src/Dodge/Data/DoubleTree.hs 54;" f _clickPos src/Dodge/Data/Input.hs 26;" f _clickWorldPos src/Dodge/Data/Input.hs 28;" f -_closeObjects src/Dodge/Data/HUD.hs 47;" f +_closeObjects src/Dodge/Data/HUD.hs 50;" 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 @@ -2417,6 +2418,7 @@ _decorations src/Dodge/Data/LWorld.hs 134;" f _delayedEvents src/Dodge/Data/LWorld.hs 131;" f _dexterity src/Dodge/Data/Creature/Misc.hs 22;" f _diSections src/Dodge/Data/HUD.hs 18;" f +_diSelection src/Dodge/Data/HUD.hs 19;" f _dimAttachPos src/Dodge/Data/Item/Misc.hs 16;" f _dimCenter src/Dodge/Data/Item/Misc.hs 15;" f _dimRad src/Dodge/Data/Item/Misc.hs 14;" f @@ -2585,7 +2587,7 @@ _heldPos src/Dodge/Data/Input.hs 27;" f _heldTriggerType src/Dodge/Data/Item/Use.hs 42;" f _heldWorldPos src/Dodge/Data/Input.hs 29;" f _hud src/Dodge/Data/World.hs 47;" f -_hudElement src/Dodge/Data/HUD.hs 43;" f +_hudElement src/Dodge/Data/HUD.hs 46;" f _humanoidAI src/Dodge/Data/Creature/Misc.hs 69;" f _iaLoaded src/Dodge/Data/Item/Use/Consumption.hs 22;" f _iaMax src/Dodge/Data/Item/Use/Consumption.hs 21;" f @@ -2739,9 +2741,9 @@ _mgField src/Dodge/Data/Magnet.hs 25;" f _mgID src/Dodge/Data/Magnet.hs 22;" f _mgPos src/Dodge/Data/Magnet.hs 24;" f _mgUpdate src/Dodge/Data/Magnet.hs 23;" f -_misExtra src/Dodge/Data/HUD.hs 27;" f -_misMaybeEnd src/Dodge/Data/HUD.hs 25;" f -_misSelStart src/Dodge/Data/HUD.hs 25;" f +_misExtra src/Dodge/Data/HUD.hs 28;" f +_misMaybeEnd src/Dodge/Data/HUD.hs 26;" f +_misSelStart src/Dodge/Data/HUD.hs 26;" f _moEff src/Dodge/Data/Universe.hs 101;" f _moEff1 src/Dodge/Data/Universe.hs 105;" f _moEff2 src/Dodge/Data/Universe.hs 106;" f @@ -2773,8 +2775,8 @@ _newArcStep src/Dodge/Data/Item/Params.hs 25;" f _nodeMetaTree src/Dodge/Tree/Compose/Data.hs 9;" f _nodeTree src/Dodge/Tree/Compose/Data.hs 9;" f _nodesSearched src/Dodge/Data/Creature/Memory.hs 15;" f -_nsMouseOver src/Dodge/Data/HUD.hs 33;" f -_nsSelected src/Dodge/Data/HUD.hs 32;" f +_nsMouseOver src/Dodge/Data/HUD.hs 34;" f +_nsSelected src/Dodge/Data/HUD.hs 33;" f _numLinkEW src/Dodge/Data/Room.hs 33;" f _numLinkNS src/Dodge/Data/Room.hs 34;" f _numberFloorVerxs src/Dodge/Data/CWorld.hs 32;" f @@ -2988,9 +2990,9 @@ _scrollSmoothing src/Dodge/Data/World.hs 63;" f _scrollSmoothing src/Dodge/Data/World.hs 69;" 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 51;" f +_scurPos src/Dodge/Data/SelectionList.hs 49;" f +_scurSize src/Dodge/Data/SelectionList.hs 50;" f _seenLocations src/Dodge/Data/LWorld.hs 139;" f _seenWalls src/Dodge/Data/CWorld.hs 29;" f _selLocation src/Dodge/Data/LWorld.hs 140;" f @@ -3016,17 +3018,17 @@ _shapeHalfSize src/Shape/Data.hs 18;" f _shapeShader src/Data/Preload/Render.hs 25;" f _shockwaves src/Dodge/Data/LWorld.hs 114;" f _shrinkGunStatus src/Dodge/Data/Item/Params.hs 18;" f -_siColor src/Dodge/Data/SelectionList.hs 80;" f -_siColor src/Dodge/Data/SelectionList.hs 88;" f -_siHeight src/Dodge/Data/SelectionList.hs 78;" f -_siHeight src/Dodge/Data/SelectionList.hs 86;" f -_siIsSelectable src/Dodge/Data/SelectionList.hs 79;" f -_siIsSelectable src/Dodge/Data/SelectionList.hs 87;" f -_siOffX src/Dodge/Data/SelectionList.hs 81;" f -_siOffX src/Dodge/Data/SelectionList.hs 89;" f -_siPayload src/Dodge/Data/SelectionList.hs 82;" f -_siPictures src/Dodge/Data/SelectionList.hs 77;" f -_siPictures src/Dodge/Data/SelectionList.hs 85;" f +_siColor src/Dodge/Data/SelectionList.hs 79;" f +_siColor src/Dodge/Data/SelectionList.hs 87;" f +_siHeight src/Dodge/Data/SelectionList.hs 77;" f +_siHeight src/Dodge/Data/SelectionList.hs 85;" f +_siIsSelectable src/Dodge/Data/SelectionList.hs 78;" f +_siIsSelectable src/Dodge/Data/SelectionList.hs 86;" f +_siOffX src/Dodge/Data/SelectionList.hs 80;" f +_siOffX src/Dodge/Data/SelectionList.hs 88;" f +_siPayload src/Dodge/Data/SelectionList.hs 81;" f +_siPictures src/Dodge/Data/SelectionList.hs 76;" f +_siPictures src/Dodge/Data/SelectionList.hs 84;" f _sideEffect src/Loop/Data.hs 13;" f _sideImpulses src/Dodge/Data/ActionPlan.hs 170;" f _sidePush src/Dodge/Data/Item/Use.hs 87;" f @@ -3061,17 +3063,16 @@ _spPixelOff src/Dodge/Data/ScreenPos.hs 11;" f _spScreenOff src/Dodge/Data/ScreenPos.hs 10;" f _sparks src/Dodge/Data/LWorld.hs 110;" f _spawnEBT src/Dodge/Data/Bullet.hs 43;" 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 +_ssCursor src/Dodge/Data/SelectionList.hs 56;" f +_ssDescriptor src/Dodge/Data/SelectionList.hs 61;" f +_ssIndent src/Dodge/Data/SelectionList.hs 60;" f +_ssItems src/Dodge/Data/SelectionList.hs 55;" f +_ssMinSize src/Dodge/Data/SelectionList.hs 57;" f +_ssOffset src/Dodge/Data/SelectionList.hs 58;" f +_ssShownItems src/Dodge/Data/SelectionList.hs 59;" f _sssExtra src/Dodge/Data/SelectionList.hs 38;" f -_sssFilters src/Dodge/Data/SelectionList.hs 46;" f +_sssFilters src/Dodge/Data/SelectionList.hs 45;" f _sssSections src/Dodge/Data/SelectionList.hs 37;" f -_sssSelPos src/Dodge/Data/SelectionList.hs 45;" f _strength src/Dodge/Data/Creature/Misc.hs 21;" f _strideAmount src/Dodge/Data/Creature/Stance.hs 22;" f _strideLength src/Dodge/Data/Creature/Stance.hs 16;" f @@ -3102,7 +3103,7 @@ _tcEffect src/Dodge/Data/Terminal.hs 118;" f _tcHelp src/Dodge/Data/Terminal.hs 117;" f _tcString src/Dodge/Data/Terminal.hs 115;" f _tempLightSources src/Dodge/Data/LWorld.hs 138;" f -_termID src/Dodge/Data/HUD.hs 38;" f +_termID src/Dodge/Data/HUD.hs 41;" f _terminals src/Dodge/Data/LWorld.hs 123;" f _teslaArcs src/Dodge/Data/LWorld.hs 113;" f _testFloat src/Dodge/Data/World.hs 45;" f @@ -3325,7 +3326,7 @@ addToTrunk src/TreeHelp.hs 156;" f addWarningTerminal src/Dodge/Room/Warning.hs 37;" f addZ src/Geometry/Vector3D.hs 89;" f adjustIMZone src/Dodge/Base.hs 77;" f -advanceScrollAmount src/Dodge/Update.hs 395;" f +advanceScrollAmount src/Dodge/Update.hs 397;" f advanceSmoothScroll src/Dodge/SmoothScroll.hs 29;" f advanceStepCounter src/Dodge/Creature/Impulse/Movement.hs 45;" f aimDelaySweep src/Dodge/Render/ShapePicture.hs 56;" f @@ -3566,7 +3567,7 @@ chaseCritMv src/Dodge/Creature/ReaderUpdate.hs 112;" f chaseCritPerceptionUpdate src/Dodge/Creature/Perception.hs 30;" f chaseCritVocalization src/Dodge/Creature/ChaseCrit.hs 46;" f checkDeath src/Dodge/Creature/State.hs 75;" f -checkEndGame src/Dodge/Update.hs 682;" f +checkEndGame src/Dodge/Update.hs 684;" f checkErrorGL src/Shader/Compile.hs 255;" f checkFBO src/Framebuffer/Check.hs 6;" f checkGLError src/GLHelp.hs 17;" f @@ -3576,7 +3577,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 131;" f +chooseCursorBorders src/Dodge/Render/List.hs 132;" 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 @@ -3592,7 +3593,7 @@ circle src/Picture/Base.hs 180;" f circleDecoration src/Dodge/Placement/TopDecoration.hs 56;" f circleSolid src/Picture/Base.hs 164;" f circleSolidCol src/Picture/Base.hs 168;" f -clClSpringVel src/Dodge/Update.hs 735;" f +clClSpringVel src/Dodge/Update.hs 737;" f clZoneSize src/Dodge/Zone/Size.hs 3;" f clZoneSize src/Dodge/Zoning/Cloud.hs 21;" f clampPath src/Dodge/Room/Procedural.hs 166;" f @@ -3612,14 +3613,14 @@ clipZoom src/Dodge/Update/Camera.hs 215;" f clockCycle src/Dodge/Clock.hs 9;" f closeObjEq src/Dodge/Inventory/CloseObject.hs 15;" f closeObjPos src/Dodge/Inventory/CloseObject.hs 10;" f -closeObjectInfo src/Dodge/Render/HUD.hs 145;" f +closeObjectInfo src/Dodge/Render/HUD.hs 158;" f closeObjectToSelectionItem src/Dodge/Inventory/SelectionList.hs 54;" f closeObjectToTextPictures src/Dodge/Inventory/SelectionList.hs 69;" f closestCreatureID src/Dodge/Debug.hs 91;" f closestPointOnLine src/Geometry/Intersect.hs 251;" f closestPointOnLineParam src/Geometry/Intersect.hs 267;" f closestPointOnSeg src/Geometry/Intersect.hs 282;" f -cloudEffect src/Dodge/Update.hs 705;" f +cloudEffect src/Dodge/Update.hs 707;" f cloudPoisonDamage src/Dodge/Update/Cloud.hs 9;" f clsNearCirc src/Dodge/Zoning/Cloud.hs 18;" f clsNearPoint src/Dodge/Zoning/Cloud.hs 9;" f @@ -3648,7 +3649,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 234;" f +combineInventoryExtra src/Dodge/Render/HUD.hs 247;" f combineItemListYouX src/Dodge/Combine.hs 33;" f combineList src/Dodge/Combine.hs 20;" f combineRooms src/Dodge/Room/Procedural.hs 152;" f @@ -3689,7 +3690,7 @@ crAdd src/Dodge/Room/RezBox.hs 104;" f crAwayFromPost src/Dodge/Creature/Test.hs 77;" f crBlips src/Dodge/RadarSweep.hs 69;" f crCanSeeCr src/Dodge/Creature/Test.hs 48;" f -crCrSpring src/Dodge/Update.hs 753;" f +crCrSpring src/Dodge/Update.hs 755;" f crCurrentEquipment src/Dodge/Creature/Statistics.hs 28;" f crDisplayAwareness src/Dodge/Creature/Picture/Awareness.hs 37;" f crDisplayVigilance src/Dodge/Creature/Picture/Awareness.hs 51;" f @@ -3709,7 +3710,7 @@ crNearPoint src/Dodge/Creature/Test.hs 135;" f crNumFreeSlots src/Dodge/Inventory/CheckSlots.hs 35;" f crOnWall src/Dodge/WallCreatureCollisions.hs 84;" f crSafeDistFromTarg src/Dodge/Creature/Test.hs 67;" f -crSpring src/Dodge/Update.hs 748;" f +crSpring src/Dodge/Update.hs 750;" f crStratConMatches src/Dodge/Creature/Test.hs 72;" f crUpdate src/Dodge/Creature/State.hs 62;" f crUpdateInvidLocations src/Dodge/Inventory/Location.hs 50;" f @@ -3779,7 +3780,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 186;" f +dShadCol src/Dodge/Render/List.hs 187;" f damThingHitWith src/Dodge/WorldEvent/Damage.hs 10;" f damToExpBarrel src/Dodge/Barreloid.hs 57;" f damageBlocksBy src/Dodge/Wall/Damage.hs 36;" f @@ -3908,7 +3909,7 @@ defaultProp src/Dodge/Default/Prop.hs 6;" f defaultProximitySensor src/Dodge/Default.hs 80;" f defaultRoom src/Dodge/Default/Room.hs 9;" f defaultSS src/Dodge/Default/World.hs 195;" f -defaultSSSExtra src/Dodge/Default/World.hs 171;" f +defaultSSSExtra src/Dodge/Default/World.hs 172;" f defaultSelectionList src/Dodge/Default/SelectionList.hs 5;" f defaultSensorWall src/Dodge/Default/Wall.hs 58;" f defaultState src/Dodge/Default/Creature.hs 140;" f @@ -3961,9 +3962,9 @@ disconnectTerminal src/Dodge/Terminal.hs 215;" f displayConfig src/Dodge/Menu.hs 196;" f displayControls src/Dodge/Menu.hs 206;" f displayFrameTicks src/Dodge/Render/Picture.hs 33;" f -displayFreeSlots src/Dodge/DisplayInventory.hs 144;" f -displayTerminal src/Dodge/Render/HUD.hs 261;" f -displayTerminalLineString src/Dodge/Update.hs 424;" f +displayFreeSlots src/Dodge/DisplayInventory.hs 148;" f +displayTerminal src/Dodge/Render/HUD.hs 274;" f +displayTerminalLineString src/Dodge/Update.hs 426;" f dist src/Geometry/Vector.hs 179;" f dist3 src/Geometry/Vector3D.hs 101;" f divTo src/Geometry/Zone.hs 6;" f @@ -4020,7 +4021,7 @@ 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 135;" f +doRegexInput src/Dodge/Update/Input/InGame.hs 141;" f doRoomInPlacements src/Dodge/Layout.hs 97;" f doRoomOutPlacements src/Dodge/Layout.hs 107;" f doRoomPlacements src/Dodge/Layout.hs 122;" f @@ -4046,7 +4047,7 @@ doWdCrCr src/Dodge/CreatureEffect.hs 12;" f doWdP2f src/Dodge/WdP2f.hs 12;" f doWdWd src/Dodge/WorldEffect.hs 26;" f doWeaponRepetitions src/Dodge/HeldUse.hs 56;" f -doWorldEvents src/Dodge/Update.hs 406;" f +doWorldEvents src/Dodge/Update.hs 408;" f doWorldPos src/Dodge/WorldPos.hs 7;" f door src/Dodge/Room/Door.hs 13;" f doorBetween src/Dodge/Placement/Instance/Door.hs 39;" f @@ -4073,7 +4074,7 @@ drawCPUShadows src/Dodge/Render/Shadow.hs 19;" f drawCarte src/Dodge/Render/HUD/Carte.hs 14;" f drawCircFlare src/Dodge/Flare.hs 25;" f drawCollisionTest src/Dodge/Debug/Picture.hs 103;" f -drawCombineInventory src/Dodge/Render/HUD.hs 109;" f +drawCombineInventory src/Dodge/Render/HUD.hs 122;" f drawConcurrentMessage src/Dodge/Render/Picture.hs 58;" f drawCorpse src/Dodge/Corpse/Draw.hs 6;" f drawCrInfo src/Dodge/Debug/Picture.hs 342;" f @@ -4084,12 +4085,13 @@ drawCrossCol src/Dodge/Render/Label.hs 21;" f drawCursorAt src/Dodge/Render/List.hs 56;" f drawDDATest src/Dodge/Debug/Picture.hs 256;" f drawDIMouseOver src/Dodge/Render/HUD.hs 76;" f -drawDISelections src/Dodge/Render/HUD.hs 91;" f +drawDISelections src/Dodge/Render/HUD.hs 95;" f +drawDISelections' src/Dodge/Render/HUD.hs 104;" f drawDoorPaths src/Dodge/Debug/Picture.hs 217;" f drawDoubleLampCover src/Dodge/Prop/Draw.hs 81;" f drawEnergyBall src/Dodge/EnergyBall/Draw.hs 8;" f drawEquipment src/Dodge/Creature/Picture.hs 140;" f -drawExamineInventory src/Dodge/Render/HUD.hs 115;" f +drawExamineInventory src/Dodge/Render/HUD.hs 128;" f drawFarWallDetect src/Dodge/Debug/Picture.hs 234;" f drawFlame src/Dodge/Flame/Draw.hs 7;" f drawFlamelet src/Dodge/EnergyBall/Draw.hs 23;" f @@ -4097,19 +4099,19 @@ drawFlare src/Dodge/Flare.hs 12;" f drawFooterText src/Dodge/Render/MenuScreen.hs 65;" f drawForceField src/Dodge/Wall/Draw.hs 11;" f drawGib src/Dodge/Prop/Draw.hs 28;" f -drawHP src/Dodge/Render/HUD.hs 51;" f -drawHUD src/Dodge/Render/HUD.hs 43;" f +drawHP src/Dodge/Render/HUD.hs 50;" f +drawHUD src/Dodge/Render/HUD.hs 42;" f drawInputMenu src/Dodge/Render/MenuScreen.hs 18;" f drawInspectWall src/Dodge/Debug/Picture.hs 209;" f drawInspectWalls src/Dodge/Debug/Picture.hs 197;" f -drawInventory src/Dodge/Render/HUD.hs 60;" f +drawInventory src/Dodge/Render/HUD.hs 59;" 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 180;" f -drawListElement src/Dodge/Render/List.hs 160;" f +drawList src/Dodge/Render/List.hs 181;" f +drawListElement src/Dodge/Render/List.hs 161;" f drawListYgapScaleYoff src/Dodge/Render/List.hs 79;" f drawListYoff src/Dodge/Render/List.hs 76;" f drawMachine src/Dodge/Machine/Draw.hs 14;" f @@ -4130,7 +4132,7 @@ drawPointLabel src/Dodge/Render/Label.hs 13;" f drawProjectile src/Dodge/Projectile/Draw.hs 13;" f drawProp src/Dodge/Prop/Draw.hs 15;" f drawProp' src/Dodge/Prop/Draw.hs 12;" f -drawRBOptions src/Dodge/Render/HUD.hs 163;" f +drawRBOptions src/Dodge/Render/HUD.hs 176;" f drawRadarSweep src/Dodge/RadarSweep/Draw.hs 7;" f drawRemoteShell src/Dodge/Projectile/Draw.hs 30;" f drawSelectionCursor src/Dodge/Render/List.hs 41;" f @@ -4144,7 +4146,7 @@ drawShell src/Dodge/Projectile/Draw.hs 20;" f drawShockwave src/Dodge/Shockwave/Draw.hs 7;" f drawSpark src/Dodge/Spark/Draw.hs 6;" f drawStaticBall src/Dodge/EnergyBall/Draw.hs 14;" f -drawSubInventory src/Dodge/Render/HUD.hs 101;" f +drawSubInventory src/Dodge/Render/HUD.hs 114;" f drawSweep src/Dodge/Render/ShapePicture.hs 63;" f drawSwitch src/Dodge/Button/Draw.hs 15;" f drawSwitchWire src/Dodge/LevelGen/Switch.hs 28;" f @@ -4193,10 +4195,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 239;" f +enterCombineInv src/Dodge/DisplayInventory.hs 243;" f eqConstr src/SameConstr.hs 17;" f eqPosText src/Dodge/Equipment/Text.hs 6;" f -equipAllocString src/Dodge/Render/HUD.hs 206;" f +equipAllocString src/Dodge/Render/HUD.hs 219;" f equipInfo src/Dodge/Item/Info.hs 103;" f equipItemSPic src/Dodge/Item/Draw/SPic.hs 65;" f equipPosition src/Dodge/Item/Draw.hs 29;" f @@ -4288,7 +4290,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 150;" f +floorItemPickupInfo src/Dodge/Render/HUD.hs 163;" f floorItemSPic src/Dodge/Render/ShapePicture.hs 165;" f floorWire src/Dodge/Wire.hs 13;" f foamSprayFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 398;" f @@ -4347,8 +4349,8 @@ geometryTests test/Spec.hs 17;" f geometryUnitTests test/Spec.hs 22;" f geqConstr src/SameConstr.hs 21;" f getAmmoLinks src/Dodge/Item/Grammar.hs 73;" f -getArguments src/Dodge/Update/Scroll.hs 151;" f -getArguments' src/Dodge/Update/Scroll.hs 139;" f +getArguments src/Dodge/Update/Scroll.hs 154;" f +getArguments' src/Dodge/Update/Scroll.hs 142;" f getAvailableListLines src/Dodge/SelectionList.hs 11;" f getBulletTrajectory src/Dodge/HeldUse.hs 347;" f getBulletType src/Dodge/HeldUse.hs 321;" f @@ -4367,6 +4369,7 @@ getLaserDamage src/Dodge/HeldUse.hs 193;" f getLaserPhaseV src/Dodge/HeldUse.hs 190;" f getLinksOfType src/Dodge/RoomLink.hs 39;" f getMouseInvSel src/Dodge/Render/HUD.hs 83;" f +getMouseInvSel' src/Dodge/Render/HUD.hs 88;" f getNodePos src/Dodge/Path.hs 31;" f getPretty src/AesonHelp.hs 7;" f getPrettyShort src/AesonHelp.hs 10;" f @@ -4414,7 +4417,7 @@ gridPoints'' src/Grid.hs 74;" f gridPointsOff src/Grid.hs 62;" f groupSplitItemAmounts src/Dodge/Combine.hs 49;" f gruntS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 484;" f -guardDisconnectedID src/Dodge/Update/Scroll.hs 71;" f +guardDisconnectedID src/Dodge/Update/Scroll.hs 74;" f gut1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 516;" f gut2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 376;" f gut3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 356;" f @@ -4553,9 +4556,9 @@ intervalList src/Geometry.hs 315;" f interweave src/Justify.hs 17;" f intsToPos src/Dodge/Room/Modify/Girder.hs 160;" f invAdj src/Dodge/Item/Grammar.hs 181;" f -invDimColor src/Dodge/DisplayInventory.hs 138;" f +invDimColor src/Dodge/DisplayInventory.hs 142;" f invDisplayParams src/Dodge/ListDisplayParams.hs 29;" f -invHead src/Dodge/Render/HUD.hs 297;" f +invHead src/Dodge/Render/HUD.hs 310;" f invLDT src/Dodge/Item/Grammar.hs 165;" f invRootMap src/Dodge/Item/Grammar.hs 174;" f invRootTrees src/Dodge/Item/Grammar.hs 206;" f @@ -4566,12 +4569,12 @@ invSideEff src/Dodge/Creature/State.hs 162;" f invSize src/Dodge/Inventory/CheckSlots.hs 41;" f invTrees src/Dodge/Item/Grammar.hs 194;" f invTrees' src/Dodge/Item/Grammar.hs 198;" f -inventoryExtra src/Dodge/Render/HUD.hs 215;" f -inventoryExtraH src/Dodge/Render/HUD.hs 226;" f +inventoryExtra src/Dodge/Render/HUD.hs 228;" f +inventoryExtraH src/Dodge/Render/HUD.hs 239;" f inventoryX src/Dodge/Creature.hs 115;" f -inverseSelBoundaryDown src/Dodge/SelectionSections.hs 206;" f -inverseSelBoundaryUp src/Dodge/SelectionSections.hs 193;" f -inverseSelNumPos src/Dodge/SelectionSections.hs 183;" f +inverseSelBoundaryDown src/Dodge/SelectionSections.hs 210;" f +inverseSelBoundaryUp src/Dodge/SelectionSections.hs 197;" f +inverseSelNumPos src/Dodge/SelectionSections.hs 188;" f inverseSelSecYint src/Dodge/SelectionSections.hs 158;" f inverseSelSecYintXPosCheck src/Dodge/SelectionSections.hs 169;" f inverseShockwaveAt src/Dodge/WorldEvent/Shockwave.hs 43;" f @@ -4723,15 +4726,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 110;" f +listCursorChooseBorderScale src/Dodge/Render/List.hs 111;" f listGuard src/Dodge/Creature/ReaderUpdate.hs 188;" f -listSelectionColorPicture src/Dodge/DisplayInventory.hs 231;" f +listSelectionColorPicture src/Dodge/DisplayInventory.hs 235;" f litCorridor90 src/Dodge/Room/RoadBlock.hs 26;" f llleft src/Dodge/Item/Grammar.hs 105;" f llright src/Dodge/Item/Grammar.hs 108;" f lmt src/MatrixHelper.hs 43;" f lnkBothAnd src/Dodge/Room/Procedural.hs 121;" f -lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 286;" f +lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 299;" f lnkPosDir src/Dodge/RoomLink.hs 97;" f loadDodgeConfig src/Dodge/Config/Load.hs 9;" f loadMusic src/Dodge/SoundLogic/LoadSound.hs 21;" f @@ -4846,7 +4849,7 @@ makeTlsTimeRadColPos src/Dodge/LightSource.hs 88;" f makeTypeCraft src/Dodge/Item/Craftable.hs 13;" f makeTypeCraftNum src/Dodge/Item/Craftable.hs 7;" f mapOverlay src/Dodge/Render/HUD/Carte.hs 24;" f -markWallSeen src/Dodge/Update.hs 667;" f +markWallSeen src/Dodge/Update.hs 669;" f maxDamageType src/Dodge/Damage.hs 37;" f maxShowX src/Dodge/Combine/Graph.hs 43;" f maxViewDistance src/Dodge/Viewpoints.hs 26;" f @@ -4857,7 +4860,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 265;" f +maybeExitCombine src/Dodge/Update/Input/InGame.hs 279;" f maybeOpenTerminal src/Dodge/Update.hs 116;" f maybeReadFile src/Dodge/LoadSeed.hs 10;" f maybeTakeOne src/RandomHelp.hs 111;" f @@ -4978,7 +4981,7 @@ mvBullet src/Dodge/Bullet.hs 33;" f mvButton src/Dodge/Placement/PlaceSpot.hs 181;" f mvCr src/Dodge/Placement/PlaceSpot.hs 191;" f mvFS src/Dodge/Placement/PlaceSpot.hs 194;" f -mvGust src/Dodge/Update.hs 696;" f +mvGust src/Dodge/Update.hs 698;" f mvLS src/Dodge/Placement/PlaceSpot.hs 222;" f mvP src/Dodge/Wall/Move.hs 54;" f mvPP src/Dodge/Placement/PlaceSpot.hs 188;" f @@ -5013,7 +5016,7 @@ normalizeAnglePi src/Dodge/Base.hs 132;" f normalizeColor src/Color.hs 76;" f normalizeV src/Geometry/Vector.hs 43;" f normalizeV3 src/Geometry/Vector3D.hs 84;" f -nullCommand src/Dodge/Update/Scroll.hs 142;" f +nullCommand src/Dodge/Update/Scroll.hs 145;" f numColor src/Color.hs 128;" f numDrawableVertices src/Shader/Parameters.hs 34;" f numGLushort src/Shader/Parameters.hs 29;" f @@ -5086,7 +5089,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 214;" f +pauseGame src/Dodge/Update/Input/InGame.hs 227;" f pauseMenu src/Dodge/Menu.hs 53;" f pauseMenuOptions src/Dodge/Menu.hs 58;" f pauseSound src/Dodge/SoundLogic.hs 41;" f @@ -5143,7 +5146,7 @@ placeSpotRoomRand src/Dodge/Placement/PlaceSpot.hs 90;" f placeSpotUsingLink src/Dodge/Placement/PlaceSpot.hs 71;" f placeString src/Dodge/Render/MenuScreen.hs 54;" f placeWallPoly src/Dodge/Placement/PlaceSpot.hs 167;" f -plainRegex src/Dodge/DisplayInventory.hs 141;" f +plainRegex src/Dodge/DisplayInventory.hs 145;" f plateCraft src/Dodge/Item/Craftable.hs 45;" f playIfFree src/Sound.hs 136;" f playPositionalSoundQueue src/Sound.hs 144;" f @@ -5245,7 +5248,7 @@ powlistUpToN src/Multiset.hs 23;" f powlistUpToN' src/Multiset.hs 12;" f powlistUpToN'' src/Multiset.hs 31;" f ppDraw src/Dodge/Render/ShapePicture.hs 162;" f -ppEvents src/Dodge/Update.hs 659;" f +ppEvents src/Dodge/Update.hs 661;" f ppLevelReset src/Dodge/PressPlate.hs 13;" f preCritStart src/Dodge/Room/Start.hs 82;" f preloadRender src/Preload/Render.hs 30;" f @@ -5394,7 +5397,7 @@ renderInfoListAt src/Dodge/Render/InfoBox.hs 15;" f renderInfoListsAt src/Dodge/Render/InfoBox.hs 24;" f renderLayer src/Render.hs 233;" f renderLightingNoShadows src/Render.hs 48;" f -renderListAt src/Dodge/Render/List.hs 165;" f +renderListAt src/Dodge/Render/List.hs 166;" f renderShadows src/Render.hs 117;" f replaceNullWith src/Dodge/Creature/ReaderUpdate.hs 160;" f replacePutID src/Dodge/Placement/Instance/Wall.hs 102;" f @@ -5525,10 +5528,10 @@ 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 225;" f -scrollCommandStrings src/Dodge/Update/Scroll.hs 134;" f -scrollCommands src/Dodge/Update/Scroll.hs 131;" f +scrollCommandStrings src/Dodge/Update/Scroll.hs 137;" f +scrollCommands src/Dodge/Update/Scroll.hs 134;" f scrollDebugInfoInt src/Dodge/Debug.hs 46;" f -scrollRBOption src/Dodge/Update/Scroll.hs 108;" f +scrollRBOption src/Dodge/Update/Scroll.hs 111;" f scrollSelectionSections src/Dodge/SelectionSections.hs 27;" f scrollTimeBack src/Dodge/Update.hs 200;" f scrollTimeForward src/Dodge/Update.hs 220;" f @@ -5546,16 +5549,16 @@ 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 357;" f -selNumPosCardinal src/Dodge/Render/HUD.hs 379;" f +selNumPos src/Dodge/Render/HUD.hs 370;" f +selNumPosCardinal src/Dodge/Render/HUD.hs 392;" f selSecDrawCursor src/Dodge/Render/List.hs 104;" f selSecDrawCursorAt src/Dodge/Render/List.hs 88;" f -selSecSelCol src/Dodge/Render/HUD.hs 405;" f +selSecSelCol src/Dodge/Render/HUD.hs 418;" f selSecSelSize src/Dodge/SelectionSections.hs 135;" f selSecYint src/Dodge/SelectionSections.hs 144;" f selectCreatureDebugItem src/Dodge/Debug.hs 38;" f selectUse src/Dodge/SelectUse.hs 11;" f -selectedCloseObject src/Dodge/Inventory.hs 234;" f +selectedCloseObject src/Dodge/Inventory.hs 238;" f sensAboveDoor src/Dodge/Room/SensorDoor.hs 63;" f sensInsideDoor src/Dodge/Room/SensorDoor.hs 69;" f senseDamage src/Dodge/Machine/Update.hs 134;" f @@ -5573,7 +5576,6 @@ setClusterID src/Dodge/Combine/Graph.hs 103;" f setDepth src/Picture/Base.hs 128;" f setDirPS src/Dodge/PlacementSpot.hs 49;" f setFallback src/Dodge/PlacementSpot.hs 127;" f -setFirstPosSelectionSections src/Dodge/SelectionSections.hs 33;" f setFromToDams src/Dodge/Bullet.hs 171;" f setHotkey src/Dodge/Hotkey.hs 38;" f setInLinks src/Dodge/RoomLink.hs 51;" f @@ -5587,7 +5589,7 @@ setLinkTypePD src/Dodge/RoomLink.hs 67;" f setMinInvSize src/Dodge/Creature/Action.hs 150;" f setMusicVolume src/Sound.hs 161;" f setMvPos src/Dodge/Creature/ReaderUpdate.hs 51;" f -setOldPos src/Dodge/Update.hs 448;" f +setOldPos src/Dodge/Update.hs 450;" f setOutLinks src/Dodge/RoomLink.hs 48;" f setOutLinksByType src/Dodge/RoomLink.hs 57;" f setOutLinksPD src/Dodge/RoomLink.hs 77;" f @@ -5643,7 +5645,7 @@ shiftDec src/Dodge/Placement/PlaceSpot.hs 151;" f shiftDraw src/Dodge/Render/ShapePicture.hs 107;" f shiftDraw' src/Dodge/Render/ShapePicture.hs 113;" f shiftInBy src/Dodge/PlacementSpot.hs 236;" f -shiftInvItems src/Dodge/Update.hs 354;" f +shiftInvItems src/Dodge/Update.hs 356;" 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 @@ -5683,9 +5685,9 @@ showEquipItem src/Dodge/Item/Display.hs 68;" f showEquipmentNumber src/Dodge/Item/Display.hs 110;" f showInt src/Dodge/Item/Info.hs 31;" f showIntsString src/Dodge/Tree/Compose.hs 129;" f -showManObj src/Dodge/TestString.hs 44;" f +showManObj src/Dodge/TestString.hs 43;" f showTerminalError src/Dodge/Debug/Terminal.hs 76;" f -showTimeFlow src/Dodge/TestString.hs 91;" f +showTimeFlow src/Dodge/TestString.hs 90;" f shrinkPolyOnEdges src/Geometry/Polygon.hs 136;" f shrinkVert src/Geometry/Polygon.hs 140;" f shuffle src/RandomHelp.hs 49;" f @@ -5693,7 +5695,7 @@ shuffleLinks src/Dodge/Room/Link.hs 30;" f shuffleRoomPos src/Dodge/Layout.hs 78;" f shuffleTail src/RandomHelp.hs 59;" f sigmoid src/Dodge/Base.hs 129;" f -simpleCrSprings src/Dodge/Update.hs 744;" f +simpleCrSprings src/Dodge/Update.hs 746;" f simpleDamFL src/Dodge/Flame.hs 41;" f simpleTermMessage src/Dodge/Terminal.hs 249;" f sineRaisePitchOneSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 486;" f @@ -5742,7 +5744,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 217;" f +spaceAction src/Dodge/Update/Input/InGame.hs 230;" 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 @@ -5786,9 +5788,9 @@ ssLookupLT' src/Dodge/SelectionSections.hs 96;" f ssLookupMax src/Dodge/SelectionSections.hs 75;" f ssLookupMin src/Dodge/SelectionSections.hs 110;" f ssLookupUp src/Dodge/SelectionSections.hs 80;" f -ssScrollSelectable src/Dodge/SelectionSections.hs 49;" f -ssScrollUsing src/Dodge/SelectionSections.hs 38;" f -ssSetCursor src/Dodge/SelectionSections.hs 63;" f +ssScrollMinOnFail src/Dodge/SelectionSections.hs 51;" f +ssScrollUsing src/Dodge/SelectionSections.hs 39;" f +ssSetCursor src/Dodge/SelectionSections.hs 66;" f ssfold src/FoldableHelp.hs 105;" f stackPicturesAt src/Dodge/Render/List.hs 82;" f stackPicturesAtOff src/Dodge/Render/List.hs 85;" f @@ -5871,7 +5873,7 @@ terminalColor src/Dodge/Placement/Instance/Terminal.hs 66;" f terminalReturnEffect src/Dodge/Terminal/ReturnEffect.hs 10;" f terminalSPic src/Dodge/Machine/Draw.hs 26;" f terminalShape src/Dodge/Machine/Draw.hs 29;" f -terminalWheelEvent src/Dodge/Update/Scroll.hs 76;" f +terminalWheelEvent src/Dodge/Update/Scroll.hs 79;" f teslaGun src/Dodge/Item/Held/BatteryGuns.hs 21;" f teslaGunPic src/Dodge/Item/Draw/SPic.hs 348;" f teslaParams src/Dodge/Tesla/ItemParams.hs 6;" f @@ -5915,7 +5917,7 @@ titleOptionsMenu src/Dodge/Menu.hs 99;" f titleOptionsNoWrite src/Dodge/Menu.hs 102;" f tlsTimeRadColPos src/Dodge/LightSource.hs 69;" f tlsTimeRadFunPos src/Dodge/LightSource.hs 26;" f -tmUpdate src/Dodge/Update.hs 428;" f +tmUpdate src/Dodge/Update.hs 430;" f toBothLnk src/Dodge/RoomLink.hs 121;" f toClosestMultiple src/HelpNum.hs 3;" f toColor8 src/Color.hs 148;" f @@ -5925,7 +5927,7 @@ toLabel src/Dodge/Cleat.hs 16;" f toLasgunUpdate src/Dodge/Item/Grammar.hs 113;" f toMultiset src/Multiset.hs 64;" f toOnward src/Dodge/Tree/Compose.hs 101;" f -toTopLeft src/Dodge/Render/List.hs 190;" f +toTopLeft src/Dodge/Render/List.hs 191;" f toV2 src/Geometry/Data.hs 36;" f toV3 src/Geometry/Data.hs 38;" f toV4 src/Geometry/Data.hs 40;" f @@ -5933,8 +5935,8 @@ toggleCombineInv src/Dodge/DisplayInventory.hs 31;" f toggleCommand src/Dodge/Terminal.hs 194;" f toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 75;" f toggleJust src/MaybeHelp.hs 41;" f -toggleMap src/Dodge/Update/Input/InGame.hs 238;" f -toggleTweakInv src/Dodge/Update/Input/InGame.hs 248;" f +toggleMap src/Dodge/Update/Input/InGame.hs 251;" f +toggleTweakInv src/Dodge/Update/Input/InGame.hs 262;" f togglesToEffects src/Dodge/Terminal.hs 244;" f tone440S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 460;" f tone440sawtoothS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 430;" f @@ -6005,7 +6007,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 257;" f +tryCombine src/Dodge/Update/Input/InGame.hs 271;" f tryGetChannel src/Sound.hs 96;" f tryGetRootAttachedFromInvID src/Dodge/Inventory/Location.hs 20;" f tryGetRootItemInvID src/Dodge/Inventory/Location.hs 29;" f @@ -6051,99 +6053,99 @@ 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 160;" f +updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 167;" f updateBarrel src/Dodge/Barreloid.hs 45;" f updateBarreloid src/Dodge/Barreloid.hs 13;" f updateBounds src/Dodge/Update/Camera.hs 245;" f updateBulVel src/Dodge/Bullet.hs 50;" f updateBullet src/Dodge/Bullet.hs 28;" f -updateBullets src/Dodge/Update.hs 525;" f +updateBullets src/Dodge/Update.hs 527;" f updateCamera src/Dodge/Update/Camera.hs 31;" f updateCloseObjects src/Dodge/Inventory.hs 114;" f -updateCloud src/Dodge/Update.hs 710;" f -updateClouds src/Dodge/Update.hs 554;" f +updateCloud src/Dodge/Update.hs 712;" f +updateClouds src/Dodge/Update.hs 556;" f updateCombinePositioning src/Dodge/DisplayInventory.hs 37;" f updateCombineSections src/Dodge/DisplayInventory.hs 42;" f updateCreature src/Dodge/Creature/Update.hs 10;" f -updateCreatureGroups src/Dodge/Update.hs 494;" f -updateCreatureSoundPositions src/Dodge/Update.hs 470;" f +updateCreatureGroups src/Dodge/Update.hs 496;" f +updateCreatureSoundPositions src/Dodge/Update.hs 472;" f updateDebugMessageOffset src/Dodge/Update.hs 89;" f -updateDelayedEvents src/Dodge/Update.hs 773;" f +updateDelayedEvents src/Dodge/Update.hs 775;" f updateDisplaySections src/Dodge/DisplayInventory.hs 92;" f updateDistortion src/Dodge/Distortion.hs 5;" f -updateDistortions src/Dodge/Update.hs 515;" f +updateDistortions src/Dodge/Update.hs 517;" f updateEnergyBall src/Dodge/EnergyBall.hs 46;" f -updateEnergyBalls src/Dodge/Update.hs 542;" f -updateEnterRegex src/Dodge/Update/Input/InGame.hs 189;" f +updateEnergyBalls src/Dodge/Update.hs 544;" f +updateEnterRegex src/Dodge/Update/Input/InGame.hs 203;" f updateExpBarrel src/Dodge/Barreloid.hs 19;" f updateFBOTO src/Framebuffer/Update.hs 97;" f updateFBOTO3 src/Framebuffer/Update.hs 131;" f updateFlame src/Dodge/Flame.hs 71;" f -updateFlames src/Dodge/Update.hs 539;" f +updateFlames src/Dodge/Update.hs 541;" f updateFlare src/Dodge/Flare.hs 7;" f updateFloatingCamera src/Dodge/Update/Camera.hs 36;" f -updateGusts src/Dodge/Update.hs 693;" f +updateGusts src/Dodge/Update.hs 695;" f updateHeldRootItem src/Dodge/Creature/State.hs 167;" f updateHumanoid src/Dodge/Humanoid.hs 12;" f -updateIMl src/Dodge/Update.hs 484;" f -updateIMl' src/Dodge/Update.hs 489;" f +updateIMl src/Dodge/Update.hs 486;" f +updateIMl' src/Dodge/Update.hs 491;" f updateInGameCamera src/Dodge/Update/Camera.hs 70;" f -updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 109;" f -updateInstantBullets src/Dodge/Update.hs 631;" f +updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 115;" f +updateInstantBullets src/Dodge/Update.hs 633;" f updateInv src/Dodge/Creature/State.hs 152;" f updateInventoryPositioning src/Dodge/DisplayInventory.hs 87;" f updateItemTargeting src/Dodge/Creature/State.hs 268;" f updateItemWithOrientation src/Dodge/Creature/State.hs 194;" f -updateKeyInGame src/Dodge/Update/Input/InGame.hs 103;" f -updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 92;" f +updateKeyInGame src/Dodge/Update/Input/InGame.hs 109;" f +updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 98;" f updateLampoid src/Dodge/Lampoid.hs 12;" f updateLaser src/Dodge/Laser/Update.hs 13;" f -updateLasers src/Dodge/Update.hs 413;" f -updateLightSources src/Dodge/Update.hs 518;" f +updateLasers src/Dodge/Update.hs 415;" f +updateLightSources src/Dodge/Update.hs 520;" f updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f -updateLongPressInGame src/Dodge/Update/Input/InGame.hs 129;" f -updateMIM src/Dodge/Update.hs 644;" f +updateLongPressInGame src/Dodge/Update/Input/InGame.hs 135;" f +updateMIM src/Dodge/Update.hs 646;" f updateMachine src/Dodge/Machine/Update.hs 16;" f updateMouseInventorySelection src/Dodge/Update.hs 297;" f updateMouseInventorySelection' src/Dodge/Update.hs 303;" f -updateMouseOverInventory src/Dodge/Update.hs 379;" f +updateMouseOverInventory src/Dodge/Update.hs 381;" f updateMovement src/Dodge/Creature/State.hs 331;" f -updateObjCatMaybes src/Dodge/Update.hs 506;" f -updateObjMapMaybe src/Dodge/Update.hs 499;" f -updatePastWorlds src/Dodge/Update.hs 401;" f +updateObjCatMaybes src/Dodge/Update.hs 508;" f +updateObjMapMaybe src/Dodge/Update.hs 501;" f +updatePastWorlds src/Dodge/Update.hs 403;" f updatePosEvent src/Dodge/PosEvent.hs 11;" f -updatePosEvents src/Dodge/Update.hs 551;" f +updatePosEvents src/Dodge/Update.hs 553;" f updatePreload src/Preload/Update.hs 20;" f -updatePressedButtonsCarte src/Dodge/Update/Input/InGame.hs 67;" f -updatePressedButtonsCarte' src/Dodge/Update/Input/InGame.hs 70;" f +updatePressedButtonsCarte src/Dodge/Update/Input/InGame.hs 73;" f +updatePressedButtonsCarte' src/Dodge/Update/Input/InGame.hs 76;" 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 updateRadarBlip src/Dodge/RadarBlip.hs 8;" f -updateRadarBlips src/Dodge/Update.hs 521;" f +updateRadarBlips src/Dodge/Update.hs 523;" f updateRadarSweep src/Dodge/RadarSweep.hs 25;" f -updateRadarSweeps src/Dodge/Update.hs 545;" f +updateRadarSweeps src/Dodge/Update.hs 547;" f updateRandNode src/TreeHelp.hs 108;" f updateRenderSplit appDodge/Main.hs 106;" f updateRootItemID src/Dodge/Inventory/Location.hs 37;" 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 171;" f -updateSectionsPositioning src/Dodge/DisplayInventory.hs 150;" f -updateSeenWalls src/Dodge/Update.hs 662;" f +updateSection src/Dodge/DisplayInventory.hs 175;" f +updateSectionsPositioning src/Dodge/DisplayInventory.hs 154;" f +updateSeenWalls src/Dodge/Update.hs 664;" f updateShockwave src/Dodge/Shockwave/Update.hs 12;" f -updateShockwaves src/Dodge/Update.hs 536;" f +updateShockwaves src/Dodge/Update.hs 538;" f updateSingleNodes src/TreeHelp.hs 97;" f updateSound src/Sound.hs 71;" f updateSounds src/Sound.hs 66;" f updateSpark src/Dodge/Spark.hs 19;" f -updateSparks src/Dodge/Update.hs 548;" f +updateSparks src/Dodge/Update.hs 550;" f updateTempLightSource src/Dodge/LightSource/Update.hs 7;" f updateTeslaArc src/Dodge/Tesla/Arc.hs 29;" f -updateTeslaArcs src/Dodge/Update.hs 530;" f +updateTeslaArcs src/Dodge/Update.hs 532;" f updateTractorBeam src/Dodge/TractorBeam/Update.hs 9;" f -updateTractorBeams src/Dodge/Update.hs 533;" f +updateTractorBeams src/Dodge/Update.hs 535;" f updateTurret src/Dodge/Machine/Update.hs 31;" f updateUniverse src/Dodge/Update.hs 69;" f updateUniverseFirst src/Dodge/Update.hs 80;" f @@ -6154,7 +6156,7 @@ updateUseInputOnScreen src/Dodge/Update/Input/ScreenLayer.hs 20;" f updateWalkCycle src/Dodge/Creature/State/WalkCycle.hs 12;" f updateWallDamages src/Dodge/Update/WallDamage.hs 10;" f updateWheelEvent src/Dodge/Update/Scroll.hs 20;" f -updateWheelEvents src/Dodge/Update.hs 388;" f +updateWheelEvents src/Dodge/Update.hs 390;" f updateWorldEventFlag src/Dodge/Update.hs 110;" f updateWorldEventFlags src/Dodge/Update.hs 101;" f upperBody src/Dodge/Creature/Picture.hs 133;" f @@ -6307,7 +6309,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 184;" f -yourAugmentedItem src/Dodge/Render/HUD.hs 157;" f +yourAugmentedItem src/Dodge/Render/HUD.hs 170;" 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 @@ -6324,9 +6326,9 @@ zipCount src/Dodge/Tree/Shift.hs 129;" f zipCountDown src/Dodge/Room/Procedural.hs 118;" f zipWithDefaults src/Dodge/Item/Display.hs 21;" f zoneCloud src/Dodge/Zoning/Cloud.hs 27;" f -zoneClouds src/Dodge/Update.hs 421;" f +zoneClouds src/Dodge/Update.hs 423;" f zoneCreature src/Dodge/Zoning/Creature.hs 52;" f -zoneCreatures src/Dodge/Update.hs 465;" f +zoneCreatures src/Dodge/Update.hs 467;" f zoneExtract src/Dodge/Zoning/Base.hs 50;" f zoneMonoid src/Dodge/Zoning/Base.hs 80;" f zoneOfCirc src/Dodge/Zoning/Base.hs 22;" f