diff --git a/ghcidOutput b/ghcidOutput index 08836bd36..5f11e0a0e 100644 --- a/ghcidOutput +++ b/ghcidOutput @@ -1 +1,5 @@ -All good (594 modules, at 09:55:51) +/home/justin/Haskell/loop/src/Dodge/DisplayInventory.hs:20:1-33: warning: [-Wunused-imports] + The import of ‘Dodge.Inventory.CheckSlots’ is redundant + | +20 | import Dodge.Inventory.CheckSlots + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/src/Dodge/DisplayInventory.hs b/src/Dodge/DisplayInventory.hs index b2ecf232e..6772bd85f 100644 --- a/src/Dodge/DisplayInventory.hs +++ b/src/Dodge/DisplayInventory.hs @@ -5,6 +5,7 @@ module Dodge.DisplayInventory ( updateCombinePositioning, ) where +import Dodge.Inventory import Control.Lens import Control.Monad import qualified Data.IntMap.Strict as IM @@ -79,8 +80,13 @@ updateInventoryPositioning u = %~ updateDisplaySections (_uvWorld u) (_uvConfig u) & checkInventorySelectionExists +-- this is possibly not completely correct checkInventorySelectionExists :: Universe -> Universe -checkInventorySelectionExists u = u +checkInventorySelectionExists u = fromMaybe u $ do + (i,j) <- u ^? uvWorld . hud . hudElement . diSelection . _Just + Just $ case u ^? uvWorld . hud . hudElement . diSections . ix i . ssItems . ix j of + Nothing -> u & uvWorld %~ scrollAugNextInSection + _ -> u updateDisplaySections :: World -> diff --git a/src/Dodge/Inventory.hs b/src/Dodge/Inventory.hs index 29b1a652b..928174510 100644 --- a/src/Dodge/Inventory.hs +++ b/src/Dodge/Inventory.hs @@ -13,6 +13,7 @@ module Dodge.Inventory ( setInvPosFromSS, module Dodge.Inventory.RBList, swapInvItems, + scrollAugNextInSection, ) where import Control.Applicative @@ -236,6 +237,17 @@ scrollAugInvSel yi w sss <- he ^? diSections return $ he & diSelection %~ scrollSelectionSections yi sss +scrollAugNextInSection :: World -> World +scrollAugNextInSection w = + w & hud . hudElement %~ doscroll + & worldEventFlags . at InventoryChange ?~ () + & setInvPosFromSS + & cWorld . lWorld %~ crUpdateItemLocations 0 + where + doscroll he = fromMaybe he $ do + sss <- he ^? diSections + return $ he & diSelection %~ nextInSectionSS sss + selectedCloseObject :: World -> Maybe (Either FloorItem Button) selectedCloseObject w = do i <- diff --git a/src/Dodge/SelectionSections.hs b/src/Dodge/SelectionSections.hs index 9a327e0cc..05f345732 100644 --- a/src/Dodge/SelectionSections.hs +++ b/src/Dodge/SelectionSections.hs @@ -1,5 +1,6 @@ module Dodge.SelectionSections ( scrollSelectionSections, + nextInSectionSS, ssLookupDown, ssLookupGT, ssSetCursor, @@ -35,6 +36,12 @@ scrollSelectionSections yi sss msel | yi > 0 = foldl' (&) msel $ replicate yi (ssScrollUsing ssLookupUp sss) | otherwise = foldl' (&) msel $ replicate (negate yi) (ssScrollUsing ssLookupDown sss) +nextInSectionSS :: + IM.IntMap (SelectionSection a) -> + Maybe (Int, Int) -> + Maybe (Int, Int) +nextInSectionSS sss = ssScrollUsing ssLookupNextMax sss + --setFirstPosSelectionSections :: SelectionSections a -> SelectionSections a --setFirstPosSelectionSections sss = fromMaybe sss $ do -- (i, j, _) <- ssLookupMin sss @@ -93,6 +100,22 @@ ssLookupDown i j sss = case ssLookupGT i j sss of Nothing -> ssLookupMin sss x -> x +ssLookupNextMax :: + Int -> + Int -> + IM.IntMap (SelectionSection a) -> + Maybe (Int, Int, SelectionItem a) +ssLookupNextMax i j sss = case ssLookupGT i j sss of + Just x@(i',j',_) | i' == i && j' > j -> Just x + _ -> ssLookupMaxInSection i sss <|> ssLookupDown i j sss + +ssLookupMaxInSection :: Int -> IM.IntMap (SelectionSection a) -> + Maybe (Int, Int, SelectionItem a) +ssLookupMaxInSection i sss = do + ss <- sss ^? ix i . ssItems + (j,s) <- IM.lookupMax ss + return (i,j,s) + ssLookupLT :: Int -> Int -> diff --git a/tags b/tags index 361934114..119d5a7ed 100644 --- a/tags +++ b/tags @@ -691,7 +691,7 @@ FetchItem src/Dodge/Data/Scenario.hs 11;" C Fixated src/Dodge/Data/Creature/Perception.hs 62;" C FixedCoordLayer src/Picture/Data.hs 28;" C FixedRate src/Dodge/Data/Item/HeldDelay.hs 15;" C -FixedSelectionWidth src/Dodge/Data/SelectionList.hs 48;" C +FixedSelectionWidth src/Dodge/Data/SelectionList.hs 47;" C FlIt src/Dodge/Data/FloorItem.hs 16;" C Flame src/Dodge/Data/Flame.hs 14;" t Flame src/Dodge/Data/Flame.hs 6;" m @@ -866,7 +866,7 @@ Humanoid src/Dodge/Data/Creature/Misc.hs 65;" C Humanoid src/Dodge/Humanoid.hs 1;" m HumanoidAI src/Dodge/Data/Creature/Misc.hs 48;" t ILink src/Dodge/Data/ComposedItem.hs 51;" C -IMSS src/Dodge/Data/SelectionList.hs 45;" t +IMSS src/Dodge/Data/SelectionList.hs 44;" t INVISIBILITYEQUIPMENT src/Dodge/Data/Item/Combine.hs 105;" C IRONBAR src/Dodge/Data/Item/Combine.hs 57;" C ITEMDETECTOR src/Dodge/Data/Item/Combine.hs 169;" C @@ -1667,8 +1667,8 @@ SelNothing src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 28;" C SelectUse src/Dodge/SelectUse.hs 1;" m Select_creature src/Dodge/Data/Config.hs 92;" C SelectedItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 23;" C -SelectionInfo src/Dodge/Data/SelectionList.hs 61;" C -SelectionItem src/Dodge/Data/SelectionList.hs 52;" t +SelectionInfo src/Dodge/Data/SelectionList.hs 60;" C +SelectionItem src/Dodge/Data/SelectionList.hs 51;" t SelectionList src/Dodge/Data/SelectionList.hs 24;" t SelectionList src/Dodge/Data/SelectionList.hs 4;" m SelectionList src/Dodge/Default/SelectionList.hs 1;" m @@ -1676,7 +1676,7 @@ SelectionList src/Dodge/Inventory/SelectionList.hs 3;" m SelectionList src/Dodge/SelectionList.hs 1;" m SelectionSection src/Dodge/Data/SelectionList.hs 35;" t SelectionSections src/Dodge/SelectionSections.hs 1;" m -SelectionWidth src/Dodge/Data/SelectionList.hs 47;" t +SelectionWidth src/Dodge/Data/SelectionList.hs 46;" t SelfTree src/Dodge/Tree/Compose/Data.hs 12;" t Sensor src/Dodge/Data/Machine/Sensor.hs 16;" t Sensor src/Dodge/Data/Machine/Sensor.hs 6;" m @@ -2018,7 +2018,7 @@ UseHeld src/Dodge/Data/Item/Use.hs 36;" C UseHotkey src/Dodge/Data/Item/Use.hs 44;" C UseItem src/Dodge/Data/ActionPlan.hs 37;" C UseItem src/Dodge/Creature/Impulse/UseItem.hs 1;" m -UseMaxSelectionItemWidth src/Dodge/Data/SelectionList.hs 50;" C +UseMaxSelectionItemWidth src/Dodge/Data/SelectionList.hs 49;" C UseMvTargetPos src/Dodge/Data/ActionPlan.hs 163;" C UseScope src/Dodge/Data/Item/Use.hs 60;" C UseSelf src/Dodge/Data/ActionPlan.hs 157;" C @@ -2032,7 +2032,7 @@ VBO src/Shader/Data.hs 81;" t VF src/Polyhedra/Data.hs 21;" t VIOLET src/Color/Data.hs 22;" C VOLLEYGUN src/Dodge/Data/Item/Combine.hs 139;" C -VariableSelectionWidth src/Dodge/Data/SelectionList.hs 49;" C +VariableSelectionWidth src/Dodge/Data/SelectionList.hs 48;" C Vector src/Geometry/Vector.hs 3;" m Vector3D src/Geometry/Vector3D.hs 2;" m VertexAttribute src/Shader/Data.hs 68;" t @@ -3018,17 +3018,17 @@ _shapeHalfSize src/Shape/Data.hs 18;" f _shapeShader src/Data/Preload/Render.hs 25;" f _shockwaves src/Dodge/Data/LWorld.hs 114;" f _shrinkGunStatus src/Dodge/Data/Item/Params.hs 18;" f -_siColor src/Dodge/Data/SelectionList.hs 57;" f -_siColor src/Dodge/Data/SelectionList.hs 65;" f -_siHeight src/Dodge/Data/SelectionList.hs 55;" f -_siHeight src/Dodge/Data/SelectionList.hs 63;" f -_siIsSelectable src/Dodge/Data/SelectionList.hs 56;" f -_siIsSelectable src/Dodge/Data/SelectionList.hs 64;" f -_siOffX src/Dodge/Data/SelectionList.hs 58;" f -_siOffX src/Dodge/Data/SelectionList.hs 66;" f -_siPayload src/Dodge/Data/SelectionList.hs 59;" f -_siPictures src/Dodge/Data/SelectionList.hs 54;" f -_siPictures src/Dodge/Data/SelectionList.hs 62;" f +_siColor src/Dodge/Data/SelectionList.hs 56;" f +_siColor src/Dodge/Data/SelectionList.hs 64;" f +_siHeight src/Dodge/Data/SelectionList.hs 54;" f +_siHeight src/Dodge/Data/SelectionList.hs 62;" f +_siIsSelectable src/Dodge/Data/SelectionList.hs 55;" f +_siIsSelectable src/Dodge/Data/SelectionList.hs 63;" f +_siOffX src/Dodge/Data/SelectionList.hs 57;" f +_siOffX src/Dodge/Data/SelectionList.hs 65;" f +_siPayload src/Dodge/Data/SelectionList.hs 58;" f +_siPictures src/Dodge/Data/SelectionList.hs 53;" f +_siPictures src/Dodge/Data/SelectionList.hs 61;" f _sideEffect src/Loop/Data.hs 13;" f _sideImpulses src/Dodge/Data/ActionPlan.hs 170;" f _sidePush src/Dodge/Data/Item/Use.hs 87;" f @@ -3060,13 +3060,12 @@ _spPixelOff src/Dodge/Data/ScreenPos.hs 11;" f _spScreenOff src/Dodge/Data/ScreenPos.hs 10;" f _sparks src/Dodge/Data/LWorld.hs 110;" f _spawnEBT src/Dodge/Data/Bullet.hs 43;" f -_ssCursor src/Dodge/Data/SelectionList.hs 37;" f -_ssDescriptor src/Dodge/Data/SelectionList.hs 42;" f -_ssIndent src/Dodge/Data/SelectionList.hs 41;" f +_ssDescriptor src/Dodge/Data/SelectionList.hs 41;" f +_ssIndent src/Dodge/Data/SelectionList.hs 40;" f _ssItems src/Dodge/Data/SelectionList.hs 36;" f -_ssMinSize src/Dodge/Data/SelectionList.hs 38;" f -_ssOffset src/Dodge/Data/SelectionList.hs 39;" f -_ssShownItems src/Dodge/Data/SelectionList.hs 40;" f +_ssMinSize src/Dodge/Data/SelectionList.hs 37;" f +_ssOffset src/Dodge/Data/SelectionList.hs 38;" f +_ssShownItems src/Dodge/Data/SelectionList.hs 39;" 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 @@ -3346,7 +3345,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 68;" f +andOrRegex src/Dodge/DisplayInventory.hs 69;" f angleBetween src/Geometry.hs 145;" f angleVV src/Geometry/Vector.hs 57;" f angleVV3 src/Geometry/Vector3D.hs 122;" f @@ -3566,7 +3565,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 82;" f +checkInventorySelectionExists src/Dodge/DisplayInventory.hs 84;" f checkTermDist src/Dodge/Update.hs 289;" f checkWallLeft src/Dodge/LevelGen/StaticWalls/Deprecated.hs 29;" f checkWallRight src/Dodge/LevelGen/StaticWalls.hs 54;" f @@ -3848,7 +3847,7 @@ defaultBounds src/Dodge/Data/Bounds.hs 20;" f 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 +defaultCOSection src/Dodge/Default/World.hs 197;" f defaultCWCam src/Dodge/Default/World.hs 65;" f defaultCWGen src/Dodge/Default/World.hs 55;" f defaultCWorld src/Dodge/Default/World.hs 80;" f @@ -3872,7 +3871,7 @@ defaultDrawButton src/Dodge/Button/Draw.hs 28;" f defaultEquip src/Dodge/Default/Item/Use/Equipment.hs 6;" f defaultEquipUse src/Dodge/Default/Item/Use.hs 23;" f defaultEquipment src/Dodge/Default.hs 27;" f -defaultFiltSection src/Dodge/Default/World.hs 204;" f +defaultFiltSection src/Dodge/Default/World.hs 203;" f defaultFlIt src/Dodge/Default.hs 30;" f defaultForeground src/Dodge/Default/ForegroundShape.hs 5;" f defaultHUD src/Dodge/Default/World.hs 150;" f @@ -3882,7 +3881,7 @@ defaultImpulsive src/Dodge/Humanoid.hs 190;" f defaultInanimate src/Dodge/Default/Creature.hs 69;" f defaultInput src/Dodge/Default/World.hs 14;" f defaultIntention src/Dodge/Default/Creature.hs 105;" f -defaultInvSection src/Dodge/Default/World.hs 211;" 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 @@ -3914,7 +3913,7 @@ 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 32;" f -defaultYouSection src/Dodge/Default/World.hs 216;" f +defaultYouSection src/Dodge/Default/World.hs 215;" f defocusTerminalInput src/Dodge/Terminal/LeftButton.hs 20;" f degToRad src/Geometry/Vector.hs 117;" f deleteIMInZone src/Dodge/Base.hs 70;" f @@ -3955,7 +3954,7 @@ disconnectTerminal src/Dodge/Terminal.hs 215;" f displayConfig src/Dodge/Menu.hs 196;" f displayControls src/Dodge/Menu.hs 206;" f displayFrameTicks src/Dodge/Render/Picture.hs 39;" f -displayFreeSlots src/Dodge/DisplayInventory.hs 173;" f +displayFreeSlots src/Dodge/DisplayInventory.hs 179;" f displayTerminal src/Dodge/Render/HUD.hs 333;" f displayTerminalLineString src/Dodge/Update.hs 426;" f dist src/Geometry/Vector.hs 179;" f @@ -4189,7 +4188,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 273;" f +enterCombineInv src/Dodge/DisplayInventory.hs 271;" f eqConstr src/SameConstr.hs 17;" f eqPosText src/Dodge/Equipment/Text.hs 6;" f equipAllocString src/Dodge/Render/HUD.hs 262;" f @@ -4238,7 +4237,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 140;" f +filterSectionsPair src/Dodge/DisplayInventory.hs 146;" f findBlips src/Dodge/RadarSweep.hs 44;" f findBoundDists src/Dodge/Update/Camera.hs 235;" f findClosePoint src/Dodge/LevelGen/StaticWalls.hs 155;" f @@ -4551,7 +4550,7 @@ interweave src/Justify.hs 17;" f intsToPos src/Dodge/Room/Modify/Girder.hs 160;" f invAdj src/Dodge/Item/Grammar.hs 186;" f invCursorParams src/Dodge/ListDisplayParams.hs 38;" f -invDimColor src/Dodge/DisplayInventory.hs 167;" f +invDimColor src/Dodge/DisplayInventory.hs 173;" f invDisplayParams src/Dodge/ListDisplayParams.hs 32;" f invHead src/Dodge/Render/HUD.hs 369;" f invLDT src/Dodge/Item/Grammar.hs 169;" f @@ -4567,11 +4566,11 @@ invTrees' src/Dodge/Item/Grammar.hs 200;" f inventoryExtra src/Dodge/Render/HUD.hs 271;" f inventoryExtraH src/Dodge/Render/HUD.hs 282;" f inventoryX src/Dodge/Creature.hs 115;" f -inverseSelBoundaryDown src/Dodge/SelectionSections.hs 227;" f -inverseSelBoundaryUp src/Dodge/SelectionSections.hs 214;" f -inverseSelNumPos src/Dodge/SelectionSections.hs 205;" f -inverseSelSecYint src/Dodge/SelectionSections.hs 175;" f -inverseSelSecYintXPosCheck src/Dodge/SelectionSections.hs 186;" 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 inverseShockwaveAt src/Dodge/WorldEvent/Shockwave.hs 43;" f invertEncircleDistP src/Dodge/Creature/Boid.hs 13;" f invertIntMap src/IntMapHelp.hs 99;" f @@ -4723,7 +4722,7 @@ listConfig src/Dodge/Menu.hs 199;" f listControls src/Dodge/Menu.hs 212;" f listCursorChooseBorderScale src/Dodge/Render/List.hs 118;" f listGuard src/Dodge/Creature/ReaderUpdate.hs 188;" f -listSelectionColorPicture src/Dodge/DisplayInventory.hs 265;" f +listSelectionColorPicture src/Dodge/DisplayInventory.hs 263;" f litCorridor90 src/Dodge/Room/RoadBlock.hs 26;" f llleft src/Dodge/Item/Grammar.hs 105;" f llright src/Dodge/Item/Grammar.hs 112;" f @@ -5003,6 +5002,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 38;" f noPic src/ShapePicture.hs 25;" f noShape src/ShapePicture.hs 29;" f noclipCheck src/Dodge/WallCreatureCollisions.hs 20;" f @@ -5040,7 +5040,7 @@ optionScreenUpdate src/Dodge/Update/Input/ScreenLayer.hs 39;" f optionValueOffset src/Dodge/Menu/Option.hs 106;" f optionsOptions src/Dodge/Menu.hs 108;" f optionsToSelections src/Dodge/Menu/Option.hs 59;" f -orRegex src/Dodge/DisplayInventory.hs 71;" f +orRegex src/Dodge/DisplayInventory.hs 72;" f orange src/Color.hs 25;" f orderAround3 src/Geometry/Vector3D.hs 105;" f orderAroundFirst src/Geometry/Polygon.hs 82;" f @@ -5143,7 +5143,7 @@ placeSpotRoomRand src/Dodge/Placement/PlaceSpot.hs 89;" f placeSpotUsingLink src/Dodge/Placement/PlaceSpot.hs 70;" f placeString src/Dodge/Render/MenuScreen.hs 54;" f placeWallPoly src/Dodge/Placement/PlaceSpot.hs 162;" f -plainRegex src/Dodge/DisplayInventory.hs 170;" f +plainRegex src/Dodge/DisplayInventory.hs 176;" f plateCraft src/Dodge/Item/Craftable.hs 45;" f playIfFree src/Sound.hs 136;" f playPositionalSoundQueue src/Sound.hs 144;" f @@ -5232,7 +5232,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 156;" f +posSelSecYint src/Dodge/SelectionSections.hs 179;" f positionRoomsFromTree src/Dodge/Tree/Shift.hs 35;" f postGenerationProcessing src/Dodge/LevelGen.hs 33;" f postUniverseLoadSideEffect src/Dodge/WorldLoad.hs 11;" f @@ -5371,9 +5371,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 34;" f -regexCombs src/Dodge/DisplayInventory.hs 58;" f +regexCombs src/Dodge/DisplayInventory.hs 59;" f regexIn src/Regex.hs 4;" f -regexList src/Dodge/DisplayInventory.hs 317;" f +regexList src/Dodge/DisplayInventory.hs 311;" f regexList src/Regex.hs 7;" f reload1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 428;" f reloadLevelStart src/Dodge/Save.hs 71;" f @@ -5550,11 +5550,11 @@ selNumPosCardinal src/Dodge/Render/HUD.hs 452;" f selSecDrawCursor src/Dodge/Render/List.hs 108;" f selSecDrawCursorAt src/Dodge/Render/List.hs 86;" f selSecSelCol src/Dodge/Render/HUD.hs 475;" f -selSecSelSize src/Dodge/SelectionSections.hs 152;" f -selSecYint src/Dodge/SelectionSections.hs 161;" f +selSecSelSize src/Dodge/SelectionSections.hs 175;" f +selSecYint src/Dodge/SelectionSections.hs 184;" f selectCreatureDebugItem src/Dodge/Debug.hs 39;" f selectUse src/Dodge/SelectUse.hs 11;" f -selectedCloseObject src/Dodge/Inventory.hs 239;" f +selectedCloseObject src/Dodge/Inventory.hs 252;" f sensAboveDoor src/Dodge/Room/SensorDoor.hs 63;" f sensInsideDoor src/Dodge/Room/SensorDoor.hs 69;" f senseDamage src/Dodge/Machine/Update.hs 134;" f @@ -5775,19 +5775,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 87;" f -ssLookupGE' src/Dodge/SelectionSections.hs 145;" f -ssLookupGT src/Dodge/SelectionSections.hs 128;" f -ssLookupGT' src/Dodge/SelectionSections.hs 138;" f -ssLookupLE' src/Dodge/SelectionSections.hs 116;" f -ssLookupLT src/Dodge/SelectionSections.hs 96;" f -ssLookupLT' src/Dodge/SelectionSections.hs 106;" f -ssLookupMax src/Dodge/SelectionSections.hs 73;" f -ssLookupMin src/Dodge/SelectionSections.hs 123;" f -ssLookupUp src/Dodge/SelectionSections.hs 78;" f -ssScrollMinOnFail src/Dodge/SelectionSections.hs 53;" f -ssScrollUsing src/Dodge/SelectionSections.hs 43;" f -ssSetCursor src/Dodge/SelectionSections.hs 64;" f +ssLookupDown src/Dodge/SelectionSections.hs 94;" f +ssLookupGE' src/Dodge/SelectionSections.hs 168;" f +ssLookupGT src/Dodge/SelectionSections.hs 151;" f +ssLookupGT' src/Dodge/SelectionSections.hs 161;" f +ssLookupLE' src/Dodge/SelectionSections.hs 139;" f +ssLookupLT src/Dodge/SelectionSections.hs 119;" f +ssLookupLT' src/Dodge/SelectionSections.hs 129;" f +ssLookupMax src/Dodge/SelectionSections.hs 80;" f +ssLookupMaxInSection src/Dodge/SelectionSections.hs 112;" f +ssLookupMin src/Dodge/SelectionSections.hs 146;" f +ssLookupNextMax src/Dodge/SelectionSections.hs 103;" f +ssLookupUp src/Dodge/SelectionSections.hs 85;" f +ssScrollMinOnFail src/Dodge/SelectionSections.hs 60;" f +ssScrollUsing src/Dodge/SelectionSections.hs 50;" f +ssSetCursor src/Dodge/SelectionSections.hs 71;" f ssfold src/FoldableHelp.hs 105;" f stackPicturesAt src/Dodge/Render/List.hs 80;" f stackPicturesAtOff src/Dodge/Render/List.hs 83;" f @@ -5927,7 +5929,7 @@ toTopLeft src/Dodge/Render/List.hs 200;" 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 27;" f +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 @@ -6060,14 +6062,14 @@ updateCamera src/Dodge/Update/Camera.hs 31;" f updateCloseObjects src/Dodge/Inventory.hs 115;" f updateCloud src/Dodge/Update.hs 712;" f updateClouds src/Dodge/Update.hs 556;" f -updateCombinePositioning src/Dodge/DisplayInventory.hs 34;" f -updateCombineSections src/Dodge/DisplayInventory.hs 39;" f +updateCombinePositioning src/Dodge/DisplayInventory.hs 35;" f +updateCombineSections src/Dodge/DisplayInventory.hs 40;" f updateCreature src/Dodge/Creature/Update.hs 10;" f updateCreatureGroups src/Dodge/Update.hs 496;" f updateCreatureSoundPositions src/Dodge/Update.hs 472;" f updateDebugMessageOffset src/Dodge/Update.hs 89;" f updateDelayedEvents src/Dodge/Update.hs 775;" f -updateDisplaySections src/Dodge/DisplayInventory.hs 85;" f +updateDisplaySections src/Dodge/DisplayInventory.hs 91;" f updateDistortion src/Dodge/Distortion.hs 5;" f updateDistortions src/Dodge/Update.hs 517;" f updateEnergyBall src/Dodge/EnergyBall.hs 46;" f @@ -6089,7 +6091,7 @@ updateInGameCamera src/Dodge/Update/Camera.hs 70;" f updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 139;" f updateInstantBullets src/Dodge/Update.hs 633;" f updateInv src/Dodge/Creature/State.hs 152;" f -updateInventoryPositioning src/Dodge/DisplayInventory.hs 76;" f +updateInventoryPositioning src/Dodge/DisplayInventory.hs 77;" f updateItemTargeting src/Dodge/Creature/State.hs 268;" f updateItemWithOrientation src/Dodge/Creature/State.hs 194;" f updateKeyInGame src/Dodge/Update/Input/InGame.hs 133;" f @@ -6127,8 +6129,8 @@ updateRootItemID src/Dodge/Inventory/Location.hs 34;" 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 200;" f -updateSectionsPositioning src/Dodge/DisplayInventory.hs 179;" f +updateSection src/Dodge/DisplayInventory.hs 206;" f +updateSectionsPositioning src/Dodge/DisplayInventory.hs 185;" f updateSeenWalls src/Dodge/Update.hs 664;" f updateShockwave src/Dodge/Shockwave/Update.hs 12;" f updateShockwaves src/Dodge/Update.hs 538;" f