Cleanup, move towards explosions at different z positions

This commit is contained in:
2025-08-04 22:13:45 +01:00
parent 7714e2e298
commit bde0fa2a5c
4 changed files with 221 additions and 178 deletions
+78 -38
View File
@@ -18,7 +18,7 @@ module Dodge.Base.Collide (
collideCircWalls, collideCircWalls,
overlapSegWalls, overlapSegWalls,
overlapSegCrs, overlapSegCrs,
-- bounceBall, -- bounceBall,
bouncePoint, bouncePoint,
circOnSomeWall, circOnSomeWall,
circOnAnyCr, circOnAnyCr,
@@ -37,14 +37,14 @@ module Dodge.Base.Collide (
collide3, collide3,
) where ) where
import Dodge.Data.Object
import Control.Monad
import Dodge.Creature.Radius
import Control.Lens import Control.Lens
import Control.Monad
import qualified Data.IntSet as IS import qualified Data.IntSet as IS
import Data.List (sortOn) import Data.List (sortOn)
import Data.Maybe import Data.Maybe
import Dodge.Base.Wall import Dodge.Base.Wall
import Dodge.Creature.Radius
import Dodge.Data.Object
import Dodge.Data.World import Dodge.Data.World
import Dodge.Zoning import Dodge.Zoning
import FoldableHelp import FoldableHelp
@@ -85,63 +85,95 @@ bouncePoint :: (Wall -> Bool) -> Float -> Point2 -> Point2 -> World -> Maybe (Po
{-# INLINE bouncePoint #-} {-# INLINE bouncePoint #-}
bouncePoint t x sp ep = doBounce x sp ep . collidePointWallsFilter t sp ep bouncePoint t x sp ep = doBounce x sp ep . collidePointWallsFilter t sp ep
type MPO = Maybe (Point3,Object) type MPO = Maybe (Point3, Object)
collide3WallsFloor :: Point3 -> Point3 -> World -> (Point3, MPO) collide3WallsFloor :: Point3 -> Point3 -> World -> (Point3, MPO)
collide3WallsFloor sp ep w = collide3Floors sp (w ^. cWorld . chasms) collide3WallsFloor sp ep w =
$ collide3Walls sp w (ep,Nothing) collide3Floors sp (w ^. cWorld . chasms) $
collide3Walls sp w (ep, Nothing)
collide3 :: Point3 -> Point3 -> World -> (Point3,MPO) -- could check the line is at least below z=0 at some point
collide3 sp ep w = foldl' (flip $ collide3Creature sp) (p,m) collide3Chasms :: Point3 -> World -> (Point3, MPO) -> (Point3, MPO)
$ crsNearSeg (xyV3 sp) (xyV3 p) w collide3Chasms sp w m =
foldl'
(flip (collide3Chasm sp))
m
(foldMap loopPairs $ w ^. cWorld . chasms)
collide3Chasm :: Point3 -> (Point2, Point2) -> (Point3, MPO) -> (Point3, MPO)
collide3Chasm sp ab (ep, m) =
maybe (ep, m) (,Just (n, OChasmWall)) $
intersectSegSurface sp ep p n ss
where where
(p,m) = collide3WallsFloor sp ep w (p, n, ss) = chasmWallToSurface ab
chasmWallToSurface :: (Point2, Point2) -> (Point3, Point3, [(Point3, Point3)])
chasmWallToSurface (x, y) =
( g x
, g $ vNormal (x - y)
, [(g x, g (y - x)), (g y, g (x - y)), (0, V3 0 0 (-1))]
)
where
g = (`v2z` 0)
collide3 :: Point3 -> Point3 -> World -> (Point3, MPO)
collide3 sp ep w =
collide3Chasms sp w
. foldl' (flip $ collide3Creature sp) (p, m)
$ crsNearSeg (xyV3 sp) (xyV3 p) w
where
(p, m) = collide3WallsFloor sp ep w
-- Just (hitpoint,normaltosurface) -- Just (hitpoint,normaltosurface)
collide3Walls :: Point3 -> World -> (Point3, MPO) -> (Point3, MPO) collide3Walls :: Point3 -> World -> (Point3, MPO) -> (Point3, MPO)
collide3Walls sp w ex@(ep,_) = foldl' f ex wls collide3Walls sp w ex@(ep, _) = foldl' f ex wls
where where
f x wl = collide3Wall sp wl x f x wl = collide3Wall sp wl x
wls = wlsNearSeg (xyV3 sp) (xyV3 ep) w wls = wlsNearSeg (xyV3 sp) (xyV3 ep) w
collide3Floors :: Point3 -> [[Point2]] -> (Point3, Maybe (Point3,Object)) collide3Floors ::
-> (Point3, Maybe (Point3,Object)) Point3 ->
collide3Floors sp cs (ep,mn) = maybe (ep,mn) (,Just (V3 0 0 1,OFloor)) mp [[Point2]] ->
(Point3, Maybe (Point3, Object)) ->
(Point3, Maybe (Point3, Object))
collide3Floors sp cs (ep, mn) = maybe (ep, mn) (,Just (V3 0 0 1, OFloor)) mp
where where
mp = do mp = do
V3 x y z <- intersectSegPlane sp ep (V3 0 0 0) (V3 0 0 1) V3 x y z <- intersectSegPlane sp ep (V3 0 0 0) (V3 0 0 1)
let g (a,b) = isRHS a b (V2 x y) let g (a, b) = isRHS a b (V2 x y)
f = any g f = any g
guard (all (f . loopPairs) cs) guard (all (f . loopPairs) cs)
return $ (V3 x y z) return $ (V3 x y z)
collide3Wall :: Point3 -> Wall -> (Point3, MPO) -> (Point3, MPO) collide3Wall :: Point3 -> Wall -> (Point3, MPO) -> (Point3, MPO)
collide3Wall sp wl (ep,mo) = maybe (ep,mo) (,Just (n,OWall wl)) $ intersectSegSurface sp ep p n ss collide3Wall sp wl (ep, mo) = maybe (ep, mo) (,Just (n, OWall wl)) $ intersectSegSurface sp ep p n ss
where where
(p,n,ss) = wallToSurface wl (p, n, ss) = wallToSurface wl
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) >>= restrictSeg (V3 0 0 25) (V3 0 0 (-1)) (sp', ep') <- restrictSeg 0 (V3 0 0 1) (sp, ep) >>= restrictSeg (V3 0 0 25) (V3 0 0 (-1))
p <- listToMaybe $ intersectCircSeg cpos (crRad $ cr ^. crType) (xyV3 sp') (xyV3 ep') p <- listToMaybe $ intersectCircSeg cpos (crRad $ cr ^. crType) (xyV3 sp') (xyV3 ep')
let z = 0 let z = 0
return (p `v2z` z,Just (normalize $ (p - cpos) `v2z` 0, OCreature cr)) return (p `v2z` z, Just (normalize $ (p - cpos) `v2z` 0, OCreature cr))
where where
cpos = cr ^. crPos cpos = cr ^. crPos
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)
| isNHS p n sp | isNHS p n sp
, isNHS p n ep = Just (sp,ep) , isNHS p n ep =
Just (sp, ep)
| isNHS p n sp = (sp,) <$> intersectSegPlane sp ep p n | isNHS p n sp = (sp,) <$> intersectSegPlane sp ep p n
| otherwise = (,ep) <$> intersectSegPlane sp ep p n | otherwise = (,ep) <$> intersectSegPlane sp ep p n
-- note if both sp & ep are not NHS, this returns Nothing
wallToSurface :: Wall -> (Point3,Point3,[(Point3,Point3)]) -- note if both sp & ep are not NHS, this returns Nothing
wallToSurface wl = (g x, g $ vNormal (x-y), [(g x,g (y-x)),(g y,g (x-y))])
where wallToSurface :: Wall -> (Point3, Point3, [(Point3, Point3)])
g = (`v2z` 0) wallToSurface wl = (g x, g $ vNormal (x - y), [(g x, g (y - x)), (g y, g (x - y))])
(x,y) = _wlLine wl where
g = (`v2z` 0)
(x, y) = _wlLine wl
-- this COULD be written in terms of collidePointWallsFilterStream, TODO test -- this COULD be written in terms of collidePointWallsFilterStream, TODO test
-- whether this is actually faster -- whether this is actually faster
@@ -198,9 +230,11 @@ overlapCircWalls p r = mapMaybe dointersect
f (a, b) = intersectSegSeg p (p +.+ r *.* normalizeV ((0.5 *.* (a +.+ b)) -.- p)) a b f (a, b) = intersectSegSeg p (p +.+ r *.* normalizeV ((0.5 *.* (a +.+ b)) -.- p)) a b
circHitWall :: Point2 -> Point2 -> Float -> World -> Bool circHitWall :: Point2 -> Point2 -> Float -> World -> Bool
circHitWall sp ep r w = any (uncurry (intersectSegSegTest xsp xep) . _wlLine) circHitWall sp ep r w =
any
(uncurry (intersectSegSegTest xsp xep) . _wlLine)
(wlsNearSeg xsp xep w) (wlsNearSeg xsp xep w)
|| circOnSomeWall ep r w || circOnSomeWall ep r w
where where
x = r *.* normalizeV (ep - sp) x = r *.* normalizeV (ep - sp)
xsp = sp - x xsp = sp - x
@@ -213,12 +247,17 @@ collideCircWalls sp ep rad = foldl' findPoint (ep, Nothing)
where where
findPoint (p, mwl) wl = findPoint (p, mwl) wl =
maybe (p, mwl) (,Just wl) . uncurry (intersectSegSeg sp p) maybe (p, mwl) (,Just wl) . uncurry (intersectSegSeg sp p)
. shiftbyrad . _wlLine $ wl . shiftbyrad
-- shiftbyrad (a, b) = . _wlLine
-- ( a +.+ rad *.* normalizeV (a -.- b) $ wl
-- , b +.+ rad *.* normalizeV (b -.- a) -- shiftbyrad (a, b) =
-- ) -- ( a +.+ rad *.* normalizeV (a -.- b)
shiftbyrad (a, b) = bimap f f -- , b +.+ rad *.* normalizeV (b -.- a)
-- )
shiftbyrad (a, b) =
bimap
f
f
( a +.+ rad *.* normalizeV (a -.- b) ( a +.+ rad *.* normalizeV (a -.- b)
, b +.+ rad *.* normalizeV (b -.- a) , b +.+ rad *.* normalizeV (b -.- a)
) )
@@ -262,6 +301,7 @@ hasLOS p1 p2 =
hasButtonLOS :: Point2 -> Point2 -> World -> Bool hasButtonLOS :: Point2 -> Point2 -> World -> Bool
{-# INLINE hasButtonLOS #-} {-# INLINE hasButtonLOS #-}
hasButtonLOS _ _ = const True hasButtonLOS _ _ = const True
--hasButtonLOS p1 p2 = --hasButtonLOS p1 p2 =
-- not -- not
-- . collidePointTestFilter (not . _wlTouchThrough) p1 p2 -- . collidePointTestFilter (not . _wlTouchThrough) p1 p2
+28 -25
View File
@@ -64,7 +64,7 @@ shellExplosionCheck pj w
time = _pjTimer pj time = _pjTimer pj
shellHitWall :: Point3 -> Point3 -> Wall -> Projectile -> World -> World shellHitWall :: Point3 -> Point3 -> Wall -> Projectile -> World -> World
shellHitWall p' n wl pj w shellHitWall p' _ wl pj w
| Just GStick <- pj ^? pjType . gnHitEffect = | Just GStick <- pj ^? pjType . gnHitEffect =
w w
& cWorld . lWorld . projectiles . ix (_pjID pj) . pjType & cWorld . lWorld . projectiles . ix (_pjID pj) . pjType
@@ -84,28 +84,27 @@ shellHitWall p' n wl pj w
p = xyV3 p' p = xyV3 p'
hitline = normalizeV $ uncurry (-) $ _wlLine wl hitline = normalizeV $ uncurry (-) $ _wlLine wl
shellHitCreature :: Point3 -> Point3 -> Creature -> Projectile -> World -> World shellHitCreature :: Point3 -> Creature -> Projectile -> World -> World
shellHitCreature p' n cr pj w shellHitCreature p cr pj w
| Just GStick <- pj ^? pjType . gnHitEffect = | Just GStick <- pj ^? pjType . gnHitEffect =
w w
& cWorld . lWorld . projectiles . ix (_pjID pj) . pjType & cWorld . lWorld . projectiles . ix (_pjID pj) . pjType
.~ Grenade .~ Grenade
( GStuckCreature ( GStuckCreature
(cr ^. crID) (cr ^. crID)
(rotate3z (- cr ^. crDir) (p' - ((cr ^. crPos)`v2z`0))) (rotate3z (- cr ^. crDir) (p - ((cr ^. crPos)`v2z`0)))
(pj ^. pjDir - cr ^. crDir) (pj ^. pjDir - cr ^. crDir)
) )
& soundOriginIDsAt (ShellSound (pj ^. pjID)) [slapS, slap1S] (pj ^. pjPos . _xy) & soundOriginIDsAt (ShellSound (pj ^. pjID)) [slapS, slap1S] (pj ^. pjPos . _xy)
| otherwise = w & cWorld . lWorld . projectiles . ix (_pjID pj) . pjPos .~ p' | otherwise = w
& cWorld . lWorld . projectiles . ix (_pjID pj) . pjTimer .~ 0 & cWorld . lWorld . projectiles . ix (_pjID pj) . pjTimer .~ 0
where
p = xyV3 p'
shellHitFloor :: Point3 -> Point3 -> Projectile -> World -> World shellHitFloor :: Point3 -> Projectile -> World -> World
shellHitFloor p' n pj w shellHitFloor p' pj w
| z < 1 && norm (_pjVel pj) < 1 = w | z < 1 && norm (_pjVel pj) < 1 = w
| otherwise = | otherwise =
w & topj . pjPos . _z .~ 0.1 w
& topj . pjPos .~ (p' & _z .~ 0.1)
& topj . pjVel . _z %~ bouncez & topj . pjVel . _z %~ bouncez
& topj . pjVel . _xy %~ decvel & topj . pjVel . _xy %~ decvel
& topj . pjSpin %~ decspin & topj . pjSpin %~ decspin
@@ -244,14 +243,9 @@ pjRemoteSetDirection ph pj w = case ph of
where where
lw = w ^. cWorld . lWorld lw = w ^. cWorld . lWorld
moveStuckGrenade :: Creature -> Point3 -> Float -> Projectile -> World -> World moveStuckGrenade :: Int -> Point3 -> Float -> Projectile -> World -> World
moveStuckGrenade cr p d pj w = w moveStuckGrenade cid poff d pj w
| Just cr <- w ^? cWorld . lWorld . creatures . ix cid =
moveProjectile :: Projectile -> World -> World
moveProjectile pj w
| Just GStuckWall{} <- pj ^? pjType . gnHitEffect = w
| Just (GStuckCreature crid poff d) <- pj ^? pjType . gnHitEffect
, Just cr <- w ^? cWorld . lWorld . creatures . ix crid =
let cpos = cr ^. crPos let cpos = cr ^. crPos
cdir = cr ^. crDir cdir = cr ^. crDir
vel = cpos - cr ^. crOldPos vel = cpos - cr ^. crOldPos
@@ -260,21 +254,30 @@ moveProjectile pj w
.~ xyV3 ((cpos `v2z` 0) + rotate3z cdir poff) .~ xyV3 ((cpos `v2z` 0) + rotate3z cdir poff)
& cWorld . lWorld . projectiles . ix (pj ^. pjID) . pjDir .~ d + cdir & cWorld . lWorld . projectiles . ix (pj ^. pjID) . pjDir .~ d + cdir
& cWorld . lWorld . projectiles . ix (pj ^. pjID) . pjVel . _xy .~ vel & cWorld . lWorld . projectiles . ix (pj ^. pjID) . pjVel . _xy .~ vel
| Just GStuckCreature{} <- pj ^? pjType . gnHitEffect = | otherwise =
w & cWorld . lWorld . projectiles . ix (pj ^. pjID) . pjType .~ Grenade GStick w & cWorld . lWorld . projectiles . ix (pj ^. pjID) . pjType .~ Grenade GStick
| (p,Just (n,OWall wl)) <- collide3 p (p + _pjVel pj) w
moveProjectile :: Projectile -> World -> World
moveProjectile pj w
| Just GStuckWall{} <- pj ^? pjType . gnHitEffect = w
| Just (GStuckCreature crid poff d) <- pj ^? pjType . gnHitEffect
= moveStuckGrenade crid poff d pj w
| (p,Just (n,OWall wl)) <- collide3 sp (sp + _pjVel pj) w
= shellHitWall p n wl pj w = shellHitWall p n wl pj w
| (p,Just (n,OFloor)) <- collide3 p (p + _pjVel pj) w | (p,Just (_,OFloor)) <- collide3 sp (sp + _pjVel pj) w
= shellHitFloor p n pj w = shellHitFloor p pj w
| (p,Just (n,OCreature cr)) <- collide3 p (p + _pjVel pj) w | (p,Just (_,OCreature cr)) <- collide3 sp (sp + _pjVel pj) w
= shellHitCreature p n cr pj w = shellHitCreature p cr pj w
| (_,Just (_,OChasmWall)) <- collide3 sp (sp + _pjVel pj) w
-- no stick or bounce for now
= w & cWorld . lWorld . projectiles . ix (pj ^. pjID) . pjTimer .~ 0
| otherwise = | otherwise =
w w
& cWorld . lWorld . projectiles . ix (pj ^. pjID) . pjSpin *~ 0.99 & cWorld . lWorld . projectiles . ix (pj ^. pjID) . pjSpin *~ 0.99
& cWorld . lWorld . projectiles . ix (pj ^. pjID) . pjPos +~ _pjVel pj & cWorld . lWorld . projectiles . ix (pj ^. pjID) . pjPos +~ _pjVel pj
& cWorld . lWorld . projectiles . ix (pj ^. pjID) . pjDir +~ _pjSpin pj & cWorld . lWorld . projectiles . ix (pj ^. pjID) . pjDir +~ _pjSpin pj
where where
p = _pjPos pj sp = _pjPos pj
explodeShell :: Projectile -> World -> World explodeShell :: Projectile -> World -> World
explodeShell pj w = explodeShell pj w =
+1 -1
View File
@@ -71,7 +71,7 @@ makeFlameExplosionAt p w =
makeExplosionAt :: Point2 -> Point2 -> World -> World makeExplosionAt :: Point2 -> Point2 -> World -> World
makeExplosionAt p vel w = makeExplosionAt p vel w =
w w
& soundStart (Explosion (w ^. cWorld . lWorld . lClock)) p bangS Nothing & soundStart (Explosion (w ^. cWorld . lWorld . lClock)) (p) bangS Nothing
& addFlames & addFlames
& cWorld . lWorld . worldEvents & cWorld . lWorld . worldEvents
.:~ MakeTempLight (LSParam (addZ 20 p) 150 (V3 1 0.5 0)) 20 .:~ MakeTempLight (LSParam (addZ 20 p) 150 (V3 1 0.5 0)) 20
+114 -114
View File
@@ -489,16 +489,16 @@ FullShadowFidelity src/Shape/Data.hs 24;" C
FullSize src/Dodge/Data/Item/Params.hs 28;" C FullSize src/Dodge/Data/Item/Params.hs 28;" C
FullyVisible src/Dodge/Data/CamouflageStatus.hs 6;" C FullyVisible src/Dodge/Data/CamouflageStatus.hs 6;" C
FunctionChangeSF src/Dodge/Data/ComposedItem.hs 34;" C FunctionChangeSF src/Dodge/Data/ComposedItem.hs 34;" C
GBounce src/Dodge/Data/Projectile.hs 50;" C GBounce src/Dodge/Data/Projectile.hs 48;" C
GEqC src/SameConstr.hs 20;" c GEqC src/SameConstr.hs 20;" c
GIMBAL src/Dodge/Data/Item/Combine.hs 97;" C GIMBAL src/Dodge/Data/Item/Combine.hs 97;" C
GLASSSHARD src/Dodge/Data/Item/Combine.hs 61;" C GLASSSHARD src/Dodge/Data/Item/Combine.hs 61;" C
GLAUNCHER src/Dodge/Data/Item/Combine.hs 173;" C GLAUNCHER src/Dodge/Data/Item/Combine.hs 173;" C
GRAPECANNON src/Dodge/Data/Item/Combine.hs 151;" C GRAPECANNON src/Dodge/Data/Item/Combine.hs 151;" C
GREEN src/Color/Data.hs 16;" C GREEN src/Color/Data.hs 16;" C
GStick src/Dodge/Data/Projectile.hs 51;" C GStick src/Dodge/Data/Projectile.hs 49;" C
GStuckCreature src/Dodge/Data/Projectile.hs 52;" C GStuckCreature src/Dodge/Data/Projectile.hs 50;" C
GStuckWall src/Dodge/Data/Projectile.hs 53;" C GStuckWall src/Dodge/Data/Projectile.hs 51;" C
GYROSCOPE src/Dodge/Data/Item/Combine.hs 98;" C GYROSCOPE src/Dodge/Data/Item/Combine.hs 98;" C
GadgetPlatformSF src/Dodge/Data/ComposedItem.hs 18;" C GadgetPlatformSF src/Dodge/Data/ComposedItem.hs 18;" C
GameOverOptions src/Dodge/Data/Universe.hs 72;" C GameOverOptions src/Dodge/Data/Universe.hs 72;" C
@@ -526,8 +526,8 @@ GoesOnLegs src/Dodge/Data/Equipment/Misc.hs 16;" C
GoesOnWrist src/Dodge/Data/Equipment/Misc.hs 15;" C GoesOnWrist src/Dodge/Data/Equipment/Misc.hs 15;" C
Government src/Dodge/Data/Scenario.hs 43;" C Government src/Dodge/Data/Scenario.hs 43;" C
GovernmentScope src/Dodge/Data/Scenario.hs 49;" t GovernmentScope src/Dodge/Data/Scenario.hs 49;" t
Grenade src/Dodge/Data/Projectile.hs 35;" C Grenade src/Dodge/Data/Projectile.hs 33;" C
GrenadeHitEffect src/Dodge/Data/Projectile.hs 49;" t GrenadeHitEffect src/Dodge/Data/Projectile.hs 47;" t
GrenadeHitEffectSF src/Dodge/Data/ComposedItem.hs 37;" C GrenadeHitEffectSF src/Dodge/Data/ComposedItem.hs 37;" C
Gust src/Dodge/Data/Gust.hs 13;" t Gust src/Dodge/Data/Gust.hs 13;" t
GymSS src/Dodge/Data/Scenario.hs 104;" C GymSS src/Dodge/Data/Scenario.hs 104;" C
@@ -549,8 +549,8 @@ HeavySmokeFlare src/Dodge/Data/Muzzle.hs 29;" C
HeldItemType src/Dodge/Data/Item/Combine.hs 140;" t HeldItemType src/Dodge/Data/Item/Combine.hs 140;" t
HeldPlatformSF src/Dodge/Data/ComposedItem.hs 14;" C HeldPlatformSF src/Dodge/Data/ComposedItem.hs 14;" C
HiddenGoal src/Dodge/Data/Scenario.hs 14;" C HiddenGoal src/Dodge/Data/Scenario.hs 14;" C
HomeUsingRemoteScreen src/Dodge/Data/Projectile.hs 45;" C HomeUsingRemoteScreen src/Dodge/Data/Projectile.hs 43;" C
HomeUsingTargeting src/Dodge/Data/Projectile.hs 46;" C HomeUsingTargeting src/Dodge/Data/Projectile.hs 44;" C
Hospital src/Dodge/Data/Scenario.hs 69;" C Hospital src/Dodge/Data/Scenario.hs 69;" C
Hotkey src/Dodge/Data/Equipment/Misc.hs 32;" t Hotkey src/Dodge/Data/Equipment/Misc.hs 32;" t
Hotkey0 src/Dodge/Data/Equipment/Misc.hs 49;" C Hotkey0 src/Dodge/Data/Equipment/Misc.hs 49;" C
@@ -857,7 +857,7 @@ NoDebugInfo src/Dodge/Data/Universe.hs 58;" C
NoEscapeMenuOption src/Dodge/Data/Universe.hs 79;" C NoEscapeMenuOption src/Dodge/Data/Universe.hs 79;" C
NoFaction src/Dodge/Data/Creature/State.hs 20;" C NoFaction src/Dodge/Data/Creature/State.hs 20;" C
NoFlare src/Dodge/Data/Muzzle.hs 25;" C NoFlare src/Dodge/Data/Muzzle.hs 25;" C
NoHoming src/Dodge/Data/Projectile.hs 44;" C NoHoming src/Dodge/Data/Projectile.hs 42;" C
NoIntImp src/Dodge/Data/CreatureEffect.hs 20;" C NoIntImp src/Dodge/Data/CreatureEffect.hs 20;" C
NoItTargeting src/Dodge/Data/Item.hs 56;" C NoItTargeting src/Dodge/Data/Item.hs 56;" C
NoItemScroll src/Dodge/Data/Item.hs 52;" C NoItemScroll src/Dodge/Data/Item.hs 52;" C
@@ -1046,7 +1046,7 @@ Prison src/Dodge/Data/Scenario.hs 65;" C
Projectile src/Dodge/Data/Projectile.hs 17;" t Projectile src/Dodge/Data/Projectile.hs 17;" t
ProjectileParams src/Dodge/Data/Item/Use.hs 53;" C ProjectileParams src/Dodge/Data/Item/Use.hs 53;" C
ProjectileStabiliserSF src/Dodge/Data/ComposedItem.hs 36;" C ProjectileStabiliserSF src/Dodge/Data/ComposedItem.hs 36;" C
ProjectileType src/Dodge/Data/Projectile.hs 34;" t ProjectileType src/Dodge/Data/Projectile.hs 32;" t
Prop src/Dodge/Data/Prop.hs 18;" t Prop src/Dodge/Data/Prop.hs 18;" t
PropDoubleLampCover src/Dodge/Data/Prop.hs 63;" C PropDoubleLampCover src/Dodge/Data/Prop.hs 63;" C
PropDraw src/Dodge/Data/Prop.hs 58;" t PropDraw src/Dodge/Data/Prop.hs 58;" t
@@ -1132,7 +1132,7 @@ RandomTurn src/Dodge/Data/ActionPlan.hs 31;" C
ReactorSS src/Dodge/Data/Scenario.hs 111;" C ReactorSS src/Dodge/Data/Scenario.hs 111;" C
RecRoomSS src/Dodge/Data/Scenario.hs 103;" C RecRoomSS src/Dodge/Data/Scenario.hs 103;" C
RectRoomType src/Dodge/Data/Room.hs 32;" C RectRoomType src/Dodge/Data/Room.hs 32;" C
ReducedRocketSmoke src/Dodge/Data/Projectile.hs 57;" C ReducedRocketSmoke src/Dodge/Data/Projectile.hs 55;" C
ReigonalGovernment src/Dodge/Data/Scenario.hs 50;" C ReigonalGovernment src/Dodge/Data/Scenario.hs 50;" C
Religion src/Dodge/Data/Scenario.hs 47;" C Religion src/Dodge/Data/Scenario.hs 47;" C
Reload src/Dodge/Data/ActionPlan.hs 190;" C Reload src/Dodge/Data/ActionPlan.hs 190;" C
@@ -1149,7 +1149,7 @@ ResFactor src/Dodge/Data/Config.hs 97;" t
ResearchFacility src/Dodge/Data/Scenario.hs 62;" C ResearchFacility src/Dodge/Data/Scenario.hs 62;" C
ResourceFailure src/Dodge/Data/Scenario.hs 29;" C ResourceFailure src/Dodge/Data/Scenario.hs 29;" C
RetailFacility src/Dodge/Data/Scenario.hs 67;" C RetailFacility src/Dodge/Data/Scenario.hs 67;" C
RetiredProjectile src/Dodge/Data/Projectile.hs 40;" C RetiredProjectile src/Dodge/Data/Projectile.hs 38;" C
Revenge src/Dodge/Data/Scenario.hs 6;" C Revenge src/Dodge/Data/Scenario.hs 6;" C
RewindLeftClick src/Dodge/Data/World.hs 73;" C RewindLeftClick src/Dodge/Data/World.hs 73;" C
RezBaySS src/Dodge/Data/Scenario.hs 105;" C RezBaySS src/Dodge/Data/Scenario.hs 105;" C
@@ -1157,9 +1157,9 @@ RightButtonOptions src/Dodge/Data/RightButtonOptions.hs 13;" t
RightForward src/Dodge/Data/Creature/Stance.hs 33;" C RightForward src/Dodge/Data/Creature/Stance.hs 33;" C
RightwardDT src/Dodge/Data/DoubleTree.hs 93;" C RightwardDT src/Dodge/Data/DoubleTree.hs 93;" C
RightwardLDT src/Dodge/Data/DoubleTree.hs 52;" C RightwardLDT src/Dodge/Data/DoubleTree.hs 52;" C
Rocket src/Dodge/Data/Projectile.hs 36;" C Rocket src/Dodge/Data/Projectile.hs 34;" C
RocketHoming src/Dodge/Data/Projectile.hs 43;" t RocketHoming src/Dodge/Data/Projectile.hs 41;" t
RocketSmoke src/Dodge/Data/Projectile.hs 56;" t RocketSmoke src/Dodge/Data/Projectile.hs 54;" t
RocketSmoke src/Dodge/Data/Cloud.hs 24;" C RocketSmoke src/Dodge/Data/Cloud.hs 24;" C
Room src/Dodge/Data/GenWorld.hs 95;" t Room src/Dodge/Data/GenWorld.hs 95;" t
RoomClipping src/Dodge/Data/Config.hs 107;" t RoomClipping src/Dodge/Data/Config.hs 107;" t
@@ -1617,7 +1617,7 @@ _bmRange src/Dodge/Data/Beam.hs 26;" f
_bmType src/Dodge/Data/Beam.hs 29;" f _bmType src/Dodge/Data/Beam.hs 29;" f
_boffEff src/Dodge/Data/Button.hs 23;" f _boffEff src/Dodge/Data/Button.hs 23;" f
_bonEff src/Dodge/Data/Button.hs 22;" f _bonEff src/Dodge/Data/Button.hs 22;" f
_bounceTolerance src/Dodge/Data/Projectile.hs 50;" f _bounceTolerance src/Dodge/Data/Projectile.hs 48;" f
_bpColor src/Dodge/Data/Button.hs 19;" f _bpColor src/Dodge/Data/Button.hs 19;" f
_bpEff src/Dodge/Data/Button.hs 18;" f _bpEff src/Dodge/Data/Button.hs 18;" f
_bsColor1 src/Dodge/Data/Button.hs 24;" f _bsColor1 src/Dodge/Data/Button.hs 24;" f
@@ -1908,7 +1908,7 @@ _gfMax src/Dodge/Data/GenFloat.hs 12;" f
_gfMin src/Dodge/Data/GenFloat.hs 12;" f _gfMin src/Dodge/Data/GenFloat.hs 12;" f
_gibColor src/Dodge/Data/Prop.hs 44;" f _gibColor src/Dodge/Data/Prop.hs 44;" f
_gibSize src/Dodge/Data/Prop.hs 43;" f _gibSize src/Dodge/Data/Prop.hs 43;" f
_gnHitEffect src/Dodge/Data/Projectile.hs 35;" f _gnHitEffect src/Dodge/Data/Projectile.hs 33;" f
_grBound src/Dodge/GameRoom.hs 18;" f _grBound src/Dodge/GameRoom.hs 18;" f
_grDir src/Dodge/GameRoom.hs 20;" f _grDir src/Dodge/GameRoom.hs 20;" f
_grLinkDirs src/Dodge/GameRoom.hs 21;" f _grLinkDirs src/Dodge/GameRoom.hs 21;" f
@@ -2155,25 +2155,23 @@ _peZoning src/Dodge/Data/World.hs 52;" f
_penEnd src/Dodge/Data/PathGraph.hs 35;" f _penEnd src/Dodge/Data/PathGraph.hs 35;" f
_penPathEdge src/Dodge/Data/PathGraph.hs 36;" f _penPathEdge src/Dodge/Data/PathGraph.hs 36;" f
_penStart src/Dodge/Data/PathGraph.hs 34;" f _penStart src/Dodge/Data/PathGraph.hs 34;" f
_phRemoteID src/Dodge/Data/Projectile.hs 45;" f _phRemoteID src/Dodge/Data/Projectile.hs 43;" f
_phTargetingID src/Dodge/Data/Projectile.hs 46;" f _phTargetingID src/Dodge/Data/Projectile.hs 44;" f
_pickUpLevel src/Dodge/Layout/Generate.hs 14;" f _pickUpLevel src/Dodge/Layout/Generate.hs 14;" f
_pickUps src/Dodge/Layout/Generate.hs 15;" f _pickUps src/Dodge/Layout/Generate.hs 15;" f
_pictureShaders src/Data/Preload/Render.hs 28;" f _pictureShaders src/Data/Preload/Render.hs 28;" f
_piercedPoints src/Dodge/Data/Creature/Misc.hs 89;" f _piercedPoints src/Dodge/Data/Creature/Misc.hs 89;" f
_pjBarrelSpin src/Dodge/Data/Projectile.hs 27;" f _pjBarrelSpin src/Dodge/Data/Projectile.hs 25;" f
_pjDetonatorID src/Dodge/Data/Projectile.hs 29;" f _pjDetonatorID src/Dodge/Data/Projectile.hs 27;" f
_pjDir src/Dodge/Data/Projectile.hs 21;" f _pjDir src/Dodge/Data/Projectile.hs 20;" f
_pjID src/Dodge/Data/Projectile.hs 23;" f _pjID src/Dodge/Data/Projectile.hs 22;" f
_pjPayload src/Dodge/Data/Projectile.hs 24;" f _pjPayload src/Dodge/Data/Projectile.hs 23;" f
_pjPos src/Dodge/Data/Projectile.hs 18;" f _pjPos src/Dodge/Data/Projectile.hs 18;" f
_pjScreenID src/Dodge/Data/Projectile.hs 30;" f _pjScreenID src/Dodge/Data/Projectile.hs 28;" f
_pjSpin src/Dodge/Data/Projectile.hs 22;" f _pjSpin src/Dodge/Data/Projectile.hs 21;" f
_pjTimer src/Dodge/Data/Projectile.hs 25;" f _pjTimer src/Dodge/Data/Projectile.hs 24;" f
_pjType src/Dodge/Data/Projectile.hs 28;" f _pjType src/Dodge/Data/Projectile.hs 26;" f
_pjVel src/Dodge/Data/Projectile.hs 20;" f _pjVel src/Dodge/Data/Projectile.hs 19;" f
_pjZ src/Dodge/Data/Projectile.hs 19;" f
_pjZVel src/Dodge/Data/Projectile.hs 26;" f
_plIDCont src/Dodge/Data/GenWorld.hs 82;" f _plIDCont src/Dodge/Data/GenWorld.hs 82;" f
_plMID src/Dodge/Data/GenWorld.hs 81;" f _plMID src/Dodge/Data/GenWorld.hs 81;" f
_plOrder src/Dodge/Data/GenWorld.hs 78;" f _plOrder src/Dodge/Data/GenWorld.hs 78;" f
@@ -2265,8 +2263,8 @@ _renderData src/Data/Preload.hs 11;" f
_reverseAmount src/Dodge/Data/World.hs 64;" f _reverseAmount src/Dodge/Data/World.hs 64;" f
_reverseAmount src/Dodge/Data/World.hs 70;" f _reverseAmount src/Dodge/Data/World.hs 70;" f
_reverseAmount src/Dodge/Data/World.hs 74;" f _reverseAmount src/Dodge/Data/World.hs 74;" f
_rkHoming src/Dodge/Data/Projectile.hs 37;" f _rkHoming src/Dodge/Data/Projectile.hs 35;" f
_rkSmoke src/Dodge/Data/Projectile.hs 38;" f _rkSmoke src/Dodge/Data/Projectile.hs 36;" f
_rlDir src/Dodge/Data/Room.hs 26;" f _rlDir src/Dodge/Data/Room.hs 26;" f
_rlPos src/Dodge/Data/Room.hs 25;" f _rlPos src/Dodge/Data/Room.hs 25;" f
_rlType src/Dodge/Data/Room.hs 24;" f _rlType src/Dodge/Data/Room.hs 24;" f
@@ -2404,10 +2402,10 @@ _ssShownItems src/Dodge/Data/SelectionList.hs 32;" f
_ssShownLength src/Dodge/Data/SelectionList.hs 33;" f _ssShownLength src/Dodge/Data/SelectionList.hs 33;" f
_strideAmount src/Dodge/Data/Creature/Stance.hs 22;" f _strideAmount src/Dodge/Data/Creature/Stance.hs 22;" f
_strideLength src/Dodge/Data/Creature/Stance.hs 16;" f _strideLength src/Dodge/Data/Creature/Stance.hs 16;" f
_stuckCrID src/Dodge/Data/Projectile.hs 52;" f _stuckCrID src/Dodge/Data/Projectile.hs 50;" f
_stuckCrOffset src/Dodge/Data/Projectile.hs 52;" f _stuckCrOffset src/Dodge/Data/Projectile.hs 50;" f
_stuckCrRot src/Dodge/Data/Projectile.hs 52;" f _stuckCrRot src/Dodge/Data/Projectile.hs 50;" f
_stuckWlID src/Dodge/Data/Projectile.hs 53;" f _stuckWlID src/Dodge/Data/Projectile.hs 51;" f
_subInventory src/Dodge/Data/HUD.hs 20;" f _subInventory src/Dodge/Data/HUD.hs 20;" f
_swColor src/Dodge/Data/Shockwave.hs 18;" f _swColor src/Dodge/Data/Shockwave.hs 18;" f
_swDam src/Dodge/Data/Shockwave.hs 23;" f _swDam src/Dodge/Data/Shockwave.hs 23;" f
@@ -2663,7 +2661,7 @@ airlockDoor src/Dodge/Room/Airlock.hs 51;" f
airlockDoubleDoor src/Dodge/Room/Airlock.hs 54;" f airlockDoubleDoor src/Dodge/Room/Airlock.hs 54;" f
airlockSimple src/Dodge/Room/Airlock.hs 66;" f airlockSimple src/Dodge/Room/Airlock.hs 66;" f
airlockZ src/Dodge/Room/Airlock.hs 91;" f airlockZ src/Dodge/Room/Airlock.hs 91;" f
allVisibleWalls src/Dodge/Base/Collide.hs 183;" f allVisibleWalls src/Dodge/Base/Collide.hs 215;" f
alongSegBy src/Geometry.hs 41;" f alongSegBy src/Geometry.hs 41;" 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
@@ -2677,11 +2675,11 @@ angleVV src/Geometry/Vector.hs 57;" f
angleVV3 src/Geometry/Vector3D.hs 122;" f angleVV3 src/Geometry/Vector3D.hs 122;" f
annoToRoomTree src/Dodge/Annotation.hs 17;" f annoToRoomTree src/Dodge/Annotation.hs 17;" f
anyUnusedSpot src/Dodge/PlacementSpot.hs 66;" f anyUnusedSpot src/Dodge/PlacementSpot.hs 66;" f
anythingHitCirc src/Dodge/Base/Collide.hs 298;" f anythingHitCirc src/Dodge/Base/Collide.hs 338;" f
applyCME src/Dodge/HeldUse.hs 378;" f applyCME src/Dodge/HeldUse.hs 378;" 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 43;" f
applyIndividualDamage src/Dodge/Creature/Damage.hs 16;" f applyIndividualDamage src/Dodge/Creature/Damage.hs 16;" f
applyInvLock src/Dodge/HeldUse.hs 444;" f applyInvLock src/Dodge/HeldUse.hs 444;" f
applyMagnetsToBul src/Dodge/Bullet.hs 30;" f applyMagnetsToBul src/Dodge/Bullet.hs 30;" f
@@ -2757,7 +2755,7 @@ bangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 668;" f
bangStick src/Dodge/Item/Held/Stick.hs 15;" f bangStick src/Dodge/Item/Held/Stick.hs 15;" f
barPP src/Dodge/Room/Foreground.hs 236;" f barPP src/Dodge/Room/Foreground.hs 236;" f
barrel src/Dodge/Creature/Inanimate.hs 17;" f barrel src/Dodge/Creature/Inanimate.hs 17;" f
barrelShape src/Dodge/Render/ShapePicture.hs 66;" f barrelShape src/Dodge/Render/ShapePicture.hs 67;" f
baseAMRShape src/Dodge/Item/Draw/SPic.hs 418;" f baseAMRShape src/Dodge/Item/Draw/SPic.hs 418;" f
baseBlockPane src/Dodge/Placement/Instance/Wall.hs 86;" f baseBlockPane src/Dodge/Placement/Instance/Wall.hs 86;" f
baseCI src/Dodge/Item/Grammar.hs 157;" f baseCI src/Dodge/Item/Grammar.hs 157;" f
@@ -2841,7 +2839,7 @@ branchRectWith src/Dodge/Room/Branch.hs 15;" f
branchWith src/Dodge/Room/Room.hs 67;" f branchWith src/Dodge/Room/Room.hs 67;" f
bright src/Color.hs 120;" f bright src/Color.hs 120;" f
brightX src/Color.hs 116;" f brightX src/Color.hs 116;" f
btSPic src/Dodge/Render/ShapePicture.hs 126;" f btSPic src/Dodge/Render/ShapePicture.hs 127;" f
btText src/Dodge/Inventory/SelectionList.hs 234;" f btText src/Dodge/Inventory/SelectionList.hs 234;" f
bufferEBO src/Shader/Bind.hs 28;" f bufferEBO src/Shader/Bind.hs 28;" f
bufferPokedVBO src/Shader/Bind.hs 19;" f bufferPokedVBO src/Shader/Bind.hs 19;" f
@@ -2859,8 +2857,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 284;" f canSee src/Dodge/Base/Collide.hs 324;" f
canSeeIndirect src/Dodge/Base/Collide.hs 291;" f canSeeIndirect src/Dodge/Base/Collide.hs 331;" 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 16;" f cardEightVec src/Dodge/Base/CardinalPoint.hs 16;" f
@@ -2889,6 +2887,7 @@ 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
chasmTest src/Dodge/Creature/Update.hs 26;" f chasmTest src/Dodge/Creature/Update.hs 26;" f
chasmWallToSurface src/Dodge/Base/Collide.hs 110;" f
checkCombineSelectionExists src/Dodge/DisplayInventory.hs 100;" f checkCombineSelectionExists src/Dodge/DisplayInventory.hs 100;" f
checkConnection src/Dodge/Inventory/Swap.hs 64;" f checkConnection src/Dodge/Inventory/Swap.hs 64;" f
checkDeath src/Dodge/Creature/State.hs 77;" f checkDeath src/Dodge/Creature/State.hs 77;" f
@@ -2912,12 +2911,12 @@ 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
circCollisionDebugItem src/Dodge/Debug.hs 63;" f circCollisionDebugItem src/Dodge/Debug.hs 63;" f
circHitWall src/Dodge/Base/Collide.hs 200;" f circHitWall src/Dodge/Base/Collide.hs 232;" f
circInPolygon src/Geometry/Polygon.hs 70;" f circInPolygon src/Geometry/Polygon.hs 70;" f
circOnAnyCr src/Dodge/Base/Collide.hs 248;" f circOnAnyCr src/Dodge/Base/Collide.hs 287;" f
circOnSeg src/Geometry.hs 102;" f circOnSeg src/Geometry.hs 102;" f
circOnSegNoEndpoints src/Geometry.hs 92;" f circOnSegNoEndpoints src/Geometry.hs 92;" f
circOnSomeWall src/Dodge/Base/Collide.hs 242;" f circOnSomeWall src/Dodge/Base/Collide.hs 281;" 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
@@ -2942,7 +2941,7 @@ click1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 582;" f
clickGetCreature src/Dodge/Debug.hs 107;" f clickGetCreature src/Dodge/Debug.hs 107;" 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 47;" f
clipZoom src/Dodge/Update/Camera.hs 222;" f clipZoom src/Dodge/Update/Camera.hs 223;" f
clockCycle src/Dodge/Clock.hs 9;" f clockCycle src/Dodge/Clock.hs 9;" f
closeButtonToSelectionItem src/Dodge/Inventory/SelectionList.hs 220;" f closeButtonToSelectionItem src/Dodge/Inventory/SelectionList.hs 220;" f
closeItemToSelectionItem src/Dodge/Inventory/SelectionList.hs 205;" f closeItemToSelectionItem src/Dodge/Inventory/SelectionList.hs 205;" f
@@ -2965,16 +2964,18 @@ colCrWall src/Dodge/WallCreatureCollisions.hs 28;" f
colCrsWalls src/Dodge/WallCreatureCollisions.hs 18;" f colCrsWalls src/Dodge/WallCreatureCollisions.hs 18;" f
collectDamageTypes src/Dodge/Damage.hs 53;" f collectDamageTypes src/Dodge/Damage.hs 53;" f
collectInvItems src/Dodge/Update/Input/InGame.hs 298;" f collectInvItems src/Dodge/Update/Input/InGame.hs 298;" f
collide3 src/Dodge/Base/Collide.hs 94;" f collide3 src/Dodge/Base/Collide.hs 119;" f
collide3Creature src/Dodge/Base/Collide.hs 123;" f collide3Chasm src/Dodge/Base/Collide.hs 103;" f
collide3Floors src/Dodge/Base/Collide.hs 107;" f collide3Chasms src/Dodge/Base/Collide.hs 96;" f
collide3Wall src/Dodge/Base/Collide.hs 118;" f collide3Creature src/Dodge/Base/Collide.hs 153;" f
collide3Walls src/Dodge/Base/Collide.hs 101;" f collide3Floors src/Dodge/Base/Collide.hs 134;" f
collide3Wall src/Dodge/Base/Collide.hs 148;" 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 210;" f collideCircWalls src/Dodge/Base/Collide.hs 244;" f
collidePoint src/Dodge/Base/Collide.hs 54;" f collidePoint src/Dodge/Base/Collide.hs 54;" f
collidePointTestFilter src/Dodge/Base/Collide.hs 148;" f collidePointTestFilter src/Dodge/Base/Collide.hs 180;" f
collidePointWallsFilter src/Dodge/Base/Collide.hs 162;" f collidePointWallsFilter src/Dodge/Base/Collide.hs 194;" f
collisionDebugItem src/Dodge/Debug.hs 47;" f collisionDebugItem src/Dodge/Debug.hs 47;" 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
@@ -3108,7 +3109,7 @@ crsNearRect src/Dodge/Zoning/Creature.hs 38;" f
crsNearSeg src/Dodge/Zoning/Creature.hs 23;" f crsNearSeg src/Dodge/Zoning/Creature.hs 23;" f
crystalLine src/Dodge/Placement/Instance/Wall.hs 55;" f crystalLine src/Dodge/Placement/Instance/Wall.hs 55;" f
cubeShape src/Dodge/Block/Debris.hs 103;" f cubeShape src/Dodge/Block/Debris.hs 103;" f
cullPoint src/Dodge/Render/ShapePicture.hs 88;" f cullPoint src/Dodge/Render/ShapePicture.hs 89;" f
cullPretty src/AesonHelp.hs 14;" f cullPretty src/AesonHelp.hs 14;" f
cutPoly src/Dodge/LevelGen/StaticWalls.hs 77;" f cutPoly src/Dodge/LevelGen/StaticWalls.hs 77;" f
cutWall src/Dodge/LevelGen/StaticWalls.hs 124;" f cutWall src/Dodge/LevelGen/StaticWalls.hs 124;" f
@@ -3257,7 +3258,7 @@ destroyMatS src/Dodge/Material/Sound.hs 7;" f
destroyMcType src/Dodge/Machine/Destroy.hs 21;" f destroyMcType src/Dodge/Machine/Destroy.hs 21;" 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 175;" f destroyProjectile src/Dodge/Projectile/Update.hs 163;" f
detV src/Geometry/Vector.hs 93;" f detV src/Geometry/Vector.hs 93;" 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 465;" f detectorColor src/Dodge/Item/Draw/SPic.hs 465;" f
@@ -3295,7 +3296,7 @@ doAfterPlacements src/Dodge/Layout.hs 83;" f
doAimTwist src/Dodge/Creature/YourControl.hs 140;" f doAimTwist src/Dodge/Creature/YourControl.hs 140;" f
doAnyEquipmentEffect src/Dodge/Creature/State.hs 223;" f doAnyEquipmentEffect src/Dodge/Creature/State.hs 223;" 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 225;" f doBarrelSpin src/Dodge/Projectile/Update.hs 213;" 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
@@ -3326,7 +3327,7 @@ doDrawing src/Dodge/Render.hs 35;" f
doDrawing' src/Dodge/Render.hs 46;" f doDrawing' src/Dodge/Render.hs 46;" f
doFloatFloat src/Dodge/FloatFunction.hs 5;" f doFloatFloat src/Dodge/FloatFunction.hs 5;" f
doGenFloat src/Dodge/HeldUse.hs 1212;" f doGenFloat src/Dodge/HeldUse.hs 1212;" f
doGravityPU src/Dodge/Projectile/Update.hs 36;" f doGravityPU src/Dodge/Projectile/Update.hs 37;" f
doHeldUseEffect src/Dodge/HeldUse.hs 354;" f doHeldUseEffect src/Dodge/HeldUse.hs 354;" f
doInPlacements src/Dodge/Layout.hs 92;" f doInPlacements src/Dodge/Layout.hs 92;" f
doIndividualPlacements src/Dodge/Layout.hs 117;" f doIndividualPlacements src/Dodge/Layout.hs 117;" f
@@ -3362,11 +3363,11 @@ doTerminalCommandEffect src/Dodge/Terminal.hs 135;" f
doTestDrawing src/Dodge/Render.hs 42;" f doTestDrawing src/Dodge/Render.hs 42;" 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 197;" f doThrust src/Dodge/Projectile/Update.hs 185;" f
doTimeScroll src/Dodge/Update.hs 208;" f doTimeScroll src/Dodge/Update.hs 208;" f
doTmTm src/Dodge/TmTm.hs 6;" f doTmTm src/Dodge/TmTm.hs 6;" f
doTmWdWd src/Dodge/WorldEffect.hs 99;" f doTmWdWd src/Dodge/WorldEffect.hs 99;" f
doWallRotate src/Dodge/Update/Camera.hs 212;" f doWallRotate src/Dodge/Update/Camera.hs 213;" f
doWdBl src/Dodge/WorldBool.hs 10;" f doWdBl src/Dodge/WorldBool.hs 10;" f
doWdCrBl src/Dodge/CreatureEffect.hs 37;" f doWdCrBl src/Dodge/CreatureEffect.hs 37;" f
doWdCrCr src/Dodge/CreatureEffect.hs 12;" f doWdCrCr src/Dodge/CreatureEffect.hs 12;" f
@@ -3397,9 +3398,9 @@ drawBoundingBox src/Dodge/Debug/Picture.hs 336;" f
drawBul src/Dodge/Bullet/Draw.hs 9;" f drawBul src/Dodge/Bullet/Draw.hs 9;" f
drawButton src/Dodge/Button/Draw.hs 10;" f drawButton src/Dodge/Button/Draw.hs 10;" f
drawCPUShadows src/Dodge/Render/Shadow.hs 19;" f drawCPUShadows src/Dodge/Render/Shadow.hs 19;" f
drawChasm src/Dodge/Render/ShapePicture.hs 43;" f drawChasm src/Dodge/Render/ShapePicture.hs 44;" f
drawCircCollisionTest src/Dodge/Debug/Picture.hs 116;" f drawCircCollisionTest src/Dodge/Debug/Picture.hs 116;" f
drawCliff src/Dodge/Render/ShapePicture.hs 46;" f drawCliff src/Dodge/Render/ShapePicture.hs 47;" f
drawCollisionTest src/Dodge/Debug/Picture.hs 103;" f drawCollisionTest src/Dodge/Debug/Picture.hs 103;" f
drawCombFilter src/Dodge/Render/Picture.hs 244;" f drawCombFilter src/Dodge/Render/Picture.hs 244;" f
drawCombineInventory src/Dodge/Render/HUD.hs 179;" f drawCombineInventory src/Dodge/Render/HUD.hs 179;" f
@@ -3407,7 +3408,7 @@ drawConcurrentMessage src/Dodge/Render/Picture.hs 68;" f
drawCoord src/Dodge/Debug/Picture.hs 364;" f drawCoord src/Dodge/Debug/Picture.hs 364;" f
drawCorpse src/Dodge/Corpse/Draw.hs 6;" f drawCorpse src/Dodge/Corpse/Draw.hs 6;" f
drawCrInfo src/Dodge/Debug/Picture.hs 385;" f drawCrInfo src/Dodge/Debug/Picture.hs 385;" f
drawCreature src/Dodge/Render/ShapePicture.hs 59;" f drawCreature src/Dodge/Render/ShapePicture.hs 60;" f
drawCreatureDisplayTexts src/Dodge/Debug/Picture.hs 197;" f drawCreatureDisplayTexts src/Dodge/Debug/Picture.hs 197;" f
drawCross src/Dodge/Render/Label.hs 24;" f drawCross src/Dodge/Render/Label.hs 24;" f
drawCrossCol src/Dodge/Render/Label.hs 21;" f drawCrossCol src/Dodge/Render/Label.hs 21;" f
@@ -3470,10 +3471,10 @@ drawPlus src/Dodge/Render/Picture.hs 144;" f
drawPointLabel src/Dodge/Render/Label.hs 13;" f drawPointLabel src/Dodge/Render/Label.hs 13;" f
drawProjectile src/Dodge/Projectile/Draw.hs 13;" f drawProjectile src/Dodge/Projectile/Draw.hs 13;" f
drawProp src/Dodge/Prop/Draw.hs 26;" f drawProp src/Dodge/Prop/Draw.hs 26;" f
drawPulseBall src/Dodge/Render/ShapePicture.hs 51;" f drawPulseBall src/Dodge/Render/ShapePicture.hs 52;" f
drawRBOptions src/Dodge/Render/HUD.hs 249;" f drawRBOptions src/Dodge/Render/HUD.hs 249;" f
drawRadarSweep src/Dodge/RadarSweep/Draw.hs 14;" f drawRadarSweep src/Dodge/RadarSweep/Draw.hs 14;" f
drawRemoteShell src/Dodge/Projectile/Draw.hs 37;" f drawRemoteShell src/Dodge/Projectile/Draw.hs 38;" f
drawReturn src/Dodge/Render/Picture.hs 131;" f drawReturn src/Dodge/Render/Picture.hs 131;" f
drawRootCursor src/Dodge/Render/HUD.hs 72;" f drawRootCursor src/Dodge/Render/HUD.hs 72;" f
drawSSCursor src/Dodge/SelectionSections/Draw.hs 35;" f drawSSCursor src/Dodge/SelectionSections/Draw.hs 35;" f
@@ -3592,26 +3593,26 @@ 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 186;" f expireAndDamage src/Dodge/Bullet.hs 186;" f
explodeShell src/Dodge/Projectile/Update.hs 297;" f explodeShell src/Dodge/Projectile/Update.hs 282;" 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
extendAway src/Dodge/Placement/Instance/LightSource.hs 200;" f extendAway src/Dodge/Placement/Instance/LightSource.hs 200;" f
extendConeToScreenEdge src/Dodge/Debug/Picture.hs 82;" f extendConeToScreenEdge src/Dodge/Debug/Picture.hs 82;" f
extraPics src/Dodge/Render/ShapePicture.hs 93;" f extraPics src/Dodge/Render/ShapePicture.hs 94;" f
extraWeaponLinks src/Dodge/Item/Grammar.hs 89;" f extraWeaponLinks src/Dodge/Item/Grammar.hs 89;" f
extraWeaponLinksBelow src/Dodge/Item/Grammar.hs 98;" f extraWeaponLinksBelow src/Dodge/Item/Grammar.hs 98;" f
extractRoomPos src/Dodge/RoomPos.hs 6;" f extractRoomPos src/Dodge/RoomPos.hs 6;" f
faceEdges src/Polyhedra.hs 65;" f faceEdges src/Polyhedra.hs 65;" f
facesToVF src/Polyhedra/Geodesic.hs 69;" f facesToVF src/Polyhedra/Geodesic.hs 69;" f
farWallDistDirection src/Dodge/Update/Camera.hs 233;" f farWallDistDirection src/Dodge/Update/Camera.hs 234;" f
fdiv src/ShortShow.hs 26;" f fdiv src/ShortShow.hs 26;" f
feet src/Dodge/Creature/Picture.hs 49;" f feet src/Dodge/Creature/Picture.hs 49;" f
ffoldM src/Framebuffer/Update.hs 79;" f ffoldM src/Framebuffer/Update.hs 79;" f
filter3 src/FoldableHelp.hs 76;" f filter3 src/FoldableHelp.hs 76;" f
filterSectionsPair src/Dodge/DisplayInventory.hs 167;" f filterSectionsPair src/Dodge/DisplayInventory.hs 167;" f
findBlips src/Dodge/RadarSweep.hs 62;" f findBlips src/Dodge/RadarSweep.hs 62;" f
findBoundDists src/Dodge/Update/Camera.hs 240;" f findBoundDists src/Dodge/Update/Camera.hs 241;" f
findClosePoint src/Dodge/LevelGen/StaticWalls.hs 155;" f findClosePoint src/Dodge/LevelGen/StaticWalls.hs 155;" f
findClosePoint src/Dodge/LevelGen/StaticWalls/Deprecated.hs 74;" f findClosePoint src/Dodge/LevelGen/StaticWalls/Deprecated.hs 74;" f
findIndex src/IntMapHelp.hs 85;" f findIndex src/IntMapHelp.hs 85;" f
@@ -3656,7 +3657,7 @@ flockPointTargetR src/Dodge/Creature/Boid.hs 267;" f
flockToPointUsing src/Dodge/Creature/Boid.hs 215;" f flockToPointUsing src/Dodge/Creature/Boid.hs 215;" f
flockToPointUsing' src/Dodge/Creature/Boid.hs 228;" f flockToPointUsing' src/Dodge/Creature/Boid.hs 228;" f
floorItemPickupInfo src/Dodge/Render/HUD.hs 228;" f floorItemPickupInfo src/Dodge/Render/HUD.hs 228;" f
floorItemSPic src/Dodge/Render/ShapePicture.hs 119;" f floorItemSPic src/Dodge/Render/ShapePicture.hs 120;" 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
@@ -3714,7 +3715,7 @@ geometryQuickCheckTests test/Spec.hs 55;" f
geometryTests test/Spec.hs 17;" f geometryTests test/Spec.hs 17;" f
geometryUnitTests test/Spec.hs 22;" f geometryUnitTests test/Spec.hs 22;" f
geqConstr src/SameConstr.hs 21;" f geqConstr src/SameConstr.hs 21;" f
getAimZoom src/Dodge/Update/Camera.hs 135;" f getAimZoom src/Dodge/Update/Camera.hs 136;" f
getAmmoLinks src/Dodge/Item/Grammar.hs 103;" f getAmmoLinks src/Dodge/Item/Grammar.hs 103;" f
getArguments src/Dodge/Update/Scroll.hs 178;" f getArguments src/Dodge/Update/Scroll.hs 178;" f
getArguments' src/Dodge/Update/Scroll.hs 166;" f getArguments' src/Dodge/Update/Scroll.hs 166;" f
@@ -3813,11 +3814,11 @@ handleResizeEvent src/Dodge/Event.hs 53;" f
handleTextInput src/Dodge/Event/Input.hs 18;" f handleTextInput src/Dodge/Event/Input.hs 18;" 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 262;" f hasButtonLOS src/Dodge/Base/Collide.hs 301;" f
hasCaneGunDim src/Dodge/Item/InvSize.hs 48;" f hasCaneGunDim src/Dodge/Item/InvSize.hs 48;" f
hasFrontArmour src/Dodge/Creature/Test.hs 118;" f hasFrontArmour src/Dodge/Creature/Test.hs 118;" f
hasLOS src/Dodge/Base/Collide.hs 255;" f hasLOS src/Dodge/Base/Collide.hs 294;" f
hasLOSIndirect src/Dodge/Base/Collide.hs 270;" f hasLOSIndirect src/Dodge/Base/Collide.hs 310;" 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
@@ -3828,7 +3829,7 @@ healthAnalyserByDoor src/Dodge/Room/LasTurret.hs 74;" f
healthTest src/Dodge/Room/LasTurret.hs 95;" f healthTest src/Dodge/Room/LasTurret.hs 95;" f
heightWallPS src/Dodge/Placement/Instance/Wall.hs 13;" f heightWallPS src/Dodge/Placement/Instance/Wall.hs 13;" f
heldAimStance src/Dodge/Item/AimStance.hs 24;" f heldAimStance src/Dodge/Item/AimStance.hs 24;" f
heldAimZoom src/Dodge/Update/Camera.hs 141;" f heldAimZoom src/Dodge/Update/Camera.hs 142;" f
heldEffect src/Dodge/HeldUse.hs 61;" f heldEffect src/Dodge/HeldUse.hs 61;" f
heldEffectMuzzles src/Dodge/HeldUse.hs 139;" f heldEffectMuzzles src/Dodge/HeldUse.hs 139;" f
heldHandlePos src/Dodge/Item/HeldOffset.hs 89;" f heldHandlePos src/Dodge/Item/HeldOffset.hs 89;" f
@@ -3985,7 +3986,7 @@ isUnusedLnkType src/Dodge/PlacementSpot.hs 186;" f
isUsedLnkUnplaced src/Dodge/PlacementSpot.hs 172;" f isUsedLnkUnplaced src/Dodge/PlacementSpot.hs 172;" f
isValidCommand src/Dodge/Debug/Terminal.hs 131;" f isValidCommand src/Dodge/Debug/Terminal.hs 131;" f
isVowel src/StringHelp.hs 8;" f isVowel src/StringHelp.hs 8;" f
isWalkable src/Dodge/Base/Collide.hs 277;" f isWalkable src/Dodge/Base/Collide.hs 317;" f
isoMatrix src/MatrixHelper.hs 30;" f isoMatrix src/MatrixHelper.hs 30;" f
isotriBWH src/Geometry/Polygon.hs 20;" f isotriBWH src/Geometry/Polygon.hs 20;" f
itDim src/Dodge/Item/InvSize.hs 21;" f itDim src/Dodge/Item/InvSize.hs 21;" f
@@ -4061,7 +4062,7 @@ lShape src/Dodge/Placement/Instance/LightSource.hs 76;" f
lamp src/Dodge/Creature/Lamp.hs 21;" f lamp src/Dodge/Creature/Lamp.hs 21;" f
lampCover src/Dodge/Placement/Instance/LightSource/Cover.hs 8;" f lampCover src/Dodge/Placement/Instance/LightSource/Cover.hs 8;" f
lampCoverWhen src/Dodge/Placement/Instance/LightSource/Cover.hs 19;" f lampCoverWhen src/Dodge/Placement/Instance/LightSource/Cover.hs 19;" f
lampCrSPic src/Dodge/Render/ShapePicture.hs 71;" f lampCrSPic src/Dodge/Render/ShapePicture.hs 72;" f
lasCenSensEdge src/Dodge/Room/LasTurret.hs 114;" f lasCenSensEdge src/Dodge/Room/LasTurret.hs 114;" f
lasGunPic src/Dodge/Item/Draw/SPic.hs 424;" f lasGunPic src/Dodge/Item/Draw/SPic.hs 424;" f
lasPulseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 526;" f lasPulseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 526;" f
@@ -4262,7 +4263,7 @@ mcKillTerm src/Dodge/Machine/Destroy.hs 26;" f
mcPlaySound src/Dodge/Machine/Update.hs 104;" f mcPlaySound src/Dodge/Machine/Update.hs 104;" f
mcProxTest src/Dodge/Machine/Update.hs 152;" f mcProxTest src/Dodge/Machine/Update.hs 152;" f
mcProximitySensorUpdate src/Dodge/Machine/Update.hs 130;" f mcProximitySensorUpdate src/Dodge/Machine/Update.hs 130;" f
mcSPic src/Dodge/Render/ShapePicture.hs 131;" f mcSPic src/Dodge/Render/ShapePicture.hs 132;" f
mcSensorTriggerUpdate src/Dodge/Machine/Update.hs 93;" f mcSensorTriggerUpdate src/Dodge/Machine/Update.hs 93;" f
mcSensorUpdate src/Dodge/Machine/Update.hs 125;" f mcSensorUpdate src/Dodge/Machine/Update.hs 125;" f
mcShootAuto src/Dodge/HeldUse.hs 1223;" f mcShootAuto src/Dodge/HeldUse.hs 1223;" f
@@ -4341,16 +4342,16 @@ moveCombineSel src/Dodge/Update/Scroll.hs 114;" f
moveInverseShockwave src/Dodge/Shockwave/Update.hs 44;" f moveInverseShockwave src/Dodge/Shockwave/Update.hs 44;" f
moveLSThen src/Dodge/Placement/Instance/LightSource.hs 30;" f moveLSThen src/Dodge/Placement/Instance/LightSource.hs 30;" f
movePenBullet src/Dodge/Bullet.hs 201;" f movePenBullet src/Dodge/Bullet.hs 201;" f
moveProjectile src/Dodge/Projectile/Update.hs 266;" f moveProjectile src/Dodge/Projectile/Update.hs 250;" f
moveRoomBy src/Dodge/Room/Link.hs 53;" f moveRoomBy src/Dodge/Room/Link.hs 53;" f
moveShockwave src/Dodge/Shockwave/Update.hs 15;" f moveShockwave src/Dodge/Shockwave/Update.hs 15;" f
moveStuckGrenade src/Dodge/Projectile/Update.hs 263;" f moveStuckGrenade src/Dodge/Projectile/Update.hs 247;" f
moveToSideFirstOutLink src/Dodge/Room/Warning.hs 55;" f moveToSideFirstOutLink src/Dodge/Room/Warning.hs 55;" 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
moveWallIDToward src/Dodge/Wall/Move.hs 47;" f moveWallIDToward src/Dodge/Wall/Move.hs 47;" f
moveWallIDUnsafe src/Dodge/Wall/Move.hs 19;" f moveWallIDUnsafe src/Dodge/Wall/Move.hs 19;" f
moveZoomCamera src/Dodge/Update/Camera.hs 86;" f moveZoomCamera src/Dodge/Update/Camera.hs 87;" f
mtTopLabels src/Dodge/Tree/Compose.hs 49;" f mtTopLabels src/Dodge/Tree/Compose.hs 49;" f
mtUnderLabels src/Dodge/Tree/Compose.hs 52;" f mtUnderLabels src/Dodge/Tree/Compose.hs 52;" f
muchWlDustAt src/Dodge/Wall/Dust.hs 10;" f muchWlDustAt src/Dodge/Wall/Dust.hs 10;" f
@@ -4452,10 +4453,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 189;" f overlapCircWalls src/Dodge/Base/Collide.hs 221;" f
overlapCircWallsClosest src/Dodge/Base/Collide.hs 228;" f overlapCircWallsClosest src/Dodge/Base/Collide.hs 267;" f
overlapSegCrs src/Dodge/Base/Collide.hs 60;" f overlapSegCrs src/Dodge/Base/Collide.hs 60;" f
overlapSegWalls src/Dodge/Base/Collide.hs 171;" f overlapSegWalls src/Dodge/Base/Collide.hs 203;" 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
@@ -4508,7 +4509,7 @@ 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
pistolCrit src/Dodge/Creature/PistolCrit.hs 12;" f pistolCrit src/Dodge/Creature/PistolCrit.hs 12;" f
pistolerRoom src/Dodge/Room/Room.hs 321;" f pistolerRoom src/Dodge/Room/Room.hs 321;" f
pjRemoteSetDirection src/Dodge/Projectile/Update.hs 242;" f pjRemoteSetDirection src/Dodge/Projectile/Update.hs 226;" 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
@@ -4633,7 +4634,7 @@ powlist src/Multiset.hs 61;" f
powlistUpToN src/Multiset.hs 23;" f powlistUpToN src/Multiset.hs 23;" f
powlistUpToN' src/Multiset.hs 12;" f powlistUpToN' src/Multiset.hs 12;" f
powlistUpToN'' src/Multiset.hs 31;" f powlistUpToN'' src/Multiset.hs 31;" f
ppDraw src/Dodge/Render/ShapePicture.hs 116;" f ppDraw src/Dodge/Render/ShapePicture.hs 117;" f
ppEvents src/Dodge/Update.hs 779;" f ppEvents src/Dodge/Update.hs 779;" f
ppLevelReset src/Dodge/PressPlate.hs 13;" f ppLevelReset src/Dodge/PressPlate.hs 13;" f
preCritStart src/Dodge/Room/Start.hs 82;" f preCritStart src/Dodge/Room/Start.hs 82;" f
@@ -4812,7 +4813,7 @@ restrictInLinks src/Dodge/RoomLink.hs 42;" f
restrictLinkType src/Dodge/RoomLink.hs 32;" f restrictLinkType src/Dodge/RoomLink.hs 32;" f
restrictOutLinks src/Dodge/RoomLink.hs 45;" f restrictOutLinks src/Dodge/RoomLink.hs 45;" f
restrictRMInLinksPD src/Dodge/Room/Link.hs 25;" f restrictRMInLinksPD src/Dodge/Room/Link.hs 25;" f
restrictSeg src/Dodge/Base/Collide.hs 132;" f restrictSeg src/Dodge/Base/Collide.hs 162;" 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
@@ -4871,7 +4872,7 @@ rotate3 src/Geometry/Vector3D.hs 48;" f
rotate3x src/Geometry/Vector3D.hs 60;" f rotate3x src/Geometry/Vector3D.hs 60;" f
rotate3y src/Geometry/Vector3D.hs 66;" f rotate3y src/Geometry/Vector3D.hs 66;" f
rotate3z src/Geometry/Vector3D.hs 54;" f rotate3z src/Geometry/Vector3D.hs 54;" f
rotateCamera src/Dodge/Update/Camera.hs 189;" f rotateCamera src/Dodge/Update/Camera.hs 190;" f
rotateList src/Padding.hs 49;" f rotateList src/Padding.hs 49;" f
rotateProp src/Dodge/Prop/Update.hs 47;" f rotateProp src/Dodge/Prop/Update.hs 47;" f
rotateSH src/Shape.hs 257;" f rotateSH src/Shape.hs 257;" f
@@ -4879,7 +4880,7 @@ rotateSHq src/Shape.hs 166;" f
rotateSHx src/Shape.hs 265;" f rotateSHx src/Shape.hs 265;" f
rotateSP src/ShapePicture.hs 57;" f 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 201;" f rotateToOverlappingWall src/Dodge/Update/Camera.hs 202;" f
rotateToZ src/Quaternion.hs 38;" f rotateToZ src/Quaternion.hs 38;" f
rotateV src/Geometry/Vector.hs 105;" f rotateV src/Geometry/Vector.hs 105;" f
rotateVAround src/Geometry/Vector.hs 112;" f rotateVAround src/Geometry/Vector.hs 112;" f
@@ -5007,7 +5008,7 @@ setTargetMv src/Dodge/Creature/ReaderUpdate.hs 76;" f
setTile src/Dodge/Layout.hs 68;" f setTile src/Dodge/Layout.hs 68;" f
setTiles src/Dodge/Layout.hs 65;" f setTiles src/Dodge/Layout.hs 65;" f
setToggle src/Dodge/Prop/Update.hs 44;" f setToggle src/Dodge/Prop/Update.hs 44;" f
setViewDistance src/Dodge/Update/Camera.hs 228;" f setViewDistance src/Dodge/Update/Camera.hs 229;" f
setViewPos src/Dodge/Creature/ReaderUpdate.hs 63;" f setViewPos src/Dodge/Creature/ReaderUpdate.hs 63;" f
setViewport src/Dodge/Render.hs 429;" f setViewport src/Dodge/Render.hs 429;" f
setVol src/Dodge/Config/Update.hs 30;" f setVol src/Dodge/Config/Update.hs 30;" f
@@ -5039,18 +5040,18 @@ 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 324;" f shatterGunSPic src/Dodge/Item/Draw/SPic.hs 324;" 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 63;" f shellExplosionCheck src/Dodge/Projectile/Update.hs 55;" f
shellHitCreature src/Dodge/Projectile/Update.hs 95;" f shellHitCreature src/Dodge/Projectile/Update.hs 87;" f
shellHitFloor src/Dodge/Projectile/Update.hs 116;" f shellHitFloor src/Dodge/Projectile/Update.hs 104;" f
shellHitWall src/Dodge/Projectile/Update.hs 74;" 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 34;" f shellShape src/Dodge/Projectile/Draw.hs 35;" f
shieldWall src/Dodge/Item/BackgroundEffect.hs 77;" f shieldWall src/Dodge/Item/BackgroundEffect.hs 77;" f
shiftByV2 src/Dodge/PlacementSpot.hs 239;" f shiftByV2 src/Dodge/PlacementSpot.hs 239;" f
shiftChildren src/Dodge/Tree/Compose.hs 43;" f shiftChildren src/Dodge/Tree/Compose.hs 43;" f
shiftDraw src/Dodge/Render/ShapePicture.hs 76;" f shiftDraw src/Dodge/Render/ShapePicture.hs 77;" f
shiftDraw' src/Dodge/Render/ShapePicture.hs 82;" f shiftDraw' src/Dodge/Render/ShapePicture.hs 83;" f
shiftInBy src/Dodge/PlacementSpot.hs 236;" f shiftInBy src/Dodge/PlacementSpot.hs 236;" f
shiftInvItems src/Dodge/Update/Input/InGame.hs 308;" f shiftInvItems src/Dodge/Update/Input/InGame.hs 308;" f
shiftInvItemsDown src/Dodge/Update/Input/InGame.hs 347;" f shiftInvItemsDown src/Dodge/Update/Input/InGame.hs 347;" f
@@ -5381,8 +5382,8 @@ transMat src/MatrixHelper.hs 73;" f
transToHandle src/Dodge/Item/HeldOffset.hs 26;" f transToHandle src/Dodge/Item/HeldOffset.hs 26;" f
translate src/Picture/Base.hs 116;" f translate src/Picture/Base.hs 116;" f
translate3 src/Picture/Base.hs 120;" f translate3 src/Picture/Base.hs 120;" f
translateFloatingCamera src/Dodge/Update/Camera.hs 45;" f translateFloatingCamera src/Dodge/Update/Camera.hs 46;" f
translateFloatingCameraKeys src/Dodge/Update/Camera.hs 62;" f translateFloatingCameraKeys src/Dodge/Update/Camera.hs 63;" f
translateH src/Picture/Base.hs 112;" f translateH src/Picture/Base.hs 112;" f
translatePointToHead src/Dodge/Creature/HandPos.hs 147;" f translatePointToHead src/Dodge/Creature/HandPos.hs 147;" f
translatePointToLeftHand src/Dodge/Creature/HandPos.hs 75;" f translatePointToLeftHand src/Dodge/Creature/HandPos.hs 75;" f
@@ -5440,10 +5441,9 @@ tryPutFloorItemIDInInv src/Dodge/Inventory/Add.hs 26;" f
tryPutItemInInv src/Dodge/Inventory/Add.hs 42;" f tryPutItemInInv src/Dodge/Inventory/Add.hs 42;" f
tryPutItemInInvAt src/Dodge/Inventory/Add.hs 32;" f tryPutItemInInvAt src/Dodge/Inventory/Add.hs 32;" f
trySeedFromClipboard src/Dodge/Menu.hs 91;" f trySeedFromClipboard src/Dodge/Menu.hs 91;" f
tryShellBounce src/Dodge/Projectile/Update.hs 141;" f trySpin src/Dodge/Projectile/Update.hs 173;" f
trySpin src/Dodge/Projectile/Update.hs 185;" f
trySynthBullet src/Dodge/Creature/State.hs 249;" f trySynthBullet src/Dodge/Creature/State.hs 249;" f
tryThrust src/Dodge/Projectile/Update.hs 191;" f tryThrust src/Dodge/Projectile/Update.hs 179;" f
tryUseParent src/Dodge/Creature/State.hs 227;" f tryUseParent src/Dodge/Creature/State.hs 227;" f
turnTo src/Dodge/Movement/Turn.hs 8;" f turnTo src/Dodge/Movement/Turn.hs 8;" f
turret src/Dodge/Placement/Instance/Turret.hs 35;" f turret src/Dodge/Placement/Instance/Turret.hs 35;" f
@@ -5485,11 +5485,11 @@ updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 453;" f
updateBarrel src/Dodge/Barreloid.hs 41;" f updateBarrel src/Dodge/Barreloid.hs 41;" f
updateBarreloid src/Dodge/Barreloid.hs 15;" f updateBarreloid src/Dodge/Barreloid.hs 15;" f
updateBaseWheelEvent src/Dodge/Update/Scroll.hs 29;" f updateBaseWheelEvent src/Dodge/Update/Scroll.hs 29;" f
updateBounds src/Dodge/Update/Camera.hs 250;" f updateBounds src/Dodge/Update/Camera.hs 251;" f
updateBulVel src/Dodge/Bullet.hs 55;" f updateBulVel src/Dodge/Bullet.hs 55;" f
updateBullet src/Dodge/Bullet.hs 20;" f updateBullet src/Dodge/Bullet.hs 20;" f
updateBullets src/Dodge/Update.hs 594;" f updateBullets src/Dodge/Update.hs 594;" f
updateCamera src/Dodge/Update/Camera.hs 29;" f updateCamera src/Dodge/Update/Camera.hs 30;" f
updateCloseObjects src/Dodge/Inventory.hs 116;" f updateCloseObjects src/Dodge/Inventory.hs 116;" f
updateCloud src/Dodge/Update.hs 826;" f updateCloud src/Dodge/Update.hs 826;" f
updateClouds src/Dodge/Update.hs 698;" f updateClouds src/Dodge/Update.hs 698;" f
@@ -5516,14 +5516,14 @@ updateFBOTO src/Framebuffer/Update.hs 97;" f
updateFBOTO3 src/Framebuffer/Update.hs 131;" f updateFBOTO3 src/Framebuffer/Update.hs 131;" f
updateFlame src/Dodge/Flame.hs 19;" f updateFlame src/Dodge/Flame.hs 19;" f
updateFlames src/Dodge/Update.hs 686;" f updateFlames src/Dodge/Update.hs 686;" f
updateFloatingCamera src/Dodge/Update/Camera.hs 34;" f updateFloatingCamera src/Dodge/Update/Camera.hs 35;" f
updateFunctionKey src/Dodge/Update/Input/InGame.hs 364;" f updateFunctionKey src/Dodge/Update/Input/InGame.hs 364;" f
updateFunctionKeys src/Dodge/Update/Input/InGame.hs 357;" f updateFunctionKeys src/Dodge/Update/Input/InGame.hs 357;" f
updateGusts src/Dodge/Update.hs 809;" f updateGusts src/Dodge/Update.hs 809;" f
updateHumanoid src/Dodge/Humanoid.hs 13;" f updateHumanoid src/Dodge/Humanoid.hs 13;" f
updateIMl src/Dodge/Update.hs 556;" f updateIMl src/Dodge/Update.hs 556;" f
updateIMl' src/Dodge/Update.hs 561;" f updateIMl' src/Dodge/Update.hs 561;" f
updateInGameCamera src/Dodge/Update/Camera.hs 78;" f updateInGameCamera src/Dodge/Update/Camera.hs 79;" f
updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 400;" f updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 400;" f
updateInt2Map src/Dodge/Zoning/Base.hs 92;" f updateInt2Map src/Dodge/Zoning/Base.hs 92;" f
updateInventoryPositioning src/Dodge/DisplayInventory.hs 86;" f updateInventoryPositioning src/Dodge/DisplayInventory.hs 86;" f
@@ -5548,7 +5548,7 @@ updateObjCatMaybes src/Dodge/Update.hs 578;" f
updateObjMapMaybe src/Dodge/Update.hs 571;" f updateObjMapMaybe src/Dodge/Update.hs 571;" f
updatePastWorlds src/Dodge/Update.hs 441;" f updatePastWorlds src/Dodge/Update.hs 441;" 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 28;" f
updateProp src/Dodge/Prop/Update.hs 11;" f updateProp src/Dodge/Prop/Update.hs 11;" f
updatePulse src/Dodge/Creature/Update.hs 39;" f updatePulse src/Dodge/Creature/Update.hs 39;" f
updatePulseBall src/Dodge/Update.hs 467;" f updatePulseBall src/Dodge/Update.hs 467;" f
@@ -5650,10 +5650,10 @@ verticalWire src/Dodge/Wire.hs 24;" f
vgunMuzzles src/Dodge/HeldUse.hs 343;" f vgunMuzzles src/Dodge/HeldUse.hs 343;" f
viewBoundaries src/Dodge/Debug/Picture.hs 309;" f viewBoundaries src/Dodge/Debug/Picture.hs 309;" f
viewClipBounds src/Dodge/Debug/Picture.hs 318;" f viewClipBounds src/Dodge/Debug/Picture.hs 318;" f
viewDistanceFromItems src/Dodge/Update/Camera.hs 186;" f viewDistanceFromItems src/Dodge/Update/Camera.hs 187;" 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 175;" f visibleWalls src/Dodge/Base/Collide.hs 207;" 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
@@ -5665,7 +5665,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 140;" f wallToSurface src/Dodge/Base/Collide.hs 172;" f
wallsFromRooms src/Dodge/Layout.hs 146;" f wallsFromRooms src/Dodge/Layout.hs 146;" f
wallsToDraw src/Dodge/Render/Walls.hs 17;" f wallsToDraw src/Dodge/Render/Walls.hs 17;" f
warmupSound src/Dodge/HeldUse.hs 1454;" f warmupSound src/Dodge/HeldUse.hs 1454;" f
@@ -5728,7 +5728,7 @@ wlsNearRect src/Dodge/Zoning/Wall.hs 46;" f
wlsNearSeg src/Dodge/Zoning/Wall.hs 42;" f wlsNearSeg src/Dodge/Zoning/Wall.hs 42;" f
wordsBy src/ListHelp.hs 116;" f wordsBy src/ListHelp.hs 116;" f
worldPosToScreen src/Dodge/Base/Coordinate.hs 28;" f worldPosToScreen src/Dodge/Base/Coordinate.hs 28;" f
worldSPic src/Dodge/Render/ShapePicture.hs 21;" 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 137;" f wpAdd src/Dodge/Room/RezBox.hs 137;" f
wrench1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 546;" f wrench1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 546;" f
@@ -5786,7 +5786,7 @@ zonePn src/Dodge/Zoning/Pathing.hs 30;" f
zoneWall src/Dodge/Zoning/Wall.hs 65;" f zoneWall src/Dodge/Zoning/Wall.hs 65;" f
zonesAroundPoint src/Dodge/Zoning/Base.hs 96;" f zonesAroundPoint src/Dodge/Zoning/Base.hs 96;" f
zonesExtract src/Dodge/Zoning/Base.hs 56;" f zonesExtract src/Dodge/Zoning/Base.hs 56;" f
zoomFloatingCamera src/Dodge/Update/Camera.hs 70;" f zoomFloatingCamera src/Dodge/Update/Camera.hs 71;" f
zoomInLongGun src/Dodge/Update/Scroll.hs 98;" f zoomInLongGun src/Dodge/Update/Scroll.hs 98;" f
zoomOutLongGun src/Dodge/Update/Scroll.hs 106;" f zoomOutLongGun src/Dodge/Update/Scroll.hs 106;" f
zoomScope src/Dodge/Item/Scope.hs 33;" f zoomScope src/Dodge/Item/Scope.hs 33;" f