Continue weapon effect chain refactor

This commit is contained in:
2024-09-16 19:27:21 +01:00
parent abc0dd1106
commit 1d1d1527e7
19 changed files with 358 additions and 340 deletions
+1 -1
View File
@@ -1 +1 @@
All good (616 modules, at 13:05:37)
All good (616 modules, at 19:05:45)
+98 -106
View File
@@ -44,68 +44,66 @@ digraph {
57 [shape=box
,label="HELD {_ibtHeld = VOLLEYGUN {_xNum = 3}}"];
59 [shape=box
,label="HELD {_ibtHeld = REPEATER}"];
61 [shape=box
,label="HELD {_ibtHeld = AUTORIFLE}"];
63 [shape=box
61 [shape=box
,label="HELD {_ibtHeld = BURSTRIFLE}"];
65 [shape=box
63 [shape=box
,label="HELD {_ibtHeld = MINIGUNX {_xNum = 3}}"];
68 [shape=box
66 [shape=box
,label="HELD {_ibtHeld = SNIPERRIFLE}"];
69 [shape=box
67 [shape=box
,label="HELD {_ibtHeld = AMR}"];
72 [shape=box
70 [shape=box
,label="HELD {_ibtHeld = AUTOAMR}"];
74 [shape=box
72 [shape=box
,label="HELD {_ibtHeld = MACHINEGUN}"];
76 [shape=box
74 [shape=box
,label="HELD {_ibtHeld = LAUNCHER}"];
79 [shape=box
77 [shape=box
,label="HELD {_ibtHeld = LAUNCHERX {_xNum = 2}}"];
83 [shape=box
81 [shape=box
,label="HELD {_ibtHeld = FLAMESPITTER}"];
87 [shape=box
85 [shape=box
,label="HELD {_ibtHeld = BLOWTORCH}"];
89 [shape=box
87 [shape=box
,label="HELD {_ibtHeld = FLAMETHROWER}"];
91 [shape=box
89 [shape=box
,label="HELD {_ibtHeld = FLAMEWALL}"];
93 [shape=box
91 [shape=box
,label="HELD {_ibtHeld = FLAMETORRENT}"];
95 [shape=box
93 [shape=box
,label="HELD {_ibtHeld = LASGUN}"];
99 [shape=box
97 [shape=box
,label="HELD {_ibtHeld = DUALBEAM}"];
99 [shape=box
,label="HELD {_ibtHeld = LASWIDE {_xNum = 2}}"];
101 [shape=box
,label="HELD {_ibtHeld = LASWIDE {_xNum = 2}}"];
103 [shape=box
,label="HELD {_ibtHeld = SPARKGUN}"];
105 [shape=box
103 [shape=box
,label="HELD {_ibtHeld = TESLAGUN}"];
107 [shape=box
105 [shape=box
,label="LEFT {_ibtLeft = BLINKER}"];
110 [shape=box
108 [shape=box
,label="LEFT {_ibtLeft = BLINKERUNSAFE}"];
112 [shape=box
110 [shape=box
,label="EQUIP {_ibtEquip = MAGSHIELD}"];
115 [shape=box
113 [shape=box
,label="EQUIP {_ibtEquip = POWERLEGS}"];
121 [shape=box
119 [shape=box
,label="HELD {_ibtHeld = FLATSHIELD}"];
131 [shape=box
129 [shape=box
,label="EQUIP {_ibtEquip = AUTODETECTOR ITEMDETECTOR}"];
134 [shape=box
132 [shape=box
,label="EQUIP {_ibtEquip = AUTODETECTOR WALLDETECTOR}"];
136 [shape=box
134 [shape=box
,label="EQUIP {_ibtEquip = AUTODETECTOR CREATUREDETECTOR}"];
138 [shape=box
136 [shape=box
,label="HELD {_ibtHeld = TORCH}"];
139 [shape=box
137 [shape=box
,label="AMMOMAG {_ibtAmmoMag = BATTERY}"];
142 [shape=box
140 [shape=box
,label="EQUIP {_ibtEquip = HEADLAMP}"];
150 [shape=box
148 [shape=box
,label="HELD {_ibtHeld = BANGSTICK {_xNum = 2}}"];
}
subgraph 2 {
@@ -132,39 +130,39 @@ digraph {
58 [shape=point];
60 [shape=point];
62 [shape=point];
64 [shape=point];
67 [shape=point];
70 [shape=point];
65 [shape=point];
68 [shape=point];
69 [shape=point];
71 [shape=point];
73 [shape=point];
75 [shape=point];
76 [shape=point];
78 [shape=point];
80 [shape=point];
82 [shape=point];
84 [shape=point];
86 [shape=point];
88 [shape=point];
90 [shape=point];
92 [shape=point];
94 [shape=point];
96 [shape=point];
98 [shape=point];
100 [shape=point];
102 [shape=point];
104 [shape=point];
106 [shape=point];
107 [shape=point];
109 [shape=point];
111 [shape=point];
114 [shape=point];
112 [shape=point];
115 [shape=point];
116 [shape=point];
117 [shape=point];
118 [shape=point];
119 [shape=point];
120 [shape=point];
122 [shape=point];
124 [shape=point];
127 [shape=point];
130 [shape=point];
125 [shape=point];
128 [shape=point];
131 [shape=point];
133 [shape=point];
135 [shape=point];
137 [shape=point];
139 [shape=point];
141 [shape=point];
143 [shape=point];
145 [shape=point];
@@ -173,7 +171,6 @@ digraph {
151 [shape=point];
153 [shape=point];
155 [shape=point];
157 [shape=point];
}
0 -> 1 [xlabel="",tailport=e];
2 -> 0 [xlabel=1
@@ -201,7 +198,7 @@ digraph {
16 -> 27 [xlabel=1
,arrowhead=onone
,headport=w];
16 -> 141 [xlabel=1
16 -> 139 [xlabel=1
,arrowhead=onone
,headport=w];
18 -> 19 [xlabel="",tailport=e];
@@ -225,15 +222,15 @@ digraph {
35 -> 56 [xlabel=1
,arrowhead=onone
,headport=w];
35 -> 149 [xlabel=1
35 -> 147 [xlabel=1
,arrowhead=onone
,headport=w];
35 -> 151 [xlabel=1
,arrowhead=onone
,headport=w];
35 -> 153 [xlabel=1
,arrowhead=onone
,headport=w];
35 -> 155 [xlabel=1
,arrowhead=onone
,headport=w];
38 -> 39 [xlabel="",tailport=e];
39 -> 40 [xlabel=1
,arrowhead=onone
@@ -256,132 +253,127 @@ digraph {
,arrowhead=onone
,headport=w];
52 -> 53 [xlabel="",tailport=e];
53 -> 157 [xlabel=1
53 -> 155 [xlabel=1
,arrowhead=onone
,headport=w];
54 -> 55 [xlabel="",tailport=e];
55 -> 58 [xlabel=1
,arrowhead=onone
,headport=w];
55 -> 70 [xlabel=1
55 -> 60 [xlabel=1
,arrowhead=onone
,headport=w];
55 -> 68 [xlabel=1
,arrowhead=onone
,headport=w];
56 -> 57 [xlabel="",tailport=e];
57 -> 64 [xlabel=1
57 -> 62 [xlabel=1
,arrowhead=onone
,headport=w];
57 -> 153 [xlabel=1
57 -> 151 [xlabel=1
,arrowhead=onone
,headport=w];
58 -> 59 [xlabel="",tailport=e];
59 -> 60 [xlabel=1
,arrowhead=onone
,headport=w];
59 -> 62 [xlabel=1
,arrowhead=onone
,headport=w];
60 -> 61 [xlabel="",tailport=e];
62 -> 63 [xlabel="",tailport=e];
64 -> 65 [xlabel="",tailport=e];
65 -> 155 [xlabel=1
63 -> 153 [xlabel=1
,arrowhead=onone
,headport=w];
67 -> 68 [xlabel="",tailport=e];
69 -> 67 [xlabel=1
65 -> 66 [xlabel="",tailport=e];
67 -> 65 [xlabel=1
,arrowhead=onone
,headport=w];
69 -> 71 [xlabel=1
67 -> 69 [xlabel=1
,arrowhead=onone
,headport=w];
69 -> 73 [xlabel=1
67 -> 71 [xlabel=1
,arrowhead=onone
,headport=w];
70 -> 69 [xlabel="",tailport=e];
68 -> 67 [xlabel="",tailport=e];
69 -> 70 [xlabel="",tailport=e];
71 -> 72 [xlabel="",tailport=e];
73 -> 74 [xlabel="",tailport=e];
75 -> 76 [xlabel="",tailport=e];
76 -> 78 [xlabel=1
74 -> 76 [xlabel=1
,arrowhead=onone
,headport=w];
78 -> 79 [xlabel="",tailport=e];
79 -> 80 [xlabel=1
76 -> 77 [xlabel="",tailport=e];
77 -> 78 [xlabel=1
,arrowhead=onone
,headport=w];
82 -> 83 [xlabel="",tailport=e];
83 -> 86 [xlabel=1
80 -> 81 [xlabel="",tailport=e];
81 -> 84 [xlabel=1
,arrowhead=onone
,headport=w];
83 -> 88 [xlabel=1
81 -> 86 [xlabel=1
,arrowhead=onone
,headport=w];
84 -> 85 [xlabel="",tailport=e];
86 -> 87 [xlabel="",tailport=e];
87 -> 88 [xlabel=1
,arrowhead=onone
,headport=w];
87 -> 90 [xlabel=1
,arrowhead=onone
,headport=w];
88 -> 89 [xlabel="",tailport=e];
89 -> 90 [xlabel=1
,arrowhead=onone
,headport=w];
89 -> 92 [xlabel=1
,arrowhead=onone
,headport=w];
90 -> 91 [xlabel="",tailport=e];
92 -> 93 [xlabel="",tailport=e];
94 -> 95 [xlabel="",tailport=e];
95 -> 98 [xlabel=1
93 -> 96 [xlabel=1
,arrowhead=onone
,headport=w];
95 -> 98 [xlabel=1
93 -> 96 [xlabel=1
,arrowhead=onone
,headport=w];
95 -> 100 [xlabel=1
93 -> 98 [xlabel=1
,arrowhead=onone
,headport=w];
96 -> 97 [xlabel="",tailport=e];
98 -> 99 [xlabel="",tailport=e];
99 -> 145 [xlabel=1
,arrowhead=onone
,headport=w];
98 -> 99 [xlabel="",tailport=e];
100 -> 101 [xlabel=""
,tailport=e];
101 -> 147 [xlabel=1
101 -> 102 [xlabel=1
,arrowhead=onone
,headport=w];
102 -> 103 [xlabel=""
,tailport=e];
103 -> 104 [xlabel=1
,arrowhead=onone
,headport=w];
104 -> 105 [xlabel=""
,tailport=e];
106 -> 107 [xlabel=""
,tailport=e];
107 -> 109 [xlabel=1
105 -> 107 [xlabel=1
,arrowhead=onone
,headport=w];
107 -> 108 [xlabel=""
,tailport=e];
109 -> 110 [xlabel=""
,tailport=e];
111 -> 112 [xlabel=""
112 -> 113 [xlabel=""
,tailport=e];
114 -> 115 [xlabel=""
118 -> 119 [xlabel=""
,tailport=e];
120 -> 121 [xlabel=""
128 -> 129 [xlabel=""
,tailport=e];
130 -> 131 [xlabel=""
131 -> 132 [xlabel=""
,tailport=e];
133 -> 134 [xlabel=""
,tailport=e];
135 -> 136 [xlabel=""
,tailport=e];
137 -> 138 [xlabel=""
,tailport=e];
138 -> 141 [xlabel=1
136 -> 139 [xlabel=1
,arrowhead=onone
,headport=w];
139 -> 137 [xlabel=1
137 -> 135 [xlabel=1
,arrowhead=onone
,headport=w];
139 -> 145 [xlabel=1
137 -> 143 [xlabel=1
,arrowhead=onone
,headport=w];
141 -> 142 [xlabel=""
139 -> 140 [xlabel=""
,tailport=e];
149 -> 150 [xlabel=""
147 -> 148 [xlabel=""
,tailport=e];
150 -> 151 [xlabel=1
148 -> 149 [xlabel=1
,arrowhead=onone
,headport=w];
}
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+4 -4
View File
@@ -67,9 +67,9 @@ itemCombinations =
, po [HELD BLUNDERBUSS, cr STEELDRUM] (grapeCannon 1)
, po [HELD (BANGSTICK 1), cr PLANK] rifle
, po [HELD (BANGSTICK 1), HELD (BANGSTICK 1), HELD (BANGSTICK 1)] (volleyGun 3)
, po [HELD RIFLE, cr TIN] repeater
, po [HELD REPEATER, cr SPRING] autoRifle
, po [HELD REPEATER, cr CAN] burstRifle
-- , po [HELD RIFLE, cr TIN] repeater
, po [HELD RIFLE, cr SPRING] autoRifle
, po [HELD RIFLE, cr CAN] burstRifle
]
++ [ po [cr MOTOR, HELD (VOLLEYGUN i)] $ miniGunX i | i <- [3 .. 10]
]
@@ -255,7 +255,7 @@ bulletWeapons =
, smg
, machinePistol
, rifle
, repeater
-- , repeater
, autoRifle
, burstRifle
, bangCone
+3
View File
@@ -269,6 +269,9 @@ testInventory =
stackedInventory :: [Item]
stackedInventory =
[ burstRifle
, volleyGun 3
, tinMag
, tinMag
, tinMag
, bulletSynthesizer
, drumMag
+1 -1
View File
@@ -170,7 +170,7 @@ data HeldItemType
| VOLLEYGUN {_xNum :: Int}
| MULTIGUN {_xNum :: Int}
| RIFLE
| REPEATER
-- | REPEATER
| AUTORIFLE
| BURSTRIFLE
| BANGROD
+5 -5
View File
@@ -81,10 +81,10 @@ data HeldMod
-- | AmmoCheckMod
-- | AmmoUseCheckMod
-- | AmmoHammerTimeUseOneMod
| BangCaneMod
-- | BangCaneMod
| VolleyGunMod
| MultiGunMod
| AutoRifleMod
-- | AutoRifleMod
| BangRodMod
| ElephantGunMod
| AutoAmrMod
@@ -92,12 +92,12 @@ data HeldMod
-- | ModWithDirectedTeleport HeldMod
| BangStickMod
| PistolMod
| AutoPistolMod
| MachinePistolMod
-- | AutoPistolMod
-- | MachinePistolMod
| BurstRifleMod
| BurstRifleRepeatMod
| MiniGunMod Int
| SmgMod
-- | SmgMod
| BangConeMod
| TractorMod --apply with AmmoCheckMod
| FireRemoteShellMod
+1
View File
@@ -125,6 +125,7 @@ data AimParams = AimParams
data FlareType = DefaultFlareType
| PistolFlare
deriving (Eq, Ord, Show, Read) --Generic, Flat)
data Muzzle = Muzzle
+1
View File
@@ -48,6 +48,7 @@ singleAmmo x = IM.insert 0 x mempty
defaultBulletWeapon :: Item
defaultBulletWeapon =
defaultWeapon
& itUse . heldMods .~ PistolMod
& itUse . heldAmmoTypes .~ singleAmmo BulletAmmo
-- & itUse . heldUse .~ HeldUseAmmoParams -- useAmmoParams
& itType . iyModules . at ModBulletCollision ?~ EMPTYMODULE
+144 -129
View File
@@ -1,5 +1,11 @@
module Dodge.HeldUse where
module Dodge.HeldUse
-- ( heldEffect
-- , mcUseHeld
-- )
where
import Dodge.WorldEvent.Cloud
import Dodge.LightSource
import qualified SDL
import Dodge.Base.You
import Dodge.Data.MuzzleEffect
@@ -120,18 +126,18 @@ heldEffect effecttype = case effecttype of
, ammoCheckI
, blCheck
]
BangCaneMod -> bulletGunEffect
[ withFlare
, withSmoke 1 black 20 200 5
, withRecoil
, duplicateLoadedBarrels
, withTorqueAfter
, useAmmoAmount 1
, withSoundStart tap3S
, useTimeCheck
, ammoCheckI
, blCheck
]
-- BangCaneMod -> bulletGunEffect
-- [ withFlare
-- , withSmoke 1 black 20 200 5
-- , withRecoil
-- , duplicateLoadedBarrels
-- , withTorqueAfter
-- , useAmmoAmount 1
-- , withSoundStart tap3S
-- , useTimeCheck
-- , ammoCheckI
-- , blCheck
-- ]
VolleyGunMod -> bulletGunEffect
[ withRecoil
, withFlare
@@ -154,18 +160,18 @@ heldEffect effecttype = case effecttype of
, ammoCheckI
, blCheck
]
AutoRifleMod -> bulletGunEffect
-- note this is the same as BangCanemMod with the first changed
[ withFlare
, withSmoke 1 black 20 200 5
, withRecoil
, duplicateLoadedBarrels
, withTorqueAfter
, useAmmoAmount 1
, withSoundStart tap3S
, useTimeCheck
, ammoCheckI
]
-- AutoRifleMod -> bulletGunEffect
-- -- note this is the same as BangCanemMod with the first changed
-- [ withFlare
-- , withSmoke 1 black 20 200 5
-- , withRecoil
-- , duplicateLoadedBarrels
-- , withTorqueAfter
-- , useAmmoAmount 1
-- , withSoundStart tap3S
-- , useTimeCheck
-- , ammoCheckI
-- ]
BangRodMod -> bulletGunEffect
[ withRecoil
, withFlare
@@ -220,40 +226,28 @@ heldEffect effecttype = case effecttype of
, blCheck
]
PistolMod -> bulGunEffect
-- bulletGunEffect
-- [ withSidePushI 50
-- AutoPistolMod -> bulletGunEffect
-- [ withFlare
-- , withSidePushI 50
-- , withRecoil
-- , withFlare
-- , withTorqueAfter
-- , duplicateLoadedBarrels
-- , withSoundStart tap3S
-- , useAmmoAmount 1
-- , useTimeCheck
-- , ammoCheckI
-- , blCheck
-- ]
AutoPistolMod -> bulletGunEffect
[ withFlare
, withSidePushI 50
, withRecoil
, withTorqueAfter
, duplicateLoadedBarrels
, withSoundStart tap3S
, useAmmoAmount 1
, useTimeCheck
, ammoCheckI
]
MachinePistolMod -> bulletGunEffect
[ withFlare
, withRecoil
, withSidePushI 50
, withTorqueAfter
, duplicateLoadedBarrels
, withSoundStart tap1S
, useAmmoAmount 1
, useTimeCheck
, ammoCheckI
]
-- MachinePistolMod -> bulletGunEffect
-- [ withFlare
-- , withRecoil
-- , withSidePushI 50
-- , withTorqueAfter
-- , duplicateLoadedBarrels
-- , withSoundStart tap1S
-- , useAmmoAmount 1
-- , useTimeCheck
-- , ammoCheckI
-- ]
BurstRifleMod -> bulletGunEffect
[ withRecoil
, withFlare
@@ -292,17 +286,17 @@ heldEffect effecttype = case effecttype of
, withWarmUp crankSlowS
, ammoCheckI
]
SmgMod -> bulletGunEffect
[ withFlare
, withSidePushI 30
, withRecoil
, withTorqueAfter
, duplicateLoadedBarrels
, withSoundStart tap3S
, useAmmoAmount 1
, useTimeCheck
, ammoCheckI
]
-- SmgMod -> bulletGunEffect
-- [ withFlare
-- , withSidePushI 30
-- , withRecoil
-- , withTorqueAfter
-- , duplicateLoadedBarrels
-- , withSoundStart tap3S
-- , useAmmoAmount 1
-- , useTimeCheck
-- , ammoCheckI
-- ]
BangConeMod -> bulletGunEffect
[ withRandomItem coneRandItemParams
, withRandomItemUpdate coneRandItemUpdate
@@ -361,15 +355,28 @@ bulGunEffect' :: LabelDoubleTree ComposeLinkType Item -> Creature -> World -> Wo
bulGunEffect' t cr w = fromMaybe (error "error in bulGunEffect") $ do
muzzles <- t ^? ldtValue . itUse . heldAim . aimMuzzles
let (_,loadedmuzzles) = mapAccumR loadMuzzle t muzzles
cmew = foldl' (useLoadedAmmo (_ldtValue t) cr) (CME 0 0 False,w) loadedmuzzles
-- let (_,loadedmuzzles) = ((),[])
--cmew = foldl' (useLoadedAmmo (_ldtValue t) cr) (CME 0 0 False,w) loadedmuzzles
cmew = foldl' (useLoadedAmmo (_ldtValue t) cr) (CME 0 0 False,w) $ loadedmuzzles
return $ uncurry (applyCME (_ldtValue t) cr) cmew
-- return $ snd cmew
applyCME :: Item -> Creature -> CumulativeMuzzleEffect -> World -> World
applyCME itm cr cme
| _cmeSound cme = applySidePush spush cr . applyTorqueCME itm cr . applyRecoil itm cr
| otherwise = id
| _cmeSound cme = applySoundCME itm cr . applySidePush spush cr . applyTorqueCME itm cr . applyRecoil itm cr
| otherwise = failsound
where
spush = fromMaybe 0 $ itm ^? itUse . heldParams . sidePush
failsound w = case w ^? input . mouseButtons . ix SDL.ButtonLeft of
Just 0 -> soundStart (CrWeaponSound (_crID cr) 0) (_crPos cr) click1S Nothing w
_ -> soundContinue (CrWeaponSound (_crID cr) 0) (_crPos cr) click1S Nothing w
applySoundCME :: Item -> Creature -> World -> World
applySoundCME itm cr = fromMaybe id $ do
soundid <- itm ^? itUse . heldParams . bulGunSound
return $ soundMultiFrom [CrWeaponSound cid j | j <- [0..3]] (_crPos cr) soundid Nothing
where
cid = _crID cr
applyRecoil :: Item -> Creature -> World -> World
applyRecoil itm cr = over (cWorld . lWorld . creatures . ix cid) pushback
@@ -409,6 +416,7 @@ applyTorqueCME itm cr w
-- (Muzzle,Int,Int) = (muzzle, amountloaded, id of mag taken from)
loadMuzzle :: LabelDoubleTree ComposeLinkType Item
-> Muzzle -> (LabelDoubleTree ComposeLinkType Item,(Muzzle, Int,Maybe Int))
--loadMuzzle t@(LDT _ l _) mz = (t,(mz, 0,Nothing))
loadMuzzle t@(LDT _ l _) mz = fromMaybe (t,(mz, 0,Nothing)) $ do
let as = _mzAmmoSlot mz
amamount = 1
@@ -419,8 +427,26 @@ loadMuzzle t@(LDT _ l _) mz = fromMaybe (t,(mz, 0,Nothing)) $ do
, (mz, usedammo, mag ^? ldtValue . itLocation . ipInvID)
)
makeMuzzleFlare :: (Muzzle,Int,Maybe Int) -> Item -> Creature -> World -> World
makeMuzzleFlare _ _ _ = id
makeMuzzleFlare :: Muzzle -> Item -> Creature -> World -> World
makeMuzzleFlare mz itm cr = case mz ^. mzFlareType of
DefaultFlareType -> id
PistolFlare -> makeTlsTimeRadColPos 2 100 (V3 1 1 0.5) (pos `v2z` 20)
. muzFlareAt (V4 10 10 1 3) (pos `v2z` 20) dir
. muzFlareAt (V4 10 10 1 3) (pos `v2z` 20) dir
. muzFlareAt (V4 10 10 1 3) (pos `v2z` 20) dir
where
pos = _crPos cr + rotateV (_crDir cr) (_mzPos mz + aimingWeaponZeroPos cr itm)
dir = _crDir cr + _mzRot mz
makeMuzzleSmoke :: Muzzle -> Item -> Creature -> World -> World
makeMuzzleSmoke mz itm cr w = case mz ^. mzFlareType of
DefaultFlareType -> w
PistolFlare -> foldl' (flip $ smokeCloudAt (greyN 0.5) 20 400 5 . (+.+.+ pos) . (* 8)) w ps
where
ps = replicateM 2 randOnUnitSphere & evalState $ _randGen w
pos = addZ 10 $ _crPos cr + rotateV (_crDir cr) (_mzPos mz + aimingWeaponZeroPos cr itm)
-- , withSmoke 1 black 20 200 5
isAmmoIntLink :: Int -> ComposeLinkType -> Bool
isAmmoIntLink i (AmmoInLink j _) = i == j
@@ -428,11 +454,9 @@ isAmmoIntLink _ _ = False
useLoadedAmmo :: Item -> Creature -> (CumulativeMuzzleEffect,World) -> (Muzzle,Int,Maybe Int)
-> (CumulativeMuzzleEffect,World)
useLoadedAmmo _ cr (cme,w) (_,0,_) = (cme,failsound w)
where
failsound = case w ^? input . mouseButtons . ix SDL.ButtonLeft of
Just 0 -> soundStart (CrWeaponSound (_crID cr) 0) (_crPos cr) click1S Nothing
_ -> soundContinue (CrWeaponSound (_crID cr) 0) (_crPos cr) click1S Nothing
--useLoadedAmmo _ cr (cme,w) (_,0,_) = (cme,failsound w)
useLoadedAmmo _ _ (cme,w) (_,0,_) = (cme, w)
--useLoadedAmmo itm cr (cme,w) (mz,x,mid) = (cme,w)
useLoadedAmmo itm cr (cme,w) (mz,x,mid) = fromMaybe (cme,w) $ do
magid <- mid
-- should be able to pass the magazine in from elsewhere?
@@ -440,6 +464,8 @@ useLoadedAmmo itm cr (cme,w) (mz,x,mid) = fromMaybe (cme,w) $ do
return $ (cme & cmeSound .~ True,
w & cWorld . lWorld . creatures . ix cid . crInv . ix magid . itUse . amagLoadStatus . iaLoaded -~ x
& flip (foldl' (&)) (replicate x (makeBullet thebullet itm cr mz))
& makeMuzzleFlare mz itm cr
& makeMuzzleSmoke mz itm cr
)
where
cid = _crID cr
@@ -586,18 +612,18 @@ useMod hm = case hm of
-- , ammoCheckI
-- , blCheck
-- ]
BangCaneMod ->
[ withFlare
, withSmoke 1 black 20 200 5
, withRecoil
, duplicateLoadedBarrels
, withTorqueAfter
, useAmmoAmount 1
, withSoundStart tap3S
, useTimeCheck
, ammoCheckI
, blCheck
]
-- BangCaneMod ->
-- [ withFlare
-- , withSmoke 1 black 20 200 5
-- , withRecoil
-- , duplicateLoadedBarrels
-- , withTorqueAfter
-- , useAmmoAmount 1
-- , withSoundStart tap3S
-- , useTimeCheck
-- , ammoCheckI
-- , blCheck
-- ]
VolleyGunMod ->
[ withRecoil
, withFlare
@@ -620,18 +646,18 @@ useMod hm = case hm of
, ammoCheckI
, blCheck
]
AutoRifleMod ->
-- note this is the same as BangCanemMod with the first changed
[ withFlare
, withSmoke 1 black 20 200 5
, withRecoil
, duplicateLoadedBarrels
, withTorqueAfter
, useAmmoAmount 1
, withSoundStart tap3S
, useTimeCheck
, ammoCheckI
]
-- AutoRifleMod ->
-- -- note this is the same as BangCanemMod with the first changed
-- [ withFlare
-- , withSmoke 1 black 20 200 5
-- , withRecoil
-- , duplicateLoadedBarrels
-- , withTorqueAfter
-- , useAmmoAmount 1
-- , withSoundStart tap3S
-- , useTimeCheck
-- , ammoCheckI
-- ]
BangRodMod ->
[ withRecoil
, withFlare
@@ -699,28 +725,17 @@ useMod hm = case hm of
, ammoCheckI
, blCheck
]
AutoPistolMod ->
[ withFlare
, withSidePushI 50
, withRecoil
, withTorqueAfter
, duplicateLoadedBarrels
, withSoundStart tap3S
, useAmmoAmount 1
, useTimeCheck
, ammoCheckI
]
MachinePistolMod ->
[ withFlare
, withRecoil
, withSidePushI 50
, withTorqueAfter
, duplicateLoadedBarrels
, withSoundStart tap1S
, useAmmoAmount 1
, useTimeCheck
, ammoCheckI
]
-- MachinePistolMod ->
-- [ withFlare
-- , withRecoil
-- , withSidePushI 50
-- , withTorqueAfter
-- , duplicateLoadedBarrels
-- , withSoundStart tap1S
-- , useAmmoAmount 1
-- , useTimeCheck
-- , ammoCheckI
-- ]
BurstRifleMod ->
[ withRecoil
, withFlare
@@ -759,17 +774,17 @@ useMod hm = case hm of
, withWarmUp crankSlowS
, ammoCheckI
]
SmgMod ->
[ withFlare
, withSidePushI 30
, withRecoil
, withTorqueAfter
, duplicateLoadedBarrels
, withSoundStart tap3S
, useAmmoAmount 1
, useTimeCheck
, ammoCheckI
]
-- SmgMod ->
-- [ withFlare
-- , withSidePushI 30
-- , withRecoil
-- , withTorqueAfter
-- , duplicateLoadedBarrels
-- , withSoundStart tap3S
-- , useAmmoAmount 1
-- , useTimeCheck
-- , ammoCheckI
-- ]
BangConeMod ->
[ withRandomItem coneRandItemParams
, withRandomItemUpdate coneRandItemUpdate
+1 -1
View File
@@ -170,7 +170,7 @@ heldItemSPic ht it = case ht of
VOLLEYGUN i -> noPic $ volleyGunShape i -- <> addBullets it
MULTIGUN i -> noPic $ volleyGunShape i -- <> addBullets it
RIFLE -> noPic $ baseRifleShape -- <> addBullets it
REPEATER -> noPic $ baseRifleShape <> addTinClip it
-- REPEATER -> noPic $ baseRifleShape <> addTinClip it
AUTORIFLE -> noPic $ baseRifleShape <> addTinClip it
BURSTRIFLE -> noPic $ baseRifleShape <> addTinClip it
BANGROD -> noPic $ baseRodShape -- <> addBullets it
+1 -1
View File
@@ -39,7 +39,7 @@ itemFromHeldType ht = case ht of
VOLLEYGUN i -> volleyGun i
MULTIGUN i -> multiGun i
RIFLE -> rifle
REPEATER -> repeater
-- REPEATER -> repeater
AUTORIFLE -> autoRifle
BURSTRIFLE -> burstRifle
BANGROD -> bangRod
+16 -14
View File
@@ -1,7 +1,6 @@
module Dodge.Item.Held.Cane (
volleyGun,
multiGun,
repeater,
rifle,
autoRifle,
burstRifle,
@@ -12,6 +11,7 @@ import Dodge.SoundLogic.ExternallyGeneratedSounds
import Dodge.Base
import Dodge.Data.Item
import Dodge.Default
import qualified Data.IntMap.Strict as IM
--import Dodge.Reloading.Action
import Geometry.Data
import LensHelp
@@ -32,23 +32,24 @@ defaultBangCane =
& itDimension . dimRad .~ 8
& itDimension . dimCenter .~ V3 5 0 0
& itUse . heldDelay . rateMax .~ 6
& itUse . heldMods .~ BangCaneMod
-- & itUse . heldMods .~ BangCaneMod
& itUse . heldAim . aimStance .~ OneHand
-- & itUse . heldAim . aimHandlePos .~ 5
& itUse . heldAim . aimMuzzles .~ [Muzzle (V2 15 0) 0 0.01 0 DefaultFlareType]
& itUse . heldAim . aimMuzzles .~ [Muzzle (V2 15 0) 0 0.01 0 PistolFlare]
volleyGun :: Int -> Item
volleyGun i =
defaultBangCane
& itUse . heldMods .~ VolleyGunMod
-- & itUse . heldMods .~ VolleyGunMod
& itUse . heldAim . aimWeight .~ 6
& itUse . heldAim . aimRange .~ 1
& itUse . heldAim . aimStance .~ TwoHandFlat
& itUse . heldAim . aimZoom .~ defaultItZoom{_izFac = 1.5}
& itUse . heldAim . aimMuzzles .~
([Muzzle (V2 15 x) 0 0.01 | x <- spreadAroundCenter i 3] <*> [0..] <*> repeat DefaultFlareType)
take i ([Muzzle (V2 15 x) 0 0.01 | x <- spreadAroundCenter i 3] <*> [0..] <*> repeat PistolFlare)
& itUse . heldParams . torqueAfter .~ 0.15 + 0.05 * fromIntegral i
& itType . iyBase .~ HELD (VOLLEYGUN i)
& itUse . heldAmmoTypes .~ IM.fromList (zip [0..i-1] $ repeat BulletAmmo)
multiGun :: Int -> Item
multiGun i =
@@ -71,26 +72,27 @@ rifle =
& itUse . heldAim . aimWeight .~ 6
& itUse . heldAim . aimRange .~ 1
& itUse . heldAim . aimZoom .~ defaultItZoom{_izFac = 1.5}
& itUse . heldAim . aimMuzzles .~ [Muzzle (V2 25 0) 0 0.01 0 DefaultFlareType]
& itUse . heldAim . aimMuzzles .~ [Muzzle (V2 25 0) 0 0.01 0 PistolFlare]
& itType . iyModules . at ModHeldAttach ?~ EMPTYMODULE
repeater :: Item
repeater =
rifle
& itType . iyModules . at ModRifleMag ?~ EMPTYMODULE
& itType . iyBase .~ HELD REPEATER
--repeater :: Item
--repeater =
-- rifle
-- & itType . iyModules . at ModRifleMag ?~ EMPTYMODULE
-- & itType . iyBase .~ HELD REPEATER
autoRifle :: Item
autoRifle =
repeater
rifle
& itType . iyBase .~ HELD AUTORIFLE
& itUse . heldMods .~ AutoRifleMod
& itUse . heldTriggerType .~ AutoTrigger
-- & itUse . heldMods .~ AutoRifleMod
& itType . iyModules . at ModAutoMag ?~ EMPTYMODULE
-- & itUse . useDelay . rateMax .~ 6
burstRifle :: Item
burstRifle =
repeater
rifle
& itType . iyBase .~ HELD BURSTRIFLE
& itUse . heldAim . aimMuzzles . ix 0 . mzInaccuracy .~ 0.05
& itUse . heldDelay . rateMax .~ 18
+11 -5
View File
@@ -45,7 +45,9 @@ pistol =
-- & itUse . heldAmmoTypes .~ [BulletAmmo]
& itUse . heldDelay . rateMax .~ 6
& itUse . heldMods .~ PistolMod
& itUse . heldAim . aimMuzzles .~ [Muzzle (V2 10 0) 0 0.05 0 DefaultFlareType]
& itUse . heldAim . aimMuzzles . ix 0 . mzPos %~ const (V2 10 0)
& itUse . heldAim . aimMuzzles . ix 0 . mzInaccuracy %~ const 0.05
& itUse . heldAim . aimMuzzles . ix 0 . mzFlareType %~ const PistolFlare
& itUse . heldParams
%~ ( (muzVel .~ 0.8)
. (rifling .~ 0.8)
@@ -58,7 +60,9 @@ pistol =
autoPistol :: Item
autoPistol =
pistol
& itUse . heldMods .~ AutoPistolMod
& itUse . heldMods .~ PistolMod
& itUse . heldTriggerType .~ AutoTrigger
& itUse . heldParams . bulGunSound .~ tap1S
& itType . iyBase .~ HELD AUTOPISTOL
& itType . iyModules . at ModAutoMag ?~ EMPTYMODULE
@@ -66,7 +70,7 @@ machinePistol :: Item
machinePistol =
autoPistol
& itUse . heldDelay . rateMax .~ 2
& itUse . heldMods .~ MachinePistolMod -- (ammoCheckI : machinePistolAfterHamMods)
& itUse . heldMods .~ PistolMod -- (ammoCheckI : machinePistolAfterHamMods)
& itType . iyBase .~ HELD MACHINEPISTOL
& itType . iyModules . at ModAutoMag .~ Nothing
& itUse . heldParams . recoil .~ 20
@@ -74,9 +78,11 @@ machinePistol =
smg :: Item
smg =
autoPistol -- & some parameter affecting stability
& itUse . heldMods .~ SmgMod --(ammoCheckI : smgAfterHamMods)
& itUse . heldMods .~ PistolMod --(ammoCheckI : smgAfterHamMods)
& itType . iyBase .~ HELD SMG
& itUse . heldAim . aimStance .~ TwoHandUnder
& itUse . heldAim . aimMuzzles .~ [Muzzle (V2 20 0) 0 0 0 DefaultFlareType]
& itUse . heldAim . aimMuzzles . ix 0 . mzPos .~ V2 20 0
& itUse . heldAim . aimMuzzles . ix 0 . mzInaccuracy .~ 0
-- & itUse . heldAim . aimHandlePos .~ 2
& itUse . heldParams . torqueAfter .~ 0.05
& itUse . heldParams . sidePush .~ 30
+1 -1
View File
@@ -74,7 +74,7 @@ heldInfo hit = case hit of
VOLLEYGUN i -> over _head toUpper (showInt i) ++ " gun barrels lined up to be roughly parallel. Draws bullets from a single magazine. All loaded barrels discharge simultaneously."
MULTIGUN i -> over _head toUpper (showInt i) ++ " gun barrels lined up to be roughly parallel. Each barrel requires a separate magazine. All barrels must be loaded to fire."
RIFLE -> "A firearm with a mid length barrel that requires reloading after each shot."
REPEATER -> "A firearm fed by a magazine. The entire magazine must be replaced when reloading the weapon."
-- REPEATER -> "A firearm fed by a magazine. The entire magazine must be replaced when reloading the weapon."
AUTORIFLE -> "A firearm automatically fed by a magazine. The entire magazine must be replaced when reloading the weapon."
BURSTRIFLE -> "A firearm that rapidly fires three projectiles from its magazine. The entire magazine must be replaced when reloading the weapon."
BANGROD -> "A firearm with a long barrel that requires reloading after each shot."
+1 -1
View File
@@ -38,7 +38,7 @@ heldBounds hit = case hit of
VOLLEYGUN _ -> undefined
MULTIGUN _ -> undefined
RIFLE -> rs
REPEATER -> rs
-- REPEATER -> rs
AUTORIFLE -> rs
BURSTRIFLE -> rs
BANGROD -> amrs
+3 -1
View File
@@ -1,6 +1,7 @@
{-# OPTIONS_GHC -Wno-unused-imports #-}
module Dodge.TestString where
import Dodge.DoubleTree
import Dodge.Data.DoubleTree
import Dodge.Item.Grammar
import Dodge.Item.Display
@@ -22,7 +23,8 @@ testStringInit :: Universe -> [String]
testStringInit _ = mempty
--testStringInit u = fromMaybe mempty $ do
-- inv <- fmap invLDT $ u ^? uvWorld . cWorld . lWorld . creatures . ix 0 . crInv
-- return $ concatMap (prettyLDT (\(x,_,_,_) -> take 5 (show $ x ^. itType . iyBase))) inv
-- invitm <- inv ^? ix 1
-- return $ concatMap (prettyLDT (\(x,_,_,_) -> take 5 (show $ x ^. itType . iyBase))) [invitm]
--testStringInit u = maybe [] invTree (u ^? uvWorld . cWorld . lWorld . creatures . ix 0 . crInv)
-- [fromMaybe "" $ do
+64 -68
View File
@@ -58,7 +58,7 @@ AimParams src/Dodge/Data/Item/Use.hs 115;" t
AimParams src/Dodge/Default/AimParams.hs 1;" m
AimParams src/Dodge/Default/Item/Held/AimParams.hs 1;" m
AimParams src/Dodge/Default/Item/Use/AimParams.hs 1;" m
AimStance src/Dodge/Data/Item/Use.hs 148;" t
AimStance src/Dodge/Data/Item/Use.hs 149;" t
Aiming src/Dodge/Creature/Stance/Data.hs 42;" C
Aiming src/Dodge/Data/Creature/Stance.hs 39;" C
AirFiltrationSS src/Dodge/Data/Scenario.hs 95;" C
@@ -148,10 +148,8 @@ AutoCrit src/Dodge/Creature/AutoCrit.hs 1;" m
AutoDoor src/Dodge/LevelGen/AutoDoor.hs 5;" m
AutoDoorObstacle src/Dodge/Data/PathGraph.hs 51;" C
AutoGun src/Dodge/Item/Weapon/AutoGun.hs 1;" m
AutoPistolMod src/Dodge/Data/Item/HeldUse.hs 95;" C
AutoRecharging src/Dodge/Data/Item/Consumption.hs 23;" C
AutoRecharging src/Dodge/Data/Item/Use/Consumption.hs 28;" C
AutoRifleMod src/Dodge/Data/Item/HeldUse.hs 87;" C
AutoTrigger src/Dodge/Data/Item/Use.hs 68;" C
AuxAddition src/Shader/AuxAddition.hs 1;" m
AwakeLevel src/Dodge/Creature/AlertLevel/Data.hs 14;" t
@@ -202,7 +200,6 @@ BURSTRIFLE src/Dodge/Combine/Data.hs 152;" C
BURSTRIFLE src/Dodge/Data/Item/Combine.hs 175;" C
BackgroundSound src/Dodge/Data/SoundOrigin.hs 14;" C
Ball src/Dodge/Tesla/Ball.hs 1;" m
BangCaneMod src/Dodge/Data/Item/HeldUse.hs 84;" C
BangConeMod src/Dodge/Data/Item/HeldUse.hs 101;" C
BangRodMod src/Dodge/Data/Item/HeldUse.hs 88;" C
BangStickMod src/Dodge/Data/Item/HeldUse.hs 93;" C
@@ -1300,7 +1297,7 @@ ItInvEffect src/Dodge/Data/ItEffect.hs 13;" C
ItInvEffectDrop src/Dodge/Data/ItEffect.hs 29;" C
ItInvEffectID src/Dodge/Data/ItEffect.hs 25;" C
ItRewindEffect src/Dodge/Data/ItEffect.hs 17;" C
ItZoom src/Dodge/Data/Item/Use.hs 157;" t
ItZoom src/Dodge/Data/Item/Use.hs 158;" t
Item src/Dodge/Data/Item.hs 33;" t
Item src/Dodge/Base/Item.hs 1;" m
Item src/Dodge/Data/Item.hs 6;" m
@@ -1551,7 +1548,6 @@ Machine src/Dodge/Machine.hs 1;" m
MachineAltSound src/Dodge/Data/SoundOrigin.hs 20;" C
MachineGunMod src/Dodge/Data/Item/HeldUse.hs 91;" C
MachinePart src/Dodge/Data/Wall.hs 51;" C
MachinePistolMod src/Dodge/Data/Item/HeldUse.hs 96;" C
MachineSound src/Dodge/Data/SoundOrigin.hs 19;" C
MachineType src/Dodge/Data/Machine.hs 49;" t
MagShieldParams src/Dodge/Data/Item/Params.hs 18;" C
@@ -1679,7 +1675,7 @@ Music src/Music.hs 1;" m
MusicData src/Music.hs 7;" t
Mute src/Dodge/Data/Creature/Misc.hs 28;" C
MuzFlare src/Dodge/Data/Flare.hs 15;" C
Muzzle src/Dodge/Data/Item/Use.hs 130;" t
Muzzle src/Dodge/Data/Item/Use.hs 131;" t
MuzzleEffect src/Dodge/Data/MuzzleEffect.hs 5;" m
MvForward src/Dodge/Data/ActionPlan.hs 35;" C
MvPt src/Dodge/MvPt.hs 1;" m
@@ -1844,7 +1840,7 @@ OnSpecial src/Dodge/Equipment/Data.hs 24;" C
OnTurret src/Dodge/Data/Item/Location.hs 13;" C
OnceSound src/Dodge/Data/SoundOrigin.hs 15;" C
OneArgument src/Dodge/Data/Terminal.hs 94;" C
OneHand src/Dodge/Data/Item/Use.hs 152;" C
OneHand src/Dodge/Data/Item/Use.hs 153;" C
OnwardCluster src/Dodge/Data/RoomCluster.hs 14;" C
OnwardCluster src/Dodge/RoomCluster/Data.hs 12;" C
OnwardList src/Dodge/Annotation/Data.hs 15;" C
@@ -1965,6 +1961,7 @@ Pillar src/Dodge/Room/Pillar.hs 1;" m
Pipe src/Dodge/Placement/Instance/Pipe.hs 1;" m
PistolAI src/Dodge/Data/Creature/Misc.hs 53;" C
PistolCrit src/Dodge/Creature/PistolCrit.hs 1;" m
PistolFlare src/Dodge/Data/Item/Use.hs 128;" C
PistolMod src/Dodge/Data/Item/HeldUse.hs 94;" C
PlaceSpot src/Dodge/Placement/PlaceSpot.hs 4;" m
Placement src/Dodge/Data/GenWorld.hs 77;" t
@@ -2112,7 +2109,6 @@ RED src/Color/Data.hs 15;" C
REMOTELAUNCHER src/Dodge/Combine/Data.hs 182;" C
REMOTELAUNCHER src/Dodge/Data/Item/Combine.hs 196;" C
REPEATER src/Dodge/Combine/Data.hs 150;" C
REPEATER src/Dodge/Data/Item/Combine.hs 173;" C
REVOLVEMAG src/Dodge/Data/Item/Combine.hs 110;" C
REVOLVER src/Dodge/Combine/Data.hs 136;" C
REVOLVERX src/Dodge/Combine/Data.hs 137;" C
@@ -2419,7 +2415,6 @@ SkiffBaySS src/Dodge/Data/Scenario.hs 108;" C
SleepingQuatersSS src/Dodge/Data/Scenario.hs 90;" C
SlotsTaken src/Dodge/Item/SlotsTaken.hs 1;" m
Small src/Shape/Data.hs 31;" C
SmgMod src/Dodge/Data/Item/HeldUse.hs 100;" C
SmokeCloud src/Dodge/Data/Cloud.hs 30;" C
SmoothScroll src/Dodge/SmoothScroll.hs 1;" m
SocialUpheaval src/Dodge/Data/Scenario.hs 27;" C
@@ -2733,9 +2728,9 @@ TweakTractionPower src/Dodge/Data/Item/Tweak.hs 22;" C
TweakType src/Dodge/Data/Item/Tweak.hs 20;" t
Tweakable src/Dodge/Data/Item/Tweak.hs 15;" C
TwistGoal src/Dodge/Data/Scenario.hs 15;" C
TwoHandFlat src/Dodge/Data/Item/Use.hs 151;" C
TwoHandOver src/Dodge/Data/Item/Use.hs 150;" C
TwoHandUnder src/Dodge/Data/Item/Use.hs 149;" C
TwoHandFlat src/Dodge/Data/Item/Use.hs 152;" C
TwoHandOver src/Dodge/Data/Item/Use.hs 151;" C
TwoHandUnder src/Dodge/Data/Item/Use.hs 150;" C
Type src/Dodge/Data/Damage/Type.hs 6;" m
Typical src/Shape/Data.hs 36;" C
UPtLayer src/Dodge/Picture/Layer/Data.hs 16;" C
@@ -3553,9 +3548,9 @@ _iyBase src/Dodge/Data/Item/Combine.hs 17;" f
_iyModules src/Dodge/Combine/Data.hs 14;" f
_iyModules src/Dodge/Data/Item/Combine.hs 18;" f
_iyStack src/Dodge/Combine/Data.hs 15;" f
_izFac src/Dodge/Data/Item/Use.hs 160;" f
_izMax src/Dodge/Data/Item/Use.hs 158;" f
_izMin src/Dodge/Data/Item/Use.hs 159;" f
_izFac src/Dodge/Data/Item/Use.hs 161;" f
_izMax src/Dodge/Data/Item/Use.hs 159;" f
_izMin src/Dodge/Data/Item/Use.hs 160;" f
_killTarget src/Dodge/Data/ActionPlan.hs 198;" f
_lClock src/Dodge/Data/LWorld.hs 145;" f
_lWorld src/Dodge/Data/CWorld.hs 26;" f
@@ -3683,11 +3678,11 @@ _mvSpeed src/Dodge/Data/Creature/Misc.hs 39;" f
_mvToPoint src/Dodge/Data/Creature.hs 98;" f
_mvTurnJit src/Dodge/Data/Creature/Misc.hs 43;" f
_mvTurnRad src/Dodge/Data/Creature/Misc.hs 42;" f
_mzAmmoSlot src/Dodge/Data/Item/Use.hs 134;" f
_mzFlareType src/Dodge/Data/Item/Use.hs 135;" f
_mzInaccuracy src/Dodge/Data/Item/Use.hs 133;" f
_mzPos src/Dodge/Data/Item/Use.hs 131;" f
_mzRot src/Dodge/Data/Item/Use.hs 132;" f
_mzAmmoSlot src/Dodge/Data/Item/Use.hs 135;" f
_mzFlareType src/Dodge/Data/Item/Use.hs 136;" f
_mzInaccuracy src/Dodge/Data/Item/Use.hs 134;" f
_mzPos src/Dodge/Data/Item/Use.hs 132;" f
_mzRot src/Dodge/Data/Item/Use.hs 133;" f
_newArcStep src/Dodge/Data/Item/Params.hs 57;" f
_newBeams src/Dodge/Data/LWorld.hs 114;" f
_noClip src/Dodge/Debug/Flag/Data.hs 7;" f
@@ -4436,7 +4431,7 @@ anyTargeting src/Dodge/Render/ShapePicture.hs 70;" f
anyUnusedSpot src/Dodge/PlacementSpot.hs 66;" f
anythingHitCirc src/Dodge/Base/Collide.hs 242;" f
appendEitherTree src/Dodge/Layout/Tree/Either.hs 29;" f
applyCME src/Dodge/HeldUse.hs 366;" f
applyCME src/Dodge/HeldUse.hs 364;" f
applyCreatureDamage src/Dodge/Creature/Damage.hs 14;" f
applyDamageEffect src/Dodge/Creature/Damage.hs 31;" f
applyEventIO src/Loop.hs 89;" f
@@ -4448,10 +4443,11 @@ applyNoDamage src/Dodge/Creature/Damage.hs 11;" f
applyPastDamages src/Dodge/Creature/State.hs 169;" f
applyPiercingDamage src/Dodge/Creature/Damage.hs 57;" f
applyPosition src/Sound.hs 110;" f
applyRecoil src/Dodge/HeldUse.hs 373;" f
applyRecoil src/Dodge/HeldUse.hs 381;" f
applyResFactor src/Dodge/Data/Config.hs 108;" f
applySetTerminalString src/Dodge/Debug/Terminal.hs 78;" f
applySidePush src/Dodge/HeldUse.hs 380;" f
applySidePush src/Dodge/HeldUse.hs 388;" f
applySoundCME src/Dodge/HeldUse.hs 374;" f
applyTerminalCommand src/Dodge/Debug/Terminal.hs 27;" f
applyTerminalCommandArguments src/Dodge/Debug/Terminal.hs 39;" f
applyTerminalString src/Dodge/Debug/Terminal.hs 21;" f
@@ -4466,7 +4462,7 @@ applyToSubforest src/Dodge/Tree/Polymorphic.hs 66;" f
applyToSubforest src/TreeHelp.hs 77;" f
applyToSubtree src/Dodge/Tree/Polymorphic.hs 60;" f
applyToSubtree src/TreeHelp.hs 70;" f
applyTorqueCME src/Dodge/HeldUse.hs 390;" f
applyTorqueCME src/Dodge/HeldUse.hs 398;" f
applyWorldConfig src/Dodge/Config/Update.hs 38;" f
aquamarine src/Color.hs 23;" f
arc src/Picture/Base.hs 287;" f
@@ -4512,10 +4508,10 @@ autoGun src/Dodge/Item/Weapon/AutoGun.hs 24;" f
autoGunPic src/Dodge/Item/Weapon/AutoGun.hs 66;" f
autoGunS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 496;" f
autoGunSound src/Dodge/SoundLogic/Synonyms.hs 4;" f
autoPistol src/Dodge/Item/Held/Stick.hs 58;" f
autoPistol src/Dodge/Item/Held/Stick.hs 60;" f
autoPistol src/Dodge/Item/Weapon/BulletGun/Stick.hs 79;" f
autoRadarEffect src/Dodge/Item/Weapon/ExtraEffect.hs 39;" f
autoRifle src/Dodge/Item/Held/Cane.hs 83;" f
autoRifle src/Dodge/Item/Held/Cane.hs 84;" f
autoRifle src/Dodge/Item/Weapon/BulletGun/Cane.hs 97;" f
autoSonarEffect src/Dodge/Item/Weapon/ExtraEffect.hs 43;" f
autogunSpread src/Dodge/Item/Weapon/AutoGun.hs 78;" f
@@ -4537,7 +4533,7 @@ bangRod src/Dodge/Item/Weapon/BulletGun/Rod.hs 18;" f
bangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 478;" f
bangStick src/Dodge/Item/Held/Stick.hs 17;" f
bangStick src/Dodge/Item/Weapon/BulletGun/Stick.hs 17;" f
bangStickSoundChoice src/Dodge/HeldUse.hs 947;" f
bangStickSoundChoice src/Dodge/HeldUse.hs 968;" f
bangStickSoundChoice src/Dodge/HeldUse/BulletWeapon.hs 226;" f
barPP src/Dodge/Room/Foreground.hs 236;" f
barrel src/Dodge/Creature/Inanimate.hs 17;" f
@@ -4650,20 +4646,20 @@ bufferPokedVBO src/Shader/Bind.hs 18;" f
bufferShaderLayers src/Shader/Bind.hs 35;" f
bulDamageCr src/Dodge/Particle/Bullet/DestroyDamage.hs 21;" f
bulDamageWall src/Dodge/Particle/Bullet/DestroyDamage.hs 30;" f
bulGunEffect src/Dodge/HeldUse.hs 356;" f
bulGunEffect' src/Dodge/HeldUse.hs 359;" f
bulGunEffect src/Dodge/HeldUse.hs 351;" f
bulGunEffect' src/Dodge/HeldUse.hs 354;" f
bulSelTweak src/Dodge/TweakBullet.hs 15;" f
bulletBeltBracer src/Dodge/Item/Equipment.hs 83;" f
bulletBeltPack src/Dodge/Item/Equipment.hs 74;" f
bulletBodyCraft src/Dodge/Item/Craftable.hs 24;" f
bulletCombinations src/Dodge/Combine/Graph.hs 35;" f
bulletGunEffect src/Dodge/HeldUse.hs 458;" f
bulletGunEffect src/Dodge/HeldUse.hs 490;" f
bulletMagazines src/Dodge/Combine/Combinations.hs 239;" f
bulletSpawn src/Dodge/Bullet.hs 97;" f
bulletSynthesizer src/Dodge/Item/Ammo.hs 76;" f
bulletTypes src/Dodge/TweakBullet.hs 26;" f
bulletWeapons src/Dodge/Combine/Combinations.hs 247;" f
burstRifle src/Dodge/Item/Held/Cane.hs 91;" f
burstRifle src/Dodge/Item/Held/Cane.hs 93;" f
burstRifle src/Dodge/Item/Weapon/BulletGun/Cane.hs 105;" f
buzzS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 502;" f
buzzSound src/Dodge/SoundLogic/Synonyms.hs 4;" f
@@ -4673,7 +4669,7 @@ canAttachTargeting src/Dodge/Item/Display.hs 19;" f
canHeldScrollAttach src/Dodge/HeldScroll.hs 75;" f
canSee src/Dodge/Base/Collide.hs 228;" f
canSeeIndirect src/Dodge/Base/Collide.hs 235;" f
caneStickSoundChoice src/Dodge/HeldUse.hs 942;" f
caneStickSoundChoice src/Dodge/HeldUse.hs 963;" f
cardList src/Dodge/Base/CardinalPoint.hs 6;" f
cardVec src/Dodge/Base/CardinalPoint.hs 9;" f
cardinalVectors src/Dodge/FloorItem.hs 39;" f
@@ -4826,8 +4822,8 @@ composeTree src/Dodge/Tree/Compose.hs 46;" f
computerBeepingS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 458;" f
conEffects src/Dodge/Concurrent.hs 17;" f
concBall src/Dodge/WorldEvent/SpawnParticle.hs 27;" f
coneRandItemParams src/Dodge/HeldUse.hs 956;" f
coneRandItemUpdate src/Dodge/HeldUse.hs 950;" f
coneRandItemParams src/Dodge/HeldUse.hs 977;" f
coneRandItemUpdate src/Dodge/HeldUse.hs 971;" f
connectRoom src/Dodge/Layout/Tree/Either.hs 48;" f
connectTrunk src/Dodge/Layout/Tree/Either.hs 54;" f
connectionBlurb src/Dodge/Terminal.hs 100;" f
@@ -5064,7 +5060,7 @@ defaultChaseMvType src/Dodge/Default/Creature.hs 113;" f
defaultClusterStatus src/Dodge/Default/Room.hs 38;" f
defaultConfig src/Dodge/Config/Data.hs 83;" f
defaultConfig src/Dodge/Data/Config.hs 125;" f
defaultConsumable src/Dodge/Default/Item.hs 67;" f
defaultConsumable src/Dodge/Default/Item.hs 68;" f
defaultCorpse src/Dodge/Corpse/Make.hs 29;" f
defaultCraftItem src/Dodge/Default/Item.hs 42;" f
defaultCreature src/Dodge/Default/Creature.hs 12;" f
@@ -5131,7 +5127,7 @@ defaultTerminal src/Dodge/Default/Terminal.hs 8;" f
defaultTerminalInput src/Dodge/Default/Terminal.hs 30;" f
defaultVision src/Dodge/Default/Creature.hs 92;" f
defaultWall src/Dodge/Default/Wall.hs 10;" f
defaultWeapon src/Dodge/Default/Item.hs 57;" f
defaultWeapon src/Dodge/Default/Item.hs 58;" f
defaultWindow src/Dodge/Default/Wall.hs 74;" f
defaultWorld src/Dodge/Default/World.hs 31;" f
defaultWorldHammers src/Dodge/Default/Input.hs 28;" f
@@ -5505,7 +5501,7 @@ findWallFreeDropPoint src/Dodge/FloorItem.hs 47;" f
findWallsInPolygon src/Dodge/LevelGen/StaticWalls/Deprecated.hs 78;" f
findWithIx src/ListHelp.hs 123;" f
fireLoudS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 504;" f
fireRemoteShell src/Dodge/HeldUse.hs 914;" f
fireRemoteShell src/Dodge/HeldUse.hs 935;" f
fireS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 332;" f
fireShell src/Dodge/Projectile/Create.hs 35;" f
fireSound src/Dodge/SoundLogic/Synonyms.hs 4;" f
@@ -5608,7 +5604,7 @@ gameRoomViewpoints src/Dodge/Viewpoints.hs 35;" f
gameRoomsFromRooms src/Dodge/Layout.hs 158;" f
gameplayMenu src/Dodge/Menu.hs 131;" f
gameplayMenuOptions src/Dodge/Menu.hs 134;" f
gasEffect src/Dodge/HeldUse.hs 344;" f
gasEffect src/Dodge/HeldUse.hs 339;" f
generateGenParams src/Dodge/LevelGen/LevelStructure.hs 22;" f
generateGraphs src/Dodge/LevelGen.hs 39;" f
generateLayout src/Dodge/Layout/Generate.hs 10;" f
@@ -5619,7 +5615,7 @@ geometryQuickCheckTests test/Spec.hs 55;" f
geometryTests test/Spec.hs 17;" f
geometryUnitTests test/Spec.hs 22;" f
geqConstr src/SameConstr.hs 21;" f
getAmmoMagazine src/Dodge/HeldUse.hs 888;" f
getAmmoMagazine src/Dodge/HeldUse.hs 909;" f
getArguments src/Dodge/Update/Scroll.hs 147;" f
getArguments' src/Dodge/Update/Scroll.hs 135;" f
getAvailableListLines src/Dodge/SelectionList.hs 11;" f
@@ -5736,7 +5732,7 @@ heightWallPS src/Dodge/Placement/Instance/Wall.hs 13;" f
heldAimEffects src/Dodge/Creature/State.hs 68;" f
heldBounds src/Dodge/Item/Module.hs 27;" f
heldComposedItem src/Dodge/Item/Grammar.hs 38;" f
heldEffect src/Dodge/HeldUse.hs 34;" f
heldEffect src/Dodge/HeldUse.hs 41;" f
heldInfo src/Dodge/Item/Info.hs 61;" f
heldItemOffset src/Dodge/Item/HeldOffset.hs 24;" f
heldItemSPic src/Dodge/Item/Draw/SPic.hs 156;" f
@@ -5871,7 +5867,7 @@ invertIntMap src/Multiset.hs 61;" f
invertInventoryToMap src/Dodge/Combine.hs 25;" f
invisibleChaseCrit src/Dodge/Creature/ChaseCrit.hs 25;" f
invisibleWall src/Dodge/Placement/Instance/Wall.hs 16;" f
isAmmoIntLink src/Dodge/HeldUse.hs 424;" f
isAmmoIntLink src/Dodge/HeldUse.hs 451;" f
isAnimate src/Dodge/Creature/Test.hs 138;" f
isCognizant src/Dodge/Creature/Perception.hs 105;" f
isElectrical src/Dodge/Data/Damage.hs 42;" f
@@ -5991,7 +5987,7 @@ lasTunnelRunPast src/Dodge/Room/LasTurret.hs 165;" f
lasTurret src/Dodge/Placement/Instance/Turret.hs 23;" f
lasTurret src/Dodge/Placements/Turret.hs 29;" f
lasWide src/Dodge/Item/Held/BatteryGuns.hs 98;" f
lasWideRate src/Dodge/HeldUse.hs 803;" f
lasWideRate src/Dodge/HeldUse.hs 824;" f
lastMap src/Dodge/DoubleTree.hs 65;" f
latchkey src/Dodge/Item/Held/Utility.hs 23;" f
latchkey src/Dodge/Item/PassKey.hs 14;" f
@@ -6057,7 +6053,7 @@ loadEject src/Dodge/Reloading/Action.hs 12;" f
loadInsert src/Dodge/Reloading/Action.hs 6;" f
loadKeyConfig src/Dodge/Config/KeyConfig.hs 60;" f
loadMusic src/Dodge/SoundLogic/LoadSound.hs 21;" f
loadMuzzle src/Dodge/HeldUse.hs 409;" f
loadMuzzle src/Dodge/HeldUse.hs 417;" f
loadPartialInsert src/Dodge/Reloading/Action.hs 9;" f
loadPrime src/Dodge/Reloading/Action.hs 15;" f
loadSaveSlot src/Dodge/Save.hs 74;" f
@@ -6097,7 +6093,7 @@ ltAutoCrit src/Dodge/Creature/LtAutoCrit.hs 13;" f
machineAddSound src/Dodge/Machine.hs 49;" f
machineGun src/Dodge/Item/Held/Rod.hs 71;" f
machineGun src/Dodge/Item/Weapon/BulletGun/Rod.hs 79;" f
machinePistol src/Dodge/Item/Held/Stick.hs 65;" f
machinePistol src/Dodge/Item/Held/Stick.hs 69;" f
machinePistol src/Dodge/Item/Weapon/BulletGun/Stick.hs 86;" f
machineUpdateDeathEff src/Dodge/Machine.hs 34;" f
machineUpdateLiveDieEff src/Dodge/Machine.hs 16;" f
@@ -6115,7 +6111,7 @@ makeArc src/Picture/Base.hs 157;" f
makeBlip src/Dodge/RadarSweep.hs 50;" f
makeBlockDebris src/Dodge/Block/Debris.hs 28;" f
makeBoolOption src/Dodge/Menu/OptionType.hs 8;" f
makeBullet src/Dodge/HeldUse.hs 441;" f
makeBullet src/Dodge/HeldUse.hs 473;" f
makeButton src/Dodge/LevelGen/Switch.hs 16;" f
makeByteStringShaderUsingVAO src/Shader/Compile.hs 137;" f
makeCloudAt src/Dodge/WorldEvent/Cloud.hs 18;" f
@@ -6145,7 +6141,8 @@ makeGrid src/Grid.hs 46;" f
makeIntInterval src/Dodge/Zoning/Base.hs 33;" f
makeLaserAt src/Dodge/Item/Weapon/Laser.hs 42;" f
makeLaserScope src/Dodge/Item/Weapon/Decoration.hs 12;" f
makeMuzzleFlare src/Dodge/HeldUse.hs 421;" f
makeMuzzleFlare src/Dodge/HeldUse.hs 430;" f
makeMuzzleSmoke src/Dodge/HeldUse.hs 441;" f
makeOptionsSelectionList src/Dodge/Menu/Option.hs 46;" f
makeParagraph src/Justify.hs 6;" f
makePathBetween src/Dodge/Path.hs 35;" f
@@ -6209,10 +6206,10 @@ mcProximitySensorUpdate src/Dodge/Machine/Update.hs 104;" f
mcSPic src/Dodge/Render/ShapePicture.hs 169;" f
mcSensorTriggerUpdate src/Dodge/Machine/Update.hs 69;" f
mcSensorUpdate src/Dodge/Machine/Update.hs 99;" f
mcShootLaser src/Dodge/HeldUse.hs 964;" f
mcShootLaser src/Dodge/HeldUse.hs 985;" f
mcTriggerVal src/Dodge/Machine/Update.hs 75;" f
mcTypeUpdate src/Dodge/Machine/Update.hs 24;" f
mcUseHeld src/Dodge/HeldUse.hs 806;" f
mcUseHeld src/Dodge/HeldUse.hs 827;" f
mcUseItem src/Dodge/Machine/Update.hs 61;" f
medkit src/Dodge/Item/Consumable.hs 8;" f
meleeHeadingMove src/Dodge/Creature/Boid.hs 281;" f
@@ -6254,9 +6251,9 @@ minOn src/FoldableHelp.hs 35;" f
minStreamOn src/StreamingHelp.hs 14;" f
mini1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 322;" f
miniGunCrit src/Dodge/Creature.hs 62;" f
miniGunUse src/Dodge/Item/Held/Cane.hs 99;" f
miniGunUse src/Dodge/Item/Held/Cane.hs 101;" f
miniGunUse src/Dodge/Item/Weapon/BulletGun/Cane.hs 113;" f
miniGunX src/Dodge/Item/Held/Cane.hs 111;" f
miniGunX src/Dodge/Item/Held/Cane.hs 113;" f
miniGunX src/Dodge/Item/Weapon/BulletGun/Cane.hs 120;" f
miniGunXPict src/Dodge/Item/Draw/SPic.hs 392;" f
miniGunXPictItem src/Dodge/Item/Draw/SPic.hs 386;" f
@@ -6344,7 +6341,7 @@ muchWlDustAt src/Dodge/Wall/Dust.hs 15;" f
muin src/Dodge/RoomLink.hs 132;" f
multGunCrit src/Dodge/Creature.hs 76;" f
multiArrow src/Picture/Composite.hs 11;" f
multiGun src/Dodge/Item/Held/Cane.hs 53;" f
multiGun src/Dodge/Item/Held/Cane.hs 54;" f
multiLookupTrie src/SimpleTrie.hs 28;" f
multiLookupTrieI src/SimpleTrie.hs 36;" f
muout src/Dodge/RoomLink.hs 129;" f
@@ -6449,9 +6446,9 @@ overColObj src/Shape.hs 269;" f
overColSH src/Shape.hs 237;" f
overLnkPosDir src/Dodge/RoomLink.hs 100;" f
overLnkType src/Dodge/RoomLink.hs 87;" f
overNozzle src/Dodge/HeldUse.hs 870;" f
overNozzles src/Dodge/HeldUse.hs 848;" f
overNozzles' src/Dodge/HeldUse.hs 856;" f
overNozzle src/Dodge/HeldUse.hs 891;" f
overNozzles src/Dodge/HeldUse.hs 869;" f
overNozzles' src/Dodge/HeldUse.hs 877;" f
overPos src/Picture/Base.hs 303;" f
overPosObj src/Shape.hs 273;" f
overPosSH src/Shape.hs 257;" f
@@ -6871,7 +6868,6 @@ renderListAt src/Dodge/Render/List.hs 160;" f
renderShadows src/Render.hs 117;" f
repeatOnFrames src/Dodge/Item/Weapon/TriggerType.hs 668;" f
repeatTransformed src/Dodge/Item/Weapon/TriggerType.hs 96;" f
repeater src/Dodge/Item/Held/Cane.hs 77;" f
repeater src/Dodge/Item/Weapon/BulletGun/Cane.hs 89;" f
replaceNullWith src/Dodge/Creature/ReaderUpdate.hs 160;" f
replacePutID src/Dodge/Placement/Instance/Wall.hs 102;" f
@@ -6910,7 +6906,7 @@ rezInvBox src/Dodge/Room/RezBox.hs 131;" f
rezText src/Dodge/Story.hs 4;" f
rezText' src/Dodge/Story.hs 17;" f
rhombus src/Polyhedra.hs 71;" f
rifle src/Dodge/Item/Held/Cane.hs 66;" f
rifle src/Dodge/Item/Held/Cane.hs 67;" f
rifle src/Dodge/Item/Weapon/BulletGun/Cane.hs 77;" f
right src/DoubleStack.hs 16;" f
rightIsParentCombine src/Dodge/Item/Grammar.hs 66;" f
@@ -7188,7 +7184,7 @@ shootRevolverXRepeat src/Dodge/HeldUse/BulletWeapon.hs 49;" f
shootRifle src/Dodge/HeldUse/BulletWeapon.hs 140;" f
shootShatter src/Dodge/Item/Weapon/Shatter.hs 12;" f
shootSmgMod src/Dodge/HeldUse/BulletWeapon.hs 86;" f
shootTeslaArc src/Dodge/HeldUse.hs 973;" f
shootTeslaArc src/Dodge/HeldUse.hs 994;" f
shootTillEmpty src/Dodge/Creature/Volition.hs 18;" f
shootVolleyGun src/Dodge/HeldUse/BulletWeapon.hs 128;" f
shootersRoom src/Dodge/Room/Room.hs 317;" f
@@ -7213,7 +7209,7 @@ showIntsString src/Dodge/Tree/Compose.hs 129;" f
showLoadedAmount src/Dodge/Item/Display.hs 144;" f
showPhaseV src/Dodge/Tweak/Show.hs 16;" f
showTerminalError src/Dodge/Debug/Terminal.hs 75;" f
showTimeFlow src/Dodge/TestString.hs 61;" f
showTimeFlow src/Dodge/TestString.hs 63;" f
showTractionPower src/Dodge/Tweak/Show.hs 22;" f
showTweak src/Dodge/Tweak/Show.hs 5;" f
shrinkGun src/Dodge/Item/Weapon/Utility.hs 44;" f
@@ -7265,7 +7261,7 @@ smallGlass3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 372;" f
smallGlass4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 334;" f
smallPillar src/Dodge/Room/Pillar.hs 32;" f
smallRoom src/Dodge/Room/RunPast.hs 31;" f
smg src/Dodge/Item/Held/Stick.hs 74;" f
smg src/Dodge/Item/Held/Stick.hs 78;" f
smg src/Dodge/Item/Weapon/BulletGun/Stick.hs 95;" f
smokeCloudAt src/Dodge/WorldEvent/Cloud.hs 41;" f
smokeTrailSound src/Dodge/SoundLogic/Synonyms.hs 4;" f
@@ -7468,7 +7464,7 @@ testEvent src/Dodge/Event/Test.hs 10;" f
testEventKey src/Dodge/Config/KeyConfig.hs 27;" f
testInventory src/Dodge/Creature.hs 245;" f
testPic src/Dodge/Render/ShapePicture.hs 153;" f
testStringInit src/Dodge/TestString.hs 21;" f
testStringInit src/Dodge/TestString.hs 22;" f
text src/Picture/Base.hs 193;" f
textGrad src/Picture/Text.hs 5;" f
textJustifyCenter src/Picture/Base.hs 212;" f
@@ -7819,9 +7815,9 @@ useAmmoParams src/Dodge/Item/Weapon/AmmoParams.hs 17;" f
useC src/Dodge/Cuse.hs 6;" f
useE src/Dodge/Euse.hs 24;" f
useEquipment src/Dodge/Creature/State.hs 218;" f
useForceFieldGun src/Dodge/HeldUse.hs 986;" f
useGasParams src/Dodge/HeldUse.hs 897;" f
useHeld src/Dodge/HeldUse.hs 811;" f
useForceFieldGun src/Dodge/HeldUse.hs 1007;" f
useGasParams src/Dodge/HeldUse.hs 918;" f
useHeld src/Dodge/HeldUse.hs 832;" f
useHotKey src/Dodge/Creature/YourControl.hs 49;" f
useItem src/Dodge/Creature/Action/UseItem.hs 14;" f
useItemHotkey src/Dodge/Creature/Impulse/UseItem.hs 124;" f
@@ -7830,13 +7826,13 @@ useItemRightClick src/Dodge/Creature/Impulse/UseItem.hs 25;" f
useL src/Dodge/Luse.hs 13;" f
useLeftItem src/Dodge/Creature/Action/UseItem.hs 38;" f
useLnkRoomPos src/Dodge/PlacementSpot.hs 244;" f
useLoadedAmmo src/Dodge/HeldUse.hs 428;" f
useLoadedAmmo src/Dodge/HeldUse.hs 455;" f
useMagShield src/Dodge/Euse.hs 69;" f
useMod src/Dodge/HeldUse.hs 470;" f
useMod src/Dodge/HeldUse.hs 502;" f
useNormalCamera src/Dodge/Camera.hs 6;" f
usePayload src/Dodge/Payload.hs 7;" f
usePjCreation src/Dodge/HeldUse.hs 830;" f
usePjCreationX src/Dodge/HeldUse.hs 839;" f
usePjCreation src/Dodge/HeldUse.hs 851;" f
usePjCreationX src/Dodge/HeldUse.hs 860;" f
useRewindGun src/Dodge/Luse.hs 41;" f
useRoomPosCond src/Dodge/PlacementSpot.hs 178;" f
useRoomPosRoomCond src/Dodge/PlacementSpot.hs 181;" f