From 199cd73fa99394a6b95108fd686d7de1d0c29afa Mon Sep 17 00:00:00 2001 From: justin Date: Tue, 26 Nov 2024 21:18:28 +0000 Subject: [PATCH] Make dragging items instantaneous (up to 30 items away, at least) --- src/Dodge/TestString.hs | 8 ++- src/Dodge/Update/Input/InGame.hs | 54 ++++++++++++-- tags | 118 ++++++++++++++++--------------- 3 files changed, 115 insertions(+), 65 deletions(-) diff --git a/src/Dodge/TestString.hs b/src/Dodge/TestString.hs index 665d2c361..56619bde8 100644 --- a/src/Dodge/TestString.hs +++ b/src/Dodge/TestString.hs @@ -24,8 +24,12 @@ import Dodge.Data.Universe import qualified IntMapHelp as IM testStringInit :: Universe -> [String] -testStringInit u = [show $ u ^? uvWorld . cWorld . lWorld . creatures . ix 0 . - crManipulation . manObject . imRootSelectedItem] +testStringInit u = + [show $ u ^? uvWorld . input . mouseContext . mcoDragSection + ,show $ u ^? uvWorld . input . mouseContext . mcoMaybeSelect + ,show $ u ^? uvWorld . input . mouseContext . mcoAboveSelect + ,show $ u ^? uvWorld . input . mouseContext . mcoBelowSelect + ] -- fromMaybe mempty $ do -- cr <- u ^? uvWorld . cWorld . lWorld . creatures . ix 0 -- let itms = IM.elems $ cr ^. crInv diff --git a/src/Dodge/Update/Input/InGame.hs b/src/Dodge/Update/Input/InGame.hs index dda8827db..e33686b22 100644 --- a/src/Dodge/Update/Input/InGame.hs +++ b/src/Dodge/Update/Input/InGame.hs @@ -90,16 +90,34 @@ updateMouseHeldInGame cfig w = case w ^. input . mouseContext of let msel = inverseSelNumPos cfig ldp sss (w ^. input . mousePos) guard $ Just (fst sstart) == fmap fst msel || isNothing msel return $ w & input . mouseContext . mcoSelEnd .~ fmap snd msel - OverInvDrag k mmouseover ab bn -> fromMaybe w $ do + OverInvDrag k mmouseover ab bn -> doDrag 30 k mmouseover ab bn w +-- OverInvDrag k mmouseover ab bn -> fromMaybe w $ do +-- ss <- w ^? hud . hudElement . diSections . ix k . ssItems +-- x <- mmouseover +-- 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 + _ -> w + where + ldp = invDisplayParams w + + +doDrag :: Int + -> Int + -> Maybe (Int, Int) + -> Maybe (Int, Int) + -> Maybe (Int, Int) + -> World + -> World +doDrag 0 _ _ _ _ w = w +doDrag n k mmouseover ab bn w = fromMaybe w $ do ss <- w ^? hud . hudElement . diSections . ix k . ssItems x <- mmouseover is <- w ^? hud . hudElement . diSelection . _Just . _3 return $ if concurrentIS is - then shiftInvItems k x ab bn is ss w + then shiftInvItems' n k x ab bn is ss w else collectInvItems k is w - _ -> w - where - ldp = invDisplayParams w tryDropSelected :: Maybe (Int,Int) -> World -> Maybe World tryDropSelected mpos w = do @@ -303,6 +321,32 @@ shiftInvItems k x ab bn xs ss w = setSelWhileDragging . fromMaybe w $ do return $ shiftInvItemsDown k xs w _ -> Nothing +shiftInvItems' :: + Int -> -- recurse limit + Int -> -- section where drag started + (Int,Int) -> -- selection item mouse is over + Maybe (Int,Int) -> -- selection item "above" mouse position (can be same as over) + Maybe (Int,Int) -> -- selection item "below" mouse position (can be same as over) + IS.IntSet -> + IM.IntMap (SelectionItem a) -> + World -> + World +shiftInvItems' n k x ab bn xs ss w = setSelWhileDragging . fromMaybe w $ do + let xk = fst x + guard $ xk == k || xk + 1 == k || xk -1 == k + (maxi,_) <- IS.maxView xs + (mini,_) <- IS.minView xs + case True of + _ | x < (k,mini) -> do + guard $ not . null . fst $ IM.split mini ss + guard $ Just (k,mini-1) /= ab + return . doDrag (n-1) k (Just x) ab bn $ shiftInvItemsUp k xs w + _ | x > (k,maxi) -> do + guard $ not . null . snd $ IM.split maxi ss + guard $ Just (k,maxi+1) /= bn + return . doDrag (n-1) k (Just x) ab bn $ shiftInvItemsDown k xs w + _ -> Nothing + setSelWhileDragging :: World -> World setSelWhileDragging w = fromMaybe w $ do (i,_,xs) <- w ^? hud . hudElement . diSelection . _Just diff --git a/tags b/tags index f65e5f0b4..3591c7fe1 100644 --- a/tags +++ b/tags @@ -3327,7 +3327,7 @@ ammoMagSPic src/Dodge/Item/Draw/SPic.hs 45;" f amr src/Dodge/Item/Held/Rod.hs 46;" f analyser src/Dodge/Placement/Instance/Analyser.hs 12;" f analyserByDoor src/Dodge/Room/LasTurret.hs 75;" f -andOrRegex src/Dodge/DisplayInventory.hs 79;" f +andOrRegex src/Dodge/DisplayInventory.hs 81;" f angleBetween src/Geometry.hs 145;" f angleVV src/Geometry/Vector.hs 57;" f angleVV3 src/Geometry/Vector3D.hs 122;" f @@ -3542,7 +3542,7 @@ chaseCritAwarenessUpdate src/Dodge/Creature/Perception.hs 69;" f chaseCritMv src/Dodge/Creature/ReaderUpdate.hs 112;" f chaseCritPerceptionUpdate src/Dodge/Creature/Perception.hs 30;" f chaseCritVocalization src/Dodge/Creature/ChaseCrit.hs 46;" f -checkCombineSelectionExists src/Dodge/DisplayInventory.hs 101;" f +checkCombineSelectionExists src/Dodge/DisplayInventory.hs 105;" f checkConnection src/Dodge/Inventory/Swap.hs 80;" f checkDeath src/Dodge/Creature/State.hs 74;" f checkEndGame src/Dodge/Update.hs 693;" f @@ -3550,7 +3550,7 @@ checkErrorGL src/Shader/Compile.hs 255;" f checkFBO src/Framebuffer/Check.hs 6;" f checkGLError src/GLHelp.hs 17;" f checkInvSlotsYou src/Dodge/Inventory/CheckSlots.hs 16;" f -checkInventorySelectionExists src/Dodge/DisplayInventory.hs 94;" f +checkInventorySelectionExists src/Dodge/DisplayInventory.hs 95;" f checkTermDist src/Dodge/Update.hs 302;" f checkWallLeft src/Dodge/LevelGen/StaticWalls/Deprecated.hs 29;" f checkWallRight src/Dodge/LevelGen/StaticWalls.hs 54;" f @@ -3612,7 +3612,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 271;" f +collectInvItems src/Dodge/Update/Input/InGame.hs 280;" 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 @@ -3646,7 +3646,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 263;" f +concurrentIS src/Dodge/Update/Input/InGame.hs 272;" f connectItemS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 532;" f connectionBlurb src/Dodge/Terminal.hs 102;" f connectionBlurbLines src/Dodge/Terminal.hs 47;" f @@ -3930,9 +3930,9 @@ disconnectTerminal src/Dodge/Terminal.hs 217;" f displayConfig src/Dodge/Menu.hs 196;" f displayControls src/Dodge/Menu.hs 206;" f displayFrameTicks src/Dodge/Render/Picture.hs 39;" f -displayFreeSlots src/Dodge/DisplayInventory.hs 211;" f -displayIndents src/Dodge/DisplayInventory.hs 119;" f -displaySectionsSizes src/Dodge/DisplayInventory.hs 114;" f +displayFreeSlots src/Dodge/DisplayInventory.hs 224;" f +displayIndents src/Dodge/DisplayInventory.hs 123;" f +displaySectionsSizes src/Dodge/DisplayInventory.hs 118;" f displayTerminalLineString src/Dodge/Update.hs 438;" f dist src/Geometry/Vector.hs 179;" f dist3 src/Geometry/Vector3D.hs 101;" f @@ -3963,6 +3963,7 @@ doDamagesFL src/Dodge/Flame.hs 57;" f doDeathToggle src/Dodge/WorldEffect.hs 96;" f doDeathTriggers src/Dodge/WorldEffect.hs 91;" f doDrWdWd src/Dodge/DrWdWd.hs 16;" f +doDrag src/Dodge/Update/Input/InGame.hs 104;" f doDrawing src/Dodge/Render.hs 35;" f doDrawing' src/Dodge/Render.hs 46;" f doFloatFloat src/Dodge/FloatFunction.hs 5;" f @@ -3990,13 +3991,13 @@ doPropUpdates src/Dodge/Prop/Update.hs 36;" f doQuickload src/Dodge/Save.hs 82;" f doQuicksave src/Dodge/Save.hs 77;" f doRandImpulse src/Dodge/RandImpulse.hs 7;" f -doRegexInput src/Dodge/Update/Input/InGame.hs 410;" f +doRegexInput src/Dodge/Update/Input/InGame.hs 445;" f doRoomInPlacements src/Dodge/Layout.hs 97;" f doRoomOutPlacements src/Dodge/Layout.hs 107;" f doRoomPlacements src/Dodge/Layout.hs 122;" f doRoomShift src/Dodge/Room/Link.hs 33;" f doScopeZoom src/Dodge/Update/Camera.hs 141;" f -doSectionSize src/Dodge/DisplayInventory.hs 233;" f +doSectionSize src/Dodge/DisplayInventory.hs 246;" f doSideEffects appDodge/Main.hs 118;" f doStep src/Dodge/ArcStep.hs 9;" f doStrategyActions src/Dodge/Creature/ReaderUpdate.hs 164;" f @@ -4176,9 +4177,9 @@ 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 -endCombineRegex src/Dodge/Update/Input/InGame.hs 236;" f -endRegex src/Dodge/Update/Input/InGame.hs 225;" f -enterCombineInv src/Dodge/DisplayInventory.hs 343;" f +endCombineRegex src/Dodge/Update/Input/InGame.hs 245;" f +endRegex src/Dodge/Update/Input/InGame.hs 234;" f +enterCombineInv src/Dodge/DisplayInventory.hs 358;" f eqConstr src/SameConstr.hs 17;" f eqPosText src/Dodge/Equipment/Text.hs 6;" f equipAllocString src/Dodge/Render/HUD.hs 298;" f @@ -4226,7 +4227,7 @@ fdiv src/ShortShow.hs 27;" f feet src/Dodge/Creature/Picture.hs 51;" f ffoldM src/Framebuffer/Update.hs 79;" f filter3 src/FoldableHelp.hs 76;" f -filterSectionsPair src/Dodge/DisplayInventory.hs 179;" f +filterSectionsPair src/Dodge/DisplayInventory.hs 192;" f findBlips src/Dodge/RadarSweep.hs 44;" f findBoundDists src/Dodge/Update/Camera.hs 235;" f findClosePoint src/Dodge/LevelGen/StaticWalls.hs 155;" f @@ -4533,7 +4534,7 @@ interweave src/Justify.hs 17;" f intsToPos src/Dodge/Room/Modify/Girder.hs 160;" f invAdj src/Dodge/Item/Grammar.hs 189;" f invCursorParams src/Dodge/ListDisplayParams.hs 38;" f -invDimColor src/Dodge/DisplayInventory.hs 205;" f +invDimColor src/Dodge/DisplayInventory.hs 218;" f invDisplayParams src/Dodge/ListDisplayParams.hs 32;" f invHead src/Dodge/Render/HUD.hs 397;" f invLDT src/Dodge/Item/Grammar.hs 172;" f @@ -4565,7 +4566,7 @@ isConnected src/Dodge/Inventory/Swap.hs 90;" f isElectrical src/Dodge/Data/Damage.hs 42;" f isFrictionless src/Dodge/Creature/State.hs 341;" f isGas src/Dodge/Euse.hs 63;" f -isGroupSelectableSection src/Dodge/Update/Input/InGame.hs 159;" f +isGroupSelectableSection src/Dodge/Update/Input/InGame.hs 168;" f isInLnk src/Dodge/PlacementSpot.hs 160;" f isJust' src/MaybeHelp.hs 29;" f isLHS src/Geometry/LHS.hs 8;" f @@ -4704,7 +4705,7 @@ listConfig src/Dodge/Menu.hs 199;" f listControls src/Dodge/Menu.hs 212;" f listCursorChooseBorderScale src/Dodge/Render/List.hs 140;" f listGuard src/Dodge/Creature/ReaderUpdate.hs 188;" f -listSelectionColorPicture src/Dodge/DisplayInventory.hs 335;" f +listSelectionColorPicture src/Dodge/DisplayInventory.hs 350;" f litCorridor90 src/Dodge/Room/RoadBlock.hs 26;" f llleft src/Dodge/Item/Grammar.hs 107;" f llright src/Dodge/Item/Grammar.hs 114;" f @@ -4836,7 +4837,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 587;" f +maybeExitCombine src/Dodge/Update/Input/InGame.hs 608;" f maybeOpenTerminal src/Dodge/Update.hs 123;" f maybeReadFile src/Dodge/LoadSeed.hs 10;" f maybeTakeOne src/RandomHelp.hs 111;" f @@ -5014,7 +5015,7 @@ optionScreenUpdate src/Dodge/Update/Input/ScreenLayer.hs 41;" f optionValueOffset src/Dodge/Menu/Option.hs 89;" f optionsOptions src/Dodge/Menu.hs 108;" f optionsToSelections src/Dodge/Menu/Option.hs 51;" f -orRegex src/Dodge/DisplayInventory.hs 82;" f +orRegex src/Dodge/DisplayInventory.hs 84;" f orange src/Color.hs 25;" f orderAround3 src/Geometry/Vector3D.hs 105;" f orderAroundFirst src/Geometry/Polygon.hs 82;" f @@ -5060,7 +5061,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 507;" f +pauseGame src/Dodge/Update/Input/InGame.hs 528;" f pauseMenu src/Dodge/Menu.hs 53;" f pauseMenuOptions src/Dodge/Menu.hs 58;" f pauseSound src/Dodge/SoundLogic.hs 41;" f @@ -5118,7 +5119,7 @@ placeSpotRoomRand src/Dodge/Placement/PlaceSpot.hs 89;" f placeSpotUsingLink src/Dodge/Placement/PlaceSpot.hs 70;" f placeString src/Dodge/Render/MenuScreen.hs 63;" f placeWallPoly src/Dodge/Placement/PlaceSpot.hs 162;" f -plainRegex src/Dodge/DisplayInventory.hs 208;" f +plainRegex src/Dodge/DisplayInventory.hs 221;" f plateCraft src/Dodge/Item/Craftable.hs 45;" f playIfFree src/Sound.hs 136;" f playPositionalSoundQueue src/Sound.hs 144;" f @@ -5345,8 +5346,8 @@ reflectInParam src/Geometry.hs 233;" f reflectLaserAlong src/Dodge/Item/Weapon/LaserPath.hs 13;" f refract src/Dodge/Item/Weapon/LaserPath.hs 40;" f refreshOptionsSelectionList src/Dodge/Menu/Option.hs 39;" f -regexCombs src/Dodge/DisplayInventory.hs 69;" f -regexList src/Dodge/DisplayInventory.hs 376;" f +regexCombs src/Dodge/DisplayInventory.hs 71;" f +regexList src/Dodge/DisplayInventory.hs 394;" f reload1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 442;" f reloadLevelStart src/Dodge/Save.hs 71;" f reloadS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 440;" f @@ -5514,12 +5515,12 @@ seagullWhistle1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 372;" f seagullWhistleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 530;" f searchIfDamaged src/Dodge/Creature/ReaderUpdate.hs 203;" f secondColumnParams src/Dodge/ListDisplayParams.hs 45;" f -sectionsDesiredLines src/Dodge/DisplayInventory.hs 217;" f -sectionsSizes src/Dodge/DisplayInventory.hs 222;" f +sectionsDesiredLines src/Dodge/DisplayInventory.hs 230;" f +sectionsSizes src/Dodge/DisplayInventory.hs 235;" 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 530;" f +selCloseObj src/Dodge/Update/Input/InGame.hs 551;" f selNumPos src/Dodge/Render/HUD.hs 446;" f selNumPosCardinal src/Dodge/Render/HUD.hs 469;" f selSecDrawCursor src/Dodge/Render/List.hs 130;" f @@ -5564,7 +5565,7 @@ setOutLinks src/Dodge/RoomLink.hs 48;" f setOutLinksByType src/Dodge/RoomLink.hs 57;" f setOutLinksPD src/Dodge/RoomLink.hs 77;" f setRBCreatureTargeting src/Dodge/Creature/State.hs 292;" f -setSelWhileDragging src/Dodge/Update/Input/InGame.hs 306;" f +setSelWhileDragging src/Dodge/Update/Input/InGame.hs 341;" f setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 85;" f setShaderSource src/Shader/Compile.hs 290;" f setShadowLimits src/Dodge/Shadows.hs 11;" f @@ -5615,9 +5616,10 @@ 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 281;" f -shiftInvItemsDown src/Dodge/Update/Input/InGame.hs 319;" f -shiftInvItemsUp src/Dodge/Update/Input/InGame.hs 313;" f +shiftInvItems src/Dodge/Update/Input/InGame.hs 290;" f +shiftInvItems' src/Dodge/Update/Input/InGame.hs 315;" f +shiftInvItemsDown src/Dodge/Update/Input/InGame.hs 354;" f +shiftInvItemsUp src/Dodge/Update/Input/InGame.hs 348;" 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 @@ -5657,9 +5659,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 71;" f +showManObj src/Dodge/TestString.hs 75;" f showTerminalError src/Dodge/Debug/Terminal.hs 76;" f -showTimeFlow src/Dodge/TestString.hs 120;" f +showTimeFlow src/Dodge/TestString.hs 124;" f shrinkPolyOnEdges src/Geometry/Polygon.hs 136;" f shrinkVert src/Geometry/Polygon.hs 140;" f shuffle src/RandomHelp.hs 49;" f @@ -5716,7 +5718,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 510;" f +spaceAction src/Dodge/Update/Input/InGame.hs 531;" f spanColLightBlackI src/Dodge/Placement/Instance/LightSource.hs 190;" f spanColLightI src/Dodge/Placement/Instance/LightSource.hs 183;" f spanLS src/Dodge/Placement/Instance/LightSource.hs 175;" f @@ -5772,7 +5774,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 247;" f +startDrag src/Dodge/Update/Input/InGame.hs 256;" f startInvList src/Dodge/Creature.hs 109;" f startInventory src/Dodge/Creature.hs 112;" f startNewGameInSlot src/Dodge/StartNewGame.hs 15;" f @@ -5910,8 +5912,8 @@ toggleCombineInv src/Dodge/DisplayInventory.hs 35;" f toggleCommand src/Dodge/Terminal.hs 196;" f toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 79;" f toggleJust src/MaybeHelp.hs 41;" f -toggleMap src/Dodge/Update/Input/InGame.hs 551;" f -toggleTweakInv src/Dodge/Update/Input/InGame.hs 564;" f +toggleMap src/Dodge/Update/Input/InGame.hs 572;" f +toggleTweakInv src/Dodge/Update/Input/InGame.hs 585;" f togglesToEffects src/Dodge/Terminal.hs 248;" f tone440S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 474;" f tone440sawtoothS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 444;" f @@ -5919,7 +5921,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 67;" f +topTestPart src/Dodge/TestString.hs 71;" f torch src/Dodge/Item/Held/Utility.hs 26;" f torchShape src/Dodge/Item/Draw/SPic.hs 213;" f torqueCr src/Dodge/WorldEffect.hs 72;" f @@ -5982,13 +5984,13 @@ trunkDepth src/TreeHelp.hs 161;" f tryAssignHotkey src/Dodge/Creature/YourControl.hs 85;" f tryAttachBulletBelt src/Dodge/Euse.hs 39;" f tryChargeBattery src/Dodge/Euse.hs 42;" f -tryCombine src/Dodge/Update/Input/InGame.hs 573;" f -tryDropSelected src/Dodge/Update/Input/InGame.hs 104;" f +tryCombine src/Dodge/Update/Input/InGame.hs 594;" f +tryDropSelected src/Dodge/Update/Input/InGame.hs 113;" f tryGetChannel src/Sound.hs 96;" f tryGetRootAttachedFromInvID src/Dodge/Inventory/Location.hs 20;" f tryGetRootItemInvID src/Dodge/Inventory/Location.hs 29;" f tryMeleeAttack src/Dodge/Creature/ReaderUpdate.hs 36;" f -tryPickupSelected src/Dodge/Update/Input/InGame.hs 111;" f +tryPickupSelected src/Dodge/Update/Input/InGame.hs 120;" f tryPlay src/Sound.hs 83;" f tryPutFloorItemIDInInv src/Dodge/Inventory/Add.hs 26;" f tryPutItemInInv src/Dodge/Inventory/Add.hs 42;" f @@ -6031,7 +6033,7 @@ updateAllNodes src/TreeHelp.hs 85;" f updateArc src/Dodge/Tesla/Arc.hs 86;" f updateAttachedItems src/Dodge/Creature/State.hs 172;" f updateAutoRecharge src/Dodge/Creature/State.hs 324;" f -updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 445;" f +updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 480;" f updateBarrel src/Dodge/Barreloid.hs 45;" f updateBarreloid src/Dodge/Barreloid.hs 13;" f updateBounds src/Dodge/Update/Camera.hs 245;" f @@ -6042,54 +6044,54 @@ updateCamera src/Dodge/Update/Camera.hs 31;" f updateCloseObjects src/Dodge/Inventory.hs 113;" f updateCloud src/Dodge/Update.hs 721;" f updateClouds src/Dodge/Update.hs 565;" f -updateCombinePositioning src/Dodge/DisplayInventory.hs 40;" f -updateCombineSections src/Dodge/DisplayInventory.hs 46;" f +updateCombinePositioning src/Dodge/DisplayInventory.hs 41;" f +updateCombineSections src/Dodge/DisplayInventory.hs 48;" f updateCreature src/Dodge/Creature/Update.hs 10;" f updateCreatureGroups src/Dodge/Update.hs 508;" f updateCreatureSoundPositions src/Dodge/Update.hs 484;" f updateDebugMessageOffset src/Dodge/Update.hs 92;" f updateDelayedEvents src/Dodge/Update.hs 784;" f -updateDisplaySections src/Dodge/DisplayInventory.hs 126;" f +updateDisplaySections src/Dodge/DisplayInventory.hs 130;" f updateDistortion src/Dodge/Distortion.hs 5;" f updateDistortions src/Dodge/Update.hs 529;" f updateEnergyBall src/Dodge/EnergyBall.hs 45;" f updateEnergyBalls src/Dodge/Update.hs 553;" f -updateEnterRegex src/Dodge/Update/Input/InGame.hs 486;" f +updateEnterRegex src/Dodge/Update/Input/InGame.hs 507;" 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 70;" f updateFlames src/Dodge/Update.hs 550;" f updateFloatingCamera src/Dodge/Update/Camera.hs 36;" f -updateFunctionKey src/Dodge/Update/Input/InGame.hs 336;" f -updateFunctionKeys src/Dodge/Update/Input/InGame.hs 329;" f +updateFunctionKey src/Dodge/Update/Input/InGame.hs 371;" f +updateFunctionKeys src/Dodge/Update/Input/InGame.hs 364;" f updateGusts src/Dodge/Update.hs 704;" f updateHeldRootItem src/Dodge/Creature/State.hs 166;" f updateHumanoid src/Dodge/Humanoid.hs 12;" f updateIMl src/Dodge/Update.hs 498;" f updateIMl' src/Dodge/Update.hs 503;" f updateInGameCamera src/Dodge/Update/Camera.hs 70;" f -updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 389;" f +updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 424;" f updateInstantBullets src/Dodge/Update.hs 642;" f updateInv src/Dodge/Creature/State.hs 151;" f -updateInventoryPositioning src/Dodge/DisplayInventory.hs 87;" f +updateInventoryPositioning src/Dodge/DisplayInventory.hs 89;" f updateItemTargeting src/Dodge/Creature/State.hs 268;" f updateItemWithOrientation src/Dodge/Creature/State.hs 193;" f -updateKeyInGame src/Dodge/Update/Input/InGame.hs 383;" f -updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 371;" f +updateKeyInGame src/Dodge/Update/Input/InGame.hs 418;" f +updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 406;" f updateLampoid src/Dodge/Lampoid.hs 12;" f updateLaser src/Dodge/Laser/Update.hs 13;" f updateLasers src/Dodge/Update.hs 427;" f updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f -updateLongPressInGame src/Dodge/Update/Input/InGame.hs 404;" f +updateLongPressInGame src/Dodge/Update/Input/InGame.hs 439;" f updateMIM src/Dodge/Update.hs 655;" f updateMachine src/Dodge/Machine/Update.hs 19;" f -updateMouseClickInGame src/Dodge/Update/Input/InGame.hs 165;" f +updateMouseClickInGame src/Dodge/Update/Input/InGame.hs 174;" f updateMouseContext src/Dodge/Update.hs 310;" f updateMouseContextGame src/Dodge/Update.hs 315;" f updateMouseHeldInGame src/Dodge/Update/Input/InGame.hs 86;" f updateMouseInGame src/Dodge/Update/Input/InGame.hs 78;" f -updateMouseReleaseInGame src/Dodge/Update/Input/InGame.hs 132;" f +updateMouseReleaseInGame src/Dodge/Update/Input/InGame.hs 141;" f updateMovement src/Dodge/Creature/State.hs 331;" f updateObjCatMaybes src/Dodge/Update.hs 520;" f updateObjMapMaybe src/Dodge/Update.hs 513;" f @@ -6097,8 +6099,8 @@ updatePastWorlds src/Dodge/Update.hs 415;" f updatePosEvent src/Dodge/PosEvent.hs 11;" f updatePosEvents src/Dodge/Update.hs 562;" f updatePreload src/Preload/Update.hs 20;" f -updatePressedButtonsCarte src/Dodge/Update/Input/InGame.hs 346;" f -updatePressedButtonsCarte' src/Dodge/Update/Input/InGame.hs 349;" f +updatePressedButtonsCarte src/Dodge/Update/Input/InGame.hs 381;" f +updatePressedButtonsCarte' src/Dodge/Update/Input/InGame.hs 384;" 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 @@ -6112,8 +6114,8 @@ updateRootItemID src/Dodge/Inventory/Location.hs 35;" f updateScopeZoom src/Dodge/Update/Camera.hs 127;" f updateScopeZoom' src/Dodge/Update/Camera.hs 132;" f updateScrollTestValue src/Dodge/ScrollValue.hs 6;" f -updateSection src/Dodge/DisplayInventory.hs 286;" f -updateSectionsPositioning src/Dodge/DisplayInventory.hs 259;" f +updateSection src/Dodge/DisplayInventory.hs 299;" f +updateSectionsPositioning src/Dodge/DisplayInventory.hs 272;" f updateSeenWalls src/Dodge/Update.hs 673;" f updateShockwave src/Dodge/Shockwave/Update.hs 12;" f updateShockwaves src/Dodge/Update.hs 547;" f