Add alcoves for switches in push room

This commit is contained in:
2026-03-29 19:48:31 +01:00
parent 00999f5921
commit 1919757fca
3 changed files with 110 additions and 76 deletions
+8 -1
View File
@@ -7,8 +7,15 @@ import Geometry
cardList :: [CardinalPoint]
cardList = [North, East, South, West]
cardReverse :: CardinalPoint -> CardinalPoint
cardReverse = \case
North -> South
South -> North
East -> West
West -> East
cardVec :: CardinalPoint -> Point2
cardVec cp = case cp of
cardVec = \case
North -> V2 0 1
South -> V2 0 (-1)
East -> V2 1 0
+35 -12
View File
@@ -1,8 +1,11 @@
{-# LANGUAGE TupleSections #-}
{-# LANGUAGE LambdaCase #-}
-- | Rooms containing long doors, probably with a big reveal behind them.
module Dodge.Room.LongDoor where
import Dodge.Placement.Instance.Block
import Dodge.Base.CardinalPoint
import Dodge.Room.Modify
import qualified Data.IntMap.Strict as IM
import Dodge.Default
@@ -189,28 +192,42 @@ slowCrushRoom = do
pushCaverns :: RandomGen g => State g Room
pushCaverns = do
rm <- shuffleLinks =<< removeLights <$> roomRectAutoLights 250 100
iside <- takeOne [North,South]
oside <- takeOne [North,South]
crs <- takeOne [[] ]
l <- takeOne
-- [ [MountedLight (V3 55 0 50) 200 0.5 , MountedSPic (noPic $ aBar 55 [V2 10 0,V2 60 0])]
-- , [MountedLight (V3 20 0 50) 200 0.5 , MountedSPic (noPic $ aBar 55 [V2 10 0,V2 22 0])]
[ [MountedLight (V3 30 45 50) 200 0.5 , MountedSPic (noPic $ aBar 55 [V2 10 45,V2 32 45])]
[ [MountedLight (V3 55 0 50) 200 0.5 , MountedSPic (noPic $ aBar 55 [V2 10 0,V2 60 0])]
, [MountedLight (V3 20 0 50) 200 0.5 , MountedSPic (noPic $ aBar 55 [V2 10 0,V2 22 0])]
, [MountedLight (V3 30 45 50) 200 0.5 , MountedSPic (noPic $ aBar 55 [V2 10 45,V2 32 45])]
, [MountedLight (V3 55 45 50) 200 0.5
, MountedSPic (noPic $ aBar 55 [V2 10 45,V2 60 45])
, MountedSPic (noPic $ aBar 55 [V2 10 (-45),V2 60 (-45)])]
]
return $ rm
& rmBound <>~ [
]
& rmLinks %~ setInLinks (\rl -> slinks West $ rl ^. rlType)
& rmLinks %~ setOutLinks (\rl -> slinks East $ rl ^. rlType)
& rmPolys <>~ [dorot iside (trapTBH 20 10 10) & each +~ V2 20 (g iside)
,dorot oside (trapTBH 20 10 10) & each +~ V2 230 (g oside)]
& rmBound .~
rectNSWE 100 0 (-10) 260:
[dorot iside (trapTBH 20 10 10) & each +~ V2 20 (g iside)
,dorot oside (trapTBH 20 10 10) & each +~ V2 230 (g oside)]
& rmLinks %~ setInLinks (\rl -> slinks West iside $ rl ^. rlType)
& rmLinks %~ setOutLinks (\rl -> slinks East oside $ rl ^. rlType)
& rmPmnts <>~
[ps0 (PutTrigger False) $ \i -> Just $
pContID (spos (slinks West)) (PutButton $ makeDumbSwitch i) $ \_ -> Just $
pContID (spos (slinks East)) (PutButton $ makeDumbSwitch i) $ \_ -> Just $
pContID (spos (slinks West $ cardReverse iside) f) (PutButton $ makeDumbSwitch i) $ \_ -> Just $
pContID (spos (slinks East $ cardReverse oside) f) (PutButton $ makeDumbSwitch i) $ \_ -> Just $
sps0 (PutDoor (dr & drTrigger .~ WdTrig i
& drMounts .~ l) defaultDoorWall) & plIDCont . mapped . mapped ?~
sps0 (PutDoor (dr1 & drTrigger .~ WdTrig i
& drMounts .~ (l & each . moPos . _xy %~ rotateV pi)) defaultDoorWall)
, psPtPl (spos (slinks West $ cardReverse iside) f') (lowBlock Stone (greyN 0.5) 10 $ rectWH 20 10)
, psPtPl (spos (slinks East $ cardReverse oside) f') (lowBlock Stone (greyN 0.5) 10 $ rectWH 20 10)
] <> crs
where
slinks x s = (FromEdge x 0 `S.member` s)
dorot = \case
North -> id
_ -> fmap negate
slinks x y s = (FromEdge x 0 `S.member` s) && OnEdge y `S.member` s
dr = defaultDoor
& drUpdate .~ DoorLerp 0.005
& drZeroPos .~ (V2 (-5) 50, 0)
@@ -220,12 +237,18 @@ pushCaverns = do
& drOnePos .~ (V2 255 50, 0)
& drZeroPos .~ (V2 105 50, 0)
f ps = case ps of
PS _ r -> ps & psRot +~ pi & psPos +~ rotateV r (V2 0 (-5))
PS _ r -> ps & psRot +~ pi & psPos +~ rotateV r (V2 0 5)
_ -> ps
spos h = (rprBool (t' h) & psSelect . mapped . mapped . _Just . _1 %~ f)
f' ps = case ps of
PS _ r -> ps & psRot +~ pi & psPos +~ rotateV r (V2 0 10)
_ -> ps
spos h f'' = (rprBool (t' h) & psSelect . mapped . mapped . _Just . _1 %~ f'')
t' h rp _ = case _rpType rp of
UnusedLink s -> h s
_ -> False
g = \case
North -> 0
_ -> 100
slowCrush90 :: RandomGen g => State g Room
+67 -63
View File
@@ -765,9 +765,9 @@ MiniGunFlare src/Dodge/Data/Muzzle.hs 32;" C
ModIDID src/Dodge/Data/Modification.hs 21;" C
ModIDTimerPoint3Bool src/Dodge/Data/Modification.hs 13;" C
Modification src/Dodge/Data/Modification.hs 12;" t
MountedLight src/Dodge/Data/MountedObject.hs 12;" C
MountedObject src/Dodge/Data/MountedObject.hs 11;" t
MountedSPic src/Dodge/Data/MountedObject.hs 13;" C
MountedLight src/Dodge/Data/MountedObject.hs 14;" C
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 29;" C
@@ -1153,7 +1153,7 @@ SNIPERRIFLE src/Dodge/Data/Item/Combine.hs 162;" C
SOUNDSENSOR src/Dodge/Data/Item/Combine.hs 81;" C
SPEEDLEGS src/Dodge/Data/Item/Combine.hs 131;" C
SPRING src/Dodge/Data/Item/Combine.hs 53;" C
SPic src/ShapePicture/Data.hs 7;" t
SPic src/ShapePicture/Data.hs 9;" t
SQUARE src/Dodge/Data/GenParams.hs 18;" C
SSBO src/Shader/Data.hs 96;" t
SString src/ShortShow.hs 16;" C
@@ -1709,7 +1709,6 @@ _creatureGroups src/Dodge/Data/LWorld.hs 96;" f
_creatures src/Dodge/Data/LWorld.hs 95;" f
_csLinks src/Dodge/Data/RoomCluster.hs 10;" f
_currentArc src/Dodge/Data/Item/Params.hs 15;" f
_currentFoot src/Dodge/Data/Creature/Stance.hs 23;" f
_cwGen src/Dodge/Data/CWorld.hs 25;" f
_cwTiles src/Dodge/Data/CWorld.hs 27;" f
_cwgGameRooms src/Dodge/Data/CWorld.hs 42;" f
@@ -1827,6 +1826,7 @@ _flboStride src/Shader/Data.hs 88;" f
_floorItems src/Dodge/Data/LWorld.hs 131;" f
_floorShader src/Data/Preload/Render.hs 46;" f
_floorVBO src/Data/Preload/Render.hs 45;" f
_footForward src/Dodge/Data/Creature/Stance.hs 23;" f
_foreShapes src/Dodge/Data/LWorld.hs 136;" f
_fsDir src/Dodge/Data/ForegroundShape.hs 14;" f
_fsPos src/Dodge/Data/ForegroundShape.hs 13;" f
@@ -2598,6 +2598,7 @@ andOrRegex src/Dodge/DisplayInventory.hs 78;" f
angleBetween src/Geometry.hs 158;" f
angleVV src/Geometry/Vector.hs 58;" f
angleVV3 src/Geometry/Vector3D.hs 122;" f
angleVVTests test/Spec.hs 67;" f
anyUnusedSpot src/Dodge/PlacementSpot.hs 68;" f
anythingHitCirc src/Dodge/Base/Collide.hs 335;" f
applyCME src/Dodge/HeldUse.hs 397;" f
@@ -2635,7 +2636,7 @@ arcStepwise src/Geometry.hs 326;" f
arcStepwisePositive src/Geometry.hs 340;" f
arcTest src/Picture/Test.hs 9;" f
arcTest' src/Picture/Test.hs 21;" f
argV src/Geometry/Vector.hs 81;" f
argV src/Geometry/Vector.hs 83;" f
armourChaseCrit src/Dodge/Creature/ArmourChase.hs 34;" f
armouredChasers src/Dodge/Room/Boss.hs 58;" f
armouredCorridor src/Dodge/Room/RoadBlock.hs 20;" f
@@ -2669,7 +2670,7 @@ 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
backPQ src/Dodge/Creature/HandPos.hs 132;" f
backPQ src/Dodge/Creature/HandPos.hs 124;" f
backgroundSpaceS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 729;" f
backpackCombinations src/Dodge/Combine/Combinations.hs 27;" f
backpackShape src/Dodge/Item/Draw/SPic.hs 188;" f
@@ -2786,10 +2787,11 @@ canSeeIndirect src/Dodge/Base/Collide.hs 328;" f
canSpring src/Dodge/Update.hs 969;" f
cancelExamineInventory src/Dodge/Item/BackgroundEffect.hs 23;" f
capacitor src/Dodge/Item/Ammo.hs 67;" f
card8Vec src/Dodge/Base/CardinalPoint.hs 17;" f
card8Vec src/Dodge/Base/CardinalPoint.hs 24;" f
cardList src/Dodge/Base/CardinalPoint.hs 7;" f
cardVec src/Dodge/Base/CardinalPoint.hs 10;" f
cardinalBetweenAdj src/Dodge/Base/CardinalPoint.hs 28;" f
cardReverse src/Dodge/Base/CardinalPoint.hs 10;" f
cardVec src/Dodge/Base/CardinalPoint.hs 17;" f
cardinalBetweenAdj src/Dodge/Base/CardinalPoint.hs 35;" f
cardinalVectors src/Dodge/FloorItem.hs 24;" f
cdtPropagateFold src/Dodge/DoubleTree.hs 189;" f
ceilingTo src/Geometry/Zone.hs 15;" f
@@ -2834,7 +2836,7 @@ checkWallLeft src/Dodge/LevelGen/StaticWalls/Deprecated.hs 29;" f
checkWallRight src/Dodge/LevelGen/StaticWalls.hs 54;" f
checkWallRight src/Dodge/LevelGen/StaticWalls/Deprecated.hs 59;" f
chemFuelPouch src/Dodge/Item/Ammo.hs 81;" f
chestPQ src/Dodge/Creature/HandPos.hs 129;" f
chestPQ src/Dodge/Creature/HandPos.hs 121;" f
chooseCursorBorders src/Dodge/Render/List.hs 141;" f
chooseEquipPosition src/Dodge/Inventory/RBList.hs 41;" f
chooseFootSound src/Dodge/Creature/State/WalkCycle.hs 35;" f
@@ -3171,7 +3173,7 @@ defaultVision src/Dodge/Default/Creature.hs 87;" f
defaultWall src/Dodge/Default/Wall.hs 15;" f
defaultWindow src/Dodge/Default/Wall.hs 54;" f
defaultWorld src/Dodge/Default/World.hs 33;" f
degToRad src/Geometry/Vector.hs 118;" f
degToRad src/Geometry/Vector.hs 120;" f
deleteIMInZone src/Dodge/Base.hs 70;" f
deleteWallFromZones src/Dodge/Wall/Zone.hs 23;" f
deleteWallID src/Dodge/Wall/Delete.hs 13;" f
@@ -3190,7 +3192,7 @@ destroyMcType src/Dodge/Machine/Destroy.hs 22;" f
destroyMount src/Dodge/Wall/Damage.hs 167;" f
destroyMounts src/Dodge/Wall/Damage.hs 164;" f
destroyProjectile src/Dodge/Projectile/Update.hs 112;" f
detV src/Geometry/Vector.hs 94;" f
detV src/Geometry/Vector.hs 96;" 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
@@ -3211,7 +3213,7 @@ displayFreeSlots src/Dodge/DisplayInventory.hs 196;" f
displayIndents src/Dodge/DisplayInventory.hs 110;" f
displayPulse src/Dodge/Inventory/SelectionList.hs 176;" f
displayTerminalLineString src/Dodge/Update.hs 563;" f
dist src/Geometry/Vector.hs 185;" f
dist src/Geometry/Vector.hs 187;" f
dist3 src/Geometry/Vector3D.hs 101;" f
distributeAmmoToItem src/Dodge/WorldEffect.hs 149;" f
distributeAmmoToYou src/Dodge/WorldEffect.hs 137;" f
@@ -3251,7 +3253,7 @@ doDebugTestF6 src/Dodge/Update/Input/DebugTest.hs 41;" f
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 31;" f
doDoorMount src/Dodge/Door.hs 32;" f
doDrag src/Dodge/Update/Input/InGame.hs 129;" f
doDrawing src/Dodge/Render.hs 33;" f
doDrawing' src/Dodge/Render.hs 44;" f
@@ -3295,9 +3297,9 @@ doWorldPos src/Dodge/WorldPos.hs 10;" f
door src/Dodge/Room/Door.hs 14;" f
doorBetween src/Dodge/Placement/Instance/Door.hs 34;" f
doorCor src/Dodge/Room/Room.hs 400;" f
doorLerp src/Dodge/Door.hs 42;" f
doorLerpWithTimer src/Dodge/Door.hs 75;" f
dotV src/Geometry/Vector.hs 76;" f
doorLerp src/Dodge/Door.hs 43;" f
doorLerpWithTimer src/Dodge/Door.hs 76;" f
dotV src/Geometry/Vector.hs 78;" f
dotV3 src/Geometry/Vector3D.hs 119;" f
doubleCorridorBarrels src/Dodge/Room/Room.hs 291;" f
doublePair src/Geometry.hs 162;" f
@@ -3491,7 +3493,7 @@ equipInfo src/Dodge/Item/Info.hs 140;" f
equipItemSPic src/Dodge/Item/Draw/SPic.hs 159;" f
equipPosition src/Dodge/Item/Draw.hs 38;" f
equipSiteInfo src/Dodge/Item/Info.hs 253;" f
equipSitePQ src/Dodge/Creature/HandPos.hs 27;" f
equipSitePQ src/Dodge/Creature/HandPos.hs 28;" f
equipType src/Dodge/Data/EquipType.hs 10;" f
equipmentDesignation src/Dodge/Inventory/RBList.hs 52;" f
equipmentStrValue src/Dodge/Creature/Statistics.hs 56;" f
@@ -3619,9 +3621,9 @@ generateLayout src/Dodge/Layout/Generate.hs 11;" f
generateLevelFromRoomList src/Dodge/Layout.hs 37;" f
generateWorldFromSeed src/Dodge/LevelGen.hs 18;" f
geom src/Shader/Data.hs 110;" f
geometryQuickCheckTests test/Spec.hs 55;" f
geometryTests test/Spec.hs 17;" f
geometryUnitTests test/Spec.hs 22;" f
geometryQuickCheckTests test/Spec.hs 59;" f
geometryTests test/Spec.hs 19;" f
geometryUnitTests test/Spec.hs 25;" f
geqConstr src/SameConstr.hs 21;" f
getAimZoom src/Dodge/Update/Camera.hs 152;" f
getAmmoLinks src/Dodge/Item/Grammar.hs 108;" f
@@ -3714,7 +3716,7 @@ haltSound src/Dodge/SoundLogic.hs 38;" f
hammerCheck src/Dodge/HeldUse.hs 67;" f
handHandleOrient src/Dodge/Item/HeldOffset.hs 57;" f
handOrient src/Dodge/Item/HeldOffset.hs 39;" f
handWalkingPos src/Dodge/Creature/HandPos.hs 40;" f
handWalkingPos src/Dodge/Creature/HandPos.hs 41;" f
handleEvent src/Dodge/Event.hs 27;" f
handleHotkeys src/Dodge/Creature/YourControl.hs 46;" f
handleKeyboardEvent src/Dodge/Event/Input.hs 23;" f
@@ -3722,7 +3724,7 @@ handleMouseButtonEvent src/Dodge/Event/Input.hs 59;" f
handleMouseMotionEvent src/Dodge/Event/Input.hs 47;" f
handleMouseWheelEvent src/Dodge/Event/Input.hs 54;" f
handleOrient src/Dodge/Item/HeldOffset.hs 32;" f
handlePos src/Dodge/Item/HeldOffset.hs 78;" f
handlePos src/Dodge/Item/HeldOffset.hs 80;" f
handleResizeEvent src/Dodge/Event.hs 53;" f
handleTextInput src/Dodge/Event/Input.hs 19;" f
handleWindowMoveEvent src/Dodge/Event.hs 44;" f
@@ -3737,7 +3739,7 @@ head src/DoubleStack.hs 14;" f
headLamp src/Dodge/Item/Equipment.hs 68;" f
headLampShape src/Dodge/Item/Draw/SPic.hs 423;" f
headMap src/Dodge/DoubleTree.hs 118;" f
headPQ src/Dodge/Creature/HandPos.hs 120;" f
headPQ src/Dodge/Creature/HandPos.hs 115;" f
healS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 627;" f
healthAnalyserByDoor src/Dodge/Room/LasTurret.hs 108;" f
healthTest src/Dodge/Room/LasTurret.hs 130;" f
@@ -3746,7 +3748,7 @@ heldAimStance src/Dodge/Item/AimStance.hs 27;" f
heldAimZoom src/Dodge/Update/Camera.hs 158;" f
heldEffect src/Dodge/HeldUse.hs 64;" f
heldEffectMuzzles src/Dodge/HeldUse.hs 135;" f
heldHandlePos src/Dodge/Item/HeldOffset.hs 84;" f
heldHandlePos src/Dodge/Item/HeldOffset.hs 86;" f
heldInfo src/Dodge/Item/Info.hs 92;" f
heldItemAmmoSlots src/Dodge/Item/AmmoSlots.hs 20;" f
heldItemBulkiness src/Dodge/Creature/YourControl.hs 194;" f
@@ -4000,12 +4002,13 @@ leaveResetQuitTerminal src/Dodge/WorldEffect.hs 163;" f
led src/Dodge/Item/Held/Utility.hs 23;" f
left src/DoubleStack.hs 16;" f
leftChildList src/Dodge/Item/Grammar.hs 193;" f
leftHandPQ src/Dodge/Creature/HandPos.hs 69;" f
leftHandPQ src/Dodge/Creature/HandPos.hs 72;" f
leftIsParentCombine src/Dodge/Item/Grammar.hs 170;" f
leftLegPQ src/Dodge/Creature/HandPos.hs 85;" f
leftPad src/Padding.hs 15;" f
leftRightCombine src/Dodge/Item/Grammar.hs 205;" f
leftWristPQ src/Dodge/Creature/HandPos.hs 82;" f
leftWristPQ src/Dodge/Creature/HandPos.hs 85;" f
legPQ src/Dodge/Creature/HandPos.hs 91;" f
legPQ' src/Dodge/Creature/HandPos.hs 96;" f
legsSPic src/Dodge/Item/Draw/SPic.hs 448;" f
lerpP2A src/Dodge/ShiftPoint.hs 14;" f
liShape src/Dodge/Placement/Instance/LightSource.hs 85;" f
@@ -4085,7 +4088,7 @@ magAmmoParams src/Dodge/HeldUse.hs 957;" f
magAmmoType src/Dodge/Item/MagAmmoType.hs 12;" f
magMax src/Dodge/Item/MagAmmoType.hs 29;" f
magShield src/Dodge/Item/Equipment.hs 26;" f
magV src/Geometry/Vector.hs 172;" f
magV src/Geometry/Vector.hs 174;" f
magV3 src/Geometry/Vector3D.hs 78;" f
magazineCombinations src/Dodge/Combine/Combinations.hs 43;" f
magenta src/Color.hs 46;" f
@@ -4241,6 +4244,7 @@ mntLSOn src/Dodge/Placement/Instance/LightSource.hs 36;" f
mntLightLnkCond src/Dodge/Placement/Instance/LightSource.hs 128;" f
mntLightLnkCond' src/Dodge/Placement/Instance/LightSource.hs 136;" f
mntLightLnkShape src/Dodge/Placement/Instance/LightSource.hs 133;" f
moPos src/Dodge/Data/MountedObject.hs 18;" f
modTo src/Geometry/Zone.hs 18;" f
mouseClickOptionsList src/Dodge/Update/Input/ScreenLayer.hs 70;" f
mouseCursorType src/Dodge/Render/Picture.hs 90;" f
@@ -4293,7 +4297,7 @@ nearParallel src/Dodge/LevelGen/StaticWalls/Deprecated.hs 14;" f
nearPoint src/Dodge/Zoning/Common.hs 8;" f
nearRect src/Dodge/Zoning/Common.hs 16;" f
nearSeg src/Dodge/Zoning/Common.hs 12;" f
nearZeroAngle src/Geometry/Vector.hs 138;" f
nearZeroAngle src/Geometry/Vector.hs 140;" f
nearestAngleRep src/Geometry.hs 148;" f
newExtraAwareness src/Dodge/Creature/Perception.hs 137;" f
newKey src/IntMapHelp.hs 61;" f
@@ -4311,7 +4315,7 @@ 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
normalizeAngle src/Geometry/Vector.hs 128;" f
normalizeAngle src/Geometry/Vector.hs 130;" f
normalizeAnglePi src/Dodge/Base.hs 154;" f
normalizeColor src/Color.hs 103;" f
normalizeV src/Geometry/Vector.hs 44;" f
@@ -4538,7 +4542,7 @@ printPoint src/Dodge/Debug/Picture.hs 35;" f
printRotPoint src/Dodge/Debug/Picture.hs 38;" f
prismBox src/Shape.hs 74;" f
prismPoly src/Shape.hs 60;" f
projV src/Geometry/Vector.hs 177;" f
projV src/Geometry/Vector.hs 179;" f
propSPic src/Dodge/Prop/Draw.hs 22;" f
propagateOrientation src/Dodge/Item/Orientation.hs 92;" f
ps0 src/Dodge/LevelGen/PlacementHelper.hs 52;" f
@@ -4598,7 +4602,7 @@ qz src/Quaternion.hs 67;" f
rLauncher src/Dodge/Item/Held/Launcher.hs 14;" f
rLauncherX src/Dodge/Item/Held/Launcher.hs 30;" f
rToOnward src/Dodge/Cleat.hs 21;" f
radToDeg src/Geometry/Vector.hs 123;" f
radToDeg src/Geometry/Vector.hs 125;" f
radiusSpring src/Dodge/Update.hs 953;" f
randBlockBreakWeapon src/Dodge/Item/Random.hs 7;" f
randC1 src/Dodge/Placement/Instance/Creature.hs 8;" f
@@ -4658,7 +4662,7 @@ reflVelWallDamp src/Dodge/Base/Wall.hs 20;" f
reflWall src/Dodge/Base/Wall.hs 16;" f
reflectAngle src/Geometry.hs 142;" f
reflectIn src/Geometry.hs 136;" f
reflectInNormal src/Geometry/Vector.hs 217;" f
reflectInNormal src/Geometry/Vector.hs 219;" f
reflectInParam src/Geometry.hs 230;" f
reflectLaserAlong src/Dodge/Item/Weapon/LaserPath.hs 20;" f
reflectPulseLaserAlong src/Dodge/Item/Weapon/LaserPath.hs 65;" f
@@ -4724,12 +4728,11 @@ rhombus src/Polyhedra.hs 69;" f
rifle src/Dodge/Item/Held/Cane.hs 19;" f
right src/DoubleStack.hs 16;" f
rightChildList src/Dodge/Item/Grammar.hs 199;" f
rightHandPQ src/Dodge/Creature/HandPos.hs 56;" f
rightHandPQ src/Dodge/Creature/HandPos.hs 59;" f
rightIsParentCombine src/Dodge/Item/Grammar.hs 181;" f
rightLegPQ src/Dodge/Creature/HandPos.hs 103;" f
rightPad src/Padding.hs 19;" f
rightPadNoSquash src/Padding.hs 23;" f
rightWristPQ src/Dodge/Creature/HandPos.hs 66;" f
rightWristPQ src/Dodge/Creature/HandPos.hs 69;" f
rlPosDir src/Dodge/RoomLink.hs 112;" f
rlauncherPic src/Dodge/Item/Draw/SPic.hs 399;" f
rmInLinks src/Dodge/RoomLink.hs 153;" f
@@ -4775,8 +4778,8 @@ rotateTo src/Polyhedra/Geodesic.hs 65;" f
rotateTo8 src/Dodge/Update/Camera/Rotate.hs 6;" f
rotateToOverlappingWall src/Dodge/Update/Camera.hs 219;" f
rotateToZ src/Quaternion.hs 35;" f
rotateV src/Geometry/Vector.hs 106;" f
rotateVAround src/Geometry/Vector.hs 113;" f
rotateV src/Geometry/Vector.hs 108;" f
rotateVAround src/Geometry/Vector.hs 115;" f
rotateXY src/Polyhedra.hs 28;" f
roundPoint2 src/Geometry/Intersect.hs 235;" f
roundTank src/Dodge/Placement/Instance/Tank.hs 26;" f
@@ -4791,15 +4794,15 @@ rsObjectColor src/Dodge/RadarSweep/Draw.hs 34;" f
runPastStart src/Dodge/Room/Start.hs 73;" f
runStateWorld src/Dodge/Randify.hs 18;" f
sPS src/Dodge/LevelGen/PlacementHelper.hs 27;" f
safeAngleVV src/Geometry/Vector.hs 69;" f
safeArgV src/Geometry/Vector.hs 88;" f
safeAngleVV src/Geometry/Vector.hs 71;" f
safeArgV src/Geometry/Vector.hs 90;" f
safeHead src/ListHelp.hs 68;" f
safeMinMaybeL src/FoldableHelp.hs 48;" f
safeMinimumOn src/FoldableHelp.hs 26;" f
safeMinimumOnMaybe src/FoldableHelp.hs 67;" f
safeMinimumOnMaybeF src/FoldableHelp.hs 39;" f
safeMinimumOnMaybeL src/FoldableHelp.hs 57;" f
safeNormalizeV src/Geometry/Vector.hs 165;" f
safeNormalizeV src/Geometry/Vector.hs 167;" f
safeSwapKeys src/IntMapHelp.hs 78;" f
safeUncons src/ListHelp.hs 73;" f
safeUpdateSingleNode src/TreeHelp.hs 116;" f
@@ -5013,10 +5016,10 @@ 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
slowCrush90 src/Dodge/Room/LongDoor.hs 229;" f
slowCrush90 src/Dodge/Room/LongDoor.hs 236;" f
slowCrushRoom src/Dodge/Room/LongDoor.hs 145;" f
slowDoorRoom src/Dodge/Room/LongDoor.hs 275;" f
slowDoorRoomRunPast src/Dodge/Room/LongDoor.hs 292;" f
slowDoorRoom src/Dodge/Room/LongDoor.hs 282;" f
slowDoorRoomRunPast src/Dodge/Room/LongDoor.hs 299;" 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
@@ -5052,6 +5055,7 @@ soundToVol src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 4;" f
soundWithStatus src/Dodge/SoundLogic.hs 104;" f
soundWithStatusVolume src/Dodge/SoundLogic.hs 54;" f
southPillarsRoom src/Dodge/Room/LongDoor.hs 86;" f
spPos src/ShapePicture/Data.hs 11;" f
spaceAction src/Dodge/Update/Input/InGame.hs 504;" f
spanColLightBlackI src/Dodge/Placement/Instance/LightSource.hs 161;" f
spanColLightI src/Dodge/Placement/Instance/LightSource.hs 154;" f
@@ -5086,7 +5090,7 @@ 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 119;" f
squashNormalizeV src/Geometry/Vector.hs 158;" f
squashNormalizeV src/Geometry/Vector.hs 160;" f
ssLookupDown src/Dodge/SelectionSections.hs 96;" f
ssLookupGE' src/Dodge/SelectionSections.hs 150;" f
ssLookupGT src/Dodge/SelectionSections.hs 137;" f
@@ -5299,8 +5303,8 @@ translate3 src/Picture/Base.hs 112;" f
translateFloatingCamera src/Dodge/Update/Camera.hs 50;" f
translateFloatingCameraKeys src/Dodge/Update/Camera.hs 68;" f
translateH src/Picture/Base.hs 104;" f
translatePointToLeftHand src/Dodge/Creature/HandPos.hs 76;" f
translatePointToRightHand src/Dodge/Creature/HandPos.hs 37;" f
translatePointToLeftHand src/Dodge/Creature/HandPos.hs 79;" f
translatePointToRightHand src/Dodge/Creature/HandPos.hs 38;" f
translateSH src/Shape.hs 242;" f
translateSHxy src/Shape.hs 246;" f
translateSHz src/Shape.hs 250;" f
@@ -5308,11 +5312,11 @@ translateSP src/ShapePicture.hs 53;" f
translateSPxy src/ShapePicture.hs 45;" f
translateSPz src/ShapePicture.hs 49;" f
translateScreenPos src/Dodge/ScreenPos.hs 12;" f
translateToES src/Dodge/Creature/HandPos.hs 24;" f
translateToLeftHand src/Dodge/Creature/HandPos.hs 79;" f
translateToLeftLeg src/Dodge/Creature/HandPos.hs 100;" f
translateToRightHand src/Dodge/Creature/HandPos.hs 63;" f
translateToRightLeg src/Dodge/Creature/HandPos.hs 117;" f
translateToES src/Dodge/Creature/HandPos.hs 25;" f
translateToLeftHand src/Dodge/Creature/HandPos.hs 82;" f
translateToLeftLeg src/Dodge/Creature/HandPos.hs 88;" f
translateToRightHand src/Dodge/Creature/HandPos.hs 66;" f
translateToRightLeg src/Dodge/Creature/HandPos.hs 112;" f
translateXY src/Polyhedra.hs 23;" f
trapTBH src/Geometry/Polygon.hs 22;" f
trapezionBWHW src/Geometry/Polygon.hs 34;" f
@@ -5357,12 +5361,12 @@ 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 550;" f
tweenAngles src/Geometry/Vector.hs 190;" f
tweenAngles src/Geometry/Vector.hs 192;" f
twinSlowDoorChasers src/Dodge/Room/LongDoor.hs 80;" f
twinSlowDoorRoom src/Dodge/Room/LongDoor.hs 36;" f
twists src/Dodge/Creature/Test.hs 103;" f
twoFlat src/Dodge/Creature/Test.hs 100;" f
twoFlatHRot src/Dodge/Item/HeldOffset.hs 75;" f
twoFlatHRot src/Dodge/Item/HeldOffset.hs 77;" f
twoHandTwistAmount src/Dodge/Creature/YourControl.hs 166;" f
twoRoomPoss src/Dodge/PlacementSpot.hs 148;" f
twoStep1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 519;" f
@@ -5374,7 +5378,7 @@ uncurryV src/Geometry/Data.hs 66;" f
underBarrelSlot src/Dodge/Item/Scope.hs 176;" f
unfoldrMID src/MonadHelp.hs 33;" f
unigate src/Dodge/Item/Scope.hs 108;" f
unitVectorAtAngle src/Geometry/Vector.hs 101;" f
unitVectorAtAngle src/Geometry/Vector.hs 103;" f
unlockInv src/Dodge/Inventory/Lock.hs 12;" f
unpause src/Dodge/Menu.hs 205;" f
unsafeBlinkAction src/Dodge/Creature/Action/Blink.hs 59;" f
@@ -5551,8 +5555,8 @@ usedRoomInLinkPoss src/Dodge/PlacementSpot.hs 209;" f
usedRoomLinkPoss src/Dodge/PlacementSpot.hs 216;" f
v2z src/Geometry/Vector3D.hs 93;" f
vCen3 src/Geometry/Vector3D.hs 115;" f
vInverse src/Geometry/Vector.hs 154;" f
vNormal src/Geometry/Vector.hs 149;" f
vInverse src/Geometry/Vector.hs 156;" f
vNormal src/Geometry/Vector.hs 151;" f
vNormaly src/Geometry/Vector3D.hs 72;" f
vShape src/Dodge/Placement/Instance/LightSource.hs 99;" f
vToL src/MatrixHelper.hs 56;" f
@@ -5664,11 +5668,11 @@ 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 32;" f
xV2 src/Geometry/Vector.hs 201;" f
xyV3 src/Geometry/Vector.hs 213;" f
xyzV4 src/Geometry/Vector.hs 209;" f
xV2 src/Geometry/Vector.hs 203;" f
xyV3 src/Geometry/Vector.hs 215;" f
xyzV4 src/Geometry/Vector.hs 211;" f
yIntercepts src/Dodge/Zoning/Base.hs 78;" f
yV2 src/Geometry/Vector.hs 205;" f
yV2 src/Geometry/Vector.hs 207;" f
yellow src/Color.hs 44;" f
you src/Dodge/Base/You.hs 13;" f
youDropItem src/Dodge/Creature/Action.hs 177;" f