This commit is contained in:
2025-10-03 20:14:41 +01:00
parent 2d44809900
commit cba3ca784a
13 changed files with 181 additions and 193 deletions
+24 -30
View File
@@ -1,14 +1,14 @@
Seed: 7114951007332849727 Seed: 7114951007332849727
Room layout (compact): Room layout (compact):
0,1,2,3,4,5,6 0,1,2,3
| |
+- 7,8 +- 4,5
| |
+- 9,10 +- 6,7
| |
+- 11,12,13 +- 8,9,10
| |
14,15,16,17,18,19,20,21,22,23,24 11,12,13,14,15,16,17,18,19,20,21
Layout with room names: Layout with room names:
tutRezBox-0 tutRezBox-0
@@ -17,47 +17,41 @@ autoDoor-1
| |
Corridor-2 Corridor-2
| |
glass8gon-3 doorToggle-6gon-3
| |
autoDoor-4 +- triggerDoorRoom-4
|
Corridor-5
|
doorToggle-6gon-6
|
+- triggerDoorRoom-7
| | | |
| autoRect-8 | autoRect-5
| |
+- triggerDoorRoom-9 +- triggerDoorRoom-6
| | | |
| autoRect-10 | autoRect-7
| |
+- Corridor-11 +- Corridor-8
| | | |
| autoDoor-12 | autoDoor-9
| | | |
| autoRect-13 | roomCenterPillar-10
| |
triggerDoorRoom-14 triggerDoorRoom-11
| |
autoRect-15 6gon-12
| |
Corridor-16 Corridor-13
| |
autoRect-17 autoRect-14
| |
Corridor-18 Corridor-15
| |
autoRect-19 autoRect-16
| |
Corridor-20 Corridor-17
| |
6gon-21 6gon-18
| |
defaultRoom-22 defaultRoom-19
| |
autoRect-23 autoRect-20
| |
Corridor-24 Corridor-21
+1 -1
View File
@@ -1,4 +1,4 @@
Generating level with seed 7114951007332849727 Generating level with seed 7114951007332849727
After 1 attempt(s), Successful generation of level with seed 7114951007332849727 After 1 attempt(s), Successful generation of level with seed 7114951007332849727
25 rooms in total 22 rooms in total
+37 -51
View File
@@ -3,17 +3,13 @@ Seed: 7114951007332849727
| |
1:corDoor 1:corDoor
| |
2:octo 2:DoorTest
| |
3:corDoor 3:TutLight
| |
4:DoorTest 4:TutDrop
| |
5:TutLight 5:cor
|
6:TutDrop
|
7:cor
0:0:TutStartRez 0:0:TutStartRez
@@ -25,57 +21,47 @@ Seed: 7114951007332849727
| |
1:0:1:Corridor 1:0:1:Corridor
2:0:octo 2:0:DoorTest
2:0:0:glass8gon 2:0:0:doorToggle-6gon
|
+- 2:0:1:triggerDoorRoom
| |
| 2:0:2:autoRect
|
+- 2:0:3:triggerDoorRoom
| |
| 2:0:4:autoRect
|
+- 2:0:5:Corridor
| |
| 2:0:6:autoDoor
| |
| 2:0:7:roomCenterPillar
|
2:0:8:triggerDoorRoom
3:0:corDoor 3:0:TutLight
3:0:0:autoDoor 3:0:0:6gon
| |
3:0:1:Corridor 3:0:1:Corridor
|
3:0:2:autoRect
|
3:0:3:Corridor
|
3:0:4:autoRect
|
3:0:5:Corridor
4:0:DoorTest 4:0:TutDrop
4:0:0:doorToggle-6gon 4:0:0:6gon
| |
+- 4:0:1:triggerDoorRoom 4:0:1:defaultRoom
| |
| 4:0:2:autoRect
| |
+- 4:0:3:triggerDoorRoom 4:0:2:autoRect
| |
| 4:0:4:autoRect
|
+- 4:0:5:Corridor
| |
| 4:0:6:autoDoor
| |
| 4:0:7:autoRect
|
4:0:8:triggerDoorRoom
5:0:TutLight 5:0:Corridor
5:0:0:autoRect
|
5:0:1:Corridor
|
5:0:2:autoRect
|
5:0:3:Corridor
|
5:0:4:autoRect
|
5:0:5:Corridor
6:0:TutDrop
6:0:0:6gon
|
6:0:1:defaultRoom
|
6:0:2:autoRect
7:0:Corridor
+1 -1
View File
File diff suppressed because one or more lines are too long
+35 -13
View File
@@ -6,12 +6,12 @@
-} -}
module Dodge.Placement.PlaceSpot (placeSpot) where module Dodge.Placement.PlaceSpot (placeSpot) where
import Data.Maybe
import Color import Color
import Control.Monad.State import Control.Monad.State
import Data.Bifunctor import Data.Bifunctor
import Data.Foldable import Data.Foldable
import qualified Data.IntSet as IS import qualified Data.IntSet as IS
import Data.Maybe
import Dodge.Base.NewID import Dodge.Base.NewID
import Dodge.Data.GenWorld import Dodge.Data.GenWorld
import Dodge.Path import Dodge.Path
@@ -23,6 +23,7 @@ import Geometry
import qualified IntMapHelp as IM import qualified IntMapHelp as IM
import LensHelp import LensHelp
import NewInt import NewInt
--import System.Random --import System.Random
-- when placing a placement, we update the world and the room and assign an id -- when placing a placement, we update the world and the room and assign an id
@@ -46,8 +47,11 @@ placePlainPSSpot w rid plmnt shift = case plmnt ^. plType of
_ -> _ ->
let (i, w') = placeSpotID rid (shiftPSBy shift (_plSpot plmnt)) (_plType plmnt) w let (i, w') = placeSpotID rid (shiftPSBy shift (_plSpot plmnt)) (_plType plmnt) w
newplmnt = plmnt & plMID ?~ i newplmnt = plmnt & plMID ?~ i
gw = maybe (w' & genRooms . ix rid . rmPmnts .:~ newplmnt) gw =
(recrPlace newplmnt w') (_plIDCont plmnt w' newplmnt) maybe
(w' & genRooms . ix rid . rmPmnts .:~ newplmnt)
(recrPlace newplmnt w')
(_plIDCont plmnt w' newplmnt)
in f newplmnt gw in f newplmnt gw
where where
f x gw = fromMaybe gw $ do f x gw = fromMaybe gw $ do
@@ -65,7 +69,11 @@ placeSpotUsingLink ::
Maybe Placement -> Maybe Placement ->
GenWorld GenWorld
placeSpotUsingLink w rid plmnt extract eff fallback = case searchedPoss (w ^?! genRooms . ix rid . rmPos) of placeSpotUsingLink w rid plmnt extract eff fallback = case searchedPoss (w ^?! genRooms . ix rid . rmPos) of
Just (ps, rmposs) -> placeSpot rid (w & genRooms . ix rid %~ eff (head rmposs) . (rmPos .~ rmposs)) (plmnt & plSpot .~ ps) Just (ps, rmposs) ->
placeSpot
rid
(w & genRooms . ix rid %~ eff (head rmposs) . (rmPos .~ rmposs))
(plmnt & plSpot .~ ps)
Nothing -> case fallback of Nothing -> case fallback of
Nothing -> w Nothing -> w
Just plmnt' -> placeSpot rid w plmnt' Just plmnt' -> placeSpot rid w plmnt'
@@ -86,15 +94,18 @@ placeSpotRoomRand rid i f plmnt w =
let (ps, g) = runState (_rmRandPSs (w ^?! genRooms . ix rid) !! i) $ w ^. gwWorld . randGen let (ps, g) = runState (_rmRandPSs (w ^?! genRooms . ix rid) !! i) $ w ^. gwWorld . randGen
in placeSpot rid (w & gwWorld . randGen .~ g) (plmnt & plSpot .~ f ps) in placeSpot rid (w & gwWorld . randGen .~ g) (plmnt & plSpot .~ f ps)
-- the Int here is some id that is assigned when the placement is placed -- the Int here is some id that is assigned when the placement is placed
placeSpotID :: Int -> PlacementSpot -> PSType -> GenWorld -> (Int, GenWorld) placeSpotID :: Int -> PlacementSpot -> PSType -> GenWorld -> (Int, GenWorld)
placeSpotID rid ps pt w = case pt of placeSpotID rid ps pt w = case pt of
PutTrigger cnd -> plNewID (gwWorld . cWorld . lWorld . triggers) cnd w PutTrigger cnd -> plNewID (gwWorld . cWorld . lWorld . triggers) cnd w
PutMod mdi -> plNewUpID (gwWorld . cWorld . lWorld . modifications) mdID mdi w PutMod mdi -> plNewUpID (gwWorld . cWorld . lWorld . modifications) mdID mdi w
PutProp prp -> plNewUpID (gwWorld . cWorld . lWorld . props) prID (mvProp p rot prp) w PutProp prp -> plNewUpID (gwWorld . cWorld . lWorld . props) prID (mvProp p rot prp) w
PutButton bt -> plNewUpID (gwWorld . cWorld . lWorld . buttons) btID PutButton bt ->
(mvButton p rot bt) w plNewUpID
(gwWorld . cWorld . lWorld . buttons)
btID
(mvButton p rot bt)
w
PutTerminal tm -> plNewUpID (gwWorld . cWorld . lWorld . terminals) tmID tm w PutTerminal tm -> plNewUpID (gwWorld . cWorld . lWorld . terminals) tmID tm w
PutFlIt itm -> PutFlIt itm ->
let i = IM.newKey (w ^. gwWorld . cWorld . lWorld . items) let i = IM.newKey (w ^. gwWorld . cWorld . lWorld . items)
@@ -107,8 +118,12 @@ placeSpotID rid ps pt w = case pt of
) )
) )
PutCrit cr -> plNewUpID (gwWorld . cWorld . lWorld . creatures) crID (mvCr p rot cr) w PutCrit cr -> plNewUpID (gwWorld . cWorld . lWorld . creatures) crID (mvCr p rot cr) w
PutForeground fs -> plNewUpID (gwWorld . cWorld . lWorld . foregroundShapes) fsID PutForeground fs ->
(mvFS p rot fs) w plNewUpID
(gwWorld . cWorld . lWorld . foregroundShapes)
fsID
(mvFS p rot fs)
w
PutMachine pps mc wl mitm -> plMachine (map doShift pps) mc wl mitm p rot w PutMachine pps mc wl mitm -> plMachine (map doShift pps) mc wl mitm p rot w
PutLS ls -> plNewUpID (gwWorld . cWorld . lWorld . lightSources) lsID (mvLS p' rot ls) w PutLS ls -> plNewUpID (gwWorld . cWorld . lWorld . lightSources) lsID (mvLS p' rot ls) w
PutPPlate pp -> plNewUpID (gwWorld . cWorld . lWorld . pressPlates) ppID (mvPP p rot pp) w PutPPlate pp -> plNewUpID (gwWorld . cWorld . lWorld . pressPlates) ppID (mvPP p rot pp) w
@@ -177,8 +192,15 @@ plMachine wallpoly mc wl = \case
Nothing -> plMachine' wallpoly mc wl Nothing -> plMachine' wallpoly mc wl
Just itm -> plTurret wallpoly mc wl itm Just itm -> plTurret wallpoly mc wl itm
plTurret :: [Point2] -> Machine -> Wall -> Item -> Point2 -> Float -> GenWorld plTurret ::
-> (Int, GenWorld) [Point2] ->
Machine ->
Wall ->
Item ->
Point2 ->
Float ->
GenWorld ->
(Int, GenWorld)
plTurret wallpoly mc wl itm p rot gw = plTurret wallpoly mc wl itm p rot gw =
( mcid ( mcid
, gw & gwWorld . cWorld . lWorld . machines %~ addMc , gw & gwWorld . cWorld . lWorld . machines %~ addMc
@@ -215,8 +237,8 @@ plMachine' wallpoly mc wl p rot gw =
addMc = IM.insert mcid (mc{_mcPos = p, _mcDir = rot, _mcID = mcid, _mcWallIDs = wlids}) addMc = IM.insert mcid (mc{_mcPos = p, _mcDir = rot, _mcID = mcid, _mcWallIDs = wlids})
-- TODO correctly remove/shift pathfinding lines (removePathsCrossing) -- TODO correctly remove/shift pathfinding lines (removePathsCrossing)
placeMachineWalls placeMachineWalls ::
:: Wall -> Color -> [Point2] -> Int -> Int -> IM.IntMap Wall -> IM.IntMap Wall Wall -> Color -> [Point2] -> Int -> Int -> IM.IntMap Wall -> IM.IntMap Wall
placeMachineWalls wl col poly mcid wlid = flip (foldr f) $ zip [wlid ..] $ loopPairs poly placeMachineWalls wl col poly mcid wlid = flip (foldr f) $ zip [wlid ..] $ loopPairs poly
where where
f (wid, l) = IM.insert wid baseWall{_wlID = wid, _wlLine = l} f (wid, l) = IM.insert wid baseWall{_wlID = wid, _wlLine = l}
+1 -1
View File
@@ -31,7 +31,7 @@ roomGlassOctogon x =
] ]
, _rmLinks = lnks' , _rmLinks = lnks'
, _rmPath = , _rmPath =
linksAndPath' linksGridToPath
lnks' lnks'
[ (V2 0 x, V2 0 (- (x + 40))) [ (V2 0 x, V2 0 (- (x + 40)))
, (V2 0 (- (x + 40)), V2 0 x) , (V2 0 (- (x + 40)), V2 0 x)
-1
View File
@@ -2,7 +2,6 @@ module Dodge.Room.CheckConsistency where
import Dodge.Data.GenWorld import Dodge.Data.GenWorld
import Dodge.Graph import Dodge.Graph
import Dodge.RoomLink
linksOnPath :: Room -> Bool linksOnPath :: Room -> Bool
linksOnPath r = all pointOnPath linkPoints linksOnPath r = all pointOnPath linkPoints
+1
View File
@@ -29,6 +29,7 @@ roomNgon n x = do
rot = 2 * pi / fromIntegral n rot = 2 * pi / fromIntegral n
rots = map ((rot *) . fromIntegral) [0 .. n -1] rots = map ((rot *) . fromIntegral) [0 .. n -1]
poly = polyOrthDist n x poly = polyOrthDist n x
path1 = polyOrthDist n (x-10)
lnks = lnks =
sortOn ((\(V2 a b) -> (negate b, a)) . fst . snd) sortOn ((\(V2 a b) -> (negate b, a)) . fst . snd)
. zip [0 ..] . zip [0 ..]
+6 -16
View File
@@ -1,6 +1,6 @@
module Dodge.Room.Path ( module Dodge.Room.Path (
gridPoints, gridPoints,
linksAndPath', linksGridToPath,
makeGrid, makeGrid,
createPathGrid, createPathGrid,
gridPoints'', gridPoints'',
@@ -14,17 +14,14 @@ import Data.Maybe
import qualified Data.Set as S import qualified Data.Set as S
import Dodge.Data.GenWorld import Dodge.Data.GenWorld
import Dodge.LevelGen.StaticWalls import Dodge.LevelGen.StaticWalls
import Dodge.RoomLink
import Geometry import Geometry
import Grid import Grid
createPathGrid :: Room -> Room createPathGrid :: Room -> Room
createPathGrid rm = createPathGrid rm = rm & rmPath .~ linksGridToPath (_rmLinks rm) filterGrid
rm
{ _rmPath = linksAndPath' (_rmLinks rm) filterGrid
}
where where
filterGrid = filter (\p -> pairInPolys (_rmPolys rm) p && testCrossWalls outerWalls p) grid filterGrid = filter
(\p -> pairInPolys (_rmPolys rm) p && testCrossWalls outerWalls p) grid
grid = fromMaybe [] $ shiftedGrid <$> minx <*> maxx <*> miny <*> maxy grid = fromMaybe [] $ shiftedGrid <$> minx <*> maxx <*> miny <*> maxy
outerWalls = foldr cutPoly [] $ _rmPolys rm outerWalls = foldr cutPoly [] $ _rmPolys rm
outerPoints = map fst outerWalls outerPoints = map fst outerWalls
@@ -36,17 +33,10 @@ createPathGrid rm =
<*> L.premap sndV2 L.minimum <*> L.premap sndV2 L.minimum
<*> L.premap sndV2 L.maximum <*> L.premap sndV2 L.maximum
--linksAndPath :: [(Point2, Float)] -> [(Point2, Point2)] -> S.Set (Point2, Point2) linksGridToPath :: [RoomLink] -> [(Point2, Point2)] -> S.Set (Point2, Point2)
--linksAndPath lnks subpth = S.fromList subpth <> foldMap linkClosest lnks linksGridToPath lnks subpth = S.fromList subpth <> foldMap (linkClosest . (^. rlPos)) lnks
-- where
-- linkClosest (p, _) = doublePairSet (p, minimumBy (compare `on` dist p) $ map fst subpth)
linksAndPath' :: [RoomLink] -> [(Point2, Point2)] -> S.Set (Point2, Point2)
linksAndPath' lnks subpth = S.fromList subpth
<> foldMap (linkClosest . (^. rlPos) ) lnks
where where
linkClosest p = doublePairSet (p, minimumBy (compare `on` dist p) $ map fst subpth) linkClosest p = doublePairSet (p, minimumBy (compare `on` dist p) $ map fst subpth)
--linksAndPath' = linksAndPath . map lnkPosDir
testCrossWalls :: [(Point2, Point2)] -> (Point2, Point2) -> Bool testCrossWalls :: [(Point2, Point2)] -> (Point2, Point2) -> Bool
testCrossWalls wls (a, b) = not $ any (isJust . uncurry (intersectSegSeg a b)) wls testCrossWalls wls (a, b) = not $ any (isJust . uncurry (intersectSegSeg a b)) wls
+2 -1
View File
@@ -95,7 +95,8 @@ roomRect x y xn yn =
m edge edgefrom1 edgefrom2 = m edge edgefrom1 edgefrom2 =
zipWith (lnkBothAnd (OnEdge edge) edgefrom1 edgefrom2) [0 ..] zipWith (lnkBothAnd (OnEdge edge) edgefrom1 edgefrom2) [0 ..]
. zipCountDown . zipCountDown
pth = linksAndPath' lnks $ map (bimap (+.+ V2 20 20) (+.+ V2 20 20)) (makeGrid xd xn yd yn) pth = linksGridToPath lnks
$ map (bimap (+.+ V2 20 20) (+.+ V2 20 20)) (makeGrid xd xn yd yn)
makeonpos (p, a) = RoomPos p 0 (S.singleton $ RoomPosOnPath $ makerpedges a) makeonpos (p, a) = RoomPos p 0 (S.singleton $ RoomPosOnPath $ makerpedges a)
NotLink mempty NotLink mempty
makerpedges (a, b) = makerpedges (a, b) =
-4
View File
@@ -5,7 +5,6 @@ module Dodge.RoomLink (
inLink, inLink,
restrictLinkType, restrictLinkType,
overLnkType, overLnkType,
-- lnkPosDir,
overLnkPosDir, overLnkPosDir,
toBothLnk, toBothLnk,
rmInLinks, rmInLinks,
@@ -113,9 +112,6 @@ overLnkType lt f = rmLinks %~ g
rlPosDir :: RoomLink -> (Point2, Float) rlPosDir :: RoomLink -> (Point2, Float)
rlPosDir rl = (_rlPos rl, _rlDir rl) rlPosDir rl = (_rlPos rl, _rlDir rl)
lnkPosDir :: RoomLink -> (Point2, Float)
lnkPosDir rl = (_rlPos rl, _rlDir rl)
overLnkPosDir :: ((Point2, Float) -> (Point2, Float)) -> RoomLink -> RoomLink overLnkPosDir :: ((Point2, Float) -> (Point2, Float)) -> RoomLink -> RoomLink
overLnkPosDir f rl = rl & rlPos .~ p & rlDir .~ a overLnkPosDir f rl = rl & rlPos .~ p & rlDir .~ a
where where
+2 -1
View File
@@ -49,7 +49,8 @@ posRms ::
IO (Maybe PosRooms) IO (Maybe PosRooms)
posRms prs roomi [] st = case st of posRms prs roomi [] st = case st of
Empty -> return $ Just $ prs & prRooms .:~ roomi Empty -> return $ Just $ prs & prRooms .:~ roomi
Node nextroomi ts Seq.:<| tseq -> posRms (prs & prRooms .:~ roomi) nextroomi (zipCount ts) tseq Node nextroomi ts Seq.:<| tseq
-> posRms (prs & prRooms .:~ roomi) nextroomi (zipCount ts) tseq
_ -> error "unexpected outcome in posRms" _ -> error "unexpected outcome in posRms"
posRms prs parenti@(parent, _) ((numChild, t@(Node childi _)) : its) tseq = do posRms prs parenti@(parent, _) ((numChild, t@(Node childi _)) : its) tseq = do
printInfoCheckNum parenti numChild childi printInfoCheckNum parenti numChild childi
+66 -68
View File
@@ -2811,7 +2811,7 @@ bulletWeapons src/Dodge/Combine/Combinations.hs 248;" f
burstRifle src/Dodge/Item/Held/Cane.hs 30;" f burstRifle src/Dodge/Item/Held/Cane.hs 30;" f
buttonFlip src/Dodge/Button/Event.hs 17;" f buttonFlip src/Dodge/Button/Event.hs 17;" f
buzzS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 702;" f buzzS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 702;" f
cChasm src/Dodge/Room/Tutorial.hs 121;" f cChasm src/Dodge/Room/Tutorial.hs 108;" f
cFilledRect src/Dodge/CharacterEnums.hs 6;" f cFilledRect src/Dodge/CharacterEnums.hs 6;" f
cWireRect src/Dodge/CharacterEnums.hs 10;" f cWireRect src/Dodge/CharacterEnums.hs 10;" f
calcSmoothScroll src/Dodge/SmoothScroll.hs 11;" f calcSmoothScroll src/Dodge/SmoothScroll.hs 11;" f
@@ -2845,7 +2845,7 @@ chaseCritAwarenessUpdate src/Dodge/Creature/Perception.hs 70;" f
chaseCritMv src/Dodge/Creature/ReaderUpdate.hs 114;" f chaseCritMv src/Dodge/Creature/ReaderUpdate.hs 114;" f
chaseCritPerceptionUpdate src/Dodge/Creature/Perception.hs 31;" f chaseCritPerceptionUpdate src/Dodge/Creature/Perception.hs 31;" f
chaseCritVocalization src/Dodge/Creature/ChaseCrit.hs 37;" f chaseCritVocalization src/Dodge/Creature/ChaseCrit.hs 37;" f
chasmSimpleMaze src/Dodge/Room/Tutorial.hs 188;" f chasmSimpleMaze src/Dodge/Room/Tutorial.hs 175;" f
chasmTest src/Dodge/Creature/Update.hs 131;" f chasmTest src/Dodge/Creature/Update.hs 131;" f
chasmWallToSurface src/Dodge/Base/Collide.hs 110;" f chasmWallToSurface src/Dodge/Base/Collide.hs 110;" f
checkCombineSelectionExists src/Dodge/DisplayInventory.hs 100;" f checkCombineSelectionExists src/Dodge/DisplayInventory.hs 100;" f
@@ -2986,7 +2986,7 @@ corridor src/Dodge/Room/Corridor.hs 17;" f
corridorBoss src/Dodge/LockAndKey.hs 133;" f corridorBoss src/Dodge/LockAndKey.hs 133;" f
corridorN src/Dodge/Room/Corridor.hs 52;" f corridorN src/Dodge/Room/Corridor.hs 52;" f
corridorWallN src/Dodge/Room/Corridor.hs 71;" f corridorWallN src/Dodge/Room/Corridor.hs 71;" f
crAdd src/Dodge/Room/RezBox.hs 115;" f crAdd src/Dodge/Room/RezBox.hs 116;" f
crAwayFromPost src/Dodge/Creature/Test.hs 82;" f crAwayFromPost src/Dodge/Creature/Test.hs 82;" f
crBlips src/Dodge/RadarSweep.hs 87;" f crBlips src/Dodge/RadarSweep.hs 87;" f
crCamouflage src/Dodge/Creature/Picture.hs 33;" f crCamouflage src/Dodge/Creature/Picture.hs 33;" f
@@ -3037,12 +3037,12 @@ createGas src/Dodge/Gas.hs 8;" f
createHeadLamp src/Dodge/Euse.hs 55;" f createHeadLamp src/Dodge/Euse.hs 55;" f
createItemYou src/Dodge/Inventory/Add.hs 60;" f createItemYou src/Dodge/Inventory/Add.hs 60;" f
createLightMap src/Render.hs 26;" f createLightMap src/Render.hs 26;" f
createPathGrid src/Dodge/Room/Path.hs 21;" f createPathGrid src/Dodge/Room/Path.hs 20;" f
createProjectile src/Dodge/HeldUse.hs 1308;" f createProjectile src/Dodge/HeldUse.hs 1308;" f
createProjectileR src/Dodge/HeldUse.hs 1257;" f createProjectileR src/Dodge/HeldUse.hs 1257;" f
createShell src/Dodge/Projectile/Create.hs 21;" f createShell src/Dodge/Projectile/Create.hs 21;" f
createShieldWall src/Dodge/Item/BackgroundEffect.hs 39;" f createShieldWall src/Dodge/Item/BackgroundEffect.hs 39;" f
createUnusedLinkPos src/Dodge/Tree/Shift.hs 117;" f createUnusedLinkPos src/Dodge/Tree/Shift.hs 124;" f
createWall src/Dodge/Wall/Create.hs 8;" f createWall src/Dodge/Wall/Create.hs 8;" f
creatureDisplayText src/Dodge/Creature/Picture/Awareness.hs 11;" f creatureDisplayText src/Dodge/Creature/Picture/Awareness.hs 11;" f
creatureShootLaser src/Dodge/HeldUse.hs 815;" f creatureShootLaser src/Dodge/HeldUse.hs 815;" f
@@ -3614,7 +3614,7 @@ floorItemSPic src/Dodge/Render/ShapePicture.hs 117;" f
floorWire src/Dodge/Wire.hs 13;" f floorWire src/Dodge/Wire.hs 13;" f
foamSprayFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 558;" f foamSprayFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 558;" f
foamSprayLoopS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 554;" f foamSprayLoopS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 554;" f
foldMTRS src/Dodge/Room/Tutorial.hs 66;" f foldMTRS src/Dodge/Room/Tutorial.hs 53;" f
foldPairs src/ListHelp.hs 37;" f foldPairs src/ListHelp.hs 37;" f
foldrWhileArb src/ListHelp.hs 110;" f foldrWhileArb src/ListHelp.hs 110;" f
followImpulse src/Dodge/Creature/Impulse.hs 39;" f followImpulse src/Dodge/Creature/Impulse.hs 39;" f
@@ -3679,8 +3679,8 @@ getCloseObj src/Dodge/Update/Input/InGame.hs 533;" f
getCommand src/Dodge/Terminal.hs 52;" f getCommand src/Dodge/Terminal.hs 52;" f
getCommands src/Dodge/Terminal.hs 49;" f getCommands src/Dodge/Terminal.hs 49;" f
getCrMoveSpeed src/Dodge/Creature/Statistics.hs 50;" f getCrMoveSpeed src/Dodge/Creature/Statistics.hs 50;" f
getCrsFromRooms src/Dodge/Room/Tutorial.hs 323;" f getCrsFromRooms src/Dodge/Room/Tutorial.hs 310;" f
getCrsFromRooms' src/Dodge/Room/Tutorial.hs 310;" f getCrsFromRooms' src/Dodge/Room/Tutorial.hs 297;" f
getDistortions src/Dodge/Render.hs 435;" f getDistortions src/Dodge/Render.hs 435;" f
getGrenadeHitEffect src/Dodge/HeldUse.hs 1296;" f getGrenadeHitEffect src/Dodge/HeldUse.hs 1296;" f
getInventoryPath src/Dodge/Inventory/Path.hs 9;" f getInventoryPath src/Dodge/Inventory/Path.hs 9;" f
@@ -3688,14 +3688,14 @@ getItemValue src/Dodge/Inventory/SelectionList.hs 147;" f
getLaserColor src/Dodge/HeldUse.hs 703;" f getLaserColor src/Dodge/HeldUse.hs 703;" f
getLaserDamage src/Dodge/HeldUse.hs 700;" f getLaserDamage src/Dodge/HeldUse.hs 700;" f
getLaserPhaseV src/Dodge/HeldUse.hs 697;" f getLaserPhaseV src/Dodge/HeldUse.hs 697;" f
getLinksOfType src/Dodge/RoomLink.hs 42;" f getLinksOfType src/Dodge/RoomLink.hs 41;" f
getMaxLinesTM src/Dodge/Terminal/Type.hs 6;" f getMaxLinesTM src/Dodge/Terminal/Type.hs 6;" f
getMenuMouseContext src/Dodge/Update.hs 372;" f getMenuMouseContext src/Dodge/Update.hs 372;" f
getNodePos src/Dodge/Path.hs 31;" f getNodePos src/Dodge/Path.hs 31;" f
getPJStabiliser src/Dodge/HeldUse.hs 1283;" f getPJStabiliser src/Dodge/HeldUse.hs 1283;" f
getPretty src/AesonHelp.hs 8;" f getPretty src/AesonHelp.hs 8;" f
getPromptTM src/Dodge/Terminal/Type.hs 3;" f getPromptTM src/Dodge/Terminal/Type.hs 3;" f
getRoomsFromInts src/Dodge/Room/Tutorial.hs 306;" f getRoomsFromInts src/Dodge/Room/Tutorial.hs 293;" f
getRootItemBounds src/Dodge/Render/HUD.hs 100;" f getRootItemBounds src/Dodge/Render/HUD.hs 100;" f
getRootItemInvID src/Dodge/Inventory/Location.hs 35;" f getRootItemInvID src/Dodge/Inventory/Location.hs 35;" f
getSelectedCloseObj src/Dodge/SelectedClose.hs 14;" f getSelectedCloseObj src/Dodge/SelectedClose.hs 14;" f
@@ -3820,7 +3820,7 @@ icosahedronPoints src/Polyhedra/Geodesic.hs 12;" f
icosohedronFaces src/Polyhedra/Geodesic.hs 19;" f icosohedronFaces src/Polyhedra/Geodesic.hs 19;" f
ildtPropagate src/Dodge/DoubleTree.hs 111;" f ildtPropagate src/Dodge/DoubleTree.hs 111;" f
impulsiveAIBefore src/Dodge/Creature/Impulse.hs 24;" f impulsiveAIBefore src/Dodge/Creature/Impulse.hs 24;" f
inLink src/Dodge/RoomLink.hs 132;" f inLink src/Dodge/RoomLink.hs 128;" f
inSegArea src/Geometry/Intersect.hs 328;" f inSegArea src/Geometry/Intersect.hs 328;" f
inTextInputFocus src/Dodge/InputFocus.hs 8;" f inTextInputFocus src/Dodge/InputFocus.hs 8;" f
incidenceToFunction src/Dodge/Graph.hs 26;" f incidenceToFunction src/Dodge/Graph.hs 26;" f
@@ -3908,7 +3908,7 @@ isAmmoIntLink src/Dodge/HeldUse.hs 713;" f
isAnimate src/Dodge/Creature/Test.hs 130;" f isAnimate src/Dodge/Creature/Test.hs 130;" f
isCognizant src/Dodge/Creature/Perception.hs 106;" f isCognizant src/Dodge/Creature/Perception.hs 106;" f
isConnected src/Dodge/Inventory/Swap.hs 76;" f isConnected src/Dodge/Inventory/Swap.hs 76;" f
isCornerLink src/Dodge/RoomLink.hs 66;" f isCornerLink src/Dodge/RoomLink.hs 65;" f
isElectrical src/Dodge/Machine/Update.hs 83;" f isElectrical src/Dodge/Machine/Update.hs 83;" f
isGroupSelectableSection src/Dodge/Update/Input/InGame.hs 197;" f isGroupSelectableSection src/Dodge/Update/Input/InGame.hs 197;" f
isInLnk src/Dodge/PlacementSpot.hs 168;" f isInLnk src/Dodge/PlacementSpot.hs 168;" f
@@ -3916,7 +3916,7 @@ isJust' src/MaybeHelp.hs 29;" f
isLHS src/Geometry/LHS.hs 8;" f isLHS src/Geometry/LHS.hs 8;" f
isLeftOf src/Geometry.hs 202;" f isLeftOf src/Geometry.hs 202;" f
isLeftOfA src/Geometry.hs 196;" f isLeftOfA src/Geometry.hs 196;" f
isMidEdgeLink src/Dodge/RoomLink.hs 57;" f isMidEdgeLink src/Dodge/RoomLink.hs 56;" f
isNHS src/Geometry/Intersect.hs 51;" f isNHS src/Geometry/Intersect.hs 51;" f
isNothing' src/MaybeHelp.hs 33;" f isNothing' src/MaybeHelp.hs 33;" f
isOnSeg src/Geometry.hs 240;" f isOnSeg src/Geometry.hs 240;" f
@@ -4001,7 +4001,7 @@ keyCardRunPastRand src/Dodge/LockAndKey.hs 36;" f
keyPic src/Dodge/Item/Draw/SPic.hs 474;" f keyPic src/Dodge/Item/Draw/SPic.hs 474;" f
keyholeCorridor src/Dodge/Room/Corridor.hs 39;" f keyholeCorridor src/Dodge/Room/Corridor.hs 39;" f
knifeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 638;" f knifeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 638;" f
lChasm src/Dodge/Room/Tutorial.hs 130;" f lChasm src/Dodge/Room/Tutorial.hs 117;" f
lConnect src/Dodge/Render/Connectors.hs 42;" f lConnect src/Dodge/Render/Connectors.hs 42;" f
lConnectMulti src/Dodge/Render/Connectors.hs 46;" f lConnectMulti src/Dodge/Render/Connectors.hs 46;" f
lShape src/Dodge/Placement/Instance/LightSource.hs 90;" f lShape src/Dodge/Placement/Instance/LightSource.hs 90;" f
@@ -4059,9 +4059,7 @@ lineOutputTerminal src/Dodge/Room/Warning.hs 66;" f
lineSplit src/Justify.hs 26;" f lineSplit src/Justify.hs 26;" f
lineThick src/Picture/Base.hs 234;" f lineThick src/Picture/Base.hs 234;" f
lineUp src/Dodge/Creature/Boid.hs 148;" f lineUp src/Dodge/Creature/Boid.hs 148;" f
linksAndPath src/Dodge/Room/Path.hs 39;" f linksOnPath src/Dodge/Room/CheckConsistency.hs 6;" f
linksAndPath' src/Dodge/Room/Path.hs 44;" f
linksOnPath src/Dodge/Room/CheckConsistency.hs 7;" f
listConfig src/Dodge/Menu.hs 216;" f listConfig src/Dodge/Menu.hs 216;" f
listControls src/Dodge/Menu.hs 228;" f listControls src/Dodge/Menu.hs 228;" f
listCursorChooseBorderScale src/Dodge/Render/List.hs 134;" f listCursorChooseBorderScale src/Dodge/Render/List.hs 134;" f
@@ -4071,7 +4069,6 @@ litCorridor90 src/Dodge/Room/RoadBlock.hs 26;" f
lmt src/MatrixHelper.hs 43;" f lmt src/MatrixHelper.hs 43;" f
lnkBothAnd src/Dodge/Room/Procedural.hs 123;" f lnkBothAnd src/Dodge/Room/Procedural.hs 123;" f
lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 387;" f lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 387;" f
lnkPosDir src/Dodge/RoomLink.hs 116;" f
loadDodgeConfig src/Dodge/Config/Load.hs 9;" f loadDodgeConfig src/Dodge/Config/Load.hs 9;" f
loadMusic src/Dodge/SoundLogic/LoadSound.hs 30;" f loadMusic src/Dodge/SoundLogic/LoadSound.hs 30;" f
loadMuzzle src/Dodge/HeldUse.hs 622;" f loadMuzzle src/Dodge/HeldUse.hs 622;" f
@@ -4165,6 +4162,7 @@ makeMuzzleFlare src/Dodge/HeldUse.hs 648;" f
makeParagraph src/Justify.hs 6;" f makeParagraph src/Justify.hs 6;" f
makePathBetween src/Dodge/Path.hs 35;" f makePathBetween src/Dodge/Path.hs 35;" f
makePathBetweenPs src/Dodge/Path.hs 54;" f makePathBetweenPs src/Dodge/Path.hs 54;" f
makePathFromLinksGrid src/Dodge/Room/Path.hs 41;" f
makePoisonExplosionAt src/Dodge/WorldEvent/Explosion.hs 25;" f makePoisonExplosionAt src/Dodge/WorldEvent/Explosion.hs 25;" f
makeRect src/Grid.hs 82;" f makeRect src/Grid.hs 82;" f
makeSelectionListPictures src/Dodge/Render/List.hs 65;" f makeSelectionListPictures src/Dodge/Render/List.hs 65;" f
@@ -4251,7 +4249,7 @@ mglCreate src/GLHelp.hs 8;" f
mglDelete src/GLHelp.hs 14;" f mglDelete src/GLHelp.hs 14;" f
midBarDecoration src/Dodge/Placement/TopDecoration.hs 16;" f midBarDecoration src/Dodge/Placement/TopDecoration.hs 16;" f
midBounds src/Dodge/Room/Foreground.hs 151;" f midBounds src/Dodge/Room/Foreground.hs 151;" f
midChasm src/Dodge/Room/Tutorial.hs 151;" f midChasm src/Dodge/Room/Tutorial.hs 138;" f
midPad src/Padding.hs 27;" f midPad src/Padding.hs 27;" f
midPadL src/Padding.hs 33;" f midPadL src/Padding.hs 33;" f
midPoint src/Geometry.hs 84;" f midPoint src/Geometry.hs 84;" f
@@ -4304,12 +4302,12 @@ moveZoomCamera src/Dodge/Update/Camera.hs 87;" f
mtTopLabels src/Dodge/Tree/Compose.hs 50;" f mtTopLabels src/Dodge/Tree/Compose.hs 50;" f
mtUnderLabels src/Dodge/Tree/Compose.hs 53;" f mtUnderLabels src/Dodge/Tree/Compose.hs 53;" f
muchWlDustAt src/Dodge/Wall/Dust.hs 10;" f muchWlDustAt src/Dodge/Wall/Dust.hs 10;" f
muin src/Dodge/RoomLink.hs 151;" f muin src/Dodge/RoomLink.hs 147;" f
multGunCrit src/Dodge/Creature.hs 77;" f multGunCrit src/Dodge/Creature.hs 77;" f
multiArrow src/Picture/Composite.hs 11;" f multiArrow src/Picture/Composite.hs 11;" f
multiLookupTrie src/SimpleTrie.hs 57;" f multiLookupTrie src/SimpleTrie.hs 57;" f
multiLookupTrieI src/SimpleTrie.hs 66;" f multiLookupTrieI src/SimpleTrie.hs 66;" f
muout src/Dodge/RoomLink.hs 148;" f muout src/Dodge/RoomLink.hs 144;" f
muzFlareAt src/Dodge/HeldUse.hs 674;" f muzFlareAt src/Dodge/HeldUse.hs 674;" f
mvButton src/Dodge/Placement/PlaceSpot.hs 162;" f mvButton src/Dodge/Placement/PlaceSpot.hs 162;" f
mvCr src/Dodge/Placement/PlaceSpot.hs 168;" f mvCr src/Dodge/Placement/PlaceSpot.hs 168;" f
@@ -4390,14 +4388,14 @@ orientAttachment src/Dodge/Item/Orientation.hs 31;" f
orientByParentChSF src/Dodge/Item/Orientation.hs 24;" f orientByParentChSF src/Dodge/Item/Orientation.hs 24;" f
orientChild src/Dodge/Item/Orientation.hs 13;" f orientChild src/Dodge/Item/Orientation.hs 13;" f
orthogonalPointOnSeg src/Geometry/Intersect.hs 321;" f orthogonalPointOnSeg src/Geometry/Intersect.hs 321;" f
outLink src/Dodge/RoomLink.hs 124;" f outLink src/Dodge/RoomLink.hs 120;" f
outsideScreenPolygon src/Dodge/Debug/Picture.hs 43;" f outsideScreenPolygon src/Dodge/Debug/Picture.hs 43;" f
outwardIntegers src/Dodge/Base.hs 181;" f outwardIntegers src/Dodge/Base.hs 181;" f
overCol src/Picture/Base.hs 308;" f overCol src/Picture/Base.hs 308;" f
overColObj src/Shape.hs 273;" f overColObj src/Shape.hs 273;" f
overColSH src/Shape.hs 241;" f overColSH src/Shape.hs 241;" f
overLnkPosDir src/Dodge/RoomLink.hs 119;" f overLnkPosDir src/Dodge/RoomLink.hs 115;" f
overLnkType src/Dodge/RoomLink.hs 106;" f overLnkType src/Dodge/RoomLink.hs 105;" f
overPos src/Picture/Base.hs 303;" f overPos src/Picture/Base.hs 303;" f
overPosObj src/Shape.hs 277;" f overPosObj src/Shape.hs 277;" f
overPosSH src/Shape.hs 261;" f overPosSH src/Shape.hs 261;" f
@@ -4411,7 +4409,7 @@ overrideMeleeCloseTarget src/Dodge/Creature/ReaderUpdate.hs 35;" f
overwriteLabel src/Dodge/Tree/Compose.hs 31;" f overwriteLabel src/Dodge/Tree/Compose.hs 31;" f
p src/ShortShow.hs 44;" f p src/ShortShow.hs 44;" f
pContID src/Dodge/LevelGen/PlacementHelper.hs 15;" f pContID src/Dodge/LevelGen/PlacementHelper.hs 15;" f
pairInPolys src/Dodge/Room/Path.hs 51;" f pairInPolys src/Dodge/Room/Path.hs 52;" f
pairPolyPointsIntersect src/Geometry/ConvexPoly.hs 70;" f pairPolyPointsIntersect src/Geometry/ConvexPoly.hs 70;" f
pairsToGraph src/Dodge/Path.hs 110;" f pairsToGraph src/Dodge/Path.hs 110;" f
pairsToIncidence src/Dodge/Graph.hs 20;" f pairsToIncidence src/Dodge/Graph.hs 20;" f
@@ -4420,7 +4418,7 @@ paletteToColor src/Color.hs 58;" f
parseItem src/Dodge/Debug/Terminal.hs 62;" f parseItem src/Dodge/Debug/Terminal.hs 62;" f
parseNum src/Dodge/Debug/Terminal.hs 77;" f parseNum src/Dodge/Debug/Terminal.hs 77;" f
passthroughLockKeyLists src/Dodge/Floor.hs 120;" f passthroughLockKeyLists src/Dodge/Floor.hs 120;" f
pathConnected src/Dodge/Room/CheckConsistency.hs 14;" f pathConnected src/Dodge/Room/CheckConsistency.hs 13;" f
pathEdgeObstructed src/Dodge/Path.hs 43;" f pathEdgeObstructed src/Dodge/Path.hs 43;" f
pauseAndFloatCam src/Dodge/Camera.hs 10;" f pauseAndFloatCam src/Dodge/Camera.hs 10;" f
pauseGame src/Dodge/Update/Input/InGame.hs 525;" f pauseGame src/Dodge/Update/Input/InGame.hs 525;" f
@@ -4551,8 +4549,8 @@ pokeWall src/Shader/Poke.hs 78;" f
pokeWallsWindows src/Shader/Poke.hs 50;" f pokeWallsWindows src/Shader/Poke.hs 50;" f
poly3 src/Picture/Base.hs 84;" f poly3 src/Picture/Base.hs 84;" f
poly3Col src/Picture/Base.hs 88;" f poly3Col src/Picture/Base.hs 88;" f
polyChasm src/Dodge/Room/Tutorial.hs 172;" f polyChasm src/Dodge/Room/Tutorial.hs 159;" f
polyChasmC src/Dodge/Room/Tutorial.hs 181;" f polyChasmC src/Dodge/Room/Tutorial.hs 168;" f
polyCirc src/Shape.hs 46;" f polyCirc src/Shape.hs 46;" f
polyCircx src/Shape.hs 51;" f polyCircx src/Shape.hs 51;" f
polyCornerDist src/Geometry/Polygon.hs 60;" f polyCornerDist src/Geometry/Polygon.hs 60;" f
@@ -4595,11 +4593,11 @@ prettyDT src/Dodge/DoubleTree.hs 258;" f
prettyLDT src/Dodge/DoubleTree.hs 263;" f prettyLDT src/Dodge/DoubleTree.hs 263;" f
prettyShort src/AesonHelp.hs 11;" f prettyShort src/AesonHelp.hs 11;" f
primeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 594;" f primeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 594;" f
printColumnTitles src/Dodge/Tree/Shift.hs 142;" f printColumnTitles src/Dodge/Tree/Shift.hs 149;" f
printColumns src/Dodge/Tree/Shift.hs 132;" f printColumns src/Dodge/Tree/Shift.hs 139;" f
printInfo src/Dodge/Tree/Shift.hs 145;" f printInfo src/Dodge/Tree/Shift.hs 152;" f
printInfoCheckNum src/Dodge/Tree/Shift.hs 154;" f printInfoCheckNum src/Dodge/Tree/Shift.hs 161;" f
printPartialColumns src/Dodge/Tree/Shift.hs 135;" f printPartialColumns src/Dodge/Tree/Shift.hs 142;" f
printPoint src/Dodge/Debug/Picture.hs 34;" f printPoint src/Dodge/Debug/Picture.hs 34;" f
printRotPoint src/Dodge/Debug/Picture.hs 37;" f printRotPoint src/Dodge/Debug/Picture.hs 37;" f
prismBox src/Shape.hs 73;" f prismBox src/Shape.hs 73;" f
@@ -4743,7 +4741,7 @@ removeAimPosture src/Dodge/Creature/YourControl.hs 158;" f
removeAmmoFromMag src/Dodge/HeldUse.hs 920;" f removeAmmoFromMag src/Dodge/HeldUse.hs 920;" f
removeDot src/ShortShow.hs 40;" f removeDot src/ShortShow.hs 40;" f
removeInverseWalls src/Dodge/LevelGen/StaticWalls.hs 25;" f removeInverseWalls src/Dodge/LevelGen/StaticWalls.hs 25;" f
removeLights src/Dodge/Room/Tutorial.hs 224;" f removeLights src/Dodge/Room/Tutorial.hs 211;" f
removeShieldWall src/Dodge/Item/BackgroundEffect.hs 57;" f removeShieldWall src/Dodge/Item/BackgroundEffect.hs 57;" f
removeWallsInPolygon src/Dodge/LevelGen/StaticWalls.hs 182;" f removeWallsInPolygon src/Dodge/LevelGen/StaticWalls.hs 182;" f
renderDataResizeUpdate src/Preload/Update.hs 26;" f renderDataResizeUpdate src/Preload/Update.hs 26;" f
@@ -4764,9 +4762,9 @@ resizeFBOTO src/Framebuffer/Update.hs 203;" f
resizeFBOTO3 src/Framebuffer/Update.hs 175;" f resizeFBOTO3 src/Framebuffer/Update.hs 175;" f
resizeRBO src/Framebuffer/Update.hs 87;" f resizeRBO src/Framebuffer/Update.hs 87;" f
respawn src/Dodge/SpawnAt.hs 11;" f respawn src/Dodge/SpawnAt.hs 11;" f
restrictInLinks src/Dodge/RoomLink.hs 45;" f restrictInLinks src/Dodge/RoomLink.hs 44;" f
restrictLinkType src/Dodge/RoomLink.hs 35;" f restrictLinkType src/Dodge/RoomLink.hs 34;" f
restrictOutLinks src/Dodge/RoomLink.hs 48;" f restrictOutLinks src/Dodge/RoomLink.hs 47;" f
restrictRMInLinksPD src/Dodge/Room/Link.hs 25;" f restrictRMInLinksPD src/Dodge/Room/Link.hs 25;" f
restrictSeg src/Dodge/Base/Collide.hs 162;" f restrictSeg src/Dodge/Base/Collide.hs 162;" f
resumeSound src/Dodge/SoundLogic.hs 48;" f resumeSound src/Dodge/SoundLogic.hs 48;" f
@@ -4778,10 +4776,10 @@ rewinder src/Dodge/Item/Held/Utility.hs 36;" f
rezBox src/Dodge/Room/RezBox.hs 31;" f rezBox src/Dodge/Room/RezBox.hs 31;" f
rezBox' src/Dodge/Room/RezBox.hs 46;" f rezBox' src/Dodge/Room/RezBox.hs 46;" f
rezBoxStart src/Dodge/Room/Start.hs 78;" f rezBoxStart src/Dodge/Room/Start.hs 78;" f
rezBoxes src/Dodge/Room/RezBox.hs 118;" f rezBoxes src/Dodge/Room/RezBox.hs 119;" f
rezBoxesWpCrit src/Dodge/Room/RezBox.hs 90;" f rezBoxesWpCrit src/Dodge/Room/RezBox.hs 90;" f
rezColor src/Dodge/Room/RezBox.hs 137;" f rezColor src/Dodge/Room/RezBox.hs 138;" f
rezInvBox src/Dodge/Room/RezBox.hs 144;" f rezInvBox src/Dodge/Room/RezBox.hs 145;" f
rezText src/Dodge/Story.hs 4;" f rezText src/Dodge/Story.hs 4;" f
rezText' src/Dodge/Story.hs 17;" f rezText' src/Dodge/Story.hs 17;" f
rhombus src/Polyhedra.hs 72;" f rhombus src/Polyhedra.hs 72;" f
@@ -4794,12 +4792,12 @@ rightLegPQ src/Dodge/Creature/HandPos.hs 100;" f
rightPad src/Padding.hs 19;" f rightPad src/Padding.hs 19;" f
rightPadNoSquash src/Padding.hs 23;" f rightPadNoSquash src/Padding.hs 23;" f
rightWristPQ src/Dodge/Creature/HandPos.hs 57;" f rightWristPQ src/Dodge/Creature/HandPos.hs 57;" f
rlPosDir src/Dodge/RoomLink.hs 113;" f rlPosDir src/Dodge/RoomLink.hs 112;" f
rlauncherPic src/Dodge/Item/Draw/SPic.hs 412;" f rlauncherPic src/Dodge/Item/Draw/SPic.hs 412;" f
rmInLinks src/Dodge/RoomLink.hs 157;" f rmInLinks src/Dodge/RoomLink.hs 153;" f
rmInvItem src/Dodge/Inventory.hs 73;" f rmInvItem src/Dodge/Inventory.hs 73;" f
rmLinksOfType src/Dodge/RoomLink.hs 154;" f rmLinksOfType src/Dodge/RoomLink.hs 150;" f
rmOutLinks src/Dodge/RoomLink.hs 157;" f rmOutLinks src/Dodge/RoomLink.hs 153;" f
roomC src/Dodge/Room/Room.hs 40;" f roomC src/Dodge/Room/Room.hs 40;" f
roomCCrits src/Dodge/Room/Room.hs 271;" f roomCCrits src/Dodge/Room/Room.hs 271;" f
roomCenterPillar src/Dodge/Room/Room.hs 126;" f roomCenterPillar src/Dodge/Room/Room.hs 126;" f
@@ -4928,7 +4926,7 @@ sensorReqToString src/Dodge/Machine/Update.hs 196;" f
sensorRoom src/Dodge/Room/SensorDoor.hs 26;" f sensorRoom src/Dodge/Room/SensorDoor.hs 26;" f
sensorRoomRunPast src/Dodge/Room/SensorDoor.hs 46;" f sensorRoomRunPast src/Dodge/Room/SensorDoor.hs 46;" f
sensorSPic src/Dodge/Machine/Draw.hs 81;" f sensorSPic src/Dodge/Machine/Draw.hs 81;" f
sensorTut src/Dodge/Room/Tutorial.hs 332;" f sensorTut src/Dodge/Room/Tutorial.hs 319;" f
sensorTypeDamages src/Dodge/Machine/Update.hs 233;" f sensorTypeDamages src/Dodge/Machine/Update.hs 233;" f
sentinelAI src/Dodge/Creature/SentinelAI.hs 20;" f sentinelAI src/Dodge/Creature/SentinelAI.hs 20;" f
sentinelExtraWatchUpdate src/Dodge/Creature/SentinelAI.hs 83;" f sentinelExtraWatchUpdate src/Dodge/Creature/SentinelAI.hs 83;" f
@@ -4940,21 +4938,21 @@ setClusterID src/Dodge/Combine/Graph.hs 116;" f
setDepth src/Picture/Base.hs 128;" f setDepth src/Picture/Base.hs 128;" f
setDirPS src/Dodge/PlacementSpot.hs 50;" f setDirPS src/Dodge/PlacementSpot.hs 50;" f
setFallback src/Dodge/PlacementSpot.hs 132;" f setFallback src/Dodge/PlacementSpot.hs 132;" f
setInLinks src/Dodge/RoomLink.hs 54;" f setInLinks src/Dodge/RoomLink.hs 53;" f
setInLinksByType src/Dodge/RoomLink.hs 73;" f setInLinksByType src/Dodge/RoomLink.hs 72;" f
setInLinksPD src/Dodge/RoomLink.hs 93;" f setInLinksPD src/Dodge/RoomLink.hs 92;" f
setInvPosFromSS src/Dodge/Inventory/Location.hs 92;" f setInvPosFromSS src/Dodge/Inventory/Location.hs 92;" f
setLayer src/Picture/Base.hs 139;" f setLayer src/Picture/Base.hs 139;" f
setLinkType src/Dodge/RoomLink.hs 79;" f setLinkType src/Dodge/RoomLink.hs 78;" f
setLinkTypePD src/Dodge/RoomLink.hs 86;" f setLinkTypePD src/Dodge/RoomLink.hs 85;" f
setMusicVolume src/Sound.hs 162;" f setMusicVolume src/Sound.hs 162;" f
setMvPos src/Dodge/Creature/ReaderUpdate.hs 53;" f setMvPos src/Dodge/Creature/ReaderUpdate.hs 53;" f
setOldPos src/Dodge/Update.hs 486;" f setOldPos src/Dodge/Update.hs 486;" f
setOutLinks src/Dodge/RoomLink.hs 51;" f setOutLinks src/Dodge/RoomLink.hs 50;" f
setOutLinksByType src/Dodge/RoomLink.hs 76;" f setOutLinksByType src/Dodge/RoomLink.hs 75;" f
setOutLinksPD src/Dodge/RoomLink.hs 96;" f setOutLinksPD src/Dodge/RoomLink.hs 95;" f
setRBCreatureTargeting src/Dodge/Creature/State.hs 288;" f setRBCreatureTargeting src/Dodge/Creature/State.hs 288;" f
setRoomInt src/Dodge/Room/Tutorial.hs 73;" f setRoomInt src/Dodge/Room/Tutorial.hs 60;" f
setSelWhileDragging src/Dodge/Update/Input/InGame.hs 337;" f setSelWhileDragging src/Dodge/Update/Input/InGame.hs 337;" f
setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 87;" f setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 87;" f
setShaderSource src/Shader/Compile.hs 290;" f setShaderSource src/Shader/Compile.hs 290;" f
@@ -4964,7 +4962,7 @@ setTargetMv src/Dodge/Creature/ReaderUpdate.hs 76;" f
setTile src/Dodge/Layout.hs 66;" f setTile src/Dodge/Layout.hs 66;" f
setTiles src/Dodge/Layout.hs 63;" f setTiles src/Dodge/Layout.hs 63;" f
setToggle src/Dodge/Prop/Update.hs 44;" f setToggle src/Dodge/Prop/Update.hs 44;" f
setTreeInts src/Dodge/Room/Tutorial.hs 80;" f setTreeInts src/Dodge/Room/Tutorial.hs 67;" f
setViewDistance src/Dodge/Update/Camera.hs 236;" f setViewDistance src/Dodge/Update/Camera.hs 236;" f
setViewPos src/Dodge/Creature/ReaderUpdate.hs 63;" f setViewPos src/Dodge/Creature/ReaderUpdate.hs 63;" f
setViewport src/Dodge/Render.hs 440;" f setViewport src/Dodge/Render.hs 440;" f
@@ -5197,7 +5195,7 @@ subInvX src/Dodge/ListDisplayParams.hs 46;" f
subMap src/TreeHelp.hs 119;" f subMap src/TreeHelp.hs 119;" f
subZipWith src/Dodge/Placement/Instance/Wall.hs 115;" f subZipWith src/Dodge/Placement/Instance/Wall.hs 115;" f
swapAnyExtraSelection src/Dodge/Inventory/Swap.hs 56;" f swapAnyExtraSelection src/Dodge/Inventory/Swap.hs 56;" f
swapInOutLinks src/Dodge/RoomLink.hs 99;" f swapInOutLinks src/Dodge/RoomLink.hs 98;" f
swapIndices src/ListHelp.hs 50;" f swapIndices src/ListHelp.hs 50;" f
swapInvItems src/Dodge/Inventory/Swap.hs 21;" f swapInvItems src/Dodge/Inventory/Swap.hs 21;" f
swapItemWith src/Dodge/Inventory.hs 163;" f swapItemWith src/Dodge/Inventory.hs 163;" f
@@ -5249,7 +5247,7 @@ terminalWheelEvent src/Dodge/Update/Scroll.hs 131;" f
teslaGun src/Dodge/Item/Held/BatteryGuns.hs 19;" f teslaGun src/Dodge/Item/Held/BatteryGuns.hs 19;" f
teslaGunPic src/Dodge/Item/Draw/SPic.hs 424;" f teslaGunPic src/Dodge/Item/Draw/SPic.hs 424;" f
teslaParams src/Dodge/Item/Held/BatteryGuns.hs 25;" f teslaParams src/Dodge/Item/Held/BatteryGuns.hs 25;" f
testCrossWalls src/Dodge/Room/Path.hs 47;" f testCrossWalls src/Dodge/Room/Path.hs 48;" f
testEvent src/Dodge/Event/Test.hs 9;" f testEvent src/Dodge/Event/Test.hs 9;" f
testInventory src/Dodge/Creature.hs 292;" f testInventory src/Dodge/Creature.hs 292;" f
testStringInit src/Dodge/TestString.hs 33;" f testStringInit src/Dodge/TestString.hs 33;" f
@@ -5267,7 +5265,7 @@ tflat2 src/Picture/Data.hs 60;" f
tflat3 src/Picture/Data.hs 64;" f tflat3 src/Picture/Data.hs 64;" f
tflat4 src/Picture/Data.hs 68;" f tflat4 src/Picture/Data.hs 68;" f
theCleanup appDodge/Main.hs 75;" f theCleanup appDodge/Main.hs 75;" f
theColumns src/Dodge/Tree/Shift.hs 139;" f theColumns src/Dodge/Tree/Shift.hs 146;" f
theUpdateStep appDodge/Main.hs 107;" f theUpdateStep appDodge/Main.hs 107;" f
thickArc src/Picture/Base.hs 298;" f thickArc src/Picture/Base.hs 298;" f
thickCircle src/Picture/Base.hs 272;" f thickCircle src/Picture/Base.hs 272;" f
@@ -5300,7 +5298,7 @@ tlDoEffect src/Dodge/Terminal.hs 102;" f
tlSetStatus src/Dodge/Terminal.hs 99;" f tlSetStatus src/Dodge/Terminal.hs 99;" f
tmUpdate src/Dodge/Update.hs 470;" f tmUpdate src/Dodge/Update.hs 470;" f
toBinary src/Dodge/Inventory/SelectionList.hs 141;" f toBinary src/Dodge/Inventory/SelectionList.hs 141;" f
toBothLnk src/Dodge/RoomLink.hs 140;" f toBothLnk src/Dodge/RoomLink.hs 136;" f
toClosestMultiple src/HelpNum.hs 3;" f toClosestMultiple src/HelpNum.hs 3;" f
toColor8 src/Color.hs 148;" f toColor8 src/Color.hs 148;" f
toFloatVAs src/Shader/Compile.hs 211;" f toFloatVAs src/Shader/Compile.hs 211;" f
@@ -5399,13 +5397,13 @@ tryUseParent src/Dodge/Creature/State.hs 144;" f
turnTo src/Dodge/Movement/Turn.hs 8;" f turnTo src/Dodge/Movement/Turn.hs 8;" f
turret src/Dodge/Placement/Instance/Turret.hs 37;" f turret src/Dodge/Placement/Instance/Turret.hs 37;" f
turretItemOffset src/Dodge/Item/HeldOffset.hs 21;" f turretItemOffset src/Dodge/Item/HeldOffset.hs 21;" f
tutAnoTree src/Dodge/Room/Tutorial.hs 51;" f tutAnoTree src/Dodge/Room/Tutorial.hs 40;" f
tutDrop src/Dodge/Room/Tutorial.hs 85;" f tutDrop src/Dodge/Room/Tutorial.hs 72;" f
tutHub src/Dodge/Room/Tutorial.hs 231;" f tutHub src/Dodge/Room/Tutorial.hs 218;" f
tutLight src/Dodge/Room/Tutorial.hs 209;" f tutLight src/Dodge/Room/Tutorial.hs 196;" f
tutRezBox src/Dodge/Room/Tutorial.hs 343;" f tutRezBox src/Dodge/Room/Tutorial.hs 330;" f
tutRoomTree src/Dodge/Floor.hs 21;" f tutRoomTree src/Dodge/Floor.hs 21;" f
tutorialMessage1 src/Dodge/Room/Tutorial.hs 367;" f tutorialMessage1 src/Dodge/Room/Tutorial.hs 354;" f
tweenAngles src/Geometry/Vector.hs 195;" f tweenAngles src/Geometry/Vector.hs 195;" f
twinSlowDoorChasers src/Dodge/Room/LongDoor.hs 81;" f twinSlowDoorChasers src/Dodge/Room/LongDoor.hs 81;" f
twinSlowDoorRoom src/Dodge/Room/LongDoor.hs 29;" f twinSlowDoorRoom src/Dodge/Room/LongDoor.hs 29;" f
@@ -5691,7 +5689,7 @@ wordsBy src/ListHelp.hs 116;" f
worldPosToScreen src/Dodge/Base/Coordinate.hs 18;" f worldPosToScreen src/Dodge/Base/Coordinate.hs 18;" f
worldSPic src/Dodge/Render/ShapePicture.hs 22;" f worldSPic src/Dodge/Render/ShapePicture.hs 22;" f
worldToGenWorld src/Dodge/LevelGen/LevelStructure.hs 14;" f worldToGenWorld src/Dodge/LevelGen/LevelStructure.hs 14;" f
wpAdd src/Dodge/Room/RezBox.hs 147;" f wpAdd src/Dodge/Room/RezBox.hs 148;" f
wrench1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 546;" f wrench1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 546;" f
wristArmour src/Dodge/Item/Equipment.hs 43;" f wristArmour src/Dodge/Item/Equipment.hs 43;" f
wristInvisibility src/Dodge/Item/Equipment.hs 96;" f wristInvisibility src/Dodge/Item/Equipment.hs 96;" f
@@ -5716,13 +5714,13 @@ yourInv src/Dodge/Base/You.hs 28;" f
yourRootItem src/Dodge/Base/You.hs 22;" f yourRootItem src/Dodge/Base/You.hs 22;" f
yourSelectedItem src/Dodge/Base/You.hs 16;" f yourSelectedItem src/Dodge/Base/You.hs 16;" f
yourStatsInfo src/Dodge/Creature/Info.hs 27;" f yourStatsInfo src/Dodge/Creature/Info.hs 27;" f
zChasm src/Dodge/Room/Tutorial.hs 139;" f zChasm src/Dodge/Room/Tutorial.hs 126;" f
zConnect src/Dodge/Render/Connectors.hs 17;" f zConnect src/Dodge/Render/Connectors.hs 17;" f
zConnectCol src/Dodge/Render/Connectors.hs 28;" f zConnectCol src/Dodge/Render/Connectors.hs 28;" f
zConnectColMidX src/Dodge/Render/Connectors.hs 31;" f zConnectColMidX src/Dodge/Render/Connectors.hs 31;" f
zeroZ src/Geometry/Vector.hs 8;" f zeroZ src/Geometry/Vector.hs 8;" f
zipArcs src/Dodge/Tesla.hs 52;" f zipArcs src/Dodge/Tesla.hs 52;" f
zipCount src/Dodge/Tree/Shift.hs 129;" f zipCount src/Dodge/Tree/Shift.hs 136;" f
zipCountDown src/Dodge/Room/Procedural.hs 120;" f zipCountDown src/Dodge/Room/Procedural.hs 120;" f
zoneCloud src/Dodge/Zoning/Cloud.hs 27;" f zoneCloud src/Dodge/Zoning/Cloud.hs 27;" f
zoneClouds src/Dodge/Update.hs 460;" f zoneClouds src/Dodge/Update.hs 460;" f