Simplify shockwave damages

This commit is contained in:
2025-06-23 18:15:28 +01:00
parent 4e008366f4
commit 54eab6dd9e
12 changed files with 468 additions and 457 deletions
+1 -1
View File
File diff suppressed because one or more lines are too long
+19 -21
View File
@@ -1,6 +1,4 @@
module Dodge.Bullet ( module Dodge.Bullet (updateBullet) where
updateBullet,
) where
import Data.Bifunctor import Data.Bifunctor
import Data.Foldable import Data.Foldable
@@ -20,8 +18,9 @@ import System.Random
updateBullet :: World -> Bullet -> (World, Maybe Bullet) updateBullet :: World -> Bullet -> (World, Maybe Bullet)
updateBullet w bu updateBullet w bu
| magV (_buVel bu) < 10 | magV (_buVel bu) < 10
, BulBall _ <- _buPayload bu = (useBulletPayload bu (_buPos bu) w, Nothing) , BulBall _ <- _buPayload bu =
(useBulletPayload bu (_buPos bu) w, Nothing)
| magV (_buVel bu) < 1 = (useBulletPayload bu (_buPos bu) w, Nothing) | magV (_buVel bu) < 1 = (useBulletPayload bu (_buPos bu) w, Nothing)
-- have to be slightly carefull not to accelerate bullets using magnets -- have to be slightly carefull not to accelerate bullets using magnets
| otherwise = second (Just . updateBulVel) . hitEffFromBul w $ applyMagnetsToBul bu w | otherwise = second (Just . updateBulVel) . hitEffFromBul w $ applyMagnetsToBul bu w
@@ -106,8 +105,8 @@ updateBulVel bt = bt & buVel .*.*~ _buDrag bt
-- return $ BezierTrajectory sp tpos (mouseWorldPos (w ^. input) (w ^. wCam)) -- return $ BezierTrajectory sp tpos (mouseWorldPos (w ^. input) (w ^. wCam))
bounceDir :: (Point2, Either Creature Wall) -> Maybe Point2 bounceDir :: (Point2, Either Creature Wall) -> Maybe Point2
bounceDir (_, Right wl) | _wlBouncy wl = Just $ uncurry (-.-) (_wlLine wl) bounceDir (_, Right wl) | _wlBouncy wl = Just $ uncurry (-) (_wlLine wl)
bounceDir (p, Left cr) | crIsArmouredFrom p cr = Just $ vNormal $ p -.- _crPos cr bounceDir (p, Left cr) | crIsArmouredFrom p cr = Just $ vNormal $ p - _crPos cr
bounceDir _ = Nothing bounceDir _ = Nothing
useBulletPayload :: Bullet -> Point2 -> World -> World useBulletPayload :: Bullet -> Point2 -> World -> World
@@ -117,10 +116,12 @@ useBulletPayload bu = case _buPayload bu of
BulFrag -> makeFragBullets BulFrag -> makeFragBullets
BulGas -> (`makeGasCloud` V2 0 0) BulGas -> (`makeGasCloud` V2 0 0)
BulBall ExplosiveBall -> makeMovingEB (_buVel bu) ExplosiveBall BulBall ExplosiveBall -> makeMovingEB (_buVel bu) ExplosiveBall
BulBall ElectricalBall{} -> makeMovingEB (_buVel bu) BulBall ElectricalBall{} ->
(ElectricalBall (round $ bu ^. buPos . _1)) makeMovingEB
(_buVel bu)
(ElectricalBall (round $ bu ^. buPos . _1))
BulBall FlashBall -> makeMovingEB (_buVel bu) FlashBall BulBall FlashBall -> makeMovingEB (_buVel bu) FlashBall
BulBall (FlameletBall x r) -> makeMovingEB (_buVel bu) (FlameletBall x r) BulBall (FlameletBall x r) -> makeMovingEB (_buVel bu) (FlameletBall x r)
BulBall IncendiaryBall -> makeMovingEB (_buVel bu) IncendiaryBall BulBall IncendiaryBall -> makeMovingEB (_buVel bu) IncendiaryBall
makeFragBullets :: Point2 -> World -> World makeFragBullets :: Point2 -> World -> World
@@ -130,7 +131,7 @@ makeFragBullets p w = w & cWorld . lWorld . bullets .++~ bus
as = randomRs (0, 2 * pi) $ _randGen w as = randomRs (0, 2 * pi) $ _randGen w
ss = randomRs (5, 15) $ _randGen w ss = randomRs (5, 15) $ _randGen w
f a s = f a s =
defaultBullet defaultBullet
& buPayload .~ BulPlain 5 & buPayload .~ BulPlain 5
& buVel .~ s *.* unitVectorAtAngle a & buVel .~ s *.* unitVectorAtAngle a
& buDrag .~ 0.8 & buDrag .~ 0.8
@@ -143,7 +144,8 @@ makeFlak bu _ w = w & cWorld . lWorld . bullets .++~ [f x | x <- xs]
where where
s = min 10 (0.5 * magV (_buVel bu)) s = min 10 (0.5 * magV (_buVel bu))
xs = take 5 $ randomRs (- s, s) $ _randGen w xs = take 5 $ randomRs (- s, s) $ _randGen w
f x = bu & buVel %~ g x f x =
bu & buVel %~ g x
& buPayload .~ BulPlain 25 & buPayload .~ BulPlain 25
& buWidth .~ 0.5 & buWidth .~ 0.5
g x v = v +.+ x *.* normalizeV (vNormal v) g x v = v +.+ x *.* normalizeV (vNormal v)
@@ -171,13 +173,12 @@ setFromToDams bu p = case _buPayload bu of
_ -> [] _ -> []
where where
v = _buVel bu v = _buVel bu
-- f = (dmFrom .~ _buPos bu) . (dmAt .~ p) . (dmTo .~ _buPos bu +.+ _buVel bu) -- f = (dmFrom .~ _buPos bu) . (dmAt .~ p) . (dmTo .~ _buPos bu +.+ _buVel bu)
damageThingHit :: Bullet -> (Point2, Either Creature Wall) -> World -> World damageThingHit :: Bullet -> (Point2, Either Creature Wall) -> World -> World
damageThingHit bu (p, crwl) = case crwl of damageThingHit bu (p, crwl) = case crwl of
Left cr -> cWorld . lWorld . creatures . ix (_crID cr) . crDamage .++~ dams Left cr -> cWorld . lWorld . creatures . ix (_crID cr) . crDamage <>~ dams
-- Right wl -> cWorld . lWorld . wallDamages %~ IM.insertWith (++) (_wlID wl) dams
-- hopefully the following doesn't introduce a space leak
Right wl -> cWorld . lWorld . wallDamages . at (_wlID wl) . non mempty <>~ dams Right wl -> cWorld . lWorld . wallDamages . at (_wlID wl) . non mempty <>~ dams
where where
dams = setFromToDams bu p dams = setFromToDams bu p
@@ -195,16 +196,13 @@ moveBullet :: Bullet -> Bullet
moveBullet pt = pt & buPos +~ _buVel pt & buOldPos .~ _buPos pt moveBullet pt = pt & buPos +~ _buVel pt & buOldPos .~ _buPos pt
stopBulletAt :: Point2 -> Bullet -> Bullet stopBulletAt :: Point2 -> Bullet -> Bullet
stopBulletAt hitp pt = stopBulletAt hitp pt = pt & buPos .~ hitp & buOldPos .~ _buPos pt & buVel .~ 0
pt
& buPos .~ hitp
& buOldPos .~ _buPos pt
& buVel .~ 0
movePenBullet :: Bullet -> [(Point2, Either Creature Wall)] -> World -> (World, Bullet) movePenBullet :: Bullet -> [(Point2, Either Creature Wall)] -> World -> (World, Bullet)
movePenBullet bu hitstream w = case hitstream of movePenBullet bu hitstream w = case hitstream of
[] -> (w, moveBullet bu) [] -> (w, moveBullet bu)
((p, crwl) : strm) | penThing crwl -> ((p, crwl) : strm)
| penThing crwl ->
first (damageThingHit bu (p, crwl)) $ movePenBullet bu strm w first (damageThingHit bu (p, crwl)) $ movePenBullet bu strm w
_ -> expireAndDamage bu hitstream w _ -> expireAndDamage bu hitstream w
+2 -2
View File
@@ -1,4 +1,4 @@
module Dodge.Item.Weapon.Shatter where module Dodge.Item.Weapon.Shatter (shootShatter) where
import Dodge.Base.Collide import Dodge.Base.Collide
import Dodge.Block.Debris import Dodge.Block.Debris
@@ -31,7 +31,7 @@ shatterWall w sp ep p wl =
1 1
2 2
(pi / 2) (pi / 2)
(argV $ vNormal $ uncurry (-.-) $ _wlLine wl) (argV $ vNormal $ uncurry (-) $ _wlLine wl)
(_wlMaterial wl) (_wlMaterial wl)
(_wlColor wl) (_wlColor wl)
p p
+1 -3
View File
@@ -1,6 +1,4 @@
module Dodge.Laser.Update ( module Dodge.Laser.Update ( updateLaser) where
updateLaser,
) where
import Dodge.Damage import Dodge.Damage
import Control.Lens import Control.Lens
+12 -11
View File
@@ -59,10 +59,12 @@ damageMetal dm ecw w =
Lasering _ p t -> makeSpark FireSpark (outTo p t) (rdir p t) Lasering _ p t -> makeSpark FireSpark (outTo p t) (rdir p t)
Piercing _ p t -> Piercing _ p t ->
makeSpark NormalSpark (outTo p t) (rdir p t) makeSpark NormalSpark (outTo p t) (rdir p t)
. randsound p [tingS, ting1S, ting2S, ting3S, ting4S, ting5S] . randsound p [clangS,clang1S
,tingS, ting1S, ting2S, ting3S, ting4S, ting5S]
-- . randsound p [tingS, ting1S, ting2S, ting3S, ting4S, ting5S]
Blunt _ p t -> Blunt _ p t ->
makeSpark NormalSpark (outTo p t) (rdir p t) makeSpark NormalSpark (outTo p t) (rdir p t)
. randsound p [tingS, ting1S, ting2S, ting3S, ting4S, ting5S] . randsound p [clangS,clang1S,clang2S]
Shattering _ _ _ -> id Shattering _ _ _ -> id
Crushing{} -> id Crushing{} -> id
Explosive{} -> id Explosive{} -> id
@@ -85,7 +87,7 @@ damageMetal dm ecw w =
so = DamageHitSound (w ^. cWorld . lWorld . lClock) so = DamageHitSound (w ^. cWorld . lWorld . lClock)
damageFlesh :: Damage -> ECW -> World -> World damageFlesh :: Damage -> ECW -> World -> World
damageFlesh dm ecw w = w & case dm of damageFlesh dm _ w = w & case dm of
Lasering _ _ _ -> id Lasering _ _ _ -> id
Piercing _ p t -> Piercing _ p t ->
randsound randsound
@@ -101,7 +103,7 @@ damageFlesh dm ecw w = w & case dm of
] ]
. smokeCloudAt red 20 200 1 (addZ 20 (outTo p t)) . smokeCloudAt red 20 200 1 (addZ 20 (outTo p t))
Blunt _ p _ -> randsound p [hitS] Blunt _ p _ -> randsound p [hitS]
Shattering _ p t -> id Shattering _ _ _ -> id
Crushing{} -> id Crushing{} -> id
Explosive{} -> id Explosive{} -> id
Sparking{} -> id Sparking{} -> id
@@ -111,9 +113,6 @@ damageFlesh dm ecw w = w & case dm of
Enterrement{} -> id Enterrement{} -> id
Flashing{} -> id Flashing{} -> id
where where
v = case ecw of
Right wl -> uncurry (-) $ _wlLine wl
Left cr -> undefined
randsound p xs = randsound p xs =
let (x, g) = runState (takeOne xs) $ _randGen w let (x, g) = runState (takeOne xs) $ _randGen w
in soundStart so p x Nothing . set randGen g in soundStart so p x Nothing . set randGen g
@@ -123,7 +122,7 @@ damageFlesh dm ecw w = w & case dm of
damageDirt :: Damage -> ECW -> World -> World damageDirt :: Damage -> ECW -> World -> World
damageDirt dm ecw w = damageDirt dm ecw w =
w & case dm of w & case dm of
Lasering _ p t -> makeSpark FireSpark (outTo p t) (argV $ reflectIn v t) Lasering _ p t -> makeSpark FireSpark (outTo p t) (rdir p t)
Piercing _ p t -> Piercing _ p t ->
smokeCloudAt orange 20 200 1 (addZ 20 (outTo p t)) smokeCloudAt orange 20 200 1 (addZ 20 (outTo p t))
. randsound p [slapS, slap1S] . randsound p [slapS, slap1S]
@@ -138,9 +137,11 @@ damageDirt dm ecw w =
Enterrement{} -> id Enterrement{} -> id
Flashing{} -> id Flashing{} -> id
where where
v = case ecw of rdir p t = argV $ reflectIn v t
Right wl -> uncurry (-) $ _wlLine wl where
Left cr -> undefined v = case ecw of
Right wl -> uncurry (-) $ _wlLine wl
Left cr -> vNormal (p - _crPos cr)
randsound p xs = randsound p xs =
let (x, g) = runState (takeOne xs) $ _randGen w let (x, g) = runState (takeOne xs) $ _randGen w
in soundStart so p x Nothing . set randGen g in soundStart so p x Nothing . set randGen g
+2 -2
View File
@@ -11,8 +11,8 @@ destroyMatS mat = case mat of
Stone -> [stone1S, stone2S, stone3S, stone4S, stone5S] Stone -> [stone1S, stone2S, stone3S, stone4S, stone5S]
Dirt -> [stone1S, stone3S] Dirt -> [stone1S, stone3S]
Wood -> [stone1S, stone3S] Wood -> [stone1S, stone3S]
Metal -> [metal1S, metal2S, metal3S, metal4S, metal5S, metal6S, metal7S] Metal -> [metal1S, metal2S, metal3S, metal4S, metal5S, metal6S,metal7S]
Electronics -> [metal1S, metal2S, metal3S, metal4S, metal5S, metal6S, metal7S] Electronics -> [metal1S, metal2S, metal3S, metal4S, metal5S, metal6S,metal7S]
Flesh -> [gut1S, gut2S, gut3S, gut4S, gut5S, gut6S] Flesh -> [gut1S, gut2S, gut3S, gut4S, gut5S, gut6S]
weakenMatS :: Material -> [SoundID] weakenMatS :: Material -> [SoundID]
+14 -16
View File
@@ -1,11 +1,8 @@
module Dodge.Shockwave.Update (updateShockwave) where module Dodge.Shockwave.Update (updateShockwave) where
import Data.Foldable import Dodge.Damage
import Dodge.Base.Collide
import Dodge.Creature.Radius import Dodge.Creature.Radius
import Dodge.Data.World import Dodge.Data.World
import Dodge.Wall.Damage
import Dodge.Zoning.Wall
import Geometry.Vector import Geometry.Vector
import qualified IntMapHelp as IM import qualified IntMapHelp as IM
import LensHelp import LensHelp
@@ -20,24 +17,25 @@ moveShockwave w sw
| _swTimer sw <= 0 = (w, Nothing) | _swTimer sw <= 0 = (w, Nothing)
| otherwise = (doDams w, Just $ sw & swTimer -~ 1) | otherwise = (doDams w, Just $ sw & swTimer -~ 1)
where where
is = _swInvulnerableCrs sw -- is = _swInvulnerableCrs sw
r = _swRad sw r = _swRad sw
p = _swPos sw p = _swPos sw
dam = _swDam sw dam = _swDam sw
t = _swTimer sw t = _swTimer sw
tFraction = fromIntegral t / fromIntegral (_swMaxTime sw) tFraction = fromIntegral t / fromIntegral (_swMaxTime sw)
rad = r - (3 / 4) * r * tFraction rad = r - (3 / 4) * r * tFraction
doDams w' = doDams = damageInCircle (Explosive dam) p rad
over (cWorld . lWorld . creatures) (IM.map damCr) $ -- doDams w' =
foldl' -- over (cWorld . lWorld . creatures) (IM.map damCr) $
(flip $ damageWall (Explosive 1000 p)) -- foldl'
w' -- (flip $ damageWall (Explosive 1000 p))
hitBlocks -- w'
hitBlocks = map snd . overlapCircWalls p rad $ wlsNearCirc p rad w -- hitBlocks
-- this is not expansive enough -- hitBlocks = map snd . overlapCircWalls p rad $ wlsNearCirc p rad w
damCr cr -- -- this is not expansive enough
| _crID cr `elem` is || dist (_crPos cr) p >= rad + crRad (cr ^. crType) = cr -- damCr cr
| otherwise = cr & crDamage .:~ Explosive dam p -- | _crID cr `elem` is || dist (_crPos cr) p >= rad + crRad (cr ^. crType) = cr
-- | otherwise = cr & crDamage .:~ Explosive dam p
--where --where
-- cpos = _crPos cr -- cpos = _crPos cr
+258 -243
View File
@@ -1,4 +1,4 @@
-- generated at 2025-06-22 13:29:03.952552964 UTC -- generated at 2025-06-22 21:26:57.684446959 UTC
module Dodge.SoundLogic.ExternallyGeneratedSounds where module Dodge.SoundLogic.ExternallyGeneratedSounds where
import Sound.Data import Sound.Data
soundToVol :: SoundID -> Float soundToVol :: SoundID -> Float
@@ -44,89 +44,92 @@ soundToVol v = case _getSoundID v of
38 -> 1000 38 -> 1000
39 -> 200 39 -> 200
40 -> 1000 40 -> 1000
41 -> 40 41 -> 500
42 -> 400 42 -> 40
43 -> 2000 43 -> 400
44 -> 100 44 -> 2000
45 -> 300 45 -> 100
46 -> 50 46 -> 300
47 -> 2000 47 -> 50
48 -> 50 48 -> 2000
49 -> 1000 49 -> 50
50 -> 8000 50 -> 500
51 -> 2000 51 -> 1000
52 -> 2000 52 -> 8000
53 -> 1000 53 -> 2000
54 -> 200 54 -> 2000
55 -> 2000 55 -> 1000
56 -> 100 56 -> 200
57 -> 100 57 -> 2000
58 -> 40 58 -> 100
59 -> 100 59 -> 100
60 -> 40 60 -> 40
61 -> 2000 61 -> 100
62 -> 100 62 -> 40
63 -> 500 63 -> 2000
64 -> 40 64 -> 100
65 -> 100 65 -> 500
66 -> 300 66 -> 40
67 -> 300 67 -> 100
68 -> 100 68 -> 300
69 -> 2000 69 -> 300
70 -> 1000 70 -> 100
71 -> 1000 71 -> 2000
72 -> 1000 72 -> 1000
73 -> 100 73 -> 1000
74 -> 100 74 -> 1000
75 -> 1000 75 -> 100
76 -> 1000 76 -> 100
77 -> 40 77 -> 1000
78 -> 50 78 -> 1000
79 -> 1000 79 -> 40
80 -> 500 80 -> 50
81 -> 500 81 -> 1000
82 -> 100 82 -> 500
83 -> 100 83 -> 500
84 -> 1000 84 -> 100
85 -> 20 85 -> 100
86 -> 500 86 -> 1000
87 -> 300 87 -> 20
88 -> 200 88 -> 500
89 -> 500 89 -> 300
90 -> 1000 90 -> 200
91 -> 200 91 -> 500
92 -> 1000 92 -> 1000
93 -> 2000 93 -> 200
94 -> 500 94 -> 1000
95 -> 200 95 -> 2000
96 -> 100 96 -> 500
97 -> 1000 97 -> 200
98 -> 300 98 -> 100
99 -> 2000 99 -> 1000
100 -> 2000 100 -> 300
101 -> 100 101 -> 2000
102 -> 500 102 -> 2000
103 -> 2000 103 -> 100
104 -> 100 104 -> 500
105 -> 300 105 -> 2000
106 -> 1000 106 -> 500
107 -> 200 107 -> 100
108 -> 100 108 -> 300
109 -> 1000 109 -> 1000
110 -> 2000 110 -> 200
111 -> 1000 111 -> 100
112 -> 100 112 -> 1000
113 -> 200 113 -> 2000
114 -> 500 114 -> 1000
115 -> 100 115 -> 100
116 -> 2000 116 -> 200
117 -> 200 117 -> 500
118 -> 1000 118 -> 100
119 -> 2000 119 -> 2000
120 -> 2000 120 -> 200
121 -> 200 121 -> 1000
122 -> 100 122 -> 2000
123 -> 200 123 -> 2000
124 -> 200
125 -> 100
126 -> 200
_ -> 50 _ -> 50
soundToOnomato :: SoundID -> String soundToOnomato :: SoundID -> String
soundToOnomato v = case _getSoundID v of soundToOnomato v = case _getSoundID v of
@@ -171,89 +174,92 @@ soundToOnomato v = case _getSoundID v of
38 -> "TRWNG" 38 -> "TRWNG"
39 -> "TING" 39 -> "TING"
40 -> "CRASH" 40 -> "CRASH"
41 -> "TAPTIP" 41 -> "CLANG"
42 -> "CRNKCRNKCRNK" 42 -> "TAPTIP"
43 -> "CHUGUGUG" 43 -> "CRNKCRNKCRNK"
44 -> "SKWLL" 44 -> "CHUGUGUG"
45 -> "WRRR" 45 -> "SKWLL"
46 -> "HSSS" 46 -> "WRRR"
47 -> "BOOM" 47 -> "HSSS"
48 -> "HSS" 48 -> "BOOM"
49 -> "TAKH" 49 -> "HSS"
50 -> "RINGGG" 50 -> "CLANG"
51 -> "CRH" 51 -> "TAKH"
52 -> "UGGAUGGA" 52 -> "RINGGG"
53 -> "CRUMPLE" 53 -> "CRH"
54 -> "TING" 54 -> "UGGAUGGA"
55 -> "CREUH" 55 -> "CRUMPLE"
56 -> "KKSQWL" 56 -> "TING"
57 -> "SMACK" 57 -> "CREUH"
58 -> "CLICK" 58 -> "KKSQWL"
59 -> "SPRT" 59 -> "SMACK"
60 -> "TIPTOP" 60 -> "CLICK"
61 -> "CRUH" 61 -> "SPRT"
62 -> "CHNKCHNKCHUNK" 62 -> "TIPTOP"
63 -> "CLKCLK" 63 -> "CRUH"
64 -> "TIPTAP" 64 -> "CHNKCHNKCHUNK"
65 -> "SKWLCH" 65 -> "CLKCLK"
66 -> "TNKTNKTNK" 66 -> "TIPTAP"
67 -> "CHPCHPCHP" 67 -> "SKWLCH"
68 -> "SLP" 68 -> "TNKTNKTNK"
69 -> "SCREE" 69 -> "CHPCHPCHP"
70 -> "DHDHL" 70 -> "SLP"
71 -> "BRAP" 71 -> "SCREE"
72 -> "CRSK" 72 -> "DHDHL"
73 -> "SPLRT" 73 -> "BRAP"
74 -> "SKWLL" 74 -> "CRSK"
75 -> "CRNKL" 75 -> "SPLRT"
76 -> "TRNKL" 76 -> "SKWLL"
77 -> "TAPP" 77 -> "CRNKL"
78 -> "SHUHP" 78 -> "TRNKL"
79 -> "CRUMBL" 79 -> "TAPP"
80 -> "DEDEDUM" 80 -> "SHUHP"
81 -> "TAK" 81 -> "CRUMBL"
82 -> "SPLRT" 82 -> "DEDEDUM"
83 -> "SQLEE" 83 -> "TAK"
84 -> "CRISH" 84 -> "SPLRT"
85 -> "SWSH" 85 -> "SQLEE"
86 -> "BIPBIPBIP" 86 -> "CRISH"
87 -> "BEP" 87 -> "SWSH"
88 -> "CRSKRL" 88 -> "BIPBIPBIP"
89 -> "KRTNKL" 89 -> "BEP"
90 -> "CRSNK" 90 -> "CRSKRL"
91 -> "SHTCK" 91 -> "KRTNKL"
92 -> "TTRKL" 92 -> "CRSNK"
93 -> "UGGAUGGA" 93 -> "SHTCK"
94 -> "DUDURAH" 94 -> "TTRKL"
95 -> "TING" 95 -> "UGGAUGGA"
96 -> "KKSQWL" 96 -> "DUDURAH"
97 -> "CRMPL" 97 -> "TING"
98 -> "BWEP" 98 -> "KKSQWL"
99 -> "CHUGUGUG" 99 -> "CRMPL"
100 -> "BANG" 100 -> "BWEP"
101 -> "SLPP" 101 -> "CHUGUGUG"
102 -> "DEDA" 102 -> "BANG"
103 -> "WHSSH" 103 -> "SLPP"
104 -> "HNH" 104 -> "DEDA"
105 -> "BWAH" 105 -> "WHSSH"
106 -> "CRUNK" 106 -> "CLANG"
107 -> "SQWLTCH" 107 -> "HNH"
108 -> "DRR" 108 -> "BWAH"
109 -> "TRNKL" 109 -> "CRUNK"
110 -> "BRAP" 110 -> "SQWLTCH"
111 -> "BLPCHCH" 111 -> "DRR"
112 -> "SKLE" 112 -> "TRNKL"
113 -> "ZMM" 113 -> "BRAP"
114 -> "WRRR" 114 -> "BLPCHCH"
115 -> "FWUMP" 115 -> "SKLE"
116 -> "BRAHCHCH" 116 -> "ZMM"
117 -> "TING" 117 -> "WRRR"
118 -> "BWMP" 118 -> "FWUMP"
119 -> "BRPBRPBRP" 119 -> "BRAHCHCH"
120 -> "WE-OH" 120 -> "TING"
121 -> "THCK" 121 -> "BWMP"
122 -> "FHP" 122 -> "BRPBRPBRP"
123 -> "QWLPH" 123 -> "WE-OH"
124 -> "THCK"
125 -> "FHP"
126 -> "QWLPH"
_ -> error "unitialised sound" _ -> error "unitialised sound"
soundPathList :: [String] soundPathList :: [String]
soundPathList = soundPathList =
@@ -298,6 +304,7 @@ soundPathList =
, "metal7.TRWNG.1000.wav" , "metal7.TRWNG.1000.wav"
, "ting4.TING.200.wav" , "ting4.TING.200.wav"
, "stone1.CRASH.1000.wav" , "stone1.CRASH.1000.wav"
, "clang.CLANG.500.wav"
, "twoStep1.TAPTIP.40.wav" , "twoStep1.TAPTIP.40.wav"
, "wrench1.CRNKCRNKCRNK.400.wav" , "wrench1.CRNKCRNKCRNK.400.wav"
, "seagullChatter.CHUGUGUG.2000.wav" , "seagullChatter.CHUGUGUG.2000.wav"
@@ -306,6 +313,7 @@ soundPathList =
, "foamSprayLoop.HSSS.50.wav" , "foamSprayLoop.HSSS.50.wav"
, "explosion.BOOM.2000.wav" , "explosion.BOOM.2000.wav"
, "foamSprayFadeOut.HSS.50.wav" , "foamSprayFadeOut.HSS.50.wav"
, "clang1.CLANG.500.wav"
, "tap2.TAKH.1000.wav" , "tap2.TAKH.1000.wav"
, "tinitus.RINGGG.8000.wav" , "tinitus.RINGGG.8000.wav"
, "seagullCry1.CRH.2000.wav" , "seagullCry1.CRH.2000.wav"
@@ -361,6 +369,7 @@ soundPathList =
, "slap1.SLPP.100.wav" , "slap1.SLPP.100.wav"
, "deda.DEDA.500.wav" , "deda.DEDA.500.wav"
, "missileLaunch.WHSSH.2000.wav" , "missileLaunch.WHSSH.2000.wav"
, "clang2.CLANG.500.wav"
, "grunt.HNH.100.wav" , "grunt.HNH.100.wav"
, "sineRaisePitchOneSec.BWAH.300.wav" , "sineRaisePitchOneSec.BWAH.300.wav"
, "metal2.CRUNK.1000.wav" , "metal2.CRUNK.1000.wav"
@@ -464,169 +473,175 @@ ting4S :: SoundID
ting4S = SoundID 39 ting4S = SoundID 39
stone1S :: SoundID stone1S :: SoundID
stone1S = SoundID 40 stone1S = SoundID 40
clangS :: SoundID
clangS = SoundID 41
twoStep1S :: SoundID twoStep1S :: SoundID
twoStep1S = SoundID 41 twoStep1S = SoundID 42
wrench1S :: SoundID wrench1S :: SoundID
wrench1S = SoundID 42 wrench1S = SoundID 43
seagullChatterS :: SoundID seagullChatterS :: SoundID
seagullChatterS = SoundID 43 seagullChatterS = SoundID 44
blood4S :: SoundID blood4S :: SoundID
blood4S = SoundID 44 blood4S = SoundID 45
fireFadeS :: SoundID fireFadeS :: SoundID
fireFadeS = SoundID 45 fireFadeS = SoundID 46
foamSprayLoopS :: SoundID foamSprayLoopS :: SoundID
foamSprayLoopS = SoundID 46 foamSprayLoopS = SoundID 47
explosionS :: SoundID explosionS :: SoundID
explosionS = SoundID 47 explosionS = SoundID 48
foamSprayFadeOutS :: SoundID foamSprayFadeOutS :: SoundID
foamSprayFadeOutS = SoundID 48 foamSprayFadeOutS = SoundID 49
clang1S :: SoundID
clang1S = SoundID 50
tap2S :: SoundID tap2S :: SoundID
tap2S = SoundID 49 tap2S = SoundID 51
tinitusS :: SoundID tinitusS :: SoundID
tinitusS = SoundID 50 tinitusS = SoundID 52
seagullCry1S :: SoundID seagullCry1S :: SoundID
seagullCry1S = SoundID 51 seagullCry1S = SoundID 53
seagullBarkS :: SoundID seagullBarkS :: SoundID
seagullBarkS = SoundID 52 seagullBarkS = SoundID 54
stone3S :: SoundID stone3S :: SoundID
stone3S = SoundID 53 stone3S = SoundID 55
tingS :: SoundID tingS :: SoundID
tingS = SoundID 54 tingS = SoundID 56
seagullCry2S :: SoundID seagullCry2S :: SoundID
seagullCry2S = SoundID 55 seagullCry2S = SoundID 57
bloodShort3S :: SoundID bloodShort3S :: SoundID
bloodShort3S = SoundID 56 bloodShort3S = SoundID 58
hit1S :: SoundID hit1S :: SoundID
hit1S = SoundID 57 hit1S = SoundID 59
click1S :: SoundID click1S :: SoundID
click1S = SoundID 58 click1S = SoundID 60
bloodShort2S :: SoundID bloodShort2S :: SoundID
bloodShort2S = SoundID 59 bloodShort2S = SoundID 61
twoStepSlowS :: SoundID twoStepSlowS :: SoundID
twoStepSlowS = SoundID 60 twoStepSlowS = SoundID 62
seagullCryS :: SoundID seagullCryS :: SoundID
seagullCryS = SoundID 61 seagullCryS = SoundID 63
crankSlowS :: SoundID crankSlowS :: SoundID
crankSlowS = SoundID 62 crankSlowS = SoundID 64
primeS :: SoundID primeS :: SoundID
primeS = SoundID 63 primeS = SoundID 65
twoStepS :: SoundID twoStepS :: SoundID
twoStepS = SoundID 64 twoStepS = SoundID 66
bloodShort8S :: SoundID bloodShort8S :: SoundID
bloodShort8S = SoundID 65 bloodShort8S = SoundID 67
reloadS :: SoundID reloadS :: SoundID
reloadS = SoundID 66 reloadS = SoundID 68
reload1S :: SoundID reload1S :: SoundID
reload1S = SoundID 67 reload1S = SoundID 69
slapS :: SoundID slapS :: SoundID
slapS = SoundID 68 slapS = SoundID 70
tone440sawtoothS :: SoundID tone440sawtoothS :: SoundID
tone440sawtoothS = SoundID 69 tone440sawtoothS = SoundID 71
metal3S :: SoundID metal3S :: SoundID
metal3S = SoundID 70 metal3S = SoundID 72
tap3S :: SoundID tap3S :: SoundID
tap3S = SoundID 71 tap3S = SoundID 73
glassShat4S :: SoundID glassShat4S :: SoundID
glassShat4S = SoundID 72 glassShat4S = SoundID 74
bloodShort1S :: SoundID bloodShort1S :: SoundID
bloodShort1S = SoundID 73 bloodShort1S = SoundID 75
bloodShort4S :: SoundID bloodShort4S :: SoundID
bloodShort4S = SoundID 74 bloodShort4S = SoundID 76
glassShat2S :: SoundID glassShat2S :: SoundID
glassShat2S = SoundID 75 glassShat2S = SoundID 77
metal1S :: SoundID metal1S :: SoundID
metal1S = SoundID 76 metal1S = SoundID 78
foot3S :: SoundID foot3S :: SoundID
foot3S = SoundID 77 foot3S = SoundID 79
pickUpS :: SoundID pickUpS :: SoundID
pickUpS = SoundID 78 pickUpS = SoundID 80
stone5S :: SoundID stone5S :: SoundID
stone5S = SoundID 79 stone5S = SoundID 81
dededumS :: SoundID dededumS :: SoundID
dededumS = SoundID 80 dededumS = SoundID 82
tap1S :: SoundID tap1S :: SoundID
tap1S = SoundID 81 tap1S = SoundID 83
blood1S :: SoundID blood1S :: SoundID
blood1S = SoundID 82 blood1S = SoundID 84
bloodShort7S :: SoundID bloodShort7S :: SoundID
bloodShort7S = SoundID 83 bloodShort7S = SoundID 85
metal4S :: SoundID metal4S :: SoundID
metal4S = SoundID 84 metal4S = SoundID 86
knifeS :: SoundID knifeS :: SoundID
knifeS = SoundID 85 knifeS = SoundID 87
computerBeepingS :: SoundID computerBeepingS :: SoundID
computerBeepingS = SoundID 86 computerBeepingS = SoundID 88
tone440S :: SoundID tone440S :: SoundID
tone440S = SoundID 87 tone440S = SoundID 89
gut6S :: SoundID gut6S :: SoundID
gut6S = SoundID 88 gut6S = SoundID 90
smallGlass2S :: SoundID smallGlass2S :: SoundID
smallGlass2S = SoundID 89 smallGlass2S = SoundID 91
glassShat1S :: SoundID glassShat1S :: SoundID
glassShat1S = SoundID 90 glassShat1S = SoundID 92
disconnectItemS :: SoundID disconnectItemS :: SoundID
disconnectItemS = SoundID 91 disconnectItemS = SoundID 93
metal5S :: SoundID metal5S :: SoundID
metal5S = SoundID 92 metal5S = SoundID 94
seagullBarkTransformedS :: SoundID seagullBarkTransformedS :: SoundID
seagullBarkTransformedS = SoundID 93 seagullBarkTransformedS = SoundID 95
ejectS :: SoundID ejectS :: SoundID
ejectS = SoundID 94 ejectS = SoundID 96
ting3S :: SoundID ting3S :: SoundID
ting3S = SoundID 95 ting3S = SoundID 97
blood3S :: SoundID blood3S :: SoundID
blood3S = SoundID 96 blood3S = SoundID 98
stone2S :: SoundID stone2S :: SoundID
stone2S = SoundID 97 stone2S = SoundID 99
tone440raiseS :: SoundID tone440raiseS :: SoundID
tone440raiseS = SoundID 98 tone440raiseS = SoundID 100
seagullChatter1S :: SoundID seagullChatter1S :: SoundID
seagullChatter1S = SoundID 99 seagullChatter1S = SoundID 101
bangS :: SoundID bangS :: SoundID
bangS = SoundID 100 bangS = SoundID 102
slap1S :: SoundID slap1S :: SoundID
slap1S = SoundID 101 slap1S = SoundID 103
dedaS :: SoundID dedaS :: SoundID
dedaS = SoundID 102 dedaS = SoundID 104
missileLaunchS :: SoundID missileLaunchS :: SoundID
missileLaunchS = SoundID 103 missileLaunchS = SoundID 105
clang2S :: SoundID
clang2S = SoundID 106
gruntS :: SoundID gruntS :: SoundID
gruntS = SoundID 104 gruntS = SoundID 107
sineRaisePitchOneSecS :: SoundID sineRaisePitchOneSecS :: SoundID
sineRaisePitchOneSecS = SoundID 105 sineRaisePitchOneSecS = SoundID 108
metal2S :: SoundID metal2S :: SoundID
metal2S = SoundID 106 metal2S = SoundID 109
gut5S :: SoundID gut5S :: SoundID
gut5S = SoundID 107 gut5S = SoundID 110
slideDoorS :: SoundID slideDoorS :: SoundID
slideDoorS = SoundID 108 slideDoorS = SoundID 111
metal6S :: SoundID metal6S :: SoundID
metal6S = SoundID 109 metal6S = SoundID 112
autoGunS :: SoundID autoGunS :: SoundID
autoGunS = SoundID 110 autoGunS = SoundID 113
oldMachineBootS :: SoundID oldMachineBootS :: SoundID
oldMachineBootS = SoundID 111 oldMachineBootS = SoundID 114
blood6S :: SoundID blood6S :: SoundID
blood6S = SoundID 112 blood6S = SoundID 115
buzzS :: SoundID buzzS :: SoundID
buzzS = SoundID 113 buzzS = SoundID 116
fireLoudS :: SoundID fireLoudS :: SoundID
fireLoudS = SoundID 114 fireLoudS = SoundID 117
tap4S :: SoundID tap4S :: SoundID
tap4S = SoundID 115 tap4S = SoundID 118
shotgunS :: SoundID shotgunS :: SoundID
shotgunS = SoundID 116 shotgunS = SoundID 119
ting5S :: SoundID ting5S :: SoundID
ting5S = SoundID 117 ting5S = SoundID 120
sawtoothFailS :: SoundID sawtoothFailS :: SoundID
sawtoothFailS = SoundID 118 sawtoothFailS = SoundID 121
miniS :: SoundID miniS :: SoundID
miniS = SoundID 119 miniS = SoundID 122
seagullWhistleS :: SoundID seagullWhistleS :: SoundID
seagullWhistleS = SoundID 120 seagullWhistleS = SoundID 123
connectItemS :: SoundID connectItemS :: SoundID
connectItemS = SoundID 121 connectItemS = SoundID 124
whiteNoiseFadeInS :: SoundID whiteNoiseFadeInS :: SoundID
whiteNoiseFadeInS = SoundID 122 whiteNoiseFadeInS = SoundID 125
gut1S :: SoundID gut1S :: SoundID
gut1S = SoundID 123 gut1S = SoundID 126
+6 -3
View File
@@ -13,16 +13,19 @@ loadSound (i,s) = do
chnk <- Mix.load $ "./data/sound/" ++ s chnk <- Mix.load $ "./data/sound/" ++ s
return (i,chnk) return (i,chnk)
-- current thinking is to use group 0 for game sounds, group 1 for menu sounds -- current thinking is to use group 0 for game sounds, group 1 for menu sounds
loadSounds :: IO (IM.IntMap Mix.Chunk) loadSounds :: IO (IM.IntMap Mix.Chunk)
loadSounds = do loadSounds = do
Mix.openAudio Mix.defaultAudio 128 Mix.openAudio Mix.defaultAudio 128
Mix.setChannels 32 Mix.setChannels nchans
x <- Mix.groupSpan 0 0 29 x <- Mix.groupSpan 0 0 (fromIntegral $ nchans - 3)
putStrLn $ show x <> " channels assigned to group 0" putStrLn $ show x <> " channels assigned to group 0"
y <- Mix.groupSpan 1 30 31 y <- Mix.groupSpan 1 (fromIntegral $ nchans - 2) (fromIntegral $ nchans - 1)
putStrLn $ show y <> " channels assigned to group 1" putStrLn $ show y <> " channels assigned to group 1"
fmap IM.fromList $ mapM loadSound $ zip [0..] soundPathList fmap IM.fromList $ mapM loadSound $ zip [0..] soundPathList
where
nchans = (64::Int)
loadMusic :: IO (IM.IntMap Mix.Music) loadMusic :: IO (IM.IntMap Mix.Music)
loadMusic = do loadMusic = do
+1 -6
View File
@@ -2,7 +2,7 @@
- Indestructible walls may still produce sparks, dust etc - Indestructible walls may still produce sparks, dust etc
-} -}
module Dodge.Wall.Damage ( module Dodge.Wall.Damage (
damageBlocksBy, -- damageBlocksBy,
damageWall, damageWall,
) where ) where
@@ -36,8 +36,3 @@ maybeDestroyDoor :: Int -> World -> World
maybeDestroyDoor drid w = case w ^? cWorld . lWorld . doors . ix drid of maybeDestroyDoor drid w = case w ^? cWorld . lWorld . doors . ix drid of
Just dr | _drHP dr < 1 -> destroyDoor dr w Just dr | _drHP dr < 1 -> destroyDoor dr w
_ -> w _ -> w
damageBlocksBy :: Int -> Wall -> World -> World
damageBlocksBy x wl = case wl ^? wlStructure . wsBlock of
Just blid -> cWorld . lWorld . blocks . ix blid . blHP -~ x
Nothing -> id
+1 -1
View File
@@ -1,4 +1,4 @@
module Dodge.Wall.Draw where module Dodge.Wall.Draw (drawWall) where
import Dodge.Data.Wall import Dodge.Data.Wall
import Picture.Base import Picture.Base
+151 -148
View File
@@ -3383,14 +3383,14 @@ 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 247;" f anythingHitCirc src/Dodge/Base/Collide.hs 247;" f
applyCME src/Dodge/HeldUse.hs 364;" f applyCME src/Dodge/HeldUse.hs 364;" f
applyCreatureDamage src/Dodge/Creature/Damage.hs 20;" 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 56;" f applyGravityPU src/Dodge/Projectile/Update.hs 56;" f
applyIndividualDamage src/Dodge/Creature/Damage.hs 41;" f applyIndividualDamage src/Dodge/Creature/Damage.hs 16;" f
applyInvLock src/Dodge/HeldUse.hs 423;" f applyInvLock src/Dodge/HeldUse.hs 423;" f
applyMagnetsToBul src/Dodge/Bullet.hs 30;" f applyMagnetsToBul src/Dodge/Bullet.hs 29;" f
applyPastDamages src/Dodge/Creature/State.hs 131;" f applyPastDamages src/Dodge/Creature/State.hs 131;" f
applyPiercingDamage src/Dodge/Creature/Damage.hs 47;" f applyPiercingDamage src/Dodge/Creature/Damage.hs 22;" f
applyPosition src/Sound.hs 111;" f applyPosition src/Sound.hs 111;" f
applyRecoil src/Dodge/HeldUse.hs 455;" f applyRecoil src/Dodge/HeldUse.hs 455;" f
applyResFactor src/Dodge/Data/Config.hs 110;" f applyResFactor src/Dodge/Data/Config.hs 110;" f
@@ -3441,11 +3441,11 @@ attachTree src/Dodge/Tree/Compose.hs 38;" f
attentionViewPoint src/Dodge/Creature/ReaderUpdate.hs 68;" f attentionViewPoint src/Dodge/Creature/ReaderUpdate.hs 68;" f
attribSize src/Shader/Compile.hs 306;" f attribSize src/Shader/Compile.hs 306;" f
autoAmr src/Dodge/Item/Held/Rod.hs 39;" f autoAmr src/Dodge/Item/Held/Rod.hs 39;" f
autoBS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 423;" f autoBS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 432;" f
autoCrit src/Dodge/Creature/AutoCrit.hs 12;" f autoCrit src/Dodge/Creature/AutoCrit.hs 12;" f
autoDetector src/Dodge/Item/Weapon/Radar.hs 11;" f autoDetector src/Dodge/Item/Weapon/Radar.hs 11;" f
autoEffect src/Dodge/Item/Weapon/ExtraEffect.hs 18;" f autoEffect src/Dodge/Item/Weapon/ExtraEffect.hs 18;" f
autoGunS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 605;" f autoGunS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 620;" f
autoPistol src/Dodge/Item/Held/Stick.hs 49;" f autoPistol src/Dodge/Item/Held/Stick.hs 49;" f
autoRifle src/Dodge/Item/Held/Cane.hs 40;" f autoRifle src/Dodge/Item/Held/Cane.hs 40;" f
awakeLevelPerception src/Dodge/Creature/Perception.hs 163;" f awakeLevelPerception src/Dodge/Creature/Perception.hs 163;" f
@@ -3458,9 +3458,9 @@ backpackShape src/Dodge/Item/Draw/SPic.hs 178;" f
backspaceInputted src/Dodge/Update/Input/Text.hs 25;" f backspaceInputted src/Dodge/Update/Input/Text.hs 25;" f
bangCone src/Dodge/Item/Held/Cone.hs 11;" f bangCone src/Dodge/Item/Held/Cone.hs 11;" f
bangConeShape src/Dodge/Item/Draw/SPic.hs 293;" f bangConeShape src/Dodge/Item/Draw/SPic.hs 293;" f
bangEchoS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 445;" f bangEchoS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 454;" f
bangRod src/Dodge/Item/Held/Rod.hs 18;" f bangRod src/Dodge/Item/Held/Rod.hs 18;" f
bangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 585;" f bangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 598;" 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
@@ -3515,29 +3515,29 @@ blockPillar src/Dodge/Room/Pillar.hs 22;" f
blockedCorridor src/Dodge/Room/RoadBlock.hs 71;" f blockedCorridor src/Dodge/Room/RoadBlock.hs 71;" f
blockedCorridorCloseBlocks src/Dodge/Room/RoadBlock.hs 78;" f blockedCorridorCloseBlocks src/Dodge/Room/RoadBlock.hs 78;" f
blockingLoad src/Dodge/Concurrent.hs 35;" f blockingLoad src/Dodge/Concurrent.hs 35;" f
blood1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 549;" f blood1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 562;" f
blood2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 425;" f blood2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 434;" f
blood3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 577;" f blood3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 590;" f
blood4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 473;" f blood4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 484;" f
blood5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 457;" f blood5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 466;" f
blood6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 609;" f blood6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 624;" f
blood7S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 413;" f blood7S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 422;" f
blood8S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 401;" f blood8S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 410;" f
bloodShort1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 531;" f bloodShort1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 544;" f
bloodShort2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 503;" f bloodShort2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 516;" f
bloodShort3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 497;" f bloodShort3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 510;" f
bloodShort4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 533;" f bloodShort4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 546;" f
bloodShort5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 415;" f bloodShort5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 424;" f
bloodShort6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 431;" f bloodShort6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 440;" f
bloodShort7S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 551;" f bloodShort7S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 564;" f
bloodShort8S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 515;" f bloodShort8S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 528;" f
blowTorch src/Dodge/Item/Held/SprayGuns.hs 43;" f blowTorch src/Dodge/Item/Held/SprayGuns.hs 43;" f
blue src/Color.hs 16;" f blue src/Color.hs 16;" f
blunderbuss src/Dodge/Item/Held/Cone.hs 14;" f blunderbuss src/Dodge/Item/Held/Cone.hs 14;" f
boosterGun src/Dodge/Item/Equipment/Booster.hs 9;" f boosterGun src/Dodge/Item/Equipment/Booster.hs 9;" f
bossKeyItems src/Dodge/LockAndKey.hs 12;" f bossKeyItems src/Dodge/LockAndKey.hs 12;" f
bossRoom src/Dodge/Room/Boss.hs 60;" f bossRoom src/Dodge/Room/Boss.hs 60;" f
bounceDir src/Dodge/Bullet.hs 108;" f bounceDir src/Dodge/Bullet.hs 107;" f
bouncePoint src/Dodge/Base/Collide.hs 88;" f bouncePoint src/Dodge/Base/Collide.hs 88;" 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
@@ -3563,7 +3563,7 @@ bulletPayloadModule src/Dodge/Item/Scope.hs 131;" f
bulletSynthesizer src/Dodge/Item/Ammo.hs 75;" f bulletSynthesizer src/Dodge/Item/Ammo.hs 75;" f
bulletWeapons src/Dodge/Combine/Combinations.hs 248;" f bulletWeapons src/Dodge/Combine/Combinations.hs 248;" f
burstRifle src/Dodge/Item/Held/Cane.hs 45;" f burstRifle src/Dodge/Item/Held/Cane.hs 45;" f
buzzS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 611;" f buzzS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 626;" f
cFilledRect src/Dodge/CharacterEnums.hs 6;" f cFilledRect src/Dodge/CharacterEnums.hs 6;" f
cRad src/Dodge/Cloud.hs 5;" f cRad src/Dodge/Cloud.hs 5;" f
cWireRect src/Dodge/CharacterEnums.hs 10;" f cWireRect src/Dodge/CharacterEnums.hs 10;" f
@@ -3634,6 +3634,9 @@ clClSpringVel src/Dodge/Update.hs 759;" f
clZoneSize src/Dodge/Zone/Size.hs 3;" f clZoneSize src/Dodge/Zone/Size.hs 3;" f
clZoneSize src/Dodge/Zoning/Cloud.hs 21;" f clZoneSize src/Dodge/Zoning/Cloud.hs 21;" f
clampPath src/Dodge/Room/Procedural.hs 166;" f clampPath src/Dodge/Room/Procedural.hs 166;" f
clang1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 494;" f
clang2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 606;" f
clangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 476;" f
cldtPropagateFold src/Dodge/DoubleTree.hs 230;" f cldtPropagateFold src/Dodge/DoubleTree.hs 230;" f
cleanUpPreload src/Preload.hs 10;" f cleanUpPreload src/Preload.hs 10;" f
cleanUpRenderPreload src/Preload/Render.hs 217;" f cleanUpRenderPreload src/Preload/Render.hs 217;" f
@@ -3642,7 +3645,7 @@ cleanupHalted src/Sound.hs 117;" f
cleatLabel src/Dodge/Cleat.hs 30;" f cleatLabel src/Dodge/Cleat.hs 30;" f
cleatOnward src/Dodge/Cleat.hs 24;" f cleatOnward src/Dodge/Cleat.hs 24;" f
cleatSide src/Dodge/Cleat.hs 27;" f cleatSide src/Dodge/Cleat.hs 27;" f
click1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 501;" f click1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 514;" 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
@@ -3687,7 +3690,7 @@ combineInventoryExtra src/Dodge/Render/HUD.hs 340;" f
combineItemListYouX src/Dodge/Combine.hs 36;" f combineItemListYouX src/Dodge/Combine.hs 36;" f
combineList src/Dodge/Combine.hs 22;" f combineList src/Dodge/Combine.hs 22;" f
combineRooms src/Dodge/Room/Procedural.hs 152;" f combineRooms src/Dodge/Room/Procedural.hs 152;" f
combineS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 417;" f combineS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 426;" f
combineTree src/Dodge/Tree/Compose.hs 66;" f combineTree src/Dodge/Tree/Compose.hs 66;" f
commandColor src/Dodge/Terminal.hs 132;" f commandColor src/Dodge/Terminal.hs 132;" f
commandFutureLines src/Dodge/Terminal.hs 256;" f commandFutureLines src/Dodge/Terminal.hs 256;" f
@@ -3699,10 +3702,10 @@ compactDrawTree src/Dodge/LevelGen.hs 85;" f
compileAndCheckShader src/Shader/Compile.hs 277;" f compileAndCheckShader src/Shader/Compile.hs 277;" f
composeNode src/Dodge/Tree/Compose.hs 76;" f composeNode src/Dodge/Tree/Compose.hs 76;" f
composeTree src/Dodge/Tree/Compose.hs 46;" f composeTree src/Dodge/Tree/Compose.hs 46;" f
computerBeepingS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 557;" f computerBeepingS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 570;" f
conEffects src/Dodge/Concurrent.hs 12;" f conEffects src/Dodge/Concurrent.hs 12;" f
concurrentIS src/Dodge/Update/Input/InGame.hs 290;" f concurrentIS src/Dodge/Update/Input/InGame.hs 290;" f
connectItemS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 627;" f connectItemS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 642;" f
connectionBlurb src/Dodge/Terminal.hs 102;" f connectionBlurb src/Dodge/Terminal.hs 102;" f
connectionBlurbLines src/Dodge/Terminal.hs 47;" f connectionBlurbLines src/Dodge/Terminal.hs 47;" f
constructEdges src/Polyhedra.hs 34;" f constructEdges src/Polyhedra.hs 34;" f
@@ -3767,7 +3770,7 @@ crWarningSounds src/Dodge/Creature/Vocalization.hs 23;" f
crZoneSize src/Dodge/Zoning/Creature.hs 41;" f crZoneSize src/Dodge/Zoning/Creature.hs 41;" f
craftInfo src/Dodge/Item/Info.hs 168;" f craftInfo src/Dodge/Item/Info.hs 168;" f
craftItemSPic src/Dodge/Item/Draw/SPic.hs 57;" f craftItemSPic src/Dodge/Item/Draw/SPic.hs 57;" f
crankSlowS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 509;" f crankSlowS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 522;" f
createArc src/Dodge/Tesla/Arc.hs 81;" f createArc src/Dodge/Tesla/Arc.hs 81;" f
createFlIt src/Dodge/Placement/PlaceSpot.hs 180;" f createFlIt src/Dodge/Placement/PlaceSpot.hs 180;" f
createForceField src/Dodge/ForceField.hs 7;" f createForceField src/Dodge/ForceField.hs 7;" f
@@ -3838,14 +3841,14 @@ damageCrCircle src/Dodge/DamageCircle.hs 33;" f
damageCrWl src/Dodge/Damage.hs 29;" f damageCrWl src/Dodge/Damage.hs 29;" f
damageCrWlID src/Dodge/Damage.hs 23;" f damageCrWlID src/Dodge/Damage.hs 23;" f
damageDirection src/Dodge/Damage.hs 35;" f damageDirection src/Dodge/Damage.hs 35;" f
damageDirt src/Dodge/Material/Damage.hs 121;" f damageDirt src/Dodge/Material/Damage.hs 122;" f
damageFlesh src/Dodge/Material/Damage.hs 85;" f damageFlesh src/Dodge/Material/Damage.hs 89;" f
damageHP src/Dodge/Creature/Damage.hs 58;" f damageHP src/Dodge/Creature/Damage.hs 33;" f
damageInCircle src/Dodge/Damage.hs 61;" f damageInCircle src/Dodge/Damage.hs 61;" f
damageMetal src/Dodge/Material/Damage.hs 56;" f damageMetal src/Dodge/Material/Damage.hs 56;" f
damageSensor src/Dodge/Placement/Instance/Sensor.hs 15;" f damageSensor src/Dodge/Placement/Instance/Sensor.hs 15;" f
damageStone src/Dodge/Material/Damage.hs 26;" f damageStone src/Dodge/Material/Damage.hs 26;" f
damageThingHit src/Dodge/Bullet.hs 176;" f damageThingHit src/Dodge/Bullet.hs 179;" f
damageTypeThreshold src/Dodge/Placement/Instance/Sensor.hs 45;" f damageTypeThreshold src/Dodge/Placement/Instance/Sensor.hs 45;" f
damageWall src/Dodge/Wall/Damage.hs 15;" f damageWall src/Dodge/Wall/Damage.hs 15;" f
damageWallEffect src/Dodge/Wall/DamageEffect.hs 12;" f damageWallEffect src/Dodge/Wall/DamageEffect.hs 12;" f
@@ -3885,10 +3888,10 @@ decreaseAwareness src/Dodge/Creature/Perception.hs 119;" f
decreaseToNothing' src/Dodge/Base/Arithmetic.hs 7;" f decreaseToNothing' src/Dodge/Base/Arithmetic.hs 7;" f
decreaseToZero src/Dodge/Base/Arithmetic.hs 4;" f decreaseToZero src/Dodge/Base/Arithmetic.hs 4;" f
decrementTimer src/Sound.hs 102;" f decrementTimer src/Sound.hs 102;" f
dedaS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 589;" f dedaS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 602;" f
dededaS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 395;" f dededaS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 404;" f
dededumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 545;" f dededumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 558;" f
dedumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 387;" f dedumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 396;" f
defDamageMaterial src/Dodge/Material/Damage.hs 23;" f defDamageMaterial src/Dodge/Material/Damage.hs 23;" f
defLSPic src/Dodge/LightSource/Draw.hs 10;" f defLSPic src/Dodge/LightSource/Draw.hs 10;" f
defSPic src/Dodge/Item/Draw/SPic.hs 299;" f defSPic src/Dodge/Item/Draw/SPic.hs 299;" f
@@ -3986,7 +3989,7 @@ dirtColor src/Dodge/Block/Debris.hs 160;" f
dirtDebris src/Dodge/Block/Debris.hs 154;" f dirtDebris src/Dodge/Block/Debris.hs 154;" f
dirtPoly src/Dodge/Room/RoadBlock.hs 74;" f dirtPoly src/Dodge/Room/RoadBlock.hs 74;" f
dirtWallDamage src/Dodge/Wall/DamageEffect.hs 98;" f dirtWallDamage src/Dodge/Wall/DamageEffect.hs 98;" f
disconnectItemS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 567;" f disconnectItemS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 580;" f
disconnectTerminal src/Dodge/Terminal.hs 217;" f disconnectTerminal src/Dodge/Terminal.hs 217;" f
displayConfig src/Dodge/Menu.hs 213;" f displayConfig src/Dodge/Menu.hs 213;" f
displayControls src/Dodge/Menu.hs 223;" f displayControls src/Dodge/Menu.hs 223;" f
@@ -4051,7 +4054,7 @@ doItemTimeScroll src/Dodge/Update.hs 196;" f
doLoop src/Loop.hs 60;" f doLoop src/Loop.hs 60;" f
doMCrAc src/Dodge/CreatureEffect.hs 57;" f doMCrAc src/Dodge/CreatureEffect.hs 57;" f
doMP2Ac src/Dodge/CreatureEffect.hs 73;" f doMP2Ac src/Dodge/CreatureEffect.hs 73;" f
doMagnetBuBu src/Dodge/Bullet.hs 33;" f doMagnetBuBu src/Dodge/Bullet.hs 32;" f
doMagnetBuBu src/Dodge/MagnetBuBu.hs 7;" f doMagnetBuBu src/Dodge/MagnetBuBu.hs 7;" f
doMagnetUpdate src/Dodge/Magnet/Update.hs 6;" f doMagnetUpdate src/Dodge/Magnet/Update.hs 6;" f
doModificationEffect src/Dodge/ModificationEffect.hs 7;" f doModificationEffect src/Dodge/ModificationEffect.hs 7;" f
@@ -4258,8 +4261,8 @@ effectOnEquip src/Dodge/Equipment.hs 32;" f
effectOnRemove src/Dodge/Equipment.hs 19;" f effectOnRemove src/Dodge/Equipment.hs 19;" f
effectWhileAttached src/Dodge/ItEffect.hs 58;" f effectWhileAttached src/Dodge/ItEffect.hs 58;" f
eitType src/Dodge/Data/EquipType.hs 15;" f eitType src/Dodge/Data/EquipType.hs 15;" f
ejectS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 573;" f ejectS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 586;" f
elecCrackleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 437;" f elecCrackleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 446;" f
elephantGun src/Dodge/Item/Held/Rod.hs 27;" f elephantGun src/Dodge/Item/Held/Rod.hs 27;" f
emptyCorridor src/Dodge/Room/BlinkAcross.hs 22;" f emptyCorridor src/Dodge/Room/BlinkAcross.hs 22;" f
emptyTrie src/SimpleTrie.hs 16;" f emptyTrie src/SimpleTrie.hs 16;" f
@@ -4300,9 +4303,9 @@ expandPolyBy src/Dodge/LevelGen/StaticWalls.hs 91;" f
expandPolyByFixed src/Dodge/LevelGen/StaticWalls.hs 97;" f expandPolyByFixed src/Dodge/LevelGen/StaticWalls.hs 97;" f
expandPolyCorners src/Dodge/LevelGen/StaticWalls.hs 103;" f expandPolyCorners src/Dodge/LevelGen/StaticWalls.hs 103;" f
expandToSquare src/Dodge/LevelGen/StaticWalls/Deprecated.hs 83;" f expandToSquare src/Dodge/LevelGen/StaticWalls/Deprecated.hs 83;" f
expireAndDamage src/Dodge/Bullet.hs 185;" f expireAndDamage src/Dodge/Bullet.hs 186;" f
explodeShell src/Dodge/Projectile/Update.hs 245;" f explodeShell src/Dodge/Projectile/Update.hs 245;" f
explosionS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 479;" f explosionS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 490;" 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
@@ -4333,9 +4336,9 @@ findReverseEdgeList src/Polyhedra.hs 57;" f
findWallFreeDropPoint src/Dodge/FloorItem.hs 51;" f findWallFreeDropPoint src/Dodge/FloorItem.hs 51;" f
findWallsInPolygon src/Dodge/LevelGen/StaticWalls/Deprecated.hs 78;" f findWallsInPolygon src/Dodge/LevelGen/StaticWalls/Deprecated.hs 78;" f
findWithIx src/ListHelp.hs 123;" f findWithIx src/ListHelp.hs 123;" f
fireFadeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 475;" f fireFadeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 486;" f
fireLoudS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 613;" f fireLoudS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 628;" f
fireS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 403;" f fireS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 412;" f
firstBreather src/Dodge/Room/Breather.hs 9;" f firstBreather src/Dodge/Room/Breather.hs 9;" f
firstWorldLoad appDodge/Main.hs 77;" f firstWorldLoad appDodge/Main.hs 77;" f
fixedCoordPictures src/Dodge/Render/Picture.hs 17;" f fixedCoordPictures src/Dodge/Render/Picture.hs 17;" f
@@ -4372,16 +4375,16 @@ flockToPointUsing' src/Dodge/Creature/Boid.hs 228;" f
floorItemPickupInfo src/Dodge/Render/HUD.hs 229;" f floorItemPickupInfo src/Dodge/Render/HUD.hs 229;" f
floorItemSPic src/Dodge/Render/ShapePicture.hs 99;" f floorItemSPic src/Dodge/Render/ShapePicture.hs 99;" f
floorWire src/Dodge/Wire.hs 13;" f floorWire src/Dodge/Wire.hs 13;" f
foamSprayFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 481;" f foamSprayFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 492;" f
foamSprayLoopS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 477;" f foamSprayLoopS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 488;" f
foldCr src/Dodge/Creature/State.hs 48;" f foldCr src/Dodge/Creature/State.hs 48;" f
foldPairs src/ListHelp.hs 37;" f foldPairs src/ListHelp.hs 37;" f
foldrWhileArb src/ListHelp.hs 110;" f foldrWhileArb src/ListHelp.hs 110;" f
followImpulse src/Dodge/Creature/Impulse.hs 38;" f followImpulse src/Dodge/Creature/Impulse.hs 38;" f
followImpulses src/Dodge/Creature/Impulse.hs 32;" f followImpulses src/Dodge/Creature/Impulse.hs 32;" f
foot1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 421;" f foot1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 430;" f
foot2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 439;" f foot2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 448;" f
foot3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 539;" f foot3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 552;" f
forbidFlee src/Dodge/Creature/Boid.hs 43;" f forbidFlee src/Dodge/Creature/Boid.hs 43;" f
forceElements src/StrictHelp.hs 10;" f forceElements src/StrictHelp.hs 10;" f
forceField src/Dodge/Wall/ForceField.hs 7;" f forceField src/Dodge/Wall/ForceField.hs 7;" f
@@ -4392,7 +4395,7 @@ fpsText src/Dodge/Render/Picture.hs 53;" f
fractionLoadedAmmo src/Dodge/Item/Draw/SPic.hs 138;" f fractionLoadedAmmo src/Dodge/Item/Draw/SPic.hs 138;" f
frag src/Shader/Data.hs 102;" f frag src/Shader/Data.hs 102;" f
freeShaderPointers' src/Shader.hs 37;" f freeShaderPointers' src/Shader.hs 37;" f
fridgeHumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 433;" f fridgeHumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 442;" f
fromEdgeTuple src/Dodge/Path/Translate.hs 5;" f fromEdgeTuple src/Dodge/Path/Translate.hs 5;" f
fromJust' src/MaybeHelp.hs 24;" f fromJust' src/MaybeHelp.hs 24;" f
fromListL src/DoubleStack.hs 7;" f fromListL src/DoubleStack.hs 7;" f
@@ -4474,10 +4477,10 @@ glNamedBufferSubDataH src/Shader/Bind.hs 53;" f
glassDebris src/Dodge/Block/Debris.hs 169;" f glassDebris src/Dodge/Block/Debris.hs 169;" f
glassLesson src/Dodge/Room/GlassLesson.hs 23;" f glassLesson src/Dodge/Room/GlassLesson.hs 23;" f
glassLessonRunPast src/Dodge/Room/GlassLesson.hs 68;" f glassLessonRunPast src/Dodge/Room/GlassLesson.hs 68;" f
glassShat1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 565;" f glassShat1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 578;" f
glassShat2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 535;" f glassShat2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 548;" f
glassShat3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 397;" f glassShat3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 406;" f
glassShat4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 529;" f glassShat4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 542;" f
glassSwitchBack src/Dodge/Room/Room.hs 70;" f glassSwitchBack src/Dodge/Room/Room.hs 70;" f
glassSwitchBackCrits src/Dodge/Room/Room.hs 99;" f glassSwitchBackCrits src/Dodge/Room/Room.hs 99;" f
glassWallDamage src/Dodge/Wall/DamageEffect.hs 49;" f glassWallDamage src/Dodge/Wall/DamageEffect.hs 49;" f
@@ -4500,13 +4503,13 @@ gridPoints' src/Grid.hs 79;" f
gridPoints'' src/Grid.hs 74;" f gridPoints'' src/Grid.hs 74;" f
gridPointsOff src/Grid.hs 62;" f gridPointsOff src/Grid.hs 62;" f
groupSplitItemAmounts src/Dodge/Combine.hs 52;" f groupSplitItemAmounts src/Dodge/Combine.hs 52;" f
gruntS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 593;" f gruntS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 608;" f
gut1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 631;" f gut1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 646;" f
gut2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 451;" f gut2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 460;" f
gut3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 429;" f gut3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 438;" f
gut4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 407;" f gut4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 416;" f
gut5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 599;" f gut5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 614;" f
gut6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 561;" f gut6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 574;" f
gyroscope src/Dodge/Item/Scope.hs 156;" f gyroscope src/Dodge/Item/Scope.hs 156;" f
hackOutline src/Dodge/Render/Outline.hs 5;" f hackOutline src/Dodge/Render/Outline.hs 5;" f
halfHeight src/Dodge/Base/Window.hs 48;" f halfHeight src/Dodge/Base/Window.hs 48;" f
@@ -4536,7 +4539,7 @@ headLampShape src/Dodge/Item/Draw/SPic.hs 443;" f
headMap src/Dodge/DoubleTree.hs 170;" f headMap src/Dodge/DoubleTree.hs 170;" f
heal src/Dodge/Item/Consumable.hs 17;" f heal src/Dodge/Item/Consumable.hs 17;" f
heal25 src/Dodge/Item/Consumable.hs 14;" f heal25 src/Dodge/Item/Consumable.hs 14;" f
healS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 427;" f healS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 436;" f
healthAnalyserByDoor src/Dodge/Room/LasTurret.hs 74;" f 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
@@ -4569,9 +4572,9 @@ hiToFloat src/Dodge/Room/Modify/Girder.hs 171;" f
highBar src/Dodge/Room/Foreground.hs 89;" f highBar src/Dodge/Room/Foreground.hs 89;" f
highDiagonalMesh src/Dodge/Room/Foreground.hs 35;" f highDiagonalMesh src/Dodge/Room/Foreground.hs 35;" f
highMesh src/Dodge/Room/Foreground.hs 25;" f highMesh src/Dodge/Room/Foreground.hs 25;" f
hit1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 499;" f hit1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 512;" f
hitEffFromBul src/Dodge/Bullet.hs 151;" f hitEffFromBul src/Dodge/Bullet.hs 153;" f
hitS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 459;" f hitS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 468;" f
holdForm src/Dodge/Creature/Boid.hs 137;" f holdForm src/Dodge/Creature/Boid.hs 137;" f
holsterWeapon src/Dodge/Creature/Volition.hs 14;" f holsterWeapon src/Dodge/Creature/Volition.hs 14;" f
homingModule src/Dodge/Item/Scope.hs 48;" f homingModule src/Dodge/Item/Scope.hs 48;" f
@@ -4618,9 +4621,9 @@ insertAt src/Padding.hs 63;" f
insertIMInZone src/Dodge/Base.hs 54;" f insertIMInZone src/Dodge/Base.hs 54;" f
insertInTrie src/SimpleTrie.hs 23;" f insertInTrie src/SimpleTrie.hs 23;" f
insertNewKey src/IntMapHelp.hs 64;" f insertNewKey src/IntMapHelp.hs 64;" f
insertOneS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 443;" f insertOneS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 452;" f
insertOver src/ListHelp.hs 47;" f insertOver src/ListHelp.hs 47;" f
insertS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 389;" f insertS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 398;" f
insertWall src/Dodge/Placement/PlaceSpot/Block.hs 122;" f insertWall src/Dodge/Placement/PlaceSpot/Block.hs 122;" f
insertWallInZones src/Dodge/Wall/Zone.hs 20;" f insertWallInZones src/Dodge/Wall/Zone.hs 20;" f
insertWalls src/Dodge/Placement/PlaceSpot/Block.hs 117;" f insertWalls src/Dodge/Placement/PlaceSpot/Block.hs 117;" f
@@ -4765,7 +4768,7 @@ keyCardRoomRunPast src/Dodge/Room/LasTurret.hs 59;" f
keyCardRunPastRand src/Dodge/LockAndKey.hs 36;" f keyCardRunPastRand src/Dodge/LockAndKey.hs 36;" f
keyPic src/Dodge/Item/Draw/SPic.hs 459;" f keyPic src/Dodge/Item/Draw/SPic.hs 459;" f
keyholeCorridor src/Dodge/Room/Corridor.hs 39;" f keyholeCorridor src/Dodge/Room/Corridor.hs 39;" f
knifeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 555;" f knifeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 568;" f
lConnect src/Dodge/Render/Connectors.hs 42;" f lConnect src/Dodge/Render/Connectors.hs 42;" f
lConnectMulti src/Dodge/Render/Connectors.hs 46;" f lConnectMulti src/Dodge/Render/Connectors.hs 46;" f
lShape src/Dodge/Placement/Instance/LightSource.hs 76;" f lShape src/Dodge/Placement/Instance/LightSource.hs 76;" f
@@ -4908,13 +4911,13 @@ makeDefaultCorpse src/Dodge/Corpse/Make.hs 16;" f
makeDoorDebris src/Dodge/Block/Debris.hs 18;" f makeDoorDebris src/Dodge/Block/Debris.hs 18;" f
makeEnumOption src/Dodge/Menu/OptionType.hs 13;" f makeEnumOption src/Dodge/Menu/OptionType.hs 13;" f
makeExplosionAt src/Dodge/WorldEvent/Explosion.hs 71;" f makeExplosionAt src/Dodge/WorldEvent/Explosion.hs 71;" f
makeFlak src/Dodge/Bullet.hs 141;" f makeFlak src/Dodge/Bullet.hs 142;" f
makeFlame src/Dodge/Flame.hs 43;" f makeFlame src/Dodge/Flame.hs 43;" f
makeFlameExplosionAt src/Dodge/WorldEvent/Explosion.hs 54;" f makeFlameExplosionAt src/Dodge/WorldEvent/Explosion.hs 54;" f
makeFlamelet src/Dodge/EnergyBall.hs 21;" f makeFlamelet src/Dodge/EnergyBall.hs 21;" f
makeFlamerSmokeAt src/Dodge/WorldEvent/Cloud.hs 68;" f makeFlamerSmokeAt src/Dodge/WorldEvent/Cloud.hs 68;" f
makeFlashBall src/Dodge/EnergyBall.hs 84;" f makeFlashBall src/Dodge/EnergyBall.hs 84;" f
makeFragBullets src/Dodge/Bullet.hs 126;" f makeFragBullets src/Dodge/Bullet.hs 127;" f
makeGasCloud src/Dodge/WorldEvent/SpawnParticle.hs 13;" f makeGasCloud src/Dodge/WorldEvent/SpawnParticle.hs 13;" f
makeGrid src/Grid.hs 46;" f makeGrid src/Grid.hs 46;" f
makeIntInterval src/Dodge/Zoning/Base.hs 35;" f makeIntInterval src/Dodge/Zoning/Base.hs 35;" f
@@ -5000,13 +5003,13 @@ merge src/ListHelp.hs 83;" f
mergeBy src/ListHelp.hs 86;" f mergeBy src/ListHelp.hs 86;" f
mergeOn src/ListHelp.hs 93;" f mergeOn src/ListHelp.hs 93;" f
mergeSound src/Sound.hs 59;" f mergeSound src/Sound.hs 59;" f
metal1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 537;" f metal1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 550;" f
metal2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 597;" f metal2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 612;" f
metal3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 525;" f metal3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 538;" f
metal4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 553;" f metal4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 566;" f
metal5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 569;" f metal5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 582;" f
metal6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 603;" f metal6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 618;" f
metal7S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 461;" f metal7S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 470;" f
metalDebris src/Dodge/Block/Debris.hs 163;" f metalDebris src/Dodge/Block/Debris.hs 163;" f
metalPlate src/Dodge/Item/Craftable.hs 35;" f metalPlate src/Dodge/Item/Craftable.hs 35;" f
mglCreate src/GLHelp.hs 8;" f mglCreate src/GLHelp.hs 8;" f
@@ -5020,19 +5023,19 @@ midWall src/Dodge/Placement/Instance/Wall.hs 27;" f
minAndMax src/FoldableHelp.hs 109;" f minAndMax src/FoldableHelp.hs 109;" f
minCrIXOn src/Dodge/Zoning/Creature.hs 47;" f minCrIXOn src/Dodge/Zoning/Creature.hs 47;" f
minOn src/FoldableHelp.hs 35;" f minOn src/FoldableHelp.hs 35;" f
mini1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 393;" f mini1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 402;" f
miniGunCrit src/Dodge/Creature.hs 64;" f miniGunCrit src/Dodge/Creature.hs 64;" f
miniGunX src/Dodge/Item/Held/Cane.hs 52;" f miniGunX src/Dodge/Item/Held/Cane.hs 52;" f
miniGunXPict src/Dodge/Item/Draw/SPic.hs 365;" f miniGunXPict src/Dodge/Item/Draw/SPic.hs 365;" f
miniGunXPictItem src/Dodge/Item/Draw/SPic.hs 359;" f miniGunXPictItem src/Dodge/Item/Draw/SPic.hs 359;" f
miniS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 623;" f miniS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 638;" f
miniTree2 src/Dodge/Room/Room.hs 106;" f miniTree2 src/Dodge/Room/Room.hs 106;" f
minimumOn src/FoldlHelp.hs 14;" f minimumOn src/FoldlHelp.hs 14;" f
mirrorV3xz src/Dodge/Creature/HandPos.hs 26;" f mirrorV3xz src/Dodge/Creature/HandPos.hs 26;" f
mirrorXAxis src/Geometry/Polygon.hs 49;" f mirrorXAxis src/Geometry/Polygon.hs 49;" f
mirrorxz src/Picture/Base.hs 335;" f mirrorxz src/Picture/Base.hs 335;" f
mirroryz src/Picture/Base.hs 340;" f mirroryz src/Picture/Base.hs 340;" f
missileLaunchS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 591;" f missileLaunchS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 604;" f
mixColors src/Color.hs 86;" f mixColors src/Color.hs 86;" f
mixColorsFrac src/Color.hs 82;" f mixColorsFrac src/Color.hs 82;" f
mixColorsLinear src/Color.hs 95;" f mixColorsLinear src/Color.hs 95;" f
@@ -5050,12 +5053,12 @@ modTo src/Geometry/Zone.hs 10;" f
mouseClickOptionsList src/Dodge/Update/Input/ScreenLayer.hs 60;" f mouseClickOptionsList src/Dodge/Update/Input/ScreenLayer.hs 60;" f
mouseCursorType src/Dodge/Render/Picture.hs 86;" f mouseCursorType src/Dodge/Render/Picture.hs 86;" f
mouseWorldPos' src/Dodge/Base/Coordinate.hs 48;" f mouseWorldPos' src/Dodge/Base/Coordinate.hs 48;" f
moveBullet src/Dodge/Bullet.hs 194;" f moveBullet src/Dodge/Bullet.hs 195;" f
moveCombineSel src/Dodge/Update/Scroll.hs 115;" f moveCombineSel src/Dodge/Update/Scroll.hs 115;" f
moveHammerUp src/Dodge/Hammer.hs 5;" f moveHammerUp src/Dodge/Hammer.hs 5;" f
moveInverseShockwave src/Dodge/Shockwave/Update.hs 46;" f moveInverseShockwave src/Dodge/Shockwave/Update.hs 46;" f
moveLSThen src/Dodge/Placement/Instance/LightSource.hs 30;" f moveLSThen src/Dodge/Placement/Instance/LightSource.hs 30;" f
movePenBullet src/Dodge/Bullet.hs 204;" f movePenBullet src/Dodge/Bullet.hs 205;" f
moveProjectile src/Dodge/Projectile/Update.hs 221;" f moveProjectile src/Dodge/Projectile/Update.hs 221;" f
moveRoomBy src/Dodge/Room/Link.hs 53;" f moveRoomBy src/Dodge/Room/Link.hs 53;" f
moveShockwave src/Dodge/Shockwave/Update.hs 18;" f moveShockwave src/Dodge/Shockwave/Update.hs 18;" f
@@ -5131,7 +5134,7 @@ numSubElements src/Shader/Parameters.hs 39;" f
numTraversable src/TreeHelp.hs 183;" f numTraversable src/TreeHelp.hs 183;" f
obstacleColor src/Dodge/Debug/Picture.hs 257;" f obstacleColor src/Dodge/Debug/Picture.hs 257;" f
obstructPathsCrossing src/Dodge/Path.hs 138;" f obstructPathsCrossing src/Dodge/Path.hs 138;" f
oldMachineBootS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 607;" f oldMachineBootS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 622;" f
onEquipWristShield src/Dodge/Equipment.hs 37;" f onEquipWristShield src/Dodge/Equipment.hs 37;" f
onRemoveWristShield src/Dodge/Equipment.hs 24;" f onRemoveWristShield src/Dodge/Equipment.hs 24;" f
onXY src/Geometry/Vector3D.hs 130;" f onXY src/Geometry/Vector3D.hs 130;" f
@@ -5193,7 +5196,7 @@ pauseSound src/Dodge/SoundLogic.hs 42;" f
pauseTime src/Dodge/Update.hs 184;" f pauseTime src/Dodge/Update.hs 184;" f
peZoneSize src/Dodge/Zoning/Pathing.hs 46;" f peZoneSize src/Dodge/Zoning/Pathing.hs 46;" f
pedestalRoom src/Dodge/Room/Containing.hs 50;" f pedestalRoom src/Dodge/Room/Containing.hs 50;" f
penThing src/Dodge/Bullet.hs 211;" f penThing src/Dodge/Bullet.hs 213;" f
perMat src/MatrixHelper.hs 49;" f perMat src/MatrixHelper.hs 49;" f
perceptionUpdate src/Dodge/Creature/Perception.hs 23;" f perceptionUpdate src/Dodge/Creature/Perception.hs 23;" f
performAction src/Dodge/Creature/Action.hs 91;" f performAction src/Dodge/Creature/Action.hs 91;" f
@@ -5210,7 +5213,7 @@ picFormat src/Polyhedra.hs 23;" f
picMap src/Picture/Base.hs 67;" f picMap src/Picture/Base.hs 67;" f
pickUpItem src/Dodge/Inventory/Add.hs 107;" f pickUpItem src/Dodge/Inventory/Add.hs 107;" f
pickUpItemAt src/Dodge/Inventory/Add.hs 113;" f pickUpItemAt src/Dodge/Inventory/Add.hs 113;" f
pickUpS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 541;" f pickUpS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 554;" f
pincerP src/Dodge/Creature/Boid.hs 61;" f pincerP src/Dodge/Creature/Boid.hs 61;" f
pincerP' src/Dodge/Creature/Boid.hs 94;" f pincerP' src/Dodge/Creature/Boid.hs 94;" f
pincerP'' src/Dodge/Creature/Boid.hs 104;" f pincerP'' src/Dodge/Creature/Boid.hs 104;" f
@@ -5350,7 +5353,7 @@ prependTwo src/Geometry.hs 176;" f
prettyDT src/Dodge/DoubleTree.hs 179;" f prettyDT src/Dodge/DoubleTree.hs 179;" f
prettyLDT src/Dodge/DoubleTree.hs 183;" f prettyLDT src/Dodge/DoubleTree.hs 183;" f
prettyShort src/AesonHelp.hs 11;" f prettyShort src/AesonHelp.hs 11;" f
primeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 511;" f primeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 524;" f
printColumnTitles src/Dodge/Tree/Shift.hs 142;" f printColumnTitles src/Dodge/Tree/Shift.hs 142;" f
printColumns src/Dodge/Tree/Shift.hs 132;" f printColumns src/Dodge/Tree/Shift.hs 132;" f
printInfo src/Dodge/Tree/Shift.hs 145;" f printInfo src/Dodge/Tree/Shift.hs 145;" f
@@ -5482,9 +5485,9 @@ refract src/Dodge/Item/Weapon/LaserPath.hs 40;" f
refreshOptionsSelectionList src/Dodge/Menu/Option.hs 38;" f refreshOptionsSelectionList src/Dodge/Menu/Option.hs 38;" f
regexCombs src/Dodge/DisplayInventory.hs 71;" f regexCombs src/Dodge/DisplayInventory.hs 71;" f
regexList src/Dodge/DisplayInventory.hs 314;" f regexList src/Dodge/DisplayInventory.hs 314;" f
reload1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 519;" f reload1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 532;" f
reloadLevelStart src/Dodge/Save.hs 71;" f reloadLevelStart src/Dodge/Save.hs 71;" f
reloadS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 517;" f reloadS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 530;" f
rememberSounds src/Dodge/Creature/Perception.hs 178;" f 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
@@ -5618,7 +5621,7 @@ saveQuit src/Dodge/Menu.hs 74;" f
saveQuitConc src/Dodge/Menu.hs 77;" f saveQuitConc src/Dodge/Menu.hs 77;" f
saveSlotPath src/Dodge/Save.hs 63;" f saveSlotPath src/Dodge/Save.hs 63;" f
saveWorldInSlot src/Dodge/Save.hs 68;" f saveWorldInSlot src/Dodge/Save.hs 68;" f
sawtoothFailS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 621;" f sawtoothFailS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 636;" f
scale src/Picture/Base.hs 149;" f scale src/Picture/Base.hs 149;" f
scale3 src/Picture/Base.hs 145;" f scale3 src/Picture/Base.hs 145;" f
scaleMat src/MatrixHelper.hs 59;" f scaleMat src/MatrixHelper.hs 59;" f
@@ -5642,15 +5645,15 @@ scrollRBOption src/Dodge/Update/Scroll.hs 153;" f
scrollSelectionSections src/Dodge/SelectionSections.hs 26;" f scrollSelectionSections src/Dodge/SelectionSections.hs 26;" f
scrollTimeBack src/Dodge/Update.hs 211;" f scrollTimeBack src/Dodge/Update.hs 211;" f
scrollTimeForward src/Dodge/Update.hs 234;" f scrollTimeForward src/Dodge/Update.hs 234;" f
seagullBarkS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 489;" f seagullBarkS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 502;" f
seagullBarkTransformedS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 571;" f seagullBarkTransformedS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 584;" f
seagullChatter1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 583;" f seagullChatter1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 596;" f
seagullChatterS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 471;" f seagullChatterS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 482;" f
seagullCry1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 487;" f seagullCry1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 500;" f
seagullCry2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 495;" f seagullCry2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 508;" f
seagullCryS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 507;" f seagullCryS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 520;" f
seagullWhistle1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 435;" f seagullWhistle1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 444;" f
seagullWhistleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 625;" f seagullWhistleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 640;" f
searchIfDamaged src/Dodge/Creature/ReaderUpdate.hs 205;" f searchIfDamaged src/Dodge/Creature/ReaderUpdate.hs 205;" f
secondColumnParams src/Dodge/ListDisplayParams.hs 43;" f secondColumnParams src/Dodge/ListDisplayParams.hs 43;" f
sectionsDesiredLines src/Dodge/DisplayInventory.hs 204;" f sectionsDesiredLines src/Dodge/DisplayInventory.hs 204;" f
@@ -5687,7 +5690,7 @@ setClusterID src/Dodge/Combine/Graph.hs 116;" f
setDepth src/Picture/Base.hs 128;" f setDepth src/Picture/Base.hs 128;" f
setDirPS src/Dodge/PlacementSpot.hs 49;" f setDirPS src/Dodge/PlacementSpot.hs 49;" f
setFallback src/Dodge/PlacementSpot.hs 127;" f setFallback src/Dodge/PlacementSpot.hs 127;" f
setFromToDams src/Dodge/Bullet.hs 168;" f setFromToDams src/Dodge/Bullet.hs 170;" f
setInLinks src/Dodge/RoomLink.hs 51;" f setInLinks src/Dodge/RoomLink.hs 51;" f
setInLinksByType src/Dodge/RoomLink.hs 54;" f setInLinksByType src/Dodge/RoomLink.hs 54;" f
setInLinksPD src/Dodge/RoomLink.hs 74;" f setInLinksPD src/Dodge/RoomLink.hs 74;" f
@@ -5785,7 +5788,7 @@ shootersRoom1 src/Dodge/Room/Room.hs 305;" f
shootingRange src/Dodge/Room/Room.hs 332;" f shootingRange src/Dodge/Room/Room.hs 332;" f
shortPoint2 src/Dodge/ShortShow.hs 4;" f shortPoint2 src/Dodge/ShortShow.hs 4;" f
shortShow src/ShortShow.hs 9;" f shortShow src/ShortShow.hs 9;" f
shotgunS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 617;" f shotgunS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 632;" f
shoulderHeight src/Dodge/Item/HeldOffset.hs 75;" f shoulderHeight src/Dodge/Item/HeldOffset.hs 75;" f
shoulderSH src/Dodge/Creature/Picture.hs 133;" f shoulderSH src/Dodge/Creature/Picture.hs 133;" f
shoulderSP src/Dodge/Creature/HandPos.hs 170;" f shoulderSP src/Dodge/Creature/HandPos.hs 170;" f
@@ -5806,8 +5809,8 @@ shuffleTail src/RandomHelp.hs 59;" f
sigmoid src/Dodge/Base.hs 151;" f sigmoid src/Dodge/Base.hs 151;" f
simpleCrSprings src/Dodge/Update.hs 768;" f simpleCrSprings src/Dodge/Update.hs 768;" f
simpleTermMessage src/Dodge/Terminal.hs 253;" f simpleTermMessage src/Dodge/Terminal.hs 253;" f
sineRaisePitchOneSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 595;" f sineRaisePitchOneSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 610;" f
sineRaisePitchTwoSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 411;" f sineRaisePitchTwoSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 420;" f
singleAmmo src/Dodge/Item/AmmoSlots.hs 62;" f singleAmmo src/Dodge/Item/AmmoSlots.hs 62;" f
singleBlock src/Dodge/Placement/Instance/Wall.hs 30;" f singleBlock src/Dodge/Placement/Instance/Wall.hs 30;" f
singleDT src/Dodge/DoubleTree.hs 9;" f singleDT src/Dodge/DoubleTree.hs 9;" f
@@ -5816,10 +5819,10 @@ singleton src/DoubleStack.hs 11;" f
singletonTrie src/SimpleTrie.hs 19;" f singletonTrie src/SimpleTrie.hs 19;" f
sizeFBOs src/Framebuffer/Update.hs 22;" f sizeFBOs src/Framebuffer/Update.hs 22;" f
skColor src/Dodge/Spark/Draw.hs 14;" f skColor src/Dodge/Spark/Draw.hs 14;" f
skwareFadeTwoSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 441;" f skwareFadeTwoSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 450;" f
slap1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 587;" f slap1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 600;" f
slapS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 521;" f slapS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 534;" f
slideDoorS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 601;" f slideDoorS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 616;" f
slideWindow src/ListHelp.hs 80;" f slideWindow src/ListHelp.hs 80;" f
slowDoorRoom src/Dodge/Room/LongDoor.hs 152;" f slowDoorRoom src/Dodge/Room/LongDoor.hs 152;" f
slowDoorRoomRunPast src/Dodge/Room/LongDoor.hs 169;" f slowDoorRoomRunPast src/Dodge/Room/LongDoor.hs 169;" f
@@ -5827,10 +5830,10 @@ smallBattery src/Dodge/Item/Ammo.hs 59;" f
smallBranch src/Dodge/Tree/GenerateStructure.hs 32;" f smallBranch src/Dodge/Tree/GenerateStructure.hs 32;" f
smallChaseCrit src/Dodge/Creature/ChaseCrit.hs 14;" f smallChaseCrit src/Dodge/Creature/ChaseCrit.hs 14;" f
smallDrawTree src/Dodge/LevelGen.hs 88;" f smallDrawTree src/Dodge/LevelGen.hs 88;" f
smallGlass1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 409;" f smallGlass1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 418;" f
smallGlass2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 563;" f smallGlass2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 576;" f
smallGlass3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 447;" f smallGlass3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 456;" f
smallGlass4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 405;" f smallGlass4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 414;" f
smallPillar src/Dodge/Room/Pillar.hs 37;" f smallPillar src/Dodge/Room/Pillar.hs 37;" f
smallRoom src/Dodge/Room/RunPast.hs 31;" f smallRoom src/Dodge/Room/RunPast.hs 31;" f
smg src/Dodge/Item/Held/Stick.hs 61;" f smg src/Dodge/Item/Held/Stick.hs 61;" f
@@ -5848,10 +5851,10 @@ soundMenuOptions src/Dodge/Menu.hs 143;" f
soundMultiFrom src/Dodge/SoundLogic.hs 187;" f soundMultiFrom src/Dodge/SoundLogic.hs 187;" f
soundOriginIDsAt src/Dodge/WorldEvent/Sound.hs 18;" f soundOriginIDsAt src/Dodge/WorldEvent/Sound.hs 18;" f
soundOriginsIDsAt src/Dodge/WorldEvent/Sound.hs 13;" f soundOriginsIDsAt src/Dodge/WorldEvent/Sound.hs 13;" f
soundPathList src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 258;" f soundPathList src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 264;" f
soundPic src/Dodge/Debug/Picture.hs 336;" f soundPic src/Dodge/Debug/Picture.hs 336;" f
soundStart src/Dodge/SoundLogic.hs 118;" f soundStart src/Dodge/SoundLogic.hs 118;" f
soundToOnomato src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 131;" f soundToOnomato src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 134;" f
soundToVol src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 4;" f soundToVol src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 4;" f
soundWithStatus src/Dodge/SoundLogic.hs 104;" f soundWithStatus src/Dodge/SoundLogic.hs 104;" f
soundWithStatusVolume src/Dodge/SoundLogic.hs 54;" f soundWithStatusVolume src/Dodge/SoundLogic.hs 54;" f
@@ -5924,15 +5927,15 @@ 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
stickyMod src/Dodge/Item/Scope.hs 51;" f stickyMod src/Dodge/Item/Scope.hs 51;" f
stone1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 465;" f stone1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 474;" f
stone2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 579;" f stone2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 592;" f
stone3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 491;" f stone3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 504;" f
stone4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 419;" f stone4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 428;" f
stone5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 543;" f stone5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 556;" f
stoneDebris src/Dodge/Block/Debris.hs 137;" f stoneDebris src/Dodge/Block/Debris.hs 137;" f
stoneWallDamage src/Dodge/Wall/DamageEffect.hs 27;" f stoneWallDamage src/Dodge/Wall/DamageEffect.hs 27;" f
stopAllSounds src/Sound.hs 125;" f stopAllSounds src/Sound.hs 125;" f
stopBulletAt src/Dodge/Bullet.hs 197;" f stopBulletAt src/Dodge/Bullet.hs 198;" f
stopPushing src/Dodge/Block.hs 107;" f stopPushing src/Dodge/Block.hs 107;" f
stopSoundFrom src/Dodge/SoundLogic.hs 220;" f stopSoundFrom src/Dodge/SoundLogic.hs 220;" f
strFromEquipment src/Dodge/Creature/Statistics.hs 48;" f strFromEquipment src/Dodge/Creature/Statistics.hs 48;" f
@@ -5973,11 +5976,11 @@ tankShape src/Dodge/Placement/Instance/Tank.hs 22;" f
tankSquareDec src/Dodge/Placement/Instance/Tank.hs 15;" f tankSquareDec src/Dodge/Placement/Instance/Tank.hs 15;" f
tanksPipesRoom src/Dodge/Room/Tanks.hs 92;" f tanksPipesRoom src/Dodge/Room/Tanks.hs 92;" f
tanksRoom src/Dodge/Room/Tanks.hs 100;" f tanksRoom src/Dodge/Room/Tanks.hs 100;" f
tap1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 547;" f tap1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 560;" f
tap2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 483;" f tap2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 496;" f
tap3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 527;" f tap3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 540;" f
tap4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 615;" f tap4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 630;" f
tapQuietS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 399;" f tapQuietS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 408;" f
targCorner src/Dodge/Targeting/Draw.hs 35;" f targCorner src/Dodge/Targeting/Draw.hs 35;" f
targetCursorPic src/Dodge/Targeting/Draw.hs 41;" f targetCursorPic src/Dodge/Targeting/Draw.hs 41;" f
targetYouCognizant src/Dodge/Creature/ChooseTarget.hs 13;" f targetYouCognizant src/Dodge/Creature/ChooseTarget.hs 13;" f
@@ -5986,7 +5989,7 @@ targetYouWhenCognizant src/Dodge/Creature/ReaderUpdate.hs 196;" f
targetYouWhenCognizant src/Dodge/Creature/SetTarget.hs 9;" f targetYouWhenCognizant src/Dodge/Creature/SetTarget.hs 9;" f
targetingScope src/Dodge/Item/Scope.hs 38;" f targetingScope src/Dodge/Item/Scope.hs 38;" f
telRoomLev src/Dodge/Room/Teleport.hs 14;" f telRoomLev src/Dodge/Room/Teleport.hs 14;" f
teleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 453;" f teleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 462;" f
termButton src/Dodge/Placement/Instance/Terminal.hs 51;" f termButton src/Dodge/Placement/Instance/Terminal.hs 51;" f
termScreenColor src/Dodge/Terminal/Color.hs 9;" f termScreenColor src/Dodge/Terminal/Color.hs 9;" f
termSoundLine src/Dodge/Terminal.hs 111;" f termSoundLine src/Dodge/Terminal.hs 111;" f
@@ -6040,13 +6043,13 @@ timeStopper src/Dodge/Item/Held/Utility.hs 39;" f
timeStopper src/Dodge/Item/Weapon/Utility.hs 41;" f timeStopper src/Dodge/Item/Weapon/Utility.hs 41;" f
timerTLS src/Dodge/LightSource/Update.hs 22;" f timerTLS src/Dodge/LightSource/Update.hs 22;" f
tinMag src/Dodge/Item/Ammo.hs 27;" f tinMag src/Dodge/Item/Ammo.hs 27;" f
ting1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 385;" f ting1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 394;" f
ting2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 455;" f ting2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 464;" f
ting3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 575;" f ting3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 588;" f
ting4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 463;" f ting4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 472;" f
ting5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 619;" f ting5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 634;" f
tingS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 493;" f tingS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 506;" f
tinitusS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 485;" f tinitusS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 498;" f
titleOptionsMenu src/Dodge/Menu.hs 102;" f titleOptionsMenu src/Dodge/Menu.hs 102;" f
titleOptionsNoWrite src/Dodge/Menu.hs 105;" f titleOptionsNoWrite src/Dodge/Menu.hs 105;" f
tmUpdate src/Dodge/Update.hs 446;" f tmUpdate src/Dodge/Update.hs 446;" f
@@ -6071,10 +6074,10 @@ toggleExamineInv src/Dodge/ToggleExamine.hs 5;" f
toggleJust src/MaybeHelp.hs 41;" f toggleJust src/MaybeHelp.hs 41;" f
toggleMapperInv src/Dodge/Creature/Impulse/UseItem.hs 137;" f toggleMapperInv src/Dodge/Creature/Impulse/UseItem.hs 137;" f
togglesToEffects src/Dodge/Terminal.hs 248;" f togglesToEffects src/Dodge/Terminal.hs 248;" f
tone440S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 559;" f tone440S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 572;" f
tone440raiseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 581;" f tone440raiseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 594;" f
tone440sawtoothS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 523;" f tone440sawtoothS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 536;" f
tone440sawtoothquietS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 391;" f tone440sawtoothquietS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 400;" f
topInvW src/Dodge/ListDisplayParams.hs 51;" f topInvW src/Dodge/ListDisplayParams.hs 51;" f
topPrismEdgeIndices src/Shader/Poke.hs 335;" f topPrismEdgeIndices src/Shader/Poke.hs 335;" f
topPrismIndices src/Shader/Poke.hs 410;" f topPrismIndices src/Shader/Poke.hs 410;" f
@@ -6168,9 +6171,9 @@ twoFlat src/Dodge/Creature/Test.hs 104;" f
twoFlatHRot src/Dodge/Item/HeldOffset.hs 87;" f twoFlatHRot src/Dodge/Item/HeldOffset.hs 87;" f
twoHandTwistAmount src/Dodge/Creature/YourControl.hs 150;" f twoHandTwistAmount src/Dodge/Creature/YourControl.hs 150;" f
twoRoomPoss src/Dodge/PlacementSpot.hs 147;" f twoRoomPoss src/Dodge/PlacementSpot.hs 147;" f
twoStep1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 467;" f twoStep1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 478;" f
twoStepS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 513;" f twoStepS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 526;" f
twoStepSlowS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 505;" f twoStepSlowS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 518;" f
ubyteSize src/Shader/Parameters.hs 13;" f ubyteSize src/Shader/Parameters.hs 13;" f
ugateCalc src/Dodge/Inventory/SelectionList.hs 108;" f ugateCalc src/Dodge/Inventory/SelectionList.hs 108;" f
uncurryV src/Geometry/Data.hs 46;" f uncurryV src/Geometry/Data.hs 46;" f
@@ -6202,8 +6205,8 @@ 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 250;" f
updateBulVel src/Dodge/Bullet.hs 55;" f updateBulVel src/Dodge/Bullet.hs 54;" f
updateBullet src/Dodge/Bullet.hs 21;" f updateBullet src/Dodge/Bullet.hs 19;" f
updateBullets src/Dodge/Update.hs 539;" f updateBullets src/Dodge/Update.hs 539;" f
updateCamera src/Dodge/Update/Camera.hs 29;" f updateCamera src/Dodge/Update/Camera.hs 29;" f
updateCloseObjects src/Dodge/Inventory.hs 116;" f updateCloseObjects src/Dodge/Inventory.hs 116;" f
@@ -6322,7 +6325,7 @@ upperPrismPolyTS src/Shape.hs 120;" f
upperRounded src/Shape.hs 185;" f upperRounded src/Shape.hs 185;" f
useBreakL src/Dodge/Item/Grammar.hs 37;" f useBreakL src/Dodge/Item/Grammar.hs 37;" f
useBreakListsLinkTest src/Dodge/Item/Grammar.hs 45;" f useBreakListsLinkTest src/Dodge/Item/Grammar.hs 45;" f
useBulletPayload src/Dodge/Bullet.hs 113;" f useBulletPayload src/Dodge/Bullet.hs 112;" f
useC src/Dodge/Cuse.hs 8;" f useC src/Dodge/Cuse.hs 8;" f
useC' src/Dodge/Cuse.hs 13;" f useC' src/Dodge/Cuse.hs 13;" f
useDelay src/Dodge/Item/UseDelay.hs 13;" f useDelay src/Dodge/Item/UseDelay.hs 13;" f
@@ -6407,8 +6410,8 @@ weaponUnderCrits src/Dodge/Room/Room.hs 154;" f
wedgeGeom src/Dodge/Base.hs 42;" f wedgeGeom src/Dodge/Base.hs 42;" f
wedgeOfThickness src/Dodge/Picture.hs 9;" f wedgeOfThickness src/Dodge/Picture.hs 9;" f
white src/Color.hs 26;" f white src/Color.hs 26;" f
whiteNoiseFadeInS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 629;" f whiteNoiseFadeInS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 644;" f
whiteNoiseFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 449;" f whiteNoiseFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 458;" f
wiToFloat src/Dodge/Room/Modify/Girder.hs 168;" f wiToFloat src/Dodge/Room/Modify/Girder.hs 168;" f
winConfig appDodge/Main.hs 56;" f winConfig appDodge/Main.hs 56;" f
windowLine src/Dodge/Placement/Instance/Wall.hs 48;" f windowLine src/Dodge/Placement/Instance/Wall.hs 48;" f
@@ -6439,7 +6442,7 @@ worldPosToScreen src/Dodge/Base/Coordinate.hs 28;" f
worldSPic src/Dodge/Render/ShapePicture.hs 21;" f worldSPic src/Dodge/Render/ShapePicture.hs 21;" 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 469;" f wrench1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 480;" f
wristArmour src/Dodge/Item/Equipment.hs 43;" f wristArmour src/Dodge/Item/Equipment.hs 43;" f
wristInvisibility src/Dodge/Item/Equipment.hs 96;" f wristInvisibility src/Dodge/Item/Equipment.hs 96;" f
writeConfig src/Dodge/Menu.hs 162;" f writeConfig src/Dodge/Menu.hs 162;" f