From 9d7c9f1db2253b98f37c40f75cba2c5075a3d915 Mon Sep 17 00:00:00 2001 From: justin Date: Mon, 6 Apr 2026 18:07:35 +0100 Subject: [PATCH] Tweak inventory manipulation --- src/Dodge/Creature/MoveType.hs | 4 +- src/Dodge/Placement/Instance/Creature.hs | 4 +- src/Dodge/Room/Tutorial.hs | 7 +- src/Dodge/Update/Input/InGame.hs | 20 +- tags | 285 +++++++++++------------ 5 files changed, 164 insertions(+), 156 deletions(-) diff --git a/src/Dodge/Creature/MoveType.hs b/src/Dodge/Creature/MoveType.hs index a53a4aade..ec4892361 100644 --- a/src/Dodge/Creature/MoveType.hs +++ b/src/Dodge/Creature/MoveType.hs @@ -7,8 +7,8 @@ import Control.Lens crMvType :: Creature -> CrMvType crMvType cr = case _crType cr of Avatar {} -> MvWalking 1.5 - ChaseCrit {} -> defaultChaseMvType - HoverCrit {} -> defaultChaseMvType & mvSpeed .~ 0.15 + ChaseCrit {} -> defaultChaseMvType & mvSpeed .~ 1.8 + HoverCrit {} -> defaultChaseMvType & mvSpeed .~ 0.16 SwarmCrit -> defaultChaseMvType AutoCrit -> defaultAimMvType BarrelCrit {} -> defaultAimMvType diff --git a/src/Dodge/Placement/Instance/Creature.hs b/src/Dodge/Placement/Instance/Creature.hs index 287a277df..8bc72b013 100644 --- a/src/Dodge/Placement/Instance/Creature.hs +++ b/src/Dodge/Placement/Instance/Creature.hs @@ -1,10 +1,10 @@ module Dodge.Placement.Instance.Creature where -import Dodge.Creature.ArmourChase +--import Dodge.Creature.ArmourChase import Dodge.Creature.ChaseCrit import Dodge.Data.GenWorld import RandomHelp randC1 :: PSType -randC1 = RandPS $ takeOne $ map PutCrit $ armourChaseCrit : replicate 50 hoverCrit +randC1 = RandPS $ takeOne $ map PutCrit [hoverCrit,chaseCrit] --randC1 = RandPS $ takeOne $ map PutCrit [hoverCrit] diff --git a/src/Dodge/Room/Tutorial.hs b/src/Dodge/Room/Tutorial.hs index 3d01b2491..4304cba4c 100644 --- a/src/Dodge/Room/Tutorial.hs +++ b/src/Dodge/Room/Tutorial.hs @@ -56,8 +56,9 @@ tutAnoTree = do foldMTRS [ tToBTree "TutStartRez" . return . cleatOnward <$> tutRezBox , corDoor + , loadAmmoTut + , corDoor , chasmSpitTerminal --- , loadAmmoTut --b , corDoor --b , tToBTree "slowCrush" . return . cleatOnward <$> pushCaverns --b , corDoor @@ -449,9 +450,7 @@ loadAmmoTut = do return $ tToBTree "loadAmmoTest" $ treePost - [ croom - , door - , amrm & rmPmnts .:~ sps (PS 50 0) (PutFlIt (drumMag & itConsumables ?~ 90)) + [ amrm & rmPmnts .:~ sps (PS 50 0) (PutFlIt (drumMag & itConsumables ?~ 90)) , triggerDoorRoom i , wprm & rmPmnts .:~ sps (PS 50 0) (PutFlIt burstRifle) , triggerDoorRoom j diff --git a/src/Dodge/Update/Input/InGame.hs b/src/Dodge/Update/Input/InGame.hs index 9bd19bf83..13c116b0d 100644 --- a/src/Dodge/Update/Input/InGame.hs +++ b/src/Dodge/Update/Input/InGame.hs @@ -144,7 +144,7 @@ doDrag cfig n k mmouseover w = fromMaybe w $ do guard (n /= 0) ss <- w ^? hud . diSections . ix k . ssItems x <- mmouseover - is <- w ^? hud . diSelection . _Just . slSet + is <- selectionSet w return $ if concurrentIS is then shiftInvItems cfig n k x is ss w @@ -154,15 +154,24 @@ tryDropSelected :: Maybe (Int, Int) -> World -> Maybe World tryDropSelected mpos w = do guard $ maybe True (\(i, _) -> i == 3) mpos cr <- w ^? cWorld . lWorld . creatures . ix 0 - Sel 0 _ xs <- w ^? hud . diSelection . _Just - return . foldl' (flip $ dropItem cr) w . IS.toDescList $ xs + 0 <- w ^? hud . diSelection . _Just . slSec + xs <- selectionSet w + return + . (hud . diSelection ?~ Sel 3 0 (IS.fromDistinctAscList [0..IS.size xs - 1])) + . foldl' (flip $ dropItem cr) w . IS.toDescList $ xs + +selectionSet :: World -> Maybe IS.IntSet +selectionSet w = case w ^? hud . diSelection . _Just . slSet of + Just is' | not $ IS.null is' -> Just is' + _ -> IS.singleton <$> w ^? hud . diSelection . _Just . slInt + tryPickupSelected :: Int -> Maybe (Int, Int) -> World -> Maybe World tryPickupSelected k mpos w = do guard $ k == 3 guard $ maybe True (\(i, _) -> i == 0 || i == 1) mpos cr <- w ^? cWorld . lWorld . creatures . ix 0 - xs <- w ^? hud . diSelection . _Just . slSet + xs <- selectionSet w let nfreeslots = crNumFreeSlots (w ^. cWorld . lWorld . items) cr itmstopickup = mapMaybe g $ IS.toList xs slotsneeded = alaf Sum foldMap itInvHeight itmstopickup @@ -299,7 +308,8 @@ endCombineRegex w = ssSetCursor (ssLookupDown 0 j) sss startDrag :: (Int, Int) -> World -> World startDrag (a, b) w = setcontext $ case w ^? hud . diSelection . _Just of Just (Sel i _ xs) | i == a && b `IS.member` xs -> w - _ -> invSetSelection (Sel a b (IS.singleton b)) w +-- _ -> invSetSelection (Sel a b (IS.singleton b)) w + _ -> invSetSelection (Sel a b mempty) w where setcontext = input . mouseContext .~ OverInvDrag a (Just (a, b)) diff --git a/tags b/tags index 70c5f20cb..cf2e4a6d1 100644 --- a/tags +++ b/tags @@ -578,8 +578,8 @@ Inanimate src/Dodge/Data/ActionPlan.hs 15;" C IncendiaryBall src/Dodge/Data/EnergyBall/Type.hs 11;" C Inertial src/Dodge/Data/Damage.hs 28;" C InheritFloor src/Data/Tile.hs 12;" C -Input src/Dodge/Data/Input.hs 34;" t -InputMemory src/Dodge/Data/Input.hs 53;" t +Input src/Dodge/Data/Input.hs 33;" t +InputMemory src/Dodge/Data/Input.hs 52;" t InputScreen src/Dodge/Data/Universe.hs 92;" C Inspect_wall src/Dodge/Data/Config.hs 106;" C Institution src/Dodge/Data/Scenario.hs 42;" t @@ -765,10 +765,9 @@ MountedObject src/Dodge/Data/MountedObject.hs 13;" t MountedSPic src/Dodge/Data/MountedObject.hs 15;" C MouseAiming src/Dodge/Data/Input.hs 15;" C MouseContext src/Dodge/Data/Input.hs 13;" t -MouseGameRotate src/Dodge/Data/Input.hs 30;" C +MouseGameRotate src/Dodge/Data/Input.hs 29;" C MouseInGame src/Dodge/Data/Input.hs 16;" C -MouseMenuClick src/Dodge/Data/Input.hs 17;" C -MouseMenuCursor src/Dodge/Data/Input.hs 18;" C +MouseMenu src/Dodge/Data/Input.hs 17;" C Mouse_position src/Dodge/Data/Config.hs 86;" C Move src/Dodge/Data/ActionPlan.hs 26;" C MoveEquipment src/Dodge/Data/RightButtonOptions.hs 20;" C @@ -936,19 +935,19 @@ OpticScope src/Dodge/Data/Item/Scope.hs 12;" C OptionScreen src/Dodge/Data/Universe.hs 82;" C OptionScreenFlag src/Dodge/Data/Universe.hs 70;" t OutLink src/Dodge/Data/Room.hs 48;" C -OutsideTerminal src/Dodge/Data/Input.hs 29;" C +OutsideTerminal src/Dodge/Data/Input.hs 28;" C OutwardShockwave src/Dodge/Data/Shockwave.hs 12;" C -OverCombCombine src/Dodge/Data/Input.hs 24;" C -OverCombEscape src/Dodge/Data/Input.hs 26;" C -OverCombFiltInv src/Dodge/Data/Input.hs 22;" C -OverCombFilter src/Dodge/Data/Input.hs 25;" C -OverCombSelect src/Dodge/Data/Input.hs 23;" C -OverDebug src/Dodge/Data/Input.hs 31;" C -OverInvDrag src/Dodge/Data/Input.hs 19;" C -OverInvDragSelect src/Dodge/Data/Input.hs 20;" C -OverInvSelect src/Dodge/Data/Input.hs 21;" C -OverTerminal src/Dodge/Data/Input.hs 27;" C -OverTerminalBar src/Dodge/Data/Input.hs 28;" C +OverCombCombine src/Dodge/Data/Input.hs 23;" C +OverCombEscape src/Dodge/Data/Input.hs 25;" C +OverCombFiltInv src/Dodge/Data/Input.hs 21;" C +OverCombFilter src/Dodge/Data/Input.hs 24;" C +OverCombSelect src/Dodge/Data/Input.hs 22;" C +OverDebug src/Dodge/Data/Input.hs 30;" C +OverInvDrag src/Dodge/Data/Input.hs 18;" C +OverInvDragSelect src/Dodge/Data/Input.hs 19;" C +OverInvSelect src/Dodge/Data/Input.hs 20;" C +OverTerminal src/Dodge/Data/Input.hs 26;" C +OverTerminalBar src/Dodge/Data/Input.hs 27;" C OverreachingAI src/Dodge/Data/Scenario.hs 31;" C Overstrung src/Dodge/Data/Creature/Perception.hs 55;" C PBSound src/Dodge/Data/SoundOrigin.hs 42;" C @@ -1295,15 +1294,15 @@ TO src/Shader/Data.hs 59;" t TRACTORGUN src/Dodge/Data/Item/Combine.hs 169;" C TRANSFORMER src/Dodge/Data/Item/Combine.hs 64;" C TRANSMITTER src/Dodge/Data/Item/Combine.hs 71;" C -TSbackspace src/Dodge/Data/Input.hs 60;" C -TSdelete src/Dodge/Data/Input.hs 61;" C -TSdown src/Dodge/Data/Input.hs 66;" C -TSescape src/Dodge/Data/Input.hs 58;" C -TSleft src/Dodge/Data/Input.hs 63;" C -TSreturn src/Dodge/Data/Input.hs 59;" C -TSright src/Dodge/Data/Input.hs 64;" C -TStab src/Dodge/Data/Input.hs 62;" C -TSup src/Dodge/Data/Input.hs 65;" 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 TUBE src/Dodge/Data/Item/Combine.hs 51;" C TabComplete src/Dodge/Terminal.hs 160;" C TabCompletion src/Dodge/Terminal.hs 158;" t @@ -1317,7 +1316,7 @@ TargetRBPress src/Dodge/Data/Item/Targeting.hs 10;" C TargetingLaser src/Dodge/Data/Laser.hs 16;" C TargetingType src/Dodge/Data/Item/Targeting.hs 9;" t TeleSound src/Dodge/Data/SoundOrigin.hs 36;" C -TermSignal src/Dodge/Data/Input.hs 57;" t +TermSignal src/Dodge/Data/Input.hs 56;" t Terminal src/Dodge/Data/Terminal.hs 19;" t TerminalDeactivated src/Dodge/Data/Terminal/Status.hs 12;" C TerminalLine src/Dodge/Data/Terminal.hs 36;" t @@ -1474,8 +1473,8 @@ WarmTime src/Dodge/Data/Item/Params.hs 19;" C WarmUpCoolDown src/Dodge/Data/TriggerType.hs 14;" C WarmUpNoDelay src/Dodge/Data/TriggerType.hs 19;" C WarningCry src/Dodge/Data/ActionPlan.hs 137;" C -WasMouseGameRotating src/Dodge/Data/Input.hs 54;" C -WasNotMouseGameRotating src/Dodge/Data/Input.hs 55;" C +WasMouseGameRotating src/Dodge/Data/Input.hs 53;" C +WasNotMouseGameRotating src/Dodge/Data/Input.hs 54;" C WatchAndWait src/Dodge/Data/ActionPlan.hs 135;" C WdBl src/Dodge/Data/WorldEffect.hs 56;" t WdBlBtOn src/Dodge/Data/WorldEffect.hs 62;" C @@ -1647,8 +1646,8 @@ _clTimer src/Dodge/Data/Cloud.hs 15;" f _clType src/Dodge/Data/Cloud.hs 16;" f _clVel src/Dodge/Data/Cloud.hs 14;" f _clZoning src/Dodge/Data/World.hs 50;" f -_clickPos src/Dodge/Data/Input.hs 43;" f -_clickWorldPos src/Dodge/Data/Input.hs 45;" f +_clickPos src/Dodge/Data/Input.hs 42;" f +_clickWorldPos src/Dodge/Data/Input.hs 44;" f _cliffs src/Dodge/Data/CWorld.hs 34;" f _closeButtons src/Dodge/Data/HUD.hs 36;" f _closeItems src/Dodge/Data/HUD.hs 35;" f @@ -1872,8 +1871,8 @@ _guTime src/Dodge/Data/Gust.hs 15;" f _guVel src/Dodge/Data/Gust.hs 14;" f _gusts src/Dodge/Data/LWorld.hs 101;" f _gwWorld src/Dodge/Data/GenWorld.hs 25;" f -_heldPos src/Dodge/Data/Input.hs 44;" f -_heldWorldPos src/Dodge/Data/Input.hs 46;" f +_heldPos src/Dodge/Data/Input.hs 43;" f +_heldWorldPos src/Dodge/Data/Input.hs 45;" f _highlightItems src/Dodge/Data/CWorld.hs 36;" f _hotkeys src/Dodge/Data/LWorld.hs 145;" f _hud src/Dodge/Data/World.hs 47;" f @@ -1909,7 +1908,7 @@ _incGraph src/Dodge/Data/CWorld.hs 29;" f _incNode src/Dodge/Data/CWorld.hs 30;" f _incNodeZoning src/Dodge/Data/World.hs 56;" f _input src/Dodge/Data/World.hs 44;" f -_inputMemory src/Dodge/Data/Input.hs 50;" f +_inputMemory src/Dodge/Data/Input.hs 49;" f _isWarming src/Dodge/Data/Item/Params.hs 21;" f _ispCloseButton src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 32;" f _ispCloseItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 30;" f @@ -1999,21 +1998,21 @@ _mcSkin src/Dodge/Data/Machine.hs 34;" f _mcTriggerID src/Dodge/Data/Machine.hs 51;" f _mcType src/Dodge/Data/Machine.hs 40;" f _mcdStorageMachine src/Dodge/Data/Machine.hs 50;" f -_mcoBarOffset src/Dodge/Data/Input.hs 28;" f -_mcoCombCombine src/Dodge/Data/Input.hs 24;" f -_mcoCombSelect src/Dodge/Data/Input.hs 23;" f -_mcoDBBool src/Dodge/Data/Input.hs 31;" f -_mcoDBInt src/Dodge/Data/Input.hs 31;" f -_mcoDragSection src/Dodge/Data/Input.hs 19;" f -_mcoInvFilt src/Dodge/Data/Input.hs 22;" f -_mcoInvSelect src/Dodge/Data/Input.hs 21;" f -_mcoMaybeSelect src/Dodge/Data/Input.hs 19;" f +_mcoBarOffset src/Dodge/Data/Input.hs 27;" f +_mcoCombCombine src/Dodge/Data/Input.hs 23;" f +_mcoCombSelect src/Dodge/Data/Input.hs 22;" f +_mcoDBBool src/Dodge/Data/Input.hs 30;" f +_mcoDBInt src/Dodge/Data/Input.hs 30;" f +_mcoDragSection src/Dodge/Data/Input.hs 18;" f +_mcoInvFilt src/Dodge/Data/Input.hs 21;" f +_mcoInvSelect src/Dodge/Data/Input.hs 20;" f +_mcoMaybeSelect src/Dodge/Data/Input.hs 18;" f _mcoMenuClick src/Dodge/Data/Input.hs 17;" f -_mcoRotateDist src/Dodge/Data/Input.hs 30;" f -_mcoSecSelStart src/Dodge/Data/Input.hs 20;" f -_mcoSelEnd src/Dodge/Data/Input.hs 20;" f -_mcoTermID src/Dodge/Data/Input.hs 27;" f -_mcoTermStatus src/Dodge/Data/Input.hs 27;" f +_mcoRotateDist src/Dodge/Data/Input.hs 29;" f +_mcoSecSelStart src/Dodge/Data/Input.hs 19;" f +_mcoSelEnd src/Dodge/Data/Input.hs 19;" f +_mcoTermID src/Dodge/Data/Input.hs 26;" f +_mcoTermStatus src/Dodge/Data/Input.hs 26;" f _mcsAmount src/Dodge/Data/Machine.hs 49;" f _mcsType src/Dodge/Data/Machine.hs 49;" f _mctTurret src/Dodge/Data/Machine.hs 48;" f @@ -2041,11 +2040,11 @@ _moString src/Dodge/Data/Universe.hs 117;" f _modOption src/Dodge/Data/Universe.hs 107;" f _modString src/Dodge/Data/Universe.hs 105;" f _modifications src/Dodge/Data/LWorld.hs 132;" f -_mouseButtons src/Dodge/Data/Input.hs 39;" f -_mouseButtonsReleased src/Dodge/Data/Input.hs 40;" f -_mouseContext src/Dodge/Data/Input.hs 36;" f -_mouseMoving src/Dodge/Data/Input.hs 37;" f -_mousePos src/Dodge/Data/Input.hs 35;" f +_mouseButtons src/Dodge/Data/Input.hs 38;" f +_mouseButtonsReleased src/Dodge/Data/Input.hs 39;" f +_mouseContext src/Dodge/Data/Input.hs 35;" f +_mouseMoving src/Dodge/Data/Input.hs 36;" f +_mousePos src/Dodge/Data/Input.hs 34;" f _mtBranches src/Dodge/Data/MetaTree.hs 13;" f _mtLabel src/Dodge/Data/MetaTree.hs 13;" f _mtTree src/Dodge/Data/MetaTree.hs 13;" f @@ -2126,7 +2125,7 @@ _prPos src/Dodge/Data/Prop.hs 15;" f _prRooms src/Dodge/Tree/Shift.hs 31;" f _prRot src/Dodge/Data/Prop.hs 18;" f _preloadData src/Dodge/Data/Universe.hs 30;" f -_pressedKeys src/Dodge/Data/Input.hs 38;" f +_pressedKeys src/Dodge/Data/Input.hs 37;" f _projectiles src/Dodge/Data/LWorld.hs 104;" f _props src/Dodge/Data/LWorld.hs 102;" f _proxReqDead src/Dodge/Data/Machine/Sensor.hs 36;" f @@ -2260,14 +2259,14 @@ _scPara src/Dodge/Data/Universe.hs 94;" f _scPositionedMenuOption src/Dodge/Data/Universe.hs 86;" f _scSelectionList src/Dodge/Data/Universe.hs 88;" f _scTitle src/Dodge/Data/Universe.hs 83;" f -_scrollAmount src/Dodge/Data/Input.hs 41;" f +_scrollAmount src/Dodge/Data/Input.hs 40;" f _scrollItemID src/Dodge/Data/World.hs 73;" f _scrollItemID src/Dodge/Data/World.hs 82;" f _scrollItemID src/Dodge/Data/World.hs 86;" f _scrollSmoothing src/Dodge/Data/World.hs 70;" f _scrollSmoothing src/Dodge/Data/World.hs 76;" f -_scrollTestFloat src/Dodge/Data/Input.hs 48;" f -_scrollTestInt src/Dodge/Data/Input.hs 49;" f +_scrollTestFloat src/Dodge/Data/Input.hs 47;" f +_scrollTestInt src/Dodge/Data/Input.hs 48;" f _scurColor src/Dodge/Data/SelectionList.hs 28;" f _scurPos src/Dodge/Data/SelectionList.hs 26;" f _scurSize src/Dodge/Data/SelectionList.hs 27;" f @@ -2314,7 +2313,7 @@ _skinUpper src/Dodge/Data/Creature/Misc.hs 72;" f _slInt src/Dodge/Data/HUD.hs 39;" f _slSec src/Dodge/Data/HUD.hs 39;" f _slSet src/Dodge/Data/HUD.hs 39;" f -_smoothScrollAmount src/Dodge/Data/Input.hs 42;" f +_smoothScrollAmount src/Dodge/Data/Input.hs 41;" f _soundAngDist src/Sound/Data.hs 47;" f _soundChannel src/Sound/Data.hs 46;" f _soundChunkID src/Sound/Data.hs 51;" f @@ -2369,7 +2368,7 @@ _termID src/Dodge/Data/HUD.hs 27;" f _terminals src/Dodge/Data/LWorld.hs 126;" f _teslaArcs src/Dodge/Data/LWorld.hs 114;" f _testFloat src/Dodge/Data/World.hs 45;" f -_textInput src/Dodge/Data/Input.hs 47;" f +_textInput src/Dodge/Data/Input.hs 46;" f _textureAntiaShader src/Data/Preload/Render.hs 24;" f _textureObject src/Shader/Data.hs 103;" f _tiText src/Dodge/Data/Terminal/Status.hs 14;" f @@ -2574,7 +2573,7 @@ addZ src/Geometry/Vector3D.hs 89;" f adjustIMZone src/Dodge/Base.hs 81;" f advanceScrollAmount src/Dodge/Update.hs 484;" f advanceSmoothScroll src/Dodge/SmoothScroll.hs 33;" f -aimDelaySweep src/Dodge/Render/Picture.hs 286;" f +aimDelaySweep src/Dodge/Render/Picture.hs 291;" f aimStanceInfo src/Dodge/Item/Info.hs 243;" f aimTurn src/Dodge/Creature/YourControl.hs 152;" f airlock src/Dodge/Room/Airlock.hs 28;" f @@ -2784,7 +2783,7 @@ buttonFlip src/Dodge/Button/Event.hs 18;" f buzz1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 837;" f buzzS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 599;" f byNthLink src/Dodge/Room/Warning.hs 44;" f -cChasm src/Dodge/Room/Tutorial.hs 137;" f +cChasm src/Dodge/Room/Tutorial.hs 138;" f cFilledRect src/Dodge/CharacterEnums.hs 6;" f cWireRect src/Dodge/CharacterEnums.hs 10;" f calcSmoothScroll src/Dodge/SmoothScroll.hs 11;" f @@ -2822,8 +2821,8 @@ chaseCritInternal src/Dodge/Humanoid.hs 11;" f chaseCritMv src/Dodge/Creature/ReaderUpdate.hs 123;" f chaseUpperBody src/Dodge/Creature/Picture.hs 77;" f chasmRotate src/Dodge/Creature/State/WalkCycle.hs 116;" f -chasmSimpleMaze src/Dodge/Room/Tutorial.hs 375;" f -chasmSpitTerminal src/Dodge/Room/Tutorial.hs 307;" f +chasmSimpleMaze src/Dodge/Room/Tutorial.hs 376;" f +chasmSpitTerminal src/Dodge/Room/Tutorial.hs 308;" f chasmTestCliffPush src/Dodge/Creature/State/WalkCycle.hs 101;" f chasmWallToSurface src/Dodge/Base/Collide.hs 121;" f checkCombineSelectionExists src/Dodge/DisplayInventory.hs 100;" f @@ -2940,7 +2939,7 @@ connectItemS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 753;" f constructEdges src/Polyhedra.hs 31;" f constructEdgesList src/Polyhedra.hs 40;" f contToIDCont src/Dodge/LevelGen/PlacementHelper.hs 58;" f -continueTerminal src/Dodge/Update/Input/InGame.hs 396;" f +continueTerminal src/Dodge/Update/Input/InGame.hs 390;" f convexHull src/Geometry/Polygon.hs 150;" f convexHullSafe src/Geometry/Polygon.hs 172;" f convexPolysOverlap src/Geometry/ConvexPoly.hs 48;" f @@ -3267,7 +3266,7 @@ doDebugTestF7 src/Dodge/Update/Input/DebugTest.hs 51;" f doDebugTestF8 src/Dodge/Update/Input/DebugTest.hs 59;" f doDoorLerp src/Dodge/Door/DoorLerp.hs 8;" f doDoorMount src/Dodge/Door.hs 32;" f -doDrag src/Dodge/Update/Input/InGame.hs 148;" f +doDrag src/Dodge/Update/Input/InGame.hs 142;" f doDrawing src/Dodge/Render.hs 33;" f doDrawing' src/Dodge/Render.hs 44;" f doFloatFloat src/Dodge/FloatFunction.hs 5;" f @@ -3286,7 +3285,7 @@ doPreload appDodge/Main.hs 132;" f doQuickload src/Dodge/Save.hs 83;" f doQuicksave src/Dodge/Save.hs 77;" f doRandImpulse src/Dodge/RandImpulse.hs 8;" f -doRegexInput src/Dodge/Update/Input/InGame.hs 442;" f +doRegexInput src/Dodge/Update/Input/InGame.hs 436;" f doRoomPlacements src/Dodge/Layout.hs 116;" f doRoomShift src/Dodge/Room/Link.hs 34;" f doScopeZoom src/Dodge/Update/Scroll.hs 89;" f @@ -3320,10 +3319,10 @@ doublePairSet src/Geometry.hs 166;" f doubleTreeToIndentList src/Dodge/DoubleTree.hs 28;" f doubleV2 src/Geometry.hs 169;" f drawARHUD src/Dodge/Creature/State.hs 198;" f -drawAimSweep src/Dodge/Render/Picture.hs 293;" f +drawAimSweep src/Dodge/Render/Picture.hs 298;" f drawAllShadows src/Dodge/Shadows.hs 5;" f -drawAnySelectionBox src/Dodge/Render/Picture.hs 131;" f -drawArrowDown src/Dodge/Render/Picture.hs 220;" f +drawAnySelectionBox src/Dodge/Render/Picture.hs 132;" f +drawArrowDown src/Dodge/Render/Picture.hs 225;" f drawBaseMachine src/Dodge/Machine/Draw.hs 74;" f drawBlip src/Dodge/RadarBlip.hs 16;" f drawBlock src/Dodge/Render/ShapePicture.hs 81;" f @@ -3335,7 +3334,7 @@ drawChaseCrit src/Dodge/Creature/Picture.hs 68;" f drawCircCollisionTest src/Dodge/Debug/Picture.hs 118;" f drawCliff src/Dodge/Render/ShapePicture.hs 87;" f drawCollisionTest src/Dodge/Debug/Picture.hs 103;" f -drawCombFilter src/Dodge/Render/Picture.hs 268;" f +drawCombFilter src/Dodge/Render/Picture.hs 273;" f drawCombineInventory src/Dodge/Render/HUD.hs 190;" f drawConcurrentMessage src/Dodge/Render/Picture.hs 72;" f drawCoord src/Dodge/Debug/Picture.hs 396;" f @@ -3347,18 +3346,18 @@ drawCreatureDisplayTexts src/Dodge/Debug/Picture.hs 199;" f drawCross src/Dodge/Render/Label.hs 25;" f drawCrossCol src/Dodge/Render/Label.hs 21;" f drawCursorAt src/Dodge/Render/List.hs 73;" f -drawCursorByTerminalStatus src/Dodge/Render/Picture.hs 138;" f +drawCursorByTerminalStatus src/Dodge/Render/Picture.hs 139;" f drawDDATest src/Dodge/Debug/Picture.hs 304;" f drawDamSensor src/Dodge/Machine/Draw.hs 37;" f drawDebug src/Dodge/Debug.hs 253;" f -drawDrag src/Dodge/Render/Picture.hs 199;" f -drawDragDrop src/Dodge/Render/Picture.hs 228;" f -drawDragPickup src/Dodge/Render/Picture.hs 237;" f -drawDragSelect src/Dodge/Render/Picture.hs 196;" f +drawDrag src/Dodge/Render/Picture.hs 204;" f +drawDragDrop src/Dodge/Render/Picture.hs 233;" f +drawDragPickup src/Dodge/Render/Picture.hs 242;" f +drawDragSelect src/Dodge/Render/Picture.hs 197;" f drawDragSelected src/Dodge/Render/HUD.hs 144;" f drawDragSelecting src/Dodge/Render/HUD.hs 162;" f drawDumbSwitch src/Dodge/Button/Draw.hs 31;" f -drawEmptySet src/Dodge/Render/Picture.hs 152;" f +drawEmptySet src/Dodge/Render/Picture.hs 153;" f drawEnergyBall src/Dodge/EnergyBall/Draw.hs 7;" f drawEquipment src/Dodge/Creature/Picture.hs 180;" f drawExamineInventory src/Dodge/Render/HUD.hs 199;" f @@ -3367,7 +3366,7 @@ drawFarWallDetect src/Dodge/Debug/Picture.hs 271;" f drawFlame src/Dodge/Flame/Draw.hs 8;" f drawFlamelet src/Dodge/EnergyBall/Draw.hs 34;" f drawForceField src/Dodge/Wall/Draw.hs 15;" f -drawGapPlus src/Dodge/Render/Picture.hs 279;" f +drawGapPlus src/Dodge/Render/Picture.hs 284;" f drawGib src/Dodge/Prop/Draw.hs 31;" f drawHUD src/Dodge/Render/HUD.hs 53;" f drawHoverCrit src/Dodge/Creature/Picture.hs 58;" f @@ -3377,7 +3376,7 @@ drawInspectWalls src/Dodge/Debug/Picture.hs 244;" f drawInventory src/Dodge/Render/HUD.hs 61;" f drawItemChildrenConnect src/Dodge/Render/HUD.hs 332;" f drawItemConnections src/Dodge/Render/HUD.hs 325;" f -drawJumpDown src/Dodge/Render/Picture.hs 191;" f +drawJumpDown src/Dodge/Render/Picture.hs 192;" f drawLabCrossCol src/Dodge/Render/Label.hs 8;" f drawLabelledList src/Dodge/Render/List.hs 198;" f drawLaser src/Dodge/Laser/Update.hs 30;" f @@ -3391,8 +3390,8 @@ drawLoadingScreen src/Dodge/Render/MenuScreen.hs 24;" f drawMachine src/Dodge/Machine/Draw.hs 17;" f drawMapperAR src/Dodge/Targeting/Draw.hs 12;" f drawMapperInventory src/Dodge/Render/HUD.hs 181;" f -drawMenuClick src/Dodge/Render/Picture.hs 167;" f -drawMenuCursor src/Dodge/Render/Picture.hs 179;" f +drawMenuClick src/Dodge/Render/Picture.hs 168;" f +drawMenuCursor src/Dodge/Render/Picture.hs 180;" f drawMenuOrHUD src/Dodge/Render/Picture.hs 67;" f drawMenuScreen src/Dodge/Render/MenuScreen.hs 18;" f drawMouseCursor src/Dodge/Render/Picture.hs 83;" f @@ -3403,20 +3402,20 @@ drawPathBetween src/Dodge/Debug/Picture.hs 202;" f drawPathEdge src/Dodge/Debug/Picture.hs 261;" f drawPathing src/Dodge/Debug/Picture.hs 417;" f drawPlasmaBall src/Dodge/Render/ShapePicture.hs 103;" f -drawPlus src/Dodge/Render/Picture.hs 164;" f +drawPlus src/Dodge/Render/Picture.hs 165;" f drawPointLabel src/Dodge/Render/Label.hs 13;" f drawProjectile src/Dodge/Projectile/Draw.hs 13;" f drawPulseBall src/Dodge/Render/ShapePicture.hs 95;" f drawPulseLaser src/Dodge/Laser/Update.hs 42;" f -drawQuitTerminal src/Dodge/Render/Picture.hs 146;" f +drawQuitTerminal src/Dodge/Render/Picture.hs 147;" f drawRBOptions src/Dodge/Render/HUD.hs 253;" f drawRadarSweep src/Dodge/RadarSweep/Draw.hs 14;" f drawRemoteShell src/Dodge/Projectile/Draw.hs 38;" f -drawReturn src/Dodge/Render/Picture.hs 155;" f +drawReturn src/Dodge/Render/Picture.hs 156;" f drawRootCursor src/Dodge/Render/HUD.hs 82;" f drawSSCursor src/Dodge/SelectionSections/Draw.hs 32;" f drawSSMultiCursor src/Dodge/SelectionSections/Draw.hs 37;" f -drawSelect src/Dodge/Render/Picture.hs 256;" f +drawSelect src/Dodge/Render/Picture.hs 261;" f drawSelectionList src/Dodge/Render/List.hs 35;" f drawSelectionSections src/Dodge/SelectionSections/Draw.hs 17;" f drawShaderLay src/Render.hs 218;" f @@ -3429,7 +3428,7 @@ drawSubInventory src/Dodge/Render/HUD.hs 173;" f drawSwitch src/Dodge/Button/Draw.hs 18;" f drawSwitchWire src/Dodge/LevelGen/Switch.hs 24;" f drawTargetingAR src/Dodge/Targeting/Draw.hs 20;" f -drawTerminalCursorLink src/Dodge/Render/HUD.hs 394;" f +drawTerminalCursorLink src/Dodge/Render/HUD.hs 396;" f drawTerminalDisplay src/Dodge/Render/HUD.hs 357;" f drawTeslaArc src/Dodge/Tesla/Draw.hs 9;" f drawText src/Picture/Base.hs 224;" f @@ -3437,7 +3436,7 @@ drawTitle src/Dodge/Render/MenuScreen.hs 49;" f drawTitleBackground src/Dodge/Render/List.hs 60;" f drawTractorBeam src/Dodge/TractorBeam/Draw.hs 7;" f drawTurret src/Dodge/Machine/Draw.hs 92;" f -drawVerticalDoubleArrow src/Dodge/Render/Picture.hs 211;" f +drawVerticalDoubleArrow src/Dodge/Render/Picture.hs 216;" f drawWall src/Dodge/Wall/Draw.hs 11;" f drawWallFace src/Dodge/Debug/Picture.hs 73;" f drawWallSearchRays src/Dodge/Debug/Picture.hs 323;" f @@ -3492,8 +3491,8 @@ encircleCloseP src/Dodge/Creature/Boid.hs 38;" f encircleDistP src/Dodge/Creature/Boid.hs 24;" f encircleP src/Dodge/Creature/Boid.hs 30;" f endArcPos src/Dodge/Tesla.hs 86;" f -endCombineRegex src/Dodge/Update/Input/InGame.hs 296;" f -endRegex src/Dodge/Update/Input/InGame.hs 290;" f +endCombineRegex src/Dodge/Update/Input/InGame.hs 290;" f +endRegex src/Dodge/Update/Input/InGame.hs 284;" f energyReleaseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 697;" f enterCombineInv src/Dodge/DisplayInventory.hs 321;" f enumOption src/Dodge/Menu/OptionType.hs 17;" f @@ -3588,7 +3587,7 @@ floorTo src/Geometry/Zone.hs 12;" f floorWire src/Dodge/Wire.hs 13;" f foamSprayFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 785;" f foamSprayLoopS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 831;" f -foldMTRS src/Dodge/Room/Tutorial.hs 91;" f +foldMTRS src/Dodge/Room/Tutorial.hs 92;" f foldPairs src/ListHelp.hs 37;" f foldrWhileArb src/ListHelp.hs 111;" f followImpulse src/Dodge/Creature/Impulse.hs 24;" f @@ -3646,12 +3645,12 @@ getAutoSpringLinks src/Dodge/Item/Grammar.hs 89;" f getAvailableListLines src/Dodge/SelectionList.hs 10;" f getBulHitDams src/Dodge/Bullet.hs 173;" f getBulletType src/Dodge/HeldUse.hs 937;" f -getCloseObj src/Dodge/Update/Input/InGame.hs 528;" f +getCloseObj src/Dodge/Update/Input/InGame.hs 522;" f getCommand src/Dodge/Terminal.hs 61;" f getCommands src/Dodge/Terminal.hs 58;" f getCrMoveSpeed src/Dodge/Creature/Statistics.hs 50;" f -getCrsFromRooms src/Dodge/Room/Tutorial.hs 580;" f -getCrsFromRooms' src/Dodge/Room/Tutorial.hs 567;" f +getCrsFromRooms src/Dodge/Room/Tutorial.hs 579;" f +getCrsFromRooms' src/Dodge/Room/Tutorial.hs 566;" f getDebugMouseOver src/Dodge/Update.hs 459;" f getDistortions src/Dodge/Render.hs 443;" f getEdgesCrossing src/Dodge/Path.hs 39;" f @@ -3668,7 +3667,7 @@ getPJStabiliser src/Dodge/HeldUse.hs 1271;" f getPretty src/AesonHelp.hs 8;" f getPromptTM src/Dodge/Terminal/Type.hs 3;" f getRoomFromID src/Dodge/Room/Modify.hs 31;" f -getRoomsFromInts src/Dodge/Room/Tutorial.hs 563;" f +getRoomsFromInts src/Dodge/Room/Tutorial.hs 562;" f getRootItemBounds src/Dodge/Render/HUD.hs 106;" f getRootItemInvID src/Dodge/Inventory/Location.hs 36;" f getSelectedCloseObj src/Dodge/SelectedClose.hs 14;" f @@ -3864,7 +3863,7 @@ invDP src/Dodge/ListDisplayParams.hs 32;" f invDT src/Dodge/Item/Grammar.hs 225;" f invDT' src/Dodge/Item/Grammar.hs 230;" f invDimColor src/Dodge/DisplayInventory.hs 190;" f -invHead src/Dodge/Render/HUD.hs 423;" f +invHead src/Dodge/Render/HUD.hs 426;" f invIMDT src/Dodge/Item/Grammar.hs 254;" f invIndents src/Dodge/Item/Grammar.hs 261;" f invItemEffs src/Dodge/Creature/State.hs 68;" f @@ -3893,7 +3892,7 @@ isCognizant src/Dodge/Creature/Perception.hs 118;" f isConnected src/Dodge/Inventory/Swap.hs 77;" f isCornerLink src/Dodge/RoomLink.hs 66;" f isFlyable src/Dodge/WorldEvent/ThingsHit.hs 193;" f -isGroupSelectableSection src/Dodge/Update/Input/InGame.hs 218;" f +isGroupSelectableSection src/Dodge/Update/Input/InGame.hs 212;" f isInLnk src/Dodge/PlacementSpot.hs 163;" f isJust' src/MaybeHelp.hs 27;" f isLHS src/Geometry/LHS.hs 12;" f @@ -3987,7 +3986,7 @@ keyCardRunPastRand src/Dodge/LockAndKey.hs 37;" f keyPic src/Dodge/Item/Draw/SPic.hs 441;" f keyholeCorridor src/Dodge/Room/Corridor.hs 45;" f knifeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 749;" f -lChasm src/Dodge/Room/Tutorial.hs 149;" f +lChasm src/Dodge/Room/Tutorial.hs 150;" f lConnect src/Dodge/Render/Connectors.hs 43;" f lConnectCol src/Dodge/Render/Connectors.hs 46;" f lConnectMulti src/Dodge/Render/Connectors.hs 51;" f @@ -4015,7 +4014,7 @@ latticeXsYs src/Grid.hs 24;" f launcherCrit src/Dodge/Creature/LauncherCrit.hs 12;" f layoutLevelFromSeed src/Dodge/LevelGen.hs 42;" f ldpRect src/Dodge/Render/List.hs 48;" f -ldpSelection src/Dodge/Update/Input/ScreenLayer.hs 84;" f +ldpSelection src/Dodge/Update/Input/ScreenLayer.hs 80;" f leaveResetQuitTerminal src/Dodge/WorldEffect.hs 164;" f led src/Dodge/Item/Held/Utility.hs 23;" f left src/DoubleStack.hs 16;" f @@ -4054,8 +4053,8 @@ listGuard src/Dodge/Creature/ReaderUpdate.hs 212;" f listSelectionColorPicture src/Dodge/DisplayInventory.hs 299;" f litCorridor90 src/Dodge/Room/RoadBlock.hs 26;" f lmt src/MatrixHelper.hs 53;" f -lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 412;" f -loadAmmoTut src/Dodge/Room/Tutorial.hs 429;" f +lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 415;" f +loadAmmoTut src/Dodge/Room/Tutorial.hs 430;" f loadDodgeConfig src/Dodge/Config.hs 30;" f loadMusic src/Dodge/SoundLogic/LoadSound.hs 30;" f loadMuzzle src/Dodge/HeldUse.hs 654;" f @@ -4182,7 +4181,7 @@ maybeBlockedPassage src/Dodge/Room/RezBox.hs 80;" f maybeClearLoadingScreen src/Dodge/StartNewGame.hs 58;" f maybeDestroyBlock src/Dodge/Wall/Damage.hs 136;" f maybeDestroyDoor src/Dodge/Wall/Damage.hs 141;" f -maybeExitCombine src/Dodge/Update/Input/InGame.hs 557;" f +maybeExitCombine src/Dodge/Update/Input/InGame.hs 551;" f maybeOpenConsole src/Dodge/Update.hs 134;" f maybeReadFile src/Dodge/LoadSeed.hs 10;" f maybeTakeOne src/RandomHelp.hs 135;" f @@ -4235,9 +4234,9 @@ mglCreate src/GLHelp.hs 8;" f mglDelete src/GLHelp.hs 14;" f midBarDecoration src/Dodge/Placement/TopDecoration.hs 23;" f midBounds src/Dodge/Room/Foreground.hs 150;" f -midChasm src/Dodge/Room/Tutorial.hs 178;" f -midChasmPlatform src/Dodge/Room/Tutorial.hs 200;" f -midChasmSpit src/Dodge/Room/Tutorial.hs 268;" f +midChasm src/Dodge/Room/Tutorial.hs 179;" f +midChasmPlatform src/Dodge/Room/Tutorial.hs 201;" f +midChasmSpit src/Dodge/Room/Tutorial.hs 269;" f midPad src/Padding.hs 27;" f midPadL src/Padding.hs 33;" f midPoint src/Geometry.hs 83;" f @@ -4340,7 +4339,7 @@ noShape src/ShapePicture.hs 29;" f noclipCheck src/Dodge/WallCreatureCollisions.hs 22;" f nodeNear src/Dodge/Path.hs 94;" f nodesNear src/Dodge/Path.hs 100;" f -nonConvexChasm src/Dodge/Room/Tutorial.hs 265;" f +nonConvexChasm src/Dodge/Room/Tutorial.hs 266;" f nonCornerLinks src/Dodge/Room/SensorDoor.hs 53;" f normalGait src/Dodge/Creature/State/WalkCycle.hs 140;" f normalTo8 src/Shader/Poke.hs 466;" f @@ -4416,11 +4415,11 @@ pairsToSCC src/Dodge/Graph.hs 32;" f paletteToColor src/Color.hs 85;" f parseItem src/Dodge/Debug/Terminal.hs 62;" f parseNum src/Dodge/Debug/Terminal.hs 77;" f -passthroughLockKeyLists src/Dodge/Room/Tutorial.hs 645;" f +passthroughLockKeyLists src/Dodge/Room/Tutorial.hs 644;" f pathConnected src/Dodge/Room/CheckConsistency.hs 13;" f pathEdgeObstructed src/Dodge/Path.hs 87;" f pauseAndFloatCam src/Dodge/Camera.hs 10;" f -pauseGame src/Dodge/Update/Input/InGame.hs 520;" f +pauseGame src/Dodge/Update/Input/InGame.hs 514;" f pauseMenu src/Dodge/Menu.hs 57;" f pauseMenuOptions src/Dodge/Menu.hs 64;" f pauseSound src/Dodge/SoundLogic.hs 42;" f @@ -4521,8 +4520,8 @@ pokeWall src/Shader/Poke.hs 80;" f pokeWallsWindows src/Shader/Poke.hs 52;" f poly3 src/Picture/Base.hs 76;" f poly3Col src/Picture/Base.hs 80;" f -polyChasm src/Dodge/Room/Tutorial.hs 353;" f -polyChasmC src/Dodge/Room/Tutorial.hs 365;" f +polyChasm src/Dodge/Room/Tutorial.hs 354;" f +polyChasmC src/Dodge/Room/Tutorial.hs 366;" f polyCirc src/Shape.hs 47;" f polyCircx src/Shape.hs 52;" f polyCornerDist src/Geometry/Polygon.hs 69;" f @@ -4614,7 +4613,7 @@ putLitButOnPosExtTrig src/Dodge/Placement/Instance/Button.hs 97;" f putLitButOnPosExtTrig' src/Dodge/Placement/Instance/Button.hs 100;" f putMessageTerminal src/Dodge/Placement/Instance/Terminal.hs 58;" f putShape src/Dodge/Room/Foreground.hs 134;" f -putSingleLight src/Dodge/Room/Tutorial.hs 463;" f +putSingleLight src/Dodge/Room/Tutorial.hs 462;" f putSlideDr src/Dodge/Door/PutSlideDoor.hs 12;" f putStrLnAppend src/Dodge/LevelGen.hs 84;" f putTerminal src/Dodge/Placement/Instance/Terminal.hs 52;" f @@ -4883,10 +4882,10 @@ sectionsSizes src/Dodge/DisplayInventory.hs 205;" f seedStartMenu src/Dodge/Menu.hs 85;" f seedStartOptions src/Dodge/Menu.hs 88;" f segOnCirc src/Geometry.hs 113;" f -selNumPos src/Dodge/Render/HUD.hs 472;" f -selNumPosCardinal src/Dodge/Render/HUD.hs 489;" f +selNumPos src/Dodge/Render/HUD.hs 475;" f +selNumPosCardinal src/Dodge/Render/HUD.hs 492;" f selSecDrawCursor src/Dodge/Render/List.hs 101;" f -selSecSelCol src/Dodge/Render/HUD.hs 509;" f +selSecSelCol src/Dodge/Render/HUD.hs 512;" f selSecSelSize src/Dodge/SelectionSections.hs 157;" f selSecYint src/Dodge/SelectionSections.hs 166;" f selectedItemScroll src/Dodge/Update/Scroll.hs 49;" f @@ -4899,7 +4898,7 @@ sensorReqToString src/Dodge/Machine/Update.hs 240;" f sensorRoom src/Dodge/Room/SensorDoor.hs 27;" f sensorRoomRunPast src/Dodge/Room/SensorDoor.hs 59;" f sensorSPic src/Dodge/Machine/Draw.hs 97;" f -sensorTut src/Dodge/Room/Tutorial.hs 589;" f +sensorTut src/Dodge/Room/Tutorial.hs 588;" f sensorTypeDamages src/Dodge/Machine/Update.hs 286;" f sensorTypeDamages src/Dodge/Wall/Damage.hs 92;" f sentinelAI src/Dodge/Creature/SentinelAI.hs 20;" f @@ -4924,17 +4923,17 @@ setOldPos src/Dodge/Update.hs 585;" f setOutLinks src/Dodge/RoomLink.hs 49;" f setOutLinksByType src/Dodge/RoomLink.hs 76;" f setOutLinksPD src/Dodge/RoomLink.hs 96;" f -setPixelOffsetBounded src/Dodge/Update/Input/InGame.hs 132;" f +setPixelOffsetBounded src/Dodge/Update/Input/InGame.hs 131;" f setRBCreatureTargeting src/Dodge/Creature/State.hs 294;" f -setSelWhileDragging src/Dodge/Update/Input/InGame.hs 345;" f -setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 97;" f +setSelWhileDragging src/Dodge/Update/Input/InGame.hs 339;" f +setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 93;" f setShaderSource src/Shader/Compile.hs 121;" f setShadowLimits src/Dodge/Shadows.hs 11;" f setSoundVolume src/Sound.hs 159;" f setTargetMv src/Dodge/Creature/ReaderUpdate.hs 84;" f setTile src/Dodge/Layout.hs 75;" f setTiles src/Dodge/Layout.hs 68;" f -setTreeInts src/Dodge/Room/Tutorial.hs 98;" f +setTreeInts src/Dodge/Room/Tutorial.hs 99;" f setViewDistance src/Dodge/Update/Camera.hs 240;" f setViewPos src/Dodge/Creature/ReaderUpdate.hs 70;" f setViewport src/Dodge/Render.hs 448;" f @@ -4969,7 +4968,7 @@ shiftByV2 src/Dodge/PlacementSpot.hs 257;" f shiftChildren src/Dodge/Tree/Compose.hs 45;" f shiftDraw src/Dodge/Render/ShapePicture.hs 134;" f shiftInBy src/Dodge/PlacementSpot.hs 254;" f -shiftInvItems src/Dodge/Update/Input/InGame.hs 313;" f +shiftInvItems src/Dodge/Update/Input/InGame.hs 307;" f shiftInvItemsDown src/Dodge/Inventory.hs 181;" f shiftInvItemsUp src/Dodge/Inventory.hs 191;" f shiftLinkBy src/Dodge/Room/Link.hs 89;" f @@ -5091,7 +5090,7 @@ soundWithStatus src/Dodge/SoundLogic.hs 104;" f soundWithStatusVolume src/Dodge/SoundLogic.hs 54;" f southPillarsRoom src/Dodge/Room/LongDoor.hs 89;" f spPos src/ShapePicture/Data.hs 11;" f -spaceAction src/Dodge/Update/Input/InGame.hs 523;" f +spaceAction src/Dodge/Update/Input/InGame.hs 517;" f spanColLightBlackI src/Dodge/Placement/Instance/LightSource.hs 162;" f spanColLightI src/Dodge/Placement/Instance/LightSource.hs 155;" f spanLS src/Dodge/Placement/Instance/LightSource.hs 147;" f @@ -5120,8 +5119,8 @@ spreadGunCrit src/Dodge/Creature/SpreadGunCrit.hs 11;" f spreadOut src/Dodge/Creature/Boid.hs 160;" f sps src/Dodge/LevelGen/PlacementHelper.hs 30;" f sps0 src/Dodge/LevelGen/PlacementHelper.hs 42;" f -sqPlatformChasm src/Dodge/Room/Tutorial.hs 229;" f -sqSpitChasm src/Dodge/Room/Tutorial.hs 244;" f +sqPlatformChasm src/Dodge/Room/Tutorial.hs 230;" f +sqSpitChasm src/Dodge/Room/Tutorial.hs 245;" f square src/Geometry/Polygon.hs 56;" f squareDecoration src/Dodge/Placement/TopDecoration.hs 48;" f squashIntersectCirclePoint src/Dodge/WallCreatureCollisions.hs 129;" f @@ -5149,7 +5148,7 @@ stackedInventory src/Dodge/Creature.hs 326;" f startCr src/Dodge/Creature.hs 90;" f startCrafts src/Dodge/Room/Start.hs 94;" f startDeathTimer src/Dodge/Creature/Update.hs 119;" f -startDrag src/Dodge/Update/Input/InGame.hs 305;" f +startDrag src/Dodge/Update/Input/InGame.hs 299;" f startInvList src/Dodge/Creature.hs 105;" f startInventory src/Dodge/Creature.hs 108;" f startNewGameInSlot src/Dodge/StartNewGame.hs 16;" f @@ -5377,13 +5376,13 @@ truncate src/Polyhedra/Geodesic.hs 39;" f trunkDepth src/TreeHelp.hs 164;" f tryAttachItems src/Dodge/Item/Grammar.hs 34;" f tryClickUse src/Dodge/Creature/YourControl.hs 207;" f -tryCombine src/Dodge/Update/Input/InGame.hs 540;" f +tryCombine src/Dodge/Update/Input/InGame.hs 534;" f tryDrawToCapacitor src/Dodge/Creature/State.hs 156;" f -tryDropSelected src/Dodge/Update/Input/InGame.hs 159;" f +tryDropSelected src/Dodge/Update/Input/InGame.hs 153;" f tryGetChannel src/Sound.hs 99;" f tryGetRootAttachedFromInvID src/Dodge/Inventory/Location.hs 23;" f tryMeleeAttack src/Dodge/Creature/ReaderUpdate.hs 41;" f -tryPickupSelected src/Dodge/Update/Input/InGame.hs 166;" f +tryPickupSelected src/Dodge/Update/Input/InGame.hs 160;" f tryPlay src/Sound.hs 85;" f tryPutItemInInv src/Dodge/Inventory/Add.hs 24;" f tryPutItemInInvAt src/Dodge/Inventory/Add.hs 54;" f @@ -5395,12 +5394,12 @@ tryUseParent src/Dodge/Creature/State.hs 150;" f turnTo src/Dodge/Movement/Turn.hs 8;" f turretItemOffset src/Dodge/Item/HeldOffset.hs 23;" f tutAnoTree src/Dodge/Room/Tutorial.hs 54;" f -tutDrop src/Dodge/Room/Tutorial.hs 103;" f -tutHub src/Dodge/Room/Tutorial.hs 487;" f -tutLight src/Dodge/Room/Tutorial.hs 397;" f -tutRezBox src/Dodge/Room/Tutorial.hs 600;" f +tutDrop src/Dodge/Room/Tutorial.hs 104;" f +tutHub src/Dodge/Room/Tutorial.hs 486;" f +tutLight src/Dodge/Room/Tutorial.hs 398;" f +tutRezBox src/Dodge/Room/Tutorial.hs 599;" f tutRoomTree src/Dodge/Floor.hs 20;" f -tutorialMessage1 src/Dodge/Room/Tutorial.hs 625;" f +tutorialMessage1 src/Dodge/Room/Tutorial.hs 624;" f tweenAngles src/Geometry/Vector.hs 192;" f twinSlowDoorChasers src/Dodge/Room/LongDoor.hs 83;" f twinSlowDoorRoom src/Dodge/Room/LongDoor.hs 39;" f @@ -5435,7 +5434,7 @@ unusedSpotNearInLink src/Dodge/PlacementSpot.hs 203;" f updateAimPos src/Dodge/Update.hs 384;" f updateAllNodes src/TreeHelp.hs 88;" f updateArc src/Dodge/Tesla.hs 43;" f -updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 473;" f +updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 467;" f updateBarrel src/Dodge/Barreloid.hs 44;" f updateBarreloid src/Dodge/Barreloid.hs 16;" f updateBaseWheelEvent src/Dodge/Update/Scroll.hs 30;" f @@ -5473,43 +5472,43 @@ updateEdgesWall src/Dodge/Update/WallDamage.hs 23;" f updateEdgesWall' src/Dodge/Update/WallDamage.hs 36;" f updateEnergyBall src/Dodge/EnergyBall.hs 31;" f updateEnergyBalls src/Dodge/Update.hs 751;" f -updateEnterRegex src/Dodge/Update/Input/InGame.hs 500;" f +updateEnterRegex src/Dodge/Update/Input/InGame.hs 494;" f updateExpBarrel src/Dodge/Barreloid.hs 21;" f updateFlame src/Dodge/Flame.hs 19;" f updateFlames src/Dodge/Update.hs 748;" f updateFloatingCamera src/Dodge/Update/Camera.hs 38;" f -updateFunctionKey src/Dodge/Update/Input/InGame.hs 357;" f -updateFunctionKeys src/Dodge/Update/Input/InGame.hs 353;" f +updateFunctionKey src/Dodge/Update/Input/InGame.hs 351;" f +updateFunctionKeys src/Dodge/Update/Input/InGame.hs 347;" f updateGas src/Dodge/Update.hs 913;" f updateGasses src/Dodge/Update.hs 763;" f updateGusts src/Dodge/Update.hs 875;" f updateIMl src/Dodge/Update.hs 615;" f updateIMl' src/Dodge/Update.hs 618;" f updateInGameCamera src/Dodge/Update/Camera.hs 86;" f -updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 423;" f +updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 417;" f updateInt2Map src/Dodge/Zoning/Base.hs 94;" f updateInventoryPositioning src/Dodge/DisplayInventory.hs 86;" f updateItemTargeting src/Dodge/Creature/State.hs 264;" f -updateKeyContinueTerminal src/Dodge/Update/Input/InGame.hs 390;" f -updateKeyInGame src/Dodge/Update/Input/InGame.hs 417;" f +updateKeyContinueTerminal src/Dodge/Update/Input/InGame.hs 384;" f +updateKeyInGame src/Dodge/Update/Input/InGame.hs 411;" f updateKeysInGame src/Dodge/Update/Input/InGame.hs 87;" f -updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 376;" f -updateKeysTextInputTerminal src/Dodge/Update/Input/InGame.hs 399;" f +updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 370;" f +updateKeysTextInputTerminal src/Dodge/Update/Input/InGame.hs 393;" f updateLampoid src/Dodge/Lampoid.hs 13;" f updateLaser src/Dodge/Laser/Update.hs 12;" f updateLasers src/Dodge/Update.hs 500;" f updateLeftParentSF src/Dodge/Item/Grammar.hs 177;" f updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f updateLivingCreature src/Dodge/Creature/Update.hs 45;" f -updateLongPressInGame src/Dodge/Update/Input/InGame.hs 436;" f +updateLongPressInGame src/Dodge/Update/Input/InGame.hs 430;" f updateMachine src/Dodge/Machine/Update.hs 24;" f updateMagnets src/Dodge/Update.hs 392;" f -updateMouseClickInGame src/Dodge/Update/Input/InGame.hs 224;" f +updateMouseClickInGame src/Dodge/Update/Input/InGame.hs 218;" f updateMouseContext src/Dodge/Update.hs 405;" f updateMouseContextGame src/Dodge/Update.hs 410;" f updateMouseHeldInGame src/Dodge/Update/Input/InGame.hs 100;" f updateMouseInGame src/Dodge/Update/Input/InGame.hs 90;" f -updateMouseReleaseInGame src/Dodge/Update/Input/InGame.hs 187;" f +updateMouseReleaseInGame src/Dodge/Update/Input/InGame.hs 181;" f updateObjCatMaybes src/Dodge/Update.hs 633;" f updateObjMapMaybe src/Dodge/Update.hs 626;" f updatePastWorlds src/Dodge/Update.hs 489;" f @@ -5728,7 +5727,7 @@ yourRootItem src/Dodge/Base/You.hs 26;" f yourRootItemDT src/Dodge/Base/You.hs 32;" f yourSelectedItem src/Dodge/Base/You.hs 20;" f yourStatsInfo src/Dodge/Creature/Info.hs 27;" f -zChasm src/Dodge/Room/Tutorial.hs 162;" f +zChasm src/Dodge/Room/Tutorial.hs 163;" f zConnect src/Dodge/Render/Connectors.hs 18;" f zConnectCol src/Dodge/Render/Connectors.hs 29;" f zConnectColMidX src/Dodge/Render/Connectors.hs 32;" f