Pass ammo magazine items to held item use chain

This commit is contained in:
2024-06-25 15:50:22 +01:00
parent c723d1b1e1
commit 009a6cd30f
7 changed files with 289 additions and 238 deletions
+40 -1
View File
@@ -1 +1,40 @@
All good (615 modules, at 16:17:36)
/home/justin/Haskell/loop/src/Dodge/Item/Weapon/TriggerType.hs:76:1: warning: [-Wunused-imports]
The qualified import of IntMapHelp is redundant
|
76 | import qualified IntMapHelp as IM
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/home/justin/Haskell/loop/src/Dodge/Item/Weapon/TriggerType.hs:349:5: warning: [-Wunused-matches]
Defined but not used: x
|
349 | x <- ams ^? ix 0 . itUse . amagLoadStatus . iaLoaded
| ^
/home/justin/Haskell/loop/src/Dodge/Item/Weapon/BatteryGuns.hs:128:12: warning: [-Wunused-matches]
Defined but not used: ams
|
128 | shootLaser ams it cr =
| ^^^
/home/justin/Haskell/loop/src/Dodge/Bullet.hs:63:5: warning: [-Wunused-matches]
Defined but not used: invid
|
63 | invid <- it ^? itLocation . ipInvID
| ^^^^^
/home/justin/Haskell/loop/src/Dodge/HeldUse.hs:410:18: warning: [-Wunused-matches]
Defined but not used: ams
|
410 | usePjCreationX i ams itm cr =
| ^^^
/home/justin/Haskell/loop/src/Dodge/HeldUse.hs:472:21: warning: [-Wunused-matches]
Defined but not used: it
|
472 | useGasParams nz ams it cr =
| ^^
/home/justin/Haskell/loop/src/Dodge/HeldUse.hs:486:17: warning: [-Wunused-matches]
Defined but not used: ams
|
486 | fireRemoteShell ams it cr w =
| ^^^
/home/justin/Haskell/loop/src/Dodge/HeldUse.hs:542:15: warning: [-Wunused-matches]
Defined but not used: ams
|
542 | shootTeslaArc ams it cr w =
| ^^^
+3 -3
View File
@@ -58,10 +58,10 @@ updateBulVel bt = case _buTrajectory bt of
-- should be made safe?
-- should be renamed to shootBullet or something
shootBullet :: Item -> Creature -> World -> World
shootBullet it cr w = fromMaybe (error "cannot find bullet ammo when expected to") $ do
shootBullet :: [Item] -> Item -> Creature -> World -> World
shootBullet ams it cr w = fromMaybe (error "cannot find bullet ammo when expected to") $ do
invid <- it ^? itLocation . ipInvID
thebullet <- cr ^? crInv . ix (invid + 1) . itUse . amagParams . ampBullet
thebullet <- ams ^? ix 0 . itUse . amagParams . ampBullet
return $ w & cWorld . lWorld . instantBullets
.:~ ( thebullet
& buPos .~ _crPos cr
+14 -1
View File
@@ -32,10 +32,23 @@ useItemRightClick cr' w = fromMaybe (f w) $ do
where
f = cWorld . lWorld . creatures . ix (_crID cr') . crHammerPosition .~ HammerDown
getAmmoMags :: Item -> Creature -> [Item]
getAmmoMags itm cr = fromMaybe [] $ do
atypes <- itm ^? itUse . heldConsumption
i <- itm ^? itLocation . ipInvID
let amags = cr ^.. crInv . dropping (i + 1) traverse
mmags = zipWith f atypes amags
return $ catMaybes mmags
where
f atype itm' = do
itype <- itm' ^? itUse . amagType
guard $ itype == atype
return $ itm'
itemEffect :: Creature -> Item -> World -> World
itemEffect cr it w = case it ^. itUse of
HeldUse{_heldUse = eff, _heldMods = usemods} ->
foldl' (&) (useHeld eff) (useMod usemods) it cr w
foldl' (&) (useHeld eff) (useMod usemods) (getAmmoMags it cr) it cr w
& pointerToItem it . itUse . heldHammer .~ HammerDown
LeftUse{} -> doequipmentchange
EquipUse{} -> doequipmentchange
+35 -34
View File
@@ -25,7 +25,7 @@ import LensHelp
import RandomHelp
import Sound.Data
useMod :: HeldMod -> [(Item -> Creature -> World -> World) -> Item -> Creature -> World -> World]
useMod :: HeldMod -> [([Item] -> Item -> Creature -> World -> World) -> [Item] -> Item -> Creature -> World -> World]
useMod hm = case hm of
HeldModNothing -> []
PoisonSprayerMod ->
@@ -382,35 +382,32 @@ mcUseHeld hit = case hit of
LASGUN -> mcShootLaser
_ -> \_ _ -> id
useHeld :: Huse -> Item -> Creature -> World -> World
useHeld :: Huse -> [Item] -> Item -> Creature -> World -> World
useHeld hu = case hu of
HeldDoNothing -> const $ const id
HeldDoNothing -> const . const $ const id
HeldUseAmmoParams -> shootBullet
HeldOverNozzlesUseGasParams -> overNozzles useGasParams
HeldPJCreation -> usePjCreation
HeldPJCreationX i -> usePjCreationX i
HeldFireRemoteShell -> fireRemoteShell
HeldDetectorEffect dt -> detectorEffect dt
HeldDetectorEffect dt -> const $ detectorEffect dt
HeldTeslaArc -> shootTeslaArc
HeldLaser -> shootLaser
HeldCircleLaser -> circleLaser
HeldDualLaser -> shootDualLaser
HeldTractor -> aTractorBeam
HeldCircleLaser -> const circleLaser
HeldDualLaser -> const shootDualLaser
HeldTractor -> const aTractorBeam
-- HeldSonicWave -> aSonicWave
HeldForceField -> useForceFieldGun
HeldShatter -> shootShatter
HeldExplodeRemoteShell itid pjid -> const $ const $ explodeRemoteRocket itid pjid
HeldForceField -> const useForceFieldGun
HeldShatter -> const shootShatter
HeldExplodeRemoteShell itid pjid -> const $ const $ const $ explodeRemoteRocket itid pjid
usePjCreation :: Item -> Creature -> World -> World
usePjCreation itm cr = createProjectile apm itm cr
where
apm = fromMaybe (error "cannot find shell ammo projectile") $ do
invid <- itm ^? itLocation . ipInvID
cr ^? crInv . ix (invid + 1) . itUse . amagParams
usePjCreation :: [Item] -> Item -> Creature -> World -> World
usePjCreation ams itm cr = fromMaybe id $ do
apm <- ams ^? ix 0 . itUse . amagParams
return $ createProjectile apm itm cr
usePjCreationX :: Int -> Item -> Creature -> World -> World
usePjCreationX i itm cr =
usePjCreationX :: Int -> [Item] -> Item -> Creature -> World -> World
usePjCreationX i ams itm cr =
foldr
f
(createProjectile apm itm cr)
@@ -422,7 +419,8 @@ usePjCreationX i itm cr =
f n = (. createProjectile apm itm (cr & crDir +~ (2 * pi * fromIntegral n / fromIntegral i)))
overNozzles ::
(Nozzle -> Item -> Creature -> World -> World) ->
(Nozzle -> [Item] -> Item -> Creature -> World -> World) ->
[Item] ->
Item ->
Creature ->
World ->
@@ -430,26 +428,28 @@ overNozzles ::
overNozzles = overNozzles' . overNozzle
overNozzles' ::
(Item -> Creature -> World -> Nozzle -> (World, Nozzle)) ->
([Item] -> Item -> Creature -> World -> Nozzle -> (World, Nozzle)) ->
[Item] ->
Item ->
Creature ->
World ->
World
overNozzles' eff it cr w = neww & cWorld . lWorld . creatures . ix cid . crInv . ix i . itParams . sprayNozzles .~ newNozzles
overNozzles' eff ams it cr w = neww & cWorld . lWorld . creatures . ix cid . crInv . ix i . itParams . sprayNozzles .~ newNozzles
where
cid = _crID cr
i = w ^?! cWorld . lWorld . creatures . ix cid . crManipulation . manObject . inInventory . ispItem
(neww, newNozzles) = mapAccumR (eff it cr) w $ _sprayNozzles (_itParams it)
(neww, newNozzles) = mapAccumR (eff ams it cr) w $ _sprayNozzles (_itParams it)
overNozzle ::
(Nozzle -> Item -> Creature -> World -> World) ->
(Nozzle -> [Item] -> Item -> Creature -> World -> World) ->
[Item] ->
Item ->
Creature ->
World ->
Nozzle ->
(World, Nozzle)
overNozzle eff it cr w nz =
( eff nz it (cr & crDir +~ wa + na) w & randGen .~ g
overNozzle eff ams it cr w nz =
( eff nz ams it (cr & crDir +~ wa + na) w & randGen .~ g
, nz & nzCurrentWalkAngle .~ wa
)
where
@@ -468,21 +468,22 @@ getAmmoMagazine itm cr = do
guard $ amtype == magtype
return mag
useGasParams :: Nozzle -> Item -> Creature -> World -> World
useGasParams nz it cr =
useGasParams :: Nozzle -> [Item] -> Item -> Creature -> World -> World
useGasParams nz ams it cr =
createGas
(_ampCreateGas (_amagParams amag))
gastype
(_nzPressure nz)
pos
dir
cr
where
amag = fromMaybe (error "cannot find gas ammo") $ getAmmoMagazine it cr
gastype = fromMaybe (error "cannot find gas ammo") $ ams ^? ix 0 . itUse . amagParams . ampCreateGas
-- amag = fromMaybe (error "cannot find gas ammo") $ getAmmoMagazine it cr
dir = _crDir cr
pos = _crPos cr +.+ (_nzLength nz *.* unitVectorAtAngle (_crDir cr))
fireRemoteShell :: Item -> Creature -> World -> World
fireRemoteShell it cr w =
fireRemoteShell :: [Item] -> Item -> Creature -> World -> World
fireRemoteShell ams it cr w =
set
(cWorld . lWorld . creatures . ix cid . crInv . ix j . itUse . heldUse)
(HeldExplodeRemoteShell itid i)
@@ -537,8 +538,8 @@ mcShootLaser it mc = cWorld . lWorld . lasers .:~ lasRayAt (_lasColor $ _itParam
dam = _lasDamage $ _itParams it
-- | assumes that the item is held
shootTeslaArc :: Item -> Creature -> World -> World
shootTeslaArc it cr w =
shootTeslaArc :: [Item] -> Item -> Creature -> World -> World
shootTeslaArc ams it cr w =
w'
& cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix itRef . itParams .~ ip
where
+2 -2
View File
@@ -124,8 +124,8 @@ import Picture
-- y = 15 * sin (pi * fromIntegral x' * 0.01)
-- x' = _lasCycle $ _itParams it
shootLaser :: Item -> Creature -> World -> World
shootLaser it cr =
shootLaser :: [Item] -> Item -> Creature -> World -> World
shootLaser ams it cr =
cWorld . lWorld . lasers
.:~ lasRayAt
(_lasColor $ _itParams it)
+108 -110
View File
@@ -80,30 +80,31 @@ import qualified SDL
import Sound.Data
type ChainEffect =
(Item -> Creature -> World -> World) ->
([Item] -> Item -> Creature -> World -> World) ->
[Item] ->
Item ->
Creature ->
World ->
World
lockInvFor :: Int -> ChainEffect
lockInvFor i f it cr =
f it cr . (cWorld . lWorld . delayedEvents .:~ (i, UnlockInv (_crID cr)))
lockInvFor i f ams it cr =
f ams it cr . (cWorld . lWorld . delayedEvents .:~ (i, UnlockInv (_crID cr)))
. lockInv (_crID cr)
repeatTransformed ::
[(Item -> Item,Creature -> Creature)] ->
ChainEffect
repeatTransformed xs f itm cr w = foldr g w xs
repeatTransformed xs f ams itm cr w = foldr g w xs
where
g (fit,fcr) = f (fit itm) (fcr cr)
g (fit,fcr) = f ams (fit itm) (fcr cr)
trigDoAlso ::
(Item -> Item) ->
(Creature -> Creature) ->
(Item -> Creature -> World -> World) ->
ChainEffect
trigDoAlso fit fcr f g itm cr = g itm cr . f (fit itm) (fcr cr)
trigDoAlso fit fcr f g ams itm cr = g ams itm cr . f (fit itm) (fcr cr)
-- Note that this uses the "base" creature and item values
--trigDoAlso ::
@@ -112,8 +113,8 @@ trigDoAlso fit fcr f g itm cr = g itm cr . f (fit itm) (fcr cr)
--trigDoAlso afterEff eff item cr = afterEff item cr . eff item cr
withSmoke :: Int -> Point4 -> Float -> Int -> Float -> ChainEffect
withSmoke num col rad t alt eff item cr w =
eff item cr $
withSmoke num col rad t alt eff ams item cr w =
eff ams item cr $
foldl' (flip $ smokeCloudAt col rad t alt . (+.+.+ pos) . (* 8)) w ps
where
dir = _crDir cr
@@ -121,8 +122,8 @@ withSmoke num col rad t alt eff item cr w =
ps = replicateM num randOnUnitSphere & evalState $ _randGen w
withThinSmokeI :: ChainEffect
withThinSmokeI eff item cr w =
eff item cr $
withThinSmokeI eff ams item cr w =
eff ams item cr $
foldl' (flip $ makeThinSmokeAt . (+.+.+ pos) . (* 8)) w ps
where
dir = _crDir cr
@@ -130,8 +131,8 @@ withThinSmokeI eff item cr w =
ps = replicateM 5 randOnUnitSphere & evalState $ _randGen w
withThickSmokeI :: ChainEffect
withThickSmokeI eff item cr w =
eff item cr $
withThickSmokeI eff ams item cr w =
eff ams item cr $
foldl' (flip $ makeThickSmokeAt . (+.+.+ pos) . (* 8)) w ps
where
dir = _crDir cr
@@ -141,11 +142,10 @@ withThickSmokeI eff item cr w =
-- TODO create a trigger that does different things on first and continued
-- fire.
ammoCheckI :: ChainEffect
ammoCheckI eff itm cr w = fromMaybe (failsound w) $ do
invid <- itm ^? itLocation . ipInvID
x <- cr ^? crInv . ix (invid + 1) . itUse . amagLoadStatus . iaLoaded
ammoCheckI eff ams itm cr w = fromMaybe (failsound w) $ do
x <- ams ^? ix 0 . itUse . amagLoadStatus . iaLoaded
guard $ x > 0
return $ eff itm cr $ w & cWorld . lWorld . creatures . ix (_crID cr) %~ crCancelReloading
return $ eff ams itm cr $ w & cWorld . lWorld . creatures . ix (_crID cr) %~ crCancelReloading
where
failsound = case w ^? input . mouseButtons . ix SDL.ButtonLeft of
Just 0 -> soundStart (CrReloadSound (_crID cr)) (_crPos cr) click1S Nothing
@@ -167,7 +167,7 @@ rateIncAB ::
-- | Extra effect on continued fire
ChainEffect ->
ChainEffect
rateIncAB exeffFirst exeffCont eff item cr w
rateIncAB exeffFirst exeffCont eff ams item cr w
| repeatFire =
w
& pointItem
@@ -175,7 +175,7 @@ rateIncAB exeffFirst exeffCont eff item cr w
-- . itUseAmmo 1
. (itUse . heldDelay . rateTime .~ currentRate)
)
& exeffCont eff item cr
& exeffCont eff ams item cr
| firstFire =
w
& pointItem
@@ -183,7 +183,7 @@ rateIncAB exeffFirst exeffCont eff item cr w
-- . itUseAmmo 1
. (itUse . heldDelay . rateTime .~ startRate)
)
& exeffFirst eff item cr
& exeffFirst eff ams item cr
| otherwise = w
where
fastRate = _rateMinMax . _heldDelay $ _itUse item
@@ -202,7 +202,7 @@ withWarmUp ::
-- | warm up sound id
SoundID ->
ChainEffect
withWarmUp soundID f item cr w
withWarmUp soundID f ams item cr w
| curWarmUp < maxWarmUp && crWeaponReady cr =
w
& pointertoitem . itUse . heldDelay . warmTime +~ 2
@@ -210,7 +210,7 @@ withWarmUp soundID f item cr w
| otherwise =
w
& pointertoitem . itUse . heldDelay . warmTime .~ maxWarmUp
& f item cr
& f ams item cr
where
cid = _crID cr
itRef = cr ^?! crManipulation . manObject . inInventory . ispItem -- unsafe!! TODO change
@@ -221,13 +221,13 @@ withWarmUp soundID f item cr w
withSoundItemChoiceStart ::
(Item -> SoundID) ->
ChainEffect
withSoundItemChoiceStart soundf f it cr =
withSoundItemChoiceStart soundf f ams it cr =
soundMultiFrom
[CrWeaponSound cid 0, CrWeaponSound cid 1, CrWeaponSound cid 2]
(_crPos cr)
(soundf it)
Nothing
. f it cr
. f ams it cr
where
cid = _crID cr
@@ -238,9 +238,9 @@ withSoundStart ::
-- | Sound id
SoundID ->
ChainEffect
withSoundStart soundid f item cr =
withSoundStart soundid f ams item cr =
soundMultiFrom [CrWeaponSound cid 0, CrWeaponSound cid 1, CrWeaponSound cid 2] (_crPos cr) soundid Nothing
. f item cr
. f ams item cr
where
cid = _crID cr
@@ -251,9 +251,9 @@ withSoundContinue ::
-- | Sound id
SoundID ->
ChainEffect
withSoundContinue soundid f item cr =
withSoundContinue soundid f ams item cr =
soundContinue (CrWeaponSound cid 0) (_crPos cr) soundid Nothing
. f item cr
. f ams item cr
where
cid = _crID cr
@@ -266,9 +266,9 @@ withSoundForI ::
-- | Frames to play
Int ->
ChainEffect
withSoundForI soundid playTime f item cr =
withSoundForI soundid playTime f ams item cr =
soundContinue (CrWeaponSound (_crID cr) 0) (_crPos cr) soundid (Just playTime)
. f item cr
. f ams item cr
{- | Adds a sound to a creature based world effect.
The sound is emitted from the creature's position.
@@ -281,21 +281,21 @@ withSoundForVol ::
-- | Frames to play
Int ->
ChainEffect
withSoundForVol vol soundid playTime f item cr =
withSoundForVol vol soundid playTime f ams item cr =
soundContinueVol vol (CrWeaponSound (_crID cr) 0) (_crPos cr) soundid (Just playTime)
. f item cr
. f ams item cr
afterRecoil ::
-- | Recoil amount
Float ->
ChainEffect
afterRecoil recoilAmount eff item cr = eff item (pushback cr) . over (cWorld . lWorld . creatures . ix cid) pushback
afterRecoil recoilAmount eff ams item cr = eff ams item (pushback cr) . over (cWorld . lWorld . creatures . ix cid) pushback
where
cid = _crID cr
pushback = over crPos (+.+ rotateV (_crDir cr) (V2 ((- recoilAmount) / _crMass cr) 0))
withRecoil :: ChainEffect
withRecoil eff it cr = eff it cr . over (cWorld . lWorld . creatures . ix cid) pushback
withRecoil eff ams it cr = eff ams it cr . over (cWorld . lWorld . creatures . ix cid) pushback
where
cid = _crID cr
recoilAmount = fromMaybe 0 $ it ^? itUse . heldParams . recoil
@@ -308,8 +308,8 @@ withSidePushI ::
-- | Maximal possible side push amount
Float ->
ChainEffect
withSidePushI maxSide eff item cr w =
eff item (push cr) $
withSidePushI maxSide eff ams item cr w =
eff ams item (push cr) $
w
& cWorld . lWorld . creatures . ix cid %~ push
& randGen .~ g
@@ -327,8 +327,8 @@ withSidePushAfterI ::
-- | Maximal possible side push amount
Float ->
ChainEffect
withSidePushAfterI maxSide eff item cr w =
over (cWorld . lWorld . creatures . ix cid) push . eff item cr $
withSidePushAfterI maxSide eff ams item cr w =
over (cWorld . lWorld . creatures . ix cid) push . eff ams item cr $
w
& randGen .~ g
where
@@ -337,29 +337,27 @@ withSidePushAfterI maxSide eff item cr w =
(pushAmount, g) = randomR (- maxSide, maxSide) $ _randGen w
useAllAmmo :: ChainEffect
useAllAmmo eff item cr = fromMaybe id $ do
invid <- item ^? itLocation . ipInvID
return $ eff item cr
. (cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix (invid + 1)
. itUse . amagLoadStatus . iaLoaded .~ 0)
useAllAmmo eff ams item cr w = fromMaybe w $ do
let invids = ams ^.. traverse . itLocation . ipInvID
return . eff ams item cr $ foldl' f w invids
where
f w' invid = w' & cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix invid
. itUse . amagLoadStatus . iaLoaded .~ 0
useAmmoUpTo :: Int -> ChainEffect
useAmmoUpTo amAmount eff itm cr = fromMaybe id $ do
invid <- itm ^? itLocation . ipInvID
return $ eff itm cr
. ( cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix (invid + 1) . itUse . amagLoadStatus . iaLoaded
useAmmoUpTo amAmount eff ams itm cr = fromMaybe id $ do
x <- ams ^? ix 0 . itUse . amagLoadStatus . iaLoaded
invid <- ams ^? ix 0 . itLocation . ipInvID
return $ eff ams itm cr
. ( cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix invid . itUse . amagLoadStatus . iaLoaded
%~ (max 0 . subtract amAmount)
)
useAmmoAmount :: Int -> ChainEffect
useAmmoAmount amAmount eff item cr =
eff item cr
. (cWorld . lWorld . creatures . ix (_crID cr) . crInv %~ useAmmoAmount' itref amAmount)
where
itref = cr ^?! crManipulation . manObject . inInventory . ispItem -- unsafe!! TODO change
useAmmoAmount' :: Int -> Int -> IM.IntMap Item -> IM.IntMap Item
useAmmoAmount' itref x inv = inv & ix (itref + 1) . itUse . amagLoadStatus . iaLoaded -~ x
useAmmoAmount amAmount eff ams item cr = fromMaybe id $ do
invid <- ams ^? ix 0 . itLocation . ipInvID
return $ eff ams item cr
. (cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix invid . itUse . amagLoadStatus . iaLoaded -~ amAmount)
-- . crInv . ix itRef . itUse . heldConsumption . laSource
@@ -367,8 +365,8 @@ useAmmoAmount' itref x inv = inv & ix (itref + 1) . itUse . amagLoadStatus . iaL
Applies a world effect after an item use cooldown check.
-}
useTimeCheck :: ChainEffect
useTimeCheck f item cr w = case item ^? itUse . heldDelay . rateTime of
Just 0 -> f item cr $ setUseTime w
useTimeCheck f ams item cr w = case item ^? itUse . heldDelay . rateTime of
Just 0 -> f ams item cr $ setUseTime w
_ -> w
where
cid = _crID cr
@@ -378,8 +376,8 @@ useTimeCheck f item cr w = case item ^? itUse . heldDelay . rateTime of
-- | Applies a world effect after a hammer position check.
blCheck :: ChainEffect
blCheck f it cr w = case w ^? input . mouseButtons . ix SDL.ButtonLeft of
Just 0 -> f it cr w
blCheck f ams it cr w = case w ^? input . mouseButtons . ix SDL.ButtonLeft of
Just 0 -> f ams it cr w
_ -> w
{- | Applies a world effect after a hammer position check.
@@ -423,52 +421,52 @@ shootL f item cr w
-- reloadCondition = _laLoaded (_itConsumption item) == 0
withItem :: (Item -> ChainEffect) -> ChainEffect
withItem g f it = g it f it
withItem g f ams it = g it f ams it
-- not ideal
withItemUpdateFirst :: (Item -> Item) -> ChainEffect
withItemUpdateFirst up f it cr = f (up it) cr . (cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix itRef %~ up)
withItemUpdateFirst up f ams it cr = f ams (up it) cr . (cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix itRef %~ up)
where
itRef = cr ^?! crManipulation . manObject . inInventory . ispItem -- unsafe!! TODO change
withItemUpdate :: (Item -> Item) -> (Item -> ChainEffect) -> ChainEffect
withItemUpdate up g f it cr = g it f it cr . (cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix itRef %~ up)
withItemUpdate up g f ams it cr = g it f ams it cr . (cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix itRef %~ up)
where
itRef = cr ^?! crManipulation . manObject . inInventory . ispItem -- unsafe!! TODO change
withTempLight :: Int -> Float -> V3 Float -> ChainEffect
withTempLight time rad col eff item cr =
eff item cr
withTempLight time rad col eff ams item cr =
eff ams item cr
. over (cWorld . lWorld . tempLightSources) (theTLS :)
where
theTLS = tlsTimeRadColPos time rad col (V3 x y 10)
V2 x y = _crPos cr +.+ 15 *.* unitVectorAtAngle (_crDir cr)
modClock :: Int -> ChainEffect -> ChainEffect
modClock n chainEff eff it cr w
| (w ^. cWorld . lWorld . lClock) `mod` n == 0 = chainEff eff it cr w
| otherwise = eff it cr w
modClock n chainEff eff ams it cr w
| (w ^. cWorld . lWorld . lClock) `mod` n == 0 = chainEff eff ams it cr w
| otherwise = eff ams it cr w
withFlare :: ChainEffect
withFlare f it cr =
withFlare f ams it cr =
makeTlsTimeRadColPos 2 100 (V3 1 1 0.5) (cpos `v2z` 20)
-- . muzFlareAt (V4 5 5 0 2) (cpos `v2z` 20) cdir
. muzFlareAt (V4 10 10 1 3) (cpos `v2z` 20) cdir
. muzFlareAt (V4 10 10 1 3) (cpos `v2z` 20) cdir
. muzFlareAt (V4 10 10 1 3) (cpos `v2z` 20) cdir
. f it cr
. f ams it cr
where
cdir = _crDir cr
cpos = _crPos cr
withMuzFlare :: ChainEffect
withMuzFlare f itm cr =
withMuzFlare f ams itm cr =
makeTlsTimeRadColPos 2 100 (V3 1 1 0.5) (cpos `v2z` 20)
-- . muzFlareAt (V4 5 5 0 2) (cpos `v2z` 20) cdir
. muzFlareAt (V4 10 10 1 3) (cpos `v2z` 20) cdir
. muzFlareAt (V4 10 10 1 3) (cpos `v2z` 20) cdir
. muzFlareAt (V4 10 10 1 3) (cpos `v2z` 20) cdir
. f itm cr
. f ams itm cr
where
cdir = _crDir cr
cpos = _crPos cr + rotateV (_crDir cr) (_mzPos brl + aimingWeaponZeroPos cr itm)
@@ -486,7 +484,7 @@ withCrPos :: (Point3 -> World -> World) -> ChainEffect
withCrPos = withCrPosShift (V2 0 0)
withCrPosShift :: Point2 -> (Point3 -> World -> World) -> ChainEffect
withCrPosShift p g f it cr = g thepos . f it cr
withCrPosShift p g f ams it cr = g thepos . f ams it cr
where
thepos = (_crPos cr +.+ rotateV (_crDir cr) p) `v2z` 20
@@ -495,7 +493,7 @@ withRandomDirI ::
-- | Max possible rotation
Float ->
ChainEffect
withRandomDirI acc f it cr w = f it (cr & crDir +~ a) $ set randGen g w
withRandomDirI acc f ams it cr w = f ams it (cr & crDir +~ a) $ set randGen g w
where
(a, g) = randomR (- acc, acc) $ _randGen w
@@ -503,38 +501,38 @@ withOldDir ::
-- | The fraction of the old direction
Float ->
ChainEffect
withOldDir aFrac eff item cr =
eff item (cr & crDir %~ tweenAngles aFrac (_crOldDir cr))
withOldDir aFrac eff ams item cr =
eff ams item (cr & crDir %~ tweenAngles aFrac (_crOldDir cr))
withRandomItemUpdate ::
State StdGen (Item -> Item) ->
ChainEffect
withRandomItemUpdate randItUp eff it cr w = eff (f it) cr $ w & randGen .~ g
withRandomItemUpdate randItUp eff ams it cr w = eff ams (f it) cr $ w & randGen .~ g
where
(f, g) = runState randItUp (_randGen w)
withRandomItemParams :: State StdGen (ItemParams -> ItemParams) -> ChainEffect
withRandomItemParams rip eff it cr w = eff (it & itParams %~ f) cr $ w & randGen .~ g
withRandomItemParams rip eff ams it cr w = eff ams (it & itParams %~ f) cr $ w & randGen .~ g
where
(f, g) = runState rip (_randGen w)
withRandomItem :: State StdGen (Item -> Item) -> ChainEffect
withRandomItem rip eff it cr w = eff (f it) cr $ w & randGen .~ g
withRandomItem rip eff ams it cr w = eff ams (f it) cr $ w & randGen .~ g
where
(f, g) = runState rip (_randGen w)
withPositionOffset ::
(Item -> Creature -> World -> (Point2, Float)) ->
ChainEffect
withPositionOffset h f it cr w = f it (cr & crPos .+.+~ p & crDir +~ a) w
withPositionOffset h f ams it cr w = f ams it (cr & crPos .+.+~ p & crDir +~ a) w
where
(p, a) = h it cr w
withPositionWallCheck ::
(Item -> Creature -> World -> Point2) ->
ChainEffect
withPositionWallCheck h f it cr w
| hasLOS p (_crPos cr) w = f it (cr & crPos .~ p) w
withPositionWallCheck h f ams it cr w
| hasLOS p (_crPos cr) w = f ams it (cr & crPos .~ p) w
| otherwise = w
where
p = h it cr w
@@ -542,15 +540,15 @@ withPositionWallCheck h f it cr w
withPosDirWallCheck ::
(Item -> Creature -> World -> (Point2, Float)) ->
ChainEffect
withPosDirWallCheck h f it cr w
| hasLOS p (_crPos cr) w = f it (cr & crPos .~ p & crDir .~ a) w
withPosDirWallCheck h f ams it cr w
| hasLOS p (_crPos cr) w = f ams it (cr & crPos .~ p & crDir .~ a) w
| otherwise = w
where
(p, a) = h it cr w
-- | Apply the effect to a translated creature.
withRandomOffset :: ChainEffect
withRandomOffset f item cr w = f item (cr & crPos %~ (+.+ offV)) $ set randGen g w
withRandomOffset f ams item cr w = f ams item (cr & crPos %~ (+.+ offV)) $ set randGen g w
where
(offsetVal, g) = randomR (- offsetAmount, offsetAmount) $ _randGen w
offV = rotateV (_crDir cr) (V2 0 offsetVal)
@@ -561,15 +559,15 @@ torqueBefore ::
-- | Max possible rotation
Float ->
ChainEffect
torqueBefore torque feff item cr w
torqueBefore torque feff ams item cr w
| cid == 0 =
feff item (cr & crDir +~ rot) $
feff ams item (cr & crDir +~ rot) $
w
& randGen .~ g
& cWorld . lWorld . creatures . ix cid . crDir +~ rot
& wCam . camRot +~ rot
& rotateScope
| otherwise = feff item cr $ set randGen g $ over (cWorld . lWorld . creatures . ix cid . crDir) (+ rot) w
| otherwise = feff ams item cr $ set randGen g $ over (cWorld . lWorld . creatures . ix cid . crDir) (+ rot) w
where
cid = _crID cr
(rot, g) = randomR (- torque, torque) $ _randGen w
@@ -586,15 +584,15 @@ torqueBeforeAtLeast ::
-- | Extra possible rotation
Float ->
ChainEffect
torqueBeforeAtLeast minTorque exTorque feff item cr w
torqueBeforeAtLeast minTorque exTorque feff ams item cr w
| cid == 0 =
feff item (cr & crDir +~ rot') $
feff ams item (cr & crDir +~ rot') $
w
& randGen .~ g
& cWorld . lWorld . creatures . ix cid . crDir +~ rot'
& wCam . camRot +~ rot'
& rotateScope
| otherwise = feff item cr $ set randGen g $ over (cWorld . lWorld . creatures . ix cid . crDir) (+ rot') w
| otherwise = feff ams item cr $ set randGen g $ over (cWorld . lWorld . creatures . ix cid . crDir) (+ rot') w
where
cid = _crID cr
(rot, g) = randomR (- exTorque, exTorque) $ _randGen w
@@ -607,11 +605,11 @@ torqueBeforeAtLeast minTorque exTorque feff item cr w
-- | Rotate a randomly creature after applying an effect.
withTorqueAfter :: ChainEffect
withTorqueAfter feff item cr w
withTorqueAfter feff ams item cr w
-- | cid == 0 = rotateScope . set randGen g $ over (wCam . camRot) (+ rot) $ feff item cr w
-- | otherwise = set randGen g $ over (cWorld . lWorld . creatures . ix cid . crDir) (+ rot) $ feff item cr w
| cid == 0 = w
& feff item cr
& feff ams item cr
& wCam . camRot +~ rot
& rotateScope
& randGen .~ g
@@ -631,8 +629,8 @@ sideEffectOnFrame ::
Int ->
(Item -> Creature -> WdWd) ->
ChainEffect
sideEffectOnFrame i sf f it cr w =
f it cr w
sideEffectOnFrame i sf f ams it cr w =
f ams it cr w
& cWorld . lWorld . delayedEvents .:~ (i, sf it cr)
torqueSideEffect :: Float -> Item -> Creature -> World -> World
@@ -649,8 +647,8 @@ torqueSideEffect torque _ cr w
-- pump the updated creature into the chain in later frames
repeatOnFrames :: [Int] -> HeldMod -> ChainEffect
--repeatOnFrames is hm f it cr w = f it cr w
repeatOnFrames is hm f it cr w =
f it cr $
repeatOnFrames is hm f ams it cr w =
f ams it cr $
w
& cWorld . lWorld . delayedEvents .++~ (is <&> (,WdWdFromItCrixWdWd (it & itUse . heldMods .~ hm) (_crID cr) ItCrWdItemEffect))
@@ -660,18 +658,18 @@ repeatOnFrames is hm f it cr w =
-- return $ f it cr' w'
duplicateLoaded :: ChainEffect
duplicateLoaded eff it cr w = foldr f w (take numbul [1::Int .. ])
duplicateLoaded eff ams it cr w = foldr f w (take numbul [1::Int .. ])
where
f _ = eff it cr
f _ = eff ams it cr
numbul = fromMaybe 0 $ do
i <- cr ^? crManipulation . manObject . inInventory . ispItem
cr ^? crInv . ix (i+1) . itUse . amagLoadStatus . iaLoaded
i <- ams ^? ix 0 . itLocation . ipInvID
cr ^? crInv . ix i . itUse . amagLoadStatus . iaLoaded
duplicateNumBarrels :: Int -> ChainEffect
duplicateNumBarrels n eff itm cr w = foldr f w (take n $ itm ^?! itUse . heldAim . aimMuzzles)
duplicateNumBarrels n eff ams itm cr w = foldr f w (take n $ itm ^?! itUse . heldAim . aimMuzzles)
where
f brl w' =
eff
eff ams
itm
( cr & crPos +~ rotateV (_crDir cr) (_mzPos brl + aimingWeaponZeroPos cr itm)
& crDir +~ (_mzRot brl + a)
@@ -682,20 +680,20 @@ duplicateNumBarrels n eff itm cr w = foldr f w (take n $ itm ^?! itUse . heldAim
(a,g) = randomR (-inacc,inacc) $ _randGen w'
duplicateLoadedBarrels :: ChainEffect
duplicateLoadedBarrels eff itm cr = duplicateNumBarrels numbul eff itm cr
duplicateLoadedBarrels eff ams itm cr = duplicateNumBarrels numbul eff ams itm cr
where
numbul :: Int
numbul = fromMaybe 0 $ do
i <- cr ^? crManipulation . manObject . inInventory . ispItem
cr ^? crInv . ix (i+1) . itUse . amagLoadStatus . iaLoaded
i <- ams ^? ix 0 . itLocation . ipInvID
cr ^? crInv . ix i . itUse . amagLoadStatus . iaLoaded
duplicateOffsetsFocus :: [Float] -> ChainEffect
duplicateOffsetsFocus xs eff item cr w = foldr f w poss
duplicateOffsetsFocus xs eff ams item cr w = foldr f w poss
where
poss :: [V2 Float]
poss = map (rotateV (_crDir cr) . V2 0) xs
f pos =
eff item $
eff ams item $
cr
& crPos %~ (+.+ pos)
& crDir .~ thedir pos
@@ -709,12 +707,12 @@ duplicateOffsetsFocus xs eff item cr w = foldr f w poss
thedir pos = argV (mouseWorldPos (w ^. input) (w ^. wCam) -.- (_crPos cr +.+ pos))
duplicateItem :: (Item -> [Item]) -> ChainEffect
duplicateItem fit eff itm cr w = foldr f w (fit itm)
duplicateItem fit eff ams itm cr w = foldr f w (fit itm)
where
f itm' = eff itm' cr
f itm' = eff ams itm' cr
duplicateOffsetsV2 :: [Point2] -> ChainEffect
duplicateOffsetsV2 xs eff item cr w = foldr f w poss
duplicateOffsetsV2 xs eff ams item cr w = foldr f w poss
where
poss = map (rotateV (_crDir cr)) xs
f pos = eff item (cr & crPos +.+.~ pos)
f pos = eff ams item (cr & crPos +.+.~ pos)
+87 -87
View File
@@ -4394,7 +4394,7 @@ airlockZ src/Dodge/Room/Airlock.hs 91;" f
allHotkeys src/Dodge/Creature/YourControl.hs 52;" f
allVisibleWalls src/Dodge/Base/Collide.hs 131;" f
alongSegBy src/Geometry.hs 43;" f
ammoCheckI src/Dodge/Item/Weapon/TriggerType.hs 143;" f
ammoCheckI src/Dodge/Item/Weapon/TriggerType.hs 144;" f
ammoTweakStrings src/Dodge/Render/HUD.hs 268;" f
amr src/Dodge/Item/Held/Rod.hs 50;" f
amr src/Dodge/Item/Weapon/BulletGun/Rod.hs 56;" f
@@ -4484,7 +4484,7 @@ 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 55;" f
autoPistol src/Dodge/Item/Held/Stick.hs 53;" 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 78;" f
@@ -4509,7 +4509,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 16;" f
bangStick src/Dodge/Item/Weapon/BulletGun/Stick.hs 17;" f
bangStickSoundChoice src/Dodge/HeldUse.hs 514;" f
bangStickSoundChoice src/Dodge/HeldUse.hs 515;" 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
@@ -4548,7 +4548,7 @@ basicPerceptionUpdateR src/Dodge/Creature/AlertLevel.hs 17;" f
basicTerminal src/Dodge/Terminal.hs 32;" f
battery src/Dodge/Item/Ammo.hs 69;" f
batteryGuns src/Dodge/Combine/Combinations.hs 220;" f
batteryModules src/Dodge/Item/Held/BatteryGuns.hs 116;" f
batteryModules src/Dodge/Item/Held/BatteryGuns.hs 111;" f
batteryPack src/Dodge/Item/Equipment.hs 58;" f
belowNumX src/Dodge/Combine/Graph.hs 77;" f
beltMag src/Dodge/Item/Ammo.hs 42;" f
@@ -4556,7 +4556,7 @@ bezierGun src/Dodge/Item/Weapon/Bezier.hs 24;" f
bfsNodePoints src/Dodge/Path.hs 58;" f
bfsThenReturn src/Dodge/Creature/ReaderUpdate.hs 233;" f
bindFBO src/Render.hs 244;" f
blCheck src/Dodge/Item/Weapon/TriggerType.hs 380;" f
blCheck src/Dodge/Item/Weapon/TriggerType.hs 378;" f
black src/Color.hs 27;" f
blank src/Picture/Base.hs 59;" f
blinkAcrossChallenge src/Dodge/Room/BlinkAcross.hs 14;" f
@@ -4583,7 +4583,7 @@ blood6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 500;" f
blood7S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 342;" f
blood8S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 330;" f
bloodPuddleAt src/Dodge/Creature/State.hs 133;" f
blowTorch src/Dodge/Item/Held/SprayGuns.hs 46;" f
blowTorch src/Dodge/Item/Held/SprayGuns.hs 44;" f
blowTorch src/Dodge/Item/Weapon/SprayGuns.hs 49;" f
blue src/Color.hs 16;" f
blunderbuss src/Dodge/Item/Held/Cone.hs 28;" f
@@ -4607,7 +4607,7 @@ boxSurfaces src/Shader/Poke.hs 269;" f
boxSurfacesIndices src/Shader/Poke.hs 282;" f
boxXYZ src/Polyhedra.hs 93;" f
boxXYZnobase src/Polyhedra.hs 79;" f
brainHat src/Dodge/Item/Equipment.hs 97;" f
brainHat src/Dodge/Item/Equipment.hs 99;" f
branchRectWith src/Dodge/Room/Branch.hs 15;" f
branchWith src/Dodge/Room/Room.hs 69;" f
bres src/Dodge/Base/Zone.hs 80;" f
@@ -4622,7 +4622,7 @@ 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
bulSelTweak src/Dodge/TweakBullet.hs 15;" f
bulletBeltBracer src/Dodge/Item/Equipment.hs 82;" 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
@@ -4640,7 +4640,7 @@ canAttachTargeting src/Dodge/Item/Display.hs 33;" 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 509;" f
caneStickSoundChoice src/Dodge/HeldUse.hs 510;" f
cardList src/Dodge/Base/CardinalPoint.hs 6;" f
cardVec src/Dodge/Base/CardinalPoint.hs 9;" f
cardinalVectors src/Dodge/FloorItem.hs 38;" f
@@ -4794,8 +4794,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 523;" f
coneRandItemUpdate src/Dodge/HeldUse.hs 517;" f
coneRandItemParams src/Dodge/HeldUse.hs 524;" f
coneRandItemUpdate src/Dodge/HeldUse.hs 518;" 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
@@ -5012,11 +5012,11 @@ defaultAimingCrit src/Dodge/Default/Creature.hs 131;" f
defaultApplyDamage src/Dodge/Creature/Damage.hs 20;" f
defaultArcStep src/Dodge/Tesla/Arc/Default.hs 15;" f
defaultAudition src/Dodge/Default/Creature.hs 99;" f
defaultAutoBatteryGun src/Dodge/Item/Held/BatteryGuns.hs 123;" f
defaultAutoBatteryGun src/Dodge/Item/Held/BatteryGuns.hs 118;" f
defaultAutoWall src/Dodge/Default/Door.hs 15;" f
defaultBangCane src/Dodge/Item/Held/Cane.hs 18;" f
defaultBangCane src/Dodge/Item/Weapon/BulletGun/Cane.hs 16;" f
defaultBatteryGun src/Dodge/Item/Held/BatteryGuns.hs 111;" f
defaultBatteryGun src/Dodge/Item/Held/BatteryGuns.hs 106;" f
defaultBlock src/Dodge/Default/Block.hs 5;" f
defaultBounds src/Dodge/Bounds.hs 13;" f
defaultBounds src/Dodge/Data/Bounds.hs 20;" f
@@ -5373,16 +5373,16 @@ dropExcept src/Dodge/Creature/Action.hs 178;" f
dropItem src/Dodge/Creature/Action.hs 183;" f
dropItemKey src/Dodge/Config/KeyConfig.hs 24;" f
drumMag src/Dodge/Item/Ammo.hs 36;" f
dualBeam src/Dodge/Item/Held/BatteryGuns.hs 141;" f
dualBeam src/Dodge/Item/Held/BatteryGuns.hs 136;" f
dualBeamPic src/Dodge/Item/Draw/SPic.hs 463;" f
dualRayAt src/Dodge/Item/Weapon/BatteryGuns.hs 194;" f
dummyMenuOption src/Dodge/Menu/Option.hs 81;" f
duplicateItem src/Dodge/Item/Weapon/TriggerType.hs 711;" f
duplicateLoaded src/Dodge/Item/Weapon/TriggerType.hs 662;" f
duplicateLoadedBarrels src/Dodge/Item/Weapon/TriggerType.hs 684;" f
duplicateNumBarrels src/Dodge/Item/Weapon/TriggerType.hs 670;" f
duplicateOffsetsFocus src/Dodge/Item/Weapon/TriggerType.hs 692;" f
duplicateOffsetsV2 src/Dodge/Item/Weapon/TriggerType.hs 716;" f
duplicateItem src/Dodge/Item/Weapon/TriggerType.hs 709;" f
duplicateLoaded src/Dodge/Item/Weapon/TriggerType.hs 660;" f
duplicateLoadedBarrels src/Dodge/Item/Weapon/TriggerType.hs 682;" f
duplicateNumBarrels src/Dodge/Item/Weapon/TriggerType.hs 668;" f
duplicateOffsetsFocus src/Dodge/Item/Weapon/TriggerType.hs 690;" f
duplicateOffsetsV2 src/Dodge/Item/Weapon/TriggerType.hs 714;" f
ebFlicker src/Dodge/EnergyBall.hs 94;" f
edgeFormatting src/Dodge/Combine/Graph.hs 119;" f
edgeToPic src/Dodge/Debug/Picture.hs 392;" f
@@ -5468,7 +5468,7 @@ findReverseEdgeList src/Polyhedra.hs 56;" f
findWallFreeDropPoint src/Dodge/FloorItem.hs 46;" f
findWallsInPolygon src/Dodge/LevelGen/StaticWalls/Deprecated.hs 78;" f
fireLoudS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 504;" f
fireRemoteShell src/Dodge/HeldUse.hs 484;" f
fireRemoteShell src/Dodge/HeldUse.hs 485;" f
fireS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 332;" f
fireShell src/Dodge/Projectile/Create.hs 16;" f
fireSound src/Dodge/SoundLogic/Synonyms.hs 4;" f
@@ -5481,13 +5481,13 @@ flDamageInArea src/Dodge/Flame.hs 110;" f
flFlicker src/Dodge/Flame.hs 124;" f
flameBeamCombine src/Dodge/Beam.hs 24;" f
flameShield src/Dodge/Item/Equipment.hs 37;" f
flameSpitter src/Dodge/Item/Held/SprayGuns.hs 26;" f
flameSpitter src/Dodge/Item/Held/SprayGuns.hs 24;" f
flameSpitter src/Dodge/Item/Weapon/SprayGuns.hs 27;" f
flameThrower src/Dodge/Item/Held/SprayGuns.hs 67;" f
flameThrower src/Dodge/Item/Held/SprayGuns.hs 65;" f
flameThrower src/Dodge/Item/Weapon/SprayGuns.hs 70;" f
flameTorrent src/Dodge/Item/Held/SprayGuns.hs 35;" f
flameTorrent src/Dodge/Item/Held/SprayGuns.hs 33;" f
flameTorrent src/Dodge/Item/Weapon/SprayGuns.hs 38;" f
flameWall src/Dodge/Item/Held/SprayGuns.hs 51;" f
flameWall src/Dodge/Item/Held/SprayGuns.hs 49;" f
flameWall src/Dodge/Item/Weapon/SprayGuns.hs 54;" f
flamerPic src/Dodge/Item/Draw/SPic.hs 407;" f
flareCircleAt src/Dodge/WorldEvent/Flash.hs 46;" f
@@ -5579,6 +5579,7 @@ geometryTests test/Spec.hs 17;" f
geometryUnitTests test/Spec.hs 22;" f
geqConstr src/SameConstr.hs 21;" f
getAmmoMagazine src/Dodge/HeldUse.hs 462;" f
getAmmoMags src/Dodge/Creature/Impulse/UseItem.hs 35;" f
getArguments src/Dodge/Update/Scroll.hs 147;" f
getArguments' src/Dodge/Update/Scroll.hs 135;" f
getAvailableListLines src/Dodge/SelectionList.hs 11;" f
@@ -5656,7 +5657,7 @@ hackOutline src/Dodge/Render/Outline.hs 5;" f
halfHeight src/Dodge/Base/Window.hs 48;" f
halfWidth src/Dodge/Base/Window.hs 48;" f
haltSound src/Dodge/SoundLogic.hs 37;" f
hammerCheckL src/Dodge/Item/Weapon/TriggerType.hs 388;" f
hammerCheckL src/Dodge/Item/Weapon/TriggerType.hs 386;" f
handleEvent src/Dodge/Event.hs 27;" f
handleHotkeys src/Dodge/Creature/YourControl.hs 42;" f
handleKeyboardEvent src/Dodge/Event/Input.hs 22;" f
@@ -5676,10 +5677,10 @@ hasFrontArmour src/Dodge/Creature/Property.hs 19;" f
hasFrontArmour src/Dodge/Creature/Test.hs 112;" f
hasLOS src/Dodge/Base/Collide.hs 200;" f
hasLOSIndirect src/Dodge/Base/Collide.hs 214;" f
hat src/Dodge/Item/Equipment.hs 103;" f
hat src/Dodge/Item/Equipment.hs 105;" f
hatCombinations src/Dodge/Combine/Combinations.hs 31;" f
head src/DoubleStack.hs 14;" f
headLamp src/Dodge/Item/Equipment.hs 116;" f
headLamp src/Dodge/Item/Equipment.hs 118;" f
headLampShape src/Dodge/Item/Draw/SPic.hs 486;" f
heal src/Dodge/Item/Consumable.hs 17;" f
heal25 src/Dodge/Item/Consumable.hs 14;" f
@@ -5859,7 +5860,7 @@ itemDisplay src/Dodge/Item/Display.hs 47;" f
itemDisplayOffset src/Dodge/Item/Display.hs 21;" f
itemDisplayPad src/Dodge/Item/Display.hs 59;" f
itemEffect src/Dodge/Creature/Action/UseItem.hs 28;" f
itemEffect src/Dodge/Creature/Impulse/UseItem.hs 35;" f
itemEffect src/Dodge/Creature/Impulse/UseItem.hs 40;" f
itemEquipPict src/Dodge/Item/Draw.hs 17;" f
itemFromAmmoMag src/Dodge/Item.hs 29;" f
itemFromAttachType src/Dodge/Item.hs 38;" f
@@ -5888,7 +5889,7 @@ ixZone src/Dodge/Base/Zone.hs 197;" f
jShape src/Dodge/Placement/Instance/LightSource.hs 86;" f
jShape src/Dodge/Placements/LightSource.hs 43;" f
jaggedShape src/Dodge/Block/Debris.hs 191;" f
jetPack src/Dodge/Item/Equipment.hs 90;" f
jetPack src/Dodge/Item/Equipment.hs 92;" f
jps0' src/Dodge/LevelGen/Data.hs 60;" f
jps0' src/Dodge/LevelGen/PlacementHelper.hs 60;" f
jps0PushPS src/Dodge/LevelGen/Data.hs 63;" f
@@ -5901,7 +5902,7 @@ jsps0J src/Dodge/LevelGen/Data.hs 48;" f
jsps0J src/Dodge/LevelGen/PlacementHelper.hs 48;" f
jspsJ src/Dodge/LevelGen/Data.hs 45;" f
jspsJ src/Dodge/LevelGen/PlacementHelper.hs 45;" f
jumpLegs src/Dodge/Item/Equipment.hs 132;" f
jumpLegs src/Dodge/Item/Equipment.hs 134;" f
justify src/Justify.hs 9;" f
keyCard src/Dodge/Item/Held/Utility.hs 20;" f
keyCard src/Dodge/Item/PassKey.hs 8;" f
@@ -5925,18 +5926,18 @@ lampCoverWhen src/Dodge/Placement/Instance/LightSource/Cover.hs 19;" f
lampCrSPic src/Dodge/Render/ShapePicture.hs 93;" f
lasBeamCombine src/Dodge/Beam.hs 31;" f
lasCenSensEdge src/Dodge/Room/LasTurret.hs 112;" f
lasCircle src/Dodge/Item/Held/BatteryGuns.hs 128;" f
lasCircle src/Dodge/Item/Held/BatteryGuns.hs 123;" f
lasDronesPic src/Dodge/Item/Weapon/Drone.hs 22;" f
lasGun src/Dodge/Item/Held/BatteryGuns.hs 36;" f
lasGunPic src/Dodge/Item/Draw/SPic.hs 449;" f
lasGunTweak src/Dodge/Item/Held/BatteryGuns.hs 67;" f
lasGunTweak src/Dodge/Item/Held/BatteryGuns.hs 65;" f
lasRayAt src/Dodge/Beam.hs 62;" f
lasSensorTurretTest src/Dodge/Room/LasTurret.hs 105;" f
lasTunnel src/Dodge/Room/LasTurret.hs 124;" f
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 102;" f
lasWide src/Dodge/Item/Held/BatteryGuns.hs 97;" f
lasWideRate src/Dodge/HeldUse.hs 377;" f
latchkey src/Dodge/Item/Held/Utility.hs 23;" f
latchkey src/Dodge/Item/PassKey.hs 14;" f
@@ -6006,7 +6007,7 @@ loadingScreen src/Dodge/Menu/Loading.hs 7;" f
loadme src/Dodge/Debug/Terminal.hs 135;" f
lockAndKeyRoomList src/Dodge/Room/LockAndKeyList.hs 11;" f
lockInv src/Dodge/Inventory/Lock.hs 6;" f
lockInvFor src/Dodge/Item/Weapon/TriggerType.hs 89;" f
lockInvFor src/Dodge/Item/Weapon/TriggerType.hs 90;" f
lockRoomKeyItems src/Dodge/LockAndKey.hs 25;" f
lockRoomMultiItems src/Dodge/LockAndKey.hs 14;" f
lockedStart src/Dodge/Room/RunPast.hs 34;" f
@@ -6035,7 +6036,7 @@ ltAutoCrit src/Dodge/Creature/LtAutoCrit.hs 13;" f
machineAddSound src/Dodge/Machine.hs 49;" f
machineGun src/Dodge/Item/Held/Rod.hs 68;" f
machineGun src/Dodge/Item/Weapon/BulletGun/Rod.hs 79;" f
machinePistol src/Dodge/Item/Held/Stick.hs 62;" f
machinePistol src/Dodge/Item/Held/Stick.hs 60;" 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
@@ -6145,7 +6146,7 @@ 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 531;" f
mcShootLaser src/Dodge/HeldUse.hs 532;" f
mcTriggerVal src/Dodge/Machine/Update.hs 75;" f
mcTypeUpdate src/Dodge/Machine/Update.hs 24;" f
mcUseHeld src/Dodge/HeldUse.hs 380;" f
@@ -6221,7 +6222,7 @@ mntLight src/Dodge/Placement/Instance/LightSource.hs 154;" f
mntLight src/Dodge/Placements/LightSource.hs 89;" f
mntLightLnkCond src/Dodge/Placement/Instance/LightSource.hs 159;" f
mntLightLnkCond src/Dodge/Placements/LightSource.hs 94;" f
modClock src/Dodge/Item/Weapon/TriggerType.hs 447;" f
modClock src/Dodge/Item/Weapon/TriggerType.hs 445;" f
modTo src/Geometry/Zone.hs 10;" f
modifierKey src/Dodge/Config/KeyConfig.hs 34;" f
moduleAttachPosition src/Dodge/Item/Module.hs 6;" f
@@ -6384,9 +6385,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 444;" f
overNozzles src/Dodge/HeldUse.hs 424;" f
overNozzles' src/Dodge/HeldUse.hs 432;" f
overNozzle src/Dodge/HeldUse.hs 443;" f
overNozzles src/Dodge/HeldUse.hs 421;" f
overNozzles' src/Dodge/HeldUse.hs 430;" f
overPos src/Picture/Base.hs 302;" f
overPosObj src/Shape.hs 273;" f
overPosSH src/Shape.hs 257;" f
@@ -6588,7 +6589,7 @@ postUniverseLoadSideEffect src/Dodge/WorldLoad.hs 11;" f
postWorldLoad src/Dodge/WorldLoad.hs 14;" f
powerFakeout src/Dodge/Room/Start.hs 37;" f
powerFakeout' src/Dodge/Room/Start.hs 34;" f
powerLegs src/Dodge/Item/Equipment.hs 123;" f
powerLegs src/Dodge/Item/Equipment.hs 125;" f
powlist src/Multiset.hs 55;" f
powlistUpToN src/Multiset.hs 20;" f
powlistUpToN' src/Multiset.hs 9;" f
@@ -6804,8 +6805,8 @@ renderLayer src/Render.hs 233;" f
renderLightingNoShadows src/Render.hs 48;" f
renderListAt src/Dodge/Render/List.hs 160;" f
renderShadows src/Render.hs 117;" f
repeatOnFrames src/Dodge/Item/Weapon/TriggerType.hs 650;" f
repeatTransformed src/Dodge/Item/Weapon/TriggerType.hs 94;" f
repeatOnFrames src/Dodge/Item/Weapon/TriggerType.hs 648;" f
repeatTransformed src/Dodge/Item/Weapon/TriggerType.hs 95;" f
repeater src/Dodge/Item/Held/Cane.hs 72;" f
repeater src/Dodge/Item/Weapon/BulletGun/Cane.hs 89;" f
replaceNullWith src/Dodge/Creature/ReaderUpdate.hs 161;" f
@@ -7110,7 +7111,7 @@ shootFirstMiss src/Dodge/Creature/Volition.hs 33;" f
shootFlameSpitter src/Dodge/HeldUse/SprayWeapon.hs 9;" f
shootFlameSpitterRepeat src/Dodge/HeldUse/SprayWeapon.hs 19;" f
shootFlameThrower src/Dodge/HeldUse/SprayWeapon.hs 26;" f
shootL src/Dodge/Item/Weapon/TriggerType.hs 402;" f
shootL src/Dodge/Item/Weapon/TriggerType.hs 400;" f
shootLaser src/Dodge/Item/Weapon/BatteryGuns.hs 127;" f
shootMachineGun src/Dodge/HeldUse/BulletWeapon.hs 218;" f
shootMachinePistol src/Dodge/HeldUse/BulletWeapon.hs 62;" f
@@ -7122,7 +7123,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 540;" f
shootTeslaArc src/Dodge/HeldUse.hs 541;" 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
@@ -7160,7 +7161,7 @@ shuffleLinks src/Dodge/Room/Link.hs 30;" f
shuffleRoomPos src/Dodge/Layout.hs 78;" f
shuffleTail src/Dodge/RandomHelp.hs 50;" f
shuffleTail src/RandomHelp.hs 55;" f
sideEffectOnFrame src/Dodge/Item/Weapon/TriggerType.hs 630;" f
sideEffectOnFrame src/Dodge/Item/Weapon/TriggerType.hs 628;" f
sideEffectUpdatePreload src/Dodge/PreloadData.hs 7;" f
sigmoid src/Dodge/Base.hs 129;" f
simpleCrSprings src/Dodge/Update.hs 639;" f
@@ -7197,7 +7198,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 71;" f
smg src/Dodge/Item/Held/Stick.hs 69;" 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
@@ -7239,7 +7240,7 @@ spawnGun src/Dodge/Item/Weapon/Spawn.hs 12;" f
spawnSmokeAtCursor src/Dodge/WorldEvent/Cloud.hs 73;" f
spawnerCrit src/Dodge/Creature.hs 55;" f
spawnerRoom src/Dodge/Room/Room.hs 362;" f
speedLegs src/Dodge/Item/Equipment.hs 129;" f
speedLegs src/Dodge/Item/Equipment.hs 131;" f
spinDrag src/Dodge/Item/Held/Launcher.hs 62;" f
spinStart src/Dodge/Item/Held/Launcher.hs 70;" f
splashMenu src/Dodge/Menu.hs 27;" f
@@ -7377,7 +7378,7 @@ targetYouCognizant src/Dodge/Creature/ChooseTarget.hs 13;" f
targetYouLOS src/Dodge/Creature/ChooseTarget.hs 7;" f
targetYouWhenCognizant src/Dodge/Creature/ReaderUpdate.hs 211;" f
targetYouWhenCognizant src/Dodge/Creature/SetTarget.hs 9;" f
targetingHat src/Dodge/Item/Equipment.hs 109;" f
targetingHat src/Dodge/Item/Equipment.hs 111;" f
targetingInfo src/Dodge/Item/Info.hs 142;" f
targetingScope src/Dodge/Item/Scope.hs 16;" f
telRoomLev src/Dodge/Room/Teleport.hs 14;" f
@@ -7460,7 +7461,7 @@ toV3 src/Geometry/Data.hs 38;" f
toV4 src/Geometry/Data.hs 40;" f
toggleCombineInv src/Dodge/DisplayInventory.hs 30;" f
toggleCommand src/Dodge/Terminal.hs 194;" f
toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 55;" f
toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 60;" f
toggleJust src/MaybeHelp.hs 41;" f
toggleMap src/Dodge/Update/Input/InGame.hs 237;" f
toggleMapKey src/Dodge/Config/KeyConfig.hs 25;" f
@@ -7474,17 +7475,17 @@ topPrismEdgeIndices src/Shader/Poke.hs 327;" f
topPrismIndices src/Shader/Poke.hs 402;" f
torch src/Dodge/Item/Held/Utility.hs 26;" f
torchShape src/Dodge/Item/Draw/SPic.hs 195;" f
torqueBefore src/Dodge/Item/Weapon/TriggerType.hs 560;" f
torqueBeforeAtLeast src/Dodge/Item/Weapon/TriggerType.hs 583;" f
torqueBefore src/Dodge/Item/Weapon/TriggerType.hs 558;" f
torqueBeforeAtLeast src/Dodge/Item/Weapon/TriggerType.hs 581;" f
torqueCr src/Dodge/WorldEffect.hs 64;" f
torqueSideEffect src/Dodge/Item/Weapon/TriggerType.hs 638;" f
torqueSideEffect src/Dodge/Item/Weapon/TriggerType.hs 636;" f
torso src/Dodge/Creature/Picture.hs 132;" f
tractCr src/Dodge/TractorBeam/Update.hs 27;" f
tractFlIt src/Dodge/TractorBeam/Update.hs 22;" f
tractorBeamAt src/Dodge/Item/Weapon/BatteryGuns.hs 210;" f
tractorGun src/Dodge/Item/Held/BatteryGuns.hs 75;" f
tractorGun src/Dodge/Item/Held/BatteryGuns.hs 73;" f
tractorGunPic src/Dodge/Item/Draw/SPic.hs 477;" f
tractorGunTweak src/Dodge/Item/Held/BatteryGuns.hs 94;" f
tractorGunTweak src/Dodge/Item/Held/BatteryGuns.hs 89;" f
tractorPullPos src/Dodge/TractorBeam/Update.hs 32;" f
tractorSPic src/Dodge/TractorBeam/Draw.hs 10;" f
tranRot src/Picture/Base.hs 124;" f
@@ -7541,7 +7542,7 @@ treePost src/TreeHelp.hs 45;" f
triLootRoom src/Dodge/Room/Treasure.hs 22;" f
triangulate src/Shader/Poke/Triangulate.hs 5;" f
triangulateIndices src/Shader/Poke/Triangulate.hs 9;" f
trigDoAlso src/Dodge/Item/Weapon/TriggerType.hs 101;" f
trigDoAlso src/Dodge/Item/Weapon/TriggerType.hs 102;" f
triggerDoorRoom src/Dodge/Room/Door.hs 30;" f
triggerSwitch src/Dodge/Placement/Instance/Button.hs 47;" f
triggerSwitch src/Dodge/Placements/Button.hs 35;" f
@@ -7748,20 +7749,19 @@ upperPrismPolyTS src/Shape.hs 118;" f
upperRounded src/Shape.hs 181;" f
upsProjectile src/Dodge/Projectile/Update.hs 53;" f
useAllAmmo src/Dodge/Item/Weapon/TriggerType.hs 339;" f
useAmmoAmount src/Dodge/Item/Weapon/TriggerType.hs 354;" f
useAmmoAmount' src/Dodge/Item/Weapon/TriggerType.hs 361;" f
useAmmoAmount src/Dodge/Item/Weapon/TriggerType.hs 356;" f
useAmmoParams src/Dodge/Item/Weapon/AmmoParams.hs 17;" f
useAmmoUpTo src/Dodge/Item/Weapon/TriggerType.hs 346;" f
useAmmoUpTo src/Dodge/Item/Weapon/TriggerType.hs 347;" f
useC src/Dodge/Cuse.hs 6;" f
useE src/Dodge/Euse.hs 24;" f
useEquipment src/Dodge/Creature/State.hs 219;" f
useForceFieldGun src/Dodge/HeldUse.hs 553;" f
useForceFieldGun src/Dodge/HeldUse.hs 554;" f
useGasParams src/Dodge/HeldUse.hs 471;" f
useHeld src/Dodge/HeldUse.hs 385;" 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 115;" f
useItemLeftClick src/Dodge/Creature/Impulse/UseItem.hs 98;" f
useItemHotkey src/Dodge/Creature/Impulse/UseItem.hs 120;" f
useItemLeftClick src/Dodge/Creature/Impulse/UseItem.hs 103;" f
useItemRightClick src/Dodge/Creature/Impulse/UseItem.hs 23;" f
useL src/Dodge/Luse.hs 13;" f
useLeftItem src/Dodge/Creature/Action/UseItem.hs 38;" f
@@ -7771,14 +7771,14 @@ useMod src/Dodge/HeldUse.hs 28;" f
useNormalCamera src/Dodge/Camera.hs 6;" f
usePayload src/Dodge/Payload.hs 7;" f
usePjCreation src/Dodge/HeldUse.hs 404;" f
usePjCreationX src/Dodge/HeldUse.hs 412;" f
usePjCreationX src/Dodge/HeldUse.hs 409;" f
useRewindGun src/Dodge/Luse.hs 41;" f
useRoomPosCond src/Dodge/PlacementSpot.hs 178;" f
useRoomPosRoomCond src/Dodge/PlacementSpot.hs 181;" f
useShrinkGun src/Dodge/Luse.hs 59;" f
useStopWatch src/Dodge/Luse.hs 24;" f
useTargetPos src/Dodge/Item/Weapon/Targeting.hs 9;" f
useTimeCheck src/Dodge/Item/Weapon/TriggerType.hs 369;" f
useTimeCheck src/Dodge/Item/Weapon/TriggerType.hs 367;" f
useTimeScrollGun src/Dodge/Luse.hs 32;" f
useUnusedLnk src/Dodge/PlacementSpot.hs 169;" f
useUpdate src/Dodge/Creature/State.hs 211;" f
@@ -7875,35 +7875,35 @@ windowxsize src/LoadConfig.hs 12;" f
windowysize src/LoadConfig.hs 13;" f
withAlpha src/Color.hs 10;" f
withByteString src/Shader/Compile.hs 370;" f
withCrPos src/Dodge/Item/Weapon/TriggerType.hs 485;" f
withCrPosShift src/Dodge/Item/Weapon/TriggerType.hs 488;" f
withFlare src/Dodge/Item/Weapon/TriggerType.hs 452;" f
withItem src/Dodge/Item/Weapon/TriggerType.hs 425;" f
withItemUpdate src/Dodge/Item/Weapon/TriggerType.hs 434;" f
withItemUpdateFirst src/Dodge/Item/Weapon/TriggerType.hs 429;" f
withMuzFlare src/Dodge/Item/Weapon/TriggerType.hs 464;" f
withOldDir src/Dodge/Item/Weapon/TriggerType.hs 502;" f
withPosDirWallCheck src/Dodge/Item/Weapon/TriggerType.hs 542;" f
withPositionOffset src/Dodge/Item/Weapon/TriggerType.hs 526;" f
withPositionWallCheck src/Dodge/Item/Weapon/TriggerType.hs 533;" f
withRandomDirI src/Dodge/Item/Weapon/TriggerType.hs 494;" f
withRandomItem src/Dodge/Item/Weapon/TriggerType.hs 521;" f
withRandomItemParams src/Dodge/Item/Weapon/TriggerType.hs 516;" f
withRandomItemUpdate src/Dodge/Item/Weapon/TriggerType.hs 509;" f
withRandomOffset src/Dodge/Item/Weapon/TriggerType.hs 552;" f
withCrPos src/Dodge/Item/Weapon/TriggerType.hs 483;" f
withCrPosShift src/Dodge/Item/Weapon/TriggerType.hs 486;" f
withFlare src/Dodge/Item/Weapon/TriggerType.hs 450;" f
withItem src/Dodge/Item/Weapon/TriggerType.hs 423;" f
withItemUpdate src/Dodge/Item/Weapon/TriggerType.hs 432;" f
withItemUpdateFirst src/Dodge/Item/Weapon/TriggerType.hs 427;" f
withMuzFlare src/Dodge/Item/Weapon/TriggerType.hs 462;" f
withOldDir src/Dodge/Item/Weapon/TriggerType.hs 500;" f
withPosDirWallCheck src/Dodge/Item/Weapon/TriggerType.hs 540;" f
withPositionOffset src/Dodge/Item/Weapon/TriggerType.hs 524;" f
withPositionWallCheck src/Dodge/Item/Weapon/TriggerType.hs 531;" f
withRandomDirI src/Dodge/Item/Weapon/TriggerType.hs 492;" f
withRandomItem src/Dodge/Item/Weapon/TriggerType.hs 519;" f
withRandomItemParams src/Dodge/Item/Weapon/TriggerType.hs 514;" f
withRandomItemUpdate src/Dodge/Item/Weapon/TriggerType.hs 507;" f
withRandomOffset src/Dodge/Item/Weapon/TriggerType.hs 550;" f
withRecoil src/Dodge/Item/Weapon/TriggerType.hs 297;" f
withSidePushAfterI src/Dodge/Item/Weapon/TriggerType.hs 326;" f
withSidePushI src/Dodge/Item/Weapon/TriggerType.hs 307;" f
withSmoke src/Dodge/Item/Weapon/TriggerType.hs 114;" f
withSmoke src/Dodge/Item/Weapon/TriggerType.hs 115;" f
withSoundContinue src/Dodge/Item/Weapon/TriggerType.hs 250;" f
withSoundForI src/Dodge/Item/Weapon/TriggerType.hs 263;" f
withSoundForVol src/Dodge/Item/Weapon/TriggerType.hs 276;" f
withSoundItemChoiceStart src/Dodge/Item/Weapon/TriggerType.hs 221;" f
withSoundStart src/Dodge/Item/Weapon/TriggerType.hs 237;" f
withTempLight src/Dodge/Item/Weapon/TriggerType.hs 439;" f
withThickSmokeI src/Dodge/Item/Weapon/TriggerType.hs 132;" f
withThinSmokeI src/Dodge/Item/Weapon/TriggerType.hs 123;" f
withTorqueAfter src/Dodge/Item/Weapon/TriggerType.hs 609;" f
withTempLight src/Dodge/Item/Weapon/TriggerType.hs 437;" f
withThickSmokeI src/Dodge/Item/Weapon/TriggerType.hs 133;" f
withThinSmokeI src/Dodge/Item/Weapon/TriggerType.hs 124;" f
withTorqueAfter src/Dodge/Item/Weapon/TriggerType.hs 607;" f
withWarmUp src/Dodge/Item/Weapon/TriggerType.hs 201;" f
wlDustAt src/Dodge/Wall/Dust.hs 10;" f
wlIXsNearCirc src/Dodge/Zoning/Wall.hs 32;" f
@@ -7931,7 +7931,7 @@ worldShape src/Dodge/Render/Shape.hs 14;" f
worldToGenWorld src/Dodge/LevelGen/LevelStructure.hs 14;" f
wpAdd src/Dodge/Room/RezBox.hs 134;" f
wristArmour src/Dodge/Item/Equipment.hs 49;" f
wristInvisibility src/Dodge/Item/Equipment.hs 135;" f
wristInvisibility src/Dodge/Item/Equipment.hs 137;" f
writeConfig src/Dodge/Menu.hs 159;" f
writeSaveSlot src/Dodge/Save.hs 34;" f
xCylinder src/Shape.hs 134;" f