diff --git a/ghcidOutput b/ghcidOutput index e38083a13..20050b702 100644 --- a/ghcidOutput +++ b/ghcidOutput @@ -1 +1 @@ -All good (594 modules, at 16:25:03) +All good (594 modules, at 17:16:08) diff --git a/src/Dodge/Data/HUD.hs b/src/Dodge/Data/HUD.hs index 038d3b855..d351c7f0a 100644 --- a/src/Dodge/Data/HUD.hs +++ b/src/Dodge/Data/HUD.hs @@ -5,6 +5,7 @@ module Dodge.Data.HUD where +import qualified Data.IntSet as IS import Dodge.Data.Item.Location import NewInt import Control.Lens @@ -18,10 +19,10 @@ data HUDElement = DisplayInventory { _subInventory :: SubInventory , _diSections :: IMSS () - , _diSelection :: Maybe (Int, Int) + , _diSelection :: Maybe (Int, Int, IntSet) , _diInvFilter :: Maybe String , _diCloseFilter :: Maybe String - , _diSelectionExtra :: IntSet -- this should probably be placed within _diSelection +-- , _diSelectionExtra :: IntSet -- this should probably be placed within _diSelection -- would lead to inconsistency with _ciSelection } | DisplayCarte @@ -39,7 +40,7 @@ data SubInventory ExamineInventory | CombineInventory { _ciSections :: IntMap (SelectionSection CombinableItem) - , _ciSelection :: Maybe (Int, Int) + , _ciSelection :: Maybe (Int, Int, IS.IntSet) , _ciFilter :: Maybe String } | LockedInventory diff --git a/src/Dodge/Default/World.hs b/src/Dodge/Default/World.hs index 86745b143..dd3e3b4d8 100644 --- a/src/Dodge/Default/World.hs +++ b/src/Dodge/Default/World.hs @@ -165,8 +165,8 @@ defaultDisplayInventory = DisplayInventory { _subInventory = NoSubInventory , _diSections = mempty - , _diSelection = Just (1, 0) - , _diSelectionExtra = mempty + , _diSelection = Just (1, 0, mempty) +-- , _diSelectionExtra = mempty , _diInvFilter = mempty , _diCloseFilter = mempty } diff --git a/src/Dodge/DisplayInventory.hs b/src/Dodge/DisplayInventory.hs index cd4870230..4e07bdb73 100644 --- a/src/Dodge/DisplayInventory.hs +++ b/src/Dodge/DisplayInventory.hs @@ -52,7 +52,7 @@ updateCombineSections w cfig = updateSectionsPositioning (const 5) (const 0) - (w ^? hud . hudElement . subInventory . ciSelection . _Just) + (fmap (\(x,y,_) -> (x,y)) $ w ^? hud . hudElement . subInventory . ciSelection . _Just) (getAvailableListLines secondColumnParams cfig) [(0, sclose), (-1, sfclose)] where @@ -93,7 +93,7 @@ updateInventoryPositioning u = -- this is possibly not completely correct checkInventorySelectionExists :: Universe -> Universe checkInventorySelectionExists u = fromMaybe u $ do - (i, j) <- (u ^? uvWorld . hud . hudElement . diSelection . _Just) <|> Just (0, -1) + (i, j,_) <- (u ^? uvWorld . hud . hudElement . diSelection . _Just) <|> Just (0, -1, mempty) Just $ case u ^? uvWorld . hud . hudElement . diSections . ix i . ssItems . ix j of Nothing -> u & uvWorld %~ scrollAugNextInSection _ -> u @@ -101,12 +101,12 @@ checkInventorySelectionExists u = fromMaybe u $ do checkCombineSelectionExists :: Universe -> Universe checkCombineSelectionExists u = fromMaybe u $ do sss <- u ^? uvWorld . hud . hudElement . subInventory . ciSections - (i, j) <- + (i, j, _) <- u ^? uvWorld . hud . hudElement . subInventory . ciSelection . _Just - <|> Just (0, 0) + <|> Just (0, 0, mempty) Just $ case u ^? uvWorld . hud . hudElement . subInventory . ciSections . ix i . ssItems . ix j of Nothing -> - u & uvWorld . hud . hudElement . subInventory . ciSelection ?~ (0, -1) + u & uvWorld . hud . hudElement . subInventory . ciSelection ?~ (0, -1,mempty) & uvWorld . hud . hudElement . subInventory . ciSelection %~ scrollSelectionSections (-1) sss _ -> u @@ -137,7 +137,7 @@ updateDisplaySections w cfig = [statushead,statusdisplay,invhead,invx,youx, nearbyhead, closex ,interfaceshead,interfaces] where - mselpos = w ^? hud . hudElement . diSelection . _Just + mselpos = fmap (\(x,y,_) -> (x,y)) $ w ^? hud . hudElement . diSelection . _Just invfiltcurs = mselpos ^? _Just . _1 == Just (-1) (sfinv, sinv) = filterSectionsPair invfiltcurs plainRegex invitems "INVENTORY" $ @@ -356,7 +356,7 @@ enterCombineInv cfig w = | otherwise = cm' selpos | null cm' = Nothing - | otherwise = Just (0, 0) + | otherwise = Just (0, 0,mempty) filtsection = SelectionSection { _ssItems = mempty diff --git a/src/Dodge/InputFocus.hs b/src/Dodge/InputFocus.hs index b650c420c..ec3fdd3c1 100644 --- a/src/Dodge/InputFocus.hs +++ b/src/Dodge/InputFocus.hs @@ -59,12 +59,12 @@ inputFocus :: World -> Maybe ((String -> f String) -> World -> f World) inputFocus w = case w ^? hud . hudElement . subInventory of - Just NoSubInventory{} -> case he ^? diSelection . _Just of - Just (-1, _) -> Just $ hud . hudElement . diInvFilter . _Just - Just (2, _) -> Just $ hud . hudElement . diCloseFilter . _Just + Just NoSubInventory{} -> case he ^? diSelection . _Just . _1 of + Just (-1) -> Just $ hud . hudElement . diInvFilter . _Just + Just 2 -> Just $ hud . hudElement . diCloseFilter . _Just _ -> Nothing - Just CombineInventory{} -> case he ^? subInventory . ciSelection . _Just of - Just (-1, _) -> Just $ hud . hudElement . subInventory . ciFilter . _Just + Just CombineInventory{} -> case he ^? subInventory . ciSelection . _Just . _1 of + Just (-1) -> Just $ hud . hudElement . subInventory . ciFilter . _Just _ -> Nothing Just DisplayTerminal{_termID = tmid} -> do connectionstatus <- w ^? cWorld . lWorld . terminals . ix tmid . tmStatus diff --git a/src/Dodge/Inventory.hs b/src/Dodge/Inventory.hs index 118225756..f039f16c3 100644 --- a/src/Dodge/Inventory.hs +++ b/src/Dodge/Inventory.hs @@ -16,6 +16,7 @@ module Dodge.Inventory ( swapItemWith, ) where +import qualified Data.IntSet as IS import Dodge.Inventory.Swap import Data.Function import Data.Maybe @@ -78,7 +79,7 @@ rmInvItem cid invid w = where pointcid = cWorld . lWorld . creatures . ix cid updateselectionextra - | cid == 0 = hud . hudElement . diSelectionExtra .~ mempty + | cid == 0 = hud . hudElement . diSelection . _Just . _3 %~ const mempty | otherwise = id updateselection | cid == 0 && cr ^? crManipulation . manObject . imSelectedItem == Just invid = @@ -183,15 +184,15 @@ swapItemWith f (j, i) w = case j of changeSwapWith :: (Int -> IM.IntMap (SelectionItem ()) -> Maybe Int) -> World -> World changeSwapWith f w = case w ^? hud . hudElement . diSelection . _Just of - Just (0, i) -> w & swapInvItems f i - Just (3, i) -> w & changeSwapOther ispCloseItem 3 f i - Just (5, i) -> w & changeSwapOther ispCloseButton 5 f i + Just (0, i, _) -> w & swapInvItems f i + Just (3, i, _) -> w & changeSwapOther ispCloseItem 3 f i + Just (5, i, _) -> w & changeSwapOther ispCloseButton 5 f i _ -> w -augInvDirectSelect :: (Int, Int) -> World -> World -augInvDirectSelect (i, j) w = +augInvDirectSelect :: (Int, Int, IS.IntSet) -> World -> World +augInvDirectSelect sel w = w - & hud . hudElement . diSelection ?~ (i, j) + & hud . hudElement . diSelection ?~ sel & worldEventFlags . at InventoryChange ?~ () & setInvPosFromSS & cWorld . lWorld %~ crUpdateItemLocations 0 diff --git a/src/Dodge/Inventory/Add.hs b/src/Dodge/Inventory/Add.hs index efd259577..aade36da7 100644 --- a/src/Dodge/Inventory/Add.hs +++ b/src/Dodge/Inventory/Add.hs @@ -59,7 +59,8 @@ tryPutItemInInv cid flit w = case maybeInvSlot of & cWorld . lWorld %~ crUpdateItemLocations cid ) where - updateselectionextra | cid == 0 = hud . hudElement . diSelectionExtra .~ mempty + updateselectionextra | cid == 0 + = hud . hudElement . diSelection . _Just . _3 %~ const mempty | otherwise = id it = _flIt flit maybeInvSlot = checkInvSlotsYou it w diff --git a/src/Dodge/Inventory/Location.hs b/src/Dodge/Inventory/Location.hs index d7b7a2da5..c4f1d95e5 100644 --- a/src/Dodge/Inventory/Location.hs +++ b/src/Dodge/Inventory/Location.hs @@ -83,7 +83,7 @@ setInvPosFromSS w = & cWorld . lWorld . creatures . ix 0 . crManipulation . manObject .~ thesel where thesel = fromMaybe SelNothing $ do - (i, j) <- w ^? hud . hudElement . diSelection . _Just + (i, j, _) <- w ^? hud . hudElement . diSelection . _Just case i of (-1) -> Just SortInventory 0 -> do diff --git a/src/Dodge/Inventory/Swap.hs b/src/Dodge/Inventory/Swap.hs index e722ac5b7..c06d1d25e 100644 --- a/src/Dodge/Inventory/Swap.hs +++ b/src/Dodge/Inventory/Swap.hs @@ -27,8 +27,8 @@ swapInvItems f i w = fromMaybe w $ do ss <- w ^? hud . hudElement . diSections . ix 0 . ssItems k <- f i ss 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 + 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 @@ -71,11 +71,11 @@ swapInvItems f i w = fromMaybe w $ do swapAnyExtraSelection :: Int -> Int -> World -> World swapAnyExtraSelection i k w = fromMaybe w $ do - is <- w ^? hud . hudElement . diSelectionExtra + is <- w ^? hud . hudElement . diSelection . _Just . _3 let f = if i `IS.member` is then IS.insert k else id g = if k `IS.member` is then IS.insert i else id return $ - w & hud . hudElement . diSelectionExtra + w & hud . hudElement . diSelection . _Just . _3 %~ (f . g . IS.delete i . IS.delete k) checkConnection :: SoundOrigin -> SoundID -> Int -> Int -> World -> World diff --git a/src/Dodge/Render/HUD.hs b/src/Dodge/Render/HUD.hs index 384ec5c0d..edbde5579 100644 --- a/src/Dodge/Render/HUD.hs +++ b/src/Dodge/Render/HUD.hs @@ -54,11 +54,12 @@ drawHUD cfig w = case w ^. hud . hudElement of drawInventory :: IM.IntMap (SelectionSection ()) -> World -> Configuration -> Picture drawInventory sss w cfig = drawSelectionSections sss ldp cfig - <> drawSSCursor sss (w ^? hud . hudElement . diSelection . _Just) ldp curs cfig - <> drawRootCursor w sss (w ^? hud . hudElement . diSelection . _Just) ldp cfig + <> drawSSCursor sss (f $ w ^? hud . hudElement . diSelection . _Just) ldp curs cfig + <> drawRootCursor w sss (f $ w ^? hud . hudElement . diSelection . _Just) ldp cfig <> iextra <> drawMouseOver cfig w where + f = fmap (\(x,y,_) -> (x,y)) ldp = invDisplayParams w curs = invCursorParams w iextra = fromMaybe mempty $ do @@ -129,9 +130,9 @@ drawMouseOver cfig w = drawDragSelected :: Configuration -> World -> Maybe Picture drawDragSelected cfig w = do - ys <- w ^? hud . hudElement . diSelectionExtra + ys <- w ^? hud . hudElement . diSelection . _Just . _3 guard $ not (IS.null ys) - (i, _) <- w ^? hud . hudElement . diSelection . _Just + (i, _, _) <- w ^? hud . hudElement . diSelection . _Just sss <- w ^? hud . hudElement . diSections let idp = invDisplayParams w let f x = (selSecDrawCursorAt 15 idp BackdropCursor sss (i, x) <>) @@ -173,7 +174,8 @@ drawCombineInventory cfig sss w = <> combineInventoryExtra sss msel cfig w where curs = BoundaryCursor [North, South, West] - msel = w ^? hud . hudElement . subInventory . ciSelection . _Just + msel = fmap (\(x,y,_) -> (x,y)) + $ w ^? hud . hudElement . subInventory . ciSelection . _Just drawExamineInventory :: Configuration -> World -> Picture drawExamineInventory cfig w = @@ -238,7 +240,7 @@ drawRBOptions cfig w = fromMaybe mempty $ do i <- w ^? rbOptions . opSel let ae = getEquipmentAllocation w sss <- w ^? hud . hudElement . diSections - (i', j) <- w ^? hud . hudElement . diSelection . _Just + (i', j,_) <- w ^? hud . hudElement . diSelection . _Just curpos <- selSecYint i' j sss let ytext = drawListElement 0 1 0 curpos . text midstr = equipAllocString ae diff --git a/src/Dodge/SelectionSections.hs b/src/Dodge/SelectionSections.hs index a4e312933..c83cb7132 100644 --- a/src/Dodge/SelectionSections.hs +++ b/src/Dodge/SelectionSections.hs @@ -10,6 +10,7 @@ module Dodge.SelectionSections ( inverseSelNumPos, ) where +import qualified Data.IntSet as IS import Control.Applicative import qualified Control.Foldl as L import Control.Lens @@ -25,8 +26,8 @@ import Geometry.Data scrollSelectionSections :: Int -> IM.IntMap (SelectionSection a) -> - Maybe (Int, Int) -> - Maybe (Int, Int) + Maybe (Int, Int,IS.IntSet) -> + Maybe (Int, Int,IS.IntSet) scrollSelectionSections yi sss msel | yi == 0 = msel | yi > 0 = foldl' (&) msel $ replicate yi (ssScrollUsing ssLookupUp sss) @@ -34,8 +35,8 @@ scrollSelectionSections yi sss msel nextInSectionSS :: IM.IntMap (SelectionSection a) -> - Maybe (Int, Int) -> - Maybe (Int, Int) + Maybe (Int, Int, IS.IntSet) -> + Maybe (Int, Int, IS.IntSet) nextInSectionSS = ssScrollUsing ssLookupNextMax --setFirstPosSelectionSections :: SelectionSections a -> SelectionSections a @@ -46,8 +47,8 @@ nextInSectionSS = ssScrollUsing ssLookupNextMax ssScrollUsing :: (Int -> Int -> IM.IntMap (SelectionSection a) -> Maybe (Int, Int, SelectionItem a)) -> IM.IntMap (SelectionSection a) -> - Maybe (Int, Int) -> - Maybe (Int, Int) + Maybe (Int, Int, IS.IntSet) -> + Maybe (Int, Int, IS.IntSet) ssScrollUsing g = ssScrollMinOnFail g @@ -56,22 +57,30 @@ ssScrollUsing g = ssScrollMinOnFail :: (Int -> Int -> IM.IntMap (SelectionSection a) -> Maybe (Int, Int, SelectionItem a)) -> IM.IntMap (SelectionSection a) -> - Maybe (Int, Int) -> - Maybe (Int, Int) -ssScrollMinOnFail f sss msel = fmap (\(i, j, _) -> (i, j)) $ l <|> ssLookupMin sss + Maybe (Int, Int, IS.IntSet) -> + Maybe (Int, Int, IS.IntSet) +ssScrollMinOnFail f sss msel = fmap (\(i, j, _) -> (i, j, q i j)) $ l <|> ssLookupMin sss where + q i j = fromMaybe mempty $ do + (k,_,xs) <- msel ^? _Just + guard $ j `IS.member` xs && i == k + return xs l = do - (i, j) <- msel + (i, j, _) <- msel f i j sss ssSetCursor :: (IM.IntMap (SelectionSection a) -> Maybe (Int, Int, SelectionItem a)) -> IM.IntMap (SelectionSection a) -> - Maybe (Int, Int) -> - Maybe (Int, Int) + Maybe (Int, Int, IS.IntSet) -> + Maybe (Int, Int, IS.IntSet) ssSetCursor f sss msel = fromMaybe msel $ do (i, j, _) <- f sss - return $ Just (i, j) + let newxs = fromMaybe mempty $ do + (k,_,xs) <- msel + guard $ k == i && j `IS.member` xs + return xs + return $ Just (i, j,newxs) ssLookupMax :: IM.IntMap (SelectionSection a) -> Maybe (Int, Int, SelectionItem a) ssLookupMax sss = do diff --git a/src/Dodge/TestString.hs b/src/Dodge/TestString.hs index 2345b1971..c7a5de202 100644 --- a/src/Dodge/TestString.hs +++ b/src/Dodge/TestString.hs @@ -24,7 +24,6 @@ testStringInit :: Universe -> [String] testStringInit u = [ show $ u ^? uvWorld . input . mouseContext . mcoSelEnd , show $ u ^? uvWorld . hud . hudElement . diSelection - , show $ u ^? uvWorld . hud . hudElement . diSelectionExtra ] -- , show . fmap (fmap _siPictures) $ u ^? uvWorld . hud . hudElement . diSections . ix (-1) . ssItems -- <> [[toEnum (i+j * 32) | i <- [0..31]] | j <- [0..7]] diff --git a/src/Dodge/Update.hs b/src/Dodge/Update.hs index 5196c9d82..f7958f83b 100644 --- a/src/Dodge/Update.hs +++ b/src/Dodge/Update.hs @@ -360,7 +360,8 @@ updateMouseContext cfig u = case u ^. uvWorld . input . mouseContext of return $ OverInvSelect selpos overcomb = do sss <- w ^? hud . hudElement . subInventory . ciSections - msel <- w ^? hud . hudElement . subInventory . ciSelection . _Just + (xl,xr,_) <- w ^? hud . hudElement . subInventory . ciSelection . _Just + let msel = (xl,xr) let mpossel = inverseSelNumPos cfig secondColumnParams sss (w ^. input . mousePos) return $ case mpossel of Nothing -> OverCombEscape diff --git a/src/Dodge/Update/Input/InGame.hs b/src/Dodge/Update/Input/InGame.hs index 6ec243465..91a49112c 100644 --- a/src/Dodge/Update/Input/InGame.hs +++ b/src/Dodge/Update/Input/InGame.hs @@ -97,7 +97,7 @@ updateMouseHeldInGame cfig w = case w ^. input . mouseContext of OverInvDrag k mmouseover ab bn -> fromMaybe w $ do ss <- w ^? hud . hudElement . diSections . ix k . ssItems x <- mmouseover - is <- w ^? hud . hudElement . diSelectionExtra + is <- w ^? hud . hudElement . diSelection . _Just . _3 return $ if concurrentIS is then shiftInvItems k x ab bn is ss w else collectInvItems k is w @@ -109,8 +109,8 @@ tryDropSelected :: Maybe (Int,Int) -> World -> Maybe World tryDropSelected mpos w = do guard $ maybe True (\(i,_) -> i == 3) mpos cr <- w ^? cWorld . lWorld . creatures . ix 0 - (0, _) <- w ^? hud . hudElement . diSelection . _Just - xs <- w ^? hud . hudElement . diSelectionExtra + (0, _, xs) <- w ^? hud . hudElement . diSelection . _Just +-- xs <- w ^? hud . hudElement . diSelection . _Just . _3 return . foldl' (flip $ dropItem cr) w . IS.toDescList $ xs tryPickupSelected :: Int -> Maybe (Int,Int) -> World -> Maybe World @@ -119,17 +119,16 @@ tryPickupSelected k mpos w = do guard $ maybe True (\(i,_) -> i == 0) mpos cr <- w ^? cWorld . lWorld . creatures . ix 0 let nfreeslots = crNumFreeSlots cr - xs <- w ^? hud . hudElement . diSelectionExtra + xs <- w ^? hud . hudElement . diSelection . _Just . _3 let itmstopickup = mapMaybe g $ IS.toList xs let slotsneeded = alaf Sum foldMap (_itInvSize . _flIt) itmstopickup guard $ nfreeslots >= slotsneeded return $ case mpos of Nothing -> foldl' (flip $ pickUpItem 0) w itmstopickup - & hud . hudElement . diSelectionExtra .~ mempty + & hud . hudElement . diSelection . _Just . _3 %~ const mempty Just (_,j) -> foldr (pickUpItemAt j 0) w itmstopickup - & hud . hudElement . diSelection ?~ (0,j) - & hud . hudElement . diSelectionExtra - .~ IS.fromDistinctAscList [j..j+IS.size xs-1] + & hud . hudElement . diSelection ?~ (0,j + , IS.fromDistinctAscList [j..j+IS.size xs-1]) where g i = do NInt j <- w ^? hud . closeItems . ix i @@ -142,14 +141,15 @@ updateMouseReleaseInGame w = case w ^. input . mouseContext of fromMaybe w $ tryDropSelected mpos w <|> tryPickupSelected k mpos w OverInvDragSelect _ Nothing -> w & input . mouseContext .~ MouseInGame - & hud . hudElement . diSelectionExtra .~ mempty + & hud . hudElement . diSelection . _Just . _3 %~ const mempty OverInvDragSelect ssel (Just esel) -> w & input . mouseContext .~ MouseInGame - & hud . hudElement . diSelectionExtra - .~ h ssel (snd esel) -- IM.keysSet [min (snd ssel) (snd esel) + 1 .. max (snd ssel) (snd esel)] - & augInvDirectSelect (min ssel esel) +-- & hud . hudElement . diSelectionExtra +-- .~ h ssel (snd esel) -- IM.keysSet [min (snd ssel) (snd esel) + 1 .. max (snd ssel) (snd esel)] + & augInvDirectSelect (f (min ssel esel) (h ssel (snd esel))) _ -> w where + f (x,y) z = (x,y,z) h (k,i) j = fold $ do sss <- w ^? hud . hudElement . diSections . ix k . ssItems let (_, xss) = IM.split (min i j -1) sss @@ -170,7 +170,7 @@ updateMouseClickInGame cfig w = case w ^. input . mouseContext of w & hud . hudElement . subInventory .~ NoSubInventory --MouseInvNothing OverCombSelect x -> - w & hud . hudElement . subInventory . ciSelection ?~ x + w & hud . hudElement . subInventory . ciSelection ?~ f x & worldEventFlags . at CombineInventoryChange ?~ () OverCombFilter -> w & hud . hudElement . subInventory . ciFilter .~ Nothing @@ -202,18 +202,20 @@ updateMouseClickInGame cfig w = case w ^. input . mouseContext of where ldp = invDisplayParams w mpos = w ^. input . mousePos + f (x,y) = (x,y,mempty) startDrag :: (Int, Int) -> Configuration -> World -> World -startDrag (a, b) cfig w = fromMaybe (augInvDirectSelect (a, b) $ setmichosen mempty w) $ do - (i, _) <- w ^? hud . hudElement . diSelection . _Just - xs <- w ^? hud . hudElement . diSelectionExtra +startDrag (a, b) cfig w = setcontext . fromMaybe (augInvDirectSelect (a, b, IS.singleton b) w) $ do + (i, _, xs) <- w ^? hud . hudElement . diSelection . _Just guard $ i == a && b `IS.member` xs - return $ setmichosen xs w + --return $ setmichosen xs w + return w where - setmichosen :: IS.IntSet -> World -> World - setmichosen x = - (input . mouseContext .~ OverInvDrag a (Just (a, b)) above bneath) - . (hud . hudElement . diSelectionExtra .~ IS.insert b x) +-- setmichosen :: IS.IntSet -> World -> World +-- setmichosen x = +-- (input . mouseContext .~ OverInvDrag a (Just (a, b)) above bneath) +-- . (hud . hudElement . diSelectionExtra .~ IS.insert b x) + setcontext = (input . mouseContext .~ OverInvDrag a (Just (a, b)) above bneath) above :: Maybe (Int,Int) above = do sss <- w ^? hud . hudElement . diSections @@ -223,6 +225,25 @@ startDrag (a, b) cfig w = fromMaybe (augInvDirectSelect (a, b) $ setmichosen mem sss <- w ^? hud . hudElement . diSections inverseSelSecYint (yint + 1) sss yint = posSelSecYint cfig (invDisplayParams w) (w ^. input . mousePos . _y) +--startDrag (a, b) cfig w = fromMaybe (augInvDirectSelect (a, b) $ setmichosen mempty w) $ do +-- (i, _, xs) <- w ^? hud . hudElement . diSelection . _Just +---- xs <- w ^? hud . hudElement . diSelectionExtra +-- guard $ i == a && b `IS.member` xs +-- return $ setmichosen xs w +-- where +-- setmichosen :: IS.IntSet -> World -> World +-- setmichosen x = +-- (input . mouseContext .~ OverInvDrag a (Just (a, b)) above bneath) +-- . (hud . hudElement . diSelectionExtra .~ IS.insert b x) +-- above :: Maybe (Int,Int) +-- above = do +-- sss <- w ^? hud . hudElement . diSections +-- inverseSelSecYint (yint - 1) sss +-- bneath :: Maybe (Int,Int) +-- bneath = do +-- sss <- w ^? hud . hudElement . diSections +-- inverseSelSecYint (yint + 1) sss +-- yint = posSelSecYint cfig (invDisplayParams w) (w ^. input . mousePos . _y) concurrentIS :: IS.IntSet -> Bool concurrentIS = go . IS.minView @@ -367,9 +388,9 @@ doRegexInput :: Input -> Int -> IM.IntMap (SelectionSection a) -> - Maybe (Int, Int) -> + Maybe (Int, Int, IS.IntSet) -> Maybe String -> - (IM.IntMap (SelectionSection a), Maybe (Int, Int), Maybe String) + (IM.IntMap (SelectionSection a), Maybe (Int, Int, IS.IntSet), Maybe String) doRegexInput inp i sss msel filts | backspacetonothing || escapekey = endregex i 0 | endkeys = endregex (i + 1) (j -1) @@ -420,21 +441,21 @@ updateBackspaceRegex w = case di ^? subInventory of return $ case str of (_ : _) -> he & diInvFilter . _Just %~ init - & diSelection ?~ (x, 0) + & diSelection ?~ (x, 0,mempty) [] -> he & diInvFilter .~ Nothing trybackspace'' x he = fromMaybe he $ do str <- he ^? diCloseFilter . _Just return $ case str of (_ : _) -> he & diCloseFilter . _Just %~ init - & diSelection ?~ (x, 0) + & diSelection ?~ (x, 0,mempty) [] -> he & diCloseFilter .~ Nothing trybackspace' x ci = fromMaybe ci $ do str <- ci ^? ciFilter . _Just return $ case str of (_ : _) -> ci & ciFilter . _Just %~ init - & ciSelection ?~ (x, 0) + & ciSelection ?~ (x, 0,mempty) [] -> ci & ciFilter .~ Nothing di = w ^. hud . hudElement @@ -442,15 +463,15 @@ updateEnterRegex :: World -> World updateEnterRegex w = case w ^? hud . hudElement . subInventory of Just NoSubInventory{} | secfocus [-1,0,1] -> - w & hud . hudElement . diSelection ?~ (-1, 0) + w & hud . hudElement . diSelection ?~ (-1, 0,mempty) & hud . hudElement . diInvFilter %~ enterregex Just NoSubInventory{} | secfocus [2,3] -> - w & hud . hudElement . diSelection ?~ (2, 0) + w & hud . hudElement . diSelection ?~ (2, 0,mempty) & hud . hudElement . diCloseFilter %~ enterregex Just CombineInventory{} -> w & hud . hudElement . subInventory . ciFilter %~ enterregex - & hud . hudElement . subInventory . ciSelection ?~ (-1, 0) + & hud . hudElement . subInventory . ciSelection ?~ (-1, 0,mempty) _ -> w where di = w ^. hud . hudElement @@ -486,7 +507,7 @@ selCloseObj :: World -> Maybe (Either FloorItem Button) selCloseObj w = selobj <|> firstcitem <|> firstcbut where selobj = do - (i,j) <- w ^? hud . hudElement . diSelection . _Just + (i,j,_) <- w ^? hud . hudElement . diSelection . _Just case i of 3 -> do NInt k <- w ^? hud . closeItems . ix j @@ -511,7 +532,6 @@ toggleMap u = case u ^. uvWorld . hud . hudElement of { _subInventory = NoSubInventory , _diSections = mempty , _diSelection = Nothing - , _diSelectionExtra = mempty , _diInvFilter = mempty , _diCloseFilter = mempty } diff --git a/src/Dodge/Update/Scroll.hs b/src/Dodge/Update/Scroll.hs index a624ef1c2..5019c2685 100644 --- a/src/Dodge/Update/Scroll.hs +++ b/src/Dodge/Update/Scroll.hs @@ -33,8 +33,8 @@ updateWheelEvent yi w = case w ^. hud . hudElement of EquipOptions{} -> w & rbOptions . opSel %~ scrollRBOption yi rbscrollmax NoRightButtonOptions -> w | bdown ButtonLeft -> w & wCam . camZoom +~ y - | invKeyDown -> changeSwapSel yi $ w & hud . hudElement . diSelectionExtra .~ mempty - | otherwise -> scrollAugInvSel yi $ w & hud . hudElement . diSelectionExtra .~ mempty + | invKeyDown -> changeSwapSel yi $ w-- & hud . hudElement . diSelectionExtra .~ mempty + | otherwise -> scrollAugInvSel yi $ w-- & hud . hudElement . diSelectionExtra .~ mempty DisplayInventory{_subInventory = ExamineInventory} | invKeyDown -> scrollAugInvSel yi w | otherwise -> w diff --git a/tags b/tags index 07cd29b17..02dd61008 100644 --- a/tags +++ b/tags @@ -336,7 +336,7 @@ Combinations src/Dodge/Combine/Combinations.hs 3;" m Combine src/Dodge/Combine.hs 2;" m Combine src/Dodge/Data/Combine.hs 2;" m Combine src/Dodge/Data/Item/Combine.hs 6;" m -CombineInventory src/Dodge/Data/HUD.hs 40;" C +CombineInventory src/Dodge/Data/HUD.hs 41;" C CombineInventoryChange src/Dodge/Data/World.hs 34;" C Common src/Dodge/Zoning/Common.hs 1;" m Compile src/Shader/Compile.hs 1;" m @@ -514,10 +514,10 @@ Detector src/Dodge/Data/Item/Combine.hs 168;" t Dirt src/Dodge/Data/Material.hs 11;" C DisasterType src/Dodge/Data/Scenario.hs 24;" t Display src/Dodge/Item/Display.hs 1;" m -DisplayCarte src/Dodge/Data/HUD.hs 27;" C -DisplayInventory src/Dodge/Data/HUD.hs 18;" C +DisplayCarte src/Dodge/Data/HUD.hs 28;" C +DisplayInventory src/Dodge/Data/HUD.hs 19;" C DisplayInventory src/Dodge/DisplayInventory.hs 4;" m -DisplayTerminal src/Dodge/Data/HUD.hs 46;" C +DisplayTerminal src/Dodge/Data/HUD.hs 47;" C Distortion src/Dodge/Data/Distortion.hs 12;" t Distortion src/Dodge/Data/Distortion.hs 6;" m Distortion src/Dodge/Distortion.hs 1;" m @@ -663,7 +663,7 @@ Euse src/Dodge/Data/Item/HeldUse.hs 20;" t Euse src/Dodge/Euse.hs 1;" m Event src/Dodge/Button/Event.hs 1;" m Event src/Dodge/Event.hs 14;" m -ExamineInventory src/Dodge/Data/HUD.hs 39;" C +ExamineInventory src/Dodge/Data/HUD.hs 40;" C Explore src/Dodge/Data/Scenario.hs 4;" C Explosion src/Dodge/Data/SoundOrigin.hs 37;" C Explosion src/Dodge/WorldEvent/Explosion.hs 4;" m @@ -821,10 +821,10 @@ HELD src/Dodge/Data/Item/Combine.hs 16;" C HELDDETECTOR src/Dodge/Data/Item/Combine.hs 162;" C HOMINGMODULE src/Dodge/Data/Item/Combine.hs 82;" C HOSE src/Dodge/Data/Item/Combine.hs 32;" C -HUD src/Dodge/Data/HUD.hs 48;" t +HUD src/Dodge/Data/HUD.hs 49;" t HUD src/Dodge/Data/HUD.hs 6;" m HUD src/Dodge/Render/HUD.hs 3;" m -HUDElement src/Dodge/Data/HUD.hs 17;" t +HUDElement src/Dodge/Data/HUD.hs 18;" t HalfRes src/Dodge/Data/Config.hs 95;" C Hammer src/Dodge/Data/Hammer.hs 6;" m Hammer src/Dodge/Hammer.hs 1;" m @@ -1080,7 +1080,7 @@ Location src/Dodge/Item/Location.hs 1;" m LocationLDT src/Dodge/Data/DoubleTree.hs 62;" t Lock src/Dodge/Inventory/Lock.hs 1;" m LockAndKey src/Dodge/LockAndKey.hs 1;" m -LockedInventory src/Dodge/Data/HUD.hs 45;" C +LockedInventory src/Dodge/Data/HUD.hs 46;" C LoneWolf src/Dodge/Data/Creature/State.hs 46;" C LongAI src/Dodge/Data/Creature/Misc.hs 60;" C LongDoor src/Dodge/Room/LongDoor.hs 2;" m @@ -1273,7 +1273,7 @@ NoRightButtonOptions src/Dodge/Data/RightButtonOptions.hs 14;" C NoRoomClipBoundaries src/Dodge/Data/Config.hs 105;" C NoShadowFidelity src/Shape/Data.hs 25;" C NoShadows src/Dodge/Data/Config.hs 101;" C -NoSubInventory src/Dodge/Data/HUD.hs 36;" C +NoSubInventory src/Dodge/Data/HUD.hs 37;" C NoWorldEffect src/Dodge/Data/WorldEffect.hs 24;" C Noclip src/Dodge/Data/Config.hs 70;" C NodeMTree src/Dodge/Tree/Compose/Data.hs 9;" C @@ -1826,7 +1826,7 @@ Strategy src/Dodge/Creature/Strategy.hs 1;" m StrategyActions src/Dodge/Data/ActionPlan.hs 188;" C StrictHelp src/StrictHelp.hs 1;" m StringHelp src/StringHelp.hs 1;" m -SubInventory src/Dodge/Data/HUD.hs 35;" t +SubInventory src/Dodge/Data/HUD.hs 36;" t Superfluous src/Shape/Data.hs 38;" C Surface src/Shape/Data.hs 41;" t Survive src/Dodge/Data/Scenario.hs 5;" C @@ -2294,16 +2294,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 50;" f -_carteRot src/Dodge/Data/HUD.hs 52;" f -_carteZoom src/Dodge/Data/HUD.hs 51;" f +_carteCenter src/Dodge/Data/HUD.hs 51;" f +_carteRot src/Dodge/Data/HUD.hs 53;" f +_carteZoom src/Dodge/Data/HUD.hs 52;" f _ceSideEffect src/Dodge/Data/Universe.hs 62;" f _ceString src/Dodge/Data/Universe.hs 63;" f -_ciFilter src/Dodge/Data/HUD.hs 43;" f +_ciFilter src/Dodge/Data/HUD.hs 44;" f _ciInvIDs src/Dodge/Data/Combine.hs 6;" f _ciItem src/Dodge/Data/Combine.hs 7;" f -_ciSections src/Dodge/Data/HUD.hs 41;" f -_ciSelection src/Dodge/Data/HUD.hs 42;" f +_ciSections src/Dodge/Data/HUD.hs 42;" f +_ciSelection src/Dodge/Data/HUD.hs 43;" 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 @@ -2327,8 +2327,8 @@ _cldtUp src/Dodge/Data/DoubleTree.hs 46;" f _cldtUp src/Dodge/Data/DoubleTree.hs 54;" f _clickPos src/Dodge/Data/Input.hs 50;" f _clickWorldPos src/Dodge/Data/Input.hs 52;" f -_closeButtons src/Dodge/Data/HUD.hs 54;" f -_closeItems src/Dodge/Data/HUD.hs 53;" f +_closeButtons src/Dodge/Data/HUD.hs 55;" f +_closeItems src/Dodge/Data/HUD.hs 54;" 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 @@ -2438,11 +2438,10 @@ _debug_booleans src/Dodge/Data/Config.hs 57;" f _debug_view_clip_bounds src/Dodge/Data/Config.hs 56;" f _delayedEvents src/Dodge/Data/LWorld.hs 131;" f _dexterity src/Dodge/Data/Creature/Misc.hs 22;" f -_diCloseFilter src/Dodge/Data/HUD.hs 23;" f -_diInvFilter src/Dodge/Data/HUD.hs 22;" f -_diSections src/Dodge/Data/HUD.hs 20;" f -_diSelection src/Dodge/Data/HUD.hs 21;" f -_diSelectionExtra src/Dodge/Data/HUD.hs 24;" f +_diCloseFilter src/Dodge/Data/HUD.hs 24;" f +_diInvFilter src/Dodge/Data/HUD.hs 23;" f +_diSections src/Dodge/Data/HUD.hs 21;" f +_diSelection src/Dodge/Data/HUD.hs 22;" f _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 @@ -2611,7 +2610,7 @@ _heldPos src/Dodge/Data/Input.hs 51;" f _heldTriggerType src/Dodge/Data/Item/Use.hs 42;" f _heldWorldPos src/Dodge/Data/Input.hs 53;" f _hud src/Dodge/Data/World.hs 47;" f -_hudElement src/Dodge/Data/HUD.hs 49;" f +_hudElement src/Dodge/Data/HUD.hs 50;" 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 @@ -3098,7 +3097,7 @@ _ssShownItems src/Dodge/Data/SelectionList.hs 33;" f _strength src/Dodge/Data/Creature/Misc.hs 21;" f _strideAmount src/Dodge/Data/Creature/Stance.hs 22;" f _strideLength src/Dodge/Data/Creature/Stance.hs 16;" f -_subInventory src/Dodge/Data/HUD.hs 19;" f +_subInventory src/Dodge/Data/HUD.hs 20;" f _swColor src/Dodge/Data/Shockwave.hs 18;" f _swDam src/Dodge/Data/Shockwave.hs 23;" f _swDirection src/Dodge/Data/Shockwave.hs 19;" f @@ -3125,7 +3124,7 @@ _tcEffect src/Dodge/Data/Terminal.hs 120;" f _tcHelp src/Dodge/Data/Terminal.hs 119;" f _tcString src/Dodge/Data/Terminal.hs 117;" f _tempLightSources src/Dodge/Data/LWorld.hs 137;" f -_termID src/Dodge/Data/HUD.hs 46;" f +_termID src/Dodge/Data/HUD.hs 47;" 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 @@ -3439,7 +3438,7 @@ attachOnward' src/Dodge/Tree/Compose.hs 98;" f attachTree src/Dodge/Tree/Compose.hs 38;" f attentionViewPoint src/Dodge/Creature/ReaderUpdate.hs 66;" f attribSize src/Shader/Compile.hs 306;" f -augInvDirectSelect src/Dodge/Inventory.hs 199;" f +augInvDirectSelect src/Dodge/Inventory.hs 192;" f augmentedHUD src/Dodge/Item/Scope.hs 47;" f autoAmr src/Dodge/Item/Held/Rod.hs 51;" f autoBS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 362;" f @@ -3565,7 +3564,7 @@ canSeeIndirect src/Dodge/Base/Collide.hs 236;" f cardEightVec src/Dodge/Base/CardinalPoint.hs 16;" f cardList src/Dodge/Base/CardinalPoint.hs 6;" f cardVec src/Dodge/Base/CardinalPoint.hs 9;" f -cardinalVectors src/Dodge/FloorItem.hs 39;" f +cardinalVectors src/Dodge/FloorItem.hs 42;" f cartePosToScreen src/Dodge/Base/Coordinate.hs 37;" f cenLasTur src/Dodge/Room/LasTurret.hs 24;" f centerText src/Picture/Base.hs 184;" f @@ -3576,9 +3575,9 @@ centroidNum src/Geometry/Polygon.hs 133;" f chainCreatureUpdates src/Dodge/Creature/ChainUpdates.hs 6;" f chainLinkOrientation src/Dodge/Creature/State.hs 183;" f chainPairs src/Geometry.hs 363;" f -changeSwapOther src/Dodge/Inventory.hs 157;" f -changeSwapSel src/Dodge/Inventory.hs 149;" f -changeSwapWith src/Dodge/Inventory.hs 192;" f +changeSwapOther src/Dodge/Inventory.hs 150;" f +changeSwapSel src/Dodge/Inventory.hs 142;" f +changeSwapWith src/Dodge/Inventory.hs 185;" f charToTuple src/Picture/Base.hs 317;" f charToTupleGrad src/Picture/Text.hs 18;" f chargeIfEquipped src/Dodge/ItEffect.hs 54;" f @@ -3642,7 +3641,7 @@ closeItemToSelectionItem src/Dodge/Inventory/SelectionList.hs 52;" f closeItemToTextPictures src/Dodge/Inventory/SelectionList.hs 79;" f closeObjEq src/Dodge/Inventory/CloseObject.hs 15;" f closeObjPos src/Dodge/Inventory/CloseObject.hs 10;" f -closeObjectInfo src/Dodge/Render/HUD.hs 206;" f +closeObjectInfo src/Dodge/Render/HUD.hs 207;" f closestCreatureID src/Dodge/Debug.hs 92;" f closestPointOnLine src/Geometry/Intersect.hs 251;" f closestPointOnLineParam src/Geometry/Intersect.hs 267;" f @@ -3661,7 +3660,7 @@ colCrsWalls src/Dodge/WallCreatureCollisions.hs 17;" f colSpark src/Dodge/Spark.hs 47;" f colSparkRandDir src/Dodge/Spark.hs 101;" f collectDamageTypes src/Dodge/Damage.hs 32;" f -collectInvItems src/Dodge/Update/Input/InGame.hs 236;" f +collectInvItems src/Dodge/Update/Input/InGame.hs 234;" f collideCircWalls src/Dodge/Base/Collide.hs 149;" f collidePoint src/Dodge/Base/Collide.hs 48;" f collidePointTestFilter src/Dodge/Base/Collide.hs 93;" f @@ -3676,7 +3675,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 324;" f +combineInventoryExtra src/Dodge/Render/HUD.hs 325;" f combineItemListYouX src/Dodge/Combine.hs 33;" f combineList src/Dodge/Combine.hs 20;" f combineRooms src/Dodge/Room/Procedural.hs 152;" f @@ -3695,7 +3694,7 @@ composeTree src/Dodge/Tree/Compose.hs 46;" f computerBeepingS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 472;" f conEffects src/Dodge/Concurrent.hs 13;" f concBall src/Dodge/WorldEvent/SpawnParticle.hs 27;" f -concurrentIS src/Dodge/Update/Input/InGame.hs 228;" f +concurrentIS src/Dodge/Update/Input/InGame.hs 226;" f connectItemS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 532;" f connectionBlurb src/Dodge/Terminal.hs 102;" f connectionBlurbLines src/Dodge/Terminal.hs 47;" f @@ -3754,7 +3753,7 @@ createFlIt src/Dodge/Placement/PlaceSpot.hs 180;" f createForceField src/Dodge/ForceField.hs 7;" f createGas src/Dodge/Gas.hs 8;" f createHeadLamp src/Dodge/Euse.hs 159;" f -createItemYou src/Dodge/Inventory/Add.hs 92;" f +createItemYou src/Dodge/Inventory/Add.hs 94;" f createLightMap src/Render.hs 26;" f createNewArc src/Dodge/Tesla/Arc.hs 76;" f createPathGrid src/Dodge/Room/Path.hs 21;" f @@ -3954,7 +3953,7 @@ denormalEdges src/Polyhedra.hs 136;" f destroyAt src/Dodge/Bullet.hs 201;" f destroyBlock src/Dodge/Block.hs 56;" f destroyDoor src/Dodge/Block.hs 85;" f -destroyInvItem src/Dodge/Inventory.hs 49;" f +destroyInvItem src/Dodge/Inventory.hs 42;" f destroyLS src/Dodge/LightSource.hs 91;" f destroyLSFlashAt src/Dodge/LightSource.hs 101;" f destroyMachine src/Dodge/Machine/Destroy.hs 12;" f @@ -4044,7 +4043,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 366;" f +doRegexInput src/Dodge/Update/Input/InGame.hs 365;" f doRoomInPlacements src/Dodge/Layout.hs 97;" f doRoomOutPlacements src/Dodge/Layout.hs 107;" f doRoomPlacements src/Dodge/Layout.hs 122;" f @@ -4115,13 +4114,13 @@ drawDoubleLampCover src/Dodge/Prop/Draw.hs 81;" f drawDrag src/Dodge/Render/Picture.hs 164;" f drawDragDrop src/Dodge/Render/Picture.hs 175;" f drawDragPickup src/Dodge/Render/Picture.hs 184;" f -drawDragSelect src/Dodge/Render/HUD.hs 144;" f drawDragSelect src/Dodge/Render/Picture.hs 161;" f drawDragSelected src/Dodge/Render/HUD.hs 131;" f +drawDragSelecting src/Dodge/Render/HUD.hs 144;" f drawEmptySet src/Dodge/Render/Picture.hs 112;" f drawEnergyBall src/Dodge/EnergyBall/Draw.hs 8;" f drawEquipment src/Dodge/Creature/Picture.hs 140;" f -drawExamineInventory src/Dodge/Render/HUD.hs 179;" f +drawExamineInventory src/Dodge/Render/HUD.hs 180;" 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 @@ -4165,11 +4164,11 @@ 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 232;" f +drawRBOptions src/Dodge/Render/HUD.hs 233;" f drawRadarSweep src/Dodge/RadarSweep/Draw.hs 7;" f drawRemoteShell src/Dodge/Projectile/Draw.hs 30;" f drawReturn src/Dodge/Render/Picture.hs 118;" f -drawRootCursor src/Dodge/Render/HUD.hs 70;" f +drawRootCursor src/Dodge/Render/HUD.hs 71;" f drawSSCursor src/Dodge/SelectionSections/Draw.hs 31;" f drawSSMultiCursor src/Dodge/SelectionSections/Draw.hs 42;" f drawSelect src/Dodge/Render/Picture.hs 203;" f @@ -4190,7 +4189,7 @@ drawSwitch src/Dodge/Button/Draw.hs 15;" f drawSwitchWire src/Dodge/LevelGen/Switch.hs 28;" f drawTargetLaser src/Dodge/Particle/Draw.hs 6;" f drawTargeting src/Dodge/Targeting/Draw.hs 13;" f -drawTerminalDisplay src/Dodge/Render/HUD.hs 350;" f +drawTerminalDisplay src/Dodge/Render/HUD.hs 351;" f drawTeslaArc src/Dodge/Tesla/Arc/Draw.hs 7;" f drawText src/Picture/Base.hs 220;" f drawTitle src/Dodge/Render/MenuScreen.hs 57;" f @@ -4238,7 +4237,7 @@ encircleP src/Dodge/Creature/Boid.hs 27;" f enterCombineInv src/Dodge/DisplayInventory.hs 343;" f eqConstr src/SameConstr.hs 17;" f eqPosText src/Dodge/Equipment/Text.hs 6;" f -equipAllocString src/Dodge/Render/HUD.hs 290;" f +equipAllocString src/Dodge/Render/HUD.hs 291;" f equipInfo src/Dodge/Item/Info.hs 103;" f equipItemSPic src/Dodge/Item/Draw/SPic.hs 65;" f equipPosition src/Dodge/Item/Draw.hs 30;" f @@ -4292,7 +4291,7 @@ findClosePoint src/Dodge/LevelGen/StaticWalls/Deprecated.hs 74;" f findIndex src/IntMapHelp.hs 85;" f findReverseEdge src/Polyhedra.hs 50;" f findReverseEdgeList src/Polyhedra.hs 57;" f -findWallFreeDropPoint src/Dodge/FloorItem.hs 47;" f +findWallFreeDropPoint src/Dodge/FloorItem.hs 50;" f findWallsInPolygon src/Dodge/LevelGen/StaticWalls/Deprecated.hs 78;" f findWithIx src/ListHelp.hs 123;" f fireLoudS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 522;" f @@ -4330,7 +4329,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 211;" f +floorItemPickupInfo src/Dodge/Render/HUD.hs 212;" f floorItemSPic src/Dodge/Render/ShapePicture.hs 119;" f floorWire src/Dodge/Wire.hs 13;" f foamSprayFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 412;" f @@ -4413,7 +4412,7 @@ getNodePos src/Dodge/Path.hs 31;" f getPretty src/AesonHelp.hs 7;" f getPrettyShort src/AesonHelp.hs 10;" f getPromptTM src/Dodge/Terminal/Type.hs 8;" f -getRootItemBounds src/Dodge/Render/HUD.hs 93;" f +getRootItemBounds src/Dodge/Render/HUD.hs 94;" f getSensor src/Dodge/Terminal.hs 189;" f getSmoothScrollValue src/Dodge/SmoothScroll.hs 17;" f getSplitString src/Dodge/Debug/Terminal.hs 123;" f @@ -4598,7 +4597,7 @@ invAdj src/Dodge/Item/Grammar.hs 188;" f invCursorParams src/Dodge/ListDisplayParams.hs 38;" f invDimColor src/Dodge/DisplayInventory.hs 205;" f invDisplayParams src/Dodge/ListDisplayParams.hs 32;" f -invHead src/Dodge/Render/HUD.hs 388;" f +invHead src/Dodge/Render/HUD.hs 389;" f invLDT src/Dodge/Item/Grammar.hs 171;" f invRootMap src/Dodge/Item/Grammar.hs 180;" f invRootTrees src/Dodge/Item/Grammar.hs 210;" f @@ -4608,12 +4607,12 @@ invSideEff src/Dodge/Creature/State.hs 162;" f invSize src/Dodge/Inventory/CheckSlots.hs 30;" f invTrees src/Dodge/Item/Grammar.hs 198;" f invTrees' src/Dodge/Item/Grammar.hs 202;" f -inventoryExtra src/Dodge/Render/HUD.hs 299;" f -inventoryExtraH src/Dodge/Render/HUD.hs 310;" f +inventoryExtra src/Dodge/Render/HUD.hs 300;" f +inventoryExtraH src/Dodge/Render/HUD.hs 311;" f inventoryX src/Dodge/Creature.hs 115;" f -inverseSelNumPos src/Dodge/SelectionSections.hs 219;" f -inverseSelSecYint src/Dodge/SelectionSections.hs 192;" f -inverseSelSecYintXPosCheck src/Dodge/SelectionSections.hs 203;" f +inverseSelNumPos src/Dodge/SelectionSections.hs 224;" f +inverseSelSecYint src/Dodge/SelectionSections.hs 197;" f +inverseSelSecYintXPosCheck src/Dodge/SelectionSections.hs 208;" f inverseShockwaveAt src/Dodge/WorldEvent/Shockwave.hs 43;" f invertEncircleDistP src/Dodge/Creature/Boid.hs 13;" f invertIntMap src/IntMapHelp.hs 99;" f @@ -4773,7 +4772,7 @@ llleft src/Dodge/Item/Grammar.hs 107;" f llright src/Dodge/Item/Grammar.hs 114;" f lmt src/MatrixHelper.hs 43;" f lnkBothAnd src/Dodge/Room/Procedural.hs 121;" f -lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 377;" f +lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 378;" f lnkPosDir src/Dodge/RoomLink.hs 97;" f loadDodgeConfig src/Dodge/Config/Load.hs 9;" f loadMusic src/Dodge/SoundLogic/LoadSound.hs 21;" f @@ -4904,7 +4903,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 542;" f +maybeExitCombine src/Dodge/Update/Input/InGame.hs 541;" f maybeOpenTerminal src/Dodge/Update.hs 123;" f maybeReadFile src/Dodge/LoadSeed.hs 10;" f maybeTakeOne src/RandomHelp.hs 111;" f @@ -5045,7 +5044,7 @@ newHotkey src/Dodge/Hotkey.hs 18;" f newKey src/IntMapHelp.hs 60;" f newSounds src/Dodge/Creature/Perception.hs 170;" f newTextureFramebuffer src/Framebuffer/Setup.hs 16;" f -nextInSectionSS src/Dodge/SelectionSections.hs 35;" f +nextInSectionSS src/Dodge/SelectionSections.hs 36;" f noPic src/ShapePicture.hs 25;" f noShape src/ShapePicture.hs 29;" f noclipCheck src/Dodge/WallCreatureCollisions.hs 20;" f @@ -5129,7 +5128,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 462;" f +pauseGame src/Dodge/Update/Input/InGame.hs 461;" f pauseMenu src/Dodge/Menu.hs 53;" f pauseMenuOptions src/Dodge/Menu.hs 58;" f pauseSound src/Dodge/SoundLogic.hs 41;" f @@ -5153,8 +5152,8 @@ pesNearSeg src/Dodge/Zoning/Pathing.hs 37;" f picAtCrPos1 src/Dodge/Render/ShapePicture.hs 62;" f picFormat src/Polyhedra.hs 23;" f picMap src/Picture/Base.hs 67;" f -pickUpItem src/Dodge/Inventory/Add.hs 104;" f -pickUpItemAt src/Dodge/Inventory/Add.hs 110;" f +pickUpItem src/Dodge/Inventory/Add.hs 106;" f +pickUpItemAt src/Dodge/Inventory/Add.hs 112;" f pickUpS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 458;" f pincerP src/Dodge/Creature/Boid.hs 60;" f pincerP' src/Dodge/Creature/Boid.hs 93;" f @@ -5276,7 +5275,7 @@ polysToPic src/Polyhedra.hs 130;" f popScreen src/Dodge/Menu/PushPop.hs 6;" f posEventEffect src/Dodge/PosEvent.hs 16;" f posRms src/Dodge/Tree/Shift.hs 44;" f -posSelSecYint src/Dodge/SelectionSections.hs 175;" f +posSelSecYint src/Dodge/SelectionSections.hs 180;" f positionRoomsFromTree src/Dodge/Tree/Shift.hs 35;" f postGenerationProcessing src/Dodge/LevelGen.hs 33;" f postUniverseLoadSideEffect src/Dodge/WorldLoad.hs 11;" f @@ -5474,7 +5473,7 @@ rightPad src/Padding.hs 22;" f rightPadNoSquash src/Padding.hs 26;" f rlPosDir src/Dodge/RoomLink.hs 94;" f rmInLinks src/Dodge/RoomLink.hs 138;" f -rmInvItem src/Dodge/Inventory.hs 62;" f +rmInvItem src/Dodge/Inventory.hs 55;" f rmLinksOfType src/Dodge/RoomLink.hs 135;" f rmOutLinks src/Dodge/RoomLink.hs 138;" f roomC src/Dodge/Room/Room.hs 38;" f @@ -5567,13 +5566,13 @@ screenPolygon src/Dodge/Base/Window.hs 17;" f screenPolygonBord src/Dodge/Base/Window.hs 27;" f screenPosAbs src/Dodge/ScreenPos.hs 15;" f screenToWorldPos src/Dodge/Base/Coordinate.hs 53;" f -scrollAugInvSel src/Dodge/Inventory.hs 207;" f -scrollAugNextInSection src/Dodge/Inventory.hs 220;" f +scrollAugInvSel src/Dodge/Inventory.hs 200;" f +scrollAugNextInSection src/Dodge/Inventory.hs 213;" f scrollCommandStrings src/Dodge/Update/Scroll.hs 135;" f scrollCommands src/Dodge/Update/Scroll.hs 132;" f scrollDebugInfoInt src/Dodge/Debug.hs 47;" f scrollRBOption src/Dodge/Update/Scroll.hs 109;" f -scrollSelectionSections src/Dodge/SelectionSections.hs 25;" f +scrollSelectionSections src/Dodge/SelectionSections.hs 26;" f scrollTimeBack src/Dodge/Update.hs 213;" f scrollTimeForward src/Dodge/Update.hs 233;" f scrollWatch src/Dodge/Item/Weapon/Utility.hs 30;" f @@ -5593,14 +5592,14 @@ sectionsSizes src/Dodge/DisplayInventory.hs 222;" f seedStartMenu src/Dodge/Menu.hs 79;" f seedStartOptions src/Dodge/Menu.hs 82;" f segOnCirc src/Geometry.hs 116;" f -selCloseObj src/Dodge/Update/Input/InGame.hs 485;" f -selNumPos src/Dodge/Render/HUD.hs 437;" f -selNumPosCardinal src/Dodge/Render/HUD.hs 460;" f +selCloseObj src/Dodge/Update/Input/InGame.hs 484;" f +selNumPos src/Dodge/Render/HUD.hs 438;" f +selNumPosCardinal src/Dodge/Render/HUD.hs 461;" f selSecDrawCursor src/Dodge/Render/List.hs 130;" f selSecDrawCursorAt src/Dodge/Render/List.hs 108;" f -selSecSelCol src/Dodge/Render/HUD.hs 485;" f -selSecSelSize src/Dodge/SelectionSections.hs 171;" f -selSecYint src/Dodge/SelectionSections.hs 180;" f +selSecSelCol src/Dodge/Render/HUD.hs 486;" f +selSecSelSize src/Dodge/SelectionSections.hs 176;" f +selSecYint src/Dodge/SelectionSections.hs 185;" f selectCreatureDebugItem src/Dodge/Debug.hs 39;" f selectUse src/Dodge/SelectUse.hs 10;" f sensAboveDoor src/Dodge/Room/SensorDoor.hs 63;" f @@ -5688,9 +5687,9 @@ shiftChildren src/Dodge/Tree/Compose.hs 43;" f shiftDraw src/Dodge/Render/ShapePicture.hs 66;" f shiftDraw' src/Dodge/Render/ShapePicture.hs 72;" f shiftInBy src/Dodge/PlacementSpot.hs 236;" f -shiftInvItems src/Dodge/Update/Input/InGame.hs 245;" f -shiftInvItemsDown src/Dodge/Update/Input/InGame.hs 275;" f -shiftInvItemsUp src/Dodge/Update/Input/InGame.hs 269;" f +shiftInvItems src/Dodge/Update/Input/InGame.hs 244;" f +shiftInvItemsDown src/Dodge/Update/Input/InGame.hs 274;" f +shiftInvItemsUp src/Dodge/Update/Input/InGame.hs 268;" 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 @@ -5730,9 +5729,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 49;" f +showManObj src/Dodge/TestString.hs 48;" f showTerminalError src/Dodge/Debug/Terminal.hs 76;" f -showTimeFlow src/Dodge/TestString.hs 98;" f +showTimeFlow src/Dodge/TestString.hs 97;" f shrinkPolyOnEdges src/Geometry/Polygon.hs 136;" f shrinkVert src/Geometry/Polygon.hs 140;" f shuffle src/RandomHelp.hs 49;" f @@ -5753,7 +5752,7 @@ singleton src/DoubleStack.hs 11;" f singletonTrie src/SimpleTrie.hs 19;" f sizeFBOs src/Framebuffer/Update.hs 22;" f sizeModule src/Dodge/Item/Craftable.hs 36;" f -sizeSelf src/Dodge/Creature/Action.hs 200;" f +sizeSelf src/Dodge/Creature/Action.hs 204;" f skwareFadeTwoSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 378;" f slideDoorS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 510;" f slideWindow src/ListHelp.hs 80;" f @@ -5789,7 +5788,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 465;" f +spaceAction src/Dodge/Update/Input/InGame.hs 464;" 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 @@ -5823,21 +5822,21 @@ square src/Geometry/Polygon.hs 46;" f squareDecoration src/Dodge/Placement/TopDecoration.hs 41;" f squashIntersectCirclePoint src/Dodge/WallCreatureCollisions.hs 110;" f squashNormalizeV src/Geometry/Vector.hs 146;" f -ssLookupDown src/Dodge/SelectionSections.hs 90;" f -ssLookupGE' src/Dodge/SelectionSections.hs 164;" f -ssLookupGT src/Dodge/SelectionSections.hs 147;" f -ssLookupGT' src/Dodge/SelectionSections.hs 157;" f -ssLookupLE' src/Dodge/SelectionSections.hs 135;" f -ssLookupLT src/Dodge/SelectionSections.hs 115;" f -ssLookupLT' src/Dodge/SelectionSections.hs 125;" f -ssLookupMax src/Dodge/SelectionSections.hs 76;" f -ssLookupMaxInSection src/Dodge/SelectionSections.hs 108;" f -ssLookupMin src/Dodge/SelectionSections.hs 142;" f -ssLookupNextMax src/Dodge/SelectionSections.hs 99;" f -ssLookupUp src/Dodge/SelectionSections.hs 81;" f -ssScrollMinOnFail src/Dodge/SelectionSections.hs 56;" f -ssScrollUsing src/Dodge/SelectionSections.hs 46;" f -ssSetCursor src/Dodge/SelectionSections.hs 67;" f +ssLookupDown src/Dodge/SelectionSections.hs 95;" f +ssLookupGE' src/Dodge/SelectionSections.hs 169;" f +ssLookupGT src/Dodge/SelectionSections.hs 152;" f +ssLookupGT' src/Dodge/SelectionSections.hs 162;" f +ssLookupLE' src/Dodge/SelectionSections.hs 140;" f +ssLookupLT src/Dodge/SelectionSections.hs 120;" f +ssLookupLT' src/Dodge/SelectionSections.hs 130;" f +ssLookupMax src/Dodge/SelectionSections.hs 81;" f +ssLookupMaxInSection src/Dodge/SelectionSections.hs 113;" f +ssLookupMin src/Dodge/SelectionSections.hs 147;" f +ssLookupNextMax src/Dodge/SelectionSections.hs 104;" f +ssLookupUp src/Dodge/SelectionSections.hs 86;" f +ssScrollMinOnFail src/Dodge/SelectionSections.hs 57;" f +ssScrollUsing src/Dodge/SelectionSections.hs 47;" f +ssSetCursor src/Dodge/SelectionSections.hs 72;" f ssfold src/FoldableHelp.hs 105;" f stackPicturesAt src/Dodge/Render/List.hs 102;" f stackPicturesAtOff src/Dodge/Render/List.hs 105;" f @@ -5845,7 +5844,7 @@ stackText src/Picture/Base.hs 188;" f stackedInventory src/Dodge/Creature.hs 281;" f startCr src/Dodge/Creature.hs 91;" f startCrafts src/Dodge/Room/Start.hs 92;" f -startDrag src/Dodge/Update/Input/InGame.hs 207;" f +startDrag src/Dodge/Update/Input/InGame.hs 205;" f startInvList src/Dodge/Creature.hs 109;" f startInventory src/Dodge/Creature.hs 112;" f startNewGameInSlot src/Dodge/StartNewGame.hs 15;" f @@ -5879,7 +5878,7 @@ swapAnyExtraSelection src/Dodge/Inventory/Swap.hs 72;" f swapInOutLinks src/Dodge/RoomLink.hs 80;" f swapIndices src/ListHelp.hs 50;" f swapInvItems src/Dodge/Inventory/Swap.hs 21;" f -swapItemWith src/Dodge/Inventory.hs 181;" f +swapItemWith src/Dodge/Inventory.hs 174;" f swarmCrit src/Dodge/Creature/SwarmCrit.hs 10;" f swarmUsingCenter src/Dodge/Creature/Boid.hs 171;" f switchDoor src/Dodge/Placement/Instance/Door.hs 96;" f @@ -5987,7 +5986,7 @@ toggleCommand src/Dodge/Terminal.hs 196;" f toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 79;" f toggleJust src/MaybeHelp.hs 41;" f toggleMap src/Dodge/Update/Input/InGame.hs 505;" f -toggleTweakInv src/Dodge/Update/Input/InGame.hs 519;" f +toggleTweakInv src/Dodge/Update/Input/InGame.hs 518;" f togglesToEffects src/Dodge/Terminal.hs 248;" f tone440S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 474;" f tone440sawtoothS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 444;" f @@ -5995,7 +5994,7 @@ tone440sawtoothquietS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 332;" f topInvW src/Dodge/ListDisplayParams.hs 53;" f topPrismEdgeIndices src/Shader/Poke.hs 327;" f topPrismIndices src/Shader/Poke.hs 402;" f -topTestPart src/Dodge/TestString.hs 45;" f +topTestPart src/Dodge/TestString.hs 44;" f torch src/Dodge/Item/Held/Utility.hs 26;" f torchShape src/Dodge/Item/Draw/SPic.hs 213;" f torqueCr src/Dodge/WorldEffect.hs 69;" f @@ -6058,7 +6057,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 528;" f +tryCombine src/Dodge/Update/Input/InGame.hs 527;" f tryDropSelected src/Dodge/Update/Input/InGame.hs 108;" f tryGetChannel src/Sound.hs 96;" f tryGetRootAttachedFromInvID src/Dodge/Inventory/Location.hs 20;" f @@ -6066,9 +6065,9 @@ tryGetRootItemInvID src/Dodge/Inventory/Location.hs 29;" f tryMeleeAttack src/Dodge/Creature/ReaderUpdate.hs 36;" f tryPickupSelected src/Dodge/Update/Input/InGame.hs 116;" f tryPlay src/Sound.hs 83;" f -tryPutFloorItemIDInInv src/Dodge/Inventory/Add.hs 25;" f -tryPutItemInInv src/Dodge/Inventory/Add.hs 41;" f -tryPutItemInInvAt src/Dodge/Inventory/Add.hs 31;" f +tryPutFloorItemIDInInv src/Dodge/Inventory/Add.hs 26;" f +tryPutItemInInv src/Dodge/Inventory/Add.hs 42;" f +tryPutItemInInvAt src/Dodge/Inventory/Add.hs 32;" f trySeedFromClipboard src/Dodge/Menu.hs 88;" f trySiphonFuel src/Dodge/Euse.hs 46;" f trySpinByCID src/Dodge/Projectile/Update.hs 95;" f @@ -6107,7 +6106,7 @@ updateAllNodes src/TreeHelp.hs 85;" f updateArc src/Dodge/Tesla/Arc.hs 86;" f updateAttachedItems src/Dodge/Creature/State.hs 173;" f updateAutoRecharge src/Dodge/Creature/State.hs 324;" f -updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 400;" f +updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 399;" f updateBarrel src/Dodge/Barreloid.hs 45;" f updateBarreloid src/Dodge/Barreloid.hs 13;" f updateBounds src/Dodge/Update/Camera.hs 245;" f @@ -6115,7 +6114,7 @@ updateBulVel src/Dodge/Bullet.hs 50;" f updateBullet src/Dodge/Bullet.hs 28;" f updateBullets src/Dodge/Update.hs 533;" f updateCamera src/Dodge/Update/Camera.hs 31;" f -updateCloseObjects src/Dodge/Inventory.hs 120;" f +updateCloseObjects src/Dodge/Inventory.hs 113;" f updateCloud src/Dodge/Update.hs 718;" f updateClouds src/Dodge/Update.hs 562;" f updateCombinePositioning src/Dodge/DisplayInventory.hs 40;" f @@ -6130,7 +6129,7 @@ updateDistortion src/Dodge/Distortion.hs 5;" f updateDistortions src/Dodge/Update.hs 523;" f updateEnergyBall src/Dodge/EnergyBall.hs 46;" f updateEnergyBalls src/Dodge/Update.hs 550;" f -updateEnterRegex src/Dodge/Update/Input/InGame.hs 441;" f +updateEnterRegex src/Dodge/Update/Input/InGame.hs 440;" f updateExpBarrel src/Dodge/Barreloid.hs 19;" f updateFBOTO src/Framebuffer/Update.hs 97;" f updateFBOTO3 src/Framebuffer/Update.hs 131;" f @@ -6138,35 +6137,35 @@ updateFlame src/Dodge/Flame.hs 71;" f updateFlames src/Dodge/Update.hs 547;" f updateFlare src/Dodge/Flare.hs 7;" f updateFloatingCamera src/Dodge/Update/Camera.hs 36;" f -updateFunctionKey src/Dodge/Update/Input/InGame.hs 292;" f -updateFunctionKeys src/Dodge/Update/Input/InGame.hs 285;" f +updateFunctionKey src/Dodge/Update/Input/InGame.hs 291;" f +updateFunctionKeys src/Dodge/Update/Input/InGame.hs 284;" f updateGusts src/Dodge/Update.hs 701;" f updateHeldRootItem src/Dodge/Creature/State.hs 167;" f updateHumanoid src/Dodge/Humanoid.hs 12;" f updateIMl src/Dodge/Update.hs 492;" f updateIMl' src/Dodge/Update.hs 497;" f updateInGameCamera src/Dodge/Update/Camera.hs 70;" f -updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 345;" f +updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 344;" f updateInstantBullets src/Dodge/Update.hs 639;" 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 339;" f -updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 327;" f +updateKeyInGame src/Dodge/Update/Input/InGame.hs 338;" f +updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 326;" f updateLampoid src/Dodge/Lampoid.hs 12;" f updateLaser src/Dodge/Laser/Update.hs 13;" f updateLasers src/Dodge/Update.hs 421;" f updateLightSources src/Dodge/Update.hs 526;" f updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f -updateLongPressInGame src/Dodge/Update/Input/InGame.hs 360;" f +updateLongPressInGame src/Dodge/Update/Input/InGame.hs 359;" f updateMIM src/Dodge/Update.hs 652;" f updateMachine src/Dodge/Machine/Update.hs 19;" f -updateMouseClickInGame src/Dodge/Update/Input/InGame.hs 160;" f +updateMouseClickInGame src/Dodge/Update/Input/InGame.hs 158;" f updateMouseContext src/Dodge/Update.hs 311;" f updateMouseHeldInGame src/Dodge/Update/Input/InGame.hs 90;" f updateMouseInGame src/Dodge/Update/Input/InGame.hs 82;" f -updateMouseReleaseInGame src/Dodge/Update/Input/InGame.hs 135;" f +updateMouseReleaseInGame src/Dodge/Update/Input/InGame.hs 137;" f updateMovement src/Dodge/Creature/State.hs 331;" f updateObjCatMaybes src/Dodge/Update.hs 514;" f updateObjMapMaybe src/Dodge/Update.hs 507;" f @@ -6174,8 +6173,8 @@ updatePastWorlds src/Dodge/Update.hs 409;" f updatePosEvent src/Dodge/PosEvent.hs 11;" f updatePosEvents src/Dodge/Update.hs 559;" f updatePreload src/Preload/Update.hs 20;" f -updatePressedButtonsCarte src/Dodge/Update/Input/InGame.hs 302;" f -updatePressedButtonsCarte' src/Dodge/Update/Input/InGame.hs 305;" f +updatePressedButtonsCarte src/Dodge/Update/Input/InGame.hs 301;" f +updatePressedButtonsCarte' src/Dodge/Update/Input/InGame.hs 304;" 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 @@ -6367,8 +6366,8 @@ yIntercepts' src/Dodge/Zoning/Base.hs 74;" f yV2 src/Geometry/Vector.hs 203;" f yellow src/Color.hs 17;" f you src/Dodge/Base/You.hs 18;" f -youDropItem src/Dodge/Creature/Action.hs 186;" f -yourAugmentedItem src/Dodge/Render/HUD.hs 218;" f +youDropItem src/Dodge/Creature/Action.hs 190;" f +yourAugmentedItem src/Dodge/Render/HUD.hs 219;" 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