Crush run-past room

This commit is contained in:
2026-03-26 18:24:42 +00:00
parent 9081bdc97f
commit 31d7a00ecf
10 changed files with 125 additions and 64 deletions
+19 -4
View File
@@ -1,16 +1,18 @@
module Dodge.Button.Draw where
module Dodge.Button.Draw (drawButton) where
import Data.Maybe
import Dodge.Data.LWorld
import Color
import Dodge.Data.Button
import Geometry
import Shape
import ShapePicture
import Control.Lens
drawButton :: Button -> SPic
drawButton bt = case bt ^. btEvent of
drawButton :: LWorld -> Button -> SPic
drawButton lw bt = case bt ^. btEvent of
ButtonPress {_bpColor = col} -> defaultDrawButton col bt
ButtonSwitch {_bsColor1 = col1, _bsColor2 = col2} -> drawSwitch col1 col2 bt
ButtonDumbSwitch i -> drawDumbSwitch (fromMaybe True $ lw ^? triggers . ix i)
ButtonAccessTerminal _ -> mempty
drawSwitch :: Color -> Color -> Button -> SPic
@@ -26,6 +28,19 @@ drawSwitch col1 col2 bt
]
)
drawDumbSwitch :: Bool -> SPic
drawDumbSwitch t
| t = flick $ pi / 4
| otherwise = flick (negate (pi / 4))
where
flick a = noPic
( mconcat
[ colorSH red . upperBox Small Typical 20 $ rectNSWE (-2) (-5) (-10) 10
, colorSH (dim red) . translateSH (V3 0 (-2) 20) . rotateSH a . upperBox Small Typical 2 $
rectNSWE 10 0 (-2) 2
]
)
defaultDrawButton :: Color -> Button -> SPic
defaultDrawButton col bt = noPic
( translateSHz 15 . colorSH col $ upperBox Small Typical 5 buttonGeometry
+1
View File
@@ -12,6 +12,7 @@ doButtonEvent = \case
ButtonPress False f _ -> buttonFlip f
ButtonSwitch _ f _ _ True -> buttonFlip f
ButtonSwitch f _ _ _ False -> buttonFlip f
ButtonDumbSwitch i -> \_ -> cWorld . lWorld . triggers . ix i %~ not
ButtonAccessTerminal tid -> const $ accessTerminal tid
buttonFlip :: WdWd -> Button -> World -> World
+1
View File
@@ -23,6 +23,7 @@ data ButtonEvent
, _bsColor2 :: Color
, _btOn :: Bool
}
| ButtonDumbSwitch { _bdsTrigger :: Int }
| ButtonAccessTerminal {_btTermID :: Int}
data Button = Button
+1
View File
@@ -237,6 +237,7 @@ btText :: Button -> String
btText bt = case _btEvent bt of
ButtonPress {} -> "BUTTON"
ButtonSwitch {_btOn = t} -> if t then "SWITCH\\" else "SWITCH/"
ButtonDumbSwitch {} -> "SWITCH"
ButtonAccessTerminal i -> "TERMINAL " ++ show i
closeItemToTextPictures :: Item -> ([String], Color)
+3 -3
View File
@@ -37,7 +37,7 @@ worldSPic cfig u =
(lw ^. items)
(filtOn _flItPos _floorItems)
)
<> foldup btSPic (filtOn _btPos _buttons)
<> foldup (btSPic (w ^. cWorld . lWorld)) (filtOn _btPos _buttons)
<> foldup (mcSPic (w ^. cWorld)) (filtOn _mcPos _machines)
-- <> foldMap' drawChasm (w ^. cWorld . chasms)
<> foldMap' (Prelude.uncurry drawCliff) (w ^. cWorld . cliffs)
@@ -166,8 +166,8 @@ floorItemSPic itm flit =
(_flItRot flit)
(itemSPic itm)
btSPic :: Button -> SPic
btSPic bt = uncurryV translateSPxy (_btPos bt) $ rotateSP (_btRot bt) (drawButton bt)
btSPic :: LWorld -> Button -> SPic
btSPic lw bt = uncurryV translateSPxy (_btPos bt) $ rotateSP (_btRot bt) (drawButton lw bt)
mcSPic :: CWorld -> Machine -> SPic
mcSPic cw mc = uncurryV translateSPxy (_mcPos mc) $ rotateSP (_mcDir mc) (drawMachine cw mc)
+2 -3
View File
@@ -26,8 +26,7 @@ import ShapePicture
-- | A passage with a switch that opens forward access while closing backwards access.
airlock :: RandomGen g => State g Room
airlock =
join $
airlock = join $
takeOne [return airlock0, return airlock90, return airlockCrystal, airlockZ]
xSwitch :: PSType
@@ -89,7 +88,7 @@ airlock0 =
\_ _ -> Just $ putDoubleDoor defaultDoorWall (V2 0 80) (V2 40 80) (dr2 btid)
, invisibleWall $ rectNSWE 60 40 (-40) (-30)
, spanLightI (V2 (-2) 30) (V2 (-2) 70)
, sps0 $ putShape $ thinHighBar 75 (V2 40 50) (V2 (-1) 50)
, sps0 $ putShape $ thinHighBar 95 (V2 40 50) (V2 (-1) 50)
]
, _rmBound = [rectNSWE 75 15 0 40, switchcut]
}
+38 -1
View File
@@ -3,6 +3,9 @@
-- | Rooms containing long doors, probably with a big reveal behind them.
module Dodge.Room.LongDoor where
import Dodge.Room.Modify
import qualified Data.IntMap.Strict as IM
import Dodge.Default
import Control.Monad
import Data.Maybe
import qualified Data.Set as S
@@ -11,7 +14,6 @@ import Dodge.Creature
import Dodge.Data.GenWorld
import Dodge.Default.Door
import Dodge.Default.Room
import Dodge.Default.Wall
import Dodge.Door.PutSlideDoor
import Dodge.LevelGen.PlacementHelper
import Dodge.LevelGen.Switch
@@ -136,6 +138,41 @@ addButtonSlowDoor x h =
lsx = 30
lp@(V2 lx ly) = V2 100 (-20)
makeDumbSwitch :: Int -> Button
makeDumbSwitch i = defaultButton & btEvent .~ ButtonDumbSwitch i
slowCrushRoom :: RandomGen g => State g Room
slowCrushRoom = do
rm <- shuffleLinks =<< roomRectAutoLights 200 100
let rm' = removeLights rm
& rmPmnts .~ [spanLightI (V2 0 60) (V2 35 100)
, spanLightI (V2 200 60) (V2 165 100)
]
return $ rm'
& rmLinks %~ setOutLinksByType (OnEdge East)
& rmLinks %~ setInLinksByType (OnEdge West)
& rmPmnts .:~
(ps0 (PutTrigger False) $ \i -> Just $
pContID (apos West 5) (PutButton $ makeDumbSwitch i) $ \_ -> Just $
pContID (apos East (-5)) (PutButton $ makeDumbSwitch i) $ \_ -> Just $
sps0 (PutDoor (dr & drTrigger .~ WdTrig i) defaultDoorWall) & plIDCont . mapped . mapped ?~
sps0 (PutDoor (dr1 & drTrigger .~ WdTrig i) defaultDoorWall)
)
where
dr = defaultDoor
& drUpdate .~ DoorLerp 0.01
& drZeroPos .~ (V2 65 (-40), 0)
& drOnePos .~ (V2 65 50, 0)
& drFootPrint .~ IM.fromDistinctAscList (zip [0..] (loopPairs . reverse $ rectWH 35 50))
dr1 = dr
& drOnePos .~ (V2 135 (-40), 0)
& drZeroPos .~ (V2 135 50, 0)
apos edge x = (rprBool (t edge) & psSelect . mapped . mapped . _Just . _1 %~ (psRot +~ pi) . (psPos +~ V2 x 0))
t edge rp _ = case _rpType rp of
UnusedLink s -> OnEdge edge `S.member` s
_ -> False
slowDoorRoom :: RandomGen g => State g Room
slowDoorRoom = do
x <- state $ randomR (400, 800)
+1 -1
View File
@@ -37,7 +37,7 @@ import RandomHelp
--import Control.Lens
-- This will need a cleanup, but it might change a bit first
{- A simple rectangular room with a light in the center.
{- A simple rectangular room with no lights.
Creates links and pathfinding graph. -}
roomRect :: Float -> Float -> Int -> Int -> Room
roomRect x y xn yn =
+2
View File
@@ -55,6 +55,8 @@ tutAnoTree = do
foldMTRS
[ tToBTree "TutStartRez" . return . cleatOnward <$> tutRezBox
, corDoor
, tToBTree "slowCrush" . return . cleatOnward <$> slowCrushRoom
, corDoor
, chasmSpitTerminal
--a , return $ tToBTree "cor" $ return $ cleatOnward corridor
--a , corDoor
+57 -52
View File
@@ -160,8 +160,9 @@ BulletPayload src/Dodge/Data/Bullet.hs 32;" t
BulletTrajectory src/Dodge/Data/Bullet.hs 40;" t
BulletTrajectoryType src/Dodge/Data/Bullet.hs 47;" t
BurstTrigger src/Dodge/Data/TriggerType.hs 12;" C
Button src/Dodge/Data/Button.hs 28;" t
ButtonAccessTerminal src/Dodge/Data/Button.hs 26;" C
Button src/Dodge/Data/Button.hs 33;" t
ButtonAccessTerminal src/Dodge/Data/Button.hs 31;" C
ButtonDumbSwitch src/Dodge/Data/Button.hs 26;" C
ButtonEvent src/Dodge/Data/Button.hs 13;" t
ButtonPress src/Dodge/Data/Button.hs 14;" C
ButtonSound src/Dodge/Data/SoundOrigin.hs 37;" C
@@ -1560,6 +1561,9 @@ _bdMaxX src/Dodge/Data/Bounds.hs 12;" f
_bdMaxY src/Dodge/Data/Bounds.hs 14;" f
_bdMinX src/Dodge/Data/Bounds.hs 11;" f
_bdMinY src/Dodge/Data/Bounds.hs 13;" f
_bdsColor1 src/Dodge/Data/Button.hs 28;" f
_bdsColor2 src/Dodge/Data/Button.hs 29;" f
_bdsTrigger src/Dodge/Data/Button.hs 27;" f
_beamCombine src/Dodge/Data/Beam.hs 46;" f
_blDir src/Dodge/Data/Block.hs 27;" f
_blDraw src/Dodge/Data/Block.hs 29;" f
@@ -1592,13 +1596,13 @@ _bpColor src/Dodge/Data/Button.hs 17;" f
_bpEff src/Dodge/Data/Button.hs 16;" f
_bsColor1 src/Dodge/Data/Button.hs 22;" f
_bsColor2 src/Dodge/Data/Button.hs 23;" f
_btEvent src/Dodge/Data/Button.hs 31;" f
_btID src/Dodge/Data/Button.hs 32;" f
_btEvent src/Dodge/Data/Button.hs 36;" f
_btID src/Dodge/Data/Button.hs 37;" f
_btOn src/Dodge/Data/Button.hs 15;" f
_btOn src/Dodge/Data/Button.hs 24;" f
_btPos src/Dodge/Data/Button.hs 29;" f
_btRot src/Dodge/Data/Button.hs 30;" f
_btTermID src/Dodge/Data/Button.hs 26;" f
_btPos src/Dodge/Data/Button.hs 34;" f
_btRot src/Dodge/Data/Button.hs 35;" f
_btTermID src/Dodge/Data/Button.hs 31;" f
_buDam src/Dodge/Data/Bullet.hs 34;" f
_buDrag src/Dodge/Data/Bullet.hs 20;" f
_buEffect src/Dodge/Data/Bullet.hs 17;" f
@@ -2528,7 +2532,7 @@ activateDetonator src/Dodge/Creature/Impulse/UseItem.hs 63;" f
activeTargetCursorPic src/Dodge/Targeting/Draw.hs 31;" f
addArmour src/Dodge/Creature.hs 82;" f
addBranchAt src/Dodge/Tree/GenerateStructure.hs 18;" f
addButtonSlowDoor src/Dodge/Room/LongDoor.hs 95;" f
addButtonSlowDoor src/Dodge/Room/LongDoor.hs 96;" f
addCrGibs src/Dodge/Prop/Gib.hs 17;" f
addDepth src/Picture/Base.hs 125;" f
addDoorAtNthLinkToggleInterrupt src/Dodge/Room/Warning.hs 43;" f
@@ -2559,7 +2563,7 @@ addPolyWalls src/Dodge/LevelGen/StaticWalls.hs 129;" f
addRandomGirderEW src/Dodge/Room/Girder.hs 9;" f
addRandomGirderFrom src/Dodge/Room/Girder.hs 16;" f
addSideEffect src/Dodge/Concurrent.hs 29;" f
addSouthPillars src/Dodge/Room/LongDoor.hs 87;" f
addSouthPillars src/Dodge/Room/LongDoor.hs 88;" f
addTermSignal src/Dodge/Event/Input.hs 31;" f
addToTrunk src/TreeHelp.hs 157;" f
addWarningTerminal src/Dodge/Room/Warning.hs 94;" f
@@ -2571,12 +2575,12 @@ aimDelaySweep src/Dodge/Render/Picture.hs 285;" f
aimStanceInfo src/Dodge/Item/Info.hs 243;" f
aimTurn src/Dodge/Creature/YourControl.hs 181;" f
airlock src/Dodge/Room/Airlock.hs 28;" f
airlock0 src/Dodge/Room/Airlock.hs 79;" f
airlock90 src/Dodge/Room/Airlock.hs 202;" f
airlockCrystal src/Dodge/Room/Airlock.hs 252;" f
airlockDoubleDoor src/Dodge/Room/Airlock.hs 105;" f
airlockSimple src/Dodge/Room/Airlock.hs 130;" f
airlockZ src/Dodge/Room/Airlock.hs 167;" f
airlock0 src/Dodge/Room/Airlock.hs 78;" f
airlock90 src/Dodge/Room/Airlock.hs 201;" f
airlockCrystal src/Dodge/Room/Airlock.hs 251;" f
airlockDoubleDoor src/Dodge/Room/Airlock.hs 104;" f
airlockSimple src/Dodge/Room/Airlock.hs 129;" f
airlockZ src/Dodge/Room/Airlock.hs 166;" f
allVisibleWalls src/Dodge/Base/Collide.hs 224;" f
alongSegBy src/Geometry.hs 40;" f
alteRifle src/Dodge/Item/Held/Cane.hs 22;" f
@@ -2768,9 +2772,9 @@ bulletPayloadModule src/Dodge/Item/Scope.hs 137;" f
bulletSynthesizer src/Dodge/Item/Ammo.hs 89;" f
bulletWeapons src/Dodge/Combine/Combinations.hs 247;" f
burstRifle src/Dodge/Item/Held/Cane.hs 30;" f
buttonFlip src/Dodge/Button/Event.hs 17;" f
buttonFlip src/Dodge/Button/Event.hs 18;" f
buzzS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 593;" f
cChasm src/Dodge/Room/Tutorial.hs 131;" f
cChasm src/Dodge/Room/Tutorial.hs 133;" f
cFilledRect src/Dodge/CharacterEnums.hs 6;" f
cWireRect src/Dodge/CharacterEnums.hs 10;" f
calcSmoothScroll src/Dodge/SmoothScroll.hs 11;" f
@@ -2807,8 +2811,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 172;" f
chasmSimpleMaze src/Dodge/Room/Tutorial.hs 356;" f
chasmSpitTerminal src/Dodge/Room/Tutorial.hs 296;" f
chasmSimpleMaze src/Dodge/Room/Tutorial.hs 358;" f
chasmSpitTerminal src/Dodge/Room/Tutorial.hs 298;" 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,7 +2868,7 @@ clipZoom src/Dodge/Update/Camera.hs 233;" f
clockCycle src/Dodge/Clock.hs 7;" f
closeButtonToSelectionItem src/Dodge/Inventory/SelectionList.hs 221;" f
closeItemToSelectionItem src/Dodge/Inventory/SelectionList.hs 205;" f
closeItemToTextPictures src/Dodge/Inventory/SelectionList.hs 242;" f
closeItemToTextPictures src/Dodge/Inventory/SelectionList.hs 243;" f
closeObjectInfo src/Dodge/Render/HUD.hs 228;" f
closestPointOnLine src/Geometry/Intersect.hs 270;" f
closestPointOnLineParam src/Geometry/Intersect.hs 286;" f
@@ -3106,7 +3110,7 @@ debugWritableValues src/Dodge/Debug.hs 164;" f
decodeSensorType src/Dodge/Terminal.hs 81;" f
decomposeSelfTree src/Dodge/Tree/Compose.hs 62;" f
decomposeTree src/Dodge/Tree/Compose.hs 59;" f
decontamRoom src/Dodge/Room/Airlock.hs 38;" f
decontamRoom src/Dodge/Room/Airlock.hs 37;" f
decoratedBlock src/Dodge/Placement/Instance/Block.hs 14;" f
decorationToShape src/Dodge/Placement/TopDecoration.hs 16;" f
decreaseAwareness src/Dodge/Creature/Perception.hs 118;" f
@@ -3143,7 +3147,7 @@ defaultDirtBlock src/Dodge/Default/Block.hs 17;" f
defaultDirtWall src/Dodge/Default/Wall.hs 47;" f
defaultDoor src/Dodge/Default/Door.hs 5;" f
defaultDoorWall src/Dodge/Default/Wall.hs 29;" f
defaultDrawButton src/Dodge/Button/Draw.hs 29;" f
defaultDrawButton src/Dodge/Button/Draw.hs 30;" f
defaultFlIt src/Dodge/Default.hs 27;" f
defaultForeground src/Dodge/Default/ForegroundShape.hs 5;" f
defaultHUD src/Dodge/Default/World.hs 172;" f
@@ -3400,7 +3404,7 @@ drawShockwave src/Dodge/Shockwave/Draw.hs 6;" f
drawSpark src/Dodge/Spark/Draw.hs 7;" f
drawStaticBall src/Dodge/EnergyBall/Draw.hs 28;" f
drawSubInventory src/Dodge/Render/HUD.hs 173;" f
drawSwitch src/Dodge/Button/Draw.hs 16;" f
drawSwitch src/Dodge/Button/Draw.hs 17;" f
drawSwitchWire src/Dodge/LevelGen/Switch.hs 24;" f
drawTargetingAR src/Dodge/Targeting/Draw.hs 20;" f
drawTerminalCursorLink src/Dodge/Render/HUD.hs 392;" f
@@ -3563,7 +3567,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 85;" f
foldMTRS src/Dodge/Room/Tutorial.hs 87;" f
foldPairs src/ListHelp.hs 37;" f
foldrWhileArb src/ListHelp.hs 111;" f
followImpulse src/Dodge/Creature/Impulse.hs 25;" f
@@ -3625,8 +3629,8 @@ getCloseObj src/Dodge/Update/Input/InGame.hs 509;" 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 503;" f
getCrsFromRooms' src/Dodge/Room/Tutorial.hs 490;" f
getCrsFromRooms src/Dodge/Room/Tutorial.hs 505;" f
getCrsFromRooms' src/Dodge/Room/Tutorial.hs 492;" f
getDebugMouseOver src/Dodge/Update.hs 450;" f
getDistortions src/Dodge/Render.hs 443;" f
getEdgesCrossing src/Dodge/Path.hs 37;" f
@@ -3643,7 +3647,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 486;" f
getRoomsFromInts src/Dodge/Room/Tutorial.hs 488;" f
getRootItemBounds src/Dodge/Render/HUD.hs 106;" f
getRootItemInvID src/Dodge/Inventory/Location.hs 35;" f
getSelectedCloseObj src/Dodge/SelectedClose.hs 14;" f
@@ -3957,7 +3961,7 @@ keyCardRunPastRand src/Dodge/LockAndKey.hs 37;" 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 143;" f
lChasm src/Dodge/Room/Tutorial.hs 145;" 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
@@ -4193,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 172;" f
midChasmPlatform src/Dodge/Room/Tutorial.hs 194;" f
midChasmSpit src/Dodge/Room/Tutorial.hs 261;" f
midChasm src/Dodge/Room/Tutorial.hs 174;" f
midChasmPlatform src/Dodge/Room/Tutorial.hs 196;" f
midChasmSpit src/Dodge/Room/Tutorial.hs 263;" f
midPad src/Padding.hs 27;" f
midPadL src/Padding.hs 33;" f
midPoint src/Geometry.hs 83;" f
@@ -4296,7 +4300,7 @@ noPic src/ShapePicture.hs 25;" f
noShape src/ShapePicture.hs 29;" f
noclipCheck src/Dodge/WallCreatureCollisions.hs 17;" f
nodesNear src/Dodge/Path.hs 75;" f
nonConvexChasm src/Dodge/Room/Tutorial.hs 258;" f
nonConvexChasm src/Dodge/Room/Tutorial.hs 260;" f
nonCornerLinks src/Dodge/Room/SensorDoor.hs 53;" f
normalGait src/Dodge/Creature/State/WalkCycle.hs 30;" f
normalTo8 src/Shader/Poke.hs 466;" f
@@ -4371,7 +4375,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 568;" f
passthroughLockKeyLists src/Dodge/Room/Tutorial.hs 570;" f
pathConnected src/Dodge/Room/CheckConsistency.hs 13;" f
pathEdgeObstructed src/Dodge/Path.hs 66;" f
pauseAndFloatCam src/Dodge/Camera.hs 10;" f
@@ -4476,8 +4480,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 334;" f
polyChasmC src/Dodge/Room/Tutorial.hs 346;" f
polyChasm src/Dodge/Room/Tutorial.hs 336;" f
polyChasmC src/Dodge/Room/Tutorial.hs 348;" f
polyCirc src/Shape.hs 47;" f
polyCircx src/Shape.hs 52;" f
polyCornerDist src/Geometry/Polygon.hs 69;" f
@@ -4557,7 +4561,7 @@ putBlockN src/Dodge/Placement/Instance/Wall.hs 120;" f
putBlockRect src/Dodge/Placement/Instance/Wall.hs 111;" f
putBlockV src/Dodge/Placement/Instance/Wall.hs 114;" f
putConvexChasm src/Dodge/Data/GenWorld.hs 70;" f
putDoor src/Dodge/Room/Airlock.hs 117;" f
putDoor src/Dodge/Room/Airlock.hs 116;" f
putDoubleDoor src/Dodge/Placement/Instance/Door.hs 17;" f
putDoubleDoorThen src/Dodge/Placement/Instance/Door.hs 20;" f
putImmediateMessageTerminal src/Dodge/Placement/Instance/Terminal.hs 60;" f
@@ -4850,7 +4854,7 @@ sensorReqToString src/Dodge/Machine/Update.hs 242;" f
sensorRoom src/Dodge/Room/SensorDoor.hs 27;" f
sensorRoomRunPast src/Dodge/Room/SensorDoor.hs 59;" f
sensorSPic src/Dodge/Machine/Draw.hs 99;" f
sensorTut src/Dodge/Room/Tutorial.hs 512;" f
sensorTut src/Dodge/Room/Tutorial.hs 514;" f
sensorTypeDamages src/Dodge/Machine/Update.hs 288;" f
sensorTypeDamages src/Dodge/Wall/Damage.hs 92;" f
sentinelAI src/Dodge/Creature/SentinelAI.hs 20;" f
@@ -4885,7 +4889,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 92;" f
setTreeInts src/Dodge/Room/Tutorial.hs 94;" f
setViewDistance src/Dodge/Update/Camera.hs 239;" f
setViewPos src/Dodge/Creature/ReaderUpdate.hs 69;" f
setViewport src/Dodge/Render.hs 448;" f
@@ -5002,8 +5006,9 @@ slapClean7S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 747;" f
slapS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 667;" f
slideDoorS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 629;" f
slideWindow src/ListHelp.hs 81;" f
slowDoorRoom src/Dodge/Room/LongDoor.hs 139;" f
slowDoorRoomRunPast src/Dodge/Room/LongDoor.hs 156;" f
slowCrushRoom src/Dodge/Room/LongDoor.hs 140;" f
slowDoorRoom src/Dodge/Room/LongDoor.hs 152;" f
slowDoorRoomRunPast src/Dodge/Room/LongDoor.hs 169;" f
smallBattery src/Dodge/Item/Ammo.hs 57;" f
smallBranch src/Dodge/Tree/GenerateStructure.hs 32;" f
smallChaseCrit src/Dodge/Creature/ChaseCrit.hs 14;" f
@@ -5038,7 +5043,7 @@ soundToOnomato src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 175;" f
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 84;" f
southPillarsRoom src/Dodge/Room/LongDoor.hs 85;" f
spaceAction src/Dodge/Update/Input/InGame.hs 504;" f
spanColLightBlackI src/Dodge/Placement/Instance/LightSource.hs 160;" f
spanColLightI src/Dodge/Placement/Instance/LightSource.hs 153;" f
@@ -5067,8 +5072,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 223;" f
sqSpitChasm src/Dodge/Room/Tutorial.hs 238;" 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 73;" f
@@ -5336,15 +5341,15 @@ tryUseParent src/Dodge/Creature/State.hs 144;" f
turnTo src/Dodge/Movement/Turn.hs 8;" f
turretItemOffset src/Dodge/Item/HeldOffset.hs 22;" f
tutAnoTree src/Dodge/Room/Tutorial.hs 53;" f
tutDrop src/Dodge/Room/Tutorial.hs 97;" f
tutHub src/Dodge/Room/Tutorial.hs 410;" f
tutLight src/Dodge/Room/Tutorial.hs 378;" f
tutRezBox src/Dodge/Room/Tutorial.hs 523;" f
tutDrop src/Dodge/Room/Tutorial.hs 99;" f
tutHub src/Dodge/Room/Tutorial.hs 412;" f
tutLight src/Dodge/Room/Tutorial.hs 380;" f
tutRezBox src/Dodge/Room/Tutorial.hs 525;" f
tutRoomTree src/Dodge/Floor.hs 20;" f
tutorialMessage1 src/Dodge/Room/Tutorial.hs 548;" f
tutorialMessage1 src/Dodge/Room/Tutorial.hs 550;" f
tweenAngles src/Geometry/Vector.hs 190;" f
twinSlowDoorChasers src/Dodge/Room/LongDoor.hs 78;" f
twinSlowDoorRoom src/Dodge/Room/LongDoor.hs 34;" f
twinSlowDoorChasers src/Dodge/Room/LongDoor.hs 79;" f
twinSlowDoorRoom src/Dodge/Room/LongDoor.hs 35;" f
twists src/Dodge/Creature/Test.hs 103;" f
twoFlat src/Dodge/Creature/Test.hs 100;" f
twoFlatHRot src/Dodge/Item/HeldOffset.hs 76;" f
@@ -5645,7 +5650,7 @@ writeSaveSlot src/Dodge/Save.hs 36;" f
xCylinder src/Shape.hs 133;" f
xCylinderST src/Shape.hs 130;" f
xIntercepts src/Dodge/Zoning/Base.hs 66;" f
xSwitch src/Dodge/Room/Airlock.hs 33;" f
xSwitch src/Dodge/Room/Airlock.hs 32;" f
xV2 src/Geometry/Vector.hs 201;" f
xyV3 src/Geometry/Vector.hs 213;" f
xyzV4 src/Geometry/Vector.hs 209;" f
@@ -5662,7 +5667,7 @@ 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 156;" f
zChasm src/Dodge/Room/Tutorial.hs 158;" 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