Cleanup projectile update

This commit is contained in:
2025-10-12 18:47:10 +01:00
parent 675f8ade59
commit 3206cdebf6
2 changed files with 177 additions and 180 deletions
+89 -92
View File
@@ -2,7 +2,6 @@
--{-# OPTIONS_GHC -Wno-unused-imports #-} --{-# OPTIONS_GHC -Wno-unused-imports #-}
module Dodge.Projectile.Update (updateProjectile) where module Dodge.Projectile.Update (updateProjectile) where
import Linear
import Control.Monad import Control.Monad
import Data.List (delete) import Data.List (delete)
import Data.Maybe import Data.Maybe
@@ -19,6 +18,7 @@ import Dodge.WorldEvent.Sound
import Geometry import Geometry
import qualified IntMapHelp as IM import qualified IntMapHelp as IM
import LensHelp import LensHelp
import Linear
import NewInt import NewInt
import RandomHelp import RandomHelp
@@ -38,62 +38,57 @@ doGravityPU pj
| otherwise = id | otherwise = id
applyGravityPU :: Projectile -> World -> World applyGravityPU :: Projectile -> World -> World
applyGravityPU pj w applyGravityPU pj
| (pj ^. pjPos . _z) < 1 && norm (_pjVel pj) < 1 = | (pj ^. pjPos . _z) < 1 && norm (_pjVel pj) < 1 = topj . pjVel .~ 0
w | otherwise = topj . pjVel . _z -~ 0.5
& topj . pjVel .~ 0
| otherwise =
w -- & topj . pjZ .~ newz
& topj . pjVel . _z -~ 0.5
where where
topj = cWorld . lWorld . projectiles . ix (pj ^. pjID) topj = cWorld . lWorld . projectiles . ix (pj ^. pjID)
-- newz = pj ^. pjZ + pj ^. pjZVel
-- consider pushing any hit creature back -- consider pushing any hit creature back
shellExplosionCheck :: Projectile -> World -> World shellExplosionCheck :: Projectile -> World -> World
shellExplosionCheck pj w shellExplosionCheck pj
| RetiredProjectile <- pj ^. pjType | RetiredProjectile <- pj ^. pjType
, time <= 0 = , timeout =
destroyProjectile (pj ^. pjScreenID) (_pjID pj) w destroyProjectile pj
| time <= 0 = explodeShell pj w | timeout = explodeShell pj
| RetiredProjectile <- pj ^. pjType = w | otherwise = id
| otherwise = w
where where
time = _pjTimer pj timeout = pj ^. pjTimer <= 0
shellHitWall :: Point3 -> Point3 -> Wall -> Projectile -> World -> World shellHitWall :: Point3 -> Point3 -> Wall -> Projectile -> World -> World
shellHitWall p n wl pj w shellHitWall p n wl pj
| Just GStick <- pj ^? pjType . gnHitEffect = | Just GStick <- pj ^? pjType . gnHitEffect =
w & topj . pjType .~ Grenade (GStuckWall (wl ^. wlStructure)) (topj . pjType .~ Grenade (GStuckWall (wl ^. wlStructure)))
& soundOriginIDsAt (ShellSound (pj ^. pjID)) [slapS, slap1S] (pj ^. pjPos . _xy) . stickHitSound pj
| Just x <- pj ^? pjType . gnHitEffect . bounceTolerance | Just x <- pj ^? pjType . gnHitEffect . bounceTolerance
, abs (dot (pj ^. pjVel) (normalize n)) < x = , abs (dot (pj ^. pjVel) (normalize n)) < x =
w (topj . pjVel %~ reflectInNormal n)
& topj . pjVel %~ reflectInNormal n . (topj . pjPos .~ p + normalize n)
& topj . pjPos .~ p + normalize n . bounceSound pj
& soundStart (ShellSound (pj ^. pjID)) (pj ^. pjPos . _xy) click1S Nothing | otherwise = topj %~ ((pjPos .~ p) . (pjTimer .~ 0))
| otherwise =
w & topj . pjPos .~ p
& topj . pjTimer .~ 0
where where
topj = cWorld . lWorld . projectiles . ix (_pjID pj) topj = cWorld . lWorld . projectiles . ix (_pjID pj)
bounceSound :: Projectile -> World -> World
bounceSound pj = soundStart (ShellSound (pj ^. pjID)) (pj ^. pjPos . _xy) click1S Nothing
stickHitSound :: Projectile -> World -> World
stickHitSound pj =
soundOriginIDsAt (ShellSound (pj ^. pjID)) [slapS, slap1S] (pj ^. pjPos . _xy)
shellHitCreature :: Point3 -> Creature -> Projectile -> World -> World shellHitCreature :: Point3 -> Creature -> Projectile -> World -> World
shellHitCreature p cr pj w shellHitCreature p cr pj
| Just GStick <- pj ^? pjType . gnHitEffect = | Just GStick <- pj ^? pjType . gnHitEffect =
w (pjlens . pjType .~ Grenade gren)
& cWorld . lWorld . projectiles . ix (_pjID pj) . pjType . stickHitSound pj
.~ Grenade | otherwise = pjlens . pjTimer .~ 0
( GStuckCreature where
(cr ^. crID) pjlens = cWorld . lWorld . projectiles . ix (_pjID pj)
(rotate3z (- cr ^. crDir) (p - ((cr ^. crPos . _xy) `v2z` 0))) gren =
(pj ^. pjDir - cr ^. crDir) GStuckCreature
) (cr ^. crID)
& soundOriginIDsAt (ShellSound (pj ^. pjID)) [slapS, slap1S] (pj ^. pjPos . _xy) (rotate3z (- cr ^. crDir) (p - cr ^. crPos))
| otherwise = (pj ^. pjDir - cr ^. crDir)
w
& cWorld . lWorld . projectiles . ix (_pjID pj) . pjTimer .~ 0
shellHitFloor :: Point3 -> Projectile -> World -> World shellHitFloor :: Point3 -> Projectile -> World -> World
shellHitFloor p pj w shellHitFloor p pj w
@@ -104,7 +99,7 @@ shellHitFloor p pj w
& topj . pjVel . _z %~ bouncez & topj . pjVel . _z %~ bouncez
& topj . pjVel . _xy %~ decvel & topj . pjVel . _xy %~ decvel
& topj . pjSpin %~ decspin & topj . pjSpin %~ decspin
& soundStart (ShellSound (pj ^. pjID)) (pj ^. pjPos . _xy) click1S Nothing & bounceSound pj
where where
bouncez x bouncez x
| x < -1 = -0.5 * x | x < -1 = -0.5 * x
@@ -119,14 +114,13 @@ shellHitFloor p pj w
| abs x < 0.01 = 0 | abs x < 0.01 = 0
| otherwise = x * 0.9 | otherwise = x * 0.9
destroyProjectile :: Maybe (NewInt ItmInt) -> Int -> World -> World destroyProjectile :: Projectile -> World -> World
destroyProjectile mitid pjid w = destroyProjectile pj =
w & cWorld . lWorld . projectiles %~ IM.delete pjid (cWorld . lWorld . projectiles %~ IM.delete pjid) . removelink
& removelink
where where
pjid = pj ^. pjID
removelink = fromMaybe id $ do removelink = fromMaybe id $ do
itid <- mitid itid <- pj ^. pjScreenID
-- loc <- w ^? cWorld . lWorld . itemLocations . ix itid
return $ pointerToItemID itid . itUse . uaParams . apProjectiles %~ delete pjid return $ pointerToItemID itid . itUse . uaParams . apProjectiles %~ delete pjid
trySpin :: Projectile -> World -> World trySpin :: Projectile -> World -> World
@@ -139,37 +133,36 @@ tryThrust :: Projectile -> World -> World
tryThrust pj = fromMaybe id $ do tryThrust pj = fromMaybe id $ do
Rocket y x <- pj ^? pjType Rocket y x <- pj ^? pjType
guard $ pj ^. pjTimer <= 330 && pj ^. pjTimer >= 0 guard $ pj ^. pjTimer <= 330 && pj ^. pjTimer >= 0
return $ doThrust pj x . pjRemoteSetDirection (Just y) pj return $ doThrust pj x . pjRemoteSetDirection y pj
doThrust :: Projectile -> Maybe RocketSmoke -> World -> World doThrust :: Projectile -> Maybe RocketSmoke -> World -> World
doThrust pj smoke w = doThrust pj smoke w =
w w
& randGen .~ g & randGen .~ g
& cWorld . lWorld . projectiles . ix i . pjVel . _xy %~ (\v -> accel +.+ frict *.* v) & cWorld . lWorld . projectiles . ix i . pjVel . _xy %~ (\v -> accel + frict *^ v)
& soundContinue (ShellSound i) newPos missileLaunchS (Just 1) & soundContinue (ShellSound i) (ep ^. _xy) missileLaunchS (Just 1)
& makeFlamelet & makeFlamelet
((oldPos -.- vel) `v2z` 20) (sp - 0.5 *^ vel)
((vel +.+ rotateV (pi + sparkD) accel) `v2z` 0) (vel + rotateV (pi + sparkD) accel `v2z` 0)
3 3
10 10
& makeCloudAt & makeCloudAt
RocketSmoke RocketSmoke
lifetime lifetime
(addZ 20 (oldPos +.+ r1 +.+ 30 *.* normalizeV (oldPos -.- newPos))) (sp + r1 + 30 *^ signorm (sp - ep))
where where
lifetime = fst . randomR lt $ _randGen w lifetime = fst . randomR lt $ _randGen w
lt lt
| smoke == Just ReducedRocketSmoke = (50, 200) | smoke == Just ReducedRocketSmoke = (50, 200)
| otherwise = (300, 500) | otherwise = (300, 500)
-- trailfadetime = fst . randomR (100, 300) $ _randGen w
accel = rotateV (pj ^. pjDir) (V2 3 0) accel = rotateV (pj ^. pjDir) (V2 3 0)
i = _pjID pj i = _pjID pj
oldPos = pj ^. pjPos . _xy sp = pj ^. pjPos
vel = pj ^. pjVel . _xy vel = pj ^. pjVel
newPos = oldPos +.+ vel ep = sp + vel
(frict, g) = randomR (0.6, 0.9) $ _randGen w (frict, g) = randomR (0.6, 0.9) $ _randGen w
(sparkD, _) = randomR (-0.2, 0.2) $ _randGen w (sparkD, _) = randomR (-0.2, 0.2) $ _randGen w
r1 = randInCirc 10 & evalState $ _randGen w r1 = addZ 0 $ randInCirc 10 & evalState $ _randGen w
doBarrelSpin :: Int -> Float -> Projectile -> World -> World doBarrelSpin :: Int -> Float -> Projectile -> World -> World
doBarrelSpin cid i pj w = doBarrelSpin cid i pj w =
@@ -179,31 +172,36 @@ doBarrelSpin cid i pj w =
pjid = _pjID pj pjid = _pjID pj
dir = argV $ pj ^. pjVel . _xy dir = argV $ pj ^. pjVel . _xy
newSpin = case w ^? cWorld . lWorld . creatures . ix cid of newSpin = case w ^? cWorld . lWorld . creatures . ix cid of
Just cr -> negate $ min 0.2 $ max (-0.2) $ normalizeAnglePi (dir - _crDir cr) / spinFactor Just cr ->
negate $
min 0.2 $ max (-0.2) $ normalizeAnglePi (dir - _crDir cr) / spinFactor
_ -> 0 _ -> 0
spinFactor = 5 * (6 - i) spinFactor = 5 * (6 - i)
-- note this only allows YOU to remotely track projectiles -- note this only allows YOU to remotely track projectiles
pjRemoteSetDirection :: Maybe RocketHoming -> Projectile -> World -> World pjRemoteSetDirection :: RocketHoming -> Projectile -> World -> World
pjRemoteSetDirection ph pj w = case ph of pjRemoteSetDirection ph pj w = case ph of
Just (HomeUsingRemoteScreen screenid) HomeUsingRemoteScreen screenid
| lw ^? creatures . ix 0 . crManipulation . manObject . imSelectedItem | lw ^? creatures . ix 0 . crManipulation . manObject . imSelectedItem
== lw ^? items . ix (_unNInt screenid) . itLocation . ilInvID -> == lw ^? items . ix (_unNInt screenid) . itLocation . ilInvID ->
w w
& cWorld . lWorld . projectiles . ix (_pjID pj) . pjDir & pjlens . pjDir .~ mousedir
.~ (w ^. wCam . camRot) + argV (w ^. input . mousePos) & pjlens . pjSpin .~ 0.5 * diffAngles mousedir pjdir
& cWorld . lWorld . projectiles . ix (_pjID pj) . pjSpin HomeUsingTargeting itid
.~ 0.5 * diffAngles ((w ^. wCam . camRot) + argV (w ^. input . mousePos)) (_pjDir pj)
Just (HomeUsingTargeting itid)
| Just tp <- w ^? pointerToItemID itid . itTargeting . itTgPos . _Just -> | Just tp <- w ^? pointerToItemID itid . itTargeting . itTgPos . _Just ->
w w
& cWorld . lWorld . projectiles . ix (_pjID pj) . pjDir & pjlens . pjDir %~ turnTo 0.2 (pj ^. pjPos . _xy) tp
%~ turnTo 0.2 (pj ^. pjPos . _xy) tp & pjlens . pjSpin
& cWorld . lWorld . projectiles . ix (_pjID pj) . pjSpin .~ 0.5
.~ 0.5 * diffAngles (turnTo 0.2 (pj ^. pjPos . _xy) tp (_pjDir pj)) (_pjDir pj) * diffAngles
(turnTo 0.2 (pj ^. pjPos . _xy) tp pjdir)
pjdir
_ -> w _ -> w
where where
pjdir = pj ^. pjDir
mousedir = w ^. wCam . camRot + argV (w ^. input . mousePos)
lw = w ^. cWorld . lWorld lw = w ^. cWorld . lWorld
pjlens = cWorld . lWorld . projectiles . ix (pj ^. pjID)
moveStuckGrenade :: Int -> Point3 -> Float -> Projectile -> World -> World moveStuckGrenade :: Int -> Point3 -> Float -> Projectile -> World -> World
moveStuckGrenade cid poff d pj w moveStuckGrenade cid poff d pj w
@@ -212,45 +210,44 @@ moveStuckGrenade cid poff d pj w
cdir = cr ^. crDir cdir = cr ^. crDir
vel = cpos - cr ^. crOldPos vel = cpos - cr ^. crOldPos
in w in w
& cWorld . lWorld . projectiles . ix (pj ^. pjID) . pjPos . _xy & pjlens . pjPos . _xy .~ xyV3 (cpos + rotate3z cdir poff)
.~ xyV3 (cpos + rotate3z cdir poff) & pjlens . pjDir .~ d + cdir
& cWorld . lWorld . projectiles . ix (pj ^. pjID) . pjDir .~ d + cdir & pjlens . pjVel .~ vel
& cWorld . lWorld . projectiles . ix (pj ^. pjID) . pjVel .~ vel
| otherwise = | otherwise =
w & cWorld . lWorld . projectiles . ix (pj ^. pjID) . pjType .~ Grenade GStick w & pjlens . pjType .~ Grenade GStick
where
pjlens = cWorld . lWorld . projectiles . ix (pj ^. pjID)
moveProjectile :: Projectile -> World -> World moveProjectile :: Projectile -> World -> World
moveProjectile pj w moveProjectile pj w
| Just GStuckWall{} <- pj ^? pjType . gnHitEffect = w | Just GStuckWall{} <- pj ^? pjType . gnHitEffect = w
| Just (GStuckCreature crid poff d) <- pj ^? pjType . gnHitEffect = | Just (GStuckCreature crid poff d) <- pj ^? pjType . gnHitEffect =
moveStuckGrenade crid poff d pj w moveStuckGrenade crid poff d pj w
| (p, Just (n, OWall wl)) <- collide3 sp (sp + 2 *^ _pjVel pj) w = | otherwise = case collide3 sp (sp + _pjVel pj) w of
shellHitWall p n wl pj w (p, Just (n, OWall wl)) -> shellHitWall p n wl pj w
| (p, Just (_, OFloor)) <- collide3 sp (sp + 2*^ _pjVel pj) w = (p, Just (_, OFloor)) -> shellHitFloor p pj w
shellHitFloor p pj w (p, Just (_, OCreature cr)) -> shellHitCreature p cr pj w
| (p, Just (_, OCreature cr)) <- collide3 sp (sp + 2 *^ _pjVel pj) w = (_, Just (_, OChasmWall)) -> w & pjlens . pjTimer .~ 0 -- no stick or bounce for now
shellHitCreature p cr pj w _ ->
| (_, Just (_, OChasmWall)) <- collide3 sp (sp + 2 *^_pjVel pj) w = w
-- no stick or bounce for now & pjlens . pjSpin *~ 0.99
w & cWorld . lWorld . projectiles . ix (pj ^. pjID) . pjTimer .~ 0 & pjlens . pjPos +~ _pjVel pj
| otherwise = & pjlens . pjDir +~ _pjSpin pj
w
& cWorld . lWorld . projectiles . ix (pj ^. pjID) . pjSpin *~ 0.99
& cWorld . lWorld . projectiles . ix (pj ^. pjID) . pjPos +~ _pjVel pj
& cWorld . lWorld . projectiles . ix (pj ^. pjID) . pjDir +~ _pjSpin pj
where where
pjlens = cWorld . lWorld . projectiles . ix (pj ^. pjID)
sp = _pjPos pj sp = _pjPos pj
explodeShell :: Projectile -> World -> World explodeShell :: Projectile -> World -> World
explodeShell pj w = explodeShell pj w =
w w
& cWorld . lWorld . projectiles . ix pjid . pjType .~ RetiredProjectile & pjlens . pjType .~ RetiredProjectile
& cWorld . lWorld . projectiles . ix pjid . pjVel .~ 0 & pjlens . pjVel .~ 0
& cWorld . lWorld . projectiles . ix pjid . pjTimer .~ 30 & pjlens . pjTimer .~ 30
& usePayload (_pjPayload pj) (pj ^. pjPos) (pj ^. pjVel) & usePayload (_pjPayload pj) (pj ^. pjPos) (pj ^. pjVel)
& stopSoundFrom (ShellSound pjid) & stopSoundFrom (ShellSound pjid)
& updatedetonator & updatedetonator
where where
pjlens = cWorld . lWorld . projectiles . ix pjid
updatedetonator = fromMaybe id $ do updatedetonator = fromMaybe id $ do
detid <- pj ^. pjDetonatorID detid <- pj ^. pjDetonatorID
return $ pointerToItemID detid . itUse . uaParams . apProjectiles %~ delete pjid return $ pointerToItemID detid . itUse . uaParams . apProjectiles %~ delete pjid
+88 -88
View File
@@ -728,7 +728,7 @@ MODStringOption src/Dodge/Data/Universe.hs 97;" C
MOTOR src/Dodge/Data/Item/Combine.hs 64;" C MOTOR src/Dodge/Data/Item/Combine.hs 64;" C
MP2Ac src/Dodge/Data/CreatureEffect.hs 56;" t MP2Ac src/Dodge/Data/CreatureEffect.hs 56;" t
MP2NoAction src/Dodge/Data/CreatureEffect.hs 56;" C MP2NoAction src/Dodge/Data/CreatureEffect.hs 56;" C
MPO src/Dodge/Base/Collide.hs 89;" t MPO src/Dodge/Base/Collide.hs 98;" t
MTRS src/Dodge/Data/MTRS.hs 6;" t MTRS src/Dodge/Data/MTRS.hs 6;" t
MTree src/Dodge/Data/MetaTree.hs 11;" C MTree src/Dodge/Data/MetaTree.hs 11;" C
Machine src/Dodge/Data/Machine.hs 30;" t Machine src/Dodge/Data/Machine.hs 30;" t
@@ -2613,7 +2613,7 @@ 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 214;" f allVisibleWalls src/Dodge/Base/Collide.hs 225;" f
alongSegBy src/Geometry.hs 40;" 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
@@ -2631,11 +2631,11 @@ angleBetween src/Geometry.hs 158;" f
angleVV src/Geometry/Vector.hs 58;" 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 337;" f anythingHitCirc src/Dodge/Base/Collide.hs 348;" f
applyCME src/Dodge/HeldUse.hs 370;" f applyCME src/Dodge/HeldUse.hs 370;" f
applyCreatureDamage src/Dodge/Creature/Damage.hs 14;" f applyCreatureDamage src/Dodge/Creature/Damage.hs 14;" f
applyEventIO src/Loop.hs 89;" f applyEventIO src/Loop.hs 89;" f
applyGravityPU src/Dodge/Projectile/Update.hs 44;" f applyGravityPU src/Dodge/Projectile/Update.hs 40;" f
applyIndividualDamage src/Dodge/Creature/Damage.hs 17;" f applyIndividualDamage src/Dodge/Creature/Damage.hs 17;" f
applyInvLock src/Dodge/HeldUse.hs 429;" f applyInvLock src/Dodge/HeldUse.hs 429;" f
applyMagnetsToBul src/Dodge/Bullet.hs 32;" f applyMagnetsToBul src/Dodge/Bullet.hs 32;" f
@@ -2781,7 +2781,8 @@ blunderbuss src/Dodge/Item/Held/Cone.hs 14;" f
bossKeyItems src/Dodge/LockAndKey.hs 12;" f bossKeyItems src/Dodge/LockAndKey.hs 12;" f
bossRoom src/Dodge/Room/Boss.hs 61;" f bossRoom src/Dodge/Room/Boss.hs 61;" f
bounceDir src/Dodge/Bullet.hs 110;" f bounceDir src/Dodge/Bullet.hs 110;" f
bouncePoint src/Dodge/Base/Collide.hs 85;" f bouncePoint src/Dodge/Base/Collide.hs 88;" f
bounceSound src/Dodge/Projectile/Update.hs 72;" f
boundPoints src/Bound.hs 10;" f boundPoints src/Bound.hs 10;" f
boundedGrid src/Grid.hs 19;" f boundedGrid src/Grid.hs 19;" f
boxABC src/Polyhedra.hs 108;" f boxABC src/Polyhedra.hs 108;" f
@@ -2814,8 +2815,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 323;" f canSee src/Dodge/Base/Collide.hs 334;" f
canSeeIndirect src/Dodge/Base/Collide.hs 330;" f canSeeIndirect src/Dodge/Base/Collide.hs 341;" f
cancelExamineInventory src/Dodge/Item/BackgroundEffect.hs 23;" f cancelExamineInventory src/Dodge/Item/BackgroundEffect.hs 23;" 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
@@ -2845,7 +2846,7 @@ chaseCritPerceptionUpdate src/Dodge/Creature/Perception.hs 31;" f
chaseCritVocalization src/Dodge/Creature/ChaseCrit.hs 37;" f chaseCritVocalization src/Dodge/Creature/ChaseCrit.hs 37;" f
chasmSimpleMaze src/Dodge/Room/Tutorial.hs 175;" f chasmSimpleMaze src/Dodge/Room/Tutorial.hs 175;" f
chasmTest src/Dodge/Creature/Update.hs 132;" f chasmTest src/Dodge/Creature/Update.hs 132;" f
chasmWallToSurface src/Dodge/Base/Collide.hs 111;" f chasmWallToSurface src/Dodge/Base/Collide.hs 120;" f
checkCombineSelectionExists src/Dodge/DisplayInventory.hs 100;" f checkCombineSelectionExists src/Dodge/DisplayInventory.hs 100;" f
checkConnection src/Dodge/Inventory/Swap.hs 66;" f checkConnection src/Dodge/Inventory/Swap.hs 66;" f
checkDeath src/Dodge/Creature/Update.hs 70;" f checkDeath src/Dodge/Creature/Update.hs 70;" f
@@ -2870,12 +2871,12 @@ chooseMovementLtAuto src/Dodge/CreatureEffect.hs 107;" f
chooseMovementPistol src/Dodge/Humanoid.hs 204;" f chooseMovementPistol src/Dodge/Humanoid.hs 204;" f
chooseMovementPistol' src/Dodge/Humanoid.hs 209;" f chooseMovementPistol' src/Dodge/Humanoid.hs 209;" f
chooseMovementSpreadGun src/Dodge/CreatureEffect.hs 90;" f chooseMovementSpreadGun src/Dodge/CreatureEffect.hs 90;" f
circHitWall src/Dodge/Base/Collide.hs 231;" f circHitWall src/Dodge/Base/Collide.hs 242;" f
circInPolygon src/Geometry/Polygon.hs 101;" f circInPolygon src/Geometry/Polygon.hs 101;" f
circOnAnyCr src/Dodge/Base/Collide.hs 286;" f circOnAnyCr src/Dodge/Base/Collide.hs 297;" f
circOnSeg src/Geometry.hs 101;" f circOnSeg src/Geometry.hs 101;" f
circOnSegNoEndpoints src/Geometry.hs 91;" f circOnSegNoEndpoints src/Geometry.hs 91;" f
circOnSomeWall src/Dodge/Base/Collide.hs 280;" f circOnSomeWall src/Dodge/Base/Collide.hs 291;" 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
@@ -2923,18 +2924,18 @@ colCrWall src/Dodge/WallCreatureCollisions.hs 29;" f
colCrsWalls src/Dodge/WallCreatureCollisions.hs 19;" f colCrsWalls src/Dodge/WallCreatureCollisions.hs 19;" f
collectDamageTypes src/Dodge/Damage.hs 53;" f collectDamageTypes src/Dodge/Damage.hs 53;" f
collectInvItems src/Dodge/Update/Input/InGame.hs 295;" f collectInvItems src/Dodge/Update/Input/InGame.hs 295;" f
collide3 src/Dodge/Base/Collide.hs 120;" f collide3 src/Dodge/Base/Collide.hs 129;" f
collide3Chasm src/Dodge/Base/Collide.hs 104;" f collide3Chasm src/Dodge/Base/Collide.hs 113;" f
collide3Chasms src/Dodge/Base/Collide.hs 97;" f collide3Chasms src/Dodge/Base/Collide.hs 106;" f
collide3Creature src/Dodge/Base/Collide.hs 153;" f collide3Creature src/Dodge/Base/Collide.hs 162;" f
collide3Floors src/Dodge/Base/Collide.hs 134;" f collide3Floors src/Dodge/Base/Collide.hs 143;" f
collide3Wall src/Dodge/Base/Collide.hs 148;" f collide3Wall src/Dodge/Base/Collide.hs 157;" f
collide3Walls src/Dodge/Base/Collide.hs 129;" f collide3Walls src/Dodge/Base/Collide.hs 138;" f
collide3WallsFloor src/Dodge/Base/Collide.hs 91;" f collide3WallsFloor src/Dodge/Base/Collide.hs 100;" f
collideCircWalls src/Dodge/Base/Collide.hs 243;" f collideCircWalls src/Dodge/Base/Collide.hs 254;" f
collidePoint src/Dodge/Base/Collide.hs 54;" f collidePoint src/Dodge/Base/Collide.hs 54;" f
collidePointTestFilter src/Dodge/Base/Collide.hs 179;" f collidePointTestFilter src/Dodge/Base/Collide.hs 190;" f
collidePointWallsFilter src/Dodge/Base/Collide.hs 193;" f collidePointWallsFilter src/Dodge/Base/Collide.hs 204;" 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 +2997,7 @@ crDisplayAwareness src/Dodge/Creature/Picture/Awareness.hs 39;" f
crDisplayVigilance src/Dodge/Creature/Picture/Awareness.hs 53;" f crDisplayVigilance src/Dodge/Creature/Picture/Awareness.hs 53;" f
crHasTarget src/Dodge/Creature/Test.hs 65;" f crHasTarget src/Dodge/Creature/Test.hs 65;" f
crHasTargetLOS src/Dodge/Creature/Test.hs 68;" f crHasTargetLOS src/Dodge/Creature/Test.hs 68;" f
crHeight src/Dodge/Base/Collide.hs 164;" f crHeight src/Dodge/Base/Collide.hs 175;" f
crHit src/Dodge/WorldEvent/ThingsHit.hs 113;" f crHit src/Dodge/WorldEvent/ThingsHit.hs 113;" f
crIXsNearCirc src/Dodge/Zoning/Creature.hs 33;" f crIXsNearCirc src/Dodge/Zoning/Creature.hs 33;" f
crIXsNearPoint src/Dodge/Zoning/Creature.hs 15;" f crIXsNearPoint src/Dodge/Zoning/Creature.hs 15;" f
@@ -3037,15 +3038,15 @@ createHeadLamp src/Dodge/Euse.hs 58;" f
createItemYou src/Dodge/Inventory/Add.hs 61;" f createItemYou src/Dodge/Inventory/Add.hs 61;" f
createLightMap src/Render.hs 26;" f createLightMap src/Render.hs 26;" f
createPathGrid src/Dodge/Room/Path.hs 20;" f createPathGrid src/Dodge/Room/Path.hs 20;" f
createProjectile src/Dodge/HeldUse.hs 1285;" f createProjectile src/Dodge/HeldUse.hs 1273;" f
createProjectileR src/Dodge/HeldUse.hs 1234;" f createProjectileR src/Dodge/HeldUse.hs 1222;" f
createShell src/Dodge/Projectile/Create.hs 21;" f createShell src/Dodge/Projectile/Create.hs 21;" f
createShieldWall src/Dodge/Item/BackgroundEffect.hs 40;" f createShieldWall src/Dodge/Item/BackgroundEffect.hs 40;" f
createUnusedLinkPos src/Dodge/Tree/Shift.hs 124;" f createUnusedLinkPos src/Dodge/Tree/Shift.hs 124;" f
createWall src/Dodge/Wall/Create.hs 8;" f createWall src/Dodge/Wall/Create.hs 8;" f
creatureDisplayText src/Dodge/Creature/Picture/Awareness.hs 12;" f creatureDisplayText src/Dodge/Creature/Picture/Awareness.hs 12;" f
creatureShootLaser src/Dodge/HeldUse.hs 845;" f creatureShootLaser src/Dodge/HeldUse.hs 841;" f
creatureShootPulseLaser src/Dodge/HeldUse.hs 876;" f creatureShootPulseLaser src/Dodge/HeldUse.hs 872;" f
creatureTurnTo src/Dodge/Creature/Impulse/Movement.hs 54;" f creatureTurnTo src/Dodge/Creature/Impulse/Movement.hs 54;" f
creatureTurnToward src/Dodge/Creature/Impulse/Movement.hs 75;" f creatureTurnToward src/Dodge/Creature/Impulse/Movement.hs 75;" f
creatureTurnTowardDir src/Dodge/Creature/Impulse/Movement.hs 64;" f creatureTurnTowardDir src/Dodge/Creature/Impulse/Movement.hs 64;" f
@@ -3211,12 +3212,12 @@ 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 162;" f destroyProjectile src/Dodge/Projectile/Update.hs 117;" f
detV src/Geometry/Vector.hs 94;" 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 1205;" f determineProjectileTracking src/Dodge/HeldUse.hs 1193;" 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 205;" f diffAngles src/Geometry.hs 205;" f
@@ -3246,10 +3247,10 @@ dmType src/Dodge/Damage.hs 38;" f
doAimTwist src/Dodge/Creature/YourControl.hs 154;" f doAimTwist src/Dodge/Creature/YourControl.hs 154;" f
doAnyEquipmentEffect src/Dodge/Creature/State.hs 141;" f doAnyEquipmentEffect src/Dodge/Creature/State.hs 141;" 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 214;" f doBarrelSpin src/Dodge/Projectile/Update.hs 167;" 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 67;" f doBounce src/Dodge/Base/Collide.hs 69;" f
doButtonEvent src/Dodge/Button/Event.hs 9;" f doButtonEvent src/Dodge/Button/Event.hs 9;" f
doConLoop src/Loop.hs 137;" f doConLoop src/Loop.hs 137;" f
doConLoop' src/Loop.hs 226;" f doConLoop' src/Loop.hs 226;" f
@@ -3276,8 +3277,8 @@ doDrag src/Dodge/Update/Input/InGame.hs 127;" f
doDrawing src/Dodge/Render.hs 34;" f 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 1166;" f doGenFloat src/Dodge/HeldUse.hs 1155;" f
doGravityPU src/Dodge/Projectile/Update.hs 38;" f doGravityPU src/Dodge/Projectile/Update.hs 34;" f
doHeldUseEffect src/Dodge/HeldUse.hs 352;" f doHeldUseEffect src/Dodge/HeldUse.hs 352;" 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 +3309,7 @@ doStrategyActions src/Dodge/Creature/ReaderUpdate.hs 167;" 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 184;" f doThrust src/Dodge/Projectile/Update.hs 138;" 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
@@ -3467,7 +3468,7 @@ drawZoneCol src/Dodge/Debug/Picture.hs 149;" f
drawZoneNearPointCursor src/Dodge/Debug/Picture.hs 285;" f drawZoneNearPointCursor src/Dodge/Debug/Picture.hs 285;" f
dropAll src/Dodge/Creature/Update.hs 129;" f dropAll src/Dodge/Creature/Update.hs 129;" f
dropExcept src/Dodge/Creature/Action.hs 168;" f dropExcept src/Dodge/Creature/Action.hs 168;" f
dropInventoryPath src/Dodge/HeldUse.hs 1360;" f dropInventoryPath src/Dodge/HeldUse.hs 1348;" f
dropItem src/Dodge/Creature/Action.hs 175;" f dropItem src/Dodge/Creature/Action.hs 175;" f
dropper src/Dodge/Item/Scope.hs 76;" f dropper src/Dodge/Item/Scope.hs 76;" f
drumMag src/Dodge/Item/Ammo.hs 34;" f drumMag src/Dodge/Item/Ammo.hs 34;" f
@@ -3544,7 +3545,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 187;" f expireAndDamage src/Dodge/Bullet.hs 187;" f
explodeShell src/Dodge/Projectile/Update.hs 321;" f explodeShell src/Dodge/Projectile/Update.hs 237;" 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
@@ -3655,7 +3656,7 @@ gameRoomViewpoints src/Dodge/Viewpoints.hs 35;" f
gameRoomsFromRooms src/Dodge/Layout.hs 144;" f gameRoomsFromRooms src/Dodge/Layout.hs 144;" f
gameplayMenu src/Dodge/Menu.hs 155;" f gameplayMenu src/Dodge/Menu.hs 155;" f
gameplayMenuOptions src/Dodge/Menu.hs 158;" f gameplayMenuOptions src/Dodge/Menu.hs 158;" f
gasType src/Dodge/HeldUse.hs 1123;" f gasType src/Dodge/HeldUse.hs 1112;" f
generateGenParams src/Dodge/LevelGen/LevelStructure.hs 23;" f generateGenParams src/Dodge/LevelGen/LevelStructure.hs 23;" f
generateGraphs src/Dodge/Menu.hs 149;" f generateGraphs src/Dodge/Menu.hs 149;" f
generateLayout src/Dodge/Layout/Generate.hs 10;" f generateLayout src/Dodge/Layout/Generate.hs 10;" f
@@ -3668,11 +3669,11 @@ geometryUnitTests test/Spec.hs 22;" f
geqConstr src/SameConstr.hs 21;" f geqConstr src/SameConstr.hs 21;" f
getAimZoom src/Dodge/Update/Camera.hs 143;" f getAimZoom src/Dodge/Update/Camera.hs 143;" f
getAmmoLinks src/Dodge/Item/Grammar.hs 104;" f getAmmoLinks src/Dodge/Item/Grammar.hs 104;" f
getAttachedSFLink src/Dodge/HeldUse.hs 791;" f getAttachedSFLink src/Dodge/HeldUse.hs 787;" f
getAutoSpringLinks src/Dodge/Item/Grammar.hs 85;" f getAutoSpringLinks src/Dodge/Item/Grammar.hs 85;" f
getAvailableListLines src/Dodge/SelectionList.hs 10;" f getAvailableListLines src/Dodge/SelectionList.hs 10;" f
getBulHitDams src/Dodge/Bullet.hs 172;" f getBulHitDams src/Dodge/Bullet.hs 172;" f
getBulletType src/Dodge/HeldUse.hs 913;" f getBulletType src/Dodge/HeldUse.hs 909;" f
getCloseObj src/Dodge/Update/Input/InGame.hs 533;" f 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
@@ -3680,7 +3681,7 @@ getCrMoveSpeed src/Dodge/Creature/Statistics.hs 50;" f
getCrsFromRooms src/Dodge/Room/Tutorial.hs 323;" f getCrsFromRooms src/Dodge/Room/Tutorial.hs 323;" f
getCrsFromRooms' src/Dodge/Room/Tutorial.hs 310;" f getCrsFromRooms' src/Dodge/Room/Tutorial.hs 310;" f
getDistortions src/Dodge/Render.hs 435;" f getDistortions src/Dodge/Render.hs 435;" f
getGrenadeHitEffect src/Dodge/HeldUse.hs 1273;" f getGrenadeHitEffect src/Dodge/HeldUse.hs 1261;" f
getInventoryPath src/Dodge/Inventory/Path.hs 9;" f getInventoryPath src/Dodge/Inventory/Path.hs 9;" f
getItemValue src/Dodge/Inventory/SelectionList.hs 147;" f getItemValue src/Dodge/Inventory/SelectionList.hs 147;" f
getLaserColor src/Dodge/HeldUse.hs 708;" f getLaserColor src/Dodge/HeldUse.hs 708;" f
@@ -3690,7 +3691,7 @@ getLinksOfType src/Dodge/RoomLink.hs 41;" f
getMaxLinesTM src/Dodge/Terminal/Type.hs 6;" f getMaxLinesTM src/Dodge/Terminal/Type.hs 6;" f
getMenuMouseContext src/Dodge/Update.hs 372;" f getMenuMouseContext src/Dodge/Update.hs 372;" f
getNodePos src/Dodge/Path.hs 31;" f getNodePos src/Dodge/Path.hs 31;" f
getPJStabiliser src/Dodge/HeldUse.hs 1260;" f getPJStabiliser src/Dodge/HeldUse.hs 1248;" f
getPretty src/AesonHelp.hs 8;" f getPretty src/AesonHelp.hs 8;" f
getPromptTM src/Dodge/Terminal/Type.hs 3;" f getPromptTM src/Dodge/Terminal/Type.hs 3;" f
getRoomsFromInts src/Dodge/Room/Tutorial.hs 306;" f getRoomsFromInts src/Dodge/Room/Tutorial.hs 306;" f
@@ -3764,10 +3765,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 300;" f hasButtonLOS src/Dodge/Base/Collide.hs 311;" f
hasCaneGunDim src/Dodge/Item/InvSize.hs 48;" f hasCaneGunDim src/Dodge/Item/InvSize.hs 48;" f
hasLOS src/Dodge/Base/Collide.hs 293;" f hasLOS src/Dodge/Base/Collide.hs 304;" f
hasLOSIndirect src/Dodge/Base/Collide.hs 309;" f hasLOSIndirect src/Dodge/Base/Collide.hs 320;" 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
@@ -3787,9 +3788,9 @@ heldInfo src/Dodge/Item/Info.hs 92;" f
heldItemAmmoSlots src/Dodge/Item/AmmoSlots.hs 19;" f heldItemAmmoSlots src/Dodge/Item/AmmoSlots.hs 19;" f
heldItemBulkiness src/Dodge/Creature/YourControl.hs 194;" f heldItemBulkiness src/Dodge/Creature/YourControl.hs 194;" f
heldItemInvLock src/Dodge/HeldUse.hs 443;" f heldItemInvLock src/Dodge/HeldUse.hs 443;" f
heldItemMuzVel src/Dodge/HeldUse.hs 1003;" f heldItemMuzVel src/Dodge/HeldUse.hs 999;" f
heldItemMuzzles src/Dodge/HeldUse.hs 176;" f heldItemMuzzles src/Dodge/HeldUse.hs 176;" f
heldItemRifling src/Dodge/HeldUse.hs 1046;" f heldItemRifling src/Dodge/HeldUse.hs 1042;" f
heldItemSPic src/Dodge/Item/Draw/SPic.hs 233;" f heldItemSPic src/Dodge/Item/Draw/SPic.hs 233;" f
heldItemWeight src/Dodge/Creature/Statistics.hs 80;" f heldItemWeight src/Dodge/Creature/Statistics.hs 80;" f
heldPositionInfo src/Dodge/Item/Info.hs 240;" f heldPositionInfo src/Dodge/Item/Info.hs 240;" f
@@ -3931,7 +3932,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 316;" f isWalkable src/Dodge/Base/Collide.hs 327;" 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
@@ -3949,7 +3950,7 @@ itemBlips src/Dodge/RadarSweep.hs 94;" f
itemBulkiness src/Dodge/Creature/YourControl.hs 188;" f itemBulkiness src/Dodge/Creature/YourControl.hs 188;" f
itemCombinations src/Dodge/Combine/Combinations.hs 56;" f itemCombinations src/Dodge/Combine/Combinations.hs 56;" f
itemCombinationsEdges src/Dodge/Combine/Graph.hs 61;" f itemCombinationsEdges src/Dodge/Combine/Graph.hs 61;" f
itemDetectorEffect src/Dodge/HeldUse.hs 797;" f itemDetectorEffect src/Dodge/HeldUse.hs 793;" f
itemDisplay src/Dodge/Inventory/SelectionList.hs 50;" f itemDisplay src/Dodge/Inventory/SelectionList.hs 50;" f
itemEquipPict src/Dodge/Item/Draw.hs 18;" f itemEquipPict src/Dodge/Item/Draw.hs 18;" f
itemExternalValue src/Dodge/Inventory/SelectionList.hs 85;" f itemExternalValue src/Dodge/Inventory/SelectionList.hs 85;" f
@@ -4131,7 +4132,7 @@ machineAddSound src/Dodge/Machine.hs 50;" f
machinePistol src/Dodge/Item/Held/Stick.hs 52;" f machinePistol src/Dodge/Item/Held/Stick.hs 52;" f
machineUpdateDeathEff src/Dodge/Machine.hs 35;" f machineUpdateDeathEff src/Dodge/Machine.hs 35;" f
machineUpdateLiveDieEff src/Dodge/Machine.hs 17;" f machineUpdateLiveDieEff src/Dodge/Machine.hs 17;" f
magAmmoParams src/Dodge/HeldUse.hs 934;" f magAmmoParams src/Dodge/HeldUse.hs 930;" 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 172;" f magV src/Geometry/Vector.hs 172;" f
@@ -4146,7 +4147,7 @@ makeAttach src/Dodge/Item/Attach.hs 10;" f
makeBlip src/Dodge/RadarSweep.hs 70;" f makeBlip src/Dodge/RadarSweep.hs 70;" f
makeBlockDebris src/Dodge/Block/Debris.hs 34;" f makeBlockDebris src/Dodge/Block/Debris.hs 34;" f
makeBoolOption src/Dodge/Menu/OptionType.hs 8;" f makeBoolOption src/Dodge/Menu/OptionType.hs 8;" f
makeBullet src/Dodge/HeldUse.hs 982;" f makeBullet src/Dodge/HeldUse.hs 978;" f
makeButton src/Dodge/LevelGen/Switch.hs 16;" f makeButton src/Dodge/LevelGen/Switch.hs 16;" f
makeByteStringShaderUsingVAO src/Shader/Compile.hs 128;" f makeByteStringShaderUsingVAO src/Shader/Compile.hs 128;" f
makeCloudAt src/Dodge/WorldEvent/Cloud.hs 7;" f makeCloudAt src/Dodge/WorldEvent/Cloud.hs 7;" f
@@ -4224,11 +4225,11 @@ mcProxSensorUpdate src/Dodge/Machine/Update.hs 139;" f
mcProxTest src/Dodge/Machine/Update.hs 203;" f mcProxTest src/Dodge/Machine/Update.hs 203;" f
mcProximitySensorUpdate src/Dodge/Machine/Update.hs 171;" f mcProximitySensorUpdate src/Dodge/Machine/Update.hs 171;" f
mcSPic src/Dodge/Render/ShapePicture.hs 135;" f mcSPic src/Dodge/Render/ShapePicture.hs 135;" f
mcShootAuto src/Dodge/HeldUse.hs 1177;" f mcShootAuto src/Dodge/HeldUse.hs 1166;" f
mcShootLaser src/Dodge/HeldUse.hs 1170;" f mcShootLaser src/Dodge/HeldUse.hs 1159;" f
mcTriggerVal src/Dodge/Machine/Update.hs 110;" f mcTriggerVal src/Dodge/Machine/Update.hs 110;" f
mcTypeUpdate src/Dodge/Machine/Update.hs 32;" f mcTypeUpdate src/Dodge/Machine/Update.hs 32;" f
mcUseHeld src/Dodge/HeldUse.hs 1089;" f mcUseHeld src/Dodge/HeldUse.hs 1085;" f
mcUseItem src/Dodge/Machine/Update.hs 89;" f mcUseItem src/Dodge/Machine/Update.hs 89;" f
megaBattery src/Dodge/Item/Ammo.hs 55;" f megaBattery src/Dodge/Item/Ammo.hs 55;" f
megaShellMag src/Dodge/Item/Ammo.hs 44;" f megaShellMag src/Dodge/Item/Ammo.hs 44;" f
@@ -4298,11 +4299,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 202;" f movePenBullet src/Dodge/Bullet.hs 202;" f
moveProjectile src/Dodge/Projectile/Update.hs 262;" f moveProjectile src/Dodge/Projectile/Update.hs 215;" f
moveProjectile' src/Dodge/Projectile/Update.hs 273;" 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 248;" f moveStuckGrenade src/Dodge/Projectile/Update.hs 201;" 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
@@ -4319,8 +4319,8 @@ multiLookupTrie src/SimpleTrie.hs 57;" f
multiLookupTrieI src/SimpleTrie.hs 66;" f multiLookupTrieI src/SimpleTrie.hs 66;" f
muout src/Dodge/RoomLink.hs 144;" f muout src/Dodge/RoomLink.hs 144;" f
muzFlareAt src/Dodge/HeldUse.hs 679;" f muzFlareAt src/Dodge/HeldUse.hs 679;" f
muzzlePos src/Dodge/HeldUse.hs 767;" f muzzlePos src/Dodge/HeldUse.hs 768;" f
muzzleRandPos src/Dodge/HeldUse.hs 776;" f muzzleRandPos src/Dodge/HeldUse.hs 777;" f
mvButton src/Dodge/Placement/PlaceSpot.hs 181;" f mvButton src/Dodge/Placement/PlaceSpot.hs 181;" f
mvCr src/Dodge/Placement/PlaceSpot.hs 187;" f mvCr src/Dodge/Placement/PlaceSpot.hs 187;" f
mvFS src/Dodge/Placement/PlaceSpot.hs 193;" f mvFS src/Dodge/Placement/PlaceSpot.hs 193;" f
@@ -4413,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 220;" f overlapCircWalls src/Dodge/Base/Collide.hs 231;" f
overlapCircWallsClosest src/Dodge/Base/Collide.hs 266;" f overlapCircWallsClosest src/Dodge/Base/Collide.hs 277;" f
overlapSegCrs src/Dodge/Base/Collide.hs 61;" f overlapSegCrs src/Dodge/Base/Collide.hs 61;" f
overlapSegWalls src/Dodge/Base/Collide.hs 202;" f overlapSegWalls src/Dodge/Base/Collide.hs 213;" f
overrideInternal src/Dodge/Creature/ReaderUpdate.hs 175;" f overrideInternal src/Dodge/Creature/ReaderUpdate.hs 175;" f
overrideMeleeCloseTarget src/Dodge/Creature/ReaderUpdate.hs 36;" f overrideMeleeCloseTarget src/Dodge/Creature/ReaderUpdate.hs 36;" f
overwriteLabel src/Dodge/Tree/Compose.hs 31;" f overwriteLabel src/Dodge/Tree/Compose.hs 31;" f
@@ -4469,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 227;" f pjRemoteSetDirection src/Dodge/Projectile/Update.hs 180;" 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
@@ -4751,7 +4751,7 @@ rememberSounds src/Dodge/Creature/Perception.hs 178;" f
remoteDetonator src/Dodge/Item/Scope.hs 144;" f remoteDetonator src/Dodge/Item/Scope.hs 144;" f
remoteScreen src/Dodge/Item/Scope.hs 139;" f remoteScreen src/Dodge/Item/Scope.hs 139;" f
removeAimPosture src/Dodge/Creature/YourControl.hs 159;" f removeAimPosture src/Dodge/Creature/YourControl.hs 159;" f
removeAmmoFromMag src/Dodge/HeldUse.hs 910;" f removeAmmoFromMag src/Dodge/HeldUse.hs 906;" f
removeDot src/ShortShow.hs 44;" f removeDot src/ShortShow.hs 44;" f
removeInverseWalls src/Dodge/LevelGen/StaticWalls.hs 25;" f removeInverseWalls src/Dodge/LevelGen/StaticWalls.hs 25;" f
removeLights src/Dodge/Room/Tutorial.hs 224;" f removeLights src/Dodge/Room/Tutorial.hs 224;" f
@@ -5006,10 +5006,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 27;" f shatterWall src/Dodge/Item/Weapon/Shatter.hs 27;" f
shellExplosionCheck src/Dodge/Projectile/Update.hs 58;" f shellExplosionCheck src/Dodge/Projectile/Update.hs 48;" f
shellHitCreature src/Dodge/Projectile/Update.hs 86;" f shellHitCreature src/Dodge/Projectile/Update.hs 79;" f
shellHitFloor src/Dodge/Projectile/Update.hs 102;" f shellHitFloor src/Dodge/Projectile/Update.hs 93;" f
shellHitWall src/Dodge/Projectile/Update.hs 69;" f shellHitWall src/Dodge/Projectile/Update.hs 58;" 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
@@ -5035,16 +5035,16 @@ shiftRoomShiftToLink src/Dodge/Room/Link.hs 70;" f
shiftedGrid src/Grid.hs 25;" f shiftedGrid src/Grid.hs 25;" f
shineTargetLaser src/Dodge/Creature/State.hs 201;" f shineTargetLaser src/Dodge/Creature/State.hs 201;" f
shineTorch src/Dodge/Creature/State.hs 238;" f shineTorch src/Dodge/Creature/State.hs 238;" f
shootBullet src/Dodge/HeldUse.hs 976;" f shootBullet src/Dodge/HeldUse.hs 972;" f
shootBullets src/Dodge/HeldUse.hs 966;" f shootBullets src/Dodge/HeldUse.hs 962;" f
shootFirstMiss src/Dodge/Creature/Volition.hs 34;" f shootFirstMiss src/Dodge/Creature/Volition.hs 34;" f
shootLaser src/Dodge/HeldUse.hs 855;" f shootLaser src/Dodge/HeldUse.hs 851;" f
shootPulseBall src/Dodge/HeldUse.hs 896;" f shootPulseBall src/Dodge/HeldUse.hs 892;" f
shootPulseLaser src/Dodge/HeldUse.hs 883;" f shootPulseLaser src/Dodge/HeldUse.hs 879;" f
shootShatter src/Dodge/Item/Weapon/Shatter.hs 12;" f shootShatter src/Dodge/Item/Weapon/Shatter.hs 12;" f
shootTeslaArc src/Dodge/HeldUse.hs 1194;" f shootTeslaArc src/Dodge/HeldUse.hs 1183;" f
shootTillEmpty src/Dodge/Creature/Volition.hs 19;" f shootTillEmpty src/Dodge/Creature/Volition.hs 19;" f
shootTractorBeam src/Dodge/HeldUse.hs 824;" f shootTractorBeam src/Dodge/HeldUse.hs 820;" f
shootersRoom src/Dodge/Room/Room.hs 324;" f shootersRoom src/Dodge/Room/Room.hs 324;" f
shootersRoom' src/Dodge/Room/Room.hs 291;" f shootersRoom' src/Dodge/Room/Room.hs 291;" f
shootersRoom1 src/Dodge/Room/Room.hs 314;" f shootersRoom1 src/Dodge/Room/Room.hs 314;" f
@@ -5184,6 +5184,7 @@ startRoom src/Dodge/Room/Start.hs 53;" f
startSeedGame src/Dodge/StartNewGame.hs 20;" f startSeedGame src/Dodge/StartNewGame.hs 20;" f
startSeedGameConc src/Dodge/StartNewGame.hs 27;" f startSeedGameConc src/Dodge/StartNewGame.hs 27;" f
statsModifier src/Dodge/Creature/Info.hs 16;" f statsModifier src/Dodge/Creature/Info.hs 16;" f
stickHitSound src/Dodge/Projectile/Update.hs 75;" f
stickyMod src/Dodge/Item/Scope.hs 51;" f stickyMod src/Dodge/Item/Scope.hs 51;" f
stone1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 540;" f stone1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 540;" f
stone2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 662;" f stone2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 662;" f
@@ -5258,7 +5259,6 @@ terminalWheelEvent src/Dodge/Update/Scroll.hs 131;" f
teslaGun src/Dodge/Item/Held/BatteryGuns.hs 19;" f teslaGun src/Dodge/Item/Held/BatteryGuns.hs 19;" f
teslaGunPic src/Dodge/Item/Draw/SPic.hs 409;" f teslaGunPic src/Dodge/Item/Draw/SPic.hs 409;" f
teslaParams src/Dodge/Item/Held/BatteryGuns.hs 25;" f teslaParams src/Dodge/Item/Held/BatteryGuns.hs 25;" f
test src/Dodge/Projectile/Update.hs 296;" f
testCrossWalls src/Dodge/Room/Path.hs 41;" f testCrossWalls src/Dodge/Room/Path.hs 41;" f
testEvent src/Dodge/Event/Test.hs 9;" f testEvent src/Dodge/Event/Test.hs 9;" f
testInventory src/Dodge/Creature.hs 292;" f testInventory src/Dodge/Creature.hs 292;" f
@@ -5342,7 +5342,7 @@ torqueCr src/Dodge/WorldEffect.hs 72;" f
torso src/Dodge/Creature/Picture.hs 102;" f torso src/Dodge/Creature/Picture.hs 102;" f
tractCr src/Dodge/TractorBeam/Update.hs 28;" f tractCr src/Dodge/TractorBeam/Update.hs 28;" f
tractFlIt src/Dodge/TractorBeam/Update.hs 23;" f tractFlIt src/Dodge/TractorBeam/Update.hs 23;" f
tractorBeamAt src/Dodge/HeldUse.hs 836;" f tractorBeamAt src/Dodge/HeldUse.hs 832;" f
tractorGun src/Dodge/Item/Held/BatteryGuns.hs 53;" f tractorGun src/Dodge/Item/Held/BatteryGuns.hs 53;" f
tractorGunPic src/Dodge/Item/Draw/SPic.hs 437;" f tractorGunPic src/Dodge/Item/Draw/SPic.hs 437;" f
tractorPullPos src/Dodge/TractorBeam/Update.hs 33;" f tractorPullPos src/Dodge/TractorBeam/Update.hs 33;" f
@@ -5402,9 +5402,9 @@ tryPlay src/Sound.hs 84;" f
tryPutItemInInv src/Dodge/Inventory/Add.hs 24;" f tryPutItemInInv src/Dodge/Inventory/Add.hs 24;" f
tryPutItemInInvAt src/Dodge/Inventory/Add.hs 53;" f tryPutItemInInvAt src/Dodge/Inventory/Add.hs 53;" f
trySeedFromClipboard src/Dodge/Menu.hs 96;" f trySeedFromClipboard src/Dodge/Menu.hs 96;" f
trySpin src/Dodge/Projectile/Update.hs 172;" f trySpin src/Dodge/Projectile/Update.hs 126;" f
trySynthBullet src/Dodge/Creature/State.hs 167;" f trySynthBullet src/Dodge/Creature/State.hs 167;" f
tryThrust src/Dodge/Projectile/Update.hs 178;" f tryThrust src/Dodge/Projectile/Update.hs 132;" f
tryUseParent src/Dodge/Creature/State.hs 145;" f tryUseParent src/Dodge/Creature/State.hs 145;" 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
@@ -5520,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 29;" f updateProjectile src/Dodge/Projectile/Update.hs 25;" f
updateProp src/Dodge/Prop/Update.hs 11;" f updateProp src/Dodge/Prop/Update.hs 11;" f
updatePulse src/Dodge/Creature/Update.hs 146;" f updatePulse src/Dodge/Creature/Update.hs 146;" f
updatePulseBall src/Dodge/Update.hs 433;" f updatePulseBall src/Dodge/Update.hs 433;" f
@@ -5582,9 +5582,9 @@ upperPrismPolySU src/Shape.hs 114;" f
upperPrismPolyTS src/Shape.hs 120;" f upperPrismPolyTS src/Shape.hs 120;" f
upperRounded src/Shape.hs 185;" f upperRounded src/Shape.hs 185;" f
useBulletPayload src/Dodge/Bullet.hs 116;" f useBulletPayload src/Dodge/Bullet.hs 116;" f
useGasParams src/Dodge/HeldUse.hs 1094;" f useGasParams src/Dodge/HeldUse.hs 1090;" f
useHotkey src/Dodge/Creature/YourControl.hs 77;" f useHotkey src/Dodge/Creature/YourControl.hs 77;" f
useInventoryPath src/Dodge/HeldUse.hs 1391;" f useInventoryPath src/Dodge/HeldUse.hs 1379;" f
useItem src/Dodge/Creature/Impulse/UseItem.hs 19;" f useItem src/Dodge/Creature/Impulse/UseItem.hs 19;" f
useItemLoc src/Dodge/Creature/Impulse/UseItem.hs 26;" f useItemLoc src/Dodge/Creature/Impulse/UseItem.hs 26;" f
useLnkRoomPos src/Dodge/PlacementSpot.hs 255;" f useLnkRoomPos src/Dodge/PlacementSpot.hs 255;" f
@@ -5592,11 +5592,11 @@ useLoadedAmmo src/Dodge/HeldUse.hs 721;" f
useMagShield src/Dodge/Euse.hs 30;" f useMagShield src/Dodge/Euse.hs 30;" f
useNormalCamera src/Dodge/Camera.hs 6;" f useNormalCamera src/Dodge/Camera.hs 6;" f
usePayload src/Dodge/Payload.hs 18;" f usePayload src/Dodge/Payload.hs 18;" f
useRewindGun src/Dodge/HeldUse.hs 1351;" f useRewindGun src/Dodge/HeldUse.hs 1339;" f
useRoomPosCond src/Dodge/PlacementSpot.hs 180;" f useRoomPosCond src/Dodge/PlacementSpot.hs 180;" f
useRoomPosRoomCond src/Dodge/PlacementSpot.hs 183;" f useRoomPosRoomCond src/Dodge/PlacementSpot.hs 183;" f
useStopWatch src/Dodge/HeldUse.hs 1332;" f useStopWatch src/Dodge/HeldUse.hs 1320;" f
useTimeScrollGun src/Dodge/HeldUse.hs 1340;" f useTimeScrollGun src/Dodge/HeldUse.hs 1328;" f
useUnusedLnk src/Dodge/PlacementSpot.hs 171;" f useUnusedLnk src/Dodge/PlacementSpot.hs 171;" f
usedRoomInLinkPoss src/Dodge/PlacementSpot.hs 202;" f usedRoomInLinkPoss src/Dodge/PlacementSpot.hs 202;" f
usedRoomLinkPoss src/Dodge/PlacementSpot.hs 209;" f usedRoomLinkPoss src/Dodge/PlacementSpot.hs 209;" f
@@ -5625,21 +5625,21 @@ viewClipBounds src/Dodge/Debug/Picture.hs 330;" f
viewDistanceFromItems src/Dodge/Update/Camera.hs 194;" f viewDistanceFromItems src/Dodge/Update/Camera.hs 194;" f
viewTarget src/Dodge/Creature/ReaderUpdate.hs 147;" f viewTarget src/Dodge/Creature/ReaderUpdate.hs 147;" f
violet src/Color.hs 21;" f violet src/Color.hs 21;" f
visibleWalls src/Dodge/Base/Collide.hs 206;" f visibleWalls src/Dodge/Base/Collide.hs 217;" 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
volleyGunShape src/Dodge/Item/Draw/SPic.hs 357;" f volleyGunShape src/Dodge/Item/Draw/SPic.hs 357;" f
walkNozzle src/Dodge/HeldUse.hs 812;" f walkNozzle src/Dodge/HeldUse.hs 808;" f
walkableNodeNear src/Dodge/Path.hs 48;" f walkableNodeNear src/Dodge/Path.hs 48;" f
wallBlips src/Dodge/RadarSweep.hs 99;" f wallBlips src/Dodge/RadarSweep.hs 99;" f
wallBuffer src/Dodge/WallCreatureCollisions.hs 53;" f wallBuffer src/Dodge/WallCreatureCollisions.hs 53;" 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 171;" f wallToSurface src/Dodge/Base/Collide.hs 182;" 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 1385;" f warmupSound src/Dodge/HeldUse.hs 1373;" f
warningRooms src/Dodge/Room/Warning.hs 30;" f warningRooms src/Dodge/Room/Warning.hs 30;" f
wasdAim src/Dodge/Creature/YourControl.hs 133;" f wasdAim src/Dodge/Creature/YourControl.hs 133;" f
wasdDir src/Dodge/WASD.hs 17;" f wasdDir src/Dodge/WASD.hs 17;" f