From 2c6037d852dc1bb76967635f8741fbed118dbd51 Mon Sep 17 00:00:00 2001 From: justin Date: Mon, 25 Nov 2024 11:09:58 +0000 Subject: [PATCH] Fix dragging over items larger than the selection group There is still a further choice/improvement to be made here, but at least dragging shouldn't glitch out as it currently stands --- ghcidOutput | 11 +- src/Dodge/Data/Input.hs | 6 +- src/Dodge/Render/Picture.hs | 14 +- src/Dodge/Update.hs | 9 +- src/Dodge/Update/Input/InGame.hs | 40 ++++-- tags | 230 ++++++++++++++++--------------- 6 files changed, 170 insertions(+), 140 deletions(-) diff --git a/ghcidOutput b/ghcidOutput index 1fd192f4f..5c2a9729f 100644 --- a/ghcidOutput +++ b/ghcidOutput @@ -1 +1,10 @@ -All good (593 modules, at 10:06:01) +/home/justin/Haskell/loop/src/Dodge/Update/Input/InGame.hs:247:22-23: warning: [-Wunused-matches] + Defined but not used: ‘bn’ + | +247 | shiftInvItems k x ab bn xs ss w = fromMaybe w $ do + | ^^ +/home/justin/Haskell/loop/src/Dodge/Update/Input/InGame.hs:252:13-17: warning: [-Wunused-matches] + Defined but not used: ‘above’ + | +252 | above <- ss ^? ix (mini - 1) + | ^^^^^ diff --git a/src/Dodge/Data/Input.hs b/src/Dodge/Data/Input.hs index d99c6453b..ca42d6c35 100644 --- a/src/Dodge/Data/Input.hs +++ b/src/Dodge/Data/Input.hs @@ -22,7 +22,11 @@ data MouseContext | MouseInGame | MouseMenuClick {_mcoMenuClick :: Int} | MouseMenuCursor - | OverInvDrag {_mcoDragSection :: Int, _mcoMaybeSelect :: Maybe (Int,Int)} + | OverInvDrag {_mcoDragSection :: Int + , _mcoMaybeSelect :: Maybe (Int,Int) + , _mcoAboveSelect :: Maybe (Int,Int) + , _mcoBelowSelect :: Maybe (Int,Int) + } | OverInvDragSelect { _mcoSelStart :: (Int,Int), _mcoSelEnd :: Maybe (Int,Int) } | OverInvSelect { _mcoInvSelect :: (Int,Int)} | OverInvFilt { _mcoInvFilt :: (Int,Int)} diff --git a/src/Dodge/Render/Picture.hs b/src/Dodge/Render/Picture.hs index 642abbf5c..629ccfa26 100644 --- a/src/Dodge/Render/Picture.hs +++ b/src/Dodge/Render/Picture.hs @@ -84,14 +84,14 @@ mouseCursorType u = case u ^. uvWorld . input . mouseContext of MouseMenuClick {} -> drawMenuClick 5 MouseMenuCursor -> drawMenuCursor 5 MouseInGame -> drawPlus 5 - OverInvDrag 0 (Just (3,_)) -> drawDragDrop 5 - OverInvDrag 0 Nothing -> drawDragDrop 5 - OverInvDrag 0 (Just (0,_)) -> drawDrag 5 - OverInvDrag 0 _ -> drawEmptySet 5 + OverInvDrag 0 (Just (3,_)) _ _ -> drawDragDrop 5 + OverInvDrag 0 Nothing _ _ -> drawDragDrop 5 + OverInvDrag 0 (Just (0,_)) _ _ -> drawDrag 5 + OverInvDrag 0 _ _ _ -> drawEmptySet 5 -- OverInvDrag 0 _ -> drawDragDrop 5 - OverInvDrag 3 (Just (3,_)) -> drawDrag 5 - OverInvDrag 3 _ -> drawDragPickup 5 - OverInvDrag _ _ -> drawEmptySet 5 + OverInvDrag 3 (Just (3,_)) _ _ -> drawDrag 5 + OverInvDrag 3 _ _ _ -> drawDragPickup 5 + OverInvDrag {} -> drawEmptySet 5 OverInvDragSelect {} -> drawDragSelect 5 OverInvSelect {} -> drawSelect 5 OverInvFilt {} -> drawCombFilter 5 diff --git a/src/Dodge/Update.hs b/src/Dodge/Update.hs index 8cb28ca7a..ff622105d 100644 --- a/src/Dodge/Update.hs +++ b/src/Dodge/Update.hs @@ -306,7 +306,7 @@ checkTermDist w = fromMaybe w $ do updateMouseContext :: Configuration -> Universe -> Universe updateMouseContext cfig u = case u ^. uvWorld . input . mouseContext of - OverInvDrag i _ -> u & uvWorld . input . mouseContext .~ invdrag i + OverInvDrag i _ _ _ -> u & uvWorld . input . mouseContext .~ invdrag i OverInvDragSelect{} -> u _ -> u & uvWorld . input . mouseContext .~ fromMaybe @@ -335,10 +335,13 @@ updateMouseContext cfig u = case u ^. uvWorld . input . mouseContext of | ButtonRight `M.member` (w ^. input . mouseButtons) = MouseAiming | otherwise = MouseInGame mpos = w ^. input . mousePos - invdrag i' = fromMaybe (OverInvDrag i' Nothing) $ do + invdrag i' = fromMaybe (OverInvDrag i' Nothing Nothing Nothing) $ do sss <- w ^? hud . hudElement . diSections + let yint = posSelSecYint cfig (invDisplayParams w) (mpos ^. _y) (i,j) <- inverseSelNumPos cfig (invDisplayParams w) sss mpos - return $ OverInvDrag i' (Just (i,j)) + let above = inverseSelSecYint (yint - 1) sss + bneath = inverseSelSecYint (yint + 1) sss + return $ OverInvDrag i' (Just (i,j)) above bneath overinv = do sss <- w ^? hud . hudElement . diSections selpos <- inverseSelNumPos cfig (invDisplayParams w) sss mpos diff --git a/src/Dodge/Update/Input/InGame.hs b/src/Dodge/Update/Input/InGame.hs index 9e4aee71f..82b0b4e50 100644 --- a/src/Dodge/Update/Input/InGame.hs +++ b/src/Dodge/Update/Input/InGame.hs @@ -93,12 +93,12 @@ updateMouseHeldInGame cfig w = case w ^. input . mouseContext of let msel = inverseSelNumPos cfig ldp sss (w ^. input . mousePos) guard $ Just (fst sstart) == fmap fst msel || isNothing msel return $ w & input . mouseContext . mcoSelEnd .~ msel - OverInvDrag k mmouseover -> fromMaybe w $ do + OverInvDrag k mmouseover ab bn -> fromMaybe w $ do ss <- w ^? hud . hudElement . diSections . ix k . ssItems x <- mmouseover is <- w ^? hud . hudElement . diSelectionExtra return $ if concurrentIS is - then shiftInvItems k x is ss w + then shiftInvItems k x ab bn is ss w else collectInvItems is w -- let mpos = w ^. input . mousePos -- return $ w & dragInvItems k xs cfig mpos ldp sss @@ -127,8 +127,7 @@ tryPickupSelected mpos w = do updateMouseReleaseInGame :: World -> World updateMouseReleaseInGame w = case w ^. input . mouseContext of - --OverInvDrag i mpos -> - OverInvDrag _ mpos -> + OverInvDrag _ mpos _ _ -> input . mouseContext .~ MouseInGame $ fromMaybe w $ tryDropSelected mpos w <|> tryPickupSelected mpos w -- OverInvDrag i mpos -> fromMaybe (dropSelected w & input . mouseContext .~ MouseInGame) $ do @@ -159,7 +158,7 @@ updateMouseClickInGame cfig w = case w ^. input . mouseContext of return $ w & input . mouseContext .~ OverInvDragSelect ysel Nothing - OverInvSelect x -> startDrag x w + OverInvSelect x -> startDrag x cfig w OverTerminalReturn tmid -> terminalReturnEffect tmid w OverTerminalEscape -> w @@ -198,17 +197,26 @@ updateMouseClickInGame cfig w = case w ^. input . mouseContext of ldp = invDisplayParams w mpos = w ^. input . mousePos -startDrag :: (Int, Int) -> World -> World -startDrag (a, b) w = fromMaybe (augInvDirectSelect (a, b) $ setmichosen mempty w) $ do - --(i, j) <- w ^? hud . hudElement . diSelection . _Just +startDrag :: (Int, Int) -> Configuration -> World -> World +startDrag (a, b) cfig w = fromMaybe (augInvDirectSelect (a, b) $ setmichosen mempty w) $ do (i, _) <- w ^? hud . hudElement . diSelection . _Just xs <- w ^? hud . hudElement . diSelectionExtra guard $ i == a && b `IS.member` xs return $ setmichosen xs w where + setmichosen :: IS.IntSet -> World -> World setmichosen x = - (input . mouseContext .~ OverInvDrag a (Just (a, b))) + (input . mouseContext .~ OverInvDrag a (Just (a, b)) above bneath) . (hud . hudElement . diSelectionExtra .~ x) + above :: Maybe (Int,Int) + 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 + yint = posSelSecYint cfig (invDisplayParams w) (w ^. input . mousePos . _y) concurrentIS :: IS.IntSet -> Bool concurrentIS = go . IS.minView @@ -228,19 +236,23 @@ collectInvItems is w = fromMaybe w $ do return . h (j + 1) ks $ swapInvItems (\_ _ -> Just (j + 1)) k w' shiftInvItems :: - Int -> - (Int,Int) -> + Int -> -- section where drag started + (Int,Int) -> -- selection item mouse is over + Maybe (Int,Int) -> -- selection item "above" mouse position (can be same as over) + Maybe (Int,Int) -> -- selection item "below" mouse position (can be same as over) IS.IntSet -> IM.IntMap (SelectionItem a) -> World -> World -shiftInvItems k x xs ss w = fromMaybe w $ do +shiftInvItems k x ab bn xs ss w = fromMaybe w $ do (maxi,_) <- IS.maxView xs (mini,_) <- IS.minView xs if x < (k,mini) then do - minss <- IM.lookupMin ss - guard (mini > fst minss) + above <- ss ^? ix (mini - 1) + guard $ Just (k,mini-1) /= ab +-- minss <- IM.lookupMin ss +-- guard (mini > fst minss) return $ shiftInvItemsUp k xs w else do guard $ x > (k,maxi) diff --git a/tags b/tags index 4c03e4e35..44e0e63ab 100644 --- a/tags +++ b/tags @@ -905,7 +905,7 @@ InheritFloor src/Data/Tile.hs 11;" C InitialPress src/Dodge/Data/Input.hs 14;" C Initialisation src/Dodge/Initialisation.hs 1;" m Initialize src/Dodge/Item/Location/Initialize.hs 1;" m -Input src/Dodge/Data/Input.hs 37;" t +Input src/Dodge/Data/Input.hs 41;" t Input src/Dodge/Data/Input.hs 6;" m Input src/Dodge/Event/Input.hs 3;" m Input src/Dodge/Update/Input.hs 1;" m @@ -1354,16 +1354,16 @@ OutLink src/Dodge/Data/Room.hs 43;" C OutPlacement src/Dodge/Data/GenWorld.hs 126;" t Outline src/Dodge/Render/Outline.hs 1;" m OutwardShockwave src/Dodge/Data/Shockwave.hs 14;" C -OverCombCombine src/Dodge/Data/Input.hs 30;" C -OverCombEscape src/Dodge/Data/Input.hs 32;" C -OverCombFilter src/Dodge/Data/Input.hs 31;" C -OverCombSelect src/Dodge/Data/Input.hs 29;" C +OverCombCombine src/Dodge/Data/Input.hs 34;" C +OverCombEscape src/Dodge/Data/Input.hs 36;" C +OverCombFilter src/Dodge/Data/Input.hs 35;" C +OverCombSelect src/Dodge/Data/Input.hs 33;" C OverInvDrag src/Dodge/Data/Input.hs 25;" C -OverInvDragSelect src/Dodge/Data/Input.hs 26;" C -OverInvFilt src/Dodge/Data/Input.hs 28;" C -OverInvSelect src/Dodge/Data/Input.hs 27;" C -OverTerminalEscape src/Dodge/Data/Input.hs 34;" C -OverTerminalReturn src/Dodge/Data/Input.hs 33;" C +OverInvDragSelect src/Dodge/Data/Input.hs 30;" C +OverInvFilt src/Dodge/Data/Input.hs 32;" C +OverInvSelect src/Dodge/Data/Input.hs 31;" C +OverTerminalEscape src/Dodge/Data/Input.hs 38;" C +OverTerminalReturn src/Dodge/Data/Input.hs 37;" C OverreachingAI src/Dodge/Data/Scenario.hs 31;" C Overstrung src/Dodge/Data/Creature/Perception.hs 57;" C P2Ac src/Dodge/Data/CreatureEffect.hs 53;" t @@ -1856,15 +1856,15 @@ TORCH src/Dodge/Data/Item/Combine.hs 163;" C TRACTORGUN src/Dodge/Data/Item/Combine.hs 156;" C TRANSFORMER src/Dodge/Data/Item/Combine.hs 42;" C TRANSMITTER src/Dodge/Data/Item/Combine.hs 48;" C -TSbackspace src/Dodge/Data/Input.hs 58;" C -TSdelete src/Dodge/Data/Input.hs 59;" C -TSdown src/Dodge/Data/Input.hs 64;" C -TSescape src/Dodge/Data/Input.hs 56;" C -TSleft src/Dodge/Data/Input.hs 61;" C -TSreturn src/Dodge/Data/Input.hs 57;" C -TSright src/Dodge/Data/Input.hs 62;" C -TStab src/Dodge/Data/Input.hs 60;" C -TSup src/Dodge/Data/Input.hs 63;" C +TSbackspace src/Dodge/Data/Input.hs 62;" C +TSdelete src/Dodge/Data/Input.hs 63;" C +TSdown src/Dodge/Data/Input.hs 68;" C +TSescape src/Dodge/Data/Input.hs 60;" C +TSleft src/Dodge/Data/Input.hs 65;" C +TSreturn src/Dodge/Data/Input.hs 61;" C +TSright src/Dodge/Data/Input.hs 66;" C +TStab src/Dodge/Data/Input.hs 64;" C +TSup src/Dodge/Data/Input.hs 67;" C TUBE src/Dodge/Data/Item/Combine.hs 29;" C Tank src/Dodge/Placement/Instance/Tank.hs 1;" m Tanks src/Dodge/Room/Tanks.hs 1;" m @@ -1878,7 +1878,7 @@ TargetingType src/Dodge/Data/Item/Targeting.hs 11;" t TeleSound src/Dodge/Data/SoundOrigin.hs 35;" C Teleport src/Dodge/Room/Teleport.hs 2;" m TempLightSource src/Dodge/Data/LightSource.hs 42;" t -TermSignal src/Dodge/Data/Input.hs 55;" t +TermSignal src/Dodge/Data/Input.hs 59;" t Terminal src/Dodge/Data/Terminal.hs 31;" t Terminal src/Dodge/Data/Terminal.hs 6;" m Terminal src/Dodge/Debug/Terminal.hs 3;" m @@ -2324,8 +2324,8 @@ _cldtParent src/Dodge/Data/DoubleTree.hs 48;" f _cldtParent src/Dodge/Data/DoubleTree.hs 57;" f _cldtUp src/Dodge/Data/DoubleTree.hs 46;" f _cldtUp src/Dodge/Data/DoubleTree.hs 54;" f -_clickPos src/Dodge/Data/Input.hs 46;" f -_clickWorldPos src/Dodge/Data/Input.hs 48;" f +_clickPos src/Dodge/Data/Input.hs 50;" f +_clickWorldPos src/Dodge/Data/Input.hs 52;" f _closeButtons src/Dodge/Data/HUD.hs 54;" f _closeItems src/Dodge/Data/HUD.hs 53;" f _cloudEBO src/Data/Preload/Render.hs 49;" f @@ -2606,9 +2606,9 @@ _heldAim src/Dodge/Data/Item/Use.hs 39;" f _heldDelay src/Dodge/Data/Item/Use.hs 37;" f _heldHammer src/Dodge/Data/Item/Use.hs 38;" f _heldParams src/Dodge/Data/Item/Use.hs 41;" f -_heldPos src/Dodge/Data/Input.hs 47;" f +_heldPos src/Dodge/Data/Input.hs 51;" f _heldTriggerType src/Dodge/Data/Item/Use.hs 42;" f -_heldWorldPos src/Dodge/Data/Input.hs 49;" f +_heldWorldPos src/Dodge/Data/Input.hs 53;" f _hud src/Dodge/Data/World.hs 47;" f _hudElement src/Dodge/Data/HUD.hs 49;" f _humanoidAI src/Dodge/Data/Creature/Misc.hs 69;" f @@ -2749,16 +2749,18 @@ _mcPos src/Dodge/Data/Machine.hs 35;" f _mcType src/Dodge/Data/Machine.hs 40;" f _mcWallIDs src/Dodge/Data/Machine.hs 33;" f _mcWidth src/Dodge/Data/Machine.hs 44;" f -_mcoCombCombine src/Dodge/Data/Input.hs 30;" f -_mcoCombSelect src/Dodge/Data/Input.hs 29;" f +_mcoAboveSelect src/Dodge/Data/Input.hs 27;" f +_mcoBelowSelect src/Dodge/Data/Input.hs 28;" f +_mcoCombCombine src/Dodge/Data/Input.hs 34;" f +_mcoCombSelect src/Dodge/Data/Input.hs 33;" f _mcoDragSection src/Dodge/Data/Input.hs 25;" f -_mcoInvFilt src/Dodge/Data/Input.hs 28;" f -_mcoInvSelect src/Dodge/Data/Input.hs 27;" f -_mcoMaybeSelect src/Dodge/Data/Input.hs 25;" f +_mcoInvFilt src/Dodge/Data/Input.hs 32;" f +_mcoInvSelect src/Dodge/Data/Input.hs 31;" f +_mcoMaybeSelect src/Dodge/Data/Input.hs 26;" f _mcoMenuClick src/Dodge/Data/Input.hs 23;" f -_mcoSelEnd src/Dodge/Data/Input.hs 26;" f -_mcoSelStart src/Dodge/Data/Input.hs 26;" f -_mcoTermID src/Dodge/Data/Input.hs 33;" f +_mcoSelEnd src/Dodge/Data/Input.hs 30;" f +_mcoSelStart src/Dodge/Data/Input.hs 30;" f +_mcoTermID src/Dodge/Data/Input.hs 37;" f _mdBool src/Dodge/Data/Modification.hs 21;" f _mdExternalID src/Dodge/Data/Modification.hs 17;" f _mdExternalID1 src/Dodge/Data/Modification.hs 25;" f @@ -2782,11 +2784,11 @@ _moString src/Dodge/Data/Universe.hs 107;" f _modOption src/Dodge/Data/Universe.hs 97;" f _modString src/Dodge/Data/Universe.hs 95;" f _modifications src/Dodge/Data/LWorld.hs 129;" f -_mouseButtons src/Dodge/Data/Input.hs 42;" f -_mouseButtonsReleased src/Dodge/Data/Input.hs 43;" f -_mouseContext src/Dodge/Data/Input.hs 39;" f -_mouseMoving src/Dodge/Data/Input.hs 40;" f -_mousePos src/Dodge/Data/Input.hs 38;" f +_mouseButtons src/Dodge/Data/Input.hs 46;" f +_mouseButtonsReleased src/Dodge/Data/Input.hs 47;" f +_mouseContext src/Dodge/Data/Input.hs 43;" f +_mouseMoving src/Dodge/Data/Input.hs 44;" f +_mousePos src/Dodge/Data/Input.hs 42;" f _mtBranches src/Dodge/Tree/Compose/Data.hs 8;" f _mtLabel src/Dodge/Tree/Compose/Data.hs 8;" f _mtTree src/Dodge/Tree/Compose/Data.hs 8;" f @@ -2890,7 +2892,7 @@ _prVel src/Dodge/Data/Prop.hs 24;" f _prVelZ src/Dodge/Data/Prop.hs 27;" f _preloadData src/Dodge/Data/Universe.hs 32;" f _pressPlates src/Dodge/Data/LWorld.hs 132;" f -_pressedKeys src/Dodge/Data/Input.hs 41;" f +_pressedKeys src/Dodge/Data/Input.hs 45;" f _previousArcEffect src/Dodge/Data/Item/Params.hs 26;" f _prjAcc src/Dodge/Data/Projectile.hs 19;" f _prjDir src/Dodge/Data/Projectile.hs 20;" f @@ -3012,14 +3014,14 @@ _scPositionedMenuOption src/Dodge/Data/Universe.hs 82;" f _scSelectionList src/Dodge/Data/Universe.hs 84;" f _scTitle src/Dodge/Data/Universe.hs 79;" f _screenTextureVAO src/Data/Preload/Render.hs 50;" f -_scrollAmount src/Dodge/Data/Input.hs 44;" f +_scrollAmount src/Dodge/Data/Input.hs 48;" f _scrollItemID src/Dodge/Data/World.hs 66;" f _scrollItemID src/Dodge/Data/World.hs 75;" f _scrollItemID src/Dodge/Data/World.hs 79;" f _scrollSmoothing src/Dodge/Data/World.hs 63;" f _scrollSmoothing src/Dodge/Data/World.hs 69;" f -_scrollTestFloat src/Dodge/Data/Input.hs 51;" f -_scrollTestInt src/Dodge/Data/Input.hs 52;" f +_scrollTestFloat src/Dodge/Data/Input.hs 55;" f +_scrollTestInt src/Dodge/Data/Input.hs 56;" f _scurColor src/Dodge/Data/SelectionList.hs 27;" f _scurPos src/Dodge/Data/SelectionList.hs 25;" f _scurSize src/Dodge/Data/SelectionList.hs 26;" f @@ -3073,7 +3075,7 @@ _skWidth src/Dodge/Data/Spark.hs 20;" f _skinHead src/Dodge/Data/Creature/Misc.hs 66;" f _skinLower src/Dodge/Data/Creature/Misc.hs 68;" f _skinUpper src/Dodge/Data/Creature/Misc.hs 67;" f -_smoothScrollAmount src/Dodge/Data/Input.hs 45;" f +_smoothScrollAmount src/Dodge/Data/Input.hs 49;" f _soundAngDist src/Sound/Data.hs 53;" f _soundChannel src/Sound/Data.hs 52;" f _soundChunkID src/Sound/Data.hs 57;" f @@ -3126,7 +3128,7 @@ _termID src/Dodge/Data/HUD.hs 46;" 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 -_textInput src/Dodge/Data/Input.hs 50;" f +_textInput src/Dodge/Data/Input.hs 54;" f _textureObject src/Shader/Data.hs 95;" f _tiSel src/Dodge/Data/Terminal.hs 21;" f _tiText src/Dodge/Data/Terminal.hs 20;" f @@ -3345,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 393;" f +advanceScrollAmount src/Dodge/Update.hs 396;" 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 @@ -3589,7 +3591,7 @@ chaseCritVocalization src/Dodge/Creature/ChaseCrit.hs 46;" f checkCombineSelectionExists src/Dodge/DisplayInventory.hs 101;" f checkConnection src/Dodge/Inventory.hs 240;" f checkDeath src/Dodge/Creature/State.hs 75;" f -checkEndGame src/Dodge/Update.hs 680;" f +checkEndGame src/Dodge/Update.hs 683;" f checkErrorGL src/Shader/Compile.hs 255;" f checkFBO src/Framebuffer/Check.hs 6;" f checkGLError src/GLHelp.hs 17;" f @@ -3616,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 733;" f +clClSpringVel src/Dodge/Update.hs 736;" 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 @@ -3644,7 +3646,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 703;" f +cloudEffect src/Dodge/Update.hs 706;" 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 @@ -3658,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 221;" f +collectInvItems src/Dodge/Update/Input/InGame.hs 229;" 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 @@ -3692,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 213;" f +concurrentIS src/Dodge/Update/Input/InGame.hs 221;" f connectItemS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 532;" f connectionBlurb src/Dodge/Terminal.hs 102;" f connectionBlurbLines src/Dodge/Terminal.hs 47;" f @@ -3716,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 751;" f +crCrSpring src/Dodge/Update.hs 754;" 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 @@ -3737,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 746;" f +crSpring src/Dodge/Update.hs 749;" 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 @@ -3984,7 +3986,7 @@ displayFrameTicks src/Dodge/Render/Picture.hs 39;" f displayFreeSlots src/Dodge/DisplayInventory.hs 212;" f displayIndents src/Dodge/DisplayInventory.hs 119;" f displaySectionsSizes src/Dodge/DisplayInventory.hs 114;" f -displayTerminalLineString src/Dodge/Update.hs 422;" f +displayTerminalLineString src/Dodge/Update.hs 425;" f dist src/Geometry/Vector.hs 179;" f dist3 src/Geometry/Vector3D.hs 101;" f divTo src/Geometry/Zone.hs 6;" f @@ -4041,7 +4043,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 348;" f +doRegexInput src/Dodge/Update/Input/InGame.hs 360;" f doRoomInPlacements src/Dodge/Layout.hs 97;" f doRoomOutPlacements src/Dodge/Layout.hs 107;" f doRoomPlacements src/Dodge/Layout.hs 122;" f @@ -4068,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 404;" f +doWorldEvents src/Dodge/Update.hs 407;" 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 @@ -4608,7 +4610,7 @@ invTrees' src/Dodge/Item/Grammar.hs 202;" f inventoryExtra src/Dodge/Render/HUD.hs 299;" f inventoryExtraH src/Dodge/Render/HUD.hs 310;" f inventoryX src/Dodge/Creature.hs 115;" f -inverseSelNumPos src/Dodge/SelectionSections.hs 223;" f +inverseSelNumPos src/Dodge/SelectionSections.hs 219;" f inverseSelSecYint src/Dodge/SelectionSections.hs 192;" f inverseSelSecYintXPosCheck src/Dodge/SelectionSections.hs 203;" f inverseShockwaveAt src/Dodge/WorldEvent/Shockwave.hs 43;" f @@ -4633,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 371;" f +isOverTerminalScreen src/Dodge/Update.hs 374;" f isPutID src/Dodge/Placement/Instance/Wall.hs 129;" f isRHS src/Geometry/LHS.hs 24;" f isUnusedLnk src/Dodge/PlacementSpot.hs 61;" f @@ -4890,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 665;" f +markWallSeen src/Dodge/Update.hs 668;" f maxDamageType src/Dodge/Damage.hs 37;" f maxShowX src/Dodge/Combine/Graph.hs 49;" f maxViewDistance src/Dodge/Viewpoints.hs 26;" f @@ -4901,7 +4903,7 @@ maybeClearPath src/Dodge/Block.hs 77;" f maybeClearPaths src/Dodge/Block.hs 74;" f maybeDestroyBlock src/Dodge/Wall/Damage.hs 26;" f maybeDestroyDoor src/Dodge/Wall/Damage.hs 31;" f -maybeExitCombine src/Dodge/Update/Input/InGame.hs 524;" f +maybeExitCombine src/Dodge/Update/Input/InGame.hs 536;" f maybeOpenTerminal src/Dodge/Update.hs 123;" f maybeReadFile src/Dodge/LoadSeed.hs 10;" f maybeTakeOne src/RandomHelp.hs 111;" f @@ -5017,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 694;" f +mvGust src/Dodge/Update.hs 697;" 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 @@ -5126,7 +5128,7 @@ parseNum src/Dodge/Debug/Terminal.hs 73;" f pathConnected src/Dodge/Room/CheckConsistency.hs 14;" f pathEdgeObstructed src/Dodge/Path.hs 43;" f pauseAndFloatCam src/Dodge/Camera.hs 10;" f -pauseGame src/Dodge/Update/Input/InGame.hs 444;" f +pauseGame src/Dodge/Update/Input/InGame.hs 456;" f pauseMenu src/Dodge/Menu.hs 53;" f pauseMenuOptions src/Dodge/Menu.hs 58;" f pauseSound src/Dodge/SoundLogic.hs 41;" f @@ -5285,7 +5287,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 657;" f +ppEvents src/Dodge/Update.hs 660;" f ppLevelReset src/Dodge/PressPlate.hs 13;" f preCritStart src/Dodge/Room/Start.hs 82;" f preloadRender src/Preload/Render.hs 30;" f @@ -5589,7 +5591,7 @@ sectionsSizes src/Dodge/DisplayInventory.hs 223;" f 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 467;" f +selCloseObj src/Dodge/Update/Input/InGame.hs 479;" f selNumPos src/Dodge/Render/HUD.hs 437;" f selNumPosCardinal src/Dodge/Render/HUD.hs 460;" f selSecDrawCursor src/Dodge/Render/List.hs 130;" f @@ -5629,7 +5631,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 446;" f +setOldPos src/Dodge/Update.hs 449;" f setOutLinks src/Dodge/RoomLink.hs 48;" f setOutLinksByType src/Dodge/RoomLink.hs 57;" f setOutLinksPD src/Dodge/RoomLink.hs 77;" f @@ -5684,9 +5686,9 @@ shiftChildren src/Dodge/Tree/Compose.hs 43;" f shiftDraw src/Dodge/Render/ShapePicture.hs 66;" f shiftDraw' src/Dodge/Render/ShapePicture.hs 72;" f shiftInBy src/Dodge/PlacementSpot.hs 236;" f -shiftInvItems src/Dodge/Update/Input/InGame.hs 230;" f -shiftInvItemsDown src/Dodge/Update/Input/InGame.hs 257;" f -shiftInvItemsUp src/Dodge/Update/Input/InGame.hs 251;" f +shiftInvItems src/Dodge/Update/Input/InGame.hs 238;" f +shiftInvItemsDown src/Dodge/Update/Input/InGame.hs 269;" f +shiftInvItemsUp src/Dodge/Update/Input/InGame.hs 263;" 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 @@ -5736,7 +5738,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 742;" f +simpleCrSprings src/Dodge/Update.hs 745;" f simpleDamFL src/Dodge/Flame.hs 41;" f simpleTermMessage src/Dodge/Terminal.hs 253;" f sineRaisePitchOneSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 504;" f @@ -5785,7 +5787,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 447;" f +spaceAction src/Dodge/Update/Input/InGame.hs 459;" 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 @@ -5841,7 +5843,7 @@ stackText src/Picture/Base.hs 188;" 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/Input/InGame.hs 201;" f +startDrag src/Dodge/Update/Input/InGame.hs 200;" f startInvList src/Dodge/Creature.hs 109;" f startInventory src/Dodge/Creature.hs 112;" f startNewGameInSlot src/Dodge/StartNewGame.hs 15;" f @@ -5965,7 +5967,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 426;" f +tmUpdate src/Dodge/Update.hs 429;" f toBothLnk src/Dodge/RoomLink.hs 121;" f toClosestMultiple src/HelpNum.hs 3;" f toColor8 src/Color.hs 148;" f @@ -5982,8 +5984,8 @@ toggleCombineInv src/Dodge/DisplayInventory.hs 35;" f toggleCommand src/Dodge/Terminal.hs 196;" f toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 79;" f toggleJust src/MaybeHelp.hs 41;" f -toggleMap src/Dodge/Update/Input/InGame.hs 487;" f -toggleTweakInv src/Dodge/Update/Input/InGame.hs 501;" f +toggleMap src/Dodge/Update/Input/InGame.hs 499;" f +toggleTweakInv src/Dodge/Update/Input/InGame.hs 513;" f togglesToEffects src/Dodge/Terminal.hs 248;" f tone440S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 474;" f tone440sawtoothS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 444;" f @@ -6054,7 +6056,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 510;" f +tryCombine src/Dodge/Update/Input/InGame.hs 522;" f tryDropSelected src/Dodge/Update/Input/InGame.hs 109;" f tryGetChannel src/Sound.hs 96;" f tryGetRootAttachedFromInvID src/Dodge/Inventory/Location.hs 20;" f @@ -6102,82 +6104,82 @@ 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 382;" f +updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 394;" 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 523;" f +updateBullets src/Dodge/Update.hs 526;" f updateCamera src/Dodge/Update/Camera.hs 31;" f updateCloseObjects src/Dodge/Inventory.hs 119;" f -updateCloud src/Dodge/Update.hs 708;" f -updateClouds src/Dodge/Update.hs 552;" f +updateCloud src/Dodge/Update.hs 711;" f +updateClouds src/Dodge/Update.hs 555;" 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 492;" f -updateCreatureSoundPositions src/Dodge/Update.hs 468;" f +updateCreatureGroups src/Dodge/Update.hs 495;" f +updateCreatureSoundPositions src/Dodge/Update.hs 471;" f updateDebugMessageOffset src/Dodge/Update.hs 92;" f -updateDelayedEvents src/Dodge/Update.hs 771;" f +updateDelayedEvents src/Dodge/Update.hs 774;" f updateDisplaySections src/Dodge/DisplayInventory.hs 126;" f updateDistortion src/Dodge/Distortion.hs 5;" f -updateDistortions src/Dodge/Update.hs 513;" f +updateDistortions src/Dodge/Update.hs 516;" f updateEnergyBall src/Dodge/EnergyBall.hs 46;" f -updateEnergyBalls src/Dodge/Update.hs 540;" f -updateEnterRegex src/Dodge/Update/Input/InGame.hs 423;" f +updateEnergyBalls src/Dodge/Update.hs 543;" f +updateEnterRegex src/Dodge/Update/Input/InGame.hs 435;" 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 537;" f +updateFlames src/Dodge/Update.hs 540;" f updateFlare src/Dodge/Flare.hs 7;" f updateFloatingCamera src/Dodge/Update/Camera.hs 36;" f -updateFunctionKey src/Dodge/Update/Input/InGame.hs 274;" f -updateFunctionKeys src/Dodge/Update/Input/InGame.hs 267;" f -updateGusts src/Dodge/Update.hs 691;" f +updateFunctionKey src/Dodge/Update/Input/InGame.hs 286;" f +updateFunctionKeys src/Dodge/Update/Input/InGame.hs 279;" f +updateGusts src/Dodge/Update.hs 694;" f updateHeldRootItem src/Dodge/Creature/State.hs 167;" f updateHumanoid src/Dodge/Humanoid.hs 12;" f -updateIMl src/Dodge/Update.hs 482;" f -updateIMl' src/Dodge/Update.hs 487;" f +updateIMl src/Dodge/Update.hs 485;" f +updateIMl' src/Dodge/Update.hs 490;" f updateInGameCamera src/Dodge/Update/Camera.hs 70;" f -updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 327;" f -updateInstantBullets src/Dodge/Update.hs 629;" f +updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 339;" f +updateInstantBullets src/Dodge/Update.hs 632;" f updateInv src/Dodge/Creature/State.hs 152;" f updateInventoryPositioning src/Dodge/DisplayInventory.hs 87;" f updateItemTargeting src/Dodge/Creature/State.hs 268;" f updateItemWithOrientation src/Dodge/Creature/State.hs 194;" f -updateKeyInGame src/Dodge/Update/Input/InGame.hs 321;" f -updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 309;" f +updateKeyInGame src/Dodge/Update/Input/InGame.hs 333;" f +updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 321;" f updateLampoid src/Dodge/Lampoid.hs 12;" f updateLaser src/Dodge/Laser/Update.hs 13;" f -updateLasers src/Dodge/Update.hs 411;" f -updateLightSources src/Dodge/Update.hs 516;" f +updateLasers src/Dodge/Update.hs 414;" f +updateLightSources src/Dodge/Update.hs 519;" f updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f -updateLongPressInGame src/Dodge/Update/Input/InGame.hs 342;" f -updateMIM src/Dodge/Update.hs 642;" f +updateLongPressInGame src/Dodge/Update/Input/InGame.hs 354;" f +updateMIM src/Dodge/Update.hs 645;" f updateMachine src/Dodge/Machine/Update.hs 19;" f -updateMouseClickInGame src/Dodge/Update/Input/InGame.hs 154;" f +updateMouseClickInGame src/Dodge/Update/Input/InGame.hs 153;" f updateMouseContext src/Dodge/Update.hs 307;" 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 128;" f updateMovement src/Dodge/Creature/State.hs 331;" f -updateObjCatMaybes src/Dodge/Update.hs 504;" f -updateObjMapMaybe src/Dodge/Update.hs 497;" f -updatePastWorlds src/Dodge/Update.hs 399;" f +updateObjCatMaybes src/Dodge/Update.hs 507;" f +updateObjMapMaybe src/Dodge/Update.hs 500;" f +updatePastWorlds src/Dodge/Update.hs 402;" f updatePosEvent src/Dodge/PosEvent.hs 11;" f -updatePosEvents src/Dodge/Update.hs 549;" f +updatePosEvents src/Dodge/Update.hs 552;" f updatePreload src/Preload/Update.hs 20;" f -updatePressedButtonsCarte src/Dodge/Update/Input/InGame.hs 284;" f -updatePressedButtonsCarte' src/Dodge/Update/Input/InGame.hs 287;" f +updatePressedButtonsCarte src/Dodge/Update/Input/InGame.hs 296;" f +updatePressedButtonsCarte' src/Dodge/Update/Input/InGame.hs 299;" 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 519;" f +updateRadarBlips src/Dodge/Update.hs 522;" f updateRadarSweep src/Dodge/RadarSweep.hs 25;" f -updateRadarSweeps src/Dodge/Update.hs 543;" f +updateRadarSweeps src/Dodge/Update.hs 546;" f updateRandNode src/TreeHelp.hs 108;" f updateRenderSplit appDodge/Main.hs 106;" f updateRootItemID src/Dodge/Inventory/Location.hs 35;" f @@ -6186,19 +6188,19 @@ updateScopeZoom' src/Dodge/Update/Camera.hs 132;" f updateScrollTestValue src/Dodge/ScrollValue.hs 6;" f updateSection src/Dodge/DisplayInventory.hs 287;" f updateSectionsPositioning src/Dodge/DisplayInventory.hs 260;" f -updateSeenWalls src/Dodge/Update.hs 660;" f +updateSeenWalls src/Dodge/Update.hs 663;" f updateShockwave src/Dodge/Shockwave/Update.hs 12;" f -updateShockwaves src/Dodge/Update.hs 534;" f +updateShockwaves src/Dodge/Update.hs 537;" 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 546;" f +updateSparks src/Dodge/Update.hs 549;" f updateTempLightSource src/Dodge/LightSource/Update.hs 7;" f updateTeslaArc src/Dodge/Tesla/Arc.hs 29;" f -updateTeslaArcs src/Dodge/Update.hs 528;" f +updateTeslaArcs src/Dodge/Update.hs 531;" f updateTractorBeam src/Dodge/TractorBeam/Update.hs 9;" f -updateTractorBeams src/Dodge/Update.hs 531;" f +updateTractorBeams src/Dodge/Update.hs 534;" f updateTurret src/Dodge/Machine/Update.hs 47;" f updateUniverse src/Dodge/Update.hs 71;" f updateUniverseFirst src/Dodge/Update.hs 83;" f @@ -6209,7 +6211,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 386;" f +updateWheelEvents src/Dodge/Update.hs 389;" f updateWorldEventFlag src/Dodge/Update.hs 117;" f updateWorldEventFlags src/Dodge/Update.hs 105;" f upperBody src/Dodge/Creature/Picture.hs 133;" f @@ -6381,9 +6383,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 419;" f +zoneClouds src/Dodge/Update.hs 422;" f zoneCreature src/Dodge/Zoning/Creature.hs 52;" f -zoneCreatures src/Dodge/Update.hs 463;" f +zoneCreatures src/Dodge/Update.hs 466;" 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