From bf6e02bd98e1075e1e053a23ee749ed491895d9c Mon Sep 17 00:00:00 2001 From: justin Date: Mon, 25 Nov 2024 22:16:54 +0000 Subject: [PATCH] Cleanup --- src/Dodge/Update.hs | 63 +++++------ src/Dodge/Update/Input/InGame.hs | 13 ++- tags | 172 ++++++++++++++++--------------- 3 files changed, 125 insertions(+), 123 deletions(-) diff --git a/src/Dodge/Update.hs b/src/Dodge/Update.hs index f7958f83b..e89eaf42a 100644 --- a/src/Dodge/Update.hs +++ b/src/Dodge/Update.hs @@ -304,40 +304,20 @@ checkTermDist w = fromMaybe w $ do btid <- w ^? cWorld . lWorld . terminals . ix tmid . tmButtonID btpos <- w ^? cWorld . lWorld . buttons . ix btid . btPos guard $ dist btpos (_crPos $ you w) > 40 - return $ - w & hud . hudElement . subInventory - .~ NoSubInventory --MouseInvNothing + return $ w & hud . hudElement . subInventory .~ NoSubInventory updateMouseContext :: Configuration -> Universe -> Universe -updateMouseContext cfig u = case u ^. uvWorld . input . mouseContext of +updateMouseContext cfig u = case u ^? uvScreenLayers . ix 0 of + Just screen -> u & uvWorld . input . mouseContext .~ getMenuMouseContext screen u + Nothing -> updateMouseContextGame cfig u + +updateMouseContextGame :: Configuration -> Universe -> Universe +updateMouseContextGame cfig u = case u ^. uvWorld . input . mouseContext of OverInvDrag i _ _ _ -> u & uvWorld . input . mouseContext .~ invdrag i OverInvDragSelect{} -> u - _ -> - u & uvWorld . input . mouseContext - .~ fromMaybe - aimcontext - (overmenu <|> overinv <|> overcomb <|> overterm) + _ -> u & uvWorld . input . mouseContext + .~ fromMaybe aimcontext (overinv <|> overcomb <|> overterm) where - overmenu = do - screen <- u ^? uvScreenLayers . ix 0 - return $ case screen ^. scOptions of - [] -> NoMouseContext - _ -> fromMaybe MouseMenuCursor $ do - ldps <- screen ^? scListDisplayParams - let ymax = maybe 0 length $ screen ^? scSelectionList - yi <- - ldpVerticalSelection - (u ^. uvConfig) - ldps - (u ^. uvWorld . input . mousePos) - guard (yi >= 0 && yi < ymax) - return $ - if isselectable yi - then MouseMenuClick yi - else NoMouseContext - isselectable yi = - fromMaybe False $ - u ^? uvScreenLayers . _head . scSelectionList . ix yi . siIsSelectable w = u ^. uvWorld aimcontext | ButtonRight `M.member` (w ^. input . mouseButtons) = MouseAiming @@ -360,8 +340,8 @@ updateMouseContext cfig u = case u ^. uvWorld . input . mouseContext of return $ OverInvSelect selpos overcomb = do sss <- w ^? hud . hudElement . subInventory . ciSections - (xl,xr,_) <- w ^? hud . hudElement . subInventory . ciSelection . _Just - let msel = (xl,xr) + (xl, xr, _) <- w ^? hud . hudElement . subInventory . ciSelection . _Just + let msel = (xl, xr) let mpossel = inverseSelNumPos cfig secondColumnParams sss (w ^. input . mousePos) return $ case mpossel of Nothing -> OverCombEscape @@ -379,6 +359,27 @@ updateMouseContext cfig u = case u ^. uvWorld . input . mouseContext of return $ OverTerminalReturn tmid else OverTerminalEscape +getMenuMouseContext :: ScreenLayer -> Universe -> MouseContext +getMenuMouseContext screen u = case screen ^. scOptions of + [] -> NoMouseContext + _ -> fromMaybe MouseMenuCursor $ do + ldps <- screen ^? scListDisplayParams + let ymax = maybe 0 length $ screen ^? scSelectionList + yi <- + ldpVerticalSelection + (u ^. uvConfig) + ldps + (u ^. uvWorld . input . mousePos) + guard (yi >= 0 && yi < ymax) + return $ + if isselectable yi + then MouseMenuClick yi + else NoMouseContext + where + isselectable yi = + fromMaybe False $ + u ^? uvScreenLayers . _head . scSelectionList . ix yi . siIsSelectable + isOverTerminalScreen :: Configuration -> Terminal -> Point2 -> Bool isOverTerminalScreen cfig _ (V2 x y) = x <= xmax diff --git a/src/Dodge/Update/Input/InGame.hs b/src/Dodge/Update/Input/InGame.hs index 6d5d4e321..22ca90df8 100644 --- a/src/Dodge/Update/Input/InGame.hs +++ b/src/Dodge/Update/Input/InGame.hs @@ -210,17 +210,16 @@ updateMouseClickInGame cfig w = case w ^. input . mouseContext of f (x,y) = (x,y,mempty) startDrag :: (Int, Int) -> Configuration -> World -> World -startDrag (a, b) cfig w = setcontext . fromMaybe (augInvDirectSelect (a, b, IS.singleton b) w) $ do - (i, _, xs) <- w ^? hud . hudElement . diSelection . _Just - guard $ i == a && b `IS.member` xs - return w +startDrag (a, b) cfig w = setcontext + . fromMaybe (augInvDirectSelect (a, b, IS.singleton b) w) $ do + (i, _, xs) <- w ^? hud . hudElement . diSelection . _Just + guard $ i == a && b `IS.member` xs + return w where - setcontext = (input . mouseContext .~ OverInvDrag a (Just (a, b)) above bneath) - above :: Maybe (Int,Int) + setcontext = input . mouseContext .~ OverInvDrag a (Just (a, b)) above bneath above = do sss <- w ^? hud . hudElement . diSections inverseSelSecYint (yint - 1) sss - bneath :: Maybe (Int,Int) bneath = do sss <- w ^? hud . hudElement . diSections inverseSelSecYint (yint + 1) sss diff --git a/tags b/tags index aac6584f0..172b772af 100644 --- a/tags +++ b/tags @@ -336,7 +336,7 @@ Combinations src/Dodge/Combine/Combinations.hs 3;" m Combine src/Dodge/Combine.hs 2;" m Combine src/Dodge/Data/Combine.hs 2;" m Combine src/Dodge/Data/Item/Combine.hs 6;" m -CombineInventory src/Dodge/Data/HUD.hs 41;" C +CombineInventory src/Dodge/Data/HUD.hs 37;" C CombineInventoryChange src/Dodge/Data/World.hs 34;" C Common src/Dodge/Zoning/Common.hs 1;" m Compile src/Shader/Compile.hs 1;" m @@ -514,10 +514,10 @@ Detector src/Dodge/Data/Item/Combine.hs 168;" t Dirt src/Dodge/Data/Material.hs 11;" C DisasterType src/Dodge/Data/Scenario.hs 24;" t Display src/Dodge/Item/Display.hs 1;" m -DisplayCarte src/Dodge/Data/HUD.hs 28;" C +DisplayCarte src/Dodge/Data/HUD.hs 26;" C DisplayInventory src/Dodge/Data/HUD.hs 19;" C DisplayInventory src/Dodge/DisplayInventory.hs 4;" m -DisplayTerminal src/Dodge/Data/HUD.hs 47;" C +DisplayTerminal src/Dodge/Data/HUD.hs 43;" C Distortion src/Dodge/Data/Distortion.hs 12;" t Distortion src/Dodge/Data/Distortion.hs 6;" m Distortion src/Dodge/Distortion.hs 1;" m @@ -663,7 +663,7 @@ Euse src/Dodge/Data/Item/HeldUse.hs 20;" t Euse src/Dodge/Euse.hs 1;" m Event src/Dodge/Button/Event.hs 1;" m Event src/Dodge/Event.hs 14;" m -ExamineInventory src/Dodge/Data/HUD.hs 40;" C +ExamineInventory src/Dodge/Data/HUD.hs 36;" C Explore src/Dodge/Data/Scenario.hs 4;" C Explosion src/Dodge/Data/SoundOrigin.hs 37;" C Explosion src/Dodge/WorldEvent/Explosion.hs 4;" m @@ -821,7 +821,7 @@ HELD src/Dodge/Data/Item/Combine.hs 16;" C HELDDETECTOR src/Dodge/Data/Item/Combine.hs 162;" C HOMINGMODULE src/Dodge/Data/Item/Combine.hs 82;" C HOSE src/Dodge/Data/Item/Combine.hs 32;" C -HUD src/Dodge/Data/HUD.hs 49;" t +HUD src/Dodge/Data/HUD.hs 45;" t HUD src/Dodge/Data/HUD.hs 6;" m HUD src/Dodge/Render/HUD.hs 3;" m HUDElement src/Dodge/Data/HUD.hs 18;" t @@ -1080,7 +1080,7 @@ Location src/Dodge/Item/Location.hs 1;" m LocationLDT src/Dodge/Data/DoubleTree.hs 62;" t Lock src/Dodge/Inventory/Lock.hs 1;" m LockAndKey src/Dodge/LockAndKey.hs 1;" m -LockedInventory src/Dodge/Data/HUD.hs 46;" C +LockedInventory src/Dodge/Data/HUD.hs 42;" C LoneWolf src/Dodge/Data/Creature/State.hs 46;" C LongAI src/Dodge/Data/Creature/Misc.hs 60;" C LongDoor src/Dodge/Room/LongDoor.hs 2;" m @@ -1273,7 +1273,7 @@ NoRightButtonOptions src/Dodge/Data/RightButtonOptions.hs 14;" C NoRoomClipBoundaries src/Dodge/Data/Config.hs 105;" C NoShadowFidelity src/Shape/Data.hs 25;" C NoShadows src/Dodge/Data/Config.hs 101;" C -NoSubInventory src/Dodge/Data/HUD.hs 37;" C +NoSubInventory src/Dodge/Data/HUD.hs 35;" C NoWorldEffect src/Dodge/Data/WorldEffect.hs 24;" C Noclip src/Dodge/Data/Config.hs 70;" C NodeMTree src/Dodge/Tree/Compose/Data.hs 9;" C @@ -1826,7 +1826,7 @@ Strategy src/Dodge/Creature/Strategy.hs 1;" m StrategyActions src/Dodge/Data/ActionPlan.hs 188;" C StrictHelp src/StrictHelp.hs 1;" m StringHelp src/StringHelp.hs 1;" m -SubInventory src/Dodge/Data/HUD.hs 36;" t +SubInventory src/Dodge/Data/HUD.hs 34;" t Superfluous src/Shape/Data.hs 38;" C Surface src/Shape/Data.hs 41;" t Survive src/Dodge/Data/Scenario.hs 5;" C @@ -2294,16 +2294,16 @@ _camViewDistance src/Dodge/Data/Camera.hs 30;" f _camViewFrom src/Dodge/Data/Camera.hs 29;" f _camZoom src/Dodge/Data/Camera.hs 26;" f _carriage src/Dodge/Data/Creature/Stance.hs 14;" f -_carteCenter src/Dodge/Data/HUD.hs 51;" f -_carteRot src/Dodge/Data/HUD.hs 53;" f -_carteZoom src/Dodge/Data/HUD.hs 52;" f +_carteCenter src/Dodge/Data/HUD.hs 47;" f +_carteRot src/Dodge/Data/HUD.hs 49;" f +_carteZoom src/Dodge/Data/HUD.hs 48;" f _ceSideEffect src/Dodge/Data/Universe.hs 62;" f _ceString src/Dodge/Data/Universe.hs 63;" f -_ciFilter src/Dodge/Data/HUD.hs 44;" f +_ciFilter src/Dodge/Data/HUD.hs 40;" f _ciInvIDs src/Dodge/Data/Combine.hs 6;" f _ciItem src/Dodge/Data/Combine.hs 7;" f -_ciSections src/Dodge/Data/HUD.hs 42;" f -_ciSelection src/Dodge/Data/HUD.hs 43;" f +_ciSections src/Dodge/Data/HUD.hs 38;" f +_ciSelection src/Dodge/Data/HUD.hs 39;" f _cigType src/Dodge/Data/Camera.hs 19;" f _clAlt src/Dodge/Data/Cloud.hs 23;" f _clPict src/Dodge/Data/Cloud.hs 21;" f @@ -2327,8 +2327,8 @@ _cldtUp src/Dodge/Data/DoubleTree.hs 46;" f _cldtUp src/Dodge/Data/DoubleTree.hs 54;" f _clickPos src/Dodge/Data/Input.hs 50;" f _clickWorldPos src/Dodge/Data/Input.hs 52;" f -_closeButtons src/Dodge/Data/HUD.hs 55;" f -_closeItems src/Dodge/Data/HUD.hs 54;" f +_closeButtons src/Dodge/Data/HUD.hs 51;" f +_closeItems src/Dodge/Data/HUD.hs 50;" f _cloudEBO src/Data/Preload/Render.hs 49;" f _cloudShader src/Data/Preload/Render.hs 48;" f _cloudVBO src/Data/Preload/Render.hs 47;" f @@ -2610,7 +2610,7 @@ _heldPos src/Dodge/Data/Input.hs 51;" f _heldTriggerType src/Dodge/Data/Item/Use.hs 42;" f _heldWorldPos src/Dodge/Data/Input.hs 53;" f _hud src/Dodge/Data/World.hs 47;" f -_hudElement src/Dodge/Data/HUD.hs 50;" f +_hudElement src/Dodge/Data/HUD.hs 46;" f _humanoidAI src/Dodge/Data/Creature/Misc.hs 69;" f _iaLoaded src/Dodge/Data/Item/Use/Consumption.hs 22;" f _iaMax src/Dodge/Data/Item/Use/Consumption.hs 21;" f @@ -3124,7 +3124,7 @@ _tcEffect src/Dodge/Data/Terminal.hs 120;" f _tcHelp src/Dodge/Data/Terminal.hs 119;" f _tcString src/Dodge/Data/Terminal.hs 117;" f _tempLightSources src/Dodge/Data/LWorld.hs 137;" f -_termID src/Dodge/Data/HUD.hs 47;" f +_termID src/Dodge/Data/HUD.hs 43;" f _terminals src/Dodge/Data/LWorld.hs 123;" f _teslaArcs src/Dodge/Data/LWorld.hs 113;" f _testFloat src/Dodge/Data/World.hs 45;" f @@ -3347,7 +3347,7 @@ 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 404;" f +advanceScrollAmount src/Dodge/Update.hs 411;" f advanceSmoothScroll src/Dodge/SmoothScroll.hs 29;" f advanceStepCounter src/Dodge/Creature/Impulse/Movement.hs 45;" f aimDelaySweep src/Dodge/Render/Picture.hs 233;" f @@ -3591,7 +3591,7 @@ chaseCritVocalization src/Dodge/Creature/ChaseCrit.hs 46;" f checkCombineSelectionExists src/Dodge/DisplayInventory.hs 101;" f checkConnection src/Dodge/Inventory/Swap.hs 80;" f checkDeath src/Dodge/Creature/State.hs 75;" f -checkEndGame src/Dodge/Update.hs 691;" f +checkEndGame src/Dodge/Update.hs 698;" f checkErrorGL src/Shader/Compile.hs 255;" f checkFBO src/Framebuffer/Check.hs 6;" f checkGLError src/GLHelp.hs 17;" f @@ -3618,7 +3618,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 744;" f +clClSpringVel src/Dodge/Update.hs 751;" f clZoneSize src/Dodge/Zone/Size.hs 3;" f clZoneSize src/Dodge/Zoning/Cloud.hs 21;" f clampPath src/Dodge/Room/Procedural.hs 166;" f @@ -3641,12 +3641,12 @@ closeItemToSelectionItem src/Dodge/Inventory/SelectionList.hs 52;" f closeItemToTextPictures src/Dodge/Inventory/SelectionList.hs 79;" f closeObjEq src/Dodge/Inventory/CloseObject.hs 15;" f closeObjPos src/Dodge/Inventory/CloseObject.hs 10;" f -closeObjectInfo src/Dodge/Render/HUD.hs 206;" f +closeObjectInfo src/Dodge/Render/HUD.hs 212;" f closestCreatureID src/Dodge/Debug.hs 92;" 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 714;" f +cloudEffect src/Dodge/Update.hs 721;" 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 @@ -3660,7 +3660,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 237;" f +collectInvItems src/Dodge/Update/Input/InGame.hs 236;" 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 @@ -3675,7 +3675,7 @@ combinationsOf src/Multiset.hs 46;" f combinationsTrie src/Dodge/Combine.hs 41;" f combineAwareness src/Dodge/Creature/Perception.hs 109;" f combineFloors src/Dodge/Room/Procedural.hs 172;" f -combineInventoryExtra src/Dodge/Render/HUD.hs 324;" f +combineInventoryExtra src/Dodge/Render/HUD.hs 330;" f combineItemListYouX src/Dodge/Combine.hs 33;" f combineList src/Dodge/Combine.hs 20;" f combineRooms src/Dodge/Room/Procedural.hs 152;" f @@ -3694,7 +3694,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 229;" f +concurrentIS src/Dodge/Update/Input/InGame.hs 228;" f connectItemS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 532;" f connectionBlurb src/Dodge/Terminal.hs 102;" f connectionBlurbLines src/Dodge/Terminal.hs 47;" f @@ -3718,7 +3718,7 @@ crAdd src/Dodge/Room/RezBox.hs 104;" 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 762;" f +crCrSpring src/Dodge/Update.hs 769;" 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 @@ -3739,7 +3739,7 @@ crNumFreeSlots src/Dodge/Inventory/CheckSlots.hs 24;" f crOnWall src/Dodge/WallCreatureCollisions.hs 84;" f crSafeDistFromTarg src/Dodge/Creature/Test.hs 67;" f crSetRoots src/Dodge/Inventory/Location.hs 48;" f -crSpring src/Dodge/Update.hs 757;" f +crSpring src/Dodge/Update.hs 764;" f crStratConMatches src/Dodge/Creature/Test.hs 72;" f crUpdate src/Dodge/Creature/State.hs 62;" f crUpdateInvidLocations src/Dodge/Inventory/Location.hs 61;" f @@ -3986,7 +3986,7 @@ displayFrameTicks src/Dodge/Render/Picture.hs 39;" f displayFreeSlots src/Dodge/DisplayInventory.hs 211;" f displayIndents src/Dodge/DisplayInventory.hs 119;" f displaySectionsSizes src/Dodge/DisplayInventory.hs 114;" f -displayTerminalLineString src/Dodge/Update.hs 433;" f +displayTerminalLineString src/Dodge/Update.hs 440;" f dist src/Geometry/Vector.hs 179;" f dist3 src/Geometry/Vector3D.hs 101;" f divTo src/Geometry/Zone.hs 6;" f @@ -4070,7 +4070,7 @@ doWdCrCr src/Dodge/CreatureEffect.hs 12;" f doWdP2f src/Dodge/WdP2f.hs 12;" f doWdWd src/Dodge/WorldEffect.hs 26;" f doWeaponRepetitions src/Dodge/HeldUse.hs 56;" f -doWorldEvents src/Dodge/Update.hs 415;" f +doWorldEvents src/Dodge/Update.hs 422;" 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 @@ -4099,7 +4099,7 @@ drawCircFlare src/Dodge/Flare.hs 25;" f drawCollisionTest src/Dodge/Debug/Picture.hs 103;" 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 +drawCombineInventory src/Dodge/Render/HUD.hs 170;" f drawConcurrentMessage src/Dodge/Render/Picture.hs 62;" f drawCorpse src/Dodge/Corpse/Draw.hs 6;" f drawCrInfo src/Dodge/Debug/Picture.hs 342;" f @@ -4115,12 +4115,12 @@ 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/Picture.hs 161;" f -drawDragSelected src/Dodge/Render/HUD.hs 131;" f -drawDragSelecting src/Dodge/Render/HUD.hs 144;" f +drawDragSelected src/Dodge/Render/HUD.hs 133;" f +drawDragSelecting src/Dodge/Render/HUD.hs 150;" 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 179;" f +drawExamineInventory src/Dodge/Render/HUD.hs 185;" f drawFarWallDetect src/Dodge/Debug/Picture.hs 234;" f drawFlame src/Dodge/Flame/Draw.hs 7;" f drawFlamelet src/Dodge/EnergyBall/Draw.hs 23;" f @@ -4164,7 +4164,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 232;" f +drawRBOptions src/Dodge/Render/HUD.hs 238;" f drawRadarSweep src/Dodge/RadarSweep/Draw.hs 7;" f drawRemoteShell src/Dodge/Projectile/Draw.hs 30;" f drawReturn src/Dodge/Render/Picture.hs 118;" f @@ -4183,13 +4183,13 @@ 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 156;" f +drawSubInventory src/Dodge/Render/HUD.hs 162;" 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 drawTargeting src/Dodge/Targeting/Draw.hs 13;" f -drawTerminalDisplay src/Dodge/Render/HUD.hs 350;" f +drawTerminalDisplay src/Dodge/Render/HUD.hs 356;" f drawTeslaArc src/Dodge/Tesla/Arc/Draw.hs 7;" f drawText src/Picture/Base.hs 220;" f drawTitle src/Dodge/Render/MenuScreen.hs 57;" f @@ -4237,7 +4237,7 @@ encircleP src/Dodge/Creature/Boid.hs 27;" f enterCombineInv src/Dodge/DisplayInventory.hs 343;" f eqConstr src/SameConstr.hs 17;" f eqPosText src/Dodge/Equipment/Text.hs 6;" f -equipAllocString src/Dodge/Render/HUD.hs 290;" f +equipAllocString src/Dodge/Render/HUD.hs 296;" f equipInfo src/Dodge/Item/Info.hs 103;" f equipItemSPic src/Dodge/Item/Draw/SPic.hs 65;" f equipPosition src/Dodge/Item/Draw.hs 30;" f @@ -4329,7 +4329,7 @@ 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 211;" f +floorItemPickupInfo src/Dodge/Render/HUD.hs 217;" f floorItemSPic src/Dodge/Render/ShapePicture.hs 119;" f floorWire src/Dodge/Wire.hs 13;" f foamSprayFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 412;" f @@ -4597,7 +4597,7 @@ invAdj src/Dodge/Item/Grammar.hs 188;" f invCursorParams src/Dodge/ListDisplayParams.hs 38;" f invDimColor src/Dodge/DisplayInventory.hs 205;" f invDisplayParams src/Dodge/ListDisplayParams.hs 32;" f -invHead src/Dodge/Render/HUD.hs 388;" f +invHead src/Dodge/Render/HUD.hs 394;" f invLDT src/Dodge/Item/Grammar.hs 171;" f invRootMap src/Dodge/Item/Grammar.hs 180;" f invRootTrees src/Dodge/Item/Grammar.hs 210;" f @@ -4607,8 +4607,8 @@ invSideEff src/Dodge/Creature/State.hs 162;" f invSize src/Dodge/Inventory/CheckSlots.hs 30;" f invTrees src/Dodge/Item/Grammar.hs 198;" f invTrees' src/Dodge/Item/Grammar.hs 202;" f -inventoryExtra src/Dodge/Render/HUD.hs 299;" f -inventoryExtraH src/Dodge/Render/HUD.hs 310;" f +inventoryExtra src/Dodge/Render/HUD.hs 305;" f +inventoryExtraH src/Dodge/Render/HUD.hs 316;" f inventoryX src/Dodge/Creature.hs 115;" f inverseSelNumPos src/Dodge/SelectionSections.hs 228;" f inverseSelSecYint src/Dodge/SelectionSections.hs 201;" f @@ -4635,7 +4635,7 @@ isLeftOfA src/Geometry.hs 181;" f isNothing' src/MaybeHelp.hs 33;" f isOnSeg src/Geometry.hs 240;" f isOutLnk src/Dodge/PlacementSpot.hs 164;" f -isOverTerminalScreen src/Dodge/Update.hs 382;" f +isOverTerminalScreen src/Dodge/Update.hs 389;" f isPutID src/Dodge/Placement/Instance/Wall.hs 129;" f isRHS src/Geometry/LHS.hs 24;" f isUnusedLnk src/Dodge/PlacementSpot.hs 61;" f @@ -4772,7 +4772,7 @@ llleft src/Dodge/Item/Grammar.hs 107;" f llright src/Dodge/Item/Grammar.hs 114;" f lmt src/MatrixHelper.hs 43;" f lnkBothAnd src/Dodge/Room/Procedural.hs 121;" f -lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 377;" f +lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 383;" f lnkPosDir src/Dodge/RoomLink.hs 97;" f loadDodgeConfig src/Dodge/Config/Load.hs 9;" f loadMusic src/Dodge/SoundLogic/LoadSound.hs 21;" f @@ -4892,7 +4892,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 676;" f +markWallSeen src/Dodge/Update.hs 683;" f maxDamageType src/Dodge/Damage.hs 37;" f maxShowX src/Dodge/Combine/Graph.hs 49;" f maxViewDistance src/Dodge/Viewpoints.hs 26;" f @@ -5019,7 +5019,7 @@ mvBullet src/Dodge/Bullet.hs 33;" f mvButton src/Dodge/Placement/PlaceSpot.hs 176;" f mvCr src/Dodge/Placement/PlaceSpot.hs 186;" f mvFS src/Dodge/Placement/PlaceSpot.hs 189;" f -mvGust src/Dodge/Update.hs 705;" f +mvGust src/Dodge/Update.hs 712;" f mvLS src/Dodge/Placement/PlaceSpot.hs 217;" f mvP src/Dodge/Wall/Move.hs 54;" f mvPP src/Dodge/Placement/PlaceSpot.hs 183;" f @@ -5288,7 +5288,7 @@ powlistUpToN src/Multiset.hs 23;" f powlistUpToN' src/Multiset.hs 12;" f powlistUpToN'' src/Multiset.hs 31;" f ppDraw src/Dodge/Render/ShapePicture.hs 116;" f -ppEvents src/Dodge/Update.hs 668;" f +ppEvents src/Dodge/Update.hs 675;" f ppLevelReset src/Dodge/PressPlate.hs 13;" f preCritStart src/Dodge/Room/Start.hs 82;" f preloadRender src/Preload/Render.hs 30;" f @@ -5593,11 +5593,11 @@ seedStartMenu src/Dodge/Menu.hs 79;" f seedStartOptions src/Dodge/Menu.hs 82;" f segOnCirc src/Geometry.hs 116;" f selCloseObj src/Dodge/Update/Input/InGame.hs 494;" f -selNumPos src/Dodge/Render/HUD.hs 437;" f -selNumPosCardinal src/Dodge/Render/HUD.hs 460;" f +selNumPos src/Dodge/Render/HUD.hs 443;" f +selNumPosCardinal src/Dodge/Render/HUD.hs 466;" f selSecDrawCursor src/Dodge/Render/List.hs 130;" f selSecDrawCursorAt src/Dodge/Render/List.hs 108;" f -selSecSelCol src/Dodge/Render/HUD.hs 485;" f +selSecSelCol src/Dodge/Render/HUD.hs 491;" f selSecSelSize src/Dodge/SelectionSections.hs 180;" f selSecYint src/Dodge/SelectionSections.hs 189;" f selectCreatureDebugItem src/Dodge/Debug.hs 39;" f @@ -5632,7 +5632,7 @@ setLinkTypePD src/Dodge/RoomLink.hs 67;" 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 457;" f +setOldPos src/Dodge/Update.hs 464;" f setOutLinks src/Dodge/RoomLink.hs 48;" f setOutLinksByType src/Dodge/RoomLink.hs 57;" f setOutLinksPD src/Dodge/RoomLink.hs 77;" f @@ -5688,7 +5688,7 @@ 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 247;" f +shiftInvItems src/Dodge/Update/Input/InGame.hs 246;" f shiftInvItemsDown src/Dodge/Update/Input/InGame.hs 284;" f shiftInvItemsUp src/Dodge/Update/Input/InGame.hs 278;" f shiftLinkBy src/Dodge/Room/Link.hs 87;" f @@ -5740,7 +5740,7 @@ shuffleLinks src/Dodge/Room/Link.hs 30;" f shuffleRoomPos src/Dodge/Layout.hs 78;" f shuffleTail src/RandomHelp.hs 59;" f sigmoid src/Dodge/Base.hs 129;" f -simpleCrSprings src/Dodge/Update.hs 753;" f +simpleCrSprings src/Dodge/Update.hs 760;" f simpleDamFL src/Dodge/Flame.hs 41;" f simpleTermMessage src/Dodge/Terminal.hs 253;" f sineRaisePitchOneSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 504;" f @@ -5969,7 +5969,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 437;" f +tmUpdate src/Dodge/Update.hs 444;" f toBothLnk src/Dodge/RoomLink.hs 121;" f toClosestMultiple src/HelpNum.hs 3;" f toColor8 src/Color.hs 148;" f @@ -6113,41 +6113,41 @@ 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 534;" f +updateBullets src/Dodge/Update.hs 541;" f updateCamera src/Dodge/Update/Camera.hs 31;" f updateCloseObjects src/Dodge/Inventory.hs 113;" f -updateCloud src/Dodge/Update.hs 719;" f -updateClouds src/Dodge/Update.hs 563;" f +updateCloud src/Dodge/Update.hs 726;" f +updateClouds src/Dodge/Update.hs 570;" f updateCombinePositioning src/Dodge/DisplayInventory.hs 40;" f updateCombineSections src/Dodge/DisplayInventory.hs 46;" f updateCreature src/Dodge/Creature/Update.hs 10;" f -updateCreatureGroups src/Dodge/Update.hs 503;" f -updateCreatureSoundPositions src/Dodge/Update.hs 479;" f +updateCreatureGroups src/Dodge/Update.hs 510;" f +updateCreatureSoundPositions src/Dodge/Update.hs 486;" f updateDebugMessageOffset src/Dodge/Update.hs 92;" f -updateDelayedEvents src/Dodge/Update.hs 782;" f +updateDelayedEvents src/Dodge/Update.hs 789;" f updateDisplaySections src/Dodge/DisplayInventory.hs 126;" f updateDistortion src/Dodge/Distortion.hs 5;" f -updateDistortions src/Dodge/Update.hs 524;" f +updateDistortions src/Dodge/Update.hs 531;" f updateEnergyBall src/Dodge/EnergyBall.hs 46;" f -updateEnergyBalls src/Dodge/Update.hs 551;" f +updateEnergyBalls src/Dodge/Update.hs 558;" f updateEnterRegex src/Dodge/Update/Input/InGame.hs 450;" 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 548;" f +updateFlames src/Dodge/Update.hs 555;" f updateFlare src/Dodge/Flare.hs 7;" f updateFloatingCamera src/Dodge/Update/Camera.hs 36;" f updateFunctionKey src/Dodge/Update/Input/InGame.hs 301;" f updateFunctionKeys src/Dodge/Update/Input/InGame.hs 294;" f -updateGusts src/Dodge/Update.hs 702;" f +updateGusts src/Dodge/Update.hs 709;" f updateHeldRootItem src/Dodge/Creature/State.hs 167;" f updateHumanoid src/Dodge/Humanoid.hs 12;" f -updateIMl src/Dodge/Update.hs 493;" f -updateIMl' src/Dodge/Update.hs 498;" f +updateIMl src/Dodge/Update.hs 500;" f +updateIMl' src/Dodge/Update.hs 505;" f updateInGameCamera src/Dodge/Update/Camera.hs 70;" f updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 354;" f -updateInstantBullets src/Dodge/Update.hs 640;" f +updateInstantBullets src/Dodge/Update.hs 647;" f updateInv src/Dodge/Creature/State.hs 152;" f updateInventoryPositioning src/Dodge/DisplayInventory.hs 87;" f updateItemTargeting src/Dodge/Creature/State.hs 268;" f @@ -6156,23 +6156,25 @@ updateKeyInGame src/Dodge/Update/Input/InGame.hs 348;" f updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 336;" f updateLampoid src/Dodge/Lampoid.hs 12;" f updateLaser src/Dodge/Laser/Update.hs 13;" f -updateLasers src/Dodge/Update.hs 422;" f -updateLightSources src/Dodge/Update.hs 527;" f +updateLasers src/Dodge/Update.hs 429;" f +updateLightSources src/Dodge/Update.hs 534;" f updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f updateLongPressInGame src/Dodge/Update/Input/InGame.hs 369;" f -updateMIM src/Dodge/Update.hs 653;" f +updateMIM src/Dodge/Update.hs 660;" f updateMachine src/Dodge/Machine/Update.hs 19;" f updateMouseClickInGame src/Dodge/Update/Input/InGame.hs 162;" f updateMouseContext src/Dodge/Update.hs 311;" f +updateMouseContextGame src/Dodge/Update.hs 317;" f +updateMouseContextMenu src/Dodge/Update.hs 368;" f updateMouseHeldInGame src/Dodge/Update/Input/InGame.hs 89;" f updateMouseInGame src/Dodge/Update/Input/InGame.hs 81;" f updateMouseReleaseInGame src/Dodge/Update/Input/InGame.hs 135;" f updateMovement src/Dodge/Creature/State.hs 331;" f -updateObjCatMaybes src/Dodge/Update.hs 515;" f -updateObjMapMaybe src/Dodge/Update.hs 508;" f -updatePastWorlds src/Dodge/Update.hs 410;" f +updateObjCatMaybes src/Dodge/Update.hs 522;" f +updateObjMapMaybe src/Dodge/Update.hs 515;" f +updatePastWorlds src/Dodge/Update.hs 417;" f updatePosEvent src/Dodge/PosEvent.hs 11;" f -updatePosEvents src/Dodge/Update.hs 560;" f +updatePosEvents src/Dodge/Update.hs 567;" f updatePreload src/Preload/Update.hs 20;" f updatePressedButtonsCarte src/Dodge/Update/Input/InGame.hs 311;" f updatePressedButtonsCarte' src/Dodge/Update/Input/InGame.hs 314;" f @@ -6180,9 +6182,9 @@ updateProjectile src/Dodge/Projectile/Update.hs 23;" 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 530;" f +updateRadarBlips src/Dodge/Update.hs 537;" f updateRadarSweep src/Dodge/RadarSweep.hs 25;" f -updateRadarSweeps src/Dodge/Update.hs 554;" f +updateRadarSweeps src/Dodge/Update.hs 561;" f updateRandNode src/TreeHelp.hs 108;" f updateRenderSplit appDodge/Main.hs 106;" f updateRootItemID src/Dodge/Inventory/Location.hs 35;" f @@ -6191,19 +6193,19 @@ updateScopeZoom' src/Dodge/Update/Camera.hs 132;" f updateScrollTestValue src/Dodge/ScrollValue.hs 6;" f updateSection src/Dodge/DisplayInventory.hs 286;" f updateSectionsPositioning src/Dodge/DisplayInventory.hs 259;" f -updateSeenWalls src/Dodge/Update.hs 671;" f +updateSeenWalls src/Dodge/Update.hs 678;" f updateShockwave src/Dodge/Shockwave/Update.hs 12;" f -updateShockwaves src/Dodge/Update.hs 545;" f +updateShockwaves src/Dodge/Update.hs 552;" 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 557;" f +updateSparks src/Dodge/Update.hs 564;" f updateTempLightSource src/Dodge/LightSource/Update.hs 7;" f updateTeslaArc src/Dodge/Tesla/Arc.hs 29;" f -updateTeslaArcs src/Dodge/Update.hs 539;" f +updateTeslaArcs src/Dodge/Update.hs 546;" f updateTractorBeam src/Dodge/TractorBeam/Update.hs 9;" f -updateTractorBeams src/Dodge/Update.hs 542;" f +updateTractorBeams src/Dodge/Update.hs 549;" f updateTurret src/Dodge/Machine/Update.hs 47;" f updateUniverse src/Dodge/Update.hs 71;" f updateUniverseFirst src/Dodge/Update.hs 83;" f @@ -6214,7 +6216,7 @@ updateUseInputOnScreen src/Dodge/Update/Input/ScreenLayer.hs 21;" f updateWalkCycle src/Dodge/Creature/State/WalkCycle.hs 12;" f updateWallDamages src/Dodge/Update/WallDamage.hs 10;" f updateWheelEvent src/Dodge/Update/Scroll.hs 19;" f -updateWheelEvents src/Dodge/Update.hs 397;" f +updateWheelEvents src/Dodge/Update.hs 404;" f updateWorldEventFlag src/Dodge/Update.hs 117;" f updateWorldEventFlags src/Dodge/Update.hs 105;" f upperBody src/Dodge/Creature/Picture.hs 133;" f @@ -6368,7 +6370,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 190;" f -yourAugmentedItem src/Dodge/Render/HUD.hs 218;" f +yourAugmentedItem src/Dodge/Render/HUD.hs 224;" 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 @@ -6386,9 +6388,9 @@ zipCount src/Dodge/Tree/Shift.hs 129;" f zipCountDown src/Dodge/Room/Procedural.hs 118;" f zipWithDefaults src/Dodge/Item/Display.hs 21;" f zoneCloud src/Dodge/Zoning/Cloud.hs 27;" f -zoneClouds src/Dodge/Update.hs 430;" f +zoneClouds src/Dodge/Update.hs 437;" f zoneCreature src/Dodge/Zoning/Creature.hs 52;" f -zoneCreatures src/Dodge/Update.hs 474;" f +zoneCreatures src/Dodge/Update.hs 481;" 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