Add intersection with cylinders

This commit is contained in:
2025-10-10 11:21:40 +01:00
parent 3ea14a4646
commit e00bb0b26e
6 changed files with 256 additions and 200 deletions
+1 -1
View File
@@ -1 +1 @@
8840982665868093329 3392801227273840162
+17 -12
View File
@@ -152,23 +152,28 @@ collide3Wall sp wl (ep, mo) = maybe (ep, mo) (,Just (n, OWall wl)) $ intersectSe
collide3Creature :: Point3 -> Creature -> (Point3, MPO) -> (Point3, MPO) collide3Creature :: Point3 -> Creature -> (Point3, MPO) -> (Point3, MPO)
collide3Creature sp cr (ep, m) = fromMaybe (ep, m) $ do collide3Creature sp cr (ep, m) = fromMaybe (ep, m) $ do
(sp', ep') <- restrictSeg 0 (V3 0 0 1) (sp, ep) -- (sp', ep') <- restrictSeg 0 (V3 0 0 1) (sp, ep)
>>= restrictSeg (V3 0 0 25) (V3 0 0 (-1)) -- >>= restrictSeg (V3 0 0 25) (V3 0 0 (-1))
(zmin,zmax) <- crZBounds cr h <- crHeight cr
p <- listToMaybe $ intersectCircSeg cpos (crRad $ cr ^. crType) (xyV3 sp') (xyV3 ep') (p,n) <- fst $ intersectCylSeg
let z = 0 (addZ (cr ^. crZ) cpos)
return (p `v2z` z, Just (normalize $ (p - cpos) `v2z` 0, OCreature cr)) (crRad $ cr ^. crType)
h
sp
ep
return (p, Just (n,OCreature cr))
-- p <- listToMaybe $ intersectCircSeg cpos (crRad $ cr ^. crType) (xyV3 sp') (xyV3 ep')
-- let z = 0
-- return (p `v2z` z, Just (normalize $ (p - cpos) `v2z` 0, OCreature cr))
where where
cpos = cr ^. crPos cpos = cr ^. crPos
crZBounds :: Creature -> Maybe (Float,Float) crHeight :: Creature -> Maybe Float
crZBounds cr = f <$> case cr ^. crHP of crHeight cr = case cr ^. crHP of
HP {} -> Just (0,25) HP {} -> Just 25
CrIsCorpse {} -> Just (0,5) CrIsCorpse {} -> Just 5
CrIsGibs -> Nothing CrIsGibs -> Nothing
CrIsPitted -> Nothing CrIsPitted -> Nothing
where
f (a,b) = (a + cr ^. crZ,b + cr ^. crZ)
restrictSeg :: Point3 -> Point3 -> (Point3, Point3) -> Maybe (Point3, Point3) restrictSeg :: Point3 -> Point3 -> (Point3, Point3) -> Maybe (Point3, Point3)
restrictSeg p n (sp, ep) restrictSeg p n (sp, ep)
-3
View File
@@ -32,7 +32,6 @@ import Geometry.Triangulate
import Geometry.Vector import Geometry.Vector
import Geometry.Vector3D import Geometry.Vector3D
import ListHelp import ListHelp
import Linear.Metric
{- | Return a point a distance away from a first point towards a second point. {- | Return a point a distance away from a first point towards a second point.
Does not go past the second point. Does not go past the second point.
@@ -137,8 +136,6 @@ difference x y
reflectIn :: Point2 -> Point2 -> Point2 reflectIn :: Point2 -> Point2 -> Point2
reflectIn line vec = rotateV (2 * angleBetween line vec) vec reflectIn line vec = rotateV (2 * angleBetween line vec) vec
reflectInNormal :: Point3 -> Point3 -> Point3
reflectInNormal n v = v - (2 * project n v)
-- takes an angle of entry (measured from x axis) and two wall points and gives a -- takes an angle of entry (measured from x axis) and two wall points and gives a
-- reflected angle (from x axis) -- reflected angle (from x axis)
+71 -27
View File
@@ -4,16 +4,16 @@
{- Testing for and finding intersection points. -} {- Testing for and finding intersection points. -}
module Geometry.Intersect where module Geometry.Intersect where
import Linear
import Control.Lens
import Control.Applicative import Control.Applicative
import Control.Lens
import Control.Monad
import Data.List import Data.List
import Data.Maybe import Data.Maybe
import Geometry.Data import Geometry.Data
import Geometry.LHS import Geometry.LHS
import Geometry.Vector import Geometry.Vector
import Geometry.Vector3D import Geometry.Vector3D
import Control.Monad import Linear
-- | If two lines intersect, return 'Just' that point. -- | If two lines intersect, return 'Just' that point.
intersectLineLine :: Point2 -> Point2 -> Point2 -> Point2 -> Maybe Point2 intersectLineLine :: Point2 -> Point2 -> Point2 -> Point2 -> Maybe Point2
@@ -25,11 +25,17 @@ intersectLineLine (V2 x1 y1) (V2 x2 y2) (V2 x3 y3) (V2 x4 y4)
den = (x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4) den = (x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4)
t' = (x1 - x3) * (y3 - y4) - (y1 - y3) * (x3 - x4) t' = (x1 - x3) * (y3 - y4) - (y1 - y3) * (x3 - x4)
-- note that the second argument is a vector, not the second point of the line ---- note that the second argument is a vector, not the second point of the line
intersectLinePlane :: Point3 -> Point3 -> Point3 -> Point3 -> Maybe Point3 --intersectLinePlane :: Point3 -> Point3 -> Point3 -> Point3 -> Maybe Point3
intersectLinePlane l v p n = case dot v n of --intersectLinePlane l v p n = case dot v n of
0 -> Nothing -- 0 -> Nothing
x -> Just $ l + (dot (p - l) n / x) *.*.* v -- x -> Just $ l + (dot (p - l) n / x) *.*.* v
intersectLinePlaneAlong :: Point3 -> Point3 -> Point3 -> Point3 -> Maybe Float
intersectLinePlaneAlong x y p n = do
let den = dot (y - x) n
guard $ den /= 0
return $ dot (p - x) n / den
-- this needs to be checked -- this needs to be checked
intersectSegPlane :: Point3 -> Point3 -> Point3 -> Point3 -> Maybe Point3 intersectSegPlane :: Point3 -> Point3 -> Point3 -> Point3 -> Maybe Point3
@@ -41,11 +47,16 @@ intersectSegPlane sp ep p n = case dot v n of
where where
v = ep - sp v = ep - sp
intersectSegSurface :: Point3 -> Point3 -> Point3 -> Point3 intersectSegSurface ::
-> [(Point3,Point3)] -> Maybe Point3 Point3 ->
Point3 ->
Point3 ->
Point3 ->
[(Point3, Point3)] ->
Maybe Point3
intersectSegSurface sp ep p n ss = do intersectSegSurface sp ep p n ss = do
xp <- intersectSegPlane sp ep p n xp <- intersectSegPlane sp ep p n
let f (a,b) = isNHS a b xp let f (a, b) = isNHS a b xp
guard $ all f ss guard $ all f ss
return xp return xp
@@ -117,9 +128,10 @@ intersectSegLineext (V2 x1 y1) (V2 x2 y2) (V2 x3 y3) (V2 x4 y4)
t' = (x1 - x3) * (y3 - y4) - (y1 - y3) * (x3 - x4) t' = (x1 - x3) * (y3 - y4) - (y1 - y3) * (x3 - x4)
u' = (y1 - y2) * (x1 - x3) - (x1 - x2) * (y1 - y3) u' = (y1 - y2) * (x1 - x3) - (x1 - x2) * (y1 - y3)
-- | Intersect a segment with a line. {- | Intersect a segment with a line.
-- the line intersects with the first endpoint of the segment the line intersects with the first endpoint of the segment
-- but NOT the second but NOT the second
-}
intersectSegLine :: Point2 -> Point2 -> Point2 -> Point2 -> Maybe Point2 intersectSegLine :: Point2 -> Point2 -> Point2 -> Point2 -> Maybe Point2
{-# INLINE intersectSegLine #-} {-# INLINE intersectSegLine #-}
intersectSegLine (V2 x1 y1) (V2 x2 y2) (V2 x3 y3) (V2 x4 y4) intersectSegLine (V2 x1 y1) (V2 x2 y2) (V2 x3 y3) (V2 x4 y4)
@@ -220,8 +232,8 @@ myIntersectLineLine a@(V2 ax _) b c@(V2 cx _) d
Just 0 -> Nothing Just 0 -> Nothing
_ -> liftA2 V2 newx ((linGrad a b ^*^ newx) ^+^ axisInt a b) _ -> liftA2 V2 newx ((linGrad a b ^*^ newx) ^+^ axisInt a b)
where where
-- (^-^) = liftA2 (-) -- (^-^) = liftA2 (-)
-- (^+^) = liftA2 (+) -- (^+^) = liftA2 (+)
(^/^) = liftA2 (/) (^/^) = liftA2 (/)
(^*^) = liftA2 (*) (^*^) = liftA2 (*)
newx = (axisInt c d ^-^ axisInt a b) ^/^ (linGrad a b ^-^ linGrad c d) newx = (axisInt c d ^-^ axisInt a b) ^/^ (linGrad a b ^-^ linGrad c d)
@@ -345,7 +357,7 @@ intersectCircSeg c r a b
where where
d = closestPointOnLine a b c d = closestPointOnLine a b c
x = dist d c x = dist d c
y = r ^ (2::Int) - x ^ (2::Int) y = r ^ (2 :: Int) - x ^ (2 :: Int)
z = sqrt y z = sqrt y
v = z *.* normalizeV (b -.- a) v = z *.* normalizeV (b -.- a)
@@ -353,20 +365,52 @@ intersectCircLineAlong :: Point2 -> Float -> Point2 -> Point2 -> Maybe (Float, F
intersectCircLineAlong p r x y = do intersectCircLineAlong p r x y = do
let d = y - x let d = y - x
f = p - x f = p - x
dis = (dot d f / dot d d) ** 2 + (dot f f - r ** 2)/dot d d dsc = (dot d f / dot d d) ** 2 - (dot f f - r ** 2) / dot d d
guard $ dis > 0 guard $ dsc > 0
let a = dot d f / dot d d let a = dot d f / dot d d
return (a - dis, a + dis) return (a - sqrt dsc, a + sqrt dsc)
intersectCylSeg :: Point3 -> Float -> Float -> Point3 -> Point3 -> Maybe (Point3, Point3) intersectCircLine :: Point2 -> Float -> Point2 -> Point2 -> Maybe (Point2, Point2)
intersectCylSeg p r h x y = do intersectCircLine c r x y =
(a,b) <- intersectCircLineAlong (p ^. _xy) r (x ^. _xy) (y ^. _xy) intersectCircLineAlong c r x y
Nothing & _Just . _1 %~ f
& _Just . _2 %~ f
where
f :: Float -> Point2
f a = x + (a *.* (y - x))
intersectCylSeg ::
Point3 ->
Float ->
Float ->
Point3 ->
Point3 ->
(Maybe (Point3, Point3), Maybe (Point3, Point3))
intersectCylSeg p r h s e = fromMaybe (Nothing, Nothing) $ do
(a, b) <- intersectCircLineAlong (p ^. _xy) r (s ^. _xy) (e ^. _xy)
return (f min a, f max b)
where
mtopx = intersectLinePlaneAlong s e (V3 0 0 h) (V3 0 0 1)
mbotx = intersectLinePlaneAlong s e (V3 0 0 0) (V3 0 0 1)
v = e - s
f mm a = do
let x = s + a *.*.* v
if x ^. _z < (h + p ^. _z) && x ^. _z > (p ^. _z)
then return (x, v & _xy %~ reflectInNormal (x ^. _xy - p ^. _xy))
else do
topx <- mtopx
botx <- mbotx
let d = mm topx botx
guard $ d > 0 && d < 1
let int = s + d *.*.* v
guard $ dist (int ^. _xy) (p ^. _xy) <= r
return (int, reflectInNormal (V3 0 0 1) v)
intersectCircSegTest :: Point2 -> Float -> Point2 -> Point2 -> Bool intersectCircSegTest :: Point2 -> Float -> Point2 -> Point2 -> Bool
intersectCircSegTest c r x y = intersectSegSegTest (c + z) (c - z) x y intersectCircSegTest c r x y =
|| dist c x <= r intersectSegSegTest (c + z) (c - z) x y
|| dist c y <= r || dist c x <= r
|| dist c y <= r
where where
z = r *.* vNormal (normalizeV x - y) z = r *.* vNormal (normalizeV x - y)
+5
View File
@@ -2,6 +2,7 @@
module Geometry.Vector where module Geometry.Vector where
import Linear
import Geometry.Data import Geometry.Data
-- | Moves from two to three dimensions, adding zero in z direction. -- | Moves from two to three dimensions, adding zero in z direction.
@@ -218,3 +219,7 @@ xyzV4 (V4 x y z _) = V3 x y z
xyV3 :: V3 a -> V2 a xyV3 :: V3 a -> V2 a
{-# INLINE xyV3 #-} {-# INLINE xyV3 #-}
xyV3 (V3 x y _) = V2 x y xyV3 (V3 x y _) = V2 x y
reflectInNormal :: (Metric v,Fractional a,Num (v a)) => v a -> v a -> v a
{-# INLINE reflectInNormal #-}
reflectInNormal n v = v - (2 * project n v)
+162 -157
View File
@@ -1,12 +1,12 @@
!_TAG_FILE_SORTED 1 // !_TAG_FILE_SORTED 1 //
!? src/ListHelp.hs 59;" o !? src/ListHelp.hs 59;" o
*.* src/Geometry/Vector.hs 35;" o *.* src/Geometry/Vector.hs 36;" o
*.*.* src/Geometry/Vector3D.hs 32;" o *.*.* src/Geometry/Vector3D.hs 32;" o
++.~ src/LensHelp.hs 37;" o ++.~ src/LensHelp.hs 37;" o
+.+ src/Geometry/Vector.hs 17;" o +.+ src/Geometry/Vector.hs 18;" o
+.+.+ src/Geometry/Vector3D.hs 14;" o +.+.+ src/Geometry/Vector3D.hs 14;" o
+.+.~ src/LensHelp.hs 28;" o +.+.~ src/LensHelp.hs 28;" o
-.- src/Geometry/Vector.hs 26;" o -.- src/Geometry/Vector.hs 27;" o
-.-.- src/Geometry/Vector3D.hs 23;" o -.-.- src/Geometry/Vector3D.hs 23;" o
.*.*~ src/LensHelp.hs 18;" o .*.*~ src/LensHelp.hs 18;" o
.++~ src/LensHelp.hs 33;" o .++~ src/LensHelp.hs 33;" o
@@ -2613,8 +2613,8 @@ airlockDoor src/Dodge/Room/Airlock.hs 93;" f
airlockDoubleDoor src/Dodge/Room/Airlock.hs 96;" f airlockDoubleDoor src/Dodge/Room/Airlock.hs 96;" f
airlockSimple src/Dodge/Room/Airlock.hs 108;" f airlockSimple src/Dodge/Room/Airlock.hs 108;" f
airlockZ src/Dodge/Room/Airlock.hs 133;" f airlockZ src/Dodge/Room/Airlock.hs 133;" f
allVisibleWalls src/Dodge/Base/Collide.hs 215;" f allVisibleWalls src/Dodge/Base/Collide.hs 226;" f
alongSegBy src/Geometry.hs 41;" f alongSegBy src/Geometry.hs 40;" f
alteRifle src/Dodge/Item/Held/Cane.hs 22;" f alteRifle src/Dodge/Item/Held/Cane.hs 22;" f
ammoMagInfo src/Dodge/Item/Info.hs 49;" f ammoMagInfo src/Dodge/Item/Info.hs 49;" f
ammoMagSPic src/Dodge/Item/Draw/SPic.hs 128;" f ammoMagSPic src/Dodge/Item/Draw/SPic.hs 128;" f
@@ -2627,15 +2627,15 @@ analyserByNthLink src/Dodge/Room/LasTurret.hs 84;" f
analyserByNthLinkWithPrompt src/Dodge/Room/LasTurret.hs 99;" f analyserByNthLinkWithPrompt src/Dodge/Room/LasTurret.hs 99;" f
analyserWithPrompt src/Dodge/Placement/Instance/Analyser.hs 15;" f analyserWithPrompt src/Dodge/Placement/Instance/Analyser.hs 15;" f
andOrRegex src/Dodge/DisplayInventory.hs 78;" f andOrRegex src/Dodge/DisplayInventory.hs 78;" f
angleBetween src/Geometry.hs 161;" f angleBetween src/Geometry.hs 158;" f
angleVV src/Geometry/Vector.hs 57;" f angleVV src/Geometry/Vector.hs 58;" f
angleVV3 src/Geometry/Vector3D.hs 122;" f angleVV3 src/Geometry/Vector3D.hs 122;" f
anyUnusedSpot src/Dodge/PlacementSpot.hs 66;" f anyUnusedSpot src/Dodge/PlacementSpot.hs 66;" f
anythingHitCirc src/Dodge/Base/Collide.hs 338;" f anythingHitCirc src/Dodge/Base/Collide.hs 349;" f
applyCME src/Dodge/HeldUse.hs 361;" f applyCME src/Dodge/HeldUse.hs 361;" f
applyCreatureDamage src/Dodge/Creature/Damage.hs 13;" f applyCreatureDamage src/Dodge/Creature/Damage.hs 13;" f
applyEventIO src/Loop.hs 89;" f applyEventIO src/Loop.hs 89;" f
applyGravityPU src/Dodge/Projectile/Update.hs 42;" f applyGravityPU src/Dodge/Projectile/Update.hs 41;" f
applyIndividualDamage src/Dodge/Creature/Damage.hs 16;" f applyIndividualDamage src/Dodge/Creature/Damage.hs 16;" f
applyInvLock src/Dodge/HeldUse.hs 420;" f applyInvLock src/Dodge/HeldUse.hs 420;" f
applyMagnetsToBul src/Dodge/Bullet.hs 31;" f applyMagnetsToBul src/Dodge/Bullet.hs 31;" f
@@ -2662,11 +2662,11 @@ arc src/Picture/Base.hs 287;" f
arcFull src/Picture/Arc.hs 11;" f arcFull src/Picture/Arc.hs 11;" f
arcPart src/Picture/Arc.hs 24;" f arcPart src/Picture/Arc.hs 24;" f
arcSolid src/Picture/Base.hs 276;" f arcSolid src/Picture/Base.hs 276;" f
arcStepwise src/Geometry.hs 329;" f arcStepwise src/Geometry.hs 326;" f
arcStepwisePositive src/Geometry.hs 343;" f arcStepwisePositive src/Geometry.hs 340;" f
arcTest src/Picture/Test.hs 9;" f arcTest src/Picture/Test.hs 9;" f
arcTest' src/Picture/Test.hs 21;" f arcTest' src/Picture/Test.hs 21;" f
argV src/Geometry/Vector.hs 80;" f argV src/Geometry/Vector.hs 81;" f
armourChaseCrit src/Dodge/Creature/ArmourChase.hs 35;" f armourChaseCrit src/Dodge/Creature/ArmourChase.hs 35;" f
armouredChasers src/Dodge/Room/Boss.hs 64;" f armouredChasers src/Dodge/Room/Boss.hs 64;" f
armouredCorridor src/Dodge/Room/RoadBlock.hs 20;" f armouredCorridor src/Dodge/Room/RoadBlock.hs 20;" f
@@ -2696,7 +2696,7 @@ autoGunS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 694;" f
autoPistol src/Dodge/Item/Held/Stick.hs 49;" f autoPistol src/Dodge/Item/Held/Stick.hs 49;" f
autoRifle src/Dodge/Item/Held/Cane.hs 27;" f autoRifle src/Dodge/Item/Held/Cane.hs 27;" f
awakeLevelPerception src/Dodge/Creature/Perception.hs 163;" f awakeLevelPerception src/Dodge/Creature/Perception.hs 163;" f
axisInt src/Geometry/Intersect.hs 262;" f axisInt src/Geometry/Intersect.hs 275;" f
azure src/Color.hs 22;" f azure src/Color.hs 22;" f
bQuadToF src/Geometry/Bezier.hs 37;" f bQuadToF src/Geometry/Bezier.hs 37;" f
bQuadToLine src/Geometry/Bezier.hs 30;" f bQuadToLine src/Geometry/Bezier.hs 30;" f
@@ -2814,8 +2814,8 @@ 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
calcTexCoord src/Tile.hs 19;" f calcTexCoord src/Tile.hs 19;" f
canSee src/Dodge/Base/Collide.hs 324;" f canSee src/Dodge/Base/Collide.hs 335;" f
canSeeIndirect src/Dodge/Base/Collide.hs 331;" f canSeeIndirect src/Dodge/Base/Collide.hs 342;" f
cancelExamineInventory src/Dodge/Item/BackgroundEffect.hs 22;" f cancelExamineInventory src/Dodge/Item/BackgroundEffect.hs 22;" f
capacitor src/Dodge/Item/Ammo.hs 69;" f capacitor src/Dodge/Item/Ammo.hs 69;" f
cardEightVec src/Dodge/Base/CardinalPoint.hs 17;" f cardEightVec src/Dodge/Base/CardinalPoint.hs 17;" f
@@ -2831,7 +2831,7 @@ centerVaultRoom src/Dodge/Room/Procedural.hs 291;" f
centroid src/Geometry/Polygon.hs 167;" f centroid src/Geometry/Polygon.hs 167;" f
centroidNum src/Geometry/Polygon.hs 170;" f centroidNum src/Geometry/Polygon.hs 170;" f
chainCreatureUpdates src/Dodge/Creature/ChainUpdates.hs 6;" f chainCreatureUpdates src/Dodge/Creature/ChainUpdates.hs 6;" f
chainPairs src/Geometry.hs 363;" f chainPairs src/Geometry.hs 360;" f
changeSwapOther src/Dodge/Inventory.hs 140;" f changeSwapOther src/Dodge/Inventory.hs 140;" f
changeSwapSel src/Dodge/Inventory.hs 133;" f changeSwapSel src/Dodge/Inventory.hs 133;" f
changeSwapWith src/Dodge/Inventory.hs 174;" f changeSwapWith src/Dodge/Inventory.hs 174;" f
@@ -2870,12 +2870,12 @@ chooseMovementLtAuto src/Dodge/CreatureEffect.hs 105;" f
chooseMovementPistol src/Dodge/Humanoid.hs 203;" f chooseMovementPistol src/Dodge/Humanoid.hs 203;" f
chooseMovementPistol' src/Dodge/Humanoid.hs 208;" f chooseMovementPistol' src/Dodge/Humanoid.hs 208;" f
chooseMovementSpreadGun src/Dodge/CreatureEffect.hs 88;" f chooseMovementSpreadGun src/Dodge/CreatureEffect.hs 88;" f
circHitWall src/Dodge/Base/Collide.hs 232;" f circHitWall src/Dodge/Base/Collide.hs 243;" f
circInPolygon src/Geometry/Polygon.hs 101;" f circInPolygon src/Geometry/Polygon.hs 101;" f
circOnAnyCr src/Dodge/Base/Collide.hs 287;" f circOnAnyCr src/Dodge/Base/Collide.hs 298;" f
circOnSeg src/Geometry.hs 102;" f circOnSeg src/Geometry.hs 101;" f
circOnSegNoEndpoints src/Geometry.hs 92;" f circOnSegNoEndpoints src/Geometry.hs 91;" f
circOnSomeWall src/Dodge/Base/Collide.hs 281;" f circOnSomeWall src/Dodge/Base/Collide.hs 292;" f
circle src/Picture/Base.hs 180;" f circle src/Picture/Base.hs 180;" f
circleDecoration src/Dodge/Placement/TopDecoration.hs 56;" f circleDecoration src/Dodge/Placement/TopDecoration.hs 56;" f
circleSolid src/Picture/Base.hs 164;" f circleSolid src/Picture/Base.hs 164;" f
@@ -2899,7 +2899,7 @@ cleatSide src/Dodge/Cleat.hs 27;" f
click1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 582;" f click1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 582;" f
clickGetCreature src/Dodge/Debug.hs 109;" f clickGetCreature src/Dodge/Debug.hs 109;" f
clicker src/Dodge/Item/Scope.hs 82;" f clicker src/Dodge/Item/Scope.hs 82;" f
clipV src/Geometry/Vector.hs 47;" f clipV src/Geometry/Vector.hs 48;" f
clipZoom src/Dodge/Update/Camera.hs 230;" f clipZoom src/Dodge/Update/Camera.hs 230;" f
clockCycle src/Dodge/Clock.hs 7;" f clockCycle src/Dodge/Clock.hs 7;" f
closeButtonToSelectionItem src/Dodge/Inventory/SelectionList.hs 223;" f closeButtonToSelectionItem src/Dodge/Inventory/SelectionList.hs 223;" f
@@ -2907,9 +2907,9 @@ closeItemToSelectionItem src/Dodge/Inventory/SelectionList.hs 208;" f
closeItemToTextPictures src/Dodge/Inventory/SelectionList.hs 243;" f closeItemToTextPictures src/Dodge/Inventory/SelectionList.hs 243;" f
closeObjectInfo src/Dodge/Render/HUD.hs 226;" f closeObjectInfo src/Dodge/Render/HUD.hs 226;" f
closestCreatureID src/Dodge/Debug.hs 118;" f closestCreatureID src/Dodge/Debug.hs 118;" f
closestPointOnLine src/Geometry/Intersect.hs 286;" f closestPointOnLine src/Geometry/Intersect.hs 299;" f
closestPointOnLineParam src/Geometry/Intersect.hs 302;" f closestPointOnLineParam src/Geometry/Intersect.hs 315;" f
closestPointOnSeg src/Geometry/Intersect.hs 317;" f closestPointOnSeg src/Geometry/Intersect.hs 330;" f
cloudEffect src/Dodge/Update.hs 779;" f cloudEffect src/Dodge/Update.hs 779;" f
cloudPoisonDamage src/Dodge/Update/Cloud.hs 10;" f cloudPoisonDamage src/Dodge/Update/Cloud.hs 10;" f
clsNearCirc src/Dodge/Zoning/Cloud.hs 18;" f clsNearCirc src/Dodge/Zoning/Cloud.hs 18;" f
@@ -2931,10 +2931,10 @@ collide3Floors src/Dodge/Base/Collide.hs 134;" f
collide3Wall src/Dodge/Base/Collide.hs 148;" f collide3Wall src/Dodge/Base/Collide.hs 148;" f
collide3Walls src/Dodge/Base/Collide.hs 128;" f collide3Walls src/Dodge/Base/Collide.hs 128;" f
collide3WallsFloor src/Dodge/Base/Collide.hs 90;" f collide3WallsFloor src/Dodge/Base/Collide.hs 90;" f
collideCircWalls src/Dodge/Base/Collide.hs 244;" f collideCircWalls src/Dodge/Base/Collide.hs 255;" f
collidePoint src/Dodge/Base/Collide.hs 54;" f collidePoint src/Dodge/Base/Collide.hs 54;" f
collidePointTestFilter src/Dodge/Base/Collide.hs 180;" f collidePointTestFilter src/Dodge/Base/Collide.hs 191;" f
collidePointWallsFilter src/Dodge/Base/Collide.hs 194;" f collidePointWallsFilter src/Dodge/Base/Collide.hs 205;" f
color src/Picture/Base.hs 108;" f color src/Picture/Base.hs 108;" f
colorLamp src/Dodge/Creature/Lamp.hs 10;" f colorLamp src/Dodge/Creature/Lamp.hs 10;" f
colorSH src/Shape.hs 237;" f colorSH src/Shape.hs 237;" f
@@ -2996,7 +2996,8 @@ crDisplayAwareness src/Dodge/Creature/Picture/Awareness.hs 38;" f
crDisplayVigilance src/Dodge/Creature/Picture/Awareness.hs 52;" f crDisplayVigilance src/Dodge/Creature/Picture/Awareness.hs 52;" f
crHasTarget src/Dodge/Creature/Test.hs 64;" f crHasTarget src/Dodge/Creature/Test.hs 64;" f
crHasTargetLOS src/Dodge/Creature/Test.hs 67;" f crHasTargetLOS src/Dodge/Creature/Test.hs 67;" f
crHit src/Dodge/WorldEvent/ThingsHit.hs 95;" f crHeight src/Dodge/Base/Collide.hs 164;" f
crHit src/Dodge/WorldEvent/ThingsHit.hs 112;" f
crIXsNearCirc src/Dodge/Zoning/Creature.hs 32;" f crIXsNearCirc src/Dodge/Zoning/Creature.hs 32;" f
crIXsNearPoint src/Dodge/Zoning/Creature.hs 14;" f crIXsNearPoint src/Dodge/Zoning/Creature.hs 14;" f
crInAimStance src/Dodge/Creature/Test.hs 90;" f crInAimStance src/Dodge/Creature/Test.hs 90;" f
@@ -3055,9 +3056,10 @@ critsRoom src/Dodge/Room/Room.hs 398;" f
crixsNearSeg src/Dodge/Zoning/Creature.hs 29;" f crixsNearSeg src/Dodge/Zoning/Creature.hs 29;" f
crossPic src/Dodge/Render/Label.hs 27;" f crossPic src/Dodge/Render/Label.hs 27;" f
crossProd src/Geometry/Vector3D.hs 41;" f crossProd src/Geometry/Vector3D.hs 41;" f
crossV src/Geometry/Vector.hs 178;" f crossV src/Geometry/Vector.hs 179;" f
crsHit src/Dodge/WorldEvent/ThingsHit.hs 60;" f crsHit src/Dodge/WorldEvent/ThingsHit.hs 60;" f
crsHitRadial src/Dodge/WorldEvent/ThingsHit.hs 130;" f crsHitRadial src/Dodge/WorldEvent/ThingsHit.hs 147;" f
crsHitZ src/Dodge/WorldEvent/ThingsHit.hs 71;" f
crsItmsUnused src/Dodge/Room/Containing.hs 45;" f crsItmsUnused src/Dodge/Room/Containing.hs 45;" f
crsNearCirc src/Dodge/Zoning/Creature.hs 35;" f crsNearCirc src/Dodge/Zoning/Creature.hs 35;" f
crsNearPoint src/Dodge/Zoning/Creature.hs 17;" f crsNearPoint src/Dodge/Zoning/Creature.hs 17;" f
@@ -3083,7 +3085,7 @@ cycleLT src/IntMapHelp.hs 96;" f
cycleOptions src/Dodge/Menu/Option.hs 75;" f cycleOptions src/Dodge/Menu/Option.hs 75;" f
cycleR src/DoubleStack.hs 32;" f cycleR src/DoubleStack.hs 32;" f
cylinderIndices src/Shader/Poke.hs 382;" f cylinderIndices src/Shader/Poke.hs 382;" f
cylinderOnSeg src/Geometry.hs 123;" f cylinderOnSeg src/Geometry.hs 122;" f
cylinderPoly src/Shape.hs 87;" f cylinderPoly src/Shape.hs 87;" f
cylinderRoundIndices src/Shader/Poke.hs 389;" f cylinderRoundIndices src/Shader/Poke.hs 389;" f
dShadCol src/Dodge/Render/List.hs 214;" f dShadCol src/Dodge/Render/List.hs 214;" f
@@ -3192,7 +3194,7 @@ defaultVision src/Dodge/Default/Creature.hs 85;" f
defaultWall src/Dodge/Default/Wall.hs 17;" f defaultWall src/Dodge/Default/Wall.hs 17;" f
defaultWindow src/Dodge/Default/Wall.hs 85;" f defaultWindow src/Dodge/Default/Wall.hs 85;" f
defaultWorld src/Dodge/Default/World.hs 31;" f defaultWorld src/Dodge/Default/World.hs 31;" f
degToRad src/Geometry/Vector.hs 117;" f degToRad src/Geometry/Vector.hs 118;" f
deleteIMInZone src/Dodge/Base.hs 70;" f deleteIMInZone src/Dodge/Base.hs 70;" f
deleteWall src/Dodge/Wall/Delete.hs 21;" f deleteWall src/Dodge/Wall/Delete.hs 21;" f
deleteWallFromZones src/Dodge/Wall/Zone.hs 23;" f deleteWallFromZones src/Dodge/Wall/Zone.hs 23;" f
@@ -3211,18 +3213,18 @@ destroyMatS src/Dodge/Material/Sound.hs 7;" f
destroyMcType src/Dodge/Machine/Destroy.hs 22;" f destroyMcType src/Dodge/Machine/Destroy.hs 22;" f
destroyMount src/Dodge/Block.hs 100;" f destroyMount src/Dodge/Block.hs 100;" f
destroyMounts src/Dodge/Block.hs 97;" f destroyMounts src/Dodge/Block.hs 97;" f
destroyProjectile src/Dodge/Projectile/Update.hs 160;" f destroyProjectile src/Dodge/Projectile/Update.hs 159;" f
detV src/Geometry/Vector.hs 93;" f detV src/Geometry/Vector.hs 94;" f
detector src/Dodge/Item/Held/Utility.hs 27;" f detector src/Dodge/Item/Held/Utility.hs 27;" f
detectorColor src/Dodge/Item/Draw/SPic.hs 453;" f detectorColor src/Dodge/Item/Draw/SPic.hs 453;" f
detectorInfo src/Dodge/Item/Info.hs 224;" f detectorInfo src/Dodge/Item/Info.hs 224;" f
determineProjectileTracking src/Dodge/HeldUse.hs 1228;" f determineProjectileTracking src/Dodge/HeldUse.hs 1228;" f
diagonalLinesRect src/Dodge/Room/Foreground.hs 52;" f diagonalLinesRect src/Dodge/Room/Foreground.hs 52;" f
did src/Dodge/Item/InvSize.hs 54;" f did src/Dodge/Item/InvSize.hs 54;" f
diffAngles src/Geometry.hs 208;" f diffAngles src/Geometry.hs 205;" f
difference src/Geometry.hs 128;" f difference src/Geometry.hs 127;" f
digitalLine src/Geometry.hs 288;" f digitalLine src/Geometry.hs 285;" f
digitalRect src/Geometry.hs 305;" f digitalRect src/Geometry.hs 302;" f
dim src/Color.hs 112;" f dim src/Color.hs 112;" f
dirtColor src/Dodge/Default/Wall.hs 81;" f dirtColor src/Dodge/Default/Wall.hs 81;" f
dirtPoly src/Dodge/Room/RoadBlock.hs 74;" f dirtPoly src/Dodge/Room/RoadBlock.hs 74;" f
@@ -3234,19 +3236,19 @@ displayFreeSlots src/Dodge/DisplayInventory.hs 192;" f
displayIndents src/Dodge/DisplayInventory.hs 110;" f displayIndents src/Dodge/DisplayInventory.hs 110;" f
displayPulse src/Dodge/Inventory/SelectionList.hs 179;" f displayPulse src/Dodge/Inventory/SelectionList.hs 179;" f
displayTerminalLineString src/Dodge/Update.hs 467;" f displayTerminalLineString src/Dodge/Update.hs 467;" f
dist src/Geometry/Vector.hs 190;" f dist src/Geometry/Vector.hs 191;" f
dist3 src/Geometry/Vector3D.hs 101;" f dist3 src/Geometry/Vector3D.hs 101;" f
divTo src/Geometry/Zone.hs 6;" f divTo src/Geometry/Zone.hs 6;" f
divideCircle src/Geometry.hs 324;" f divideCircle src/Geometry.hs 321;" f
divideDoorPane src/Dodge/Placement/Instance/Door.hs 59;" f divideDoorPane src/Dodge/Placement/Instance/Door.hs 59;" f
divideLine src/Geometry.hs 251;" f divideLine src/Geometry.hs 248;" f
divideLineExact src/Geometry.hs 279;" f divideLineExact src/Geometry.hs 276;" f
divideLineOddNumPoints src/Geometry.hs 264;" f divideLineOddNumPoints src/Geometry.hs 261;" f
dmType src/Dodge/Damage.hs 38;" f dmType src/Dodge/Damage.hs 38;" f
doAimTwist src/Dodge/Creature/YourControl.hs 153;" f doAimTwist src/Dodge/Creature/YourControl.hs 153;" f
doAnyEquipmentEffect src/Dodge/Creature/State.hs 140;" f doAnyEquipmentEffect src/Dodge/Creature/State.hs 140;" f
doBackspace src/Dodge/Update/Input/Text.hs 31;" f doBackspace src/Dodge/Update/Input/Text.hs 31;" f
doBarrelSpin src/Dodge/Projectile/Update.hs 212;" f doBarrelSpin src/Dodge/Projectile/Update.hs 211;" f
doBlBl src/Dodge/BlBl.hs 5;" f doBlBl src/Dodge/BlBl.hs 5;" f
doBlSh src/Dodge/Block/Draw.hs 14;" f doBlSh src/Dodge/Block/Draw.hs 14;" f
doBounce src/Dodge/Base/Collide.hs 66;" f doBounce src/Dodge/Base/Collide.hs 66;" f
@@ -3277,7 +3279,7 @@ doDrawing src/Dodge/Render.hs 34;" f
doDrawing' src/Dodge/Render.hs 45;" f doDrawing' src/Dodge/Render.hs 45;" f
doFloatFloat src/Dodge/FloatFunction.hs 5;" f doFloatFloat src/Dodge/FloatFunction.hs 5;" f
doGenFloat src/Dodge/HeldUse.hs 1184;" f doGenFloat src/Dodge/HeldUse.hs 1184;" f
doGravityPU src/Dodge/Projectile/Update.hs 36;" f doGravityPU src/Dodge/Projectile/Update.hs 35;" f
doHeldUseEffect src/Dodge/HeldUse.hs 343;" f doHeldUseEffect src/Dodge/HeldUse.hs 343;" f
doInPlacements src/Dodge/Layout.hs 82;" f doInPlacements src/Dodge/Layout.hs 82;" f
doIndividualPlacements src/Dodge/Layout.hs 96;" f doIndividualPlacements src/Dodge/Layout.hs 96;" f
@@ -3308,7 +3310,7 @@ doStrategyActions src/Dodge/Creature/ReaderUpdate.hs 166;" f
doTestDrawing src/Dodge/Render.hs 41;" f doTestDrawing src/Dodge/Render.hs 41;" f
doTextInputOver src/Dodge/Update/Input/Text.hs 15;" f doTextInputOver src/Dodge/Update/Input/Text.hs 15;" f
doTextInputOverUniverse src/Dodge/Update/Input/Text.hs 12;" f doTextInputOverUniverse src/Dodge/Update/Input/Text.hs 12;" f
doThrust src/Dodge/Projectile/Update.hs 182;" f doThrust src/Dodge/Projectile/Update.hs 181;" f
doTimeScroll src/Dodge/Update.hs 196;" f doTimeScroll src/Dodge/Update.hs 196;" f
doTmWdWd src/Dodge/WorldEffect.hs 89;" f doTmWdWd src/Dodge/WorldEffect.hs 89;" f
doWallRotate src/Dodge/Update/Camera.hs 220;" f doWallRotate src/Dodge/Update/Camera.hs 220;" f
@@ -3323,7 +3325,7 @@ door src/Dodge/Room/Door.hs 14;" f
doorBetween src/Dodge/Placement/Instance/Door.hs 39;" f doorBetween src/Dodge/Placement/Instance/Door.hs 39;" f
doorMechanism src/Dodge/DrWdWd.hs 24;" f doorMechanism src/Dodge/DrWdWd.hs 24;" f
doorMechanismStepwise src/Dodge/DrWdWd.hs 59;" f doorMechanismStepwise src/Dodge/DrWdWd.hs 59;" f
dotV src/Geometry/Vector.hs 75;" f dotV src/Geometry/Vector.hs 76;" f
dotV3 src/Geometry/Vector3D.hs 119;" f dotV3 src/Geometry/Vector3D.hs 119;" f
doubleCorridorBarrels src/Dodge/Room/Room.hs 276;" f doubleCorridorBarrels src/Dodge/Room/Room.hs 276;" f
doubleFindMax src/Dodge/Update/Scroll.hs 181;" f doubleFindMax src/Dodge/Update/Scroll.hs 181;" f
@@ -3331,10 +3333,10 @@ doubleFindMin src/Dodge/Update/Scroll.hs 160;" f
doubleFindPred src/Dodge/Update/Scroll.hs 188;" f doubleFindPred src/Dodge/Update/Scroll.hs 188;" f
doubleFindSucc src/Dodge/Update/Scroll.hs 167;" f doubleFindSucc src/Dodge/Update/Scroll.hs 167;" f
doubleLampCover src/Dodge/Placement/Instance/LightSource/Cover.hs 28;" f doubleLampCover src/Dodge/Placement/Instance/LightSource/Cover.hs 28;" f
doublePair src/Geometry.hs 165;" f doublePair src/Geometry.hs 162;" f
doublePairSet src/Geometry.hs 169;" f doublePairSet src/Geometry.hs 166;" f
doubleTreeToIndentList src/Dodge/DoubleTree.hs 129;" f doubleTreeToIndentList src/Dodge/DoubleTree.hs 129;" f
doubleV2 src/Geometry.hs 172;" f doubleV2 src/Geometry.hs 169;" f
drawARHUD src/Dodge/Creature/State.hs 192;" f drawARHUD src/Dodge/Creature/State.hs 192;" f
drawAimSweep src/Dodge/Render/Picture.hs 279;" f drawAimSweep src/Dodge/Render/Picture.hs 279;" f
drawAllShadows src/Dodge/Shadows.hs 5;" f drawAllShadows src/Dodge/Shadows.hs 5;" f
@@ -3529,13 +3531,13 @@ equipSitePQ src/Dodge/Creature/HandPos.hs 26;" f
equipType src/Dodge/Data/EquipType.hs 10;" f equipType src/Dodge/Data/EquipType.hs 10;" f
equipmentDesignation src/Dodge/Inventory/RBList.hs 52;" f equipmentDesignation src/Dodge/Inventory/RBList.hs 52;" f
equipmentStrValue src/Dodge/Creature/Statistics.hs 56;" f equipmentStrValue src/Dodge/Creature/Statistics.hs 56;" f
errorAngleVV src/Geometry.hs 60;" f errorAngleVV src/Geometry.hs 59;" f
errorClosestPointOnLine src/Geometry.hs 72;" f errorClosestPointOnLine src/Geometry.hs 71;" f
errorClosestPointOnLineParam src/Geometry.hs 78;" f errorClosestPointOnLineParam src/Geometry.hs 77;" f
errorHead src/ListHelp.hs 76;" f errorHead src/ListHelp.hs 76;" f
errorIsLHS src/Geometry.hs 66;" f errorIsLHS src/Geometry.hs 65;" f
errorNormalizeV src/Geometry.hs 55;" f errorNormalizeV src/Geometry.hs 54;" f
errorPointInPolygon src/Geometry.hs 47;" f errorPointInPolygon src/Geometry.hs 46;" f
evenOddSplit src/Dodge/Base.hs 160;" f evenOddSplit src/Dodge/Base.hs 160;" f
exitTerminalSubInv src/Dodge/WorldEffect.hs 116;" f exitTerminalSubInv src/Dodge/WorldEffect.hs 116;" f
expandLine src/Dodge/Picture.hs 30;" f expandLine src/Dodge/Picture.hs 30;" f
@@ -3544,7 +3546,7 @@ expandPolyByFixed src/Dodge/LevelGen/StaticWalls.hs 97;" f
expandPolyCorners src/Dodge/LevelGen/StaticWalls.hs 103;" f expandPolyCorners src/Dodge/LevelGen/StaticWalls.hs 103;" f
expandToSquare src/Dodge/LevelGen/StaticWalls/Deprecated.hs 83;" f expandToSquare src/Dodge/LevelGen/StaticWalls/Deprecated.hs 83;" f
expireAndDamage src/Dodge/Bullet.hs 185;" f expireAndDamage src/Dodge/Bullet.hs 185;" f
explodeShell src/Dodge/Projectile/Update.hs 282;" f explodeShell src/Dodge/Projectile/Update.hs 281;" f
explosionS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 556;" f explosionS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 556;" f
explosiveBarrel src/Dodge/Creature/Inanimate.hs 25;" f explosiveBarrel src/Dodge/Creature/Inanimate.hs 25;" f
extTrigLitPos src/Dodge/Placement/Instance/Button.hs 84;" f extTrigLitPos src/Dodge/Placement/Instance/Button.hs 84;" f
@@ -3677,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 321;" f getCrsFromRooms src/Dodge/Room/Tutorial.hs 323;" f
getCrsFromRooms' src/Dodge/Room/Tutorial.hs 308;" f getCrsFromRooms' src/Dodge/Room/Tutorial.hs 310;" 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
@@ -3693,7 +3695,7 @@ 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 304;" f getRoomsFromInts src/Dodge/Room/Tutorial.hs 306;" 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
@@ -3764,10 +3766,10 @@ handleResizeEvent src/Dodge/Event.hs 53;" f
handleTextInput src/Dodge/Event/Input.hs 19;" f handleTextInput src/Dodge/Event/Input.hs 19;" f
handleWindowMoveEvent src/Dodge/Event.hs 44;" f handleWindowMoveEvent src/Dodge/Event.hs 44;" f
hardQuit src/Dodge/Concurrent.hs 32;" f hardQuit src/Dodge/Concurrent.hs 32;" f
hasButtonLOS src/Dodge/Base/Collide.hs 301;" f hasButtonLOS src/Dodge/Base/Collide.hs 312;" f
hasCaneGunDim src/Dodge/Item/InvSize.hs 48;" f hasCaneGunDim src/Dodge/Item/InvSize.hs 48;" f
hasLOS src/Dodge/Base/Collide.hs 294;" f hasLOS src/Dodge/Base/Collide.hs 305;" f
hasLOSIndirect src/Dodge/Base/Collide.hs 310;" f hasLOSIndirect src/Dodge/Base/Collide.hs 321;" f
hat src/Dodge/Item/Equipment.hs 76;" f hat src/Dodge/Item/Equipment.hs 76;" f
head src/DoubleStack.hs 14;" f head src/DoubleStack.hs 14;" f
headLamp src/Dodge/Item/Equipment.hs 79;" f headLamp src/Dodge/Item/Equipment.hs 79;" f
@@ -3797,7 +3799,7 @@ heldTorqueAmount src/Dodge/HeldUse.hs 578;" f
heldTriggerType src/Dodge/BaseTriggerType.hs 27;" f heldTriggerType src/Dodge/BaseTriggerType.hs 27;" f
helpPara src/Dodge/Terminal.hs 90;" f helpPara src/Dodge/Terminal.hs 90;" f
helpPoly3D src/Polyhedra.hs 125;" f helpPoly3D src/Polyhedra.hs 125;" f
heron src/Geometry.hs 221;" f heron src/Geometry.hs 218;" f
hiToFloat src/Dodge/Room/Modify/Girder.hs 171;" f hiToFloat src/Dodge/Room/Modify/Girder.hs 171;" f
highBar src/Dodge/Room/Foreground.hs 89;" f highBar src/Dodge/Room/Foreground.hs 89;" f
highDiagonalMesh src/Dodge/Room/Foreground.hs 35;" f highDiagonalMesh src/Dodge/Room/Foreground.hs 35;" f
@@ -3819,7 +3821,7 @@ 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 128;" f inLink src/Dodge/RoomLink.hs 128;" f
inSegArea src/Geometry/Intersect.hs 333;" f inSegArea src/Geometry/Intersect.hs 346;" f
inSimplePoly src/Geometry/Polygon.hs 89;" f inSimplePoly src/Geometry/Polygon.hs 89;" 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
@@ -3851,26 +3853,29 @@ insertWithNewKeys src/IntMapHelp.hs 70;" f
intAnno src/Dodge/Floor.hs 111;" f intAnno src/Dodge/Floor.hs 111;" f
interactWithCloseObj src/Dodge/SelectedClose.hs 9;" f interactWithCloseObj src/Dodge/SelectedClose.hs 9;" f
interpWith src/Dodge/Creature/Boid.hs 11;" f interpWith src/Dodge/Creature/Boid.hs 11;" f
intersectCircSeg src/Geometry/Intersect.hs 340;" f intersectCircLine src/Geometry/Intersect.hs 373;" f
intersectCircSegFirst src/Geometry/Intersect.hs 358;" f intersectCircLineAlong src/Geometry/Intersect.hs 364;" f
intersectCircSegTest src/Geometry/Intersect.hs 351;" f intersectCircSeg src/Geometry/Intersect.hs 353;" f
intersectLineLine src/Geometry/Intersect.hs 18;" f intersectCircSegFirst src/Geometry/Intersect.hs 415;" f
intersectLinePlane src/Geometry/Intersect.hs 28;" f intersectCircSegTest src/Geometry/Intersect.hs 407;" f
intersectCylSeg src/Geometry/Intersect.hs 382;" f
intersectLineLine src/Geometry/Intersect.hs 19;" f
intersectLinePlaneAlong src/Geometry/Intersect.hs 34;" f
intersectLinefromScreen src/Dodge/Debug/Picture.hs 95;" f intersectLinefromScreen src/Dodge/Debug/Picture.hs 95;" f
intersectSegBezquad src/Geometry/Intersect.hs 271;" f intersectSegBezquad src/Geometry/Intersect.hs 284;" f
intersectSegLine src/Geometry/Intersect.hs 122;" f intersectSegLine src/Geometry/Intersect.hs 135;" f
intersectSegLineext src/Geometry/Intersect.hs 105;" f intersectSegLineext src/Geometry/Intersect.hs 117;" f
intersectSegPlane src/Geometry/Intersect.hs 34;" f intersectSegPlane src/Geometry/Intersect.hs 41;" f
intersectSegPolyFirst src/Geometry/Intersect.hs 278;" f intersectSegPolyFirst src/Geometry/Intersect.hs 291;" f
intersectSegRay src/Geometry/Intersect.hs 90;" f intersectSegRay src/Geometry/Intersect.hs 102;" f
intersectSegSeg src/Geometry/Intersect.hs 69;" f intersectSegSeg src/Geometry/Intersect.hs 81;" f
intersectSegSegErrorTest src/Geometry/Intersect.hs 54;" f intersectSegSegErrorTest src/Geometry/Intersect.hs 66;" f
intersectSegSegFullTest src/Geometry/Intersect.hs 138;" f intersectSegSegFullTest src/Geometry/Intersect.hs 151;" f
intersectSegSegPreTest src/Geometry/Intersect.hs 171;" f intersectSegSegPreTest src/Geometry/Intersect.hs 184;" f
intersectSegSegTest src/Geometry/Intersect.hs 157;" f intersectSegSegTest src/Geometry/Intersect.hs 170;" f
intersectSegSurface src/Geometry/Intersect.hs 43;" f intersectSegSurface src/Geometry/Intersect.hs 50;" f
intersectSegsSeg src/Geometry/Intersect.hs 267;" f intersectSegsSeg src/Geometry/Intersect.hs 280;" f
intervalList src/Geometry.hs 315;" f intervalList src/Geometry.hs 312;" f
interweave src/Justify.hs 17;" f interweave src/Justify.hs 17;" f
introScan src/Dodge/Item/Scope.hs 57;" f introScan src/Dodge/Item/Scope.hs 57;" f
introScanValue src/Dodge/Inventory/SelectionList.hs 80;" f introScanValue src/Dodge/Inventory/SelectionList.hs 80;" f
@@ -3913,12 +3918,12 @@ isGroupSelectableSection src/Dodge/Update/Input/InGame.hs 197;" f
isInLnk src/Dodge/PlacementSpot.hs 161;" f isInLnk src/Dodge/PlacementSpot.hs 161;" f
isJust' src/MaybeHelp.hs 29;" f isJust' src/MaybeHelp.hs 29;" f
isLHS src/Geometry/LHS.hs 11;" f isLHS src/Geometry/LHS.hs 11;" f
isLeftOf src/Geometry.hs 202;" f isLeftOf src/Geometry.hs 199;" f
isLeftOfA src/Geometry.hs 196;" f isLeftOfA src/Geometry.hs 193;" f
isMidEdgeLink src/Dodge/RoomLink.hs 56;" f isMidEdgeLink src/Dodge/RoomLink.hs 56;" f
isNHS src/Geometry/Intersect.hs 51;" f isNHS src/Geometry/Intersect.hs 63;" f
isNothing' src/MaybeHelp.hs 33;" f isNothing' src/MaybeHelp.hs 33;" f
isOnSeg src/Geometry.hs 240;" f isOnSeg src/Geometry.hs 237;" f
isOutLnk src/Dodge/PlacementSpot.hs 166;" f isOutLnk src/Dodge/PlacementSpot.hs 166;" f
isOverTerminalScreen src/Dodge/Update.hs 383;" f isOverTerminalScreen src/Dodge/Update.hs 383;" f
isPulseLaser src/Dodge/IsPulseLaser.hs 10;" f isPulseLaser src/Dodge/IsPulseLaser.hs 10;" f
@@ -3929,7 +3934,7 @@ isUnusedLnkType src/Dodge/PlacementSpot.hs 190;" f
isUsedLnkUnplaced src/Dodge/PlacementSpot.hs 174;" f isUsedLnkUnplaced src/Dodge/PlacementSpot.hs 174;" f
isValidCommand src/Dodge/Debug/Terminal.hs 134;" f isValidCommand src/Dodge/Debug/Terminal.hs 134;" f
isVowel src/StringHelp.hs 8;" f isVowel src/StringHelp.hs 8;" f
isWalkable src/Dodge/Base/Collide.hs 317;" f isWalkable src/Dodge/Base/Collide.hs 328;" f
isoMatrix src/MatrixHelper.hs 30;" f isoMatrix src/MatrixHelper.hs 30;" f
isotriBWH src/Geometry/Polygon.hs 21;" f isotriBWH src/Geometry/Polygon.hs 21;" f
itDim src/Dodge/Item/InvSize.hs 21;" f itDim src/Dodge/Item/InvSize.hs 21;" f
@@ -4054,7 +4059,7 @@ lightSensInsideDoor src/Dodge/Room/LasTurret.hs 39;" f
lightSensor src/Dodge/Placement/Instance/Sensor.hs 42;" f lightSensor src/Dodge/Placement/Instance/Sensor.hs 42;" f
lightsToRender src/Dodge/Render/Lights.hs 14;" f lightsToRender src/Dodge/Render/Lights.hs 14;" f
lightx4 src/Color.hs 145;" f lightx4 src/Color.hs 145;" f
linGrad src/Geometry/Intersect.hs 255;" f linGrad src/Geometry/Intersect.hs 268;" f
line src/Picture/Base.hs 226;" f line src/Picture/Base.hs 226;" f
lineCol src/Picture/Base.hs 230;" f lineCol src/Picture/Base.hs 230;" f
lineGeom src/Dodge/Base.hs 32;" f lineGeom src/Dodge/Base.hs 32;" f
@@ -4132,7 +4137,7 @@ machineUpdateLiveDieEff src/Dodge/Machine.hs 16;" f
magAmmoParams src/Dodge/HeldUse.hs 945;" f magAmmoParams src/Dodge/HeldUse.hs 945;" f
magAmmoType src/Dodge/Item/MagAmmoType.hs 11;" f magAmmoType src/Dodge/Item/MagAmmoType.hs 11;" f
magShield src/Dodge/Item/Equipment.hs 27;" f magShield src/Dodge/Item/Equipment.hs 27;" f
magV src/Geometry/Vector.hs 171;" f magV src/Geometry/Vector.hs 172;" f
magV3 src/Geometry/Vector3D.hs 78;" f magV3 src/Geometry/Vector3D.hs 78;" f
magazineCombinations src/Dodge/Combine/Combinations.hs 43;" f magazineCombinations src/Dodge/Combine/Combinations.hs 43;" f
magenta src/Color.hs 19;" f magenta src/Color.hs 19;" f
@@ -4259,7 +4264,7 @@ midBounds src/Dodge/Room/Foreground.hs 151;" f
midChasm src/Dodge/Room/Tutorial.hs 138;" 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 83;" f
midWall src/Dodge/Placement/Instance/Wall.hs 27;" f midWall src/Dodge/Placement/Instance/Wall.hs 27;" f
minAndMax src/FoldableHelp.hs 109;" f minAndMax src/FoldableHelp.hs 109;" f
minCrIXOn src/Dodge/Zoning/Creature.hs 47;" f minCrIXOn src/Dodge/Zoning/Creature.hs 47;" f
@@ -4296,10 +4301,10 @@ moveCombineSel src/Dodge/Update/Scroll.hs 121;" f
moveInverseShockwave src/Dodge/Shockwave/Update.hs 44;" f moveInverseShockwave src/Dodge/Shockwave/Update.hs 44;" f
moveLSThen src/Dodge/Placement/Instance/LightSource.hs 43;" f moveLSThen src/Dodge/Placement/Instance/LightSource.hs 43;" f
movePenBullet src/Dodge/Bullet.hs 200;" f movePenBullet src/Dodge/Bullet.hs 200;" f
moveProjectile src/Dodge/Projectile/Update.hs 260;" f moveProjectile src/Dodge/Projectile/Update.hs 259;" f
moveRoomBy src/Dodge/Room/Link.hs 53;" f moveRoomBy src/Dodge/Room/Link.hs 53;" f
moveShockwave src/Dodge/Shockwave/Update.hs 13;" f moveShockwave src/Dodge/Shockwave/Update.hs 13;" f
moveStuckGrenade src/Dodge/Projectile/Update.hs 246;" f moveStuckGrenade src/Dodge/Projectile/Update.hs 245;" f
moveToSideNthOutLink src/Dodge/Room/Warning.hs 69;" f moveToSideNthOutLink src/Dodge/Room/Warning.hs 69;" f
moveWall src/Dodge/Wall/Move.hs 29;" f moveWall src/Dodge/Wall/Move.hs 29;" f
moveWallID src/Dodge/Wall/Move.hs 24;" f moveWallID src/Dodge/Wall/Move.hs 24;" f
@@ -4329,18 +4334,18 @@ mvPointToward src/Dodge/Base.hs 136;" f
mvPointTowardAtSpeed src/Dodge/Base.hs 105;" f mvPointTowardAtSpeed src/Dodge/Base.hs 105;" f
mvProp src/Dodge/Placement/PlaceSpot.hs 177;" f mvProp src/Dodge/Placement/PlaceSpot.hs 177;" f
mvPs src/Dodge/Wall/Move.hs 58;" f mvPs src/Dodge/Wall/Move.hs 58;" f
myIntersectLineLine src/Geometry/Intersect.hs 212;" f myIntersectLineLine src/Geometry/Intersect.hs 225;" f
myIntersectSegSeg src/Geometry/Intersect.hs 190;" f myIntersectSegSeg src/Geometry/Intersect.hs 203;" f
myParams src/Dodge/Combine/Graph.hs 103;" f myParams src/Dodge/Combine/Graph.hs 103;" f
nRays src/Geometry.hs 185;" f nRays src/Geometry.hs 182;" f
nRaysRad src/Geometry.hs 189;" f nRaysRad src/Geometry.hs 186;" f
nearCollinear src/Dodge/LevelGen/StaticWalls/Deprecated.hs 19;" f nearCollinear src/Dodge/LevelGen/StaticWalls/Deprecated.hs 19;" f
nearParallel src/Dodge/LevelGen/StaticWalls/Deprecated.hs 14;" f nearParallel src/Dodge/LevelGen/StaticWalls/Deprecated.hs 14;" f
nearPoint src/Dodge/Zoning/Common.hs 8;" f nearPoint src/Dodge/Zoning/Common.hs 8;" f
nearRect src/Dodge/Zoning/Common.hs 16;" f nearRect src/Dodge/Zoning/Common.hs 16;" f
nearSeg src/Dodge/Zoning/Common.hs 12;" f nearSeg src/Dodge/Zoning/Common.hs 12;" f
nearZeroAngle src/Geometry/Vector.hs 137;" f nearZeroAngle src/Geometry/Vector.hs 138;" f
nearestAngleRep src/Geometry.hs 151;" f nearestAngleRep src/Geometry.hs 148;" f
newExtraAwareness src/Dodge/Creature/Perception.hs 138;" f newExtraAwareness src/Dodge/Creature/Perception.hs 138;" f
newKey src/IntMapHelp.hs 60;" f newKey src/IntMapHelp.hs 60;" f
newSounds src/Dodge/Creature/Perception.hs 171;" f newSounds src/Dodge/Creature/Perception.hs 171;" f
@@ -4353,10 +4358,10 @@ noShape src/ShapePicture.hs 29;" f
noclipCheck src/Dodge/WallCreatureCollisions.hs 22;" f noclipCheck src/Dodge/WallCreatureCollisions.hs 22;" f
nodeFormatting src/Dodge/Combine/Graph.hs 147;" f nodeFormatting src/Dodge/Combine/Graph.hs 147;" f
normalGait src/Dodge/Creature/State/WalkCycle.hs 29;" f normalGait src/Dodge/Creature/State/WalkCycle.hs 29;" f
normalizeAngle src/Geometry/Vector.hs 127;" f normalizeAngle src/Geometry/Vector.hs 128;" f
normalizeAnglePi src/Dodge/Base.hs 154;" f normalizeAnglePi src/Dodge/Base.hs 154;" f
normalizeColor src/Color.hs 76;" f normalizeColor src/Color.hs 76;" f
normalizeV src/Geometry/Vector.hs 43;" f normalizeV src/Geometry/Vector.hs 44;" f
normalizeV3 src/Geometry/Vector3D.hs 84;" f normalizeV3 src/Geometry/Vector3D.hs 84;" f
notLink src/Dodge/Data/Room.hs 72;" f notLink src/Dodge/Data/Room.hs 72;" f
nulgate src/Dodge/Item/Scope.hs 95;" f nulgate src/Dodge/Item/Scope.hs 95;" f
@@ -4395,7 +4400,7 @@ orderPolygonAround src/Geometry/Polygon.hs 107;" f
orientAttachment src/Dodge/Item/Orientation.hs 68;" f orientAttachment src/Dodge/Item/Orientation.hs 68;" f
orientByParentChSF src/Dodge/Item/Orientation.hs 34;" f orientByParentChSF src/Dodge/Item/Orientation.hs 34;" f
orientChild src/Dodge/Item/Orientation.hs 18;" f orientChild src/Dodge/Item/Orientation.hs 18;" f
orthogonalPointOnSeg src/Geometry/Intersect.hs 326;" f orthogonalPointOnSeg src/Geometry/Intersect.hs 339;" f
outLink src/Dodge/RoomLink.hs 120;" 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
@@ -4408,10 +4413,10 @@ 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
overPosSP src/ShapePicture.hs 41;" f overPosSP src/ShapePicture.hs 41;" f
overlapCircWalls src/Dodge/Base/Collide.hs 221;" f overlapCircWalls src/Dodge/Base/Collide.hs 232;" f
overlapCircWallsClosest src/Dodge/Base/Collide.hs 267;" f overlapCircWallsClosest src/Dodge/Base/Collide.hs 278;" f
overlapSegCrs src/Dodge/Base/Collide.hs 60;" f overlapSegCrs src/Dodge/Base/Collide.hs 60;" f
overlapSegWalls src/Dodge/Base/Collide.hs 203;" f overlapSegWalls src/Dodge/Base/Collide.hs 214;" f
overrideInternal src/Dodge/Creature/ReaderUpdate.hs 174;" f overrideInternal src/Dodge/Creature/ReaderUpdate.hs 174;" f
overrideMeleeCloseTarget src/Dodge/Creature/ReaderUpdate.hs 35;" f overrideMeleeCloseTarget src/Dodge/Creature/ReaderUpdate.hs 35;" f
overwriteLabel src/Dodge/Tree/Compose.hs 31;" f overwriteLabel src/Dodge/Tree/Compose.hs 31;" f
@@ -4435,7 +4440,7 @@ pauseMenuOptions src/Dodge/Menu.hs 66;" f
pauseSound src/Dodge/SoundLogic.hs 42;" f pauseSound src/Dodge/SoundLogic.hs 42;" f
pauseTime src/Dodge/Update.hs 180;" f pauseTime src/Dodge/Update.hs 180;" f
pbFlicker src/Dodge/Update.hs 453;" f pbFlicker src/Dodge/Update.hs 453;" f
pbsHit src/Dodge/WorldEvent/ThingsHit.hs 71;" f pbsHit src/Dodge/WorldEvent/ThingsHit.hs 88;" f
peZoneSize src/Dodge/Zoning/Pathing.hs 46;" f peZoneSize src/Dodge/Zoning/Pathing.hs 46;" f
pedestalRoom src/Dodge/Room/Containing.hs 50;" f pedestalRoom src/Dodge/Room/Containing.hs 50;" f
penThing src/Dodge/Bullet.hs 208;" f penThing src/Dodge/Bullet.hs 208;" f
@@ -4464,7 +4469,7 @@ pingPongBetween src/Render.hs 221;" f
pipe src/Dodge/Item/Craftable.hs 32;" f pipe src/Dodge/Item/Craftable.hs 32;" f
pistol src/Dodge/Item/Held/Stick.hs 40;" f pistol src/Dodge/Item/Held/Stick.hs 40;" f
pistolerRoom src/Dodge/Room/Room.hs 330;" f pistolerRoom src/Dodge/Room/Room.hs 330;" f
pjRemoteSetDirection src/Dodge/Projectile/Update.hs 225;" f pjRemoteSetDirection src/Dodge/Projectile/Update.hs 224;" f
plBlock src/Dodge/Placement/PlaceSpot/Block.hs 18;" f plBlock src/Dodge/Placement/PlaceSpot/Block.hs 18;" f
plDoor src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 22;" f plDoor src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 22;" f
plLineBlock src/Dodge/Placement/PlaceSpot/Block.hs 50;" f plLineBlock src/Dodge/Placement/PlaceSpot/Block.hs 50;" f
@@ -4507,10 +4512,10 @@ pnsNearPoint src/Dodge/Zoning/Pathing.hs 12;" f
pnsNearRect src/Dodge/Zoning/Pathing.hs 18;" f pnsNearRect src/Dodge/Zoning/Pathing.hs 18;" f
pnsNearSeg src/Dodge/Zoning/Pathing.hs 15;" f pnsNearSeg src/Dodge/Zoning/Pathing.hs 15;" f
pointIfNotClose src/Dodge/LevelGen/StaticWalls/Deprecated.hs 68;" f pointIfNotClose src/Dodge/LevelGen/StaticWalls/Deprecated.hs 68;" f
pointInCircle src/Geometry.hs 212;" f pointInCircle src/Geometry.hs 209;" f
pointInOrOnPolygon src/Geometry/Polygon.hs 77;" f pointInOrOnPolygon src/Geometry/Polygon.hs 77;" f
pointInPoly src/Geometry/Polygon.hs 85;" f pointInPoly src/Geometry/Polygon.hs 85;" f
pointIsInCone src/Geometry.hs 378;" f pointIsInCone src/Geometry.hs 375;" f
pointIsOnScreen src/Dodge/Base/Window.hs 59;" f pointIsOnScreen src/Dodge/Base/Window.hs 59;" f
pointTowardsImpulse src/Dodge/Path.hs 63;" f pointTowardsImpulse src/Dodge/Path.hs 63;" f
pointerToItem src/Dodge/Item/Location.hs 39;" f pointerToItem src/Dodge/Item/Location.hs 39;" f
@@ -4569,7 +4574,7 @@ polyToEdges src/Polyhedra.hs 133;" f
polyToGeoRender src/Polyhedra.hs 142;" f polyToGeoRender src/Polyhedra.hs 142;" f
polyToPics src/Polyhedra.hs 122;" f polyToPics src/Polyhedra.hs 122;" f
polyToTris src/Geometry/Triangulate.hs 7;" f polyToTris src/Geometry/Triangulate.hs 7;" f
polyToTris' src/Geometry.hs 175;" f polyToTris' src/Geometry.hs 172;" f
polyToTris'' src/Geometry/Triangulate.hs 15;" f polyToTris'' src/Geometry/Triangulate.hs 15;" f
polygon src/Picture/Base.hs 72;" f polygon src/Picture/Base.hs 72;" f
polygonCol src/Picture/Base.hs 78;" f polygonCol src/Picture/Base.hs 78;" f
@@ -4596,7 +4601,7 @@ preCritStart src/Dodge/Room/Start.hs 83;" f
prePos src/Quaternion.hs 68;" f prePos src/Quaternion.hs 68;" f
preloadRender src/Preload/Render.hs 30;" f preloadRender src/Preload/Render.hs 30;" f
premapMaybe src/FoldlHelp.hs 26;" f premapMaybe src/FoldlHelp.hs 26;" f
prependTwo src/Geometry.hs 180;" f prependTwo src/Geometry.hs 177;" f
prettyDT src/Dodge/DoubleTree.hs 258;" f 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
@@ -4610,7 +4615,7 @@ 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
prismPoly src/Shape.hs 59;" f prismPoly src/Shape.hs 59;" f
projV src/Geometry/Vector.hs 182;" f projV src/Geometry/Vector.hs 183;" f
projV3 src/Geometry/Vector3D.hs 127;" f projV3 src/Geometry/Vector3D.hs 127;" f
propDrawToggle src/Dodge/Prop/Draw.hs 50;" f propDrawToggle src/Dodge/Prop/Draw.hs 50;" f
propLSThen src/Dodge/Placement/Instance/LightSource.hs 29;" f propLSThen src/Dodge/Placement/Instance/LightSource.hs 29;" f
@@ -4677,7 +4682,7 @@ rLauncher src/Dodge/Item/Held/Launcher.hs 14;" f
rLauncherX src/Dodge/Item/Held/Launcher.hs 30;" f rLauncherX src/Dodge/Item/Held/Launcher.hs 30;" f
rToOnward src/Dodge/Cleat.hs 21;" f rToOnward src/Dodge/Cleat.hs 21;" f
radBounds src/Dodge/Room/Foreground.hs 154;" f radBounds src/Dodge/Room/Foreground.hs 154;" f
radToDeg src/Geometry/Vector.hs 122;" f radToDeg src/Geometry/Vector.hs 123;" f
randBlockBreakWeapon src/Dodge/Item/Random.hs 7;" f randBlockBreakWeapon src/Dodge/Item/Random.hs 7;" f
randC1 src/Dodge/Placement/Instance/Creature.hs 8;" f randC1 src/Dodge/Placement/Instance/Creature.hs 8;" f
randDirPS src/Dodge/PlacementSpot.hs 56;" f randDirPS src/Dodge/PlacementSpot.hs 56;" f
@@ -4714,7 +4719,7 @@ randomTank src/Dodge/Room/Tanks.hs 19;" f
randomTreeStructure src/Dodge/Layout/Generate.hs 18;" f randomTreeStructure src/Dodge/Layout/Generate.hs 18;" f
randsOnCirc src/RandomHelp.hs 127;" f randsOnCirc src/RandomHelp.hs 127;" f
randsSpread src/RandomHelp.hs 120;" f randsSpread src/RandomHelp.hs 120;" f
ratIntersectLineLine src/Geometry/Intersect.hs 230;" f ratIntersectLineLine src/Geometry/Intersect.hs 243;" f
readSaveSlot src/Dodge/Save.hs 45;" f readSaveSlot src/Dodge/Save.hs 45;" f
recoilAmount src/Dodge/HeldUse.hs 459;" f recoilAmount src/Dodge/HeldUse.hs 459;" f
rectNSWE src/Geometry/Polygon.hs 14;" f rectNSWE src/Geometry/Polygon.hs 14;" f
@@ -4729,10 +4734,10 @@ reduceLocLDT src/Dodge/DoubleTree.hs 393;" f
reflDirWall src/Dodge/Base/Wall.hs 16;" f reflDirWall src/Dodge/Base/Wall.hs 16;" f
reflVelWall src/Dodge/Base/Wall.hs 24;" f reflVelWall src/Dodge/Base/Wall.hs 24;" f
reflVelWallDamp src/Dodge/Base/Wall.hs 20;" f reflVelWallDamp src/Dodge/Base/Wall.hs 20;" f
reflectAngle src/Geometry.hs 145;" f reflectAngle src/Geometry.hs 142;" f
reflectIn src/Geometry.hs 137;" f reflectIn src/Geometry.hs 136;" f
reflectInNormal src/Geometry.hs 140;" f reflectInNormal src/Geometry/Vector.hs 223;" f
reflectInParam src/Geometry.hs 233;" f reflectInParam src/Geometry.hs 230;" f
reflectLaserAlong src/Dodge/Item/Weapon/LaserPath.hs 16;" f reflectLaserAlong src/Dodge/Item/Weapon/LaserPath.hs 16;" f
reflectPulseLaserAlong src/Dodge/Item/Weapon/LaserPath.hs 69;" f reflectPulseLaserAlong src/Dodge/Item/Weapon/LaserPath.hs 69;" f
refract src/Dodge/Item/Weapon/LaserPath.hs 43;" f refract src/Dodge/Item/Weapon/LaserPath.hs 43;" f
@@ -4749,7 +4754,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 222;" f removeLights src/Dodge/Room/Tutorial.hs 224;" 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
@@ -4774,7 +4779,7 @@ restrictInLinks src/Dodge/RoomLink.hs 44;" f
restrictLinkType src/Dodge/RoomLink.hs 34;" f restrictLinkType src/Dodge/RoomLink.hs 34;" f
restrictOutLinks src/Dodge/RoomLink.hs 47;" 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 173;" f
resumeSound src/Dodge/SoundLogic.hs 48;" f resumeSound src/Dodge/SoundLogic.hs 48;" f
retreatActionsPistol src/Dodge/Humanoid.hs 249;" f retreatActionsPistol src/Dodge/Humanoid.hs 249;" f
retreatFireLauncher src/Dodge/Humanoid.hs 270;" f retreatFireLauncher src/Dodge/Humanoid.hs 270;" f
@@ -4845,10 +4850,10 @@ rotateSP src/ShapePicture.hs 57;" f
rotateTo src/Polyhedra/Geodesic.hs 64;" f rotateTo src/Polyhedra/Geodesic.hs 64;" f
rotateToOverlappingWall src/Dodge/Update/Camera.hs 209;" f rotateToOverlappingWall src/Dodge/Update/Camera.hs 209;" f
rotateToZ src/Quaternion.hs 39;" f rotateToZ src/Quaternion.hs 39;" f
rotateV src/Geometry/Vector.hs 105;" f rotateV src/Geometry/Vector.hs 106;" f
rotateVAround src/Geometry/Vector.hs 112;" f rotateVAround src/Geometry/Vector.hs 113;" f
rotateXY src/Polyhedra.hs 31;" f rotateXY src/Polyhedra.hs 31;" f
roundPoint2 src/Geometry/Intersect.hs 251;" f roundPoint2 src/Geometry/Intersect.hs 264;" f
roundTank src/Dodge/Placement/Instance/Tank.hs 25;" f roundTank src/Dodge/Placement/Instance/Tank.hs 25;" f
roundTankCross src/Dodge/Placement/Instance/Tank.hs 31;" f roundTankCross src/Dodge/Placement/Instance/Tank.hs 31;" f
rpIsOffGrid src/Dodge/PlacementSpot.hs 81;" f rpIsOffGrid src/Dodge/PlacementSpot.hs 81;" f
@@ -4861,15 +4866,15 @@ rsObjectColor src/Dodge/RadarSweep/Draw.hs 34;" f
runPastStart src/Dodge/Room/Start.hs 72;" f runPastStart src/Dodge/Room/Start.hs 72;" f
runStateWorld src/Dodge/Randify.hs 17;" f runStateWorld src/Dodge/Randify.hs 17;" f
sPS src/Dodge/LevelGen/PlacementHelper.hs 27;" f sPS src/Dodge/LevelGen/PlacementHelper.hs 27;" f
safeAngleVV src/Geometry/Vector.hs 68;" f safeAngleVV src/Geometry/Vector.hs 69;" f
safeArgV src/Geometry/Vector.hs 87;" f safeArgV src/Geometry/Vector.hs 88;" f
safeHead src/ListHelp.hs 68;" f safeHead src/ListHelp.hs 68;" f
safeMinMaybeL src/FoldableHelp.hs 48;" f safeMinMaybeL src/FoldableHelp.hs 48;" f
safeMinimumOn src/FoldableHelp.hs 26;" f safeMinimumOn src/FoldableHelp.hs 26;" f
safeMinimumOnMaybe src/FoldableHelp.hs 67;" f safeMinimumOnMaybe src/FoldableHelp.hs 67;" f
safeMinimumOnMaybeF src/FoldableHelp.hs 39;" f safeMinimumOnMaybeF src/FoldableHelp.hs 39;" f
safeMinimumOnMaybeL src/FoldableHelp.hs 57;" f safeMinimumOnMaybeL src/FoldableHelp.hs 57;" f
safeNormalizeV src/Geometry/Vector.hs 164;" f safeNormalizeV src/Geometry/Vector.hs 165;" f
safeSwapKeys src/IntMapHelp.hs 77;" f safeSwapKeys src/IntMapHelp.hs 77;" f
safeUncons src/ListHelp.hs 72;" f safeUncons src/ListHelp.hs 72;" f
safeUpdateSingleNode src/TreeHelp.hs 116;" f safeUpdateSingleNode src/TreeHelp.hs 116;" f
@@ -4916,7 +4921,7 @@ sectionsDesiredLines src/Dodge/DisplayInventory.hs 198;" f
sectionsSizes src/Dodge/DisplayInventory.hs 201;" f sectionsSizes src/Dodge/DisplayInventory.hs 201;" f
seedStartMenu src/Dodge/Menu.hs 87;" f seedStartMenu src/Dodge/Menu.hs 87;" f
seedStartOptions src/Dodge/Menu.hs 90;" f seedStartOptions src/Dodge/Menu.hs 90;" f
segOnCirc src/Geometry.hs 114;" f segOnCirc src/Geometry.hs 113;" f
selNumPos src/Dodge/Render/HUD.hs 447;" f selNumPos src/Dodge/Render/HUD.hs 447;" f
selNumPosCardinal src/Dodge/Render/HUD.hs 470;" f selNumPosCardinal src/Dodge/Render/HUD.hs 470;" f
selSecDrawCursor src/Dodge/Render/List.hs 125;" f selSecDrawCursor src/Dodge/Render/List.hs 125;" f
@@ -4933,7 +4938,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 330;" f sensorTut src/Dodge/Room/Tutorial.hs 332;" 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
@@ -5002,10 +5007,10 @@ shapeVerxSize src/Shape/Parameters.hs 10;" f
shatterGun src/Dodge/Item/Held/Weapons.hs 8;" f shatterGun src/Dodge/Item/Held/Weapons.hs 8;" f
shatterGunSPic src/Dodge/Item/Draw/SPic.hs 312;" f shatterGunSPic src/Dodge/Item/Draw/SPic.hs 312;" f
shatterWall src/Dodge/Item/Weapon/Shatter.hs 26;" f shatterWall src/Dodge/Item/Weapon/Shatter.hs 26;" f
shellExplosionCheck src/Dodge/Projectile/Update.hs 56;" f shellExplosionCheck src/Dodge/Projectile/Update.hs 55;" f
shellHitCreature src/Dodge/Projectile/Update.hs 84;" f shellHitCreature src/Dodge/Projectile/Update.hs 83;" f
shellHitFloor src/Dodge/Projectile/Update.hs 100;" f shellHitFloor src/Dodge/Projectile/Update.hs 99;" f
shellHitWall src/Dodge/Projectile/Update.hs 67;" f shellHitWall src/Dodge/Projectile/Update.hs 66;" f
shellMag src/Dodge/Item/Ammo.hs 49;" f shellMag src/Dodge/Item/Ammo.hs 49;" f
shellModule src/Dodge/Item/Scope.hs 123;" f shellModule src/Dodge/Item/Scope.hs 123;" f
shellShape src/Dodge/Projectile/Draw.hs 35;" f shellShape src/Dodge/Projectile/Draw.hs 35;" f
@@ -5149,7 +5154,7 @@ sps0 src/Dodge/LevelGen/PlacementHelper.hs 42;" f
square src/Geometry/Polygon.hs 47;" f square src/Geometry/Polygon.hs 47;" f
squareDecoration src/Dodge/Placement/TopDecoration.hs 41;" f squareDecoration src/Dodge/Placement/TopDecoration.hs 41;" f
squashIntersectCirclePoint src/Dodge/WallCreatureCollisions.hs 112;" f squashIntersectCirclePoint src/Dodge/WallCreatureCollisions.hs 112;" f
squashNormalizeV src/Geometry/Vector.hs 157;" f squashNormalizeV src/Geometry/Vector.hs 158;" f
ssLookupDown src/Dodge/SelectionSections.hs 82;" f ssLookupDown src/Dodge/SelectionSections.hs 82;" f
ssLookupGE' src/Dodge/SelectionSections.hs 136;" f ssLookupGE' src/Dodge/SelectionSections.hs 136;" f
ssLookupGT src/Dodge/SelectionSections.hs 123;" f ssLookupGT src/Dodge/SelectionSections.hs 123;" f
@@ -5279,10 +5284,10 @@ thickCircle src/Picture/Base.hs 272;" f
thickLine src/Picture/Base.hs 244;" f thickLine src/Picture/Base.hs 244;" f
thickLineCol src/Picture/Base.hs 255;" f thickLineCol src/Picture/Base.hs 255;" f
thinHighBar src/Dodge/Room/Foreground.hs 77;" f thinHighBar src/Dodge/Room/Foreground.hs 77;" f
thingHit src/Dodge/WorldEvent/ThingsHit.hs 92;" f thingHit src/Dodge/WorldEvent/ThingsHit.hs 109;" f
thingHitFilt src/Dodge/WorldEvent/ThingsHit.hs 80;" f thingHitFilt src/Dodge/WorldEvent/ThingsHit.hs 97;" f
thingsHit src/Dodge/WorldEvent/ThingsHit.hs 35;" f thingsHit src/Dodge/WorldEvent/ThingsHit.hs 35;" f
thingsHitExceptCr src/Dodge/WorldEvent/ThingsHit.hs 101;" f thingsHitExceptCr src/Dodge/WorldEvent/ThingsHit.hs 118;" f
thingsHitZ src/Dodge/WorldEvent/ThingsHit.hs 43;" f thingsHitZ src/Dodge/WorldEvent/ThingsHit.hs 43;" f
threeLineDecoration src/Dodge/Placement/TopDecoration.hs 61;" f threeLineDecoration src/Dodge/Placement/TopDecoration.hs 61;" f
throwItem src/Dodge/Creature/Action.hs 211;" f throwItem src/Dodge/Creature/Action.hs 211;" f
@@ -5397,21 +5402,21 @@ tryPlay src/Sound.hs 84;" f
tryPutItemInInv src/Dodge/Inventory/Add.hs 23;" f tryPutItemInInv src/Dodge/Inventory/Add.hs 23;" f
tryPutItemInInvAt src/Dodge/Inventory/Add.hs 52;" f tryPutItemInInvAt src/Dodge/Inventory/Add.hs 52;" f
trySeedFromClipboard src/Dodge/Menu.hs 96;" f trySeedFromClipboard src/Dodge/Menu.hs 96;" f
trySpin src/Dodge/Projectile/Update.hs 170;" f trySpin src/Dodge/Projectile/Update.hs 169;" f
trySynthBullet src/Dodge/Creature/State.hs 166;" f trySynthBullet src/Dodge/Creature/State.hs 166;" f
tryThrust src/Dodge/Projectile/Update.hs 176;" f tryThrust src/Dodge/Projectile/Update.hs 175;" f
tryUseParent src/Dodge/Creature/State.hs 144;" f 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 40;" f tutAnoTree src/Dodge/Room/Tutorial.hs 40;" f
tutDrop src/Dodge/Room/Tutorial.hs 72;" f tutDrop src/Dodge/Room/Tutorial.hs 72;" f
tutHub src/Dodge/Room/Tutorial.hs 229;" f tutHub src/Dodge/Room/Tutorial.hs 231;" f
tutLight src/Dodge/Room/Tutorial.hs 196;" f tutLight src/Dodge/Room/Tutorial.hs 196;" f
tutRezBox src/Dodge/Room/Tutorial.hs 341;" f tutRezBox src/Dodge/Room/Tutorial.hs 343;" f
tutRoomTree src/Dodge/Floor.hs 21;" f tutRoomTree src/Dodge/Floor.hs 21;" f
tutorialMessage1 src/Dodge/Room/Tutorial.hs 365;" f tutorialMessage1 src/Dodge/Room/Tutorial.hs 367;" f
tweenAngles src/Geometry/Vector.hs 195;" f tweenAngles src/Geometry/Vector.hs 196;" 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
twists src/Dodge/Creature/Test.hs 99;" f twists src/Dodge/Creature/Test.hs 99;" f
@@ -5428,7 +5433,7 @@ uncurryV src/Geometry/Data.hs 66;" f
underBarrelSlot src/Dodge/Item/Scope.hs 159;" f underBarrelSlot src/Dodge/Item/Scope.hs 159;" f
unfoldrMID src/MonadHelp.hs 33;" f unfoldrMID src/MonadHelp.hs 33;" f
unigate src/Dodge/Item/Scope.hs 102;" f unigate src/Dodge/Item/Scope.hs 102;" f
unitVectorAtAngle src/Geometry/Vector.hs 100;" f unitVectorAtAngle src/Geometry/Vector.hs 101;" f
unlockInv src/Dodge/Inventory/Lock.hs 12;" f unlockInv src/Dodge/Inventory/Lock.hs 12;" f
unpause src/Dodge/Menu.hs 213;" f unpause src/Dodge/Menu.hs 213;" f
unsafeBlinkAction src/Dodge/Creature/Action/Blink.hs 56;" f unsafeBlinkAction src/Dodge/Creature/Action/Blink.hs 56;" f
@@ -5515,7 +5520,7 @@ updateObjCatMaybes src/Dodge/Update.hs 533;" f
updateObjMapMaybe src/Dodge/Update.hs 526;" f updateObjMapMaybe src/Dodge/Update.hs 526;" f
updatePastWorlds src/Dodge/Update.hs 408;" f updatePastWorlds src/Dodge/Update.hs 408;" f
updatePreload src/Preload/Update.hs 20;" f updatePreload src/Preload/Update.hs 20;" f
updateProjectile src/Dodge/Projectile/Update.hs 27;" f updateProjectile src/Dodge/Projectile/Update.hs 26;" f
updateProp src/Dodge/Prop/Update.hs 11;" f updateProp src/Dodge/Prop/Update.hs 11;" f
updatePulse src/Dodge/Creature/Update.hs 145;" f updatePulse src/Dodge/Creature/Update.hs 145;" f
updatePulseBall src/Dodge/Update.hs 433;" f updatePulseBall src/Dodge/Update.hs 433;" f
@@ -5597,8 +5602,8 @@ usedRoomInLinkPoss src/Dodge/PlacementSpot.hs 202;" f
usedRoomLinkPoss src/Dodge/PlacementSpot.hs 209;" f usedRoomLinkPoss src/Dodge/PlacementSpot.hs 209;" f
v2z src/Geometry/Vector3D.hs 93;" f v2z src/Geometry/Vector3D.hs 93;" f
vCen3 src/Geometry/Vector3D.hs 115;" f vCen3 src/Geometry/Vector3D.hs 115;" f
vInverse src/Geometry/Vector.hs 153;" f vInverse src/Geometry/Vector.hs 154;" f
vNormal src/Geometry/Vector.hs 148;" f vNormal src/Geometry/Vector.hs 149;" f
vNormaly src/Geometry/Vector3D.hs 72;" f vNormaly src/Geometry/Vector3D.hs 72;" f
vShape src/Dodge/Placement/Instance/LightSource.hs 127;" f vShape src/Dodge/Placement/Instance/LightSource.hs 127;" f
vToL src/MatrixHelper.hs 46;" f vToL src/MatrixHelper.hs 46;" f
@@ -5620,7 +5625,7 @@ viewClipBounds src/Dodge/Debug/Picture.hs 329;" f
viewDistanceFromItems src/Dodge/Update/Camera.hs 194;" f viewDistanceFromItems src/Dodge/Update/Camera.hs 194;" f
viewTarget src/Dodge/Creature/ReaderUpdate.hs 146;" f viewTarget src/Dodge/Creature/ReaderUpdate.hs 146;" f
violet src/Color.hs 21;" f violet src/Color.hs 21;" f
visibleWalls src/Dodge/Base/Collide.hs 207;" f visibleWalls src/Dodge/Base/Collide.hs 218;" f
visionCheck src/Dodge/Creature/Perception.hs 153;" f visionCheck src/Dodge/Creature/Perception.hs 153;" f
vocalizationTest src/Dodge/Creature/Vocalization.hs 42;" f vocalizationTest src/Dodge/Creature/Vocalization.hs 42;" f
volleyGun src/Dodge/Item/Held/Cane.hs 15;" f volleyGun src/Dodge/Item/Held/Cane.hs 15;" f
@@ -5631,7 +5636,7 @@ wallBlips src/Dodge/RadarSweep.hs 98;" f
wallBuffer src/Dodge/WallCreatureCollisions.hs 52;" f wallBuffer src/Dodge/WallCreatureCollisions.hs 52;" f
wallIsZeroLength src/Dodge/LevelGen/StaticWalls.hs 179;" f wallIsZeroLength src/Dodge/LevelGen/StaticWalls.hs 179;" f
wallLine src/Dodge/Placement/Instance/Wall.hs 71;" f wallLine src/Dodge/Placement/Instance/Wall.hs 71;" f
wallToSurface src/Dodge/Base/Collide.hs 172;" f wallToSurface src/Dodge/Base/Collide.hs 183;" f
wallsFromRooms src/Dodge/Layout.hs 132;" f wallsFromRooms src/Dodge/Layout.hs 132;" f
wallsToDraw src/Dodge/Render/Walls.hs 17;" f wallsToDraw src/Dodge/Render/Walls.hs 17;" f
warmupSound src/Dodge/HeldUse.hs 1421;" f warmupSound src/Dodge/HeldUse.hs 1421;" f
@@ -5686,8 +5691,8 @@ wlOpaqueDraw src/Dodge/Render/Walls.hs 45;" f
wlSeeThroughDraw src/Dodge/Render/Walls.hs 48;" f wlSeeThroughDraw src/Dodge/Render/Walls.hs 48;" f
wlZoneSize src/Dodge/Zoning/Wall.hs 52;" f wlZoneSize src/Dodge/Zoning/Wall.hs 52;" f
wlsFromIXs src/Dodge/Zoning/Wall.hs 35;" f wlsFromIXs src/Dodge/Zoning/Wall.hs 35;" f
wlsHit src/Dodge/WorldEvent/ThingsHit.hs 115;" f wlsHit src/Dodge/WorldEvent/ThingsHit.hs 132;" f
wlsHitRadial src/Dodge/WorldEvent/ThingsHit.hs 123;" f wlsHitRadial src/Dodge/WorldEvent/ThingsHit.hs 140;" f
wlsNearCirc src/Dodge/Zoning/Wall.hs 49;" f wlsNearCirc src/Dodge/Zoning/Wall.hs 49;" f
wlsNearPoint src/Dodge/Zoning/Wall.hs 39;" f wlsNearPoint src/Dodge/Zoning/Wall.hs 39;" f
wlsNearRect src/Dodge/Zoning/Wall.hs 46;" f wlsNearRect src/Dodge/Zoning/Wall.hs 46;" f
@@ -5705,11 +5710,11 @@ writeSaveSlot src/Dodge/Save.hs 34;" f
xCylinder src/Shape.hs 137;" f xCylinder src/Shape.hs 137;" f
xCylinderST src/Shape.hs 134;" f xCylinderST src/Shape.hs 134;" f
xIntercepts src/Dodge/Zoning/Base.hs 60;" f xIntercepts src/Dodge/Zoning/Base.hs 60;" f
xV2 src/Geometry/Vector.hs 206;" f xV2 src/Geometry/Vector.hs 207;" f
xyV3 src/Geometry/Vector.hs 218;" f xyV3 src/Geometry/Vector.hs 219;" f
xyzV4 src/Geometry/Vector.hs 214;" f xyzV4 src/Geometry/Vector.hs 215;" f
yIntercepts' src/Dodge/Zoning/Base.hs 76;" f yIntercepts' src/Dodge/Zoning/Base.hs 76;" f
yV2 src/Geometry/Vector.hs 210;" f yV2 src/Geometry/Vector.hs 211;" f
yellow src/Color.hs 17;" f yellow src/Color.hs 17;" f
you src/Dodge/Base/You.hs 13;" f you src/Dodge/Base/You.hs 13;" f
youDropItem src/Dodge/Creature/Action.hs 196;" f youDropItem src/Dodge/Creature/Action.hs 196;" f
@@ -5725,7 +5730,7 @@ 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 9;" f
zipArcs src/Dodge/Tesla.hs 52;" f zipArcs src/Dodge/Tesla.hs 52;" f
zipCount src/Dodge/Tree/Shift.hs 136;" f zipCount src/Dodge/Tree/Shift.hs 136;" f
zipCountDown src/Dodge/Room/Procedural.hs 121;" f zipCountDown src/Dodge/Room/Procedural.hs 121;" f