diff --git a/ghcidOutput b/ghcidOutput index df68a9dc7..e2287dc17 100644 --- a/ghcidOutput +++ b/ghcidOutput @@ -1 +1 @@ -All good (594 modules, at 20:51:58) +All good (594 modules, at 00:06:14) diff --git a/src/Dodge/Data/HUD.hs b/src/Dodge/Data/HUD.hs index 763070492..d8ef8d270 100644 --- a/src/Dodge/Data/HUD.hs +++ b/src/Dodge/Data/HUD.hs @@ -21,6 +21,7 @@ data HUDElement , _diInvFilter :: Maybe String , _diCloseFilter :: Maybe String , _diSelectionExtra :: Int + , _diMouseOver :: Maybe (Int, Int) } | DisplayCarte @@ -33,7 +34,6 @@ data MouseInventorySelection data SubInventory = NoSubInventory { _nsSelected :: MouseInventorySelection - , _nsMouseOver :: Maybe (Int, Int) } | ExamineInventory | CombineInventory diff --git a/src/Dodge/Default/World.hs b/src/Dodge/Default/World.hs index 5211ae754..4bbd9be22 100644 --- a/src/Dodge/Default/World.hs +++ b/src/Dodge/Default/World.hs @@ -162,13 +162,13 @@ defaultDisplayInventory = DisplayInventory { _subInventory = NoSubInventory {_nsSelected = MouseInvNothing - , _nsMouseOver = Just (0,3) } , _diSections = defaultInvSections , _diSelection = Just (1,0) , _diSelectionExtra = 0 , _diInvFilter = mempty , _diCloseFilter = mempty + , _diMouseOver = Nothing } defaultInvSections :: IM.IntMap (SelectionSection ()) diff --git a/src/Dodge/DisplayInventory.hs b/src/Dodge/DisplayInventory.hs index 1a135b137..ec746656a 100644 --- a/src/Dodge/DisplayInventory.hs +++ b/src/Dodge/DisplayInventory.hs @@ -5,10 +5,10 @@ module Dodge.DisplayInventory ( updateCombinePositioning, ) where -import Data.Bifunctor -import Dodge.Inventory +import Control.Applicative import Control.Lens import Control.Monad +import Data.Bifunctor import qualified Data.IntMap.Strict as IM import Data.Maybe import Dodge.Base.You @@ -18,10 +18,12 @@ import Dodge.Data.Config import Dodge.Data.DoubleTree import Dodge.Data.SelectionList import Dodge.Data.Universe +import Dodge.Inventory import Dodge.Inventory.SelectionList import Dodge.Item.Grammar import Dodge.ListDisplayParams import Dodge.SelectionList +import Dodge.SelectionSections import ListHelp import Picture.Base @@ -29,13 +31,14 @@ toggleCombineInv :: Universe -> Universe toggleCombineInv uv = case uv ^? uvWorld . hud . hudElement . subInventory of Just CombineInventory{} -> uv & uvWorld . hud . hudElement . subInventory - .~ NoSubInventory MouseInvNothing Nothing + .~ NoSubInventory MouseInvNothing _ -> uv & uvWorld %~ enterCombineInv (uv ^. uvConfig) updateCombinePositioning :: Universe -> Universe updateCombinePositioning u = u & uvWorld . hud . hudElement . subInventory . ciSections %~ updateCombineSections (_uvWorld u) (_uvConfig u) + & checkCombineSelectionExists updateCombineSections :: World -> @@ -87,11 +90,24 @@ updateInventoryPositioning u = -- this is possibly not completely correct checkInventorySelectionExists :: Universe -> Universe checkInventorySelectionExists u = fromMaybe u $ do - (i,j) <- u ^? uvWorld . hud . hudElement . diSelection . _Just + (i, j) <- (u ^? uvWorld . hud . hudElement . diSelection . _Just) <|> Just (0, -1) Just $ case u ^? uvWorld . hud . hudElement . diSections . ix i . ssItems . ix j of Nothing -> u & uvWorld %~ scrollAugNextInSection _ -> u +checkCombineSelectionExists :: Universe -> Universe +checkCombineSelectionExists u = fromMaybe u $ do + sss <- u ^? uvWorld . hud . hudElement . subInventory . ciSections + (i, j) <- + u ^? uvWorld . hud . hudElement . subInventory . ciSelection . _Just + <|> Just (0, 0) + Just $ case u ^? uvWorld . hud . hudElement . subInventory . ciSections . ix i . ssItems . ix j of + Nothing -> + u & uvWorld . hud . hudElement . subInventory . ciSelection ?~ (0,-1) + & uvWorld . hud . hudElement . subInventory . ciSelection + %~ scrollSelectionSections (-1) sss + _ -> u + updateDisplaySections :: World -> Configuration -> @@ -137,9 +153,10 @@ updateDisplaySections w cfig = (fmap (first removeindentiffiltering) . allInvLocs $ _crInv cr) -- this clearly deserves refactoring, also check if drawInventory/iextra -- needs it at the same time - removeindentiffiltering = if maybe False isFilteringInv (w ^? hud . hudElement . diSections) - then const 0 - else id + removeindentiffiltering = + if maybe False isFilteringInv (w ^? hud . hudElement . diSections) + then const 0 + else id cr = you w filterSectionsPair :: @@ -275,6 +292,8 @@ enterCombineInv cfig w = sss selpos Nothing + & hud . hudElement . diInvFilter + .~ Nothing where cm' = IM.fromDistinctAscList . zip [0 ..] $ combineList w cm diff --git a/src/Dodge/Render/HUD.hs b/src/Dodge/Render/HUD.hs index c9a3bf496..b0997f750 100644 --- a/src/Dodge/Render/HUD.hs +++ b/src/Dodge/Render/HUD.hs @@ -105,7 +105,7 @@ getRootItemBounds i inv = do drawDIMouseOver :: World -> Picture drawDIMouseOver w = fromMaybe mempty $ do - (j, i) <- w ^? hud . hudElement . subInventory . nsMouseOver . _Just + (j, i) <- w ^? hud . hudElement . diMouseOver . _Just sss <- w ^? hud . hudElement . diSections let idp = invDisplayParams w return . color (withAlpha 0.2 white) $ selSecDrawCursorAt 15 idp curs sss (j, i) diff --git a/src/Dodge/SelectionSections.hs b/src/Dodge/SelectionSections.hs index ca6ae9518..579db9944 100644 --- a/src/Dodge/SelectionSections.hs +++ b/src/Dodge/SelectionSections.hs @@ -3,6 +3,7 @@ module Dodge.SelectionSections ( nextInSectionSS, ssLookupDown, ssLookupGT, + ssTryLookup, ssSetCursor, -- setFirstPosSelectionSections, selSecYint, @@ -77,6 +78,12 @@ ssSetCursor f sss msel = fromMaybe msel $ do (i, j, _) <- f sss return $ Just (i, j) +ssTryLookup :: Maybe (Int,Int) -> IM.IntMap (SelectionSection a) -> Maybe (Int, Int, SelectionItem a) +ssTryLookup msel sss = fromMaybe (ssLookupMin sss) $ do + (i,j) <- msel + itm <- sss ^? ix i . ssItems . ix j + return $ Just (i,j,itm) + ssLookupMax :: IM.IntMap (SelectionSection a) -> Maybe (Int, Int, SelectionItem a) ssLookupMax sss = do (i, _) <- IM.lookupMax sss @@ -193,8 +200,6 @@ selSecYint i j sss = do where secpos = sum . fmap (length . _ssShownItems) . fst $ IM.split i sss --- it is annoying that Control.Foldl doesn't seem to allow for scans to be done --- at the same time as folds inverseSelSecYint :: Int -> IM.IntMap (SelectionSection a) -> Maybe (Int, Int) inverseSelSecYint yint sss = do ((i, ss), othersss) <- IM.minViewWithKey sss @@ -203,7 +208,6 @@ inverseSelSecYint yint sss = do then inverseSelSecYint (yint - l) othersss else do let ls = L.postscan (L.premap _siHeight L.sum) (_ssItems ss) - --j <- L.fold (L.findIndex (\x -> x - _ssOffset ss > yint)) ls (j,_) <- L.fold (L.find (\(_,x) -> x - _ssOffset ss > yint)) $ IM.toList ls return (i, j) diff --git a/src/Dodge/Terminal.hs b/src/Dodge/Terminal.hs index 8e1b67cae..d76a74969 100644 --- a/src/Dodge/Terminal.hs +++ b/src/Dodge/Terminal.hs @@ -223,7 +223,7 @@ disconnectTerminal tm = exitTerminalSubInv :: World -> World exitTerminalSubInv w = case w ^? hud . hudElement . subInventory . termID of Just _ -> w & hud . hudElement . subInventory - .~ NoSubInventory MouseInvNothing Nothing + .~ NoSubInventory MouseInvNothing _ -> w damageCodeCommand :: TerminalCommand diff --git a/src/Dodge/TestString.hs b/src/Dodge/TestString.hs index ccf3798a6..a4cef103e 100644 --- a/src/Dodge/TestString.hs +++ b/src/Dodge/TestString.hs @@ -23,7 +23,7 @@ import qualified IntMapHelp as IM testStringInit :: Universe -> [String] testStringInit u = [show $ u ^? uvWorld . hud . hudElement . diSelection . _Just , show $ u ^? uvWorld . cWorld . lWorld . creatures . ix 0 . crManipulation . manObject - , show $ u ^? uvWorld . hud . hudElement . subInventory . nsMouseOver . _Just + , show $ u ^? uvWorld . hud . hudElement . diMouseOver . _Just , show $ fmap fst $ IM.lookupMin =<< (u ^? uvWorld . hud . hudElement . diSections . ix 0 . ssItems) -- , show . fmap (fmap _siPictures) $ u ^? uvWorld . hud . hudElement . diSections . ix (-1) . ssItems ] diff --git a/src/Dodge/Update.hs b/src/Dodge/Update.hs index 08d2ba443..ec55d817d 100644 --- a/src/Dodge/Update.hs +++ b/src/Dodge/Update.hs @@ -294,7 +294,7 @@ checkTermDist w = fromMaybe w $ do guard $ dist btpos (_crPos $ you w) > 40 return $ w & hud . hudElement . subInventory - .~ NoSubInventory MouseInvNothing Nothing + .~ NoSubInventory MouseInvNothing updateMouseInventorySelection :: Configuration -> World -> World updateMouseInventorySelection cfig w = fromMaybe w $ do @@ -382,7 +382,7 @@ updateMouseOverInventory :: Configuration -> World -> World updateMouseOverInventory cfig w = fromMaybe w $ do sss <- w ^? hud . hudElement . diSections return $ - w & hud . hudElement . subInventory . nsMouseOver + w & hud . hudElement . diMouseOver .~ inverseSelNumPos cfig ldp sss (w ^. input . mousePos) where ldp = invDisplayParams w diff --git a/src/Dodge/Update/Input/InGame.hs b/src/Dodge/Update/Input/InGame.hs index 5bca16b93..a21a8646a 100644 --- a/src/Dodge/Update/Input/InGame.hs +++ b/src/Dodge/Update/Input/InGame.hs @@ -2,7 +2,7 @@ module Dodge.Update.Input.InGame ( updateUseInputInGame, ) where -import Dodge.SoundLogic +import Control.Monad import Control.Applicative import qualified Data.IntMap.Strict as IM import Data.List (sort) @@ -23,6 +23,7 @@ import Dodge.Inventory.Add import Dodge.Menu import Dodge.Save import Dodge.SelectionSections +import Dodge.SoundLogic import Dodge.Terminal.LeftButton import Dodge.Update.Input.Text import Dodge.WorldPos @@ -40,16 +41,13 @@ 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, _ciSelection = msel} + CombineInventory{_ciSections = sss, _ciSelection = msel} + | lbinitialpress -> u & uvWorld %~ updateCombineInvClick msel sss | inSubInvRegex (u ^. uvWorld) -> u & uvWorld . hud . hudElement . subInventory - %~ docombineregexinput + %~ docombineregexinput sss msel & uvWorld . worldEventFlags . at CombineInventoryChange ?~ () - | lbinitialpress -> - (uvWorld . worldEventFlags . at InventoryChange ?~ ()) . maybeExitCombine $ - over uvWorld (tryCombine sss msel) u - & uvWorld . worldEventFlags . at CombineInventoryChange ?~ () _ | inInvRegex (u ^. uvWorld) -> u & uvWorld . hud . hudElement %~ dodisplayregexinput (-1) @@ -67,15 +65,6 @@ 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 - filts <- ci ^? ciFilter - let (sss', msel', filts') = doRegexInput (u ^. uvWorld . input) (-1) sss msel filts - return $ - ci & ciSections .~ sss' - & ciSelection .~ msel' - & ciFilter .~ filts' dodisplayregexinput x di = fromMaybe di $ do sss <- di ^? diSections msel <- di ^? diSelection @@ -94,6 +83,37 @@ updateUseInputInGame u = case u ^. uvWorld . hud . hudElement of di & diSections .~ sss' & diSelection .~ msel' & diCloseFilter .~ filts' + docombineregexinput sss msel ci = fromMaybe ci $ do + filts <- ci ^? ciFilter + let (sss', msel', filts') = doRegexInput (u ^. uvWorld . input) (-1) sss msel filts + return $ + ci & ciSections .~ sss' + & ciSelection .~ msel' + & ciFilter .~ filts' + +updateCombineInvClick :: + Maybe (Int, Int) -> + IM.IntMap (SelectionSection CombinableItem) -> + World -> + World +updateCombineInvClick msel sss w = fromMaybe trydocombination $ do + (i,j) <- w ^? hud . hudElement . diMouseOver . _Just + guard $ i == 0 + str <- fmap (take 5) $ w ^? hud . hudElement . diSections . ix i . ssItems . ix j . siPictures . ix 0 + return . (worldEventFlags . at CombineInventoryChange ?~ ()) $ case w ^? hud . hudElement . subInventory . ciFilter . _Just of + Just (_:xs) | str == xs -> w + & hud . hudElement . subInventory . ciFilter .~ Nothing + _ -> w & hud . hudElement . subInventory . ciFilter ?~ ("<" ++ str) + where + trydocombination = + (worldEventFlags . at InventoryChange ?~ ()) . maybeExitCombine $ + tryCombine sss msel w + & worldEventFlags . at CombineInventoryChange ?~ () + +--checkCombineSelectionExists :: SubInventory -> SubInventory +--checkCombineSelectionExists x@CombineInventory{_ciSections=sss,_ciSelection=msel} +-- = x & ciSelection %~ ssSetCursor (ssTryLookup msel) sss +--checkCombineSelectionExists x = x updatePressedButtonsCarte :: World -> World updatePressedButtonsCarte w = updatePressedButtonsCarte' (_mouseButtons (_input w)) w @@ -276,11 +296,11 @@ spaceAction w = case w ^. hud . hudElement of _ -> w DisplayInventory{_subInventory = DisplayTerminal{}} -> w & hud . hudElement . subInventory - .~ NoSubInventory MouseInvNothing Nothing + .~ NoSubInventory MouseInvNothing & worldEventFlags . at InventoryChange ?~ () _ -> w & hud . hudElement . subInventory - .~ NoSubInventory MouseInvNothing Nothing + .~ NoSubInventory MouseInvNothing where theLoc = doWorldPos @@ -292,13 +312,14 @@ toggleMap u = case u ^. uvWorld . hud . hudElement of DisplayCarte -> u & uvWorld . hud . hudElement .~ DisplayInventory - { _subInventory = NoSubInventory MouseInvNothing Nothing + { _subInventory = NoSubInventory MouseInvNothing , _diSections = defaultInvSections , _diSelection = Nothing , _diSelectionExtra = 0 --- , _diFilters = IM.fromList [(-1, mempty), (2, mempty)] - , _diInvFilter = mempty + , -- , _diFilters = IM.fromList [(-1, mempty), (2, mempty)] + _diInvFilter = mempty , _diCloseFilter = mempty + , _diMouseOver = Nothing } _ -> u & uvWorld . hud . hudElement .~ DisplayCarte @@ -306,7 +327,7 @@ toggleTweakInv :: World -> World toggleTweakInv w = case w ^? hud . hudElement . subInventory of Just ExamineInventory{} -> w - & thepointer .~ NoSubInventory MouseInvNothing Nothing + & thepointer .~ NoSubInventory MouseInvNothing _ -> w & thepointer .~ ExamineInventory -- mi where thepointer = hud . hudElement . subInventory @@ -325,9 +346,9 @@ tryCombine sss msel w = fromMaybe w $ do & cWorld . lWorld . creatures . ix 0 . crHammerPosition .~ HammerDown & soundStart InventorySound p wrench1S Nothing -maybeExitCombine :: Universe -> Universe -maybeExitCombine u - | ButtonRight `M.member` (u ^. uvWorld . input . mouseButtons) = u +maybeExitCombine :: World -> World +maybeExitCombine w + | ButtonRight `M.member` (w ^. input . mouseButtons) = w | otherwise = - u & uvWorld . hud . hudElement . subInventory - .~ NoSubInventory MouseInvNothing Nothing + w & hud . hudElement . subInventory + .~ NoSubInventory MouseInvNothing diff --git a/tags b/tags index d42296780..7bc074765 100644 --- a/tags +++ b/tags @@ -511,7 +511,7 @@ 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 25;" C +DisplayCarte src/Dodge/Data/HUD.hs 26;" C DisplayInventory src/Dodge/Data/HUD.hs 17;" C DisplayInventory src/Dodge/DisplayInventory.hs 2;" m DisplayTerminal src/Dodge/Data/HUD.hs 45;" C @@ -1186,10 +1186,10 @@ 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 -MouseInvDrag src/Dodge/Data/HUD.hs 30;" C -MouseInvNothing src/Dodge/Data/HUD.hs 31;" C -MouseInvSelect src/Dodge/Data/HUD.hs 28;" C -MouseInventorySelection src/Dodge/Data/HUD.hs 27;" t +MouseInvDrag src/Dodge/Data/HUD.hs 31;" C +MouseInvNothing src/Dodge/Data/HUD.hs 32;" C +MouseInvSelect src/Dodge/Data/HUD.hs 29;" C +MouseInventorySelection src/Dodge/Data/HUD.hs 28;" 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 @@ -1265,7 +1265,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 34;" C +NoSubInventory src/Dodge/Data/HUD.hs 35;" 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 @@ -1807,7 +1807,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 33;" t +SubInventory src/Dodge/Data/HUD.hs 34;" t Superfluous src/Shape/Data.hs 38;" C Surface src/Shape/Data.hs 41;" t Survive src/Dodge/Data/Scenario.hs 5;" C @@ -2418,6 +2418,7 @@ _delayedEvents src/Dodge/Data/LWorld.hs 131;" f _dexterity src/Dodge/Data/Creature/Misc.hs 22;" f _diCloseFilter src/Dodge/Data/HUD.hs 22;" f _diInvFilter src/Dodge/Data/HUD.hs 21;" f +_diMouseOver src/Dodge/Data/HUD.hs 24;" f _diSections src/Dodge/Data/HUD.hs 19;" f _diSelection src/Dodge/Data/HUD.hs 20;" f _diSelectionExtra src/Dodge/Data/HUD.hs 23;" f @@ -2742,8 +2743,8 @@ _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 -_misMaybeEnd src/Dodge/Data/HUD.hs 29;" f -_misSelStart src/Dodge/Data/HUD.hs 29;" f +_misMaybeEnd src/Dodge/Data/HUD.hs 30;" f +_misSelStart src/Dodge/Data/HUD.hs 30;" 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 @@ -2775,8 +2776,7 @@ _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 36;" f -_nsSelected src/Dodge/Data/HUD.hs 35;" f +_nsSelected src/Dodge/Data/HUD.hs 36;" 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 @@ -4015,7 +4015,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 166;" f +doRegexInput src/Dodge/Update/Input/InGame.hs 179;" f doRoomInPlacements src/Dodge/Layout.hs 97;" f doRoomOutPlacements src/Dodge/Layout.hs 107;" f doRoomPlacements src/Dodge/Layout.hs 122;" f @@ -4568,11 +4568,11 @@ invTrees' src/Dodge/Item/Grammar.hs 200;" f inventoryExtra src/Dodge/Render/HUD.hs 269;" f inventoryExtraH src/Dodge/Render/HUD.hs 280;" f inventoryX src/Dodge/Creature.hs 115;" f -inverseSelBoundaryDown src/Dodge/SelectionSections.hs 250;" f -inverseSelBoundaryUp src/Dodge/SelectionSections.hs 237;" f -inverseSelNumPos src/Dodge/SelectionSections.hs 228;" f -inverseSelSecYint src/Dodge/SelectionSections.hs 198;" f -inverseSelSecYintXPosCheck src/Dodge/SelectionSections.hs 209;" f +inverseSelBoundaryDown src/Dodge/SelectionSections.hs 248;" f +inverseSelBoundaryUp src/Dodge/SelectionSections.hs 235;" f +inverseSelNumPos src/Dodge/SelectionSections.hs 226;" f +inverseSelSecYint src/Dodge/SelectionSections.hs 196;" f +inverseSelSecYintXPosCheck src/Dodge/SelectionSections.hs 207;" f inverseShockwaveAt src/Dodge/WorldEvent/Shockwave.hs 43;" f invertEncircleDistP src/Dodge/Creature/Boid.hs 13;" f invertIntMap src/IntMapHelp.hs 99;" f @@ -4860,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 328;" f +maybeExitCombine src/Dodge/Update/Input/InGame.hs 342;" f maybeOpenTerminal src/Dodge/Update.hs 116;" f maybeReadFile src/Dodge/LoadSeed.hs 10;" f maybeTakeOne src/RandomHelp.hs 111;" f @@ -5089,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 263;" f +pauseGame src/Dodge/Update/Input/InGame.hs 276;" f pauseMenu src/Dodge/Menu.hs 53;" f pauseMenuOptions src/Dodge/Menu.hs 58;" f pauseSound src/Dodge/SoundLogic.hs 41;" f @@ -5687,9 +5687,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 48;" f +showManObj src/Dodge/TestString.hs 49;" f showTerminalError src/Dodge/Debug/Terminal.hs 76;" f -showTimeFlow src/Dodge/TestString.hs 95;" f +showTimeFlow src/Dodge/TestString.hs 96;" f shrinkPolyOnEdges src/Geometry/Polygon.hs 136;" f shrinkVert src/Geometry/Polygon.hs 140;" f shuffle src/RandomHelp.hs 49;" f @@ -5746,7 +5746,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 266;" f +spaceAction src/Dodge/Update/Input/InGame.hs 279;" 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 @@ -5938,8 +5938,8 @@ toggleCombineInv src/Dodge/DisplayInventory.hs 28;" 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 290;" f -toggleTweakInv src/Dodge/Update/Input/InGame.hs 305;" f +toggleMap src/Dodge/Update/Input/InGame.hs 303;" f +toggleTweakInv src/Dodge/Update/Input/InGame.hs 319;" f togglesToEffects src/Dodge/Terminal.hs 245;" f tone440S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 474;" f tone440sawtoothS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 444;" f @@ -5947,7 +5947,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 44;" f +topTestPart src/Dodge/TestString.hs 45;" f torch src/Dodge/Item/Held/Utility.hs 26;" f torchShape src/Dodge/Item/Draw/SPic.hs 213;" f torqueCr src/Dodge/WorldEffect.hs 70;" f @@ -6010,7 +6010,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 314;" f +tryCombine src/Dodge/Update/Input/InGame.hs 328;" f tryGetChannel src/Sound.hs 96;" f tryGetRootAttachedFromInvID src/Dodge/Inventory/Location.hs 19;" f tryGetRootItemInvID src/Dodge/Inventory/Location.hs 28;" f @@ -6056,7 +6056,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 201;" f +updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 214;" f updateBarrel src/Dodge/Barreloid.hs 45;" f updateBarreloid src/Dodge/Barreloid.hs 13;" f updateBounds src/Dodge/Update/Camera.hs 245;" f @@ -6067,6 +6067,7 @@ updateCamera src/Dodge/Update/Camera.hs 31;" f updateCloseObjects src/Dodge/Inventory.hs 117;" f updateCloud src/Dodge/Update.hs 712;" f updateClouds src/Dodge/Update.hs 556;" f +updateCombineInvClick src/Dodge/Update/Input/InGame.hs 94;" f updateCombinePositioning src/Dodge/DisplayInventory.hs 35;" f updateCombineSections src/Dodge/DisplayInventory.hs 40;" f updateCreature src/Dodge/Creature/Update.hs 10;" f @@ -6079,7 +6080,7 @@ updateDistortion src/Dodge/Distortion.hs 5;" f updateDistortions src/Dodge/Update.hs 517;" f updateEnergyBall src/Dodge/EnergyBall.hs 46;" f updateEnergyBalls src/Dodge/Update.hs 544;" f -updateEnterRegex src/Dodge/Update/Input/InGame.hs 242;" f +updateEnterRegex src/Dodge/Update/Input/InGame.hs 255;" f updateExpBarrel src/Dodge/Barreloid.hs 19;" f updateFBOTO src/Framebuffer/Update.hs 97;" f updateFBOTO3 src/Framebuffer/Update.hs 131;" f @@ -6093,20 +6094,20 @@ updateHumanoid src/Dodge/Humanoid.hs 12;" 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 140;" f +updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 153;" f updateInstantBullets src/Dodge/Update.hs 633;" f updateInv src/Dodge/Creature/State.hs 152;" f updateInventoryPositioning src/Dodge/DisplayInventory.hs 81;" f updateItemTargeting src/Dodge/Creature/State.hs 268;" f updateItemWithOrientation src/Dodge/Creature/State.hs 194;" f -updateKeyInGame src/Dodge/Update/Input/InGame.hs 134;" f -updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 123;" f +updateKeyInGame src/Dodge/Update/Input/InGame.hs 147;" f +updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 136;" f updateLampoid src/Dodge/Lampoid.hs 12;" f updateLaser src/Dodge/Laser/Update.hs 13;" 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 160;" f +updateLongPressInGame src/Dodge/Update/Input/InGame.hs 173;" f updateMIM src/Dodge/Update.hs 646;" f updateMachine src/Dodge/Machine/Update.hs 16;" f updateMouseInventorySelection src/Dodge/Update.hs 299;" f @@ -6119,8 +6120,8 @@ updatePastWorlds src/Dodge/Update.hs 403;" f updatePosEvent src/Dodge/PosEvent.hs 11;" f updatePosEvents src/Dodge/Update.hs 553;" f updatePreload src/Preload/Update.hs 20;" f -updatePressedButtonsCarte src/Dodge/Update/Input/InGame.hs 98;" f -updatePressedButtonsCarte' src/Dodge/Update/Input/InGame.hs 101;" f +updatePressedButtonsCarte src/Dodge/Update/Input/InGame.hs 111;" f +updatePressedButtonsCarte' src/Dodge/Update/Input/InGame.hs 114;" 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 @@ -6154,7 +6155,7 @@ updateUniverse src/Dodge/Update.hs 69;" f updateUniverseFirst src/Dodge/Update.hs 80;" f updateUniverseLast src/Dodge/Update.hs 126;" f updateUniverseMid src/Dodge/Update.hs 147;" f -updateUseInputInGame src/Dodge/Update/Input/InGame.hs 33;" f +updateUseInputInGame src/Dodge/Update/Input/InGame.hs 34;" f 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