From df08dc8ab5da24c0f0a3a09cc8e0c18a99ec0a7b Mon Sep 17 00:00:00 2001 From: justin Date: Mon, 4 Nov 2024 09:32:36 +0000 Subject: [PATCH] Tweak mouse pointer display --- ghcidOutput | 2 +- src/Dodge/Creature.hs | 29 +++-- src/Dodge/ListDisplayParams.hs | 2 +- src/Dodge/Render/Picture.hs | 20 +++- src/Dodge/Update.hs | 28 +++-- src/Dodge/Update/Input/InGame.hs | 25 +++-- tags | 179 ++++++++++++++++--------------- 7 files changed, 154 insertions(+), 131 deletions(-) diff --git a/ghcidOutput b/ghcidOutput index aef019da6..89b6f305c 100644 --- a/ghcidOutput +++ b/ghcidOutput @@ -1 +1 @@ -All good (594 modules, at 00:48:31) +All good (594 modules, at 09:31:25) diff --git a/src/Dodge/Creature.hs b/src/Dodge/Creature.hs index 3b4df54bf..54ba1fc8c 100644 --- a/src/Dodge/Creature.hs +++ b/src/Dodge/Creature.hs @@ -160,21 +160,20 @@ inventoryX c = case c of , makeTypeCraftNum 1 MOTOR ] 'F' -> fold - [ makeTypeCraftNum 5 PIPE - , makeTypeCraftNum 5 TUBE - , makeTypeCraftNum 5 HARDWARE - , makeTypeCraftNum 5 TIN - , makeTypeCraftNum 5 CAN - , makeTypeCraftNum 5 SPRING - , makeTypeCraftNum 5 PUMP - , makeTypeCraftNum 5 MAGNET - , makeTypeCraftNum 5 PLANK - , makeTypeCraftNum 5 PLATE - , makeTypeCraftNum 5 STEELDRUM - , makeTypeCraftNum 5 MOTOR - , makeTypeCraftNum 5 TRANSFORMER - , makeTypeCraftNum 5 PRISM - , makeTypeCraftNum 5 LIGHTER + [ makeTypeCraftNum 3 PIPE + , makeTypeCraftNum 3 TUBE + , makeTypeCraftNum 3 HARDWARE + , makeTypeCraftNum 3 TIN + , makeTypeCraftNum 3 CAN + , makeTypeCraftNum 3 SPRING + , makeTypeCraftNum 3 PUMP + , makeTypeCraftNum 3 MAGNET + , makeTypeCraftNum 3 PLATE + , makeTypeCraftNum 3 STEELDRUM + , makeTypeCraftNum 3 MOTOR + , makeTypeCraftNum 3 TRANSFORMER + , makeTypeCraftNum 3 PRISM + , makeTypeCraftNum 3 LIGHTER -- , makeTypeCraftNum 5 (ENERGYBALLCRAFT IncBall) ] 'G' -> diff --git a/src/Dodge/ListDisplayParams.hs b/src/Dodge/ListDisplayParams.hs index a56a0494f..0dd06b65a 100644 --- a/src/Dodge/ListDisplayParams.hs +++ b/src/Dodge/ListDisplayParams.hs @@ -37,9 +37,9 @@ invDisplayParams w = invCursorParams :: World -> CursorDisplay invCursorParams w = BoundaryCursor $ case w ^? hud . hudElement . subInventory of - _ | ButtonRight `M.member` _mouseButtons (_input w) -> [North, South, East, West] Just ExamineInventory{} -> [North, South, East, West] Just CombineInventory{} -> [] + _ | ButtonRight `M.member` _mouseButtons (_input w) -> [North, South, East, West] _ -> [North, South, West] secondColumnParams :: ListDisplayParams diff --git a/src/Dodge/Render/Picture.hs b/src/Dodge/Render/Picture.hs index 7c6890ef5..ead292b14 100644 --- a/src/Dodge/Render/Picture.hs +++ b/src/Dodge/Render/Picture.hs @@ -78,9 +78,18 @@ drawMouseCursor u = mouseCursorType :: Universe -> Picture mouseCursorType u - | null (u ^. uvScreenLayers) = rotate a (drawPlus 5) - | otherwise = drawPlus 5 + | isselect = drawPlus 5 + | Just csel <- u ^? uvWorld . hud . hudElement . subInventory . ciSelection + = if (csel == u ^? uvWorld . hud . hudElement . subInventory . ciMouseOver . _Just + || null (u ^? uvWorld . hud . hudElement . subInventory . ciMouseOver . _Just)) + && null (u ^? uvWorld . hud . hudElement . diMouseOver . _Just) + && fmap fst csel /= Just (-1) + then drawDoublePlus 5 + else drawPlus 5 + | otherwise = rotate a (drawPlus 5) where + isselect = not (null $ u ^. uvScreenLayers) + || not (null $ u ^? uvWorld . hud . hudElement . diMouseOver . _Just) w = u ^. uvWorld a = fromMaybe 0 $ do cpos <- w ^? cWorld . lWorld . creatures . ix 0 . crPos @@ -91,6 +100,13 @@ mouseCursorType u drawPlus :: Float -> Picture drawPlus x = fold [line [V2 (- x) 0, V2 x 0], line [V2 0 (- x), V2 0 x]] +drawDoublePlus :: Float -> Picture +drawDoublePlus x = fold [line [V2 (- (1.5*x)) 0, V2 (1.5*x) 0] + , line [V2 (0.5 * x) (- x), V2 (0.5 * x) x] + , line [V2 (negate 0.5 * x) (- x), V2 (negate 0.5 * x) x] + ] + + aimDelaySweep :: World -> Picture aimDelaySweep w = fromMaybe mempty $ do cr <- w ^? cWorld . lWorld . creatures . ix 0 diff --git a/src/Dodge/Update.hs b/src/Dodge/Update.hs index bf77aefb9..7f4cb10af 100644 --- a/src/Dodge/Update.hs +++ b/src/Dodge/Update.hs @@ -98,14 +98,18 @@ setClickWorldPos u = (const (screenToWorldPos (u ^. uvWorld . wCam) (u ^. uvWorld . input . mousePos))) (M.filter (== 0) $ u ^. uvWorld . input . mouseButtons) +-- the ordering of updating here may be important updateWorldEventFlags :: Universe -> Universe updateWorldEventFlags u = (uvWorld . worldEventFlags .~ mempty) - -- for now update inventory positioning every tick - . updateInventoryPositioning - -- the question is how often to update the close objects section, and if - -- this can be done independently of the other sections - $ foldr updateWorldEventFlag u (u ^. uvWorld . worldEventFlags) + -- for now update inventory positioning every tick + -- the question is how often to update the close objects section, and if + -- this can be done independently of the other sections + $ + foldr + updateWorldEventFlag + (updateInventoryPositioning u) + (u ^. uvWorld . worldEventFlags) updateWorldEventFlag :: WorldEventFlag -> Universe -> Universe updateWorldEventFlag wef = case wef of @@ -380,11 +384,15 @@ shiftInvItemsDown (_, i) x w = fromMaybe w $ do g i' m = fst <$> IM.lookupGT i' m updateMouseOverInventory :: Configuration -> World -> World -updateMouseOverInventory cfig w = fromMaybe w $ do - sss <- w ^? hud . hudElement . diSections - return $ - w & hud . hudElement . diMouseOver - .~ inverseSelNumPos cfig ldp sss (w ^. input . mousePos) +updateMouseOverInventory cfig w = fromMaybe + (w & hud . hudElement . diMouseOver .~ Nothing) + $ do + sss <- w ^? hud . hudElement . diSections + guard $ ButtonRight `M.notMember` (w ^. input . mouseButtons) + || not (null $ w ^? hud . hudElement . subInventory . ciSelection) + return $ + w & hud . hudElement . diMouseOver + .~ inverseSelNumPos cfig ldp sss (w ^. input . mousePos) where ldp = invDisplayParams w diff --git a/src/Dodge/Update/Input/InGame.hs b/src/Dodge/Update/Input/InGame.hs index 764132a78..d710729eb 100644 --- a/src/Dodge/Update/Input/InGame.hs +++ b/src/Dodge/Update/Input/InGame.hs @@ -99,25 +99,24 @@ updateCombineInvClick :: updateCombineInvClick msel sss w = fromMaybe trydocombination $ do (i,j) <- w ^? hud . hudElement . diMouseOver . _Just guard $ i == 0 - str <- fmap (take 5) $ w ^? hud . hudElement . diSections . ix i . ssItems . ix j . siPictures . ix 0 - return . (worldEventFlags . at CombineInventoryChange ?~ ()) $ case w ^? hud . hudElement . subInventory . ciFilter . _Just of - Just (_:xs) | str == xs -> w - & hud . hudElement . subInventory . ciFilter .~ Nothing - _ -> w & hud . hudElement . subInventory . ciFilter ?~ ("<" ++ str) + str <- fmap (take 5) $ w + ^? hud . hudElement . diSections . ix i . ssItems . ix j . siPictures . ix 0 + return . (worldEventFlags . at CombineInventoryChange ?~ ()) + $ case w ^? hud . hudElement . subInventory . ciFilter . _Just of + Just (_:xs) | str == xs -> w + & hud . hudElement . subInventory . ciFilter .~ Nothing + _ -> w & hud . hudElement . subInventory . ciFilter ?~ ("<" ++ str) where trydocombination = case w ^? hud . hudElement . subInventory . ciMouseOver . _Just of - x@Just{} | x /= msel -> w & hud . hudElement . subInventory . ciSelection .~ x + x@(Just (i,_)) + | x /= msel -> w & hud . hudElement . subInventory . ciSelection .~ x & worldEventFlags . at CombineInventoryChange ?~ () - _ -> - (worldEventFlags . at InventoryChange ?~ ()) . maybeExitCombine $ + | i == -1 -> w & hud . hudElement . subInventory . ciFilter .~ Nothing + & worldEventFlags . at CombineInventoryChange ?~ () + _ -> (worldEventFlags . at InventoryChange ?~ ()) . maybeExitCombine $ tryCombine sss msel w & worldEventFlags . at CombineInventoryChange ?~ () ---checkCombineSelectionExists :: SubInventory -> SubInventory ---checkCombineSelectionExists x@CombineInventory{_ciSections=sss,_ciSelection=msel} --- = x & ciSelection %~ ssSetCursor (ssTryLookup msel) sss ---checkCombineSelectionExists x = x - updatePressedButtonsCarte :: World -> World updatePressedButtonsCarte w = updatePressedButtonsCarte' (_mouseButtons (_input w)) w diff --git a/tags b/tags index 1ef35a2c7..8b1fd5ace 100644 --- a/tags +++ b/tags @@ -3320,10 +3320,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 407;" f +advanceScrollAmount src/Dodge/Update.hs 415;" f advanceSmoothScroll src/Dodge/SmoothScroll.hs 29;" f advanceStepCounter src/Dodge/Creature/Impulse/Movement.hs 45;" f -aimDelaySweep src/Dodge/Render/Picture.hs 94;" f +aimDelaySweep src/Dodge/Render/Picture.hs 110;" 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 @@ -3562,13 +3562,13 @@ chaseCritPerceptionUpdate src/Dodge/Creature/Perception.hs 30;" f chaseCritVocalization src/Dodge/Creature/ChaseCrit.hs 46;" f checkCombineSelectionExists src/Dodge/DisplayInventory.hs 98;" f checkDeath src/Dodge/Creature/State.hs 75;" f -checkEndGame src/Dodge/Update.hs 694;" f +checkEndGame src/Dodge/Update.hs 702;" 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 checkInventorySelectionExists src/Dodge/DisplayInventory.hs 91;" f -checkTermDist src/Dodge/Update.hs 290;" f +checkTermDist src/Dodge/Update.hs 294;" 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 @@ -3589,7 +3589,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 747;" f +clClSpringVel src/Dodge/Update.hs 755;" 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 @@ -3616,7 +3616,7 @@ 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 717;" f +cloudEffect src/Dodge/Update.hs 725;" 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 @@ -3687,7 +3687,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 765;" f +crCrSpring src/Dodge/Update.hs 773;" 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 @@ -3707,7 +3707,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 760;" f +crSpring src/Dodge/Update.hs 768;" f crStratConMatches src/Dodge/Creature/Test.hs 72;" f crUpdate src/Dodge/Creature/State.hs 62;" f crUpdateInvidLocations src/Dodge/Inventory/Location.hs 47;" f @@ -3960,7 +3960,7 @@ displayControls src/Dodge/Menu.hs 206;" f displayFrameTicks src/Dodge/Render/Picture.hs 39;" f displayFreeSlots src/Dodge/DisplayInventory.hs 196;" f displayTerminal src/Dodge/Render/HUD.hs 343;" f -displayTerminalLineString src/Dodge/Update.hs 436;" f +displayTerminalLineString src/Dodge/Update.hs 444;" f dist src/Geometry/Vector.hs 179;" f dist3 src/Geometry/Vector3D.hs 101;" f divTo src/Geometry/Zone.hs 6;" f @@ -4000,7 +4000,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 185;" f +doItemTimeScroll src/Dodge/Update.hs 189;" f doLoop src/Loop.hs 60;" f doMCrAc src/Dodge/CreatureEffect.hs 57;" f doMP2Ac src/Dodge/CreatureEffect.hs 73;" f @@ -4017,7 +4017,7 @@ doPropUpdates src/Dodge/Prop/Update.hs 36;" f doQuickload src/Dodge/Save.hs 82;" f doQuicksave src/Dodge/Save.hs 77;" f doRandImpulse src/Dodge/RandImpulse.hs 7;" f -doRegexInput src/Dodge/Update/Input/InGame.hs 186;" f +doRegexInput src/Dodge/Update/Input/InGame.hs 188;" f doRoomInPlacements src/Dodge/Layout.hs 97;" f doRoomOutPlacements src/Dodge/Layout.hs 107;" f doRoomPlacements src/Dodge/Layout.hs 122;" f @@ -4033,7 +4033,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 74;" f -doTimeScroll src/Dodge/Update.hs 190;" f +doTimeScroll src/Dodge/Update.hs 194;" f doTmTm src/Dodge/TmTm.hs 6;" f doTmWdWd src/Dodge/WorldEffect.hs 109;" f doWallRotate src/Dodge/Update/Camera.hs 188;" f @@ -4043,7 +4043,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 418;" f +doWorldEvents src/Dodge/Update.hs 426;" 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 @@ -4085,6 +4085,7 @@ drawDIMouseOver src/Dodge/Render/HUD.hs 105;" f drawDISelections src/Dodge/Render/HUD.hs 132;" f drawDoorPaths src/Dodge/Debug/Picture.hs 217;" f drawDoubleLampCover src/Dodge/Prop/Draw.hs 81;" f +drawDoublePlus src/Dodge/Render/Picture.hs 103;" f drawEnergyBall src/Dodge/EnergyBall/Draw.hs 8;" f drawEquipment src/Dodge/Creature/Picture.hs 140;" f drawExamineInventory src/Dodge/Render/HUD.hs 166;" f @@ -4123,7 +4124,7 @@ drawOptions src/Dodge/Render/MenuScreen.hs 32;" f drawPathBetween src/Dodge/Debug/Picture.hs 168;" f drawPathEdge src/Dodge/Debug/Picture.hs 222;" f drawPathing src/Dodge/Debug/Picture.hs 384;" f -drawPlus src/Dodge/Render/Picture.hs 91;" f +drawPlus src/Dodge/Render/Picture.hs 100;" f drawPointLabel src/Dodge/Render/Label.hs 13;" f drawProjectile src/Dodge/Projectile/Draw.hs 13;" f drawProp src/Dodge/Prop/Draw.hs 15;" f @@ -4145,7 +4146,7 @@ drawShockwave src/Dodge/Shockwave/Draw.hs 7;" f drawSpark src/Dodge/Spark/Draw.hs 6;" f drawStaticBall src/Dodge/EnergyBall/Draw.hs 14;" f drawSubInventory src/Dodge/Render/HUD.hs 140;" f -drawSweep src/Dodge/Render/Picture.hs 101;" f +drawSweep src/Dodge/Render/Picture.hs 117;" 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 @@ -4322,7 +4323,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 236;" f +functionalUpdate src/Dodge/Update.hs 240;" f fuseFunc src/Dodge/Path.hs 150;" f fusePairs src/Dodge/Path.hs 153;" f fusePoint src/Dodge/LevelGen/StaticWalls.hs 158;" f @@ -4397,7 +4398,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 121;" f +gotoTerminal src/Dodge/Update.hs 125;" f grahamEliminate src/Geometry/Polygon.hs 125;" f grahamScan src/Geometry/Polygon.hs 116;" f grapeCannon src/Dodge/Item/Held/Cone.hs 38;" f @@ -4571,9 +4572,9 @@ invTrees' src/Dodge/Item/Grammar.hs 200;" f inventoryExtra src/Dodge/Render/HUD.hs 281;" f inventoryExtraH src/Dodge/Render/HUD.hs 292;" f inventoryX src/Dodge/Creature.hs 115;" f -inverseSelBoundaryDown src/Dodge/SelectionSections.hs 255;" f -inverseSelBoundaryUp src/Dodge/SelectionSections.hs 242;" f -inverseSelNumPos src/Dodge/SelectionSections.hs 233;" f +inverseSelBoundaryDown src/Dodge/SelectionSections.hs 256;" f +inverseSelBoundaryUp src/Dodge/SelectionSections.hs 243;" f +inverseSelNumPos src/Dodge/SelectionSections.hs 234;" f inverseSelSecYint src/Dodge/SelectionSections.hs 203;" f inverseSelSecYintXPosCheck src/Dodge/SelectionSections.hs 214;" f inverseShockwaveAt src/Dodge/WorldEvent/Shockwave.hs 43;" f @@ -4852,7 +4853,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 679;" f +markWallSeen src/Dodge/Update.hs 687;" f maxDamageType src/Dodge/Damage.hs 37;" f maxShowX src/Dodge/Combine/Graph.hs 43;" f maxViewDistance src/Dodge/Viewpoints.hs 26;" f @@ -4863,8 +4864,8 @@ maybeClearPath src/Dodge/Block.hs 77;" f maybeClearPaths src/Dodge/Block.hs 74;" f maybeDestroyBlock src/Dodge/Wall/Damage.hs 26;" f maybeDestroyDoor src/Dodge/Wall/Damage.hs 31;" f -maybeExitCombine src/Dodge/Update/Input/InGame.hs 349;" f -maybeOpenTerminal src/Dodge/Update.hs 116;" f +maybeExitCombine src/Dodge/Update/Input/InGame.hs 351;" f +maybeOpenTerminal src/Dodge/Update.hs 120;" f maybeReadFile src/Dodge/LoadSeed.hs 10;" f maybeTakeOne src/RandomHelp.hs 111;" f maybeWarmupStatus src/Dodge/Item/Display.hs 119;" f @@ -4983,7 +4984,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 708;" f +mvGust src/Dodge/Update.hs 716;" 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 @@ -5092,11 +5093,11 @@ parseNum src/Dodge/Debug/Terminal.hs 73;" f pathConnected src/Dodge/Room/CheckConsistency.hs 14;" f pathEdgeObstructed src/Dodge/Path.hs 43;" f pauseAndFloatCam src/Dodge/Camera.hs 10;" f -pauseGame src/Dodge/Update/Input/InGame.hs 283;" f +pauseGame src/Dodge/Update/Input/InGame.hs 285;" 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 176;" f +pauseTime src/Dodge/Update.hs 180;" f pciToCI src/Dodge/Item/Grammar.hs 94;" f peZoneSize src/Dodge/Zoning/Pathing.hs 46;" f pedestalRoom src/Dodge/Room/Containing.hs 50;" f @@ -5251,7 +5252,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 671;" f +ppEvents src/Dodge/Update.hs 679;" f ppLevelReset src/Dodge/PressPlate.hs 13;" f preCritStart src/Dodge/Room/Start.hs 82;" f preloadRender src/Preload/Render.hs 30;" f @@ -5536,8 +5537,8 @@ scrollCommands src/Dodge/Update/Scroll.hs 134;" f scrollDebugInfoInt src/Dodge/Debug.hs 47;" f scrollRBOption src/Dodge/Update/Scroll.hs 111;" f scrollSelectionSections src/Dodge/SelectionSections.hs 30;" f -scrollTimeBack src/Dodge/Update.hs 200;" f -scrollTimeForward src/Dodge/Update.hs 220;" f +scrollTimeBack src/Dodge/Update.hs 204;" f +scrollTimeForward src/Dodge/Update.hs 224;" f scrollWatch src/Dodge/Item/Weapon/Utility.hs 30;" f seagullBarkS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 420;" f seagullBarkTransformedS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 486;" f @@ -5593,7 +5594,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 460;" f +setOldPos src/Dodge/Update.hs 468;" f setOutLinks src/Dodge/RoomLink.hs 48;" f setOutLinksByType src/Dodge/RoomLink.hs 57;" f setOutLinksPD src/Dodge/RoomLink.hs 77;" f @@ -5648,9 +5649,9 @@ shiftChildren src/Dodge/Tree/Compose.hs 43;" f shiftDraw src/Dodge/Render/ShapePicture.hs 66;" f shiftDraw' src/Dodge/Render/ShapePicture.hs 72;" f shiftInBy src/Dodge/PlacementSpot.hs 236;" f -shiftInvItems src/Dodge/Update.hs 352;" f -shiftInvItemsDown src/Dodge/Update.hs 373;" f -shiftInvItemsUp src/Dodge/Update.hs 367;" f +shiftInvItems src/Dodge/Update.hs 356;" f +shiftInvItemsDown src/Dodge/Update.hs 377;" f +shiftInvItemsUp src/Dodge/Update.hs 371;" f shiftLinkBy src/Dodge/Room/Link.hs 87;" f shiftPSBy src/Dodge/Placement/Shift.hs 12;" f shiftPathBy src/Dodge/Room/Link.hs 92;" f @@ -5700,7 +5701,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 756;" f +simpleCrSprings src/Dodge/Update.hs 764;" f simpleDamFL src/Dodge/Flame.hs 41;" f simpleTermMessage src/Dodge/Terminal.hs 250;" f sineRaisePitchOneSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 504;" f @@ -5749,7 +5750,7 @@ soundToVol src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 4;" f soundWithStatus src/Dodge/SoundLogic.hs 98;" f soundWithStatusVolume src/Dodge/SoundLogic.hs 48;" f southPillarsRoom src/Dodge/Room/LongDoor.hs 85;" f -spaceAction src/Dodge/Update/Input/InGame.hs 286;" f +spaceAction src/Dodge/Update/Input/InGame.hs 288;" f spanColLightBlackI src/Dodge/Placement/Instance/LightSource.hs 186;" f spanColLightI src/Dodge/Placement/Instance/LightSource.hs 179;" f spanLS src/Dodge/Placement/Instance/LightSource.hs 171;" f @@ -5803,10 +5804,10 @@ ssfold src/FoldableHelp.hs 105;" f stackPicturesAt src/Dodge/Render/List.hs 80;" f stackPicturesAtOff src/Dodge/Render/List.hs 83;" f stackText src/Picture/Base.hs 188;" f -stackedInventory src/Dodge/Creature.hs 282;" f +stackedInventory src/Dodge/Creature.hs 281;" f startCr src/Dodge/Creature.hs 91;" f startCrafts src/Dodge/Room/Start.hs 92;" f -startDrag src/Dodge/Update.hs 341;" f +startDrag src/Dodge/Update.hs 345;" f startInvList src/Dodge/Creature.hs 109;" f startInventory src/Dodge/Creature.hs 112;" f startNewGameInSlot src/Dodge/StartNewGame.hs 15;" f @@ -5887,7 +5888,7 @@ teslaGunPic src/Dodge/Item/Draw/SPic.hs 348;" f 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 +testInventory src/Dodge/Creature.hs 257;" f testStringInit src/Dodge/TestString.hs 23;" f text src/Picture/Base.hs 193;" f textGrad src/Picture/Text.hs 5;" f @@ -5915,7 +5916,7 @@ threeLineDecoration src/Dodge/Placement/TopDecoration.hs 61;" f tileTexCoords src/Tile.hs 11;" f tilesFromRooms src/Dodge/Layout.hs 205;" f tilesToLine src/Shader/AuxAddition.hs 66;" f -timeFlowUpdate src/Dodge/Update.hs 163;" f +timeFlowUpdate src/Dodge/Update.hs 167;" 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 @@ -5924,7 +5925,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 440;" f +tmUpdate src/Dodge/Update.hs 448;" f toBothLnk src/Dodge/RoomLink.hs 121;" f toClosestMultiple src/HelpNum.hs 3;" f toColor8 src/Color.hs 148;" f @@ -5942,8 +5943,8 @@ toggleCombineInv src/Dodge/DisplayInventory.hs 30;" f toggleCommand src/Dodge/Terminal.hs 194;" f toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 75;" f toggleJust src/MaybeHelp.hs 41;" f -toggleMap src/Dodge/Update/Input/InGame.hs 310;" f -toggleTweakInv src/Dodge/Update/Input/InGame.hs 326;" f +toggleMap src/Dodge/Update/Input/InGame.hs 312;" f +toggleTweakInv src/Dodge/Update/Input/InGame.hs 328;" f togglesToEffects src/Dodge/Terminal.hs 245;" f tone440S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 474;" f tone440sawtoothS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 444;" f @@ -6014,7 +6015,7 @@ trunkDepth src/TreeHelp.hs 161;" f tryAssignHotkey src/Dodge/Creature/YourControl.hs 85;" f tryAttachBulletBelt src/Dodge/Euse.hs 40;" f tryChargeBattery src/Dodge/Euse.hs 43;" f -tryCombine src/Dodge/Update/Input/InGame.hs 335;" f +tryCombine src/Dodge/Update/Input/InGame.hs 337;" f tryGetChannel src/Sound.hs 96;" f tryGetRootAttachedFromInvID src/Dodge/Inventory/Location.hs 19;" f tryGetRootItemInvID src/Dodge/Inventory/Location.hs 28;" f @@ -6060,80 +6061,80 @@ updateAllNodes src/TreeHelp.hs 85;" f updateArc src/Dodge/Tesla/Arc.hs 86;" f updateAttachedItems src/Dodge/Creature/State.hs 173;" f updateAutoRecharge src/Dodge/Creature/State.hs 324;" f -updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 221;" f +updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 223;" f updateBarrel src/Dodge/Barreloid.hs 45;" f 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 537;" f +updateBullets src/Dodge/Update.hs 545;" f updateCamera src/Dodge/Update/Camera.hs 31;" f updateCloseObjects src/Dodge/Inventory.hs 117;" f -updateCloud src/Dodge/Update.hs 722;" f -updateClouds src/Dodge/Update.hs 566;" f +updateCloud src/Dodge/Update.hs 730;" f +updateClouds src/Dodge/Update.hs 574;" f updateCombineInvClick src/Dodge/Update/Input/InGame.hs 94;" f updateCombinePositioning src/Dodge/DisplayInventory.hs 37;" f updateCombineSections src/Dodge/DisplayInventory.hs 43;" f updateCreature src/Dodge/Creature/Update.hs 10;" f -updateCreatureGroups src/Dodge/Update.hs 506;" f -updateCreatureSoundPositions src/Dodge/Update.hs 482;" f +updateCreatureGroups src/Dodge/Update.hs 514;" f +updateCreatureSoundPositions src/Dodge/Update.hs 490;" f updateDebugMessageOffset src/Dodge/Update.hs 89;" f -updateDelayedEvents src/Dodge/Update.hs 785;" f +updateDelayedEvents src/Dodge/Update.hs 793;" f updateDisplaySections src/Dodge/DisplayInventory.hs 111;" f updateDistortion src/Dodge/Distortion.hs 5;" f -updateDistortions src/Dodge/Update.hs 527;" f +updateDistortions src/Dodge/Update.hs 535;" f updateEnergyBall src/Dodge/EnergyBall.hs 46;" f -updateEnergyBalls src/Dodge/Update.hs 554;" f -updateEnterRegex src/Dodge/Update/Input/InGame.hs 262;" f +updateEnergyBalls src/Dodge/Update.hs 562;" f +updateEnterRegex src/Dodge/Update/Input/InGame.hs 264;" 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 551;" f +updateFlames src/Dodge/Update.hs 559;" f updateFlare src/Dodge/Flare.hs 7;" f updateFloatingCamera src/Dodge/Update/Camera.hs 36;" f -updateGusts src/Dodge/Update.hs 705;" f +updateGusts src/Dodge/Update.hs 713;" f updateHeldRootItem src/Dodge/Creature/State.hs 167;" f updateHumanoid src/Dodge/Humanoid.hs 12;" f -updateIMl src/Dodge/Update.hs 496;" f -updateIMl' src/Dodge/Update.hs 501;" f +updateIMl src/Dodge/Update.hs 504;" f +updateIMl' src/Dodge/Update.hs 509;" f updateInGameCamera src/Dodge/Update/Camera.hs 70;" f -updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 160;" f -updateInstantBullets src/Dodge/Update.hs 643;" f +updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 162;" f +updateInstantBullets src/Dodge/Update.hs 651;" f updateInv src/Dodge/Creature/State.hs 152;" f updateInventoryPositioning src/Dodge/DisplayInventory.hs 84;" f updateItemTargeting src/Dodge/Creature/State.hs 268;" f updateItemWithOrientation src/Dodge/Creature/State.hs 194;" f -updateKeyInGame src/Dodge/Update/Input/InGame.hs 154;" f -updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 143;" f +updateKeyInGame src/Dodge/Update/Input/InGame.hs 156;" f +updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 145;" f updateLampoid src/Dodge/Lampoid.hs 12;" f updateLaser src/Dodge/Laser/Update.hs 13;" f -updateLasers src/Dodge/Update.hs 425;" f -updateLightSources src/Dodge/Update.hs 530;" f +updateLasers src/Dodge/Update.hs 433;" f +updateLightSources src/Dodge/Update.hs 538;" f updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f -updateLongPressInGame src/Dodge/Update/Input/InGame.hs 180;" f -updateMIM src/Dodge/Update.hs 656;" f +updateLongPressInGame src/Dodge/Update/Input/InGame.hs 182;" f +updateMIM src/Dodge/Update.hs 664;" f updateMachine src/Dodge/Machine/Update.hs 16;" f -updateMouseInventorySelection src/Dodge/Update.hs 300;" f -updateMouseInventorySelection' src/Dodge/Update.hs 305;" f -updateMouseOverCombineInventory src/Dodge/Update.hs 391;" f -updateMouseOverInventory src/Dodge/Update.hs 382;" f +updateMouseInventorySelection src/Dodge/Update.hs 304;" f +updateMouseInventorySelection' src/Dodge/Update.hs 309;" f +updateMouseOverCombineInventory src/Dodge/Update.hs 399;" f +updateMouseOverInventory src/Dodge/Update.hs 386;" f updateMovement src/Dodge/Creature/State.hs 331;" f -updateObjCatMaybes src/Dodge/Update.hs 518;" f -updateObjMapMaybe src/Dodge/Update.hs 511;" f -updatePastWorlds src/Dodge/Update.hs 413;" f +updateObjCatMaybes src/Dodge/Update.hs 526;" f +updateObjMapMaybe src/Dodge/Update.hs 519;" f +updatePastWorlds src/Dodge/Update.hs 421;" f updatePosEvent src/Dodge/PosEvent.hs 11;" f -updatePosEvents src/Dodge/Update.hs 563;" f +updatePosEvents src/Dodge/Update.hs 571;" f updatePreload src/Preload/Update.hs 20;" f -updatePressedButtonsCarte src/Dodge/Update/Input/InGame.hs 118;" f -updatePressedButtonsCarte' src/Dodge/Update/Input/InGame.hs 121;" f +updatePressedButtonsCarte src/Dodge/Update/Input/InGame.hs 120;" f +updatePressedButtonsCarte' src/Dodge/Update/Input/InGame.hs 123;" f updateProjectile src/Dodge/Projectile/Update.hs 23;" f updateProp src/Dodge/Prop/Update.hs 11;" f updateRBList src/Dodge/Inventory/RBList.hs 16;" f updateRadarBlip src/Dodge/RadarBlip.hs 8;" f -updateRadarBlips src/Dodge/Update.hs 533;" f +updateRadarBlips src/Dodge/Update.hs 541;" f updateRadarSweep src/Dodge/RadarSweep.hs 25;" f -updateRadarSweeps src/Dodge/Update.hs 557;" f +updateRadarSweeps src/Dodge/Update.hs 565;" f updateRandNode src/TreeHelp.hs 108;" f updateRenderSplit appDodge/Main.hs 106;" f updateRootItemID src/Dodge/Inventory/Location.hs 34;" f @@ -6142,32 +6143,32 @@ updateScopeZoom' src/Dodge/Update/Camera.hs 132;" f updateScrollTestValue src/Dodge/ScrollValue.hs 6;" f updateSection src/Dodge/DisplayInventory.hs 223;" f updateSectionsPositioning src/Dodge/DisplayInventory.hs 202;" f -updateSeenWalls src/Dodge/Update.hs 674;" f +updateSeenWalls src/Dodge/Update.hs 682;" f updateShockwave src/Dodge/Shockwave/Update.hs 12;" f -updateShockwaves src/Dodge/Update.hs 548;" f +updateShockwaves src/Dodge/Update.hs 556;" 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 560;" f +updateSparks src/Dodge/Update.hs 568;" f updateTempLightSource src/Dodge/LightSource/Update.hs 7;" f updateTeslaArc src/Dodge/Tesla/Arc.hs 29;" f -updateTeslaArcs src/Dodge/Update.hs 542;" f +updateTeslaArcs src/Dodge/Update.hs 550;" f updateTractorBeam src/Dodge/TractorBeam/Update.hs 9;" f -updateTractorBeams src/Dodge/Update.hs 545;" f +updateTractorBeams src/Dodge/Update.hs 553;" f updateTurret src/Dodge/Machine/Update.hs 31;" f updateUniverse src/Dodge/Update.hs 69;" f updateUniverseFirst src/Dodge/Update.hs 80;" f -updateUniverseLast src/Dodge/Update.hs 126;" f -updateUniverseMid src/Dodge/Update.hs 147;" f +updateUniverseLast src/Dodge/Update.hs 130;" f +updateUniverseMid src/Dodge/Update.hs 151;" f updateUseInputInGame src/Dodge/Update/Input/InGame.hs 34;" 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 400;" f -updateWorldEventFlag src/Dodge/Update.hs 110;" f -updateWorldEventFlags src/Dodge/Update.hs 101;" f +updateWheelEvents src/Dodge/Update.hs 408;" f +updateWorldEventFlag src/Dodge/Update.hs 114;" f +updateWorldEventFlags src/Dodge/Update.hs 102;" f upperBody src/Dodge/Creature/Picture.hs 133;" f upperBox src/Shape.hs 154;" f upperBoxHalf src/Shape.hs 220;" f @@ -6336,9 +6337,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 433;" f +zoneClouds src/Dodge/Update.hs 441;" f zoneCreature src/Dodge/Zoning/Creature.hs 52;" f -zoneCreatures src/Dodge/Update.hs 477;" f +zoneCreatures src/Dodge/Update.hs 485;" 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