diff --git a/src/Dodge/Data/CardinalPoint.hs b/src/Dodge/Data/CardinalPoint.hs index 9d0dc11d8..500d52f55 100644 --- a/src/Dodge/Data/CardinalPoint.hs +++ b/src/Dodge/Data/CardinalPoint.hs @@ -26,7 +26,7 @@ data CardinalCover | NSW | NS -data XInfinity a = NegInf | NonInf a | PosInf +data XInfinity a = NegInf | NonInf {_nonInf :: a} | PosInf deriving (Eq, Ord, Show) makeLenses ''XInfinity diff --git a/src/Dodge/Data/Input.hs b/src/Dodge/Data/Input.hs index 289173228..c752a679a 100644 --- a/src/Dodge/Data/Input.hs +++ b/src/Dodge/Data/Input.hs @@ -17,11 +17,7 @@ data MouseContext | MouseInGame | MouseMenuClick {_mcoMenuClick :: Int} | MouseMenuCursor - | OverInvDrag {_mcoDragSection :: Int - , _mcoMaybeSelect :: Maybe (Int,Int) --- , _mcoAboveSelect :: Maybe (Int,Int) --- , _mcoBelowSelect :: Maybe (Int,Int) - } + | OverInvDrag {_mcoDragSection :: Int , _mcoMaybeSelect :: Maybe (Int,Int) } | OverInvDragSelect { _mcoSecSelStart :: Maybe (Int,Int), _mcoSelEnd :: Maybe Int } | OverInvSelect { _mcoInvSelect :: (Int,Int)} | OverCombFiltInv { _mcoInvFilt :: (Int,Int)} diff --git a/src/Dodge/SelectionSections.hs b/src/Dodge/SelectionSections.hs index ddc5df969..b822f4e0e 100644 --- a/src/Dodge/SelectionSections.hs +++ b/src/Dodge/SelectionSections.hs @@ -10,6 +10,7 @@ module Dodge.SelectionSections ( inverseSelNumPos, ) where +import Dodge.Data.CardinalPoint import qualified Data.IntSet as IS import Control.Applicative import qualified Control.Foldl as L @@ -198,16 +199,18 @@ selSecYint i j sss = do where secpos = sum . fmap _ssShownLength . fst $ IM.split i sss -inverseSelSecYint :: Int -> IM.IntMap (SelectionSection a) -> Maybe (Int, Int) -inverseSelSecYint yint sss = do - ((i, ss), othersss) <- IM.minViewWithKey sss - let l = _ssShownLength ss - if l <= yint - then inverseSelSecYint (yint - l) othersss - else do - let ls = L.postscan (L.premap _siHeight L.sum) (_ssItems ss) - (j,_) <- L.fold (L.find (\(_,x) -> x - _ssOffset ss > yint)) $ IM.toList ls - return (i, j) +inverseSelSecYint :: Int -> IM.IntMap (SelectionSection a) -> XInfinity (Int, Int) +inverseSelSecYint yint sss + | yint < 0 = NegInf + | otherwise = fromMaybe PosInf $ do + ((i, ss), othersss) <- IM.minViewWithKey sss + let l = _ssShownLength ss + if l <= yint + then return $ inverseSelSecYint (yint - l) othersss + else do + let ls = L.postscan (L.premap _siHeight L.sum) (_ssItems ss) + (j,_) <- L.fold (L.find (\(_,x) -> x - _ssOffset ss > yint)) $ IM.toList ls + return $ NonInf (i, j) inverseSelSecYintXPosCheck :: Configuration -> @@ -216,8 +219,8 @@ inverseSelSecYintXPosCheck :: Int -> IM.IntMap (SelectionSection a) -> Maybe (Int,Int) -inverseSelSecYintXPosCheck cfig ldp x yint sss = do - (i,j) <- inverseSelSecYint yint sss +inverseSelSecYintXPosCheck cfig ldp x yint sss = do + (i,j) <- inverseSelSecYint yint sss ^? nonInf let V2 x0 _ = screenPosAbs cfig (ldp ^. ldpPos) sindent <- sss ^? ix i . ssIndent itindent <- sss ^? ix i . ssItems . ix j . siOffX diff --git a/src/Dodge/Update/Input/InGame.hs b/src/Dodge/Update/Input/InGame.hs index 8efcf3a15..ed51e2b2c 100644 --- a/src/Dodge/Update/Input/InGame.hs +++ b/src/Dodge/Update/Input/InGame.hs @@ -5,6 +5,7 @@ module Dodge.Update.Input.InGame ( updateMouseInGame, ) where +import Dodge.Data.CardinalPoint import Dodge.Inventory.CheckSlots import Dodge.Base.Collide import Geometry.Vector @@ -103,12 +104,17 @@ updateMouseHeldInGame cfig w = case w ^. input . mouseContext of OverInvDragSelect (Just sstart) _ -> fromMaybe w $ do sss <- w ^? hud . hudElement . diSections let msel = inverseSelNumPos cfig invDP sss (w ^. input . mousePos) - guard $ Just (fst sstart) == fmap fst msel - return $ w & input . mouseContext . mcoSelEnd .~ fmap snd msel + return $ case msel of + Nothing -> w & input . mouseContext . mcoSelEnd .~ Nothing + Just (i,j) | i == fst sstart -> w & input . mouseContext . mcoSelEnd ?~ j + | i < fst sstart -> w & input . mouseContext . mcoSelEnd ?~ 0 + | otherwise -> w & input . mouseContext . mcoSelEnd .~ fmap fst + (IM.lookupMax =<< sss ^? ix (fst sstart) . ssItems) OverInvDragSelect Nothing _ -> fromMaybe w $ do sss <- w ^? hud . hudElement . diSections ysel <- inverseSelSecYint (posSelSecYint cfig invDP (w ^. input . mousePos . _y)) sss + ^? nonInf guard (isGroupSelectableSection $ fst ysel) return $ w & input . mouseContext .~ OverInvDragSelect (Just ysel) Nothing OverInvDrag k mmouseover -> doDrag cfig 30 k mmouseover w @@ -204,7 +210,7 @@ updateMouseClickInGame cfig w = case w ^. input . mouseContext of MouseInGame -> fromMaybe (w & input . mouseContext .~ OverInvDragSelect Nothing Nothing) $ do sss <- w ^? hud . hudElement . diSections ysel <- inverseSelSecYint - (posSelSecYint cfig invDP (w ^. input . mousePos . _y)) sss + (posSelSecYint cfig invDP (w ^. input . mousePos . _y)) sss ^? nonInf guard (isGroupSelectableSection $ fst ysel) return $ w & input . mouseContext .~ OverInvDragSelect (Just ysel) Nothing OverInvSelect (-1, _) @@ -314,8 +320,10 @@ shiftInvItems :: shiftInvItems cfig n k x xs ss w = setSelWhileDragging . fromMaybe w $ do let xk = fst x let yint = posSelSecYint cfig invDP (w ^. input . mousePos . _y) - bn = inverseSelSecYint (yint + 1) =<< w ^? hud . hudElement . diSections - ab = inverseSelSecYint (yint - 1) =<< w ^? hud . hudElement . diSections + bn = (\v -> inverseSelSecYint (yint + 1) v ^? nonInf) + =<< w ^? hud . hudElement . diSections + ab = (\v -> inverseSelSecYint (yint - 1) v ^? nonInf) + =<< w ^? hud . hudElement . diSections guard $ xk == k || xk + 1 == k || xk -1 == k (maxi, _) <- IS.maxView xs (mini, _) <- IS.minView xs diff --git a/tags b/tags index e1bc48727..3120c92bd 100644 --- a/tags +++ b/tags @@ -597,7 +597,7 @@ Inanimate src/Dodge/Data/ActionPlan.hs 17;" C InanimateAI src/Dodge/Data/Creature/Misc.hs 41;" C IncendiaryBall src/Dodge/Data/EnergyBall/Type.hs 13;" C InheritFloor src/Data/Tile.hs 12;" C -Input src/Dodge/Data/Input.hs 38;" t +Input src/Dodge/Data/Input.hs 37;" t InputScreen src/Dodge/Data/Universe.hs 92;" C Inspect_wall src/Dodge/Data/Config.hs 91;" C Institution src/Dodge/Data/Scenario.hs 42;" t @@ -793,7 +793,7 @@ MountedObject src/Dodge/Data/MountedObject.hs 11;" t MountedProp src/Dodge/Data/MountedObject.hs 13;" C MouseAiming src/Dodge/Data/Input.hs 16;" C MouseContext src/Dodge/Data/Input.hs 14;" t -MouseGameRotate src/Dodge/Data/Input.hs 35;" C +MouseGameRotate src/Dodge/Data/Input.hs 34;" C MouseInGame src/Dodge/Data/Input.hs 17;" C MouseMenuClick src/Dodge/Data/Input.hs 18;" C MouseMenuCursor src/Dodge/Data/Input.hs 19;" C @@ -954,17 +954,17 @@ OptionScreen src/Dodge/Data/Universe.hs 82;" C OptionScreenFlag src/Dodge/Data/Universe.hs 72;" t OutAction src/Dodge/Creature/Action.hs 46;" t OutLink src/Dodge/Data/Room.hs 43;" C -OutsideTerminal src/Dodge/Data/Input.hs 34;" C +OutsideTerminal src/Dodge/Data/Input.hs 33;" C OutwardShockwave src/Dodge/Data/Shockwave.hs 14;" C -OverCombCombine src/Dodge/Data/Input.hs 30;" C -OverCombEscape src/Dodge/Data/Input.hs 32;" C -OverCombFiltInv src/Dodge/Data/Input.hs 28;" C -OverCombFilter src/Dodge/Data/Input.hs 31;" C -OverCombSelect src/Dodge/Data/Input.hs 29;" C +OverCombCombine src/Dodge/Data/Input.hs 29;" C +OverCombEscape src/Dodge/Data/Input.hs 31;" C +OverCombFiltInv src/Dodge/Data/Input.hs 27;" C +OverCombFilter src/Dodge/Data/Input.hs 30;" C +OverCombSelect src/Dodge/Data/Input.hs 28;" C OverInvDrag src/Dodge/Data/Input.hs 20;" C -OverInvDragSelect src/Dodge/Data/Input.hs 26;" C -OverInvSelect src/Dodge/Data/Input.hs 27;" C -OverTerminal src/Dodge/Data/Input.hs 33;" C +OverInvDragSelect src/Dodge/Data/Input.hs 25;" C +OverInvSelect src/Dodge/Data/Input.hs 26;" C +OverTerminal src/Dodge/Data/Input.hs 32;" 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 @@ -1325,15 +1325,15 @@ TORCH src/Dodge/Data/Item/Combine.hs 176;" C TRACTORGUN src/Dodge/Data/Item/Combine.hs 170;" C TRANSFORMER src/Dodge/Data/Item/Combine.hs 65;" C TRANSMITTER src/Dodge/Data/Item/Combine.hs 71;" C -TSbackspace src/Dodge/Data/Input.hs 59;" C -TSdelete src/Dodge/Data/Input.hs 60;" C -TSdown src/Dodge/Data/Input.hs 65;" C -TSescape src/Dodge/Data/Input.hs 57;" C -TSleft src/Dodge/Data/Input.hs 62;" C -TSreturn src/Dodge/Data/Input.hs 58;" C -TSright src/Dodge/Data/Input.hs 63;" C -TStab src/Dodge/Data/Input.hs 61;" C -TSup src/Dodge/Data/Input.hs 64;" 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 TUBE src/Dodge/Data/Item/Combine.hs 52;" C Tap src/Dodge/Data/SoundOrigin.hs 39;" C TargetCursor src/Dodge/Data/Item/Targeting.hs 14;" C @@ -1342,7 +1342,7 @@ TargetRBPress src/Dodge/Data/Item/Targeting.hs 12;" C TargetingLaser src/Dodge/Data/Laser.hs 18;" C TargetingType src/Dodge/Data/Item/Targeting.hs 11;" t TeleSound src/Dodge/Data/SoundOrigin.hs 36;" C -TermSignal src/Dodge/Data/Input.hs 56;" t +TermSignal src/Dodge/Data/Input.hs 55;" t Terminal src/Dodge/Data/Terminal.hs 21;" t TerminalDeactivated src/Dodge/Data/Terminal/Status.hs 12;" C TerminalLine src/Dodge/Data/Terminal.hs 38;" t @@ -1678,8 +1678,8 @@ _cldtParent src/Dodge/Data/DoubleTree.hs 47;" f _cldtParent src/Dodge/Data/DoubleTree.hs 56;" f _cldtUp src/Dodge/Data/DoubleTree.hs 45;" f _cldtUp src/Dodge/Data/DoubleTree.hs 53;" f -_clickPos src/Dodge/Data/Input.hs 47;" f -_clickWorldPos src/Dodge/Data/Input.hs 49;" f +_clickPos src/Dodge/Data/Input.hs 46;" f +_clickWorldPos src/Dodge/Data/Input.hs 48;" f _closeButtons src/Dodge/Data/HUD.hs 48;" f _closeItems src/Dodge/Data/HUD.hs 47;" f _cloudEBO src/Data/Preload/Render.hs 51;" f @@ -1908,8 +1908,8 @@ _guTime src/Dodge/Data/Gust.hs 17;" f _guVel src/Dodge/Data/Gust.hs 16;" f _gusts src/Dodge/Data/LWorld.hs 105;" f _gwWorld src/Dodge/Data/GenWorld.hs 24;" f -_heldPos src/Dodge/Data/Input.hs 48;" f -_heldWorldPos src/Dodge/Data/Input.hs 50;" f +_heldPos src/Dodge/Data/Input.hs 47;" f +_heldWorldPos src/Dodge/Data/Input.hs 49;" f _hotkeys src/Dodge/Data/LWorld.hs 150;" f _hud src/Dodge/Data/World.hs 45;" f _hudElement src/Dodge/Data/HUD.hs 43;" f @@ -2038,19 +2038,17 @@ _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 -_mcoAboveSelect src/Dodge/Data/Input.hs 22;" f -_mcoBelowSelect src/Dodge/Data/Input.hs 23;" f -_mcoCombCombine src/Dodge/Data/Input.hs 30;" f -_mcoCombSelect src/Dodge/Data/Input.hs 29;" f +_mcoCombCombine src/Dodge/Data/Input.hs 29;" f +_mcoCombSelect src/Dodge/Data/Input.hs 28;" f _mcoDragSection src/Dodge/Data/Input.hs 20;" f -_mcoInvFilt src/Dodge/Data/Input.hs 28;" f -_mcoInvSelect src/Dodge/Data/Input.hs 27;" f +_mcoInvFilt src/Dodge/Data/Input.hs 27;" f +_mcoInvSelect src/Dodge/Data/Input.hs 26;" f _mcoMaybeSelect src/Dodge/Data/Input.hs 21;" f _mcoMenuClick src/Dodge/Data/Input.hs 18;" f -_mcoSecSelStart src/Dodge/Data/Input.hs 26;" f -_mcoSelEnd src/Dodge/Data/Input.hs 26;" f -_mcoTermID src/Dodge/Data/Input.hs 33;" f -_mcoTermStatus src/Dodge/Data/Input.hs 33;" f +_mcoSecSelStart src/Dodge/Data/Input.hs 25;" f +_mcoSelEnd src/Dodge/Data/Input.hs 25;" f +_mcoTermID src/Dodge/Data/Input.hs 32;" f +_mcoTermStatus src/Dodge/Data/Input.hs 32;" f _mctTurret src/Dodge/Data/Machine.hs 53;" f _mdBool src/Dodge/Data/Modification.hs 21;" f _mdExternalID src/Dodge/Data/Modification.hs 17;" f @@ -2074,11 +2072,11 @@ _moString src/Dodge/Data/Universe.hs 110;" f _modOption src/Dodge/Data/Universe.hs 100;" f _modString src/Dodge/Data/Universe.hs 98;" f _modifications src/Dodge/Data/LWorld.hs 135;" f -_mouseButtons src/Dodge/Data/Input.hs 43;" f -_mouseButtonsReleased src/Dodge/Data/Input.hs 44;" f -_mouseContext src/Dodge/Data/Input.hs 40;" f -_mouseMoving src/Dodge/Data/Input.hs 41;" f -_mousePos src/Dodge/Data/Input.hs 39;" 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 _mtBranches src/Dodge/Data/MetaTree.hs 10;" f _mtLabel src/Dodge/Data/MetaTree.hs 10;" f _mtTree src/Dodge/Data/MetaTree.hs 10;" f @@ -2098,6 +2096,7 @@ _mzRot src/Dodge/Data/Muzzle.hs 11;" f _nodeMetaTree src/Dodge/Data/MetaTree.hs 14;" f _nodeTree src/Dodge/Data/MetaTree.hs 13;" f _nodesSearched src/Dodge/Data/Creature/Memory.hs 15;" f +_nonInf src/Dodge/Data/CardinalPoint.hs 29;" f _numLinkEW src/Dodge/Data/Room.hs 33;" f _numLinkNS src/Dodge/Data/Room.hs 34;" f _numberChasmVerxs src/Dodge/Data/CWorld.hs 31;" f @@ -2184,7 +2183,7 @@ _prVel src/Dodge/Data/Prop.hs 24;" f _prVelZ src/Dodge/Data/Prop.hs 27;" f _preloadData src/Dodge/Data/Universe.hs 33;" f _pressPlates src/Dodge/Data/LWorld.hs 138;" f -_pressedKeys src/Dodge/Data/Input.hs 42;" f +_pressedKeys src/Dodge/Data/Input.hs 41;" f _projectiles src/Dodge/Data/LWorld.hs 108;" f _props src/Dodge/Data/LWorld.hs 106;" f _proxDist src/Dodge/Data/Machine/Sensor.hs 29;" f @@ -2300,14 +2299,14 @@ _scPositionedMenuOption src/Dodge/Data/Universe.hs 86;" f _scSelectionList src/Dodge/Data/Universe.hs 88;" f _scTitle src/Dodge/Data/Universe.hs 83;" f _screenTextureVAO src/Data/Preload/Render.hs 52;" f -_scrollAmount src/Dodge/Data/Input.hs 45;" f +_scrollAmount src/Dodge/Data/Input.hs 44;" 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 52;" f -_scrollTestInt src/Dodge/Data/Input.hs 53;" f +_scrollTestFloat src/Dodge/Data/Input.hs 51;" f +_scrollTestInt src/Dodge/Data/Input.hs 52;" f _scurColor src/Dodge/Data/SelectionList.hs 26;" f _scurPos src/Dodge/Data/SelectionList.hs 24;" f _scurSize src/Dodge/Data/SelectionList.hs 25;" f @@ -2352,7 +2351,7 @@ _skVel src/Dodge/Data/Spark.hs 15;" f _skinHead src/Dodge/Data/Creature/Misc.hs 78;" f _skinLower src/Dodge/Data/Creature/Misc.hs 80;" f _skinUpper src/Dodge/Data/Creature/Misc.hs 79;" f -_smoothScrollAmount src/Dodge/Data/Input.hs 46;" f +_smoothScrollAmount src/Dodge/Data/Input.hs 45;" f _soundAngDist src/Sound/Data.hs 49;" f _soundChannel src/Sound/Data.hs 48;" f _soundChunkID src/Sound/Data.hs 53;" f @@ -2404,7 +2403,7 @@ _termID src/Dodge/Data/HUD.hs 40;" f _terminals src/Dodge/Data/LWorld.hs 128;" f _teslaArcs src/Dodge/Data/LWorld.hs 116;" f _testFloat src/Dodge/Data/World.hs 43;" f -_textInput src/Dodge/Data/Input.hs 51;" f +_textInput src/Dodge/Data/Input.hs 50;" f _textureObject src/Shader/Data.hs 95;" f _tiText src/Dodge/Data/Terminal/Status.hs 14;" f _tileArrayZ src/Data/Tile.hs 24;" f @@ -2609,7 +2608,7 @@ addToTrunk src/TreeHelp.hs 156;" f addWarningTerminal src/Dodge/Room/Warning.hs 54;" f addZ src/Geometry/Vector3D.hs 89;" f adjustIMZone src/Dodge/Base.hs 81;" f -advanceScrollAmount src/Dodge/Update.hs 433;" f +advanceScrollAmount src/Dodge/Update.hs 427;" f advanceSmoothScroll src/Dodge/SmoothScroll.hs 33;" f advanceStepCounter src/Dodge/Creature/Impulse/Movement.hs 45;" f aimDelaySweep src/Dodge/Render/Picture.hs 288;" f @@ -2857,7 +2856,7 @@ checkCombineSelectionExists src/Dodge/DisplayInventory.hs 102;" f checkConnection src/Dodge/Inventory/Swap.hs 65;" f checkDeath src/Dodge/Creature/Update.hs 68;" f checkDeath' src/Dodge/Creature/Update.hs 71;" f -checkEndGame src/Dodge/Update.hs 790;" f +checkEndGame src/Dodge/Update.hs 784;" f checkErrorGL src/Shader/Compile.hs 255;" f checkFBO src/Framebuffer/Check.hs 6;" f checkGLError src/GLHelp.hs 17;" f @@ -2889,7 +2888,7 @@ circleDecoration src/Dodge/Placement/TopDecoration.hs 56;" f circleSolid src/Picture/Base.hs 164;" f circleSolidCol src/Picture/Base.hs 168;" f clAlt src/Dodge/Cloud.hs 5;" f -clClSpringVel src/Dodge/Update.hs 863;" f +clClSpringVel src/Dodge/Update.hs 857;" f clColor src/Shader/Poke/Cloud.hs 35;" f clZoneSize src/Dodge/Zoning/Cloud.hs 21;" f clampPath src/Dodge/Room/Procedural.hs 166;" f @@ -2918,7 +2917,7 @@ closestCreatureID src/Dodge/Debug.hs 116;" f closestPointOnLine src/Geometry/Intersect.hs 281;" f closestPointOnLineParam src/Geometry/Intersect.hs 297;" f closestPointOnSeg src/Geometry/Intersect.hs 312;" f -cloudEffect src/Dodge/Update.hs 815;" f +cloudEffect src/Dodge/Update.hs 809;" f cloudPoisonDamage src/Dodge/Update/Cloud.hs 10;" f clsNearCirc src/Dodge/Zoning/Cloud.hs 18;" f clsNearPoint src/Dodge/Zoning/Cloud.hs 9;" f @@ -2930,7 +2929,7 @@ cogRaised src/Dodge/Creature/Perception.hs 102;" f colCrWall src/Dodge/WallCreatureCollisions.hs 28;" f colCrsWalls src/Dodge/WallCreatureCollisions.hs 18;" f collectDamageTypes src/Dodge/Damage.hs 53;" f -collectInvItems src/Dodge/Update/Input/InGame.hs 299;" f +collectInvItems src/Dodge/Update/Input/InGame.hs 295;" f collide3 src/Dodge/Base/Collide.hs 119;" f collide3Chasm src/Dodge/Base/Collide.hs 103;" f collide3Chasms src/Dodge/Base/Collide.hs 96;" f @@ -2971,14 +2970,14 @@ composeTree src/Dodge/Tree/Compose.hs 46;" f computerBeepingS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 640;" f conEffects src/Dodge/Concurrent.hs 12;" f conLDTToConDT src/Dodge/DoubleTree.hs 22;" f -concurrentIS src/Dodge/Update/Input/InGame.hs 291;" f +concurrentIS src/Dodge/Update/Input/InGame.hs 287;" f connectItemS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 722;" f connectionBlurb src/Dodge/Terminal.hs 46;" f connectionBlurbLines src/Dodge/Terminal.hs 38;" f constructEdges src/Polyhedra.hs 34;" f constructEdgesList src/Polyhedra.hs 43;" f contToIDCont src/Dodge/LevelGen/PlacementHelper.hs 57;" f -continueTerminal src/Dodge/Update/Input/InGame.hs 402;" f +continueTerminal src/Dodge/Update/Input/InGame.hs 400;" f convexHull src/Geometry/Polygon.hs 110;" f convexHullSafe src/Geometry/Polygon.hs 117;" f convexPolysOverlap src/Geometry/ConvexPoly.hs 50;" f @@ -2999,7 +2998,7 @@ crAwayFromPost src/Dodge/Creature/Test.hs 84;" f crBlips src/Dodge/RadarSweep.hs 87;" f crCamouflage src/Dodge/Creature/Picture.hs 32;" f crCanSeeCr src/Dodge/Creature/Test.hs 53;" f -crCrSpring src/Dodge/Update.hs 892;" f +crCrSpring src/Dodge/Update.hs 886;" f crCurrentEquipment src/Dodge/Creature/Statistics.hs 58;" f crDexterity src/Dodge/Creature/Statistics.hs 15;" f crDisplayAwareness src/Dodge/Creature/Picture/Awareness.hs 38;" f @@ -3027,7 +3026,7 @@ crRad src/Dodge/Creature/Radius.hs 7;" f crSafeDistFromTarg src/Dodge/Creature/Test.hs 74;" f crSetRoots src/Dodge/Inventory/Location.hs 56;" f crShape src/Dodge/Creature/Shape.hs 8;" f -crSpring src/Dodge/Update.hs 887;" f +crSpring src/Dodge/Update.hs 881;" f crStratConMatches src/Dodge/Creature/Test.hs 79;" f crStrength src/Dodge/Creature/Statistics.hs 25;" f crUpdate' src/Dodge/Creature/Update.hs 57;" f @@ -3247,7 +3246,7 @@ displayFrameTicks src/Dodge/Render/Picture.hs 46;" f displayFreeSlots src/Dodge/DisplayInventory.hs 197;" f displayIndents src/Dodge/DisplayInventory.hs 112;" f displayPulse src/Dodge/Inventory/SelectionList.hs 179;" f -displayTerminalLineString src/Dodge/Update.hs 496;" f +displayTerminalLineString src/Dodge/Update.hs 490;" f dist src/Geometry/Vector.hs 190;" f dist3 src/Geometry/Vector3D.hs 101;" f divTo src/Geometry/Zone.hs 6;" f @@ -3315,7 +3314,7 @@ doPropUpdates src/Dodge/Prop/Update.hs 34;" 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 446;" f +doRegexInput src/Dodge/Update/Input/InGame.hs 444;" f doRoomInPlacements src/Dodge/Layout.hs 97;" f doRoomOutPlacements src/Dodge/Layout.hs 107;" f doRoomPlacements src/Dodge/Layout.hs 122;" f @@ -3336,7 +3335,7 @@ doWdCrBl src/Dodge/CreatureEffect.hs 37;" f doWdCrCr src/Dodge/CreatureEffect.hs 12;" f doWdP2f src/Dodge/WdP2f.hs 12;" f doWdWd src/Dodge/WorldEffect.hs 27;" f -doWorldEvents src/Dodge/Update.hs 443;" f +doWorldEvents src/Dodge/Update.hs 437;" 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 @@ -3508,7 +3507,7 @@ dtToRootIntMap' src/Dodge/DoubleTree.hs 153;" f dtToUpDownAdj src/Dodge/DoubleTree.hs 158;" f dummyMenuOption src/Dodge/Menu/Option.hs 74;" f dustColor src/Shader/Poke/Cloud.hs 71;" f -dustSpringVel src/Dodge/Update.hs 874;" f +dustSpringVel src/Dodge/Update.hs 868;" f ebColor src/Dodge/EnergyBall.hs 77;" f ebDamage src/Dodge/EnergyBall.hs 85;" f ebEffect src/Dodge/EnergyBall.hs 45;" f @@ -3529,8 +3528,8 @@ encircleCloseP src/Dodge/Creature/Boid.hs 36;" f encircleDistP src/Dodge/Creature/Boid.hs 22;" f encircleP src/Dodge/Creature/Boid.hs 28;" f endArcPos src/Dodge/Tesla.hs 87;" f -endCombineRegex src/Dodge/Update/Input/InGame.hs 271;" f -endRegex src/Dodge/Update/Input/InGame.hs 262;" f +endCombineRegex src/Dodge/Update/Input/InGame.hs 270;" f +endRegex src/Dodge/Update/Input/InGame.hs 261;" f energyReleaseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 592;" f enterCombineInv src/Dodge/DisplayInventory.hs 322;" f epText src/Dodge/Inventory/SelectionList.hs 76;" f @@ -3691,7 +3690,7 @@ getAutoSpringLinks src/Dodge/Item/Grammar.hs 85;" f getAvailableListLines src/Dodge/SelectionList.hs 10;" f getBulHitDams src/Dodge/Bullet.hs 170;" f getBulletType src/Dodge/HeldUse.hs 933;" f -getCloseObj src/Dodge/Update/Input/InGame.hs 537;" f +getCloseObj src/Dodge/Update/Input/InGame.hs 535;" f getCommand src/Dodge/Terminal.hs 58;" f getCommands src/Dodge/Terminal.hs 55;" f getCrMoveSpeed src/Dodge/Creature/Statistics.hs 46;" f @@ -3705,7 +3704,7 @@ getLaserDamage src/Dodge/HeldUse.hs 697;" f getLaserPhaseV src/Dodge/HeldUse.hs 694;" f getLinksOfType src/Dodge/RoomLink.hs 39;" f getMaxLinesTM src/Dodge/Terminal/Type.hs 9;" f -getMenuMouseContext src/Dodge/Update.hs 403;" f +getMenuMouseContext src/Dodge/Update.hs 397;" f getNodePos src/Dodge/Path.hs 31;" f getPJStabiliser src/Dodge/HeldUse.hs 1288;" f getPretty src/AesonHelp.hs 8;" f @@ -3909,9 +3908,9 @@ invSetSelectionPos src/Dodge/Inventory.hs 203;" f invShiftPointBy src/Dodge/ShiftPoint.hs 8;" f invSize src/Dodge/Inventory/CheckSlots.hs 33;" f inventoryX src/Dodge/Creature.hs 113;" f -inverseSelNumPos src/Dodge/SelectionSections.hs 228;" f -inverseSelSecYint src/Dodge/SelectionSections.hs 201;" f -inverseSelSecYintXPosCheck src/Dodge/SelectionSections.hs 212;" f +inverseSelNumPos src/Dodge/SelectionSections.hs 231;" f +inverseSelSecYint src/Dodge/SelectionSections.hs 202;" f +inverseSelSecYintXPosCheck src/Dodge/SelectionSections.hs 215;" f inverseShockwaveAt src/Dodge/WorldEvent/Shockwave.hs 43;" f invertEncircleDistP src/Dodge/Creature/Boid.hs 14;" f invertIntMap src/IntMapHelp.hs 99;" f @@ -3924,7 +3923,7 @@ isAnimate src/Dodge/Creature/Test.hs 144;" f isCognizant src/Dodge/Creature/Perception.hs 106;" f isConnected src/Dodge/Inventory/Swap.hs 76;" f isElectrical src/Dodge/Machine/Update.hs 80;" f -isGroupSelectableSection src/Dodge/Update/Input/InGame.hs 197;" f +isGroupSelectableSection src/Dodge/Update/Input/InGame.hs 196;" f isInLnk src/Dodge/PlacementSpot.hs 169;" f isJust' src/MaybeHelp.hs 29;" f isLHS src/Geometry/LHS.hs 8;" f @@ -3934,7 +3933,7 @@ isNHS src/Geometry/Intersect.hs 51;" f isNothing' src/MaybeHelp.hs 33;" f isOnSeg src/Geometry.hs 240;" f isOutLnk src/Dodge/PlacementSpot.hs 174;" f -isOverTerminalScreen src/Dodge/Update.hs 414;" f +isOverTerminalScreen src/Dodge/Update.hs 408;" f isPulseLaser src/Dodge/IsPulseLaser.hs 10;" f isPutID src/Dodge/Placement/Instance/Wall.hs 129;" f isRHS src/Geometry/LHS.hs 24;" f @@ -4209,7 +4208,7 @@ maybeClearPath src/Dodge/Block.hs 72;" f maybeClearPaths src/Dodge/Block.hs 69;" f maybeDestroyBlock src/Dodge/Wall/Damage.hs 32;" f maybeDestroyDoor src/Dodge/Wall/Damage.hs 37;" f -maybeExitCombine src/Dodge/Update/Input/InGame.hs 558;" f +maybeExitCombine src/Dodge/Update/Input/InGame.hs 556;" f maybeOpenConsole src/Dodge/Update.hs 131;" f maybeReadFile src/Dodge/LoadSeed.hs 10;" f maybeTakeOne src/RandomHelp.hs 116;" f @@ -4321,7 +4320,7 @@ muzFlareAt src/Dodge/HeldUse.hs 670;" f mvButton src/Dodge/Placement/PlaceSpot.hs 181;" f mvCr src/Dodge/Placement/PlaceSpot.hs 191;" f mvFS src/Dodge/Placement/PlaceSpot.hs 194;" f -mvGust src/Dodge/Update.hs 806;" f +mvGust src/Dodge/Update.hs 800;" f mvLS src/Dodge/Placement/PlaceSpot.hs 245;" f mvP src/Dodge/Wall/Move.hs 54;" f mvPP src/Dodge/Placement/PlaceSpot.hs 188;" f @@ -4348,7 +4347,7 @@ newKey src/IntMapHelp.hs 60;" f newSounds src/Dodge/Creature/Perception.hs 171;" f newTextureFramebuffer src/Framebuffer/Setup.hs 16;" f nextArc src/Dodge/Tesla.hs 61;" f -nextInSectionSS src/Dodge/SelectionSections.hs 36;" f +nextInSectionSS src/Dodge/SelectionSections.hs 37;" f nextLayoutInt src/Dodge/Annotation/Data.hs 39;" f noPic src/ShapePicture.hs 25;" f noShape src/ShapePicture.hs 29;" f @@ -4429,12 +4428,12 @@ parseNum src/Dodge/Debug/Terminal.hs 75;" 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 523;" f +pauseGame src/Dodge/Update/Input/InGame.hs 521;" f pauseMenu src/Dodge/Menu.hs 56;" f pauseMenuOptions src/Dodge/Menu.hs 61;" f pauseSound src/Dodge/SoundLogic.hs 42;" f pauseTime src/Dodge/Update.hs 191;" f -pbFlicker src/Dodge/Update.hs 484;" f +pbFlicker src/Dodge/Update.hs 478;" f pbsHit src/Dodge/WorldEvent/ThingsHit.hs 62;" f peZoneSize src/Dodge/Zoning/Pathing.hs 46;" f pedestalRoom src/Dodge/Room/Containing.hs 50;" f @@ -4578,7 +4577,7 @@ polygonWire src/Picture/Base.hs 63;" f polysToPic src/Polyhedra.hs 130;" f popScreen src/Dodge/Menu/PushPop.hs 6;" f posRms src/Dodge/Tree/Shift.hs 44;" f -posSelSecYint src/Dodge/SelectionSections.hs 184;" f +posSelSecYint src/Dodge/SelectionSections.hs 185;" f positionRoomsFromTree src/Dodge/Tree/Shift.hs 35;" f postGenerationProcessing src/Dodge/LevelGen.hs 34;" f postUniverseLoadSideEffect src/Dodge/WorldLoad.hs 11;" f @@ -4591,7 +4590,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 118;" f -ppEvents src/Dodge/Update.hs 769;" f +ppEvents src/Dodge/Update.hs 763;" f ppLevelReset src/Dodge/PressPlate.hs 13;" f preCritStart src/Dodge/Room/Start.hs 83;" f prePos src/Quaternion.hs 68;" f @@ -4701,7 +4700,7 @@ randPeakedParam src/RandomHelp.hs 130;" f randProb src/RandomHelp.hs 68;" f randSpark src/Dodge/Spark.hs 69;" f randSparkExtraVel src/Dodge/Spark.hs 92;" f -randWallReflect src/Dodge/Update.hs 662;" f +randWallReflect src/Dodge/Update.hs 656;" f randomChallenges src/Dodge/Room/Start.hs 63;" f randomCompass src/Dodge/Layout.hs 59;" f randomFourCornerRoom src/Dodge/Room/Procedural.hs 266;" f @@ -4899,7 +4898,7 @@ scrollAugInvSel src/Dodge/Inventory.hs 214;" f scrollAugNextInSection src/Dodge/Inventory.hs 227;" f scrollDebugInfoInt src/Dodge/Debug.hs 71;" f scrollRBOption src/Dodge/Update/Scroll.hs 217;" f -scrollSelectionSections src/Dodge/SelectionSections.hs 26;" f +scrollSelectionSections src/Dodge/SelectionSections.hs 27;" f scrollTimeBack src/Dodge/Update.hs 218;" f scrollTimeForward src/Dodge/Update.hs 241;" f seagullBarkS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 570;" f @@ -4923,8 +4922,8 @@ selNumPosCardinal src/Dodge/Render/HUD.hs 473;" f selSecDrawCursor src/Dodge/Render/List.hs 126;" f selSecDrawCursorAt src/Dodge/Render/List.hs 104;" f selSecSelCol src/Dodge/Render/HUD.hs 504;" f -selSecSelSize src/Dodge/SelectionSections.hs 180;" f -selSecYint src/Dodge/SelectionSections.hs 189;" f +selSecSelSize src/Dodge/SelectionSections.hs 181;" f +selSecYint src/Dodge/SelectionSections.hs 190;" f selectCreatureDebugItem src/Dodge/Debug.hs 55;" f selectedItemScroll src/Dodge/Update/Scroll.hs 51;" f sensAboveDoor src/Dodge/Room/SensorDoor.hs 52;" f @@ -4955,12 +4954,12 @@ setLinkType src/Dodge/RoomLink.hs 60;" f setLinkTypePD src/Dodge/RoomLink.hs 67;" f setMusicVolume src/Sound.hs 162;" f setMvPos src/Dodge/Creature/ReaderUpdate.hs 53;" f -setOldPos src/Dodge/Update.hs 515;" f +setOldPos src/Dodge/Update.hs 509;" f setOutLinks src/Dodge/RoomLink.hs 48;" f setOutLinksByType src/Dodge/RoomLink.hs 57;" f setOutLinksPD src/Dodge/RoomLink.hs 77;" f setRBCreatureTargeting src/Dodge/Creature/State.hs 288;" f -setSelWhileDragging src/Dodge/Update/Input/InGame.hs 335;" f +setSelWhileDragging src/Dodge/Update/Input/InGame.hs 333;" f setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 87;" f setShaderSource src/Shader/Compile.hs 290;" f setShadowLimits src/Dodge/Shadows.hs 11;" f @@ -5014,9 +5013,9 @@ shiftChildren src/Dodge/Tree/Compose.hs 43;" f shiftDraw src/Dodge/Render/ShapePicture.hs 78;" f shiftDraw' src/Dodge/Render/ShapePicture.hs 84;" f shiftInBy src/Dodge/PlacementSpot.hs 251;" f -shiftInvItems src/Dodge/Update/Input/InGame.hs 309;" f -shiftInvItemsDown src/Dodge/Update/Input/InGame.hs 348;" f -shiftInvItemsUp src/Dodge/Update/Input/InGame.hs 342;" f +shiftInvItems src/Dodge/Update/Input/InGame.hs 305;" f +shiftInvItemsDown src/Dodge/Update/Input/InGame.hs 346;" f +shiftInvItemsUp src/Dodge/Update/Input/InGame.hs 340;" 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 @@ -5065,7 +5064,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 151;" f -simpleCrSprings src/Dodge/Update.hs 883;" f +simpleCrSprings src/Dodge/Update.hs 877;" f simpleTermMessage src/Dodge/Terminal.hs 187;" f sineRaisePitchOneSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 680;" f sineRaisePitchTwoSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 472;" f @@ -5116,7 +5115,7 @@ soundToVol src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 4;" f soundWithStatus src/Dodge/SoundLogic.hs 104;" f soundWithStatusVolume src/Dodge/SoundLogic.hs 54;" f southPillarsRoom src/Dodge/Room/LongDoor.hs 86;" f -spaceAction src/Dodge/Update/Input/InGame.hs 527;" f +spaceAction src/Dodge/Update/Input/InGame.hs 525;" f spanColLightBlackI src/Dodge/Placement/Instance/LightSource.hs 190;" f spanColLightI src/Dodge/Placement/Instance/LightSource.hs 183;" f spanLS src/Dodge/Placement/Instance/LightSource.hs 175;" f @@ -5150,21 +5149,21 @@ square src/Geometry/Polygon.hs 46;" f squareDecoration src/Dodge/Placement/TopDecoration.hs 41;" f squashIntersectCirclePoint src/Dodge/WallCreatureCollisions.hs 112;" f squashNormalizeV src/Geometry/Vector.hs 157;" f -ssLookupDown src/Dodge/SelectionSections.hs 99;" f -ssLookupGE' src/Dodge/SelectionSections.hs 173;" f -ssLookupGT src/Dodge/SelectionSections.hs 156;" f -ssLookupGT' src/Dodge/SelectionSections.hs 166;" f -ssLookupLE' src/Dodge/SelectionSections.hs 144;" f -ssLookupLT src/Dodge/SelectionSections.hs 124;" f -ssLookupLT' src/Dodge/SelectionSections.hs 134;" f -ssLookupMax src/Dodge/SelectionSections.hs 85;" f -ssLookupMaxInSection src/Dodge/SelectionSections.hs 117;" f -ssLookupMin src/Dodge/SelectionSections.hs 151;" f -ssLookupNextMax src/Dodge/SelectionSections.hs 108;" f -ssLookupUp src/Dodge/SelectionSections.hs 90;" f -ssScrollMinOnFail src/Dodge/SelectionSections.hs 57;" f -ssScrollUsing src/Dodge/SelectionSections.hs 47;" f -ssSetCursor src/Dodge/SelectionSections.hs 72;" f +ssLookupDown src/Dodge/SelectionSections.hs 100;" f +ssLookupGE' src/Dodge/SelectionSections.hs 174;" f +ssLookupGT src/Dodge/SelectionSections.hs 157;" f +ssLookupGT' src/Dodge/SelectionSections.hs 167;" f +ssLookupLE' src/Dodge/SelectionSections.hs 145;" f +ssLookupLT src/Dodge/SelectionSections.hs 125;" f +ssLookupLT' src/Dodge/SelectionSections.hs 135;" f +ssLookupMax src/Dodge/SelectionSections.hs 86;" f +ssLookupMaxInSection src/Dodge/SelectionSections.hs 118;" f +ssLookupMin src/Dodge/SelectionSections.hs 152;" f +ssLookupNextMax src/Dodge/SelectionSections.hs 109;" f +ssLookupUp src/Dodge/SelectionSections.hs 91;" f +ssScrollMinOnFail src/Dodge/SelectionSections.hs 58;" f +ssScrollUsing src/Dodge/SelectionSections.hs 48;" f +ssSetCursor src/Dodge/SelectionSections.hs 73;" f ssfold src/FoldableHelp.hs 105;" f stackPicturesAt src/Dodge/Render/List.hs 98;" f stackPicturesAtOff src/Dodge/Render/List.hs 101;" f @@ -5172,7 +5171,7 @@ stackText src/Picture/Base.hs 188;" f stackedInventory src/Dodge/Creature.hs 310;" f startCr src/Dodge/Creature.hs 92;" f startCrafts src/Dodge/Room/Start.hs 93;" f -startDrag src/Dodge/Update/Input/InGame.hs 280;" f +startDrag src/Dodge/Update/Input/InGame.hs 279;" f startInvList src/Dodge/Creature.hs 107;" f startInventory src/Dodge/Creature.hs 110;" f startNewGameInSlot src/Dodge/StartNewGame.hs 15;" f @@ -5302,7 +5301,7 @@ titleOptionsMenu src/Dodge/Menu.hs 102;" f titleOptionsNoWrite src/Dodge/Menu.hs 105;" f tlDoEffect src/Dodge/Terminal.hs 125;" f tlSetStatus src/Dodge/Terminal.hs 122;" f -tmUpdate src/Dodge/Update.hs 499;" f +tmUpdate src/Dodge/Update.hs 493;" f toBinary src/Dodge/Inventory/SelectionList.hs 141;" f toBothLnk src/Dodge/RoomLink.hs 121;" f toClosestMultiple src/HelpNum.hs 3;" f @@ -5388,14 +5387,14 @@ truncate src/Polyhedra/Geodesic.hs 38;" f trunkDepth src/TreeHelp.hs 161;" f tryAttachItems src/Dodge/Item/Grammar.hs 34;" f tryClickUse src/Dodge/Creature/YourControl.hs 225;" f -tryCombine src/Dodge/Update/Input/InGame.hs 548;" f +tryCombine src/Dodge/Update/Input/InGame.hs 546;" f tryDrawToCapacitor src/Dodge/Creature/State.hs 150;" f -tryDropSelected src/Dodge/Update/Input/InGame.hs 129;" f +tryDropSelected src/Dodge/Update/Input/InGame.hs 128;" f tryGetChannel src/Sound.hs 97;" f tryGetRootAttachedFromInvID src/Dodge/Inventory/Location.hs 23;" f tryGetRootItemInvID src/Dodge/Inventory/Location.hs 35;" f tryMeleeAttack src/Dodge/Creature/ReaderUpdate.hs 38;" f -tryPickupSelected src/Dodge/Update/Input/InGame.hs 136;" f +tryPickupSelected src/Dodge/Update/Input/InGame.hs 135;" f tryPlay src/Sound.hs 84;" f tryPutItemInInv src/Dodge/Inventory/Add.hs 24;" f tryPutItemInInvAt src/Dodge/Inventory/Add.hs 52;" f @@ -5446,87 +5445,87 @@ unusedSpotNearInLink src/Dodge/PlacementSpot.hs 201;" f updateAimPos src/Dodge/Update.hs 321;" f updateAllNodes src/TreeHelp.hs 85;" f updateArc src/Dodge/Tesla.hs 44;" f -updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 480;" f +updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 478;" f updateBarrel src/Dodge/Barreloid.hs 41;" f updateBarreloid src/Dodge/Barreloid.hs 15;" f updateBaseWheelEvent src/Dodge/Update/Scroll.hs 34;" f updateBounds src/Dodge/Update/Camera.hs 256;" f updateBulVel src/Dodge/Bullet.hs 56;" f updateBullet src/Dodge/Bullet.hs 21;" f -updateBullets src/Dodge/Update.hs 582;" f +updateBullets src/Dodge/Update.hs 576;" f updateCamera src/Dodge/Update/Camera.hs 30;" f updateCloseObjects src/Dodge/Inventory.hs 122;" f -updateCloud src/Dodge/Update.hs 820;" f -updateClouds src/Dodge/Update.hs 688;" f +updateCloud src/Dodge/Update.hs 814;" f +updateClouds src/Dodge/Update.hs 682;" f updateCombinePositioning src/Dodge/DisplayInventory.hs 39;" f updateCombineSections src/Dodge/DisplayInventory.hs 46;" f updateCreature src/Dodge/Creature/Update.hs 31;" f updateCreature' src/Dodge/Creature/Update.hs 39;" f -updateCreatureGroups src/Dodge/Update.hs 554;" f -updateCreatureSoundPositions src/Dodge/Update.hs 530;" f -updateDebris src/Dodge/Update.hs 589;" f +updateCreatureGroups src/Dodge/Update.hs 548;" f +updateCreatureSoundPositions src/Dodge/Update.hs 524;" f +updateDebris src/Dodge/Update.hs 583;" f updateDebrisChunk src/Dodge/Prop/Moving.hs 16;" f updateDebugMessageOffset src/Dodge/Update.hs 100;" f -updateDelayedEvents src/Dodge/Update.hs 912;" f +updateDelayedEvents src/Dodge/Update.hs 906;" f updateDisplaySections src/Dodge/DisplayInventory.hs 118;" f updateDistortion src/Dodge/Distortion.hs 5;" f -updateDistortions src/Dodge/Update.hs 575;" f +updateDistortions src/Dodge/Update.hs 569;" f updateDoor src/Dodge/Update.hs 326;" f -updateDust src/Dodge/Update.hs 844;" f -updateDusts src/Dodge/Update.hs 691;" f +updateDust src/Dodge/Update.hs 838;" f +updateDusts src/Dodge/Update.hs 685;" f updateEnergyBall src/Dodge/EnergyBall.hs 31;" f -updateEnergyBalls src/Dodge/Update.hs 679;" f -updateEnterRegex src/Dodge/Update/Input/InGame.hs 505;" f +updateEnergyBalls src/Dodge/Update.hs 673;" f +updateEnterRegex src/Dodge/Update/Input/InGame.hs 503;" f updateExpBarrel src/Dodge/Barreloid.hs 20;" f updateFBOTO src/Framebuffer/Update.hs 97;" f updateFBOTO3 src/Framebuffer/Update.hs 131;" f updateFlame src/Dodge/Flame.hs 19;" f -updateFlames src/Dodge/Update.hs 676;" f +updateFlames src/Dodge/Update.hs 670;" f updateFloatingCamera src/Dodge/Update/Camera.hs 35;" f -updateFunctionKey src/Dodge/Update/Input/InGame.hs 365;" f -updateFunctionKeys src/Dodge/Update/Input/InGame.hs 358;" f -updateGusts src/Dodge/Update.hs 803;" f +updateFunctionKey src/Dodge/Update/Input/InGame.hs 363;" f +updateFunctionKeys src/Dodge/Update/Input/InGame.hs 356;" f +updateGusts src/Dodge/Update.hs 797;" f updateHumanoid src/Dodge/Humanoid.hs 13;" f -updateIMl src/Dodge/Update.hs 544;" f -updateIMl' src/Dodge/Update.hs 549;" f +updateIMl src/Dodge/Update.hs 538;" f +updateIMl' src/Dodge/Update.hs 543;" f updateInGameCamera src/Dodge/Update/Camera.hs 79;" f -updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 427;" f +updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 425;" f updateInt2Map src/Dodge/Zoning/Base.hs 92;" f updateInventoryPositioning src/Dodge/DisplayInventory.hs 88;" f updateItemTargeting src/Dodge/Creature/State.hs 258;" f -updateKeyContinueTerminal src/Dodge/Update/Input/InGame.hs 396;" f -updateKeyInGame src/Dodge/Update/Input/InGame.hs 421;" f -updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 383;" f -updateKeysTextInputTerminal src/Dodge/Update/Input/InGame.hs 405;" f +updateKeyContinueTerminal src/Dodge/Update/Input/InGame.hs 394;" f +updateKeyInGame src/Dodge/Update/Input/InGame.hs 419;" f +updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 381;" f +updateKeysTextInputTerminal src/Dodge/Update/Input/InGame.hs 403;" f updateLampoid src/Dodge/Lampoid.hs 12;" f updateLaser src/Dodge/Laser/Update.hs 11;" f -updateLasers src/Dodge/Update.hs 450;" f +updateLasers src/Dodge/Update.hs 444;" f updateLeftParentSF src/Dodge/Item/Grammar.hs 170;" f updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f -updateLongPressInGame src/Dodge/Update/Input/InGame.hs 440;" f +updateLongPressInGame src/Dodge/Update/Input/InGame.hs 438;" f updateMachine src/Dodge/Machine/Update.hs 20;" f updateMagnets src/Dodge/Update.hs 329;" f -updateMouseClickInGame src/Dodge/Update/Input/InGame.hs 203;" f +updateMouseClickInGame src/Dodge/Update/Input/InGame.hs 202;" f updateMouseContext src/Dodge/Update.hs 342;" f updateMouseContextGame src/Dodge/Update.hs 347;" f updateMouseHeldInGame src/Dodge/Update/Input/InGame.hs 99;" f updateMouseInGame src/Dodge/Update/Input/InGame.hs 89;" f -updateMouseReleaseInGame src/Dodge/Update/Input/InGame.hs 161;" f -updateObjCatMaybes src/Dodge/Update.hs 566;" f -updateObjMapMaybe src/Dodge/Update.hs 559;" f -updatePastWorlds src/Dodge/Update.hs 438;" f +updateMouseReleaseInGame src/Dodge/Update/Input/InGame.hs 160;" f +updateObjCatMaybes src/Dodge/Update.hs 560;" f +updateObjMapMaybe src/Dodge/Update.hs 553;" f +updatePastWorlds src/Dodge/Update.hs 432;" f updatePreload src/Preload/Update.hs 20;" f updateProjectile src/Dodge/Projectile/Update.hs 27;" f updateProp src/Dodge/Prop/Update.hs 11;" f updatePulse src/Dodge/Creature/Update.hs 136;" f -updatePulseBall src/Dodge/Update.hs 464;" f -updatePulseLaser src/Dodge/Update.hs 629;" f -updatePulseLasers src/Dodge/Update.hs 459;" f +updatePulseBall src/Dodge/Update.hs 458;" f +updatePulseLaser src/Dodge/Update.hs 623;" f +updatePulseLasers src/Dodge/Update.hs 453;" f updateRBList src/Dodge/Inventory/RBList.hs 20;" f updateRadarBlip src/Dodge/RadarBlip.hs 11;" f -updateRadarBlips src/Dodge/Update.hs 578;" f +updateRadarBlips src/Dodge/Update.hs 572;" f updateRadarSweep src/Dodge/RadarSweep.hs 39;" f -updateRadarSweeps src/Dodge/Update.hs 682;" f +updateRadarSweeps src/Dodge/Update.hs 676;" f updateRandNode src/TreeHelp.hs 108;" f updateRenderSplit appDodge/Main.hs 110;" f updateRightParentSF src/Dodge/Item/Grammar.hs 181;" f @@ -5536,16 +5535,16 @@ updateScrollTestValue src/Dodge/ScrollValue.hs 6;" f updateSection src/Dodge/DisplayInventory.hs 263;" f updateSectionsPositioning src/Dodge/DisplayInventory.hs 242;" f updateShockwave src/Dodge/Shockwave/Update.hs 8;" f -updateShockwaves src/Dodge/Update.hs 673;" f +updateShockwaves src/Dodge/Update.hs 667;" f updateSingleNodes src/TreeHelp.hs 97;" f updateSound src/Sound.hs 72;" f updateSounds src/Sound.hs 67;" f updateSpark src/Dodge/Spark.hs 19;" f -updateSparks src/Dodge/Update.hs 685;" f -updateTeslaArc src/Dodge/Update.hs 599;" f -updateTeslaArcs src/Dodge/Update.hs 596;" f +updateSparks src/Dodge/Update.hs 679;" f +updateTeslaArc src/Dodge/Update.hs 593;" f +updateTeslaArcs src/Dodge/Update.hs 590;" f updateTractorBeam src/Dodge/TractorBeam/Update.hs 8;" f -updateTractorBeams src/Dodge/Update.hs 670;" f +updateTractorBeams src/Dodge/Update.hs 664;" f updateTurret src/Dodge/Machine/Update.hs 50;" f updateUniverse src/Dodge/Update.hs 79;" f updateUniverseFirst src/Dodge/Update.hs 90;" f @@ -5556,7 +5555,7 @@ updateUseInputOnScreen src/Dodge/Update/Input/ScreenLayer.hs 23;" f updateWalkCycle src/Dodge/Creature/State/WalkCycle.hs 10;" f updateWallDamages src/Dodge/Update/WallDamage.hs 10;" f updateWheelEvent src/Dodge/Update/Scroll.hs 25;" f -updateWheelEvents src/Dodge/Update.hs 428;" f +updateWheelEvents src/Dodge/Update.hs 422;" f updateWorldEventFlag src/Dodge/Update.hs 125;" f updateWorldEventFlags src/Dodge/Update.hs 113;" f upperBody src/Dodge/Creature/Picture.hs 127;" f @@ -5730,11 +5729,11 @@ zipArcs src/Dodge/Tesla.hs 52;" f zipCount src/Dodge/Tree/Shift.hs 129;" f zipCountDown src/Dodge/Room/Procedural.hs 118;" f zoneCloud src/Dodge/Zoning/Cloud.hs 27;" f -zoneClouds src/Dodge/Update.hs 491;" f +zoneClouds src/Dodge/Update.hs 485;" f zoneCreature src/Dodge/Zoning/Creature.hs 54;" f -zoneCreatures src/Dodge/Update.hs 525;" f +zoneCreatures src/Dodge/Update.hs 519;" f zoneDust src/Dodge/Zoning/Cloud.hs 48;" f -zoneDusts src/Dodge/Update.hs 493;" f +zoneDusts src/Dodge/Update.hs 487;" f zoneExtract src/Dodge/Zoning/Base.hs 52;" f zoneMonoid src/Dodge/Zoning/Base.hs 83;" f zoneOfCirc src/Dodge/Zoning/Base.hs 24;" f