From 896b4525399dd167276159cf8a42ae2828d87f94 Mon Sep 17 00:00:00 2001 From: justin Date: Sun, 24 Nov 2024 09:42:46 +0000 Subject: [PATCH] Refactor section sizing --- ghcidOutput | 31 ++++++ src/Dodge/Data/SelectionList.hs | 2 +- src/Dodge/Default/World.hs | 12 +-- src/Dodge/DisplayInventory.hs | 104 ++++++++++++++++--- tags | 175 ++++++++++++++++---------------- 5 files changed, 214 insertions(+), 110 deletions(-) diff --git a/ghcidOutput b/ghcidOutput index 5eb8f3a6c..96e9d85a1 100644 --- a/ghcidOutput +++ b/ghcidOutput @@ -1,3 +1,34 @@ +/home/justin/Haskell/loop/src/Dodge/DisplayInventory.hs:116:1-20: warning: [GHC-38417] [-Wmissing-signatures] + Top-level binding with no type signature: + displaySectionsSizes :: (Eq a1, Num a1, Num a2) => a1 -> a2 + | +116 | displaySectionsSizes 0 = 10 + | ^^^^^^^^^^^^^^^^^^^^ +/home/justin/Haskell/loop/src/Dodge/DisplayInventory.hs:260:27: warning: [-Wunused-matches] + Defined but not used: ‘f’ + | +260 | updateSectionsPositioning f mselpos allavailablelines lsss sss = + | ^ +/home/justin/Haskell/loop/src/Dodge/DisplayInventory.hs:270:5: warning: [-Wunused-local-binds] + Defined but not used: ‘g’ + | +270 | g k x z = x + | ^ +/home/justin/Haskell/loop/src/Dodge/DisplayInventory.hs:270:7: warning: [-Wunused-matches] + Defined but not used: ‘k’ + | +270 | g k x z = x + | ^ +/home/justin/Haskell/loop/src/Dodge/DisplayInventory.hs:270:11: warning: [-Wunused-matches] + Defined but not used: ‘z’ + | +270 | g k x z = x + | ^ +/home/justin/Haskell/loop/src/Dodge/DisplayInventory.hs:282:1-26: warning: [-Wunused-top-binds] + Defined but not used: ‘updateSectionsPositioning'’ + | +282 | updateSectionsPositioning' f mselpos allavailablelines lsss sss = fromMaybe mempty $ do + | ^^^^^^^^^^^^^^^^^^^^^^^^^^ /home/justin/Haskell/loop/src/Dodge/Update/Input/InGame.hs:128:9-18: warning: [-Wunused-local-binds] Defined but not used: ‘nfreeslots’ | diff --git a/src/Dodge/Data/SelectionList.hs b/src/Dodge/Data/SelectionList.hs index 10434e50d..462fc8b1b 100644 --- a/src/Dodge/Data/SelectionList.hs +++ b/src/Dodge/Data/SelectionList.hs @@ -29,7 +29,7 @@ data SectionCursor = SectionCursor data SelectionSection a = SelectionSection { _ssItems :: IntMap (SelectionItem a) - , _ssMinSize :: Int +-- , _ssMinSize :: Int , _ssOffset :: Int , _ssShownItems :: [Picture] , _ssIndent :: Int diff --git a/src/Dodge/Default/World.hs b/src/Dodge/Default/World.hs index 50b6778e1..08253e649 100644 --- a/src/Dodge/Default/World.hs +++ b/src/Dodge/Default/World.hs @@ -1,5 +1,6 @@ module Dodge.Default.World where +import Color import NewInt import Control.Lens import Data.Graph.Inductive.Graph hiding ((&)) @@ -163,8 +164,6 @@ defaultDisplayInventory :: HUDElement defaultDisplayInventory = DisplayInventory { _subInventory = NoSubInventory --- {_nsSelected = MouseInvNothing --- } , _diSections = defaultInvSections , _diSelection = Just (1,0) , _diSelectionExtra = mempty @@ -175,8 +174,10 @@ defaultDisplayInventory = defaultInvSections :: IM.IntMap (SelectionSection ()) defaultInvSections = IM.fromDistinctAscList $ zip - [-1 ..] - [ defaultFiltSection + [-2 ..] + [ defaultSS & ssDescriptor .~ "STATUS" + & ssItems .~ IM.fromAscList [(0,SelectionItem ["STATUS"] 1 False white 0 ())] + , defaultFiltSection , defaultInvSection , defaultYouSection , defaultFiltSection & ssIndent .~ 2 @@ -188,7 +189,6 @@ defaultSS :: SelectionSection a defaultSS = SelectionSection { _ssItems = mempty - , _ssMinSize = 10 , _ssOffset = 0 , _ssShownItems = [] , _ssIndent = 0 @@ -206,7 +206,6 @@ defaultFiltSection = defaultSS & ssIndent .~ 0 & ssDescriptor .~ "INV" - & ssMinSize .~ 0 defaultInvSection :: SelectionSection () defaultInvSection = @@ -217,5 +216,4 @@ defaultYouSection :: SelectionSection () defaultYouSection = defaultSS & ssIndent .~ 2 - & ssMinSize .~ 1 & ssDescriptor .~ "YOUR STATUS" diff --git a/src/Dodge/DisplayInventory.hs b/src/Dodge/DisplayInventory.hs index d80e89e05..2cf52e963 100644 --- a/src/Dodge/DisplayInventory.hs +++ b/src/Dodge/DisplayInventory.hs @@ -1,10 +1,13 @@ -- {-# OPTIONS_GHC -fno-full-laziness #-} +{-# LANGUAGE TupleSections #-} module Dodge.DisplayInventory ( toggleCombineInv, updateInventoryPositioning, updateCombinePositioning, ) where +import Data.Monoid +import qualified Data.List as List import Dodge.CharacterEnums import Control.Applicative import Control.Lens @@ -48,6 +51,7 @@ updateCombineSections :: IM.IntMap (SelectionSection CombinableItem) updateCombineSections w cfig = updateSectionsPositioning + (const 0) (w ^? hud . hudElement . subInventory . ciSelection . _Just) (getAvailableListLines secondColumnParams cfig) [(0, sclose), (-1, sfclose)] @@ -109,6 +113,10 @@ checkCombineSelectionExists u = fromMaybe u $ do %~ scrollSelectionSections (-1) sss _ -> u +displaySectionsSizes 0 = 10 +displaySectionsSizes 3 = 10 +displaySectionsSizes _ = 2 + updateDisplaySections :: World -> Configuration -> @@ -116,6 +124,7 @@ updateDisplaySections :: IM.IntMap (SelectionSection ()) updateDisplaySections w cfig = updateSectionsPositioning + displaySectionsSizes mselpos (getAvailableListLines (invDisplayParams w) cfig) addorder @@ -200,26 +209,91 @@ displayFreeSlots x = case x of 1 -> "1 FREE SLOT" _ -> show x ++ " FREE SLOTS" +sectionsDesiredLines :: + IM.IntMap (SelectionSection a) -> + IM.IntMap Int +sectionsDesiredLines = fmap $ alaf Sum foldMap _siHeight . _ssItems + +sectionsSizes :: + Int -> -- total available lines + (Int -> Int) -> -- minimum line bounds for each section + [Int] -> -- ordering in which to consider sections (others to be done lowest to highest) + IM.IntMap Int -> -- desired lines + IM.IntMap Int +sectionsSizes x f is sss = doSectionSize extraavailable mintaken is sss mempty + where + mintaken = IM.mapWithKey (\k y -> min (f k) y) sss + --mintaken = IM.mapWithKey (\k y -> f k) sss + extraavailable = x - sum mintaken + +doSectionSize :: + Int -> -- extra available lines + IM.IntMap Int -> -- minimum line bounds for each section + [Int] -> -- ordering in which to consider sections (others to be done lowest to highest) + IM.IntMap Int -> -- desired lines in sections not yet considered + IM.IntMap Int -> -- sections already sized + IM.IntMap Int +doSectionSize extraavailable mintaken is sss done = fromMaybe done $ do + (v,others,k,ks) <- getsecusingis <|> getminsec + minv <- mintaken ^? ix k + let extradesired = v - minv + linesgiven = min extraavailable extradesired + return $ doSectionSize (extraavailable - linesgiven) mintaken ks others $ done + & at k ?~ linesgiven + minv + where + getsecusingis = do + (k,ks) <- List.uncons is + let (my,s') = IM.updateLookupWithKey (\_ _ -> Nothing) k sss + y <- my + return (y,s',k,ks) + getminsec = do + ((k,v),s') <- IM.minViewWithKey sss + return (v,s',k,[]) + updateSectionsPositioning :: + (Int -> Int) -> -- for determining each sections minimum size Maybe (Int, Int) -> Int -> [(Int, IM.IntMap (SelectionItem a))] -> IM.IntMap (SelectionSection a) -> IM.IntMap (SelectionSection a) -updateSectionsPositioning _ _ [] _ = mempty -updateSectionsPositioning mselpos allavailablelines ((k, y) : xs) sss = - IM.insert k ss previoussections +updateSectionsPositioning f mselpos allavailablelines lsss sss = + IM.intersectionWith updateSection ls mss `h` ssizes `h` sss where - mscel = do - (i, j) <- mselpos - guard $ i == k - return j - ss = updateSection y mscel linesleft x - x = sss ^?! ix k - availablelines = allavailablelines - _ssMinSize x - linesleft = allavailablelines - sum (linestaken <$> previoussections) - linestaken ss' = max (length $ _ssShownItems ss') (_ssMinSize ss') - previoussections = updateSectionsPositioning mselpos availablelines xs sss + mss = IM.mapWithKey m sss + m k _ = do + (k',i) <- mselpos + guard $ k == k' + return i + ls = IM.fromList lsss + h = IM.intersectionWith ($) + g k x z = x + lk = fromMaybe [] $ fmap ((:[]) . fst) mselpos + ssizes = sectionsSizes allavailablelines displaySectionsSizes + lk $ sectionsDesiredLines $ IM.intersectionWith (set ssItems) ls sss + +updateSectionsPositioning' :: + (Int -> Int) -> -- for determining each sections minimum size + Maybe (Int, Int) -> + Int -> + [(Int, IM.IntMap (SelectionItem a))] -> + IM.IntMap (SelectionSection a) -> + IM.IntMap (SelectionSection a) +updateSectionsPositioning' f mselpos allavailablelines lsss sss = fromMaybe mempty $ do + ((k, y) , xs) <- List.uncons lsss + x <- sss ^? ix k + let mscel = do + (i, j) <- mselpos + guard $ i == k + return j + let availablelines = allavailablelines - min (f k) (length $ _ssShownItems x) + let previoussections = updateSectionsPositioning f mselpos availablelines xs sss +-- let linestaken (k',ss') = max (length $ _ssShownItems ss') (f k') +-- let linesleft = allavailablelines - sum (linestaken <$> IM.toList $ previoussections) + let linestaken = length . _ssShownItems + let linesleft = allavailablelines - sum (linestaken <$> previoussections) + let ss = updateSection y mscel linesleft x + return $ IM.insert k ss previoussections updateSection :: IM.IntMap (SelectionItem a) -> @@ -301,7 +375,7 @@ enterCombineInv cfig w = filtsection = SelectionSection { _ssItems = mempty - , _ssMinSize = 0 +-- , _ssMinSize = 0 , _ssOffset = 0 , _ssShownItems = mempty , _ssIndent = 0 @@ -314,7 +388,7 @@ enterCombineInv cfig w = availablelines SelectionSection { _ssItems = cm - , _ssMinSize = 5 +-- , _ssMinSize = 5 , _ssOffset = 0 , _ssShownItems = mempty , _ssIndent = 0 diff --git a/tags b/tags index 468fe6e08..456deb811 100644 --- a/tags +++ b/tags @@ -516,7 +516,7 @@ 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 -DisplayInventory src/Dodge/DisplayInventory.hs 2;" m +DisplayInventory src/Dodge/DisplayInventory.hs 3;" m DisplayTerminal src/Dodge/Data/HUD.hs 46;" C Distortion src/Dodge/Data/Distortion.hs 12;" t Distortion src/Dodge/Data/Distortion.hs 6;" m @@ -1349,7 +1349,7 @@ OptionScreen src/Dodge/Data/Universe.hs 78;" C OptionScreenFlag src/Dodge/Data/Universe.hs 68;" t OptionType src/Dodge/Menu/OptionType.hs 2;" m Orientation src/Dodge/Item/Orientation.hs 1;" m -OutAction src/Dodge/Creature/Action.hs 51;" t +OutAction src/Dodge/Creature/Action.hs 50;" t OutLink src/Dodge/Data/Room.hs 43;" C OutPlacement src/Dodge/Data/GenWorld.hs 126;" t Outline src/Dodge/Render/Outline.hs 1;" m @@ -3087,7 +3087,6 @@ _spawnEBT src/Dodge/Data/Bullet.hs 43;" f _ssDescriptor src/Dodge/Data/SelectionList.hs 36;" f _ssIndent src/Dodge/Data/SelectionList.hs 35;" f _ssItems src/Dodge/Data/SelectionList.hs 31;" f -_ssMinSize src/Dodge/Data/SelectionList.hs 32;" f _ssOffset src/Dodge/Data/SelectionList.hs 33;" f _ssShownItems src/Dodge/Data/SelectionList.hs 34;" f _strength src/Dodge/Data/Creature/Misc.hs 21;" f @@ -3346,7 +3345,7 @@ adjustIMZone src/Dodge/Base.hs 77;" f advanceScrollAmount src/Dodge/Update.hs 393;" f advanceSmoothScroll src/Dodge/SmoothScroll.hs 29;" f advanceStepCounter src/Dodge/Creature/Impulse/Movement.hs 45;" f -aimDelaySweep src/Dodge/Render/Picture.hs 230;" f +aimDelaySweep src/Dodge/Render/Picture.hs 233;" f aimStanceInfo src/Dodge/Item/Info.hs 210;" f aimTurn src/Dodge/Creature/YourControl.hs 143;" f aimingMuzzleLength src/Dodge/Creature/HandPos.hs 46;" f @@ -3369,7 +3368,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 77;" 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 @@ -3584,7 +3583,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 99;" f +checkCombineSelectionExists src/Dodge/DisplayInventory.hs 103;" f checkConnection src/Dodge/Inventory.hs 244;" f checkDeath src/Dodge/Creature/State.hs 75;" f checkEndGame src/Dodge/Update.hs 680;" f @@ -3592,7 +3591,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 92;" f +checkInventorySelectionExists src/Dodge/DisplayInventory.hs 96;" f checkTermDist src/Dodge/Update.hs 297;" f checkWallLeft src/Dodge/LevelGen/StaticWalls/Deprecated.hs 29;" f checkWallRight src/Dodge/LevelGen/StaticWalls.hs 54;" f @@ -3655,7 +3654,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 241;" f +collectInvItems src/Dodge/Update/Input/InGame.hs 226;" 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 @@ -3689,7 +3688,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 233;" f +concurrentIS src/Dodge/Update/Input/InGame.hs 218;" f connectItemS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 532;" f connectionBlurb src/Dodge/Terminal.hs 102;" f connectionBlurbLines src/Dodge/Terminal.hs 47;" f @@ -3877,9 +3876,9 @@ defaultBullet src/Dodge/Item/Weapon/Bullet.hs 10;" f defaultBulletWeapon src/Dodge/Default/Item.hs 47;" f defaultButton src/Dodge/Default.hs 51;" f defaultCOSection src/Dodge/Default/World.hs 198;" f -defaultCWCam src/Dodge/Default/World.hs 67;" f -defaultCWGen src/Dodge/Default/World.hs 57;" f -defaultCWorld src/Dodge/Default/World.hs 82;" f +defaultCWCam src/Dodge/Default/World.hs 68;" f +defaultCWGen src/Dodge/Default/World.hs 58;" f +defaultCWorld src/Dodge/Default/World.hs 83;" f defaultChaseMvType src/Dodge/Default/Creature.hs 113;" f defaultClusterStatus src/Dodge/Default/Room.hs 38;" f defaultConfig src/Dodge/Data/Config.hs 125;" f @@ -3893,7 +3892,7 @@ defaultCreatureTargeting src/Dodge/Default/Creature.hs 63;" f defaultCrystalWall src/Dodge/Default/Wall.hs 40;" f defaultDirtBlock src/Dodge/Default/Block.hs 19;" f defaultDirtWall src/Dodge/Default/Wall.hs 61;" f -defaultDisplayInventory src/Dodge/Default/World.hs 162;" f +defaultDisplayInventory src/Dodge/Default/World.hs 163;" f defaultDoor src/Dodge/Default/Door.hs 29;" f defaultDoorWall src/Dodge/Default/Wall.hs 32;" f defaultDrawButton src/Dodge/Button/Draw.hs 28;" f @@ -3903,22 +3902,22 @@ defaultEquipment src/Dodge/Default.hs 27;" f defaultFiltSection src/Dodge/Default/World.hs 204;" f defaultFlIt src/Dodge/Default.hs 30;" f defaultForeground src/Dodge/Default/ForegroundShape.hs 5;" f -defaultHUD src/Dodge/Default/World.hs 152;" f +defaultHUD src/Dodge/Default/World.hs 153;" f defaultHeldItem src/Dodge/Default/Item.hs 24;" f defaultHeldUse src/Dodge/Default/Item/Use.hs 28;" f defaultImpulsive src/Dodge/Humanoid.hs 190;" f defaultInanimate src/Dodge/Default/Creature.hs 69;" f -defaultInput src/Dodge/Default/World.hs 14;" f +defaultInput src/Dodge/Default/World.hs 15;" f defaultIntention src/Dodge/Default/Creature.hs 105;" f -defaultInvSection src/Dodge/Default/World.hs 211;" f -defaultInvSections src/Dodge/Default/World.hs 175;" f +defaultInvSection src/Dodge/Default/World.hs 210;" f +defaultInvSections src/Dodge/Default/World.hs 174;" f defaultInvSize src/Dodge/Default/Creature.hs 79;" f defaultItEffect src/Dodge/Default/Item.hs 55;" f defaultItEffect src/Dodge/Default/Item/Effect.hs 5;" f defaultItZoom src/Dodge/Default/Item/Use/AimParams.hs 30;" f defaultItemDimension src/Dodge/Default/Item.hs 17;" f defaultLS src/Dodge/Default/LightSource.hs 6;" f -defaultLWorld src/Dodge/Default/World.hs 94;" f +defaultLWorld src/Dodge/Default/World.hs 95;" f defaultLeftItem src/Dodge/Default/Item.hs 38;" f defaultLeftLoadable src/Dodge/Default/Item/Use/Consumption.hs 8;" f defaultLeftUse src/Dodge/Default/Item/Use.hs 14;" f @@ -3930,7 +3929,7 @@ defaultPerceptionState src/Dodge/Default/Creature.hs 82;" f defaultProp src/Dodge/Default/Prop.hs 6;" f defaultProximitySensor src/Dodge/Default.hs 80;" f defaultRoom src/Dodge/Default/Room.hs 9;" f -defaultSS src/Dodge/Default/World.hs 187;" f +defaultSS src/Dodge/Default/World.hs 188;" f defaultSelectionList src/Dodge/Default/SelectionList.hs 5;" f defaultSensorWall src/Dodge/Default/Wall.hs 58;" f defaultState src/Dodge/Default/Creature.hs 140;" f @@ -3941,8 +3940,8 @@ defaultTerminalInput src/Dodge/Default/Terminal.hs 32;" f defaultVision src/Dodge/Default/Creature.hs 92;" f defaultWall src/Dodge/Default/Wall.hs 10;" f defaultWindow src/Dodge/Default/Wall.hs 74;" f -defaultWorld src/Dodge/Default/World.hs 34;" f -defaultYouSection src/Dodge/Default/World.hs 216;" f +defaultWorld src/Dodge/Default/World.hs 35;" f +defaultYouSection src/Dodge/Default/World.hs 215;" f defocusTerminalInput src/Dodge/Terminal/LeftButton.hs 21;" f degToRad src/Geometry/Vector.hs 117;" f deleteIMInZone src/Dodge/Base.hs 70;" f @@ -3984,7 +3983,8 @@ 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 197;" f +displayFreeSlots src/Dodge/DisplayInventory.hs 206;" f +displaySectionsSizes src/Dodge/DisplayInventory.hs 116;" f displayTerminalLineString src/Dodge/Update.hs 422;" f dist src/Geometry/Vector.hs 179;" f dist3 src/Geometry/Vector3D.hs 101;" f @@ -4042,12 +4042,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 403;" f +doRegexInput src/Dodge/Update/Input/InGame.hs 353;" 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 228;" f doSideEffects appDodge/Main.hs 118;" f doStep src/Dodge/ArcStep.hs 9;" f doStrategyActions src/Dodge/Creature/ReaderUpdate.hs 164;" f @@ -4082,7 +4083,6 @@ doublePair src/Geometry.hs 149;" f doublePairSet src/Geometry.hs 153;" f doubleTreeToIndentList src/Dodge/DoubleTree.hs 72;" f doubleV2 src/Geometry.hs 156;" f -dragInvItems src/Dodge/Update/Input/InGame.hs 218;" f drawAllShadows src/Dodge/Shadows.hs 5;" f drawAugmentedHUD src/Dodge/Creature/State.hs 210;" f drawBaseMachine src/Dodge/Machine/Draw.hs 57;" f @@ -4096,8 +4096,8 @@ drawCPUShadows src/Dodge/Render/Shadow.hs 19;" f drawCarte src/Dodge/Render/HUD/Carte.hs 14;" f drawCircFlare src/Dodge/Flare.hs 25;" f drawCollisionTest src/Dodge/Debug/Picture.hs 103;" f -drawCombFilter src/Dodge/Render/Picture.hs 211;" f -drawCombFilterJump src/Dodge/Render/Picture.hs 154;" f +drawCombFilter src/Dodge/Render/Picture.hs 214;" f +drawCombFilterJump src/Dodge/Render/Picture.hs 157;" f drawCombineInventory src/Dodge/Render/HUD.hs 164;" f drawConcurrentMessage src/Dodge/Render/Picture.hs 62;" f drawCorpse src/Dodge/Corpse/Draw.hs 6;" f @@ -4110,13 +4110,13 @@ drawCursorAt src/Dodge/Render/List.hs 70;" f drawDDATest src/Dodge/Debug/Picture.hs 256;" f drawDoorPaths src/Dodge/Debug/Picture.hs 217;" f drawDoubleLampCover src/Dodge/Prop/Draw.hs 81;" f -drawDrag src/Dodge/Render/Picture.hs 161;" f -drawDragDrop src/Dodge/Render/Picture.hs 172;" f -drawDragPickup src/Dodge/Render/Picture.hs 181;" 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 145;" f -drawDragSelect src/Dodge/Render/Picture.hs 158;" f +drawDragSelect src/Dodge/Render/Picture.hs 161;" f drawDragSelected src/Dodge/Render/HUD.hs 134;" f -drawEmptySet src/Dodge/Render/Picture.hs 109;" 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 178;" f @@ -4126,7 +4126,7 @@ drawFlamelet src/Dodge/EnergyBall/Draw.hs 23;" f drawFlare src/Dodge/Flare.hs 12;" f drawFooterText src/Dodge/Render/MenuScreen.hs 74;" f drawForceField src/Dodge/Wall/Draw.hs 11;" f -drawGapPlus src/Dodge/Render/Picture.hs 221;" f +drawGapPlus src/Dodge/Render/Picture.hs 224;" f drawGib src/Dodge/Prop/Draw.hs 28;" f drawHP src/Dodge/Render/HUD.hs 54;" f drawHUD src/Dodge/Render/HUD.hs 46;" f @@ -4145,8 +4145,8 @@ drawListYgapScaleYoff src/Dodge/Render/List.hs 98;" f drawListYoff src/Dodge/Render/List.hs 95;" f drawMachine src/Dodge/Machine/Draw.hs 17;" f drawMapWall src/Dodge/Render/HUD/Carte.hs 33;" f -drawMenuClick src/Dodge/Render/Picture.hs 129;" f -drawMenuCursor src/Dodge/Render/Picture.hs 142;" f +drawMenuClick src/Dodge/Render/Picture.hs 132;" f +drawMenuCursor src/Dodge/Render/Picture.hs 145;" f drawMenuOrHUD src/Dodge/Render/Picture.hs 57;" f drawMenuScreen src/Dodge/Render/MenuScreen.hs 15;" f drawMouseCursor src/Dodge/Render/Picture.hs 73;" f @@ -4159,7 +4159,7 @@ drawOptions src/Dodge/Render/MenuScreen.hs 35;" f drawPathBetween src/Dodge/Debug/Picture.hs 168;" f drawPathEdge src/Dodge/Debug/Picture.hs 222;" f drawPathing src/Dodge/Debug/Picture.hs 384;" f -drawPlus src/Dodge/Render/Picture.hs 126;" f +drawPlus src/Dodge/Render/Picture.hs 129;" f drawPointLabel src/Dodge/Render/Label.hs 13;" f drawProjectile src/Dodge/Projectile/Draw.hs 13;" f drawProp src/Dodge/Prop/Draw.hs 15;" f @@ -4167,11 +4167,11 @@ drawProp' src/Dodge/Prop/Draw.hs 12;" f drawRBOptions src/Dodge/Render/HUD.hs 222;" f drawRadarSweep src/Dodge/RadarSweep/Draw.hs 7;" f drawRemoteShell src/Dodge/Projectile/Draw.hs 30;" f -drawReturn src/Dodge/Render/Picture.hs 115;" f +drawReturn src/Dodge/Render/Picture.hs 118;" f drawRootCursor src/Dodge/Render/HUD.hs 78;" f drawSSCursor src/Dodge/SelectionSections/Draw.hs 30;" f drawSSMultiCursor src/Dodge/SelectionSections/Draw.hs 41;" f -drawSelect src/Dodge/Render/Picture.hs 200;" f +drawSelect src/Dodge/Render/Picture.hs 203;" f drawSelectionList src/Dodge/Render/List.hs 35;" f drawSelectionListBackground src/Dodge/Render/List.hs 51;" f drawSelectionSections src/Dodge/SelectionSections/Draw.hs 17;" f @@ -4184,7 +4184,7 @@ drawShockwave src/Dodge/Shockwave/Draw.hs 7;" f drawSpark src/Dodge/Spark/Draw.hs 6;" f drawStaticBall src/Dodge/EnergyBall/Draw.hs 14;" f drawSubInventory src/Dodge/Render/HUD.hs 156;" f -drawSweep src/Dodge/Render/Picture.hs 237;" f +drawSweep src/Dodge/Render/Picture.hs 240;" f drawSwitch src/Dodge/Button/Draw.hs 15;" f drawSwitchWire src/Dodge/LevelGen/Switch.hs 28;" f drawTargetLaser src/Dodge/Particle/Draw.hs 6;" f @@ -4208,9 +4208,8 @@ drawZoneCol src/Dodge/Debug/Picture.hs 117;" f drawZoneNearPointCursor src/Dodge/Debug/Picture.hs 249;" f droneLauncher src/Dodge/Item/Weapon/Drone.hs 11;" f dropByState src/Dodge/Creature/State.hs 118;" f -dropExcept src/Dodge/Creature/Action.hs 172;" f -dropItem src/Dodge/Creature/Action.hs 178;" f -dropSelected src/Dodge/Update/Input/InGame.hs 116;" f +dropExcept src/Dodge/Creature/Action.hs 171;" f +dropItem src/Dodge/Creature/Action.hs 177;" f drumMag src/Dodge/Item/Ammo.hs 48;" f dtIL src/Dodge/DoubleTree.hs 75;" f dtToAdjRootParent src/Dodge/DoubleTree.hs 126;" f @@ -4235,7 +4234,7 @@ encircle src/Dodge/Creature/Boid.hs 115;" f encircleCloseP src/Dodge/Creature/Boid.hs 35;" f encircleDistP src/Dodge/Creature/Boid.hs 21;" f encircleP src/Dodge/Creature/Boid.hs 27;" f -enterCombineInv src/Dodge/DisplayInventory.hs 281;" f +enterCombineInv src/Dodge/DisplayInventory.hs 354;" f eqConstr src/SameConstr.hs 17;" f eqPosText src/Dodge/Equipment/Text.hs 6;" f equipAllocString src/Dodge/Render/HUD.hs 280;" f @@ -4284,7 +4283,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 163;" f +filterSectionsPair src/Dodge/DisplayInventory.hs 172;" f findBlips src/Dodge/RadarSweep.hs 44;" f findBoundDists src/Dodge/Update/Camera.hs 235;" f findClosePoint src/Dodge/LevelGen/StaticWalls.hs 155;" f @@ -4596,7 +4595,7 @@ interweave src/Justify.hs 17;" f intsToPos src/Dodge/Room/Modify/Girder.hs 160;" f invAdj src/Dodge/Item/Grammar.hs 188;" f invCursorParams src/Dodge/ListDisplayParams.hs 38;" f -invDimColor src/Dodge/DisplayInventory.hs 191;" f +invDimColor src/Dodge/DisplayInventory.hs 200;" f invDisplayParams src/Dodge/ListDisplayParams.hs 32;" f invHead src/Dodge/Render/HUD.hs 377;" f invLDT src/Dodge/Item/Grammar.hs 171;" f @@ -4771,7 +4770,7 @@ listConfig src/Dodge/Menu.hs 199;" f listControls src/Dodge/Menu.hs 212;" f listCursorChooseBorderScale src/Dodge/Render/List.hs 139;" f listGuard src/Dodge/Creature/ReaderUpdate.hs 188;" f -listSelectionColorPicture src/Dodge/DisplayInventory.hs 273;" f +listSelectionColorPicture src/Dodge/DisplayInventory.hs 346;" 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 @@ -4908,7 +4907,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 563;" f +maybeExitCombine src/Dodge/Update/Input/InGame.hs 513;" f maybeOpenTerminal src/Dodge/Update.hs 123;" f maybeReadFile src/Dodge/LoadSeed.hs 10;" f maybeTakeOne src/RandomHelp.hs 111;" f @@ -5087,7 +5086,7 @@ optionScreenUpdate src/Dodge/Update/Input/ScreenLayer.hs 41;" f optionValueOffset src/Dodge/Menu/Option.hs 100;" f optionsOptions src/Dodge/Menu.hs 108;" f optionsToSelections src/Dodge/Menu/Option.hs 51;" f -orRegex src/Dodge/DisplayInventory.hs 80;" 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 @@ -5133,7 +5132,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 499;" f +pauseGame src/Dodge/Update/Input/InGame.hs 449;" f pauseMenu src/Dodge/Menu.hs 53;" f pauseMenuOptions src/Dodge/Menu.hs 58;" f pauseSound src/Dodge/SoundLogic.hs 41;" f @@ -5144,11 +5143,11 @@ pedestalRoom src/Dodge/Room/Containing.hs 50;" f penThing src/Dodge/Bullet.hs 224;" f perMat src/MatrixHelper.hs 49;" f perceptionUpdate src/Dodge/Creature/Perception.hs 22;" f -performAction src/Dodge/Creature/Action.hs 97;" f -performActions src/Dodge/Creature/Action.hs 43;" f -performAimAt src/Dodge/Creature/Action.hs 53;" f -performPathTo src/Dodge/Creature/Action.hs 66;" f -performTurnToA src/Dodge/Creature/Action.hs 84;" f +performAction src/Dodge/Creature/Action.hs 96;" f +performActions src/Dodge/Creature/Action.hs 42;" f +performAimAt src/Dodge/Creature/Action.hs 52;" f +performPathTo src/Dodge/Creature/Action.hs 65;" f +performTurnToA src/Dodge/Creature/Action.hs 83;" f perspectiveMatrixb src/MatrixHelper.hs 11;" f pesNearCirc src/Dodge/Zoning/Pathing.hs 43;" f pesNearPoint src/Dodge/Zoning/Pathing.hs 33;" f @@ -5190,7 +5189,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 194;" f +plainRegex src/Dodge/DisplayInventory.hs 203;" f plateCraft src/Dodge/Item/Craftable.hs 45;" f playIfFree src/Sound.hs 136;" f playPositionalSoundQueue src/Sound.hs 144;" f @@ -5418,9 +5417,9 @@ 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 67;" f +regexCombs src/Dodge/DisplayInventory.hs 71;" f regexIn src/Regex.hs 4;" f -regexList src/Dodge/DisplayInventory.hs 324;" f +regexList src/Dodge/DisplayInventory.hs 397;" f regexList src/Regex.hs 7;" f reload1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 442;" f reloadLevelStart src/Dodge/Save.hs 71;" f @@ -5591,6 +5590,8 @@ 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 212;" f +sectionsSizes src/Dodge/DisplayInventory.hs 217;" f seedStartMenu src/Dodge/Menu.hs 79;" f seedStartOptions src/Dodge/Menu.hs 82;" f segOnCirc src/Geometry.hs 116;" f @@ -5631,7 +5632,7 @@ setItemCharge src/Dodge/ItEffect.hs 39;" f setLayer src/Picture/Base.hs 139;" f setLinkType src/Dodge/RoomLink.hs 60;" f setLinkTypePD src/Dodge/RoomLink.hs 67;" f -setMinInvSize src/Dodge/Creature/Action.hs 150;" f +setMinInvSize src/Dodge/Creature/Action.hs 149;" f setMusicVolume src/Sound.hs 161;" f setMvPos src/Dodge/Creature/ReaderUpdate.hs 51;" f setOldPos src/Dodge/Update.hs 446;" f @@ -5689,10 +5690,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 279;" f -shiftInvItems' src/Dodge/Update/Input/InGame.hs 250;" f -shiftInvItemsDown src/Dodge/Update/Input/InGame.hs 312;" f -shiftInvItemsUp src/Dodge/Update/Input/InGame.hs 306;" f +shiftInvItems src/Dodge/Update/Input/InGame.hs 235;" f +shiftInvItemsDown src/Dodge/Update/Input/InGame.hs 262;" f +shiftInvItemsUp src/Dodge/Update/Input/InGame.hs 256;" 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 @@ -5755,7 +5755,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 201;" f +sizeSelf src/Dodge/Creature/Action.hs 200;" f skwareFadeTwoSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 378;" f slideDoorS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 510;" f slideWindow src/ListHelp.hs 80;" f @@ -5791,7 +5791,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 502;" f +spaceAction src/Dodge/Update/Input/InGame.hs 452;" 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 @@ -5985,12 +5985,12 @@ toTopLeft src/Dodge/Render/List.hs 223;" f toV2 src/Geometry/Data.hs 36;" f toV3 src/Geometry/Data.hs 38;" f toV4 src/Geometry/Data.hs 40;" f -toggleCombineInv src/Dodge/DisplayInventory.hs 31;" f +toggleCombineInv src/Dodge/DisplayInventory.hs 34;" 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 526;" f -toggleTweakInv src/Dodge/Update/Input/InGame.hs 540;" f +toggleMap src/Dodge/Update/Input/InGame.hs 476;" f +toggleTweakInv src/Dodge/Update/Input/InGame.hs 490;" f togglesToEffects src/Dodge/Terminal.hs 248;" f tone440S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 474;" f tone440sawtoothS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 444;" f @@ -6061,13 +6061,13 @@ 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 549;" f -tryDropSelected src/Dodge/Update/Input/InGame.hs 123;" f +tryCombine src/Dodge/Update/Input/InGame.hs 499;" f +tryDropSelected src/Dodge/Update/Input/InGame.hs 116;" 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 130;" f +tryPickupSelected src/Dodge/Update/Input/InGame.hs 124;" f tryPlay src/Sound.hs 83;" f tryPutFloorItemIDInInv src/Dodge/Inventory/Add.hs 23;" f tryPutItemInInv src/Dodge/Inventory/Add.hs 29;" f @@ -6109,7 +6109,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 437;" f +updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 387;" f updateBarrel src/Dodge/Barreloid.hs 45;" f updateBarreloid src/Dodge/Barreloid.hs 13;" f updateBounds src/Dodge/Update/Camera.hs 245;" f @@ -6120,19 +6120,19 @@ updateCamera src/Dodge/Update/Camera.hs 31;" f updateCloseObjects src/Dodge/Inventory.hs 126;" f updateCloud src/Dodge/Update.hs 708;" f updateClouds src/Dodge/Update.hs 552;" f -updateCombinePositioning src/Dodge/DisplayInventory.hs 38;" f -updateCombineSections src/Dodge/DisplayInventory.hs 44;" f +updateCombinePositioning src/Dodge/DisplayInventory.hs 41;" f +updateCombineSections src/Dodge/DisplayInventory.hs 47;" f updateCreature src/Dodge/Creature/Update.hs 10;" f updateCreatureGroups src/Dodge/Update.hs 492;" f updateCreatureSoundPositions src/Dodge/Update.hs 468;" f updateDebugMessageOffset src/Dodge/Update.hs 92;" f updateDelayedEvents src/Dodge/Update.hs 771;" f -updateDisplaySections src/Dodge/DisplayInventory.hs 112;" f +updateDisplaySections src/Dodge/DisplayInventory.hs 120;" f updateDistortion src/Dodge/Distortion.hs 5;" f updateDistortions src/Dodge/Update.hs 513;" f updateEnergyBall src/Dodge/EnergyBall.hs 46;" f updateEnergyBalls src/Dodge/Update.hs 540;" f -updateEnterRegex src/Dodge/Update/Input/InGame.hs 478;" f +updateEnterRegex src/Dodge/Update/Input/InGame.hs 428;" f updateExpBarrel src/Dodge/Barreloid.hs 19;" f updateFBOTO src/Framebuffer/Update.hs 97;" f updateFBOTO3 src/Framebuffer/Update.hs 131;" f @@ -6140,35 +6140,35 @@ updateFlame src/Dodge/Flame.hs 71;" f updateFlames src/Dodge/Update.hs 537;" f updateFlare src/Dodge/Flare.hs 7;" f updateFloatingCamera src/Dodge/Update/Camera.hs 36;" f -updateFunctionKey src/Dodge/Update/Input/InGame.hs 329;" f -updateFunctionKeys src/Dodge/Update/Input/InGame.hs 322;" f +updateFunctionKey src/Dodge/Update/Input/InGame.hs 279;" f +updateFunctionKeys src/Dodge/Update/Input/InGame.hs 272;" f updateGusts src/Dodge/Update.hs 691;" f updateHeldRootItem src/Dodge/Creature/State.hs 167;" f updateHumanoid src/Dodge/Humanoid.hs 12;" f updateIMl src/Dodge/Update.hs 482;" f updateIMl' src/Dodge/Update.hs 487;" f updateInGameCamera src/Dodge/Update/Camera.hs 70;" f -updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 382;" f +updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 332;" f updateInstantBullets src/Dodge/Update.hs 629;" f updateInv src/Dodge/Creature/State.hs 152;" f -updateInventoryPositioning src/Dodge/DisplayInventory.hs 85;" f +updateInventoryPositioning src/Dodge/DisplayInventory.hs 89;" f updateItemTargeting src/Dodge/Creature/State.hs 268;" f updateItemWithOrientation src/Dodge/Creature/State.hs 194;" f -updateKeyInGame src/Dodge/Update/Input/InGame.hs 376;" f -updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 364;" f +updateKeyInGame src/Dodge/Update/Input/InGame.hs 326;" f +updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 314;" f updateLampoid src/Dodge/Lampoid.hs 12;" f updateLaser src/Dodge/Laser/Update.hs 13;" f updateLasers src/Dodge/Update.hs 411;" f updateLightSources src/Dodge/Update.hs 516;" f updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f -updateLongPressInGame src/Dodge/Update/Input/InGame.hs 397;" f +updateLongPressInGame src/Dodge/Update/Input/InGame.hs 347;" f updateMIM src/Dodge/Update.hs 642;" f updateMachine src/Dodge/Machine/Update.hs 19;" f updateMouseClickInGame src/Dodge/Update/Input/InGame.hs 160;" f updateMouseContext src/Dodge/Update.hs 307;" f updateMouseHeldInGame src/Dodge/Update/Input/InGame.hs 96;" f updateMouseInGame src/Dodge/Update/Input/InGame.hs 88;" f -updateMouseReleaseInGame src/Dodge/Update/Input/InGame.hs 138;" f +updateMouseReleaseInGame src/Dodge/Update/Input/InGame.hs 135;" f updateMovement src/Dodge/Creature/State.hs 331;" f updateObjCatMaybes src/Dodge/Update.hs 504;" f updateObjMapMaybe src/Dodge/Update.hs 497;" f @@ -6176,8 +6176,8 @@ updatePastWorlds src/Dodge/Update.hs 399;" f updatePosEvent src/Dodge/PosEvent.hs 11;" f updatePosEvents src/Dodge/Update.hs 549;" f updatePreload src/Preload/Update.hs 20;" f -updatePressedButtonsCarte src/Dodge/Update/Input/InGame.hs 339;" f -updatePressedButtonsCarte' src/Dodge/Update/Input/InGame.hs 342;" f +updatePressedButtonsCarte src/Dodge/Update/Input/InGame.hs 289;" f +updatePressedButtonsCarte' src/Dodge/Update/Input/InGame.hs 292;" 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 @@ -6191,8 +6191,9 @@ 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 224;" f -updateSectionsPositioning src/Dodge/DisplayInventory.hs 203;" f +updateSection src/Dodge/DisplayInventory.hs 297;" f +updateSectionsPositioning src/Dodge/DisplayInventory.hs 252;" f +updateSectionsPositioning' src/Dodge/DisplayInventory.hs 274;" f updateSeenWalls src/Dodge/Update.hs 660;" f updateShockwave src/Dodge/Shockwave/Update.hs 12;" f updateShockwaves src/Dodge/Update.hs 534;" f @@ -6369,7 +6370,7 @@ 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 187;" f +youDropItem src/Dodge/Creature/Action.hs 186;" f yourAugmentedItem src/Dodge/Render/HUD.hs 216;" f yourControl src/Dodge/Creature/YourControl.hs 22;" f yourDefaultSpeed src/Dodge/Default/Creature.hs 134;" f