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 #-}
module Dodge.Projectile.Update (updateProjectile) where
import Linear
import Control.Monad
import Data.List (delete)
import Data.Maybe
@@ -19,6 +18,7 @@ import Dodge.WorldEvent.Sound
import Geometry
import qualified IntMapHelp as IM
import LensHelp
import Linear
import NewInt
import RandomHelp
@@ -38,62 +38,57 @@ doGravityPU pj
| otherwise = id
applyGravityPU :: Projectile -> World -> World
applyGravityPU pj w
| (pj ^. pjPos . _z) < 1 && norm (_pjVel pj) < 1 =
w
& topj . pjVel .~ 0
| otherwise =
w -- & topj . pjZ .~ newz
& topj . pjVel . _z -~ 0.5
applyGravityPU pj
| (pj ^. pjPos . _z) < 1 && norm (_pjVel pj) < 1 = topj . pjVel .~ 0
| otherwise = topj . pjVel . _z -~ 0.5
where
topj = cWorld . lWorld . projectiles . ix (pj ^. pjID)
-- newz = pj ^. pjZ + pj ^. pjZVel
-- consider pushing any hit creature back
shellExplosionCheck :: Projectile -> World -> World
shellExplosionCheck pj w
shellExplosionCheck pj
| RetiredProjectile <- pj ^. pjType
, time <= 0 =
destroyProjectile (pj ^. pjScreenID) (_pjID pj) w
| time <= 0 = explodeShell pj w
| RetiredProjectile <- pj ^. pjType = w
| otherwise = w
, timeout =
destroyProjectile pj
| timeout = explodeShell pj
| otherwise = id
where
time = _pjTimer pj
timeout = pj ^. pjTimer <= 0
shellHitWall :: Point3 -> Point3 -> Wall -> Projectile -> World -> World
shellHitWall p n wl pj w
shellHitWall p n wl pj
| Just GStick <- pj ^? pjType . gnHitEffect =
w & topj . pjType .~ Grenade (GStuckWall (wl ^. wlStructure))
& soundOriginIDsAt (ShellSound (pj ^. pjID)) [slapS, slap1S] (pj ^. pjPos . _xy)
(topj . pjType .~ Grenade (GStuckWall (wl ^. wlStructure)))
. stickHitSound pj
| Just x <- pj ^? pjType . gnHitEffect . bounceTolerance
, abs (dot (pj ^. pjVel) (normalize n)) < x =
w
& topj . pjVel %~ reflectInNormal n
& topj . pjPos .~ p + normalize n
& soundStart (ShellSound (pj ^. pjID)) (pj ^. pjPos . _xy) click1S Nothing
| otherwise =
w & topj . pjPos .~ p
& topj . pjTimer .~ 0
(topj . pjVel %~ reflectInNormal n)
. (topj . pjPos .~ p + normalize n)
. bounceSound pj
| otherwise = topj %~ ((pjPos .~ p) . (pjTimer .~ 0))
where
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 p cr pj w
shellHitCreature p cr pj
| Just GStick <- pj ^? pjType . gnHitEffect =
w
& cWorld . lWorld . projectiles . ix (_pjID pj) . pjType
.~ Grenade
( GStuckCreature
(cr ^. crID)
(rotate3z (- cr ^. crDir) (p - ((cr ^. crPos . _xy) `v2z` 0)))
(pj ^. pjDir - cr ^. crDir)
)
& soundOriginIDsAt (ShellSound (pj ^. pjID)) [slapS, slap1S] (pj ^. pjPos . _xy)
| otherwise =
w
& cWorld . lWorld . projectiles . ix (_pjID pj) . pjTimer .~ 0
(pjlens . pjType .~ Grenade gren)
. stickHitSound pj
| otherwise = pjlens . pjTimer .~ 0
where
pjlens = cWorld . lWorld . projectiles . ix (_pjID pj)
gren =
GStuckCreature
(cr ^. crID)
(rotate3z (- cr ^. crDir) (p - cr ^. crPos))
(pj ^. pjDir - cr ^. crDir)
shellHitFloor :: Point3 -> Projectile -> World -> World
shellHitFloor p pj w
@@ -104,7 +99,7 @@ shellHitFloor p pj w
& topj . pjVel . _z %~ bouncez
& topj . pjVel . _xy %~ decvel
& topj . pjSpin %~ decspin
& soundStart (ShellSound (pj ^. pjID)) (pj ^. pjPos . _xy) click1S Nothing
& bounceSound pj
where
bouncez x
| x < -1 = -0.5 * x
@@ -119,14 +114,13 @@ shellHitFloor p pj w
| abs x < 0.01 = 0
| otherwise = x * 0.9
destroyProjectile :: Maybe (NewInt ItmInt) -> Int -> World -> World
destroyProjectile mitid pjid w =
w & cWorld . lWorld . projectiles %~ IM.delete pjid
& removelink
destroyProjectile :: Projectile -> World -> World
destroyProjectile pj =
(cWorld . lWorld . projectiles %~ IM.delete pjid) . removelink
where
pjid = pj ^. pjID
removelink = fromMaybe id $ do
itid <- mitid
-- loc <- w ^? cWorld . lWorld . itemLocations . ix itid
itid <- pj ^. pjScreenID
return $ pointerToItemID itid . itUse . uaParams . apProjectiles %~ delete pjid
trySpin :: Projectile -> World -> World
@@ -139,37 +133,36 @@ tryThrust :: Projectile -> World -> World
tryThrust pj = fromMaybe id $ do
Rocket y x <- pj ^? pjType
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 pj smoke w =
w
& randGen .~ g
& cWorld . lWorld . projectiles . ix i . pjVel . _xy %~ (\v -> accel +.+ frict *.* v)
& soundContinue (ShellSound i) newPos missileLaunchS (Just 1)
& cWorld . lWorld . projectiles . ix i . pjVel . _xy %~ (\v -> accel + frict *^ v)
& soundContinue (ShellSound i) (ep ^. _xy) missileLaunchS (Just 1)
& makeFlamelet
((oldPos -.- vel) `v2z` 20)
((vel +.+ rotateV (pi + sparkD) accel) `v2z` 0)
(sp - 0.5 *^ vel)
(vel + rotateV (pi + sparkD) accel `v2z` 0)
3
10
& makeCloudAt
RocketSmoke
lifetime
(addZ 20 (oldPos +.+ r1 +.+ 30 *.* normalizeV (oldPos -.- newPos)))
(sp + r1 + 30 *^ signorm (sp - ep))
where
lifetime = fst . randomR lt $ _randGen w
lt
| smoke == Just ReducedRocketSmoke = (50, 200)
| otherwise = (300, 500)
-- trailfadetime = fst . randomR (100, 300) $ _randGen w
accel = rotateV (pj ^. pjDir) (V2 3 0)
i = _pjID pj
oldPos = pj ^. pjPos . _xy
vel = pj ^. pjVel . _xy
newPos = oldPos +.+ vel
sp = pj ^. pjPos
vel = pj ^. pjVel
ep = sp + vel
(frict, g) = randomR (0.6, 0.9) $ _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 cid i pj w =
@@ -179,31 +172,36 @@ doBarrelSpin cid i pj w =
pjid = _pjID pj
dir = argV $ pj ^. pjVel . _xy
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
spinFactor = 5 * (6 - i)
-- 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
Just (HomeUsingRemoteScreen screenid)
HomeUsingRemoteScreen screenid
| lw ^? creatures . ix 0 . crManipulation . manObject . imSelectedItem
== lw ^? items . ix (_unNInt screenid) . itLocation . ilInvID ->
w
& cWorld . lWorld . projectiles . ix (_pjID pj) . pjDir
.~ (w ^. wCam . camRot) + argV (w ^. input . mousePos)
& cWorld . lWorld . projectiles . ix (_pjID pj) . pjSpin
.~ 0.5 * diffAngles ((w ^. wCam . camRot) + argV (w ^. input . mousePos)) (_pjDir pj)
Just (HomeUsingTargeting itid)
& pjlens . pjDir .~ mousedir
& pjlens . pjSpin .~ 0.5 * diffAngles mousedir pjdir
HomeUsingTargeting itid
| Just tp <- w ^? pointerToItemID itid . itTargeting . itTgPos . _Just ->
w
& cWorld . lWorld . projectiles . ix (_pjID pj) . pjDir
%~ turnTo 0.2 (pj ^. pjPos . _xy) tp
& cWorld . lWorld . projectiles . ix (_pjID pj) . pjSpin
.~ 0.5 * diffAngles (turnTo 0.2 (pj ^. pjPos . _xy) tp (_pjDir pj)) (_pjDir pj)
& pjlens . pjDir %~ turnTo 0.2 (pj ^. pjPos . _xy) tp
& pjlens . pjSpin
.~ 0.5
* diffAngles
(turnTo 0.2 (pj ^. pjPos . _xy) tp pjdir)
pjdir
_ -> w
where
pjdir = pj ^. pjDir
mousedir = w ^. wCam . camRot + argV (w ^. input . mousePos)
lw = w ^. cWorld . lWorld
pjlens = cWorld . lWorld . projectiles . ix (pj ^. pjID)
moveStuckGrenade :: Int -> Point3 -> Float -> Projectile -> World -> World
moveStuckGrenade cid poff d pj w
@@ -212,45 +210,44 @@ moveStuckGrenade cid poff d pj w
cdir = cr ^. crDir
vel = cpos - cr ^. crOldPos
in w
& cWorld . lWorld . projectiles . ix (pj ^. pjID) . pjPos . _xy
.~ xyV3 (cpos + rotate3z cdir poff)
& cWorld . lWorld . projectiles . ix (pj ^. pjID) . pjDir .~ d + cdir
& cWorld . lWorld . projectiles . ix (pj ^. pjID) . pjVel .~ vel
& pjlens . pjPos . _xy .~ xyV3 (cpos + rotate3z cdir poff)
& pjlens . pjDir .~ d + cdir
& pjlens . pjVel .~ vel
| 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 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 + 2 *^ _pjVel pj) w =
shellHitWall p n wl pj w
| (p, Just (_, OFloor)) <- collide3 sp (sp + 2*^ _pjVel pj) w =
shellHitFloor p pj w
| (p, Just (_, OCreature cr)) <- collide3 sp (sp + 2 *^ _pjVel pj) w =
shellHitCreature p cr pj w
| (_, Just (_, OChasmWall)) <- collide3 sp (sp + 2 *^_pjVel pj) w =
-- no stick or bounce for now
w & cWorld . lWorld . projectiles . ix (pj ^. pjID) . pjTimer .~ 0
| otherwise =
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
| otherwise = case collide3 sp (sp + _pjVel pj) w of
(p, Just (n, OWall wl)) -> shellHitWall p n wl pj w
(p, Just (_, OFloor)) -> shellHitFloor p pj w
(p, Just (_, OCreature cr)) -> shellHitCreature p cr pj w
(_, Just (_, OChasmWall)) -> w & pjlens . pjTimer .~ 0 -- no stick or bounce for now
_ ->
w
& pjlens . pjSpin *~ 0.99
& pjlens . pjPos +~ _pjVel pj
& pjlens . pjDir +~ _pjSpin pj
where
pjlens = cWorld . lWorld . projectiles . ix (pj ^. pjID)
sp = _pjPos pj
explodeShell :: Projectile -> World -> World
explodeShell pj w =
w
& cWorld . lWorld . projectiles . ix pjid . pjType .~ RetiredProjectile
& cWorld . lWorld . projectiles . ix pjid . pjVel .~ 0
& cWorld . lWorld . projectiles . ix pjid . pjTimer .~ 30
& pjlens . pjType .~ RetiredProjectile
& pjlens . pjVel .~ 0
& pjlens . pjTimer .~ 30
& usePayload (_pjPayload pj) (pj ^. pjPos) (pj ^. pjVel)
& stopSoundFrom (ShellSound pjid)
& updatedetonator
where
pjlens = cWorld . lWorld . projectiles . ix pjid
updatedetonator = fromMaybe id $ do
detid <- pj ^. pjDetonatorID
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
MP2Ac src/Dodge/Data/CreatureEffect.hs 56;" t
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
MTree src/Dodge/Data/MetaTree.hs 11;" C
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
airlockSimple src/Dodge/Room/Airlock.hs 108;" 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
alteRifle src/Dodge/Item/Held/Cane.hs 22;" 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
angleVV3 src/Geometry/Vector3D.hs 122;" 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
applyCreatureDamage src/Dodge/Creature/Damage.hs 14;" 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
applyInvLock src/Dodge/HeldUse.hs 429;" 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
bossRoom src/Dodge/Room/Boss.hs 61;" 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
boundedGrid src/Grid.hs 19;" 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
calcSmoothScroll src/Dodge/SmoothScroll.hs 11;" f
calcTexCoord src/Tile.hs 19;" f
canSee src/Dodge/Base/Collide.hs 323;" f
canSeeIndirect src/Dodge/Base/Collide.hs 330;" f
canSee src/Dodge/Base/Collide.hs 334;" f
canSeeIndirect src/Dodge/Base/Collide.hs 341;" f
cancelExamineInventory src/Dodge/Item/BackgroundEffect.hs 23;" f
capacitor src/Dodge/Item/Ammo.hs 69;" 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
chasmSimpleMaze src/Dodge/Room/Tutorial.hs 175;" 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
checkConnection src/Dodge/Inventory/Swap.hs 66;" 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 209;" 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
circOnAnyCr src/Dodge/Base/Collide.hs 286;" f
circOnAnyCr src/Dodge/Base/Collide.hs 297;" f
circOnSeg src/Geometry.hs 101;" 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
circleDecoration src/Dodge/Placement/TopDecoration.hs 56;" 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
collectDamageTypes src/Dodge/Damage.hs 53;" f
collectInvItems src/Dodge/Update/Input/InGame.hs 295;" f
collide3 src/Dodge/Base/Collide.hs 120;" f
collide3Chasm src/Dodge/Base/Collide.hs 104;" f
collide3Chasms src/Dodge/Base/Collide.hs 97;" f
collide3Creature src/Dodge/Base/Collide.hs 153;" f
collide3Floors src/Dodge/Base/Collide.hs 134;" f
collide3Wall src/Dodge/Base/Collide.hs 148;" f
collide3Walls src/Dodge/Base/Collide.hs 129;" f
collide3WallsFloor src/Dodge/Base/Collide.hs 91;" f
collideCircWalls src/Dodge/Base/Collide.hs 243;" f
collide3 src/Dodge/Base/Collide.hs 129;" f
collide3Chasm src/Dodge/Base/Collide.hs 113;" f
collide3Chasms src/Dodge/Base/Collide.hs 106;" f
collide3Creature src/Dodge/Base/Collide.hs 162;" f
collide3Floors src/Dodge/Base/Collide.hs 143;" f
collide3Wall src/Dodge/Base/Collide.hs 157;" f
collide3Walls src/Dodge/Base/Collide.hs 138;" f
collide3WallsFloor src/Dodge/Base/Collide.hs 100;" f
collideCircWalls src/Dodge/Base/Collide.hs 254;" f
collidePoint src/Dodge/Base/Collide.hs 54;" f
collidePointTestFilter src/Dodge/Base/Collide.hs 179;" f
collidePointWallsFilter src/Dodge/Base/Collide.hs 193;" f
collidePointTestFilter src/Dodge/Base/Collide.hs 190;" f
collidePointWallsFilter src/Dodge/Base/Collide.hs 204;" f
color src/Picture/Base.hs 108;" f
colorLamp src/Dodge/Creature/Lamp.hs 10;" 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
crHasTarget src/Dodge/Creature/Test.hs 65;" 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
crIXsNearCirc src/Dodge/Zoning/Creature.hs 33;" 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
createLightMap src/Render.hs 26;" f
createPathGrid src/Dodge/Room/Path.hs 20;" f
createProjectile src/Dodge/HeldUse.hs 1285;" f
createProjectileR src/Dodge/HeldUse.hs 1234;" f
createProjectile src/Dodge/HeldUse.hs 1273;" f
createProjectileR src/Dodge/HeldUse.hs 1222;" f
createShell src/Dodge/Projectile/Create.hs 21;" f
createShieldWall src/Dodge/Item/BackgroundEffect.hs 40;" f
createUnusedLinkPos src/Dodge/Tree/Shift.hs 124;" f
createWall src/Dodge/Wall/Create.hs 8;" f
creatureDisplayText src/Dodge/Creature/Picture/Awareness.hs 12;" f
creatureShootLaser src/Dodge/HeldUse.hs 845;" f
creatureShootPulseLaser src/Dodge/HeldUse.hs 876;" f
creatureShootLaser src/Dodge/HeldUse.hs 841;" f
creatureShootPulseLaser src/Dodge/HeldUse.hs 872;" f
creatureTurnTo src/Dodge/Creature/Impulse/Movement.hs 54;" f
creatureTurnToward src/Dodge/Creature/Impulse/Movement.hs 75;" 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
destroyMount src/Dodge/Block.hs 100;" 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
detector src/Dodge/Item/Held/Utility.hs 27;" f
detectorColor src/Dodge/Item/Draw/SPic.hs 453;" 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
did src/Dodge/Item/InvSize.hs 54;" 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
doAnyEquipmentEffect src/Dodge/Creature/State.hs 141;" 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
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
doConLoop src/Loop.hs 137;" 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 45;" f
doFloatFloat src/Dodge/FloatFunction.hs 5;" f
doGenFloat src/Dodge/HeldUse.hs 1166;" f
doGravityPU src/Dodge/Projectile/Update.hs 38;" f
doGenFloat src/Dodge/HeldUse.hs 1155;" f
doGravityPU src/Dodge/Projectile/Update.hs 34;" f
doHeldUseEffect src/Dodge/HeldUse.hs 352;" f
doInPlacements src/Dodge/Layout.hs 82;" 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
doTextInputOver src/Dodge/Update/Input/Text.hs 15;" 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
doTmWdWd src/Dodge/WorldEffect.hs 89;" 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
dropAll src/Dodge/Creature/Update.hs 129;" 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
dropper src/Dodge/Item/Scope.hs 76;" 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
expandToSquare src/Dodge/LevelGen/StaticWalls/Deprecated.hs 83;" 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
explosiveBarrel src/Dodge/Creature/Inanimate.hs 25;" 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
gameplayMenu src/Dodge/Menu.hs 155;" 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
generateGraphs src/Dodge/Menu.hs 149;" 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
getAimZoom src/Dodge/Update/Camera.hs 143;" 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
getAvailableListLines src/Dodge/SelectionList.hs 10;" 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
getCommand src/Dodge/Terminal.hs 52;" 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 310;" 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
getItemValue src/Dodge/Inventory/SelectionList.hs 147;" 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
getMenuMouseContext src/Dodge/Update.hs 372;" 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
getPromptTM src/Dodge/Terminal/Type.hs 3;" 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
handleWindowMoveEvent src/Dodge/Event.hs 44;" 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
hasLOS src/Dodge/Base/Collide.hs 293;" f
hasLOSIndirect src/Dodge/Base/Collide.hs 309;" f
hasLOS src/Dodge/Base/Collide.hs 304;" f
hasLOSIndirect src/Dodge/Base/Collide.hs 320;" f
hat src/Dodge/Item/Equipment.hs 76;" f
head src/DoubleStack.hs 14;" 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
heldItemBulkiness src/Dodge/Creature/YourControl.hs 194;" 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
heldItemRifling src/Dodge/HeldUse.hs 1046;" f
heldItemRifling src/Dodge/HeldUse.hs 1042;" f
heldItemSPic src/Dodge/Item/Draw/SPic.hs 233;" f
heldItemWeight src/Dodge/Creature/Statistics.hs 80;" 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
isValidCommand src/Dodge/Debug/Terminal.hs 134;" 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
isotriBWH src/Geometry/Polygon.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
itemCombinations src/Dodge/Combine/Combinations.hs 56;" 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
itemEquipPict src/Dodge/Item/Draw.hs 18;" 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
machineUpdateDeathEff src/Dodge/Machine.hs 35;" 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
magShield src/Dodge/Item/Equipment.hs 27;" 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
makeBlockDebris src/Dodge/Block/Debris.hs 34;" 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
makeByteStringShaderUsingVAO src/Shader/Compile.hs 128;" 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
mcProximitySensorUpdate src/Dodge/Machine/Update.hs 171;" f
mcSPic src/Dodge/Render/ShapePicture.hs 135;" f
mcShootAuto src/Dodge/HeldUse.hs 1177;" f
mcShootLaser src/Dodge/HeldUse.hs 1170;" f
mcShootAuto src/Dodge/HeldUse.hs 1166;" f
mcShootLaser src/Dodge/HeldUse.hs 1159;" f
mcTriggerVal src/Dodge/Machine/Update.hs 110;" 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
megaBattery src/Dodge/Item/Ammo.hs 55;" 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
moveLSThen src/Dodge/Placement/Instance/LightSource.hs 43;" f
movePenBullet src/Dodge/Bullet.hs 202;" f
moveProjectile src/Dodge/Projectile/Update.hs 262;" f
moveProjectile' src/Dodge/Projectile/Update.hs 273;" f
moveProjectile src/Dodge/Projectile/Update.hs 215;" f
moveRoomBy src/Dodge/Room/Link.hs 53;" 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
moveWall src/Dodge/Wall/Move.hs 29;" 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
muout src/Dodge/RoomLink.hs 144;" f
muzFlareAt src/Dodge/HeldUse.hs 679;" f
muzzlePos src/Dodge/HeldUse.hs 767;" f
muzzleRandPos src/Dodge/HeldUse.hs 776;" f
muzzlePos src/Dodge/HeldUse.hs 768;" f
muzzleRandPos src/Dodge/HeldUse.hs 777;" f
mvButton src/Dodge/Placement/PlaceSpot.hs 181;" f
mvCr src/Dodge/Placement/PlaceSpot.hs 187;" 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
overPosSH src/Shape.hs 261;" f
overPosSP src/ShapePicture.hs 41;" f
overlapCircWalls src/Dodge/Base/Collide.hs 220;" f
overlapCircWallsClosest src/Dodge/Base/Collide.hs 266;" f
overlapCircWalls src/Dodge/Base/Collide.hs 231;" f
overlapCircWallsClosest src/Dodge/Base/Collide.hs 277;" 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
overrideMeleeCloseTarget src/Dodge/Creature/ReaderUpdate.hs 36;" 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
pistol src/Dodge/Item/Held/Stick.hs 40;" 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
plDoor src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 22;" 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
remoteScreen src/Dodge/Item/Scope.hs 139;" 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
removeInverseWalls src/Dodge/LevelGen/StaticWalls.hs 25;" 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
shatterGunSPic src/Dodge/Item/Draw/SPic.hs 312;" f
shatterWall src/Dodge/Item/Weapon/Shatter.hs 27;" f
shellExplosionCheck src/Dodge/Projectile/Update.hs 58;" f
shellHitCreature src/Dodge/Projectile/Update.hs 86;" f
shellHitFloor src/Dodge/Projectile/Update.hs 102;" f
shellHitWall src/Dodge/Projectile/Update.hs 69;" f
shellExplosionCheck src/Dodge/Projectile/Update.hs 48;" f
shellHitCreature src/Dodge/Projectile/Update.hs 79;" f
shellHitFloor src/Dodge/Projectile/Update.hs 93;" f
shellHitWall src/Dodge/Projectile/Update.hs 58;" f
shellMag src/Dodge/Item/Ammo.hs 49;" f
shellModule src/Dodge/Item/Scope.hs 123;" 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
shineTargetLaser src/Dodge/Creature/State.hs 201;" f
shineTorch src/Dodge/Creature/State.hs 238;" f
shootBullet src/Dodge/HeldUse.hs 976;" f
shootBullets src/Dodge/HeldUse.hs 966;" f
shootBullet src/Dodge/HeldUse.hs 972;" f
shootBullets src/Dodge/HeldUse.hs 962;" f
shootFirstMiss src/Dodge/Creature/Volition.hs 34;" f
shootLaser src/Dodge/HeldUse.hs 855;" f
shootPulseBall src/Dodge/HeldUse.hs 896;" f
shootPulseLaser src/Dodge/HeldUse.hs 883;" f
shootLaser src/Dodge/HeldUse.hs 851;" f
shootPulseBall src/Dodge/HeldUse.hs 892;" f
shootPulseLaser src/Dodge/HeldUse.hs 879;" 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
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 291;" 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
startSeedGameConc src/Dodge/StartNewGame.hs 27;" 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
stone1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 540;" 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
teslaGunPic src/Dodge/Item/Draw/SPic.hs 409;" 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
testEvent src/Dodge/Event/Test.hs 9;" 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
tractCr src/Dodge/TractorBeam/Update.hs 28;" 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
tractorGunPic src/Dodge/Item/Draw/SPic.hs 437;" 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
tryPutItemInInvAt src/Dodge/Inventory/Add.hs 53;" 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
tryThrust src/Dodge/Projectile/Update.hs 178;" f
tryThrust src/Dodge/Projectile/Update.hs 132;" f
tryUseParent src/Dodge/Creature/State.hs 145;" f
turnTo src/Dodge/Movement/Turn.hs 8;" 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
updatePastWorlds src/Dodge/Update.hs 408;" 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
updatePulse src/Dodge/Creature/Update.hs 146;" f
updatePulseBall src/Dodge/Update.hs 433;" f
@@ -5582,9 +5582,9 @@ upperPrismPolySU src/Shape.hs 114;" f
upperPrismPolyTS src/Shape.hs 120;" f
upperRounded src/Shape.hs 185;" 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
useInventoryPath src/Dodge/HeldUse.hs 1391;" f
useInventoryPath src/Dodge/HeldUse.hs 1379;" f
useItem src/Dodge/Creature/Impulse/UseItem.hs 19;" f
useItemLoc src/Dodge/Creature/Impulse/UseItem.hs 26;" 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
useNormalCamera src/Dodge/Camera.hs 6;" 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
useRoomPosRoomCond src/Dodge/PlacementSpot.hs 183;" f
useStopWatch src/Dodge/HeldUse.hs 1332;" f
useTimeScrollGun src/Dodge/HeldUse.hs 1340;" f
useStopWatch src/Dodge/HeldUse.hs 1320;" f
useTimeScrollGun src/Dodge/HeldUse.hs 1328;" f
useUnusedLnk src/Dodge/PlacementSpot.hs 171;" f
usedRoomInLinkPoss src/Dodge/PlacementSpot.hs 202;" 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
viewTarget src/Dodge/Creature/ReaderUpdate.hs 147;" 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
vocalizationTest src/Dodge/Creature/Vocalization.hs 42;" f
volleyGun src/Dodge/Item/Held/Cane.hs 15;" 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
wallBlips src/Dodge/RadarSweep.hs 99;" f
wallBuffer src/Dodge/WallCreatureCollisions.hs 53;" f
wallIsZeroLength src/Dodge/LevelGen/StaticWalls.hs 179;" 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
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
wasdAim src/Dodge/Creature/YourControl.hs 133;" f
wasdDir src/Dodge/WASD.hs 17;" f