Compare commits

...

3 Commits

Author SHA1 Message Date
justin cdc21c9fb1 Tweak tutorial room 2026-02-28 18:34:40 +00:00
justin 92891e291a Hack fix bug when generating world with no chasms
Bug occured because we try to create an empty glNamedBufferStorage,
instead just create a dummy storage with space for one element.
2026-02-25 20:07:19 +00:00
justin c2c139c8aa Work on tutorial rooms with laser turret 2026-02-25 20:00:37 +00:00
5 changed files with 135 additions and 95 deletions
+41 -11
View File
@@ -8,9 +8,9 @@ module Dodge.Room.LasTurret (
keyCardRoomRunPast,
lasSensorTurretTest,
healthTest,
lasCenRunClose,
) where
--import Dodge.Item.Held.Cane
import qualified Data.Set as S
import Dodge.Cleat
import Dodge.Data.GenWorld
@@ -31,10 +31,11 @@ import Geometry
import LensHelp
import RandomHelp
cenLasTur :: RandomGen g => State g Room
cenLasTur :: (RandomGen g) => State g Room
cenLasTur = do
thelight <- mntLightLnkCond $ rprBool $ const . isInLnk
roomNgon 8 200 <&> rmPmnts
roomNgon 8 200
<&> rmPmnts
.~ [ putLasTurret 0.02
, heightWallPS
(resetPLUse $ rprBoolShift (const . isInLnk) (shiftInBy 100 <&> (,S.singleton UsedPosLow)))
@@ -72,7 +73,7 @@ lightSensByDoor i rm =
covershape = rectNSWE 10 (-10) (-20) 20
sensorshift (p, a) = ((p +.+ rotateV a (V2 60 (-20)), a), S.singleton UsedPosLow)
keyCardRoomRunPast :: RandomGen g => Int -> Int -> State g (MetaTree Room String)
keyCardRoomRunPast :: (RandomGen g) => Int -> Int -> State g (MetaTree Room String)
keyCardRoomRunPast keyid rmid = do
cenroom <- shuffleLinks . keyCardAnalyserByDoor keyid rmid =<< roomNgon 6 200
let doorroom = triggerDoorRoom rmid
@@ -101,14 +102,15 @@ analyserByNthLink n proxreq i =
)
)
(atNthLnkOutShiftBy n sensorshift)
& plExternalID ?~ i
& plExternalID
?~ i
where
sensorshift (p, a) = ((p +.+ rotateV a (V2 (-30) (-10)), a), S.singleton UsedPosLow)
analyserByDoor :: ProximityRequirement -> Int -> Room -> Room
analyserByDoor pr i = rmPmnts .:~ analyserByNthLink 0 pr i
healthTest :: RandomGen g => Int -> State g (Tree Room)
healthTest :: (RandomGen g) => Int -> State g (Tree Room)
healthTest n = do
cenroom <- shuffleLinks . healthAnalyserByDoor n =<< roomNgon 8 200
return $
@@ -120,14 +122,14 @@ healthTest n = do
, cleatOnward door
]
lasSensorTurretTest :: RandomGen g => Int -> State g (MetaTree Room String)
lasSensorTurretTest :: (RandomGen g) => Int -> State g (MetaTree Room String)
lasSensorTurretTest n = do
cenroom <- shuffleLinks . lightSensInsideDoor n =<< cenLasTur
rToOnward "lasSensorTurretTest" $
treePost
[door, cenroom, triggerDoorRoom n, cleatOnward door]
lasCenSensEdge :: RandomGen g => Int -> State g (MetaTree Room String)
lasCenSensEdge :: (RandomGen g) => Int -> State g (MetaTree Room String)
lasCenSensEdge n = do
cenroom <- shuffleLinks . lightSensByDoor n =<< cenLasTur
let doorroom = triggerDoorRoom n
@@ -139,7 +141,35 @@ lasCenSensEdge n = do
, treePost [door, cleatLabel 0 corridor]
]
lasTunnel :: RandomGen g => Float -> State g Room
lasCenRunClose :: (RandomGen g) => State g (MetaTree Room String)
lasCenRunClose = do
thelight <- mntLightLnkCond $ rprBool $ const . isInLnk
thelight1 <- mntLightLnkCond $ rprBool $ const . isOutLnk
r <-
roomNgon 8 250
<&> rmPmnts
.~ [ putLasTurret 0.02
, inlinkwall 70 (rectNSWE 10 (-10) (-10) 30)
, inlinkwall 125 (rectNSWE 55 (-55) (-10) 10)
, inlinkwall 180 (rectNSWE 10 (-10) (-30) 10)
, outlinkwall 70 (rectNSWE 10 (-10) (-30) 10)
, outlinkwall 125 (rectNSWE 55 (-55) (-10) 10)
, outlinkwall 180 (rectNSWE 10 (-10) (-10) 30)
, thelight
, thelight1
]
-- <&> rmLinks %~ setOutLinksByType (PolyEdge 7)
-- <&> rmLinks %~ tail
-- <&> rmLinks %~ setOutLinks (const False)
rToOnward "lasCenRunClose" $ return $ cleatOnward r
where
linkwall f x = heightWallPS
(resetPLUse $ rprBoolShift (const . f) (shiftInBy x <&> (,S.singleton UsedPosLow)))
30
inlinkwall = linkwall isInLnk
outlinkwall = linkwall isOutLnk
lasTunnel :: (RandomGen g) => Float -> State g Room
lasTunnel y = do
extraPlmnts <-
takeOne
@@ -166,7 +196,7 @@ lasTunnel y = do
]
, _rmPmnts =
[ putLasTurret 0.005 & plSpot .~ PS (V2 10 (240 + y)) (1.5 * pi)
, --, midWall (rectNSEW 65 40 0 25)
, -- , midWall (rectNSEW 65 40 0 25)
mntLS vShape (V2 60 145) (V3 40 125 90)
, mntLS vShape (V2 (-40) 145) (V3 (-20) 125 90)
]
@@ -180,7 +210,7 @@ lasTunnel y = do
]
-- a y value of 400 is probably "unrunnable"
lasTunnelRunPast :: RandomGen g => Float -> State g (MetaTree Room String)
lasTunnelRunPast :: (RandomGen g) => Float -> State g (MetaTree Room String)
lasTunnelRunPast y = do
r <- lasTunnel y
r1 <- takeOne [door, corridor]
+1
View File
@@ -24,6 +24,7 @@ roomNgon n x = do
, _rmPmnts = [thelight]
, _rmBound = [poly]
, _rmFloor = Tiled [makeTileFromPoly poly 2]
--, _rmFloor = InheritFloor
, _rmName = show n ++ "gon"
, _rmPos = poss
}
+11 -7
View File
@@ -54,14 +54,18 @@ tutAnoTree = do
[ tToBTree "TutStartRez" . return . cleatOnward <$> tutRezBox
, corDoor
, tToBTree "cor" . return <$> shuffleLinks (cleatOnward corridor)
, lasCenRunClose
-- , passthroughLockKeyLists lockRoomKeyItems itemRooms
, tToBTree "cor" . return <$> shuffleLinks (cleatOnward corridor)
, passthroughLockKeyLists
[(sensorRoomRunPast ElectricSensor, takeOne
[-- CRAFT (ENERGYBALLCRAFT TeslaBall) ,
HELD SPARKGUN])]
itemRooms
, tToBTree "cor" . return <$> shuffleLinks (cleatOnward corridor)
, tToBTree "cor" . return <$> shuffleLinks (cleatOnward corridor)
-- , tToBTree "cor" . return <$> shuffleLinks (cleatOnward corridor)
-- , tToBTree "cor" . return <$> shuffleLinks (cleatOnward corridor)
-- , passthroughLockKeyLists
-- [(sensorRoomRunPast ElectricSensor, takeOne
-- [-- CRAFT (ENERGYBALLCRAFT TeslaBall) ,
-- HELD SPARKGUN])]
-- itemRooms
-- , tToBTree "cor" . return <$> shuffleLinks (cleatOnward corridor)
-- , tToBTree "cor" . return <$> shuffleLinks (cleatOnward corridor)
, tToBTree "sdr" . return . cleatOnward <$>
(shuffleLinks =<< distributerRoom BulletAmmo 100000)
-- , return $ tToBTree "cor" $ return $ cleatOnward corridor
+2 -1
View File
@@ -30,7 +30,8 @@ postWorldLoad rdata cw = do
glNamedBufferStorage newfloorbo (fromIntegral $ 8 * nfloorvxs * floatSize) floorptr 0
nchasmvxs <- foldM (pokeChasm chptr) 0 (cw ^. uvWorld . cWorld . chasms)
glBindBufferBase GL_SHADER_STORAGE_BUFFER 7 newchbo
glNamedBufferStorage newchbo (fromIntegral $ 2 * nchasmvxs * floatSize) chptr 0
glNamedBufferStorage newchbo (fromIntegral $ 2 * (max 1 nchasmvxs) * floatSize) chptr 0
-- note the max 1, prevents trying to create empty buffer storage
checkGLError "during postWorldLoad"
return $
cw & uvWorld . cWorld . numberFloorVerxs .~ nfloorvxs
+70 -66
View File
@@ -2018,6 +2018,7 @@ _mcoTermStatus src/Dodge/Data/Input.hs 27;" f
_mcsAmount src/Dodge/Data/Machine.hs 48;" f
_mcsType src/Dodge/Data/Machine.hs 48;" f
_mctTurret src/Dodge/Data/Machine.hs 47;" f
_mctTurretStun src/Dodge/Data/Machine.hs 47;" f
_mdBool src/Dodge/Data/Modification.hs 19;" f
_mdExternalID src/Dodge/Data/Modification.hs 15;" f
_mdExternalID1 src/Dodge/Data/Modification.hs 23;" f
@@ -2579,10 +2580,10 @@ alteRifleAmmoOrient src/Dodge/Item/Orientation.hs 51;" f
ammoMagInfo src/Dodge/Item/Info.hs 49;" f
ammoMagSPic src/Dodge/Item/Draw/SPic.hs 128;" f
amr src/Dodge/Item/Held/Rod.hs 34;" f
anRoom src/Dodge/Floor.hs 117;" f
anRoom src/Dodge/Floor.hs 116;" f
analyser src/Dodge/Placement/Instance/Analyser.hs 8;" f
analyserByDoor src/Dodge/Room/LasTurret.hs 108;" f
analyserByNthLink src/Dodge/Room/LasTurret.hs 93;" f
analyserByDoor src/Dodge/Room/LasTurret.hs 110;" f
analyserByNthLink src/Dodge/Room/LasTurret.hs 94;" f
andOrRegex src/Dodge/DisplayInventory.hs 78;" f
angleBetween src/Geometry.hs 158;" f
angleVV src/Geometry/Vector.hs 58;" f
@@ -2765,7 +2766,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 133;" f
cChasm src/Dodge/Room/Tutorial.hs 148;" f
cFilledRect src/Dodge/CharacterEnums.hs 6;" f
cWireRect src/Dodge/CharacterEnums.hs 10;" f
calcSmoothScroll src/Dodge/SmoothScroll.hs 11;" f
@@ -2801,8 +2802,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 294;" f
chasmSpitTerminal src/Dodge/Room/Tutorial.hs 265;" f
chasmSimpleMaze src/Dodge/Room/Tutorial.hs 309;" f
chasmSpitTerminal src/Dodge/Room/Tutorial.hs 280;" 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
@@ -3042,7 +3043,7 @@ dShadCol src/Dodge/Render/List.hs 208;" f
damMatSideEffect src/Dodge/Material/Damage.hs 20;" f
damThingHitWith src/Dodge/Damage.hs 72;" f
damToExpBarrel src/Dodge/Barreloid.hs 53;" f
damageBlock src/Dodge/Wall/Damage.hs 59;" f
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
@@ -3051,16 +3052,17 @@ 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
damageGlassBlock src/Dodge/Wall/Damage.hs 64;" 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 45;" f
damageMachine src/Dodge/Wall/Damage.hs 46;" f
damageMetal src/Dodge/Material/Damage.hs 65;" f
damageSensor src/Dodge/Placement/Instance/Sensor.hs 13;" f
damageStone src/Dodge/Material/Damage.hs 33;" f
damageThingHit src/Dodge/Bullet.hs 180;" f
damageTypeThreshold src/Dodge/Machine/Update.hs 132;" f
damageWall src/Dodge/Wall/Damage.hs 30;" f
damageTypeThreshold src/Dodge/Machine/Update.hs 139;" f
damageTypeThreshold' src/Dodge/Wall/Damage.hs 84;" f
damageWall src/Dodge/Wall/Damage.hs 31;" f
damsToExpBarrel src/Dodge/Barreloid.hs 50;" f
dark src/Color.hs 135;" f
darkenBackground src/Dodge/Render/MenuScreen.hs 46;" f
@@ -3158,16 +3160,16 @@ deleteWallIDs src/Dodge/Wall/Delete.hs 27;" f
denormalEdges src/Polyhedra.hs 128;" f
destroyAllInvItems src/Dodge/Inventory.hs 53;" f
destroyBlock src/Dodge/Block.hs 17;" f
destroyDoor src/Dodge/Wall/Damage.hs 84;" f
destroyDoor src/Dodge/Wall/Damage.hs 145;" f
destroyInvItem src/Dodge/Inventory.hs 40;" f
destroyItem src/Dodge/Inventory.hs 62;" f
destroyLSFlashAt src/Dodge/LightSource.hs 44;" f
destroyMachine src/Dodge/Machine/Destroy.hs 13;" f
destroyMachine' src/Dodge/Wall/Damage.hs 50;" f
destroyMachine' src/Dodge/Wall/Damage.hs 111;" f
destroyMatS src/Dodge/Material/Sound.hs 7;" f
destroyMcType src/Dodge/Machine/Destroy.hs 22;" f
destroyMount src/Dodge/Wall/Damage.hs 105;" f
destroyMounts src/Dodge/Wall/Damage.hs 102;" f
destroyMount src/Dodge/Wall/Damage.hs 166;" f
destroyMounts src/Dodge/Wall/Damage.hs 163;" f
destroyProjectile src/Dodge/Projectile/Update.hs 112;" f
detV src/Geometry/Vector.hs 94;" f
detector src/Dodge/Item/Held/Utility.hs 27;" f
@@ -3545,7 +3547,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 79;" f
foldMTRS src/Dodge/Room/Tutorial.hs 94;" f
foldPairs src/ListHelp.hs 37;" f
foldrWhileArb src/ListHelp.hs 111;" f
followImpulse src/Dodge/Creature/Impulse.hs 25;" f
@@ -3607,8 +3609,8 @@ 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 446;" f
getCrsFromRooms' src/Dodge/Room/Tutorial.hs 433;" f
getCrsFromRooms src/Dodge/Room/Tutorial.hs 461;" f
getCrsFromRooms' src/Dodge/Room/Tutorial.hs 448;" f
getDebugMouseOver src/Dodge/Update.hs 424;" f
getDistortions src/Dodge/Render.hs 443;" f
getEdgesCrossing src/Dodge/Path.hs 37;" f
@@ -3625,7 +3627,7 @@ getNodePos src/Dodge/Path.hs 34;" f
getPJStabiliser src/Dodge/HeldUse.hs 1246;" f
getPretty src/AesonHelp.hs 8;" f
getPromptTM src/Dodge/Terminal/Type.hs 3;" f
getRoomsFromInts src/Dodge/Room/Tutorial.hs 429;" f
getRoomsFromInts src/Dodge/Room/Tutorial.hs 444;" f
getRootItemBounds src/Dodge/Render/HUD.hs 106;" f
getRootItemInvID src/Dodge/Inventory/Location.hs 35;" f
getSelectedCloseObj src/Dodge/SelectedClose.hs 14;" f
@@ -3710,8 +3712,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 90;" f
healthTest src/Dodge/Room/LasTurret.hs 111;" f
healthAnalyserByDoor src/Dodge/Room/LasTurret.hs 91;" f
healthTest src/Dodge/Room/LasTurret.hs 113;" 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
@@ -3760,7 +3762,7 @@ initTexture2DArray src/Shader/AuxAddition.hs 31;" f
initTexture2DArrayData src/Shader/AuxAddition.hs 46;" f
initTexture2DArraySquare src/Shader/AuxAddition.hs 16;" f
initWallZoning src/Dodge/Wall/Zone.hs 12;" f
initialRoomTree src/Dodge/Floor.hs 24;" f
initialRoomTree src/Dodge/Floor.hs 23;" f
initialWorld src/Dodge/Initialisation.hs 13;" f
initialisePlaying src/Sound.hs 78;" f
initializeGLState src/Preload/Render.hs 255;" f
@@ -3780,7 +3782,7 @@ insertWall src/Dodge/Placement/PlaceSpot/Block.hs 134;" f
insertWallInZones src/Dodge/Wall/Zone.hs 20;" f
insertWalls src/Dodge/Placement/PlaceSpot/Block.hs 131;" f
insertWithNewKeys src/IntMapHelp.hs 71;" f
intAnno src/Dodge/Floor.hs 111;" 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
@@ -3843,7 +3845,6 @@ isAnimate src/Dodge/Creature/Test.hs 134;" f
isCognizant src/Dodge/Creature/Perception.hs 105;" f
isConnected src/Dodge/Inventory/Swap.hs 77;" f
isCornerLink src/Dodge/RoomLink.hs 67;" f
isElectrical src/Dodge/Machine/Update.hs 106;" f
isFlyable src/Dodge/WorldEvent/ThingsHit.hs 176;" f
isGroupSelectableSection src/Dodge/Update/Input/InGame.hs 198;" f
isInLnk src/Dodge/PlacementSpot.hs 163;" f
@@ -3935,25 +3936,26 @@ 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 87;" f
keyCardRoomRunPast src/Dodge/Room/LasTurret.hs 75;" f
keyCardAnalyserByDoor src/Dodge/Room/LasTurret.hs 88;" f
keyCardRoomRunPast src/Dodge/Room/LasTurret.hs 76;" f
keyCardRunPastRand src/Dodge/LockAndKey.hs 36;" f
keyPic src/Dodge/Item/Draw/SPic.hs 439;" f
keyholeCorridor src/Dodge/Room/Corridor.hs 44;" f
knifeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 741;" f
lChasm src/Dodge/Room/Tutorial.hs 142;" f
lChasm src/Dodge/Room/Tutorial.hs 157;" 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
lasCenSensEdge src/Dodge/Room/LasTurret.hs 130;" f
lasCenRunClose src/Dodge/Room/LasTurret.hs 144;" f
lasCenSensEdge src/Dodge/Room/LasTurret.hs 132;" f
lasGunPic src/Dodge/Item/Draw/SPic.hs 414;" f
lasPulseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 731;" f
lasSensorTurretTest src/Dodge/Room/LasTurret.hs 123;" f
lasTunnel src/Dodge/Room/LasTurret.hs 142;" f
lasTunnelRunPast src/Dodge/Room/LasTurret.hs 183;" f
lasSensorTurretTest src/Dodge/Room/LasTurret.hs 125;" f
lasTunnel src/Dodge/Room/LasTurret.hs 172;" f
lasTunnelRunPast src/Dodge/Room/LasTurret.hs 213;" f
lasTurret src/Dodge/Placement/Instance/Turret.hs 35;" f
laser src/Dodge/Item/Held/BatteryGuns.hs 34;" f
lastMap src/Dodge/DoubleTree.hs 253;" f
@@ -3987,8 +3989,8 @@ 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 60;" f
lightSensInsideDoor src/Dodge/Room/LasTurret.hs 48;" f
lightSensByDoor src/Dodge/Room/LasTurret.hs 61;" f
lightSensInsideDoor src/Dodge/Room/LasTurret.hs 49;" f
lightSensor src/Dodge/Placement/Instance/Sensor.hs 26;" f
lightsToRender src/Dodge/Render/Lights.hs 14;" f
lightx4 src/Color.hs 155;" f
@@ -4131,32 +4133,32 @@ maxInvSlots src/Dodge/Inventory/CheckSlots.hs 30;" f
maxViewDistance src/Dodge/Viewpoints.hs 26;" f
maybeBlockedPassage src/Dodge/Room/RezBox.hs 80;" f
maybeClearLoadingScreen src/Dodge/StartNewGame.hs 58;" f
maybeDestroyBlock src/Dodge/Wall/Damage.hs 74;" f
maybeDestroyDoor src/Dodge/Wall/Damage.hs 79;" f
maybeDestroyBlock src/Dodge/Wall/Damage.hs 135;" f
maybeDestroyDoor src/Dodge/Wall/Damage.hs 140;" f
maybeExitCombine src/Dodge/Update/Input/InGame.hs 568;" f
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
mcApplyDamage src/Dodge/Machine/Update.hs 167;" f
mcBackgroundSound src/Dodge/Machine/Update.hs 156;" f
mcBackgroundSound src/Dodge/Machine/Update.hs 163;" f
mcColor src/Dodge/Machine/Draw.hs 83;" f
mcDamSensorTriggerUpdate src/Dodge/Machine/Update.hs 120;" f
mcDamSensorTriggerUpdate src/Dodge/Machine/Update.hs 127;" f
mcDamSensorUpdate src/Dodge/Machine/Update.hs 174;" 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 140;" f
mcProxSensorTriggerUpdate src/Dodge/Machine/Update.hs 126;" 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
mcSPic src/Dodge/Render/ShapePicture.hs 163;" f
mcShootAuto src/Dodge/HeldUse.hs 1164;" f
mcShootLaser src/Dodge/HeldUse.hs 1157;" f
mcTypeUpdate src/Dodge/Machine/Update.hs 33;" f
mcTypeUpdate src/Dodge/Machine/Update.hs 32;" f
mcUseHeld src/Dodge/HeldUse.hs 1081;" f
mcUseItem src/Dodge/Machine/Update.hs 111;" f
mcUseItem src/Dodge/Machine/Update.hs 118;" 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
@@ -4185,9 +4187,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 165;" f
midChasmPlatform src/Dodge/Room/Tutorial.hs 184;" f
midChasmSpit src/Dodge/Room/Tutorial.hs 238;" f
midChasm src/Dodge/Room/Tutorial.hs 180;" f
midChasmPlatform src/Dodge/Room/Tutorial.hs 199;" f
midChasmSpit src/Dodge/Room/Tutorial.hs 253;" f
midPad src/Padding.hs 27;" f
midPadL src/Padding.hs 33;" f
midPoint src/Geometry.hs 83;" f
@@ -4357,7 +4359,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/Floor.hs 120;" f
passthroughLockKeyLists src/Dodge/Room/Tutorial.hs 523;" f
pathConnected src/Dodge/Room/CheckConsistency.hs 13;" f
pathEdgeObstructed src/Dodge/Path.hs 66;" f
pauseAndFloatCam src/Dodge/Camera.hs 10;" f
@@ -4461,8 +4463,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 278;" f
polyChasmC src/Dodge/Room/Tutorial.hs 287;" f
polyChasm src/Dodge/Room/Tutorial.hs 293;" f
polyChasmC src/Dodge/Room/Tutorial.hs 302;" f
polyCirc src/Shape.hs 47;" f
polyCircx src/Shape.hs 52;" f
polyCornerDist src/Geometry/Polygon.hs 69;" f
@@ -4653,7 +4655,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 344;" f
removeLights src/Dodge/Room/Tutorial.hs 359;" f
removeShieldWall src/Dodge/Item/BackgroundEffect.hs 71;" f
removeWallsInPolygon src/Dodge/LevelGen/StaticWalls.hs 182;" f
renderDataResizeUpdate src/Preload/Update.hs 27;" f
@@ -4834,12 +4836,14 @@ 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/Wall/Damage.hs 60;" f
sensorReqToString src/Dodge/Machine/Update.hs 252;" 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 455;" f
sensorTut src/Dodge/Room/Tutorial.hs 470;" f
sensorTypeDamages src/Dodge/Machine/Update.hs 298;" 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
sentinelFireType src/Dodge/Creature/SentinelAI.hs 49;" f
@@ -4864,7 +4868,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 86;" f
setRoomInt src/Dodge/Room/Tutorial.hs 101;" 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
@@ -4873,7 +4877,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 93;" f
setTreeInts src/Dodge/Room/Tutorial.hs 108;" f
setViewDistance src/Dodge/Update/Camera.hs 246;" f
setViewPos src/Dodge/Creature/ReaderUpdate.hs 69;" f
setViewport src/Dodge/Render.hs 448;" f
@@ -5053,8 +5057,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 208;" f
sqSpitChasm src/Dodge/Room/Tutorial.hs 223;" f
sqPlatformChasm src/Dodge/Room/Tutorial.hs 223;" f
sqSpitChasm src/Dodge/Room/Tutorial.hs 238;" f
square src/Geometry/Polygon.hs 56;" f
squareDecoration src/Dodge/Placement/TopDecoration.hs 48;" f
squashIntersectCirclePoint src/Dodge/WallCreatureCollisions.hs 116;" f
@@ -5099,7 +5103,7 @@ stone4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 543;" f
stone5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 657;" f
stopAllSounds src/Sound.hs 127;" f
stopBulletAt src/Dodge/Bullet.hs 200;" f
stopPushing src/Dodge/Wall/Damage.hs 110;" f
stopPushing src/Dodge/Wall/Damage.hs 171;" f
stopSoundFrom src/Dodge/SoundLogic.hs 220;" f
storageShape src/Dodge/Machine/Draw.hs 31;" f
strFromEquipment src/Dodge/Creature/Statistics.hs 53;" f
@@ -5158,7 +5162,7 @@ terminalLDP src/Dodge/ListDisplayParams.hs 48;" f
terminalReturnEffect src/Dodge/Terminal.hs 279;" f
terminalReturnLocal src/Dodge/Terminal.hs 283;" f
terminalSPic src/Dodge/Machine/Draw.hs 47;" f
terminalScreenGlow src/Dodge/Machine/Update.hs 44;" f
terminalScreenGlow src/Dodge/Machine/Update.hs 43;" f
terminalShape src/Dodge/Machine/Draw.hs 50;" f
terminalWheelEvent src/Dodge/Update/Scroll.hs 127;" f
teslaGun src/Dodge/Item/Held/BatteryGuns.hs 19;" f
@@ -5319,13 +5323,13 @@ tryThrust src/Dodge/Projectile/Update.hs 126;" f
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 48;" f
tutDrop src/Dodge/Room/Tutorial.hs 98;" f
tutHub src/Dodge/Room/Tutorial.hs 351;" f
tutLight src/Dodge/Room/Tutorial.hs 316;" f
tutRezBox src/Dodge/Room/Tutorial.hs 466;" f
tutRoomTree src/Dodge/Floor.hs 21;" f
tutorialMessage1 src/Dodge/Room/Tutorial.hs 489;" f
tutAnoTree src/Dodge/Room/Tutorial.hs 51;" f
tutDrop src/Dodge/Room/Tutorial.hs 113;" f
tutHub src/Dodge/Room/Tutorial.hs 366;" f
tutLight src/Dodge/Room/Tutorial.hs 331;" f
tutRezBox src/Dodge/Room/Tutorial.hs 481;" f
tutRoomTree src/Dodge/Floor.hs 20;" f
tutorialMessage1 src/Dodge/Room/Tutorial.hs 504;" f
tweenAngles src/Geometry/Vector.hs 190;" f
twinSlowDoorChasers src/Dodge/Room/LongDoor.hs 79;" f
twinSlowDoorRoom src/Dodge/Room/LongDoor.hs 34;" f
@@ -5424,7 +5428,7 @@ updateLeftParentSF src/Dodge/Item/Grammar.hs 170;" f
updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f
updateLivingCreature src/Dodge/Creature/Update.hs 47;" f
updateLongPressInGame src/Dodge/Update/Input/InGame.hs 447;" f
updateMachine src/Dodge/Machine/Update.hs 25;" f
updateMachine src/Dodge/Machine/Update.hs 24;" f
updateMagnets src/Dodge/Update.hs 361;" f
updateMouseClickInGame src/Dodge/Update/Input/InGame.hs 204;" f
updateMouseContext src/Dodge/Update.hs 374;" f
@@ -5466,7 +5470,7 @@ updateTeslaArc src/Dodge/Update.hs 618;" f
updateTeslaArcs src/Dodge/Update.hs 615;" f
updateTractorBeam src/Dodge/TractorBeam/Update.hs 9;" f
updateTractorBeams src/Dodge/Update.hs 687;" f
updateTurret src/Dodge/Machine/Update.hs 56;" f
updateTurret src/Dodge/Machine/Update.hs 55;" f
updateUniverse src/Dodge/Update.hs 82;" f
updateUniverseFirst src/Dodge/Update.hs 93;" f
updateUniverseLast src/Dodge/Update.hs 144;" f
@@ -5643,7 +5647,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 152;" f
zChasm src/Dodge/Room/Tutorial.hs 167;" 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