diff --git a/ghcidOutput b/ghcidOutput index 9364c708d..72c1114ca 100644 --- a/ghcidOutput +++ b/ghcidOutput @@ -1,5 +1,5 @@ -/home/justin/Haskell/loop/src/Dodge/Render/ShapePicture.hs:61:19: warning: [-Wunused-matches] - Defined but not used: ‘cfig’ +/home/justin/Haskell/loop/src/Dodge/Render/HUD.hs:33:1-30: warning: [-Wunused-imports] + The import of ‘Dodge.SelectionSections’ is redundant | -61 | drawDIMouseOver w cfig = fromMaybe mempty $ do - | ^^^^ +33 | import Dodge.SelectionSections + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/src/Dodge/Data/HUD.hs b/src/Dodge/Data/HUD.hs index 6a56a133d..2b89aa7f8 100644 --- a/src/Dodge/Data/HUD.hs +++ b/src/Dodge/Data/HUD.hs @@ -22,7 +22,7 @@ data HUDElement data SubInventory = NoSubInventory { _nsSelected :: Maybe (Int,Int) - , _nsMouseOver :: Maybe Int + , _nsMouseOver :: Maybe (Int,Int) } | ExamineInventory | CombineInventory { _ciSections :: SelectionSections CombinableItem } diff --git a/src/Dodge/Default/World.hs b/src/Dodge/Default/World.hs index 0731a270e..a5a34d2c2 100644 --- a/src/Dodge/Default/World.hs +++ b/src/Dodge/Default/World.hs @@ -161,7 +161,7 @@ defaultHUD = defaultDisplayInventory :: HUDElement defaultDisplayInventory = DisplayInventory - { _subInventory = NoSubInventory {_nsSelected = Just (0,2), _nsMouseOver = Just 3} + { _subInventory = NoSubInventory {_nsSelected = Just (0,2), _nsMouseOver = Just (0,3)} , _diSections = defaultInvSections } diff --git a/src/Dodge/Render/HUD.hs b/src/Dodge/Render/HUD.hs index a544d6067..de3d32e19 100644 --- a/src/Dodge/Render/HUD.hs +++ b/src/Dodge/Render/HUD.hs @@ -5,6 +5,7 @@ module Dodge.Render.HUD ( selNumPos, -- this shoud probably be pushed back here ) where +import Dodge.SelectionSections import Control.Lens import Control.Monad import qualified Data.Map.Strict as M @@ -58,9 +59,13 @@ drawHP cfig = drawInventory :: SelectionSections () -> World -> Configuration -> Picture drawInventory sss w cfig = - drawSelectionSections sss (invDisplayParams w) cfig + drawSelectionSections sss ldp cfig <> iextra + <> translateScreenPos cfig (ldp ^. ldpPos) + (drawDIMouseOver w) + <> drawDISelections w cfig where + ldp = invDisplayParams w iextra = fromMaybe mempty $ do inv <- w ^? cWorld . lWorld . creatures . ix 0 . crInv let x = case invAdj inv of @@ -68,6 +73,23 @@ drawInventory sss w cfig = Right y -> y return $ inventoryExtra sss cfig w x +drawDIMouseOver :: World -> Picture +drawDIMouseOver w = fromMaybe mempty $ do + (_,i) <- w ^? hud . hudElement . subInventory . nsMouseOver . _Just + sss <- w ^? hud . hudElement . diSections + let idp = invDisplayParams w + return . color (withAlpha 0.5 white) $ selSecDrawCursorAt (0,i) 10 idp sss + +drawDISelections :: World -> Configuration -> Picture +drawDISelections w cfig = fromMaybe mempty $ do + (i,j) <- w ^? hud . hudElement . subInventory . nsSelected . _Just + sss <- w ^? hud . hudElement . diSections + let idp = invDisplayParams w + tp <- selNumPos cfig idp sss 0 i + bp <- selNumPos cfig idp sss 0 j + return . color red $ line [tp,bp] + + drawSubInventory :: SubInventory -> Configuration -> World -> Picture drawSubInventory subinv cfig w = case subinv of LockedInventory -> mempty -- topInvCursor col cursPos cfig w @@ -344,5 +366,8 @@ selNumPos cfig ldp sss i j = do s = _ldpScale ldp ygap = _ldpVerticalGap ldp + + + selSecSelCol :: Int -> Int -> SelectionSections a -> Maybe Color selSecSelCol i j sss = sss ^? sssSections . ix i . ssItems . ix j . siColor diff --git a/src/Dodge/Render/ShapePicture.hs b/src/Dodge/Render/ShapePicture.hs index fa6ee30fa..be0f7e44e 100644 --- a/src/Dodge/Render/ShapePicture.hs +++ b/src/Dodge/Render/ShapePicture.hs @@ -2,8 +2,6 @@ module Dodge.Render.ShapePicture ( worldSPic, ) where -import Dodge.Render.HUD -import Dodge.ListDisplayParams import qualified Data.Map.Strict as M import Control.Lens import Control.Monad (guard) @@ -40,8 +38,6 @@ worldSPic cfig u = <> foldup mcSPic (filtOn _mcPos _machines) <> aimDelaySweep w <> drawMouseSelection w - <> drawDISelections w cfig - <> drawDIMouseOver w cfig where w = _uvWorld u foldup = foldMap' @@ -57,22 +53,6 @@ drawMouseSelection w = fromMaybe mempty $ do return $ noShape $ color (withAlpha 0.5 white) $ setLayer FixedCoordLayer $ polygon $ reverse $ rectVV p (w ^. input . mousePos) -drawDIMouseOver :: World -> Configuration -> SPic -drawDIMouseOver w cfig = fromMaybe mempty $ do - i <- w ^? hud . hudElement . subInventory . nsMouseOver . _Just - sss <- w ^? hud . hudElement . diSections - let idp = invDisplayParams w - return . noShape . setLayer FixedCoordLayer . color white $ selSecDrawCursorAt (0,i) 10 idp sss - -drawDISelections :: World -> Configuration -> SPic -drawDISelections w cfig = fromMaybe mempty $ do - (i,j) <- w ^? hud . hudElement . subInventory . nsSelected . _Just - sss <- w ^? hud . hudElement . diSections - let idp = invDisplayParams w - tp <- selNumPos cfig idp sss 0 i - bp <- selNumPos cfig idp sss 0 j - return . noShape . setLayer FixedCoordLayer . color red $ line [tp,bp] - aimDelaySweep :: World -> SPic aimDelaySweep w = fromMaybe mempty $ do cr <- w ^? cWorld . lWorld . creatures . ix 0 @@ -157,8 +137,6 @@ extraPics cfig u = <> foldMap drawBul (_bullets lw) <> foldMap drawBlip (_radarBlips lw) <> _flares lw - -- <> foldMap (dbArg (drawBeam . _bmDraw)) (_positronBeams $ _beams lw) - -- <> foldMap (dbArg (drawBeam . _bmDraw)) (_electronBeams $ _beams lw) <> foldMap (dbArg (drawLightSource . _lsPict)) (_lightSources lw) <> testPic cfig w <> foldMap ppDraw (_pressPlates lw) diff --git a/src/Dodge/SelectionSections.hs b/src/Dodge/SelectionSections.hs index 3f6bcb34c..4115bbe6f 100644 --- a/src/Dodge/SelectionSections.hs +++ b/src/Dodge/SelectionSections.hs @@ -6,8 +6,13 @@ module Dodge.SelectionSections ( setFirstPosSelectionSections, selSecYint, selSecSelSize, + inverseSelNumPos, ) where +import qualified Control.Foldl as L +import Dodge.ScreenPos +import Geometry.Data +import Dodge.Data.Config import Control.Applicative import Control.Lens import qualified Data.IntMap.Strict as IM @@ -124,6 +129,12 @@ ssLookupGE' i sss = do selSecSelSize :: Int -> Int -> SelectionSections a -> Maybe Int selSecSelSize i j sss = fmap length $ sss ^? sssSections . ix i . ssItems . ix j . siPictures +-- need to check that the vertical gap is correctly put in here +posSelSecYint :: Configuration -> ListDisplayParams -> Point2 -> Int +posSelSecYint cfig ldp (V2 _ y) = floor $ (y0 - y) / (20 / ldp ^. ldpScale + ldp ^. ldpVerticalGap) + where + V2 _ y0 = screenPosAbs cfig (ldp ^. ldpPos) + selSecYint :: Int -> Int -> SelectionSections a -> Maybe Int selSecYint i j sss = do ss <- sss ^? sssSections . ix i @@ -136,5 +147,37 @@ selSecYint i j sss = do where secpos = sum . fmap (length . _ssShownItems) . fst $ IM.split i $ sss ^. sssSections +-- it is annoying that Control.Foldl doesn't seem to allow for scans to be done +-- at the same time as folds +inverseSelSecYint :: Int -> SelectionSections a -> Maybe (Int,Int) +inverseSelSecYint yint sss = do + ((i,ss),othersss) <- IM.minViewWithKey (_sssSections sss) + let l = length $ _ssShownItems ss + if l <= yint + then inverseSelSecYint (yint - l) (sss & sssSections .~ 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 + return (i,j) +-- +-- ss <- sss ^? sssSections . ix i +-- return . (secpos +) +-- . subtract (ss ^. ssOffset) +-- . sum +-- . fmap _siHeight +-- . fst +-- $ IM.split j (ss ^. ssItems) +-- where +-- secpos = sum . fmap (length . _ssShownItems) . fst $ IM.split i $ sss ^. sssSections + +inverseSelNumPos :: + Configuration -> + ListDisplayParams -> + SelectionSections a -> + Point2 -> + Maybe (Int,Int) +inverseSelNumPos cfig ldp sss pos = --Just (0,posSelSecYint cfig ldp pos) + inverseSelSecYint (posSelSecYint cfig ldp pos) sss + --getIthPos :: Int -> IM.IntMap (SelectionItem a) -> Int --getIthPos i sm = sum . fmap _siHeight . fst $ IM.split i sm diff --git a/src/Dodge/TestString.hs b/src/Dodge/TestString.hs index 182a11808..bf0f70b29 100644 --- a/src/Dodge/TestString.hs +++ b/src/Dodge/TestString.hs @@ -1,6 +1,7 @@ {-# OPTIONS_GHC -Wno-unused-imports #-} module Dodge.TestString where +import qualified Control.Foldl as L import Dodge.DoubleTree import Dodge.Data.DoubleTree import Dodge.Item.Grammar @@ -20,7 +21,11 @@ import Dodge.Data.Universe import qualified IntMapHelp as IM testStringInit :: Universe -> [String] -testStringInit _ = [] +testStringInit u = [ + show $ u ^? uvWorld . hud . hudElement . subInventory . nsMouseOver . _Just] + <> map show (IM.elems (L.postscan (L.premap _siHeight L.sum) + $ fromMaybe mempty $ u ^? uvWorld . hud . hudElement . diSections . sssSections . ix 0 . ssItems) + ) --testStringInit u = [maybe mempty show $ u ^? uvWorld . cWorld . lWorld . projectiles . ix 0 . prjUpdates . ix 3 . pjuControllerID] --testStringInit u = (topTestPart u -- <>) $ map showh $ diff --git a/src/Dodge/Update.hs b/src/Dodge/Update.hs index d73cc6625..de6eff8a8 100644 --- a/src/Dodge/Update.hs +++ b/src/Dodge/Update.hs @@ -6,6 +6,8 @@ Description : Simulation update -} module Dodge.Update (updateUniverse) where +import Dodge.ListDisplayParams +import Dodge.SelectionSections import Data.Monoid import NewInt import Control.Monad @@ -232,7 +234,7 @@ scrollTimeForward w = case w ^? timeFlow . futureWorlds . _head of -- | The update step. functionalUpdate :: Universe -> Universe -functionalUpdate w = +functionalUpdate u = checkEndGame . over uvWorld (cWorld . lWorld . lClock +~ 1) . over uvWorld updateDistortions @@ -276,11 +278,12 @@ functionalUpdate w = . over uvWorld updateRBList . over uvWorld updateCloseObjects . over uvWorld updateWheelEvents + . over uvWorld (updateMouseOverInventory (u ^. uvConfig)) . over uvWorld zoneClouds . over uvWorld zoneCreatures -- . over uvWorld updateInventorySelectionList . set (uvWorld . cWorld . lWorld . flares) [] - $ over uvWorld updatePastWorlds w + $ over uvWorld updatePastWorlds u checkTermDist :: World -> World checkTermDist w = fromMaybe w $ do @@ -290,6 +293,14 @@ checkTermDist w = fromMaybe w $ do guard $ dist btpos (_crPos $ you w) > 40 return (w & hud . hudElement . subInventory .~ NoSubInventory Nothing Nothing) +updateMouseOverInventory :: Configuration -> World -> World +updateMouseOverInventory cfig w = fromMaybe w $ do + sss <- w ^? hud . hudElement . diSections + guard $ w ^. input . mouseMoving + let x = inverseSelNumPos cfig ldp sss (w ^. input . mousePos) + return $ w & hud . hudElement . subInventory . nsMouseOver .~ x + where + ldp = invDisplayParams w updateWheelEvents :: World -> World updateWheelEvents w diff --git a/tags b/tags index cc16e62bc..ecd7431a5 100644 --- a/tags +++ b/tags @@ -3309,10 +3309,10 @@ addToTrunk src/TreeHelp.hs 156;" f addWarningTerminal src/Dodge/Room/Warning.hs 37;" f addZ src/Geometry/Vector3D.hs 89;" f adjustIMZone src/Dodge/Base.hs 77;" f -advanceScrollAmount src/Dodge/Update.hs 301;" f +advanceScrollAmount src/Dodge/Update.hs 312;" f advanceSmoothScroll src/Dodge/SmoothScroll.hs 29;" f advanceStepCounter src/Dodge/Creature/Impulse/Movement.hs 45;" f -aimDelaySweep src/Dodge/Render/ShapePicture.hs 76;" f +aimDelaySweep src/Dodge/Render/ShapePicture.hs 56;" 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 @@ -3503,7 +3503,7 @@ branchRectWith src/Dodge/Room/Branch.hs 15;" f branchWith src/Dodge/Room/Room.hs 69;" f bright src/Color.hs 120;" f brightX src/Color.hs 116;" f -btSPic src/Dodge/Render/ShapePicture.hs 194;" f +btSPic src/Dodge/Render/ShapePicture.hs 172;" f bufferEBO src/Shader/Bind.hs 28;" f bufferPokedVBO src/Shader/Bind.hs 19;" f bufferShaderLayers src/Shader/Bind.hs 36;" f @@ -3550,12 +3550,12 @@ chaseCritPerceptionUpdate src/Dodge/Creature/Perception.hs 30;" f chaseCritVocalization src/Dodge/Creature/ChaseCrit.hs 46;" f checkBlockHP src/Dodge/Block.hs 46;" f checkDeath src/Dodge/Creature/State.hs 74;" f -checkEndGame src/Dodge/Update.hs 583;" f +checkEndGame src/Dodge/Update.hs 594;" f 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 -checkTermDist src/Dodge/Update.hs 285;" f +checkTermDist src/Dodge/Update.hs 288;" f checkWallLeft src/Dodge/LevelGen/StaticWalls/Deprecated.hs 29;" f checkWallRight src/Dodge/LevelGen/StaticWalls.hs 54;" f checkWallRight src/Dodge/LevelGen/StaticWalls/Deprecated.hs 59;" f @@ -3576,7 +3576,7 @@ circle src/Picture/Base.hs 180;" f circleDecoration src/Dodge/Placement/TopDecoration.hs 56;" f circleSolid src/Picture/Base.hs 164;" f circleSolidCol src/Picture/Base.hs 168;" f -clClSpringVel src/Dodge/Update.hs 636;" f +clClSpringVel src/Dodge/Update.hs 647;" f clZoneSize src/Dodge/Zone/Size.hs 3;" f clZoneSize src/Dodge/Zoning/Cloud.hs 21;" f clampPath src/Dodge/Room/Procedural.hs 165;" f @@ -3596,14 +3596,14 @@ clipZoom src/Dodge/Update/Camera.hs 215;" f clockCycle src/Dodge/Clock.hs 9;" f closeObjEq src/Dodge/Inventory/CloseObject.hs 15;" f closeObjPos src/Dodge/Inventory/CloseObject.hs 10;" f -closeObjectInfo src/Dodge/Render/HUD.hs 115;" f +closeObjectInfo src/Dodge/Render/HUD.hs 137;" f closeObjectToSelectionItem src/Dodge/Inventory/SelectionList.hs 54;" f closeObjectToTextPictures src/Dodge/Inventory/SelectionList.hs 69;" f closestCreatureID src/Dodge/Debug.hs 91;" f closestPointOnLine src/Geometry/Intersect.hs 251;" f closestPointOnLineParam src/Geometry/Intersect.hs 267;" f closestPointOnSeg src/Geometry/Intersect.hs 282;" f -cloudEffect src/Dodge/Update.hs 606;" f +cloudEffect src/Dodge/Update.hs 617;" f cloudPoisonDamage src/Dodge/Update/Cloud.hs 9;" f clsNearCirc src/Dodge/Zoning/Cloud.hs 18;" f clsNearPoint src/Dodge/Zoning/Cloud.hs 9;" f @@ -3632,7 +3632,7 @@ combinationsOf src/Multiset.hs 40;" f combinationsTrie src/Dodge/Combine.hs 41;" f combineAwareness src/Dodge/Creature/Perception.hs 109;" f combineFloors src/Dodge/Room/Procedural.hs 171;" f -combineInventoryExtra src/Dodge/Render/HUD.hs 204;" f +combineInventoryExtra src/Dodge/Render/HUD.hs 226;" f combineItemListYouX src/Dodge/Combine.hs 33;" f combineList src/Dodge/Combine.hs 20;" f combineRooms src/Dodge/Room/Procedural.hs 151;" f @@ -3673,7 +3673,7 @@ crAdd src/Dodge/Room/RezBox.hs 102;" f crAwayFromPost src/Dodge/Creature/Test.hs 77;" f crBlips src/Dodge/RadarSweep.hs 69;" f crCanSeeCr src/Dodge/Creature/Test.hs 48;" f -crCrSpring src/Dodge/Update.hs 654;" f +crCrSpring src/Dodge/Update.hs 665;" f crCurrentEquipment src/Dodge/Creature/Statistics.hs 28;" f crDisplayAwareness src/Dodge/Creature/Picture/Awareness.hs 37;" f crDisplayVigilance src/Dodge/Creature/Picture/Awareness.hs 51;" f @@ -3693,7 +3693,7 @@ crNearPoint src/Dodge/Creature/Test.hs 135;" f crNumFreeSlots src/Dodge/Inventory/CheckSlots.hs 35;" f crOnWall src/Dodge/WallCreatureCollisions.hs 84;" f crSafeDistFromTarg src/Dodge/Creature/Test.hs 67;" f -crSpring src/Dodge/Update.hs 649;" f +crSpring src/Dodge/Update.hs 660;" f crStratConMatches src/Dodge/Creature/Test.hs 72;" f crUpdate src/Dodge/Creature/State.hs 61;" f crUpdateInvidLocations src/Dodge/Inventory/Location.hs 50;" f @@ -3739,7 +3739,7 @@ crystalDebris src/Dodge/Block/Debris.hs 176;" f crystalLine src/Dodge/Placement/Instance/Wall.hs 55;" f crystalWallDamage src/Dodge/Wall/DamageEffect.hs 79;" f cubeShape src/Dodge/Block/Debris.hs 196;" f -cullPoint src/Dodge/Render/ShapePicture.hs 139;" f +cullPoint src/Dodge/Render/ShapePicture.hs 119;" f cullPretty src/AesonHelp.hs 13;" f curveAroundField src/Dodge/Magnet.hs 18;" f curveLeftField src/Dodge/Magnet.hs 13;" f @@ -3946,8 +3946,8 @@ displayConfig src/Dodge/Menu.hs 196;" f displayControls src/Dodge/Menu.hs 206;" f displayFrameTicks src/Dodge/Render/Picture.hs 33;" f displayFreeSlots src/Dodge/DisplayInventory.hs 144;" f -displayTerminal src/Dodge/Render/HUD.hs 231;" f -displayTerminalLineString src/Dodge/Update.hs 329;" f +displayTerminal src/Dodge/Render/HUD.hs 253;" f +displayTerminalLineString src/Dodge/Update.hs 340;" f dist src/Geometry/Vector.hs 179;" f dist3 src/Geometry/Vector3D.hs 101;" f divTo src/Geometry/Zone.hs 6;" f @@ -3987,7 +3987,7 @@ doInputScreenInput src/Dodge/Update/Input/ScreenLayer.hs 25;" f doIntImp src/Dodge/CreatureEffect.hs 24;" f doInvEffect src/Dodge/ItEffect.hs 10;" f doItCrWdWd src/Dodge/WorldEffect.hs 49;" f -doItemTimeScroll src/Dodge/Update.hs 184;" f +doItemTimeScroll src/Dodge/Update.hs 186;" f doLoop src/Loop.hs 60;" f doMCrAc src/Dodge/CreatureEffect.hs 57;" f doMP2Ac src/Dodge/CreatureEffect.hs 73;" f @@ -4020,7 +4020,7 @@ doTestDrawing src/Dodge/Render.hs 42;" f doTextInputOver src/Dodge/Update/Input/Text.hs 15;" f doTextInputOverUniverse src/Dodge/Update/Input/Text.hs 12;" f doThrust src/Dodge/Projectile/Update.hs 73;" f -doTimeScroll src/Dodge/Update.hs 189;" f +doTimeScroll src/Dodge/Update.hs 191;" f doTmTm src/Dodge/TmTm.hs 6;" f doTmWdWd src/Dodge/WorldEffect.hs 109;" f doWallRotate src/Dodge/Update/Camera.hs 188;" f @@ -4030,7 +4030,7 @@ doWdCrCr src/Dodge/CreatureEffect.hs 12;" f doWdP2f src/Dodge/WdP2f.hs 8;" f doWdWd src/Dodge/WorldEffect.hs 26;" f doWeaponRepetitions src/Dodge/HeldUse.hs 54;" f -doWorldEvents src/Dodge/Update.hs 311;" f +doWorldEvents src/Dodge/Update.hs 322;" f doWorldPos src/Dodge/WorldPos.hs 7;" f door src/Dodge/Room/Door.hs 13;" f doorBetween src/Dodge/Placement/Instance/Door.hs 39;" f @@ -4057,23 +4057,23 @@ 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 -drawCombineInventory src/Dodge/Render/HUD.hs 79;" f +drawCombineInventory src/Dodge/Render/HUD.hs 101;" f drawConcurrentMessage src/Dodge/Render/Picture.hs 58;" f drawCorpse src/Dodge/Corpse/Draw.hs 6;" f drawCrInfo src/Dodge/Debug/Picture.hs 341;" f -drawCreature src/Dodge/Render/ShapePicture.hs 102;" f +drawCreature src/Dodge/Render/ShapePicture.hs 82;" f drawCreatureDisplayTexts src/Dodge/Debug/Picture.hs 163;" f drawCross src/Dodge/Render/Label.hs 24;" f drawCrossCol src/Dodge/Render/Label.hs 21;" f drawCursorAt src/Dodge/Render/List.hs 56;" f drawDDATest src/Dodge/Debug/Picture.hs 254;" f -drawDIMouseOver src/Dodge/Render/ShapePicture.hs 60;" f -drawDISelections src/Dodge/Render/ShapePicture.hs 67;" f +drawDIMouseOver src/Dodge/Render/HUD.hs 76;" f +drawDISelections src/Dodge/Render/HUD.hs 83;" f drawDoorPaths src/Dodge/Debug/Picture.hs 215;" f drawDoubleLampCover src/Dodge/Prop/Draw.hs 81;" f drawEnergyBall src/Dodge/EnergyBall/Draw.hs 8;" f drawEquipment src/Dodge/Creature/Picture.hs 140;" f -drawExamineInventory src/Dodge/Render/HUD.hs 85;" f +drawExamineInventory src/Dodge/Render/HUD.hs 107;" f drawFarWallDetect src/Dodge/Debug/Picture.hs 232;" f drawFlame src/Dodge/Flame/Draw.hs 7;" f drawFlamelet src/Dodge/EnergyBall/Draw.hs 23;" f @@ -4081,12 +4081,12 @@ drawFlare src/Dodge/Flare.hs 12;" f drawFooterText src/Dodge/Render/MenuScreen.hs 65;" f drawForceField src/Dodge/Wall/Draw.hs 11;" f drawGib src/Dodge/Prop/Draw.hs 28;" f -drawHP src/Dodge/Render/HUD.hs 50;" f -drawHUD src/Dodge/Render/HUD.hs 42;" f +drawHP src/Dodge/Render/HUD.hs 51;" f +drawHUD src/Dodge/Render/HUD.hs 43;" f drawInputMenu src/Dodge/Render/MenuScreen.hs 18;" f drawInspectWall src/Dodge/Debug/Picture.hs 207;" f drawInspectWalls src/Dodge/Debug/Picture.hs 195;" f -drawInventory src/Dodge/Render/HUD.hs 59;" f +drawInventory src/Dodge/Render/HUD.hs 60;" f drawLabCrossCol src/Dodge/Render/Label.hs 8;" f drawLampCover src/Dodge/Prop/Draw.hs 44;" f drawLaser src/Dodge/Laser/Draw.hs 6;" f @@ -4101,7 +4101,7 @@ drawMapWall src/Dodge/Render/HUD/Carte.hs 33;" f drawMenuOrHUD src/Dodge/Render/Picture.hs 53;" f drawMenuScreen src/Dodge/Render/MenuScreen.hs 12;" f drawMousePosition src/Dodge/Debug/Picture.hs 317;" f -drawMouseSelection src/Dodge/Render/ShapePicture.hs 51;" f +drawMouseSelection src/Dodge/Render/ShapePicture.hs 47;" f drawMovingShape src/Dodge/Prop/Draw.hs 67;" f drawMovingShapeCol src/Dodge/Prop/Draw.hs 73;" f drawMuzFlare src/Dodge/Flare.hs 17;" f @@ -4114,7 +4114,7 @@ drawPointLabel src/Dodge/Render/Label.hs 13;" f drawProjectile src/Dodge/Projectile/Draw.hs 13;" f drawProp src/Dodge/Prop/Draw.hs 15;" f drawProp' src/Dodge/Prop/Draw.hs 12;" f -drawRBOptions src/Dodge/Render/HUD.hs 133;" f +drawRBOptions src/Dodge/Render/HUD.hs 155;" f drawRadarSweep src/Dodge/RadarSweep/Draw.hs 7;" f drawRemoteShell src/Dodge/Projectile/Draw.hs 30;" f drawSelectionCursor src/Dodge/Render/List.hs 41;" f @@ -4128,8 +4128,8 @@ drawShell src/Dodge/Projectile/Draw.hs 20;" f 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 71;" f -drawSweep src/Dodge/Render/ShapePicture.hs 83;" f +drawSubInventory src/Dodge/Render/HUD.hs 93;" f +drawSweep src/Dodge/Render/ShapePicture.hs 63;" 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 @@ -4180,7 +4180,7 @@ encircleP src/Dodge/Creature/Boid.hs 27;" f enterCombineInv src/Dodge/DisplayInventory.hs 239;" f eqConstr src/SameConstr.hs 17;" f eqPosText src/Dodge/Equipment/Text.hs 6;" f -equipAllocString src/Dodge/Render/HUD.hs 176;" f +equipAllocString src/Dodge/Render/HUD.hs 198;" f equipInfo src/Dodge/Item/Info.hs 103;" f equipItemSPic src/Dodge/Item/Draw/SPic.hs 65;" f equipPosition src/Dodge/Item/Draw.hs 29;" f @@ -4213,7 +4213,7 @@ explosiveBarrel src/Dodge/Creature/Inanimate.hs 29;" f extTrigLitPos src/Dodge/Placement/Instance/Button.hs 84;" f extendAway src/Dodge/Placement/Instance/LightSource.hs 196;" f extendConeToScreenEdge src/Dodge/Debug/Picture.hs 82;" f -extraPics src/Dodge/Render/ShapePicture.hs 144;" f +extraPics src/Dodge/Render/ShapePicture.hs 124;" f extractRoomPos src/Dodge/RoomPos.hs 6;" f faceEdges src/Polyhedra.hs 64;" f facesToVF src/Polyhedra/Geodesic.hs 68;" f @@ -4272,8 +4272,8 @@ flockPointTarget src/Dodge/Creature/Boid.hs 199;" f flockPointTargetR src/Dodge/Creature/Boid.hs 266;" f flockToPointUsing src/Dodge/Creature/Boid.hs 214;" f flockToPointUsing' src/Dodge/Creature/Boid.hs 227;" f -floorItemPickupInfo src/Dodge/Render/HUD.hs 120;" f -floorItemSPic src/Dodge/Render/ShapePicture.hs 187;" f +floorItemPickupInfo src/Dodge/Render/HUD.hs 142;" f +floorItemSPic src/Dodge/Render/ShapePicture.hs 165;" f floorWire src/Dodge/Wire.hs 13;" f foamSprayFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 398;" f foamSprayLoopS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 394;" f @@ -4305,7 +4305,7 @@ fromV3 src/Geometry/Data.hs 43;" f frontArmour src/Dodge/Item/Equipment.hs 41;" f fstV2 src/Geometry/Data.hs 50;" f fuelPack src/Dodge/Item/Equipment.hs 64;" f -functionalUpdate src/Dodge/Update.hs 234;" f +functionalUpdate src/Dodge/Update.hs 236;" f fuseFunc src/Dodge/Path.hs 150;" f fusePairs src/Dodge/Path.hs 153;" f fusePoint src/Dodge/LevelGen/StaticWalls.hs 158;" f @@ -4379,7 +4379,7 @@ glassWallDamage src/Dodge/Wall/DamageEffect.hs 48;" f glushortSize src/Shader/Parameters.hs 25;" f goToPostStrat src/Dodge/Creature/Strategy.hs 10;" f goToTarget src/Dodge/Creature/ReaderUpdate.hs 136;" f -gotoTerminal src/Dodge/Update.hs 122;" f +gotoTerminal src/Dodge/Update.hs 124;" f grahamEliminate src/Geometry/Polygon.hs 125;" f grahamScan src/Geometry/Polygon.hs 116;" f grapeCannon src/Dodge/Item/Held/Cone.hs 38;" f @@ -4538,7 +4538,7 @@ intsToPos src/Dodge/Room/Modify/Girder.hs 160;" f invAdj src/Dodge/Item/Grammar.hs 181;" f invDimColor src/Dodge/DisplayInventory.hs 138;" f invDisplayParams src/Dodge/ListDisplayParams.hs 29;" f -invHead src/Dodge/Render/HUD.hs 267;" f +invHead src/Dodge/Render/HUD.hs 289;" f invLDT src/Dodge/Item/Grammar.hs 165;" f invRootMap src/Dodge/Item/Grammar.hs 174;" f invRootTrees src/Dodge/Item/Grammar.hs 206;" f @@ -4549,9 +4549,11 @@ invSideEff src/Dodge/Creature/State.hs 161;" f invSize src/Dodge/Inventory/CheckSlots.hs 41;" f invTrees src/Dodge/Item/Grammar.hs 194;" f invTrees' src/Dodge/Item/Grammar.hs 198;" f -inventoryExtra src/Dodge/Render/HUD.hs 185;" f -inventoryExtraH src/Dodge/Render/HUD.hs 196;" f +inventoryExtra src/Dodge/Render/HUD.hs 207;" f +inventoryExtraH src/Dodge/Render/HUD.hs 218;" f inventoryX src/Dodge/Creature.hs 115;" f +inverseSelNumPos src/Dodge/SelectionSections.hs 172;" f +inverseSelSecYint src/Dodge/SelectionSections.hs 152;" f inverseShockwaveAt src/Dodge/WorldEvent/Shockwave.hs 43;" f invertEncircleDistP src/Dodge/Creature/Boid.hs 13;" f invertIntMap src/IntMapHelp.hs 101;" f @@ -4643,7 +4645,7 @@ lShape src/Dodge/Placement/Instance/LightSource.hs 77;" f lamp src/Dodge/Creature/Lamp.hs 22;" f lampCover src/Dodge/Placement/Instance/LightSource/Cover.hs 8;" f lampCoverWhen src/Dodge/Placement/Instance/LightSource/Cover.hs 19;" f -lampCrSPic src/Dodge/Render/ShapePicture.hs 118;" f +lampCrSPic src/Dodge/Render/ShapePicture.hs 98;" f lasCenSensEdge src/Dodge/Room/LasTurret.hs 112;" f lasDronesPic src/Dodge/Item/Weapon/Drone.hs 22;" f lasGunPic src/Dodge/Item/Draw/SPic.hs 351;" f @@ -4709,7 +4711,7 @@ llleft src/Dodge/Item/Grammar.hs 105;" f llright src/Dodge/Item/Grammar.hs 108;" f lmt src/MatrixHelper.hs 43;" f lnkBothAnd src/Dodge/Room/Procedural.hs 120;" f -lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 256;" f +lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 278;" f lnkPosDir src/Dodge/RoomLink.hs 97;" f loadDodgeConfig src/Dodge/Config/Load.hs 9;" f loadMusic src/Dodge/SoundLogic/LoadSound.hs 21;" f @@ -4824,7 +4826,7 @@ makeTlsTimeRadColPos src/Dodge/LightSource.hs 88;" f makeTypeCraft src/Dodge/Item/Craftable.hs 13;" f makeTypeCraftNum src/Dodge/Item/Craftable.hs 7;" f mapOverlay src/Dodge/Render/HUD/Carte.hs 24;" f -markWallSeen src/Dodge/Update.hs 569;" f +markWallSeen src/Dodge/Update.hs 580;" f maxDamageType src/Dodge/Damage.hs 37;" f maxShowX src/Dodge/Combine/Graph.hs 43;" f maxViewDistance src/Dodge/Viewpoints.hs 26;" f @@ -4836,7 +4838,7 @@ maybeClearPaths src/Dodge/Block.hs 69;" f maybeDestroyBlock src/Dodge/Wall/Damage.hs 26;" f maybeDestroyDoor src/Dodge/Wall/Damage.hs 31;" f maybeExitCombine src/Dodge/Update/Input/InGame.hs 265;" f -maybeOpenTerminal src/Dodge/Update.hs 117;" f +maybeOpenTerminal src/Dodge/Update.hs 119;" f maybeReadFile src/Dodge/LoadSeed.hs 10;" f maybeTakeOne src/RandomHelp.hs 107;" f maybeWarmupStatus src/Dodge/Item/Display.hs 119;" f @@ -4846,7 +4848,7 @@ mcKillTerm src/Dodge/Machine/Destroy.hs 26;" f mcPlaySound src/Dodge/Machine/Update.hs 80;" f mcProxTest src/Dodge/Machine/Update.hs 126;" f mcProximitySensorUpdate src/Dodge/Machine/Update.hs 104;" f -mcSPic src/Dodge/Render/ShapePicture.hs 199;" f +mcSPic src/Dodge/Render/ShapePicture.hs 177;" f mcSensorTriggerUpdate src/Dodge/Machine/Update.hs 69;" f mcSensorUpdate src/Dodge/Machine/Update.hs 99;" f mcShootLaser src/Dodge/HeldUse.hs 462;" f @@ -4956,7 +4958,7 @@ mvBullet src/Dodge/Bullet.hs 33;" f mvButton src/Dodge/Placement/PlaceSpot.hs 174;" f mvCr src/Dodge/Placement/PlaceSpot.hs 184;" f mvFS src/Dodge/Placement/PlaceSpot.hs 187;" f -mvGust src/Dodge/Update.hs 597;" f +mvGust src/Dodge/Update.hs 608;" f mvLS src/Dodge/Placement/PlaceSpot.hs 215;" f mvP src/Dodge/Wall/Move.hs 54;" f mvPP src/Dodge/Placement/PlaceSpot.hs 181;" f @@ -5068,7 +5070,7 @@ pauseGame src/Dodge/Update/Input/InGame.hs 214;" f pauseMenu src/Dodge/Menu.hs 53;" f pauseMenuOptions src/Dodge/Menu.hs 58;" f pauseSound src/Dodge/SoundLogic.hs 41;" f -pauseTime src/Dodge/Update.hs 175;" f +pauseTime src/Dodge/Update.hs 177;" f pciToCI src/Dodge/Item/Grammar.hs 94;" f peZoneSize src/Dodge/Zoning/Pathing.hs 46;" f pedestalRoom src/Dodge/Room/Containing.hs 49;" f @@ -5085,7 +5087,7 @@ pesNearCirc src/Dodge/Zoning/Pathing.hs 43;" f pesNearPoint src/Dodge/Zoning/Pathing.hs 33;" f pesNearRect src/Dodge/Zoning/Pathing.hs 40;" f pesNearSeg src/Dodge/Zoning/Pathing.hs 37;" f -picAtCrPos1 src/Dodge/Render/ShapePicture.hs 123;" f +picAtCrPos1 src/Dodge/Render/ShapePicture.hs 103;" f picFormat src/Polyhedra.hs 22;" f picMap src/Picture/Base.hs 67;" f pickUpItem src/Dodge/Inventory/Add.hs 89;" f @@ -5210,6 +5212,7 @@ polysToPic src/Polyhedra.hs 129;" 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 133;" f positionRoomsFromTree src/Dodge/Tree/Shift.hs 35;" f postGenerationProcessing src/Dodge/LevelGen.hs 33;" f postUniverseLoadSideEffect src/Dodge/WorldLoad.hs 11;" f @@ -5221,8 +5224,8 @@ powlist src/Multiset.hs 55;" f powlistUpToN src/Multiset.hs 20;" f powlistUpToN' src/Multiset.hs 9;" f powlistUpToN'' src/Multiset.hs 27;" f -ppDraw src/Dodge/Render/ShapePicture.hs 184;" f -ppEvents src/Dodge/Update.hs 562;" f +ppDraw src/Dodge/Render/ShapePicture.hs 162;" f +ppEvents src/Dodge/Update.hs 573;" f ppLevelReset src/Dodge/PressPlate.hs 13;" f preCritStart src/Dodge/Room/Start.hs 81;" f preloadRender src/Preload/Render.hs 30;" f @@ -5506,9 +5509,9 @@ scrollCommandStrings src/Dodge/Update/Scroll.hs 134;" f scrollCommands src/Dodge/Update/Scroll.hs 131;" f scrollDebugInfoInt src/Dodge/Debug.hs 46;" f scrollRBOption src/Dodge/Update/Scroll.hs 108;" f -scrollSelectionSections src/Dodge/SelectionSections.hs 17;" f -scrollTimeBack src/Dodge/Update.hs 199;" f -scrollTimeForward src/Dodge/Update.hs 218;" f +scrollSelectionSections src/Dodge/SelectionSections.hs 22;" f +scrollTimeBack src/Dodge/Update.hs 201;" f +scrollTimeForward src/Dodge/Update.hs 220;" f scrollWatch src/Dodge/Item/Weapon/Utility.hs 30;" f seagullBarkS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 406;" f seagullChatter1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 476;" f @@ -5523,12 +5526,12 @@ secondColumnParams src/Dodge/ListDisplayParams.hs 42;" f seedStartMenu src/Dodge/Menu.hs 79;" f seedStartOptions src/Dodge/Menu.hs 82;" f segOnCirc src/Geometry.hs 116;" f -selNumPos src/Dodge/Render/HUD.hs 327;" f +selNumPos src/Dodge/Render/HUD.hs 349;" f selSecDrawCursor src/Dodge/Render/List.hs 104;" f selSecDrawCursorAt src/Dodge/Render/List.hs 88;" f -selSecSelCol src/Dodge/Render/HUD.hs 347;" f -selSecSelSize src/Dodge/SelectionSections.hs 124;" f -selSecYint src/Dodge/SelectionSections.hs 127;" f +selSecSelCol src/Dodge/Render/HUD.hs 372;" f +selSecSelSize src/Dodge/SelectionSections.hs 129;" f +selSecYint src/Dodge/SelectionSections.hs 138;" f selectCreatureDebugItem src/Dodge/Debug.hs 38;" f selectUse src/Dodge/SelectUse.hs 11;" f selectedCloseObject src/Dodge/Inventory.hs 216;" f @@ -5544,12 +5547,12 @@ sentinelAI src/Dodge/Creature/SentinelAI.hs 20;" f sentinelExtraWatchUpdate src/Dodge/Creature/SentinelAI.hs 83;" f sentinelFireType src/Dodge/Creature/SentinelAI.hs 50;" f setChannelPos src/Sound.hs 149;" f -setClickWorldPos src/Dodge/Update.hs 97;" f +setClickWorldPos src/Dodge/Update.hs 99;" f setClusterID src/Dodge/Combine/Graph.hs 103;" f setDepth src/Picture/Base.hs 128;" f setDirPS src/Dodge/PlacementSpot.hs 49;" f setFallback src/Dodge/PlacementSpot.hs 127;" f -setFirstPosSelectionSections src/Dodge/SelectionSections.hs 23;" f +setFirstPosSelectionSections src/Dodge/SelectionSections.hs 28;" f setFromToDams src/Dodge/Bullet.hs 171;" f setHotkey src/Dodge/Hotkey.hs 38;" f setInLinks src/Dodge/RoomLink.hs 51;" f @@ -5563,7 +5566,7 @@ setLinkTypePD src/Dodge/RoomLink.hs 67;" f setMinInvSize src/Dodge/Creature/Action.hs 150;" f setMusicVolume src/Sound.hs 161;" f setMvPos src/Dodge/Creature/ReaderUpdate.hs 51;" f -setOldPos src/Dodge/Update.hs 353;" f +setOldPos src/Dodge/Update.hs 364;" f setOutLinks src/Dodge/RoomLink.hs 48;" f setOutLinksByType src/Dodge/RoomLink.hs 57;" f setOutLinksPD src/Dodge/RoomLink.hs 77;" f @@ -5616,8 +5619,8 @@ shieldWall src/Dodge/Euse.hs 114;" f shiftByV2 src/Dodge/PlacementSpot.hs 239;" f shiftChildren src/Dodge/Tree/Compose.hs 43;" f shiftDec src/Dodge/Placement/PlaceSpot.hs 136;" f -shiftDraw src/Dodge/Render/ShapePicture.hs 127;" f -shiftDraw' src/Dodge/Render/ShapePicture.hs 133;" f +shiftDraw src/Dodge/Render/ShapePicture.hs 107;" f +shiftDraw' src/Dodge/Render/ShapePicture.hs 113;" f shiftInBy src/Dodge/PlacementSpot.hs 236;" f shiftLinkBy src/Dodge/Room/Link.hs 87;" f shiftPSBy src/Dodge/Placement/Shift.hs 12;" f @@ -5668,7 +5671,7 @@ shuffleLinks src/Dodge/Room/Link.hs 30;" f shuffleRoomPos src/Dodge/Layout.hs 78;" f shuffleTail src/RandomHelp.hs 55;" f sigmoid src/Dodge/Base.hs 129;" f -simpleCrSprings src/Dodge/Update.hs 645;" f +simpleCrSprings src/Dodge/Update.hs 656;" f simpleDamFL src/Dodge/Flame.hs 41;" f simpleTermMessage src/Dodge/Terminal.hs 249;" f sineRaisePitchOneSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 486;" f @@ -5751,19 +5754,19 @@ 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 74;" f -ssLookupGE' src/Dodge/SelectionSections.hs 117;" f -ssLookupGT src/Dodge/SelectionSections.hs 104;" f -ssLookupGT' src/Dodge/SelectionSections.hs 110;" f -ssLookupLE' src/Dodge/SelectionSections.hs 92;" f -ssLookupLT src/Dodge/SelectionSections.hs 79;" f -ssLookupLT' src/Dodge/SelectionSections.hs 85;" f -ssLookupMax src/Dodge/SelectionSections.hs 64;" f -ssLookupMin src/Dodge/SelectionSections.hs 99;" f -ssLookupUp src/Dodge/SelectionSections.hs 69;" f -ssScrollUsing src/Dodge/SelectionSections.hs 28;" f -ssScrollUsing' src/Dodge/SelectionSections.hs 38;" f -ssSetCursor src/Dodge/SelectionSections.hs 52;" f +ssLookupDown src/Dodge/SelectionSections.hs 79;" f +ssLookupGE' src/Dodge/SelectionSections.hs 122;" f +ssLookupGT src/Dodge/SelectionSections.hs 109;" f +ssLookupGT' src/Dodge/SelectionSections.hs 115;" f +ssLookupLE' src/Dodge/SelectionSections.hs 97;" f +ssLookupLT src/Dodge/SelectionSections.hs 84;" f +ssLookupLT' src/Dodge/SelectionSections.hs 90;" f +ssLookupMax src/Dodge/SelectionSections.hs 69;" f +ssLookupMin src/Dodge/SelectionSections.hs 104;" f +ssLookupUp src/Dodge/SelectionSections.hs 74;" f +ssScrollUsing src/Dodge/SelectionSections.hs 33;" f +ssScrollUsing' src/Dodge/SelectionSections.hs 43;" f +ssSetCursor src/Dodge/SelectionSections.hs 57;" f ssfold src/FoldableHelp.hs 105;" f stackPicturesAt src/Dodge/Render/List.hs 82;" f stackPicturesAtOff src/Dodge/Render/List.hs 85;" f @@ -5851,7 +5854,7 @@ teslaParams src/Dodge/Tesla/ItemParams.hs 6;" f testCrossWalls src/Dodge/Room/Path.hs 47;" f testEvent src/Dodge/Event/Test.hs 10;" f testInventory src/Dodge/Creature.hs 258;" f -testPic src/Dodge/Render/ShapePicture.hs 181;" f +testPic src/Dodge/Render/ShapePicture.hs 159;" f testStringInit src/Dodge/TestString.hs 22;" f text src/Picture/Base.hs 193;" f textGrad src/Picture/Text.hs 5;" f @@ -5879,7 +5882,7 @@ threeLineDecoration src/Dodge/Placement/TopDecoration.hs 61;" f tileTexCoords src/Tile.hs 10;" f tilesFromRooms src/Dodge/Layout.hs 205;" f tilesToLine src/Shader/AuxAddition.hs 66;" f -timeFlowUpdate src/Dodge/Update.hs 162;" f +timeFlowUpdate src/Dodge/Update.hs 164;" f timeModule src/Dodge/Item/Craftable.hs 33;" f timerTLS src/Dodge/LightSource/Update.hs 22;" f tinMag src/Dodge/Item/Ammo.hs 27;" f @@ -5888,7 +5891,7 @@ titleOptionsMenu src/Dodge/Menu.hs 99;" f titleOptionsNoWrite src/Dodge/Menu.hs 102;" f tlsTimeRadColPos src/Dodge/LightSource.hs 69;" f tlsTimeRadFunPos src/Dodge/LightSource.hs 26;" f -tmUpdate src/Dodge/Update.hs 333;" f +tmUpdate src/Dodge/Update.hs 344;" f toBothLnk src/Dodge/RoomLink.hs 121;" f toClosestMultiple src/HelpNum.hs 3;" f toColor8 src/Color.hs 148;" f @@ -6030,39 +6033,39 @@ updateBarreloid src/Dodge/Barreloid.hs 13;" f updateBounds src/Dodge/Update/Camera.hs 245;" f updateBulVel src/Dodge/Bullet.hs 50;" f updateBullet src/Dodge/Bullet.hs 28;" f -updateBullets src/Dodge/Update.hs 428;" f +updateBullets src/Dodge/Update.hs 439;" f updateCamera src/Dodge/Update/Camera.hs 31;" f updateCloseObjects src/Dodge/Inventory.hs 112;" f -updateCloud src/Dodge/Update.hs 611;" f -updateClouds src/Dodge/Update.hs 457;" f +updateCloud src/Dodge/Update.hs 622;" f +updateClouds src/Dodge/Update.hs 468;" f updateCombinePositioning src/Dodge/DisplayInventory.hs 37;" f updateCombineSections src/Dodge/DisplayInventory.hs 42;" f updateCreature src/Dodge/Creature/Update.hs 10;" f -updateCreatureGroups src/Dodge/Update.hs 397;" f -updateCreatureSoundPositions src/Dodge/Update.hs 375;" f -updateDebugMessageOffset src/Dodge/Update.hs 91;" f -updateDelayedEvents src/Dodge/Update.hs 674;" f +updateCreatureGroups src/Dodge/Update.hs 408;" f +updateCreatureSoundPositions src/Dodge/Update.hs 386;" f +updateDebugMessageOffset src/Dodge/Update.hs 93;" f +updateDelayedEvents src/Dodge/Update.hs 685;" f updateDisplaySections src/Dodge/DisplayInventory.hs 92;" f updateDistortion src/Dodge/Distortion.hs 5;" f -updateDistortions src/Dodge/Update.hs 418;" f +updateDistortions src/Dodge/Update.hs 429;" f updateEnergyBall src/Dodge/EnergyBall.hs 46;" f -updateEnergyBalls src/Dodge/Update.hs 445;" f +updateEnergyBalls src/Dodge/Update.hs 456;" f updateEnterRegex src/Dodge/Update/Input/InGame.hs 189;" 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 71;" f -updateFlames src/Dodge/Update.hs 442;" f +updateFlames src/Dodge/Update.hs 453;" f updateFlare src/Dodge/Flare.hs 7;" f updateFloatingCamera src/Dodge/Update/Camera.hs 36;" f -updateGusts src/Dodge/Update.hs 594;" f +updateGusts src/Dodge/Update.hs 605;" f updateHeldRootItem src/Dodge/Creature/State.hs 166;" f updateHumanoid src/Dodge/Humanoid.hs 12;" f -updateIMl src/Dodge/Update.hs 389;" f -updateIMl' src/Dodge/Update.hs 393;" f +updateIMl src/Dodge/Update.hs 400;" f +updateIMl' src/Dodge/Update.hs 404;" f updateInGameCamera src/Dodge/Update/Camera.hs 70;" f updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 109;" f -updateInstantBullets src/Dodge/Update.hs 534;" f +updateInstantBullets src/Dodge/Update.hs 545;" f updateInv src/Dodge/Creature/State.hs 151;" f updateInventoryPositioning src/Dodge/DisplayInventory.hs 87;" f updateItemTargeting src/Dodge/Creature/State.hs 267;" f @@ -6071,18 +6074,19 @@ updateKeyInGame src/Dodge/Update/Input/InGame.hs 103;" f updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 92;" f updateLampoid src/Dodge/Lampoid.hs 12;" f updateLaser src/Dodge/Laser/Update.hs 13;" f -updateLasers src/Dodge/Update.hs 318;" f -updateLightSources src/Dodge/Update.hs 421;" f +updateLasers src/Dodge/Update.hs 329;" f +updateLightSources src/Dodge/Update.hs 432;" f updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f updateLongPressInGame src/Dodge/Update/Input/InGame.hs 129;" f -updateMIM src/Dodge/Update.hs 547;" f +updateMIM src/Dodge/Update.hs 558;" f updateMachine src/Dodge/Machine/Update.hs 16;" f +updateMouseOverInventory src/Dodge/Update.hs 296;" f updateMovement src/Dodge/Creature/State.hs 330;" f -updateObjCatMaybes src/Dodge/Update.hs 409;" f -updateObjMapMaybe src/Dodge/Update.hs 402;" f -updatePastWorlds src/Dodge/Update.hs 307;" f +updateObjCatMaybes src/Dodge/Update.hs 420;" f +updateObjMapMaybe src/Dodge/Update.hs 413;" f +updatePastWorlds src/Dodge/Update.hs 318;" f updatePosEvent src/Dodge/PosEvent.hs 11;" f -updatePosEvents src/Dodge/Update.hs 454;" f +updatePosEvents src/Dodge/Update.hs 465;" f updatePreload src/Preload/Update.hs 20;" f updatePressedButtonsCarte src/Dodge/Update/Input/InGame.hs 67;" f updatePressedButtonsCarte' src/Dodge/Update/Input/InGame.hs 70;" f @@ -6090,9 +6094,9 @@ updateProjectile src/Dodge/Projectile/Update.hs 22;" f updateProp src/Dodge/Prop/Update.hs 11;" f updateRBList src/Dodge/Inventory/RBList.hs 16;" f updateRadarBlip src/Dodge/RadarBlip.hs 8;" f -updateRadarBlips src/Dodge/Update.hs 424;" f +updateRadarBlips src/Dodge/Update.hs 435;" f updateRadarSweep src/Dodge/RadarSweep.hs 25;" f -updateRadarSweeps src/Dodge/Update.hs 448;" f +updateRadarSweeps src/Dodge/Update.hs 459;" f updateRandNode src/TreeHelp.hs 108;" f updateRenderSplit appDodge/Main.hs 105;" f updateRootItemID src/Dodge/Inventory/Location.hs 37;" f @@ -6101,32 +6105,32 @@ updateScopeZoom' src/Dodge/Update/Camera.hs 132;" f updateScrollTestValue src/Dodge/ScrollValue.hs 6;" f updateSection src/Dodge/DisplayInventory.hs 171;" f updateSectionsPositioning src/Dodge/DisplayInventory.hs 150;" f -updateSeenWalls src/Dodge/Update.hs 565;" f +updateSeenWalls src/Dodge/Update.hs 576;" f updateShockwave src/Dodge/Shockwave/Update.hs 12;" f -updateShockwaves src/Dodge/Update.hs 439;" f +updateShockwaves src/Dodge/Update.hs 450;" f updateSingleNodes src/TreeHelp.hs 97;" f updateSound src/Sound.hs 71;" f updateSounds src/Sound.hs 66;" f updateSpark src/Dodge/Spark.hs 19;" f -updateSparks src/Dodge/Update.hs 451;" f +updateSparks src/Dodge/Update.hs 462;" f updateTempLightSource src/Dodge/LightSource/Update.hs 7;" f updateTeslaArc src/Dodge/Tesla/Arc.hs 29;" f -updateTeslaArcs src/Dodge/Update.hs 433;" f +updateTeslaArcs src/Dodge/Update.hs 444;" f updateTractorBeam src/Dodge/TractorBeam/Update.hs 9;" f -updateTractorBeams src/Dodge/Update.hs 436;" f +updateTractorBeams src/Dodge/Update.hs 447;" f updateTurret src/Dodge/Machine/Update.hs 31;" f -updateUniverse src/Dodge/Update.hs 71;" f -updateUniverseFirst src/Dodge/Update.hs 82;" f -updateUniverseLast src/Dodge/Update.hs 127;" f -updateUniverseMid src/Dodge/Update.hs 146;" f +updateUniverse src/Dodge/Update.hs 73;" f +updateUniverseFirst src/Dodge/Update.hs 84;" f +updateUniverseLast src/Dodge/Update.hs 129;" f +updateUniverseMid src/Dodge/Update.hs 148;" f updateUseInputInGame src/Dodge/Update/Input/InGame.hs 31;" 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 updateWheelEvent src/Dodge/Update/Scroll.hs 20;" f -updateWheelEvents src/Dodge/Update.hs 294;" f -updateWorldEventFlag src/Dodge/Update.hs 111;" f -updateWorldEventFlags src/Dodge/Update.hs 102;" f +updateWheelEvents src/Dodge/Update.hs 305;" f +updateWorldEventFlag src/Dodge/Update.hs 113;" f +updateWorldEventFlags src/Dodge/Update.hs 104;" f upperBody src/Dodge/Creature/Picture.hs 133;" f upperBox src/Shape.hs 154;" f upperBoxHalf src/Shape.hs 220;" f @@ -6259,7 +6263,7 @@ wlsNearRect src/Dodge/Zoning/Wall.hs 46;" f wlsNearSeg src/Dodge/Zoning/Wall.hs 42;" f wordsBy src/ListHelp.hs 116;" f worldPosToScreen src/Dodge/Base/Coordinate.hs 28;" f -worldSPic src/Dodge/Render/ShapePicture.hs 29;" f +worldSPic src/Dodge/Render/ShapePicture.hs 27;" f worldToGenWorld src/Dodge/LevelGen/LevelStructure.hs 14;" f wpAdd src/Dodge/Room/RezBox.hs 134;" f wristArmour src/Dodge/Item/Equipment.hs 47;" f @@ -6277,7 +6281,7 @@ 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 184;" f -yourAugmentedItem src/Dodge/Render/HUD.hs 127;" f +yourAugmentedItem src/Dodge/Render/HUD.hs 149;" f yourControl src/Dodge/Creature/YourControl.hs 22;" f yourDefaultSpeed src/Dodge/Default/Creature.hs 134;" f yourDefaultStrideLength src/Dodge/Default/Creature.hs 137;" f @@ -6294,9 +6298,9 @@ zipCount src/Dodge/Tree/Shift.hs 129;" f zipCountDown src/Dodge/Room/Procedural.hs 117;" f zipWithDefaults src/Dodge/Item/Display.hs 21;" f zoneCloud src/Dodge/Zoning/Cloud.hs 27;" f -zoneClouds src/Dodge/Update.hs 326;" f +zoneClouds src/Dodge/Update.hs 337;" f zoneCreature src/Dodge/Zoning/Creature.hs 52;" f -zoneCreatures src/Dodge/Update.hs 370;" f +zoneCreatures src/Dodge/Update.hs 381;" f zoneExtract src/Dodge/Zoning/Base.hs 50;" f zoneMonoid src/Dodge/Zoning/Base.hs 80;" f zoneOfCirc src/Dodge/Zoning/Base.hs 22;" f