From 74e6be2f95ca4a5f7b712fdab457ef31020bf118 Mon Sep 17 00:00:00 2001 From: justin Date: Fri, 13 Mar 2026 14:17:34 +0000 Subject: [PATCH] Anothing laser run past room --- src/Dodge/Room/LasTurret.hs | 51 +++++++- tags | 236 ++++++++++++++++++------------------ 2 files changed, 168 insertions(+), 119 deletions(-) diff --git a/src/Dodge/Room/LasTurret.hs b/src/Dodge/Room/LasTurret.hs index 7f49a3b55..a0bbd3105 100644 --- a/src/Dodge/Room/LasTurret.hs +++ b/src/Dodge/Room/LasTurret.hs @@ -11,6 +11,7 @@ module Dodge.Room.LasTurret ( lasCenRunClose, ) where +import Data.Foldable (fold) import Dodge.Room.Path import Dodge.Room.Procedural import qualified Data.Set as S @@ -145,7 +146,52 @@ lasCenSensEdge n = do lasCenRunClose :: (RandomGen g) => State g (MetaTree Room String) lasCenRunClose = do - npoly <- takeOne [5,6,7,8,9] + npoly <- takeOne [6,8,10,12] + thelight <- mntLightLnkCond $ rprBool $ const . isInLnk + thelight1 <- mntLightLnkCond $ rprBool $ const . isOutLnk + thelight2 <- mntLightLnkCond $ rprBool $ const . (\rp -> PolyEdge ((npoly + 1) `div` 4) `S.member` + (fold $ rp ^? rpType . rplsType)) + thelight3 <- mntLightLnkCond $ rprBool $ const . (\rp -> PolyEdge (3*(npoly + 1) `div` 4) `S.member` + (fold $ rp ^? rpType . rplsType)) +-- thelight3 <- mntLightLnkCond $ rprBool $ const . isOutLnk + r <- shuffleLinks =<< + (roomNgon npoly 250 + <&> rmPmnts + .~ + [angwall a | a <- [0,pi/8..pi-pi/9]] <> + [bngwall a | a <- [0,pi/8..pi-pi/9]] <> + [ putLasTurret 0.02 +-- , awall (V2 0 50) (square 10) + , thelight + , thelight1 + , thelight2 + , thelight3 + ] + <&> rmPath %~ (addNodesCrossingCirc 0 30 + . flip (foldr ($)) [apath a | a <- [0,pi/8..pi-2*pi/9]] + . flip (foldr ($)) [bpath a | a <- [0,pi/8..pi-2*pi/9]] + ) + <&> rmLinks %~ setInLinksByType (PolyEdge 0) + <&> rmLinks %~ setOutLinksByType (PolyEdge (npoly `div` 2)) + ) + rToOnward "lasCenRunClose" $ return $ cleatOnward r + where + awall x v = heightWallPS (PS x 0) 30 v + --angwall a = awall (V2 0 100 + rotateV a (V2 0 100)) (fmap (rotateV (pi/4 + a/2)) $ rectWH 5 (25 - a*10/pi )) + angwall a = awall (V2 0 100 + rotateV a (V2 0 100)) (fmap (rotateV (pi/4 + a*0.8)) $ rectWH 5 (23 - a*13/pi )) + apath a' = addNodesCrossing $ (\x -> (x + f (V2 0 100),x - f (V2 0 100))) (V2 0 100 + rotateV a (V2 0 100)) + where + a = a' + pi/16 + f = rotateV (pi/4 + a *0.8) + bngwall a = awall (V2 0 (-100) + rotateV a (V2 0 (-100))) (fmap (rotateV (pi/4 + a*0.8)) $ rectWH 5 (23 - a*13/pi )) + bpath a' = addNodesCrossing $ (\x -> (x + f (V2 0 100),x - f (V2 0 100))) (V2 0 (-100) + rotateV a (V2 0 (-100))) + where + a = a' + pi/16 + f = rotateV (pi/4 + a *0.8) + +lasCenRunClose' :: (RandomGen g) => State g (MetaTree Room String) +lasCenRunClose' = do + npoly <- takeOne [5..12] inwall <- takeOne obwalls outwall <- takeOne obwalls thelight <- mntLightLnkCond $ rprBool $ const . isInLnk @@ -157,9 +203,6 @@ lasCenRunClose = do fmap (uncurry inlinkwall) inwall <> fmap (uncurry outlinkwall) outwall <> [ putLasTurret 0.02 --- , outlinkwall 70 (rectNSWE 10 (-10) (-30) 10) --- , outlinkwall 125 (rectNSWE 55 (-55) (-10) 10) --- , outlinkwall 180 (rectNSWE 10 (-10) (-10) 30) , thelight , thelight1 ] diff --git a/tags b/tags index 40b43fc29..15db144df 100644 --- a/tags +++ b/tags @@ -2549,7 +2549,8 @@ addGirderNS' src/Dodge/Room/Modify/Girder.hs 55;" f addHighGirder src/Dodge/Room/Modify/Girder.hs 132;" f addHighGirder' src/Dodge/Room/Modify/Girder.hs 142;" f addIndefiniteArticle src/StringHelp.hs 17;" f -addNodesCrossing src/Dodge/Room/Path.hs 22;" f +addNodesCrossing src/Dodge/Room/Path.hs 28;" f +addNodesCrossingCirc src/Dodge/Room/Path.hs 41;" f addPane src/Dodge/Placement/PlaceSpot.hs 171;" f addPointPolygon src/Geometry/Polygon.hs 142;" f addPolyWall src/Dodge/LevelGen/StaticWalls.hs 141;" f @@ -2584,8 +2585,8 @@ ammoMagSPic src/Dodge/Item/Draw/SPic.hs 128;" f amr src/Dodge/Item/Held/Rod.hs 34;" f anRoom src/Dodge/Floor.hs 116;" f analyser src/Dodge/Placement/Instance/Analyser.hs 8;" f -analyserByDoor src/Dodge/Room/LasTurret.hs 111;" f -analyserByNthLink src/Dodge/Room/LasTurret.hs 95;" f +analyserByDoor src/Dodge/Room/LasTurret.hs 113;" f +analyserByNthLink src/Dodge/Room/LasTurret.hs 97;" f andOrRegex src/Dodge/DisplayInventory.hs 78;" f angleBetween src/Geometry.hs 158;" f angleVV src/Geometry/Vector.hs 58;" f @@ -2657,7 +2658,7 @@ autoGunS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 551;" f autoPistol src/Dodge/Item/Held/Stick.hs 21;" f autoRifle src/Dodge/Item/Held/Cane.hs 27;" f awakeLevelPerception src/Dodge/Creature/Perception.hs 161;" f -axisInt src/Geometry/Intersect.hs 248;" f +axisInt src/Geometry/Intersect.hs 246;" f azure src/Color.hs 49;" f bQuadToF src/Geometry/Bezier.hs 37;" f bQuadToLine src/Geometry/Bezier.hs 30;" f @@ -2768,7 +2769,7 @@ bulletWeapons src/Dodge/Combine/Combinations.hs 248;" f burstRifle src/Dodge/Item/Held/Cane.hs 30;" f buttonFlip src/Dodge/Button/Event.hs 17;" f buzzS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 593;" f -cChasm src/Dodge/Room/Tutorial.hs 149;" f +cChasm src/Dodge/Room/Tutorial.hs 150;" f cFilledRect src/Dodge/CharacterEnums.hs 6;" f cWireRect src/Dodge/CharacterEnums.hs 10;" f calcSmoothScroll src/Dodge/SmoothScroll.hs 11;" f @@ -2784,7 +2785,7 @@ cardinalBetweenAdj src/Dodge/Base/CardinalPoint.hs 28;" f cardinalVectors src/Dodge/FloorItem.hs 24;" f cdtPropagateFold src/Dodge/DoubleTree.hs 407;" f ceilingTo src/Geometry/Zone.hs 15;" f -cenLasTur src/Dodge/Room/LasTurret.hs 35;" f +cenLasTur src/Dodge/Room/LasTurret.hs 37;" f centerText src/Picture/Base.hs 176;" f centerVaultExplosiveExit src/Dodge/Room/NoNeedWeapon.hs 20;" f centerVaultRoom src/Dodge/Room/Procedural.hs 269;" f @@ -2804,8 +2805,8 @@ chaseCritMv src/Dodge/Creature/ReaderUpdate.hs 121;" f chaseCritPerceptionUpdate src/Dodge/Creature/Perception.hs 32;" f chaseCritVocalization src/Dodge/Creature/ChaseCrit.hs 36;" f chasmRotate src/Dodge/Creature/Update.hs 173;" f -chasmSimpleMaze src/Dodge/Room/Tutorial.hs 310;" f -chasmSpitTerminal src/Dodge/Room/Tutorial.hs 281;" f +chasmSimpleMaze src/Dodge/Room/Tutorial.hs 311;" f +chasmSpitTerminal src/Dodge/Room/Tutorial.hs 282;" f chasmTestCorpse src/Dodge/Creature/Update.hs 155;" f chasmTestLiving src/Dodge/Creature/Update.hs 137;" f chasmWallToSurface src/Dodge/Base/Collide.hs 118;" f @@ -2864,9 +2865,9 @@ closeButtonToSelectionItem src/Dodge/Inventory/SelectionList.hs 221;" f closeItemToSelectionItem src/Dodge/Inventory/SelectionList.hs 205;" f closeItemToTextPictures src/Dodge/Inventory/SelectionList.hs 242;" f closeObjectInfo src/Dodge/Render/HUD.hs 228;" f -closestPointOnLine src/Geometry/Intersect.hs 272;" f -closestPointOnLineParam src/Geometry/Intersect.hs 288;" f -closestPointOnSeg src/Geometry/Intersect.hs 303;" f +closestPointOnLine src/Geometry/Intersect.hs 270;" f +closestPointOnLineParam src/Geometry/Intersect.hs 286;" f +closestPointOnSeg src/Geometry/Intersect.hs 301;" f cloudPoisonDamage src/Dodge/Update/Cloud.hs 11;" f clsNearCirc src/Dodge/Zoning/Cloud.hs 21;" f clsNearPoint src/Dodge/Zoning/Cloud.hs 9;" f @@ -2909,6 +2910,7 @@ compP2A src/Dodge/ShiftPoint.hs 11;" f compactDraw src/Dodge/LevelGen.hs 95;" f compactDraw' src/Dodge/LevelGen.hs 106;" f compactDrawTree src/Dodge/LevelGen.hs 89;" f +compareLHS src/Geometry/LHS.hs 30;" f compileAndCheckShader src/Shader/Compile.hs 108;" f composeNode src/Dodge/Tree/Compose.hs 77;" f composeTree src/Dodge/Tree/Compose.hs 48;" f @@ -2992,11 +2994,11 @@ createGas src/Dodge/Gas.hs 10;" f createHeadLamp src/Dodge/Euse.hs 64;" f createItemYou src/Dodge/Inventory/Add.hs 62;" f createLightMap src/Render.hs 26;" f -createProjectile src/Dodge/HeldUse.hs 1271;" f -createProjectileR src/Dodge/HeldUse.hs 1220;" f +createProjectile src/Dodge/HeldUse.hs 1272;" f +createProjectileR src/Dodge/HeldUse.hs 1221;" f createShell src/Dodge/Projectile/Create.hs 21;" f createShieldWall src/Dodge/Item/BackgroundEffect.hs 53;" f -createUnusedLinkPos src/Dodge/Tree/Shift.hs 128;" f +createUnusedLinkPos src/Dodge/Tree/Shift.hs 129;" f createWall src/Dodge/Wall/Create.hs 8;" f creatureDisplayText src/Dodge/Creature/Picture/Awareness.hs 12;" f creatureShootLaser src/Dodge/HeldUse.hs 840;" f @@ -3006,8 +3008,8 @@ creatureTurnToward src/Dodge/Creature/Impulse/Movement.hs 81;" f creatureTurnTowardDir src/Dodge/Creature/Impulse/Movement.hs 70;" f critDeadEnd src/Dodge/Room/Room.hs 257;" f critInDeadEnd src/Dodge/Room/Room.hs 253;" f -critsPillarRoom src/Dodge/Room/Room.hs 409;" f -critsRoom src/Dodge/Room/Room.hs 417;" f +critsPillarRoom src/Dodge/Room/Room.hs 410;" f +critsRoom src/Dodge/Room/Room.hs 418;" f crixsNearSeg src/Dodge/Zoning/Creature.hs 30;" f crossPic src/Dodge/Render/Label.hs 28;" f crossProd src/Geometry/Vector3D.hs 41;" f @@ -3050,20 +3052,20 @@ damageBlock src/Dodge/Wall/Damage.hs 120;" f damageCodeCommand src/Dodge/Terminal.hs 67;" f damageCrWl src/Dodge/Damage.hs 29;" f damageCrWlID src/Dodge/Damage.hs 23;" f -damageCrystal src/Dodge/Material/Damage.hs 222;" f +damageCrystal src/Dodge/Material/Damage.hs 225;" f damageDirection src/Dodge/Damage.hs 35;" f -damageDirt src/Dodge/Material/Damage.hs 130;" f -damageFlesh src/Dodge/Material/Damage.hs 97;" f -damageGlass src/Dodge/Material/Damage.hs 156;" f +damageDirt src/Dodge/Material/Damage.hs 133;" f +damageFlesh src/Dodge/Material/Damage.hs 100;" f +damageGlass src/Dodge/Material/Damage.hs 159;" f damageGlassBlock src/Dodge/Wall/Damage.hs 125;" f damageHP src/Dodge/Creature/Damage.hs 37;" f damageInCircle src/Dodge/Damage.hs 61;" f damageMachine src/Dodge/Wall/Damage.hs 46;" f -damageMetal src/Dodge/Material/Damage.hs 65;" f +damageMetal src/Dodge/Material/Damage.hs 68;" f damageSensor src/Dodge/Placement/Instance/Sensor.hs 13;" f -damageStone src/Dodge/Material/Damage.hs 33;" f +damageStone src/Dodge/Material/Damage.hs 36;" f damageThingHit src/Dodge/Bullet.hs 180;" f -damageTypeThreshold src/Dodge/Machine/Update.hs 139;" f +damageTypeThreshold src/Dodge/Machine/Update.hs 140;" f damageTypeThreshold' src/Dodge/Wall/Damage.hs 84;" f damageWall src/Dodge/Wall/Damage.hs 31;" f damsToExpBarrel src/Dodge/Barreloid.hs 50;" f @@ -3178,7 +3180,7 @@ detV src/Geometry/Vector.hs 94;" f detector src/Dodge/Item/Held/Utility.hs 27;" f detectorColor src/Dodge/Item/Draw/SPic.hs 433;" f detectorInfo src/Dodge/Item/Info.hs 224;" f -determineProjectileTracking src/Dodge/HeldUse.hs 1191;" f +determineProjectileTracking src/Dodge/HeldUse.hs 1192;" f diagonalLinesRect src/Dodge/Room/Foreground.hs 52;" f did src/Dodge/Item/InvSize.hs 54;" f diffAngles src/Geometry.hs 205;" f @@ -3199,7 +3201,7 @@ dist src/Geometry/Vector.hs 185;" f dist3 src/Geometry/Vector3D.hs 101;" f distributeAmmoToItem src/Dodge/WorldEffect.hs 152;" f distributeAmmoToYou src/Dodge/WorldEffect.hs 140;" f -distributerRoom src/Dodge/Room/Room.hs 426;" f +distributerRoom src/Dodge/Room/Room.hs 427;" f divTo src/Geometry/Zone.hs 8;" f divideCircle src/Geometry.hs 321;" f divideDoorPane src/Dodge/Placement/Instance/Door.hs 65;" f @@ -3413,7 +3415,7 @@ drawZoneCirc src/Dodge/Debug/Picture.hs 293;" f drawZoneCol src/Dodge/Debug/Picture.hs 149;" f drawZoneNearPointCursor src/Dodge/Debug/Picture.hs 286;" f dropAll src/Dodge/Creature/Update.hs 134;" f -dropInventoryPath src/Dodge/HeldUse.hs 1346;" f +dropInventoryPath src/Dodge/HeldUse.hs 1347;" f dropItem src/Dodge/Creature/Action.hs 155;" f dropper src/Dodge/Item/Scope.hs 82;" f drumMag src/Dodge/Item/Ammo.hs 30;" f @@ -3551,7 +3553,7 @@ floorTo src/Geometry/Zone.hs 12;" f floorWire src/Dodge/Wire.hs 13;" f foamSprayFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 777;" f foamSprayLoopS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 823;" f -foldMTRS src/Dodge/Room/Tutorial.hs 95;" f +foldMTRS src/Dodge/Room/Tutorial.hs 96;" f foldPairs src/ListHelp.hs 37;" f foldrWhileArb src/ListHelp.hs 111;" f followImpulse src/Dodge/Creature/Impulse.hs 25;" f @@ -3613,12 +3615,12 @@ getCloseObj src/Dodge/Update/Input/InGame.hs 539;" 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 462;" f -getCrsFromRooms' src/Dodge/Room/Tutorial.hs 449;" f +getCrsFromRooms src/Dodge/Room/Tutorial.hs 463;" f +getCrsFromRooms' src/Dodge/Room/Tutorial.hs 450;" f getDebugMouseOver src/Dodge/Update.hs 424;" f getDistortions src/Dodge/Render.hs 443;" f getEdgesCrossing src/Dodge/Path.hs 37;" f -getGrenadeHitEffect src/Dodge/HeldUse.hs 1259;" f +getGrenadeHitEffect src/Dodge/HeldUse.hs 1260;" f getInventoryPath src/Dodge/Inventory/Path.hs 9;" f getItemValue src/Dodge/Inventory/SelectionList.hs 144;" f getLaserColor src/Dodge/HeldUse.hs 710;" f @@ -3628,10 +3630,10 @@ getLinksOfType src/Dodge/RoomLink.hs 41;" f getMaxLinesTM src/Dodge/Terminal/Type.hs 6;" f getMenuMouseContext src/Dodge/Update.hs 436;" f getNodePos src/Dodge/Path.hs 34;" f -getPJStabiliser src/Dodge/HeldUse.hs 1246;" f +getPJStabiliser src/Dodge/HeldUse.hs 1247;" f getPretty src/AesonHelp.hs 8;" f getPromptTM src/Dodge/Terminal/Type.hs 3;" f -getRoomsFromInts src/Dodge/Room/Tutorial.hs 445;" f +getRoomsFromInts src/Dodge/Room/Tutorial.hs 446;" f getRootItemBounds src/Dodge/Render/HUD.hs 106;" f getRootItemInvID src/Dodge/Inventory/Location.hs 35;" f getSelectedCloseObj src/Dodge/SelectedClose.hs 14;" f @@ -3716,8 +3718,8 @@ headLampShape src/Dodge/Item/Draw/SPic.hs 423;" f headMap src/Dodge/DoubleTree.hs 249;" f headPQ src/Dodge/Creature/HandPos.hs 116;" f healS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 627;" f -healthAnalyserByDoor src/Dodge/Room/LasTurret.hs 92;" f -healthTest src/Dodge/Room/LasTurret.hs 114;" f +healthAnalyserByDoor src/Dodge/Room/LasTurret.hs 94;" f +healthTest src/Dodge/Room/LasTurret.hs 116;" f heightWallPS src/Dodge/Placement/Instance/Wall.hs 24;" f heldAimStance src/Dodge/Item/AimStance.hs 24;" f heldAimZoom src/Dodge/Update/Camera.hs 157;" f @@ -3756,7 +3758,7 @@ icosahedronPoints src/Polyhedra/Geodesic.hs 12;" f icosohedronFaces src/Polyhedra/Geodesic.hs 19;" f ildtPropagate src/Dodge/DoubleTree.hs 111;" f inLink src/Dodge/RoomLink.hs 130;" f -inSegArea src/Geometry/Intersect.hs 319;" f +inSegArea src/Geometry/Intersect.hs 317;" f inSimplePoly src/Geometry/Polygon.hs 98;" f inTextInputFocus src/Dodge/InputFocus.hs 8;" f incidenceToFunction src/Dodge/Graph.hs 26;" f @@ -3789,27 +3791,27 @@ insertWithNewKeys src/IntMapHelp.hs 71;" f intAnno src/Dodge/Floor.hs 110;" f interactWithCloseObj src/Dodge/SelectedClose.hs 9;" f interpWith src/Dodge/Creature/Boid.hs 13;" f -intersectCircLine src/Geometry/Intersect.hs 354;" f -intersectCircLineAlong src/Geometry/Intersect.hs 345;" f -intersectCircSeg src/Geometry/Intersect.hs 324;" f -intersectCircSegFirst src/Geometry/Intersect.hs 395;" f -intersectCircSegTest src/Geometry/Intersect.hs 387;" f -intersectCylSeg src/Geometry/Intersect.hs 363;" f +intersectCircLine src/Geometry/Intersect.hs 352;" f +intersectCircLineAlong src/Geometry/Intersect.hs 343;" f +intersectCircSeg src/Geometry/Intersect.hs 322;" f +intersectCircSegFirst src/Geometry/Intersect.hs 393;" f +intersectCircSegTest src/Geometry/Intersect.hs 385;" f +intersectCylSeg src/Geometry/Intersect.hs 361;" f intersectLineLine src/Geometry/Intersect.hs 18;" f intersectLinePlaneAlong src/Geometry/Intersect.hs 27;" f intersectLinefromScreen src/Dodge/Debug/Picture.hs 96;" f -intersectSegBezquad src/Geometry/Intersect.hs 257;" f +intersectSegBezquad src/Geometry/Intersect.hs 255;" f intersectSegLine src/Geometry/Intersect.hs 110;" f intersectSegPlane src/Geometry/Intersect.hs 34;" f -intersectSegPolyFirst src/Geometry/Intersect.hs 264;" f +intersectSegPolyFirst src/Geometry/Intersect.hs 262;" f intersectSegRay src/Geometry/Intersect.hs 92;" f intersectSegSeg src/Geometry/Intersect.hs 71;" f intersectSegSegErrorTest src/Geometry/Intersect.hs 56;" f intersectSegSegFullTest src/Geometry/Intersect.hs 124;" f -intersectSegSegPreTest src/Geometry/Intersect.hs 157;" f -intersectSegSegTest src/Geometry/Intersect.hs 143;" f +intersectSegSegPreTest src/Geometry/Intersect.hs 155;" f +intersectSegSegTest src/Geometry/Intersect.hs 144;" f intersectSegSurface src/Geometry/Intersect.hs 40;" f -intersectSegsSeg src/Geometry/Intersect.hs 253;" f +intersectSegsSeg src/Geometry/Intersect.hs 251;" f intervalList src/Geometry.hs 312;" f interweave src/Justify.hs 17;" f introScan src/Dodge/Item/Scope.hs 62;" f @@ -3853,7 +3855,7 @@ isFlyable src/Dodge/WorldEvent/ThingsHit.hs 176;" f isGroupSelectableSection src/Dodge/Update/Input/InGame.hs 198;" f isInLnk src/Dodge/PlacementSpot.hs 163;" f isJust' src/MaybeHelp.hs 27;" f -isLHS src/Geometry/LHS.hs 11;" f +isLHS src/Geometry/LHS.hs 12;" f isLeftOf src/Geometry.hs 199;" f isLeftOfA src/Geometry.hs 193;" f isMidEdgeLink src/Dodge/RoomLink.hs 56;" f @@ -3865,7 +3867,7 @@ isOutLnkNum src/Dodge/PlacementSpot.hs 173;" f isOverTerminalScreen src/Dodge/Update.hs 444;" f isPulseLaser src/Dodge/IsPulseLaser.hs 10;" f isPutID src/Dodge/Placement/Instance/Wall.hs 108;" f -isRHS src/Geometry/LHS.hs 32;" f +isRHS src/Geometry/LHS.hs 44;" f isUnusedLnk src/Dodge/PlacementSpot.hs 63;" f isUnusedLnkType src/Dodge/PlacementSpot.hs 197;" f isUsedLnkUnplaced src/Dodge/PlacementSpot.hs 181;" f @@ -3940,29 +3942,32 @@ justify src/Justify.hs 9;" f k src/ShortShow.hs 48;" f k' src/ShortShow.hs 48;" f keyCard src/Dodge/Item/Held/Utility.hs 20;" f -keyCardAnalyserByDoor src/Dodge/Room/LasTurret.hs 89;" f -keyCardRoomRunPast src/Dodge/Room/LasTurret.hs 77;" f +keyCardAnalyserByDoor src/Dodge/Room/LasTurret.hs 91;" f +keyCardRoomRunPast src/Dodge/Room/LasTurret.hs 79;" f keyCardRunPastRand src/Dodge/LockAndKey.hs 36;" f keyPic src/Dodge/Item/Draw/SPic.hs 439;" f keyholeCorridor src/Dodge/Room/Corridor.hs 45;" f knifeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 741;" f -lChasm src/Dodge/Room/Tutorial.hs 158;" f +lChasm src/Dodge/Room/Tutorial.hs 159;" 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 lShape src/Dodge/Placement/Instance/LightSource.hs 54;" f lamp src/Dodge/Creature/Lamp.hs 18;" f lampCrSPic src/Dodge/Render/ShapePicture.hs 116;" f -lasCenRunClose src/Dodge/Room/LasTurret.hs 173;" f -lasCenRunClose' src/Dodge/Room/LasTurret.hs 145;" f -lasCenSensEdge src/Dodge/Room/LasTurret.hs 133;" f +lasCenRunClose src/Dodge/Room/LasTurret.hs 147;" f +lasCenRunClose' src/Dodge/Room/LasTurret.hs 181;" f +lasCenRunClose1 src/Dodge/Room/LasTurret.hs 257;" f +lasCenRunCloseLongCor src/Dodge/Room/LasTurret.hs 227;" f +lasCenSensEdge src/Dodge/Room/LasTurret.hs 135;" f lasGunPic src/Dodge/Item/Draw/SPic.hs 414;" f lasPulseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 731;" f -lasSensorTurretTest src/Dodge/Room/LasTurret.hs 126;" f -lasTunnel src/Dodge/Room/LasTurret.hs 198;" f -lasTunnelRunPast src/Dodge/Room/LasTurret.hs 239;" f +lasSensorTurretTest src/Dodge/Room/LasTurret.hs 128;" f +lasTunnel src/Dodge/Room/LasTurret.hs 287;" f +lasTunnelRunPast src/Dodge/Room/LasTurret.hs 328;" f lasTurret src/Dodge/Placement/Instance/Turret.hs 35;" f laser src/Dodge/Item/Held/BatteryGuns.hs 34;" f +laserSpark src/Dodge/Material/Damage.hs 33;" f lastMap src/Dodge/DoubleTree.hs 253;" f latticeXsYs src/Grid.hs 24;" f launcherCrit src/Dodge/Creature/LauncherCrit.hs 12;" f @@ -3994,12 +3999,12 @@ legsSPic src/Dodge/Item/Draw/SPic.hs 448;" f lerpP2A src/Dodge/ShiftPoint.hs 14;" f liShape src/Dodge/Placement/Instance/LightSource.hs 79;" f light src/Color.hs 131;" f -lightSensByDoor src/Dodge/Room/LasTurret.hs 62;" f -lightSensInsideDoor src/Dodge/Room/LasTurret.hs 50;" f +lightSensByDoor src/Dodge/Room/LasTurret.hs 64;" f +lightSensInsideDoor src/Dodge/Room/LasTurret.hs 52;" f lightSensor src/Dodge/Placement/Instance/Sensor.hs 26;" f lightsToRender src/Dodge/Render/Lights.hs 14;" f lightx4 src/Color.hs 155;" f -linGrad src/Geometry/Intersect.hs 241;" f +linGrad src/Geometry/Intersect.hs 239;" f line src/Picture/Base.hs 230;" f lineCol src/Picture/Base.hs 234;" f lineGeom src/Dodge/Base.hs 32;" f @@ -4008,7 +4013,7 @@ lineOrth src/Dodge/Creature/Boid.hs 128;" f lineOutputTerminal src/Dodge/Room/Warning.hs 99;" f lineSplit src/Justify.hs 26;" f lineUp src/Dodge/Creature/Boid.hs 150;" f -linksDAGToPath src/Dodge/Room/Path.hs 13;" f +linksDAGToPath src/Dodge/Room/Path.hs 19;" f linksOnPath src/Dodge/Room/CheckConsistency.hs 6;" f listConfig src/Dodge/Menu.hs 232;" f listControls src/Dodge/Menu.hs 244;" f @@ -4145,25 +4150,25 @@ maybeOpenConsole src/Dodge/Update.hs 134;" f maybeReadFile src/Dodge/LoadSeed.hs 10;" f maybeTakeOne src/RandomHelp.hs 118;" f maybeWarmupStatus src/Dodge/Item/Display.hs 45;" f -mcBackgroundSound src/Dodge/Machine/Update.hs 163;" f +mcBackgroundSound src/Dodge/Machine/Update.hs 164;" f mcColor src/Dodge/Machine/Draw.hs 83;" f -mcDamSensorTriggerUpdate src/Dodge/Machine/Update.hs 127;" f -mcDamSensorUpdate src/Dodge/Machine/Update.hs 174;" f +mcDamSensorTriggerUpdate src/Dodge/Machine/Update.hs 128;" f +mcDamSensorUpdate src/Dodge/Machine/Update.hs 175;" f mcDamSensorUpdate' src/Dodge/Wall/Damage.hs 57;" f mcKillBut src/Dodge/Machine/Destroy.hs 38;" f mcKillTerm src/Dodge/Machine/Destroy.hs 30;" f -mcNoItemsTest src/Dodge/Machine/Update.hs 182;" f -mcPlaySound src/Dodge/Machine/Update.hs 147;" f -mcProxSensorTriggerUpdate src/Dodge/Machine/Update.hs 133;" f -mcProxSensorUpdate src/Dodge/Machine/Update.hs 177;" f -mcProxTest src/Dodge/Machine/Update.hs 258;" f -mcProximitySensorUpdate src/Dodge/Machine/Update.hs 219;" f +mcNoItemsTest src/Dodge/Machine/Update.hs 183;" f +mcPlaySound src/Dodge/Machine/Update.hs 148;" f +mcProxSensorTriggerUpdate src/Dodge/Machine/Update.hs 134;" f +mcProxSensorUpdate src/Dodge/Machine/Update.hs 178;" f +mcProxTest src/Dodge/Machine/Update.hs 259;" f +mcProximitySensorUpdate src/Dodge/Machine/Update.hs 220;" f mcSPic src/Dodge/Render/ShapePicture.hs 163;" f -mcShootAuto src/Dodge/HeldUse.hs 1164;" f +mcShootAuto src/Dodge/HeldUse.hs 1165;" f mcShootLaser src/Dodge/HeldUse.hs 1157;" f mcTypeUpdate src/Dodge/Machine/Update.hs 32;" f mcUseHeld src/Dodge/HeldUse.hs 1081;" f -mcUseItem src/Dodge/Machine/Update.hs 118;" f +mcUseItem src/Dodge/Machine/Update.hs 119;" f megaBattery src/Dodge/Item/Ammo.hs 53;" f megaShellMag src/Dodge/Item/Ammo.hs 43;" f megaTinMag src/Dodge/Item/Ammo.hs 20;" f @@ -4192,9 +4197,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 181;" f -midChasmPlatform src/Dodge/Room/Tutorial.hs 200;" f -midChasmSpit src/Dodge/Room/Tutorial.hs 254;" f +midChasm src/Dodge/Room/Tutorial.hs 182;" f +midChasmPlatform src/Dodge/Room/Tutorial.hs 201;" f +midChasmSpit src/Dodge/Room/Tutorial.hs 255;" f midPad src/Padding.hs 27;" f midPadL src/Padding.hs 33;" f midPoint src/Geometry.hs 83;" f @@ -4268,8 +4273,8 @@ mvPointMeleeTarg src/Dodge/Creature/Boid.hs 327;" f mvPointToward src/Dodge/Base.hs 136;" f mvPointTowardAtSpeed src/Dodge/Base.hs 105;" f mvProp src/Dodge/Placement/PlaceSpot.hs 176;" f -myIntersectLineLine src/Geometry/Intersect.hs 198;" f -myIntersectSegSeg src/Geometry/Intersect.hs 176;" f +myIntersectLineLine src/Geometry/Intersect.hs 196;" f +myIntersectSegSeg src/Geometry/Intersect.hs 174;" f nRays src/Geometry.hs 182;" f nRaysRad src/Geometry.hs 186;" f nearCollinear src/Dodge/LevelGen/StaticWalls/Deprecated.hs 19;" f @@ -4334,7 +4339,7 @@ orderPolygonAround src/Geometry/Polygon.hs 116;" f orientAttachment src/Dodge/Item/Orientation.hs 80;" f orientByParentChSF src/Dodge/Item/Orientation.hs 35;" f orientChild src/Dodge/Item/Orientation.hs 19;" f -orthogonalPointOnSeg src/Geometry/Intersect.hs 312;" f +orthogonalPointOnSeg src/Geometry/Intersect.hs 310;" f outLink src/Dodge/RoomLink.hs 122;" f outsideScreenPolygon src/Dodge/Debug/Picture.hs 44;" f outwardIntegers src/Dodge/Base.hs 181;" f @@ -4365,7 +4370,7 @@ 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 524;" f +passthroughLockKeyLists src/Dodge/Room/Tutorial.hs 525;" f pathConnected src/Dodge/Room/CheckConsistency.hs 13;" f pathEdgeObstructed src/Dodge/Path.hs 66;" f pauseAndFloatCam src/Dodge/Camera.hs 10;" f @@ -4469,8 +4474,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 294;" f -polyChasmC src/Dodge/Room/Tutorial.hs 303;" f +polyChasm src/Dodge/Room/Tutorial.hs 295;" f +polyChasmC src/Dodge/Room/Tutorial.hs 304;" f polyCirc src/Shape.hs 47;" f polyCircx src/Shape.hs 52;" f polyCornerDist src/Geometry/Polygon.hs 69;" f @@ -4512,11 +4517,11 @@ prettyDT src/Dodge/DoubleTree.hs 258;" f prettyLDT src/Dodge/DoubleTree.hs 263;" f prettyShort src/AesonHelp.hs 11;" f primeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 645;" f -printColumnTitles src/Dodge/Tree/Shift.hs 153;" f -printColumns src/Dodge/Tree/Shift.hs 143;" f -printInfo src/Dodge/Tree/Shift.hs 156;" f -printInfoCheckNum src/Dodge/Tree/Shift.hs 165;" f -printPartialColumns src/Dodge/Tree/Shift.hs 146;" f +printColumnTitles src/Dodge/Tree/Shift.hs 154;" f +printColumns src/Dodge/Tree/Shift.hs 144;" f +printInfo src/Dodge/Tree/Shift.hs 157;" f +printInfoCheckNum src/Dodge/Tree/Shift.hs 166;" f +printPartialColumns src/Dodge/Tree/Shift.hs 147;" f printPoint src/Dodge/Debug/Picture.hs 35;" f printRotPoint src/Dodge/Debug/Picture.hs 38;" f prismBox src/Shape.hs 74;" f @@ -4621,7 +4626,7 @@ randomTank src/Dodge/Room/Tanks.hs 20;" f randomTreeStructure src/Dodge/Layout/Generate.hs 19;" f randsOnCirc src/RandomHelp.hs 129;" f randsSpread src/RandomHelp.hs 122;" f -ratIntersectLineLine src/Geometry/Intersect.hs 216;" f +ratIntersectLineLine src/Geometry/Intersect.hs 214;" f rdToVec2s src/Dodge/Render.hs 426;" f readSaveSlot src/Dodge/Save.hs 45;" f recComFindMax src/Dodge/Terminal.hs 174;" f @@ -4663,7 +4668,7 @@ removeAimPosture src/Dodge/Creature/YourControl.hs 159;" f removeAmmoFromMag src/Dodge/HeldUse.hs 905;" f removeDot src/ShortShow.hs 44;" f removeInverseWalls src/Dodge/LevelGen/StaticWalls.hs 25;" f -removeLights src/Dodge/Room/Tutorial.hs 360;" f +removeLights src/Dodge/Room/Tutorial.hs 361;" f removeShieldWall src/Dodge/Item/BackgroundEffect.hs 71;" f removeWallsInPolygon src/Dodge/LevelGen/StaticWalls.hs 182;" f renderDataResizeUpdate src/Preload/Update.hs 27;" f @@ -4765,7 +4770,7 @@ rotateToZ src/Quaternion.hs 35;" f rotateV src/Geometry/Vector.hs 106;" f rotateVAround src/Geometry/Vector.hs 113;" f rotateXY src/Polyhedra.hs 28;" f -roundPoint2 src/Geometry/Intersect.hs 237;" f +roundPoint2 src/Geometry/Intersect.hs 235;" f roundTank src/Dodge/Placement/Instance/Tank.hs 26;" f roundTankCross src/Dodge/Placement/Instance/Tank.hs 32;" f rpIsOffGrid src/Dodge/PlacementSpot.hs 83;" f @@ -4843,14 +4848,14 @@ selectedItemScroll src/Dodge/Update/Scroll.hs 47;" f semitoneLoop1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 785;" f sensAboveDoor src/Dodge/Room/SensorDoor.hs 53;" f sensInsideDoor src/Dodge/Room/SensorDoor.hs 59;" f -senseDamage src/Dodge/Machine/Update.hs 274;" f +senseDamage src/Dodge/Machine/Update.hs 275;" f senseDamage' src/Dodge/Wall/Damage.hs 60;" f -sensorReqToString src/Dodge/Machine/Update.hs 252;" f +sensorReqToString src/Dodge/Machine/Update.hs 253;" f sensorRoom src/Dodge/Room/SensorDoor.hs 26;" f sensorRoomRunPast src/Dodge/Room/SensorDoor.hs 46;" f sensorSPic src/Dodge/Machine/Draw.hs 99;" f -sensorTut src/Dodge/Room/Tutorial.hs 471;" f -sensorTypeDamages src/Dodge/Machine/Update.hs 298;" f +sensorTut src/Dodge/Room/Tutorial.hs 472;" f +sensorTypeDamages src/Dodge/Machine/Update.hs 299;" f sensorTypeDamages src/Dodge/Wall/Damage.hs 91;" f sentinelAI src/Dodge/Creature/SentinelAI.hs 20;" f sentinelExtraWatchUpdate src/Dodge/Creature/SentinelAI.hs 82;" f @@ -4876,7 +4881,7 @@ setOutLinks src/Dodge/RoomLink.hs 50;" f setOutLinksByType src/Dodge/RoomLink.hs 77;" f setOutLinksPD src/Dodge/RoomLink.hs 97;" f setRBCreatureTargeting src/Dodge/Creature/State.hs 290;" f -setRoomInt src/Dodge/Room/Tutorial.hs 102;" f +setRoomInt src/Dodge/Room/Tutorial.hs 103;" f setSelWhileDragging src/Dodge/Update/Input/InGame.hs 342;" f setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 97;" f setShaderSource src/Shader/Compile.hs 121;" f @@ -4885,7 +4890,7 @@ setSoundVolume src/Sound.hs 159;" f setTargetMv src/Dodge/Creature/ReaderUpdate.hs 83;" f setTile src/Dodge/Layout.hs 70;" f setTiles src/Dodge/Layout.hs 67;" f -setTreeInts src/Dodge/Room/Tutorial.hs 109;" f +setTreeInts src/Dodge/Room/Tutorial.hs 110;" f setViewDistance src/Dodge/Update/Camera.hs 246;" f setViewPos src/Dodge/Creature/ReaderUpdate.hs 69;" f setViewport src/Dodge/Render.hs 448;" f @@ -4943,7 +4948,7 @@ shootLaser src/Dodge/HeldUse.hs 850;" f shootPulseBall src/Dodge/HeldUse.hs 891;" f shootPulseLaser src/Dodge/HeldUse.hs 878;" f shootShatter src/Dodge/Item/Weapon/Shatter.hs 12;" f -shootTeslaArc src/Dodge/HeldUse.hs 1181;" f +shootTeslaArc src/Dodge/HeldUse.hs 1182;" f shootTillEmpty src/Dodge/Creature/Volition.hs 19;" f shootTractorBeam src/Dodge/HeldUse.hs 819;" f shootersRoom src/Dodge/Room/Room.hs 338;" f @@ -4960,14 +4965,15 @@ showEquipItem src/Dodge/Item/Display.hs 107;" f showInt src/Dodge/Item/Info.hs 75;" f showIntsString src/Dodge/Tree/Compose.hs 130;" f showInventoryPathing src/Dodge/Item/Display.hs 86;" f -showManObj src/Dodge/TestString.hs 54;" f +showManObj src/Dodge/TestString.hs 55;" f showMuzzlePositions src/Dodge/Debug.hs 255;" f showTerminalError src/Dodge/Debug/Terminal.hs 80;" f -showTimeFlow src/Dodge/TestString.hs 77;" f +showTimeFlow src/Dodge/TestString.hs 78;" f shrinkPolyOnEdges src/Geometry/Polygon.hs 183;" f shrinkVert src/Geometry/Polygon.hs 187;" f shuffle src/RandomHelp.hs 51;" f shuffleLinks src/Dodge/Room/Link.hs 30;" f +shufflePair src/RandomHelp.hs 148;" f shuffleRoomPos src/Dodge/Layout.hs 82;" f shuffleTail src/RandomHelp.hs 61;" f sigmoid src/Dodge/Base.hs 151;" f @@ -5065,8 +5071,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 224;" f -sqSpitChasm src/Dodge/Room/Tutorial.hs 239;" f +sqPlatformChasm src/Dodge/Room/Tutorial.hs 225;" f +sqSpitChasm src/Dodge/Room/Tutorial.hs 240;" f square src/Geometry/Polygon.hs 56;" f squareDecoration src/Dodge/Placement/TopDecoration.hs 48;" f squashIntersectCirclePoint src/Dodge/WallCreatureCollisions.hs 116;" f @@ -5195,7 +5201,7 @@ tflat2 src/Picture/Data.hs 55;" f tflat3 src/Picture/Data.hs 59;" f tflat4 src/Picture/Data.hs 63;" f theCleanup appDodge/Main.hs 65;" f -theColumns src/Dodge/Tree/Shift.hs 150;" f +theColumns src/Dodge/Tree/Shift.hs 151;" f theUpdateStep appDodge/Main.hs 101;" f thickArc src/Picture/Base.hs 293;" f thickCircle src/Picture/Base.hs 267;" f @@ -5230,7 +5236,7 @@ titleOptionsNoWrite src/Dodge/Menu.hs 107;" f tlDoEffect src/Dodge/Terminal.hs 115;" f tlSetStatus src/Dodge/Terminal.hs 112;" f tmDistributeAmmo src/Dodge/WorldEffect.hs 120;" f -tmDistributeLines src/Dodge/Room/Room.hs 464;" f +tmDistributeLines src/Dodge/Room/Room.hs 465;" f tmMachine src/Dodge/Placement/Instance/Terminal.hs 54;" f toBinary src/Dodge/Inventory/SelectionList.hs 138;" f toBothLnk src/Dodge/RoomLink.hs 138;" f @@ -5258,7 +5264,7 @@ tone440sawtoothquietS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 663;" f topInvW src/Dodge/ListDisplayParams.hs 54;" f topPrismEdgeIndices src/Shader/Poke.hs 335;" f topPrismIndices src/Shader/Poke.hs 410;" f -topTestPart src/Dodge/TestString.hs 50;" f +topTestPart src/Dodge/TestString.hs 51;" f torchShape src/Dodge/Item/Draw/SPic.hs 277;" f torqueAmount src/Dodge/HeldUse.hs 584;" f torqueCr src/Dodge/WorldEffect.hs 87;" f @@ -5332,12 +5338,12 @@ tryUseParent src/Dodge/Creature/State.hs 145;" f turnTo src/Dodge/Movement/Turn.hs 8;" f turretItemOffset src/Dodge/Item/HeldOffset.hs 22;" f tutAnoTree src/Dodge/Room/Tutorial.hs 51;" f -tutDrop src/Dodge/Room/Tutorial.hs 114;" f -tutHub src/Dodge/Room/Tutorial.hs 367;" f -tutLight src/Dodge/Room/Tutorial.hs 332;" f -tutRezBox src/Dodge/Room/Tutorial.hs 482;" f +tutDrop src/Dodge/Room/Tutorial.hs 115;" f +tutHub src/Dodge/Room/Tutorial.hs 368;" f +tutLight src/Dodge/Room/Tutorial.hs 333;" f +tutRezBox src/Dodge/Room/Tutorial.hs 483;" f tutRoomTree src/Dodge/Floor.hs 20;" f -tutorialMessage1 src/Dodge/Room/Tutorial.hs 505;" f +tutorialMessage1 src/Dodge/Room/Tutorial.hs 506;" f tweenAngles src/Geometry/Vector.hs 190;" f twinSlowDoorChasers src/Dodge/Room/LongDoor.hs 79;" f twinSlowDoorRoom src/Dodge/Room/LongDoor.hs 34;" f @@ -5512,7 +5518,7 @@ upperRounded src/Shape.hs 182;" f useBulletPayload src/Dodge/Bullet.hs 117;" f useGasParams src/Dodge/HeldUse.hs 1086;" f useHotkey src/Dodge/Creature/YourControl.hs 77;" f -useInventoryPath src/Dodge/HeldUse.hs 1377;" f +useInventoryPath src/Dodge/HeldUse.hs 1378;" f useItem src/Dodge/Creature/Impulse/UseItem.hs 19;" f useItemLoc src/Dodge/Creature/Impulse/UseItem.hs 26;" f useLnkRoomPos src/Dodge/PlacementSpot.hs 262;" f @@ -5520,11 +5526,11 @@ useLoadedAmmo src/Dodge/HeldUse.hs 723;" f useMagShield src/Dodge/Euse.hs 33;" f useNormalCamera src/Dodge/Camera.hs 6;" f usePayload src/Dodge/Payload.hs 18;" f -useRewindGun src/Dodge/HeldUse.hs 1337;" f +useRewindGun src/Dodge/HeldUse.hs 1338;" f useRoomPosCond src/Dodge/PlacementSpot.hs 187;" f useRoomPosRoomCond src/Dodge/PlacementSpot.hs 190;" f -useStopWatch src/Dodge/HeldUse.hs 1318;" f -useTimeScrollGun src/Dodge/HeldUse.hs 1326;" f +useStopWatch src/Dodge/HeldUse.hs 1319;" f +useTimeScrollGun src/Dodge/HeldUse.hs 1327;" f useUnusedLnk src/Dodge/PlacementSpot.hs 178;" f usedRoomInLinkPoss src/Dodge/PlacementSpot.hs 209;" f usedRoomLinkPoss src/Dodge/PlacementSpot.hs 216;" f @@ -5566,7 +5572,7 @@ wallIsZeroLength src/Dodge/LevelGen/StaticWalls.hs 179;" f wallToSurface src/Dodge/Base/Collide.hs 180;" f wallsFromRooms src/Dodge/Layout.hs 137;" f wallsToDraw src/Dodge/Render/Walls.hs 18;" f -warmupSound src/Dodge/HeldUse.hs 1371;" f +warmupSound src/Dodge/HeldUse.hs 1372;" f warningRooms src/Dodge/Room/Warning.hs 33;" f warp1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 845;" f wasdAim src/Dodge/Creature/YourControl.hs 133;" f @@ -5656,13 +5662,13 @@ yourInv src/Dodge/Base/You.hs 28;" f yourRootItem src/Dodge/Base/You.hs 22;" f yourSelectedItem src/Dodge/Base/You.hs 16;" f yourStatsInfo src/Dodge/Creature/Info.hs 27;" f -zChasm src/Dodge/Room/Tutorial.hs 168;" f +zChasm src/Dodge/Room/Tutorial.hs 169;" 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 zeroZ src/Geometry/Vector.hs 9;" f zipArcs src/Dodge/Tesla.hs 51;" f -zipCount src/Dodge/Tree/Shift.hs 140;" f +zipCount src/Dodge/Tree/Shift.hs 141;" f zoneCloud src/Dodge/Zoning/Cloud.hs 33;" f zoneClouds src/Dodge/Update.hs 511;" f zoneCreature src/Dodge/Zoning/Creature.hs 56;" f