Make launcherX use multiple ammo sources

This commit is contained in:
2024-06-28 22:40:24 +01:00
parent 009a6cd30f
commit 32cb2b2e80
17 changed files with 220 additions and 342 deletions
+7 -39
View File
@@ -1,40 +1,8 @@
/home/justin/Haskell/loop/src/Dodge/Item/Weapon/TriggerType.hs:76:1: warning: [-Wunused-imports] /home/justin/Haskell/loop/src/Dodge/Reloading.hs:25:22-40: error:
The qualified import of IntMapHelp is redundant The constructor ReloadAction should have 2 arguments, but has been given 3
• In the pattern: ReloadAction x la j
In the pattern: SelItem i (ReloadAction x la j)
In the pattern: Just (SelItem i (ReloadAction x la j))
| |
76 | import qualified IntMapHelp as IM 25 | Just (SelItem i (ReloadAction x la))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^
/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 =
| ^^^
+9 -13
View File
@@ -1,19 +1,22 @@
module Dodge.Base.You where module Dodge.Base.You
(you
, yourScopeInvID
, yourInv
, yourScrollAttachment
, yourItem
)where
import Dodge.Data.World import Dodge.Data.World
import Dodge.HeldScroll import Dodge.HeldScroll
import qualified IntMapHelp as IM import qualified IntMapHelp as IM
import qualified Data.Map.Strict as M --import qualified Data.Map.Strict as M
import Control.Lens import Control.Lens
import Control.Monad import Control.Monad
import Data.Maybe --import Data.Maybe
you :: World -> Creature you :: World -> Creature
you w = w ^?! cWorld . lWorld . creatures . ix 0 you w = w ^?! cWorld . lWorld . creatures . ix 0
youc :: CWorld -> Creature
youc w = w ^?! lWorld . creatures . ix 0
yourItem :: World -> Maybe Item yourItem :: World -> Maybe Item
yourItem w = do yourItem w = do
i <- you w ^? crManipulation . manObject . inInventory . ispItem i <- you w ^? crManipulation . manObject . inInventory . ispItem
@@ -36,13 +39,6 @@ yourScopeInvID w = do
yourInv :: World -> IM.IntMap Item yourInv :: World -> IM.IntMap Item
yourInv = _crInv . you yourInv = _crInv . you
attachmentTree :: Creature -> M.Map AttachType Int
attachmentTree cr = fromMaybe mempty $ do
i <- cr ^? crManipulation . manObject . inInventory . ispItem
return $ upDownAttachments cr i i mempty
upDownAttachments :: Creature -> Int -> Int -> M.Map AttachType Int -> M.Map AttachType Int
upDownAttachments _ _ _ s = s
--yourInvSel :: World -> Int --yourInvSel :: World -> Int
--yourInvSel = crSel . you --yourInvSel = crSel . you
-3
View File
@@ -56,11 +56,8 @@ updateBulVel bt = case _buTrajectory bt of
where where
t = _buTimer bt t = _buTimer bt
-- should be made safe?
-- should be renamed to shootBullet or something
shootBullet :: [Item] -> Item -> Creature -> World -> World shootBullet :: [Item] -> Item -> Creature -> World -> World
shootBullet ams it cr w = fromMaybe (error "cannot find bullet ammo when expected to") $ do shootBullet ams it cr w = fromMaybe (error "cannot find bullet ammo when expected to") $ do
invid <- it ^? itLocation . ipInvID
thebullet <- ams ^? ix 0 . itUse . amagParams . ampBullet thebullet <- ams ^? ix 0 . itUse . amagParams . ampBullet
return $ w & cWorld . lWorld . instantBullets return $ w & cWorld . lWorld . instantBullets
.:~ ( thebullet .:~ ( thebullet
+10
View File
@@ -224,6 +224,16 @@ inventoryX c = case c of
'L' -> [scrollWatch] 'L' -> [scrollWatch]
'M' -> stackedInventory 'M' -> stackedInventory
'N' -> [zoomScope,targetingScope TARGETLASER, sniperRifle] 'N' -> [zoomScope,targetingScope TARGETLASER, sniperRifle]
'O' -> [ launcherX 2
, shellMag
, shellMag
, launcherX 3
, shellMag
, shellMag
, shellMag
, rifle
, shellMag
]
'T' -> testInventory 'T' -> testInventory
_ -> [] _ -> []
+1 -9
View File
@@ -34,16 +34,8 @@ useItemRightClick cr' w = fromMaybe (f w) $ do
getAmmoMags :: Item -> Creature -> [Item] getAmmoMags :: Item -> Creature -> [Item]
getAmmoMags itm cr = fromMaybe [] $ do getAmmoMags itm cr = fromMaybe [] $ do
atypes <- itm ^? itUse . heldConsumption
i <- itm ^? itLocation . ipInvID i <- itm ^? itLocation . ipInvID
let amags = cr ^.. crInv . dropping (i + 1) traverse return $ 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 :: Creature -> Item -> World -> World
itemEffect cr it w = case it ^. itUse of itemEffect cr it w = case it ^. itUse of
-2
View File
@@ -99,8 +99,6 @@ data HeldMod
| BurstRifleRepeatMod | BurstRifleRepeatMod
| MiniGunMod Int | MiniGunMod Int
| SmgMod | SmgMod
| RevolverXMod
| RevolverXRepeatMod
| BangConeMod | BangConeMod
deriving (Eq, Ord, Show, Read) --Generic, Flat) deriving (Eq, Ord, Show, Read) --Generic, Flat)
-10
View File
@@ -98,16 +98,6 @@ data ScrollAttachParams
| CharScrollParams | CharScrollParams
{ _scrollChar :: Seq.Seq Char} { _scrollChar :: Seq.Seq Char}
data ItemUse'
= ItemHeld HeldUse'
| ItemEquip EquipUse'
| ItemConsume ConsumeUse'
| ItemCraft Int
data HeldUse' = HeldUse'
data EquipUse' = EquipUse'
data ConsumeUse' = ConsumeUse'
data AimParams = AimParams data AimParams = AimParams
{ _aimWeight :: Int { _aimWeight :: Int
, _aimTurnSpeed :: Float , _aimTurnSpeed :: Float
-11
View File
@@ -27,17 +27,6 @@ module Dodge.Default.Weapon where
--defaultChargeable :: LeftConsumption --defaultChargeable :: LeftConsumption
--defaultChargeable = ChargeableAmmo 100 100 --defaultChargeable = ChargeableAmmo 100 100
--defaultrUse :: ItemUse
--defaultrUse =
-- RightUse
-- { _rUse = HeldDoNothing
-- , _useDelay = FixedRate{_rateMax = 8, _rateTime = 0}
-- , _useMods = HeldModNothing
-- , _useHammer = HammerUp
-- , _useAim = defaultAimParams
-- , _heldScroll = HeldScrollDoNothing
-- , _heldConsumption = defaultLoadable
-- }
-- --
-- --
+24 -51
View File
@@ -58,10 +58,10 @@ useMod hm = case hm of
, ammoCheckI , ammoCheckI
] ]
LauncherMod -> LauncherMod ->
[ useAmmoAmount 1 --[ useAmmoAmount 1
, withSoundStart tap4S -- , withSoundStart tap4S
, useTimeCheck [ useTimeCheck
, ammoCheckI -- , ammoCheckI
, blCheck , blCheck
] ]
TeslaMod -> TeslaMod ->
@@ -108,11 +108,11 @@ useMod hm = case hm of
, duplicateLoadedBarrels , duplicateLoadedBarrels
, ammoCheckI , ammoCheckI
] ]
LauncherXMod i -> LauncherXMod _ ->
[ useAmmoAmount i --[ useAmmoAmount i
, withSoundStart tap4S --, withSoundStart tap4S
, useTimeCheck [ useTimeCheck
, ammoCheckI --, ammoCheckI
, blCheck , blCheck
] ]
ShatterMod -> ShatterMod ->
@@ -314,30 +314,6 @@ useMod hm = case hm of
, useTimeCheck , useTimeCheck
, ammoCheckI , ammoCheckI
] ]
RevolverXMod ->
[ withRecoil
, withTorqueAfter
, withFlare
, duplicateLoadedBarrels
, useAmmoUpTo 1
, withSoundStart tap3S
, repeatOnFrames [2, 4, 6, 8, 10] RevolverXRepeatMod
, lockInvFor 10
, -- rather than locking the inventory, a better solution may be to check
-- that the weapon is still in your hands in the repeated frames
useTimeCheck
, ammoCheckI
, blCheck
]
RevolverXRepeatMod ->
[ withRecoil
, withTorqueAfter
, withFlare
, duplicateLoadedBarrels
, useAmmoUpTo 1
, withSoundStart tap3S
, ammoCheckI
]
BangConeMod -> BangConeMod ->
[ withRandomItem coneRandItemParams [ withRandomItem coneRandItemParams
, withRandomItemUpdate coneRandItemUpdate , withRandomItemUpdate coneRandItemUpdate
@@ -388,7 +364,7 @@ useHeld hu = case hu of
HeldUseAmmoParams -> shootBullet HeldUseAmmoParams -> shootBullet
HeldOverNozzlesUseGasParams -> overNozzles useGasParams HeldOverNozzlesUseGasParams -> overNozzles useGasParams
HeldPJCreation -> usePjCreation HeldPJCreation -> usePjCreation
HeldPJCreationX i -> usePjCreationX i HeldPJCreationX _ -> usePjCreationX
HeldFireRemoteShell -> fireRemoteShell HeldFireRemoteShell -> fireRemoteShell
HeldDetectorEffect dt -> const $ detectorEffect dt HeldDetectorEffect dt -> const $ detectorEffect dt
HeldTeslaArc -> shootTeslaArc HeldTeslaArc -> shootTeslaArc
@@ -403,20 +379,17 @@ useHeld hu = case hu of
usePjCreation :: [Item] -> Item -> Creature -> World -> World usePjCreation :: [Item] -> Item -> Creature -> World -> World
usePjCreation ams itm cr = fromMaybe id $ do usePjCreation ams itm cr = fromMaybe id $ do
apm <- ams ^? ix 0 . itUse . amagParams apm <- ams ^? ix 0
return $ createProjectile apm itm cr muz <- itm ^? itUse . heldAim . aimMuzzles . ix 0
return $ createProjectile apm muz itm cr
usePjCreationX :: Int -> [Item] -> Item -> Creature -> World -> World usePjCreationX :: [Item] -> Item -> Creature -> World -> World
usePjCreationX i ams itm cr = usePjCreationX ams itm cr = fromMaybe id $ do
foldr muzs <- itm ^? itUse . heldAim . aimMuzzles
f return $ foldr
(createProjectile apm itm cr) f id (zip muzs ams)
[1 .. i -1]
where where
apm = fromMaybe (error "cannot find shell ammo projectile") $ do f (muz,am) = (createProjectile am muz itm cr .)
invid <- itm ^? itLocation . ipInvID
cr ^? crInv . ix (invid + 1) . itUse . amagParams
f n = (. createProjectile apm itm (cr & crDir +~ (2 * pi * fromIntegral n / fromIntegral i)))
overNozzles :: overNozzles ::
(Nozzle -> [Item] -> Item -> Creature -> World -> World) -> (Nozzle -> [Item] -> Item -> Creature -> World -> World) ->
@@ -469,7 +442,7 @@ getAmmoMagazine itm cr = do
return mag return mag
useGasParams :: Nozzle -> [Item] -> Item -> Creature -> World -> World useGasParams :: Nozzle -> [Item] -> Item -> Creature -> World -> World
useGasParams nz ams it cr = useGasParams nz ams _ cr =
createGas createGas
gastype gastype
(_nzPressure nz) (_nzPressure nz)
@@ -478,7 +451,6 @@ useGasParams nz ams it cr =
cr cr
where where
gastype = fromMaybe (error "cannot find gas ammo") $ ams ^? ix 0 . itUse . amagParams . ampCreateGas 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 dir = _crDir cr
pos = _crPos cr +.+ (_nzLength nz *.* unitVectorAtAngle (_crDir cr)) pos = _crPos cr +.+ (_nzLength nz *.* unitVectorAtAngle (_crDir cr))
@@ -493,10 +465,11 @@ fireRemoteShell ams it cr w =
i = IM.newKey $ w ^. cWorld . lWorld . props i = IM.newKey $ w ^. cWorld . lWorld . props
cid = _crID cr cid = _crID cr
apm = fromMaybe (error "cannot find shell ammo projectile") $ do apm = fromMaybe (error "cannot find shell ammo projectile") $ do
invid <- it ^? itLocation . ipInvID ams ^? ix 0
cr ^? crInv . ix (invid + 1) . itUse . amagParams
addRemRocket = addRemRocket =
makeShell apm makeShell apm
-- the following is unsafe!
(it ^?! itUse . heldAim . aimMuzzles . ix 0)
it it
cr cr
[ PJRemoteShellCollisionCheck [ PJRemoteShellCollisionCheck
@@ -539,7 +512,7 @@ mcShootLaser it mc = cWorld . lWorld . lasers .:~ lasRayAt (_lasColor $ _itParam
-- | assumes that the item is held -- | assumes that the item is held
shootTeslaArc :: [Item] -> Item -> Creature -> World -> World shootTeslaArc :: [Item] -> Item -> Creature -> World -> World
shootTeslaArc ams it cr w = shootTeslaArc _ it cr w =
w' w'
& cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix itRef . itParams .~ ip & cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix itRef . itParams .~ ip
where where
+1
View File
@@ -101,6 +101,7 @@ miniGunUse i =
& heldAim . aimRange .~ 1 & heldAim . aimRange .~ 1
& heldAim . aimStance .~ TwoHandUnder & heldAim . aimStance .~ TwoHandUnder
& heldAim . aimZoom .~ defaultItZoom{_izFac = 1.5} & heldAim . aimZoom .~ defaultItZoom{_izFac = 1.5}
& heldConsumption .~ [BulletAmmo]
miniGunX :: Int -> Item miniGunX :: Int -> Item
miniGunX i = miniGunX i =
+5 -1
View File
@@ -32,7 +32,7 @@ launcher =
-- & itUse . heldAim . aimHandlePos .~ V2 3 0 -- & itUse . heldAim . aimHandlePos .~ V2 3 0
-- & itUse . heldAim . aimMuzPos .~ 20 -- & itUse . heldAim . aimMuzPos .~ 20
& itUse . heldAim . aimMuzzles .~ [Muzzle (V2 20 0) 0 0] & itUse . heldAim . aimMuzzles .~ [Muzzle (V2 20 0) 0 0]
& itUse . heldConsumption .~ [BulletAmmo] & itUse . heldConsumption .~ [ProjectileAmmo]
& itType . iyBase .~ HELD LAUNCHER & itType . iyBase .~ HELD LAUNCHER
& itType . iyModules . at ModLauncherHoming ?~ EMPTYMODULE & itType . iyModules . at ModLauncherHoming ?~ EMPTYMODULE
@@ -42,6 +42,10 @@ launcherX i =
& itType . iyBase .~ HELD (LAUNCHERX i) & itType . iyBase .~ HELD (LAUNCHERX i)
& itUse . heldUse .~ HeldPJCreationX i & itUse . heldUse .~ HeldPJCreationX i
& itUse . heldMods .~ LauncherXMod i & itUse . heldMods .~ LauncherXMod i
& itUse . heldAim . aimMuzzles .~ [Muzzle (V2 20 0) a 0 | a <- angles]
where
angles = take i [0,2*pi/ fromIntegral i ..]
--angles = take i [1,2 ..]
remoteLauncher :: Item remoteLauncher :: Item
remoteLauncher = remoteLauncher =
+1 -51
View File
@@ -22,23 +22,6 @@ import Picture
--import Control.Monad.State --import Control.Monad.State
--lasPulse :: Item
--lasPulse = lasGun
-- & itType . iyBase .~ LASPULSE
-- & itUse . useMods .~
-- [ ammoCheckI
-- , withItem $ \it -> withTempLight 1 (100 * frac it) (xyzV4 (_lasColor $ _itParams it))
-- , withItem $ \it -> withSoundForVol (frac it) tone440sawtoothquietS 2
-- , withItemUpdate itup
-- $ \it -> withMuzPos $ flareCircleAt (_lasColor $ _itParams it) (frac it * 0.8)
-- , useAmmoAmount 1
-- ]
-- where
-- itup it = it
-- & itParams . lasCycle %~ (\i -> (i+1) `mod` 20)
-- & itParams . lasDamage .~ ceiling ((22 :: Float) * frac it)
-- & itParams . lasColor .~ frac it * orange
-- frac it = 0.5 * (1 + sin (pi * fromIntegral (_lasCycle $ _itParams it) * 0.1))
--lasWidePulse :: Item --lasWidePulse :: Item
--lasWidePulse = lasGun --lasWidePulse = lasGun
@@ -89,43 +72,10 @@ import Picture
-- x it = [ 15 * sin (pi * fromIntegral x' * 0.05) ] -- x it = [ 15 * sin (pi * fromIntegral x' * 0.05) ]
-- where -- where
-- x' = _lasCycle $ _itParams it -- x' = _lasCycle $ _itParams it
--lasFocus :: Int -> Item
--lasFocus n = lasGunWide n
-- & itType . iyBase .~ LASGUNFOCUS n
-- & itParams . lasColor .~ red
-- & itUse . useMods .~
-- [ ammoCheckI
-- , withItem $ \it -> withTempLight 1 100 (xyzV4 (_lasColor $ _itParams it))
-- , withItem $ \it -> withMuzPos $ flareCircleAt (_lasColor $ _itParams it) 0.8
-- , withSoundForI tone440sawtoothquietS 2
-- , useAmmoAmount 1
-- , duplicateOffsetsFocus xs
-- ]
-- where
-- n' = 9 * n
-- xs = [ 0.25 * (fromIntegral x - fromIntegral (n'-1) /2) | x <- [0..n'-1] ]
--lasSwing :: Item
--lasSwing = lasGun
-- & itType . iyBase .~ LASGUNSWING
-- & itParams . lasColor .~ orange
-- & itUse . useMods .~
-- [ ammoCheckI
-- , withItem $ \it -> withTempLight 1 100 (xyzV4 (_lasColor $ _itParams it))
-- , withItem $ \it -> withMuzPos $ flareCircleAt (_lasColor $ _itParams it) 0.8
-- , withSoundForI tone440sawtoothquietS 2
-- , useAmmoAmount 1
-- , withItemUpdate itup $ \it -> duplicateOffsetsFocus (x it)
-- ]
-- where
-- itup = itParams . lasCycle %~ (\i -> (i+1) `mod` 200)
-- x it = [-y,y]
-- where
-- y = 15 * sin (pi * fromIntegral x' * 0.01)
-- x' = _lasCycle $ _itParams it
shootLaser :: [Item] -> Item -> Creature -> World -> World shootLaser :: [Item] -> Item -> Creature -> World -> World
shootLaser ams it cr = shootLaser _ it cr =
cWorld . lWorld . lasers cWorld . lWorld . lasers
.:~ lasRayAt .:~ lasRayAt
(_lasColor $ _itParams it) (_lasColor $ _itParams it)
-19
View File
@@ -18,25 +18,6 @@ module Dodge.Item.Weapon.SonicGuns where
----import Data.Tuple ----import Data.Tuple
----import qualified IntMapHelp as IM ----import qualified IntMapHelp as IM
-- --
----sonicGun :: Item
----sonicGun = defaultAutoGun
---- { _itConsumption = defaultLoadable
---- & laMax .~ 10
---- & laCycle .~ [loadEject 10, loadInsert 10 , loadPrime 60]
---- , _itParams = NoParams
---- , _itTweaks = NoTweaks
---- }
---- & itDimension . dimRad .~ 10
---- & itDimension . dimCenter .~ V3 15 0 0
---- & itUse . useDelay . rateMax .~ 8
---- & itUse . rUse .~ HeldSonicWave --aSonicWave
---- & itUse . useMods .~ AmmoHammerTimeUseOneMod
---- & itUse . useAim . aimWeight .~ 6
---- & itUse . useAim . aimRange .~ 1
---- & itUse . useAim . aimStance .~ TwoHandTwist
---- & itUse . useAim . aimMuzPos .~ 25
---- & itType . iyBase .~ HELD SONICGUN
--
----aSonicWave :: Item -> Creature -> World -> World ----aSonicWave :: Item -> Creature -> World -> World
----aSonicWave it cr = instantParticles .:~ sonicWave pos dir cpos ----aSonicWave it cr = instantParticles .:~ sonicWave pos dir cpos
---- where ---- where
+6 -3
View File
@@ -73,7 +73,7 @@ import Dodge.Reloading
import Dodge.SoundLogic import Dodge.SoundLogic
import Dodge.WorldEvent import Dodge.WorldEvent
import Geometry import Geometry
import qualified IntMapHelp as IM --import qualified IntMapHelp as IM
import LensHelp import LensHelp
import RandomHelp import RandomHelp
import qualified SDL import qualified SDL
@@ -145,6 +145,9 @@ ammoCheckI :: ChainEffect
ammoCheckI eff ams itm cr w = fromMaybe (failsound w) $ do ammoCheckI eff ams itm cr w = fromMaybe (failsound w) $ do
x <- ams ^? ix 0 . itUse . amagLoadStatus . iaLoaded x <- ams ^? ix 0 . itUse . amagLoadStatus . iaLoaded
guard $ x > 0 guard $ x > 0
matype <- ams ^? ix 0 . itUse . amagType
iatype <- itm ^? itUse . heldConsumption . ix 0
guard $ matype == iatype
return $ eff ams itm cr $ w & cWorld . lWorld . creatures . ix (_crID cr) %~ crCancelReloading return $ eff ams itm cr $ w & cWorld . lWorld . creatures . ix (_crID cr) %~ crCancelReloading
where where
failsound = case w ^? input . mouseButtons . ix SDL.ButtonLeft of failsound = case w ^? input . mouseButtons . ix SDL.ButtonLeft of
@@ -239,7 +242,7 @@ withSoundStart ::
SoundID -> SoundID ->
ChainEffect ChainEffect
withSoundStart soundid f ams item cr = withSoundStart soundid f ams item cr =
soundMultiFrom [CrWeaponSound cid 0, CrWeaponSound cid 1, CrWeaponSound cid 2] (_crPos cr) soundid Nothing soundMultiFrom [CrWeaponSound cid j | j <- [0..3]] (_crPos cr) soundid Nothing
. f ams item cr . f ams item cr
where where
cid = _crID cr cid = _crID cr
@@ -346,7 +349,7 @@ useAllAmmo eff ams item cr w = fromMaybe w $ do
useAmmoUpTo :: Int -> ChainEffect useAmmoUpTo :: Int -> ChainEffect
useAmmoUpTo amAmount eff ams itm cr = fromMaybe id $ do useAmmoUpTo amAmount eff ams itm cr = fromMaybe id $ do
x <- ams ^? ix 0 . itUse . amagLoadStatus . iaLoaded _ <- ams ^? ix 0 . itUse . amagLoadStatus . iaLoaded
invid <- ams ^? ix 0 . itLocation . ipInvID invid <- ams ^? ix 0 . itLocation . ipInvID
return $ eff ams itm cr return $ eff ams itm cr
. ( cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix invid . itUse . amagLoadStatus . iaLoaded . ( cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix invid . itUse . amagLoadStatus . iaLoaded
+44 -19
View File
@@ -1,22 +1,42 @@
module Dodge.Projectile.Create where module Dodge.Projectile.Create where
import Dodge.SoundLogic
import Dodge.Reloading
import Control.Monad
import Data.Maybe
import Dodge.Data.World import Dodge.Data.World
import Geometry import Geometry
import qualified IntMapHelp as IM import qualified IntMapHelp as IM
import LensHelp import LensHelp
--import Data.Maybe import qualified SDL
createProjectile :: AmmoParams -> Item -> Creature -> World -> World createProjectile :: Item -> Muzzle -> Item -> Creature -> World -> World
createProjectile apm itm cr = case pt of createProjectile ammoitem muz itm cr = fromMaybe failsound $ do
CreateShell -> fireShell apm itm cr x <- ammoitem ^? itUse . amagLoadStatus . iaLoaded
CreateTrackingShell -> fireTrackingShell apm itm cr guard $ x > 0
matype <- ammoitem ^? itUse . amagType
guard $ matype == ProjectileAmmo
j <- ammoitem ^? itLocation . ipInvID
pt <- ammoitem ^? itUse . amagParams . ampPjCreation
return $ case pt of
CreateShell -> fireShell ammoitem muz itm cr . extrafuncs j
CreateTrackingShell -> fireTrackingShell ammoitem muz itm cr . extrafuncs j
where where
pt = _ampPjCreation apm extrafuncs j = cancelanyreloading . startthesound . useammo j
useammo j = cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix j . itUse . amagLoadStatus . iaLoaded -~ 1
fireShell :: AmmoParams -> Item -> Creature -> World -> World cancelanyreloading = cWorld . lWorld . creatures . ix (_crID cr) %~ crCancelReloading
fireShell ap it cr = -- the sound should be moved to the projectile firing
startthesound = soundMultiFrom [CrWeaponSound (_crID cr) j | j <- [0..3]] (_crPos cr) tap4S Nothing
failsound w' = case w' ^? input . mouseButtons . ix SDL.ButtonLeft of
Just 0 -> soundStart (CrReloadSound (_crID cr)) (_crPos cr) click1S Nothing w'
_ -> soundContinue (CrReloadSound (_crID cr)) (_crPos cr) click1S Nothing w'
fireShell :: Item -> Muzzle -> Item -> Creature -> World -> World
fireShell ammoitem muz it cr =
makeShell makeShell
ap ammoitem
muz
it it
cr cr
[ PJShellCollisionCheck [ PJShellCollisionCheck
@@ -31,8 +51,10 @@ fireShell ap it cr =
spinamount = _shellSpinAmount params spinamount = _shellSpinAmount params
thrustdelay = _shellThrustDelay params thrustdelay = _shellThrustDelay params
makeShell :: AmmoParams -> Item -> Creature -> [ProjectileUpdate] -> World -> World makeShell :: Item -> Muzzle -> Item -> Creature -> [ProjectileUpdate] -> World -> World
makeShell ap it cr theupdate w = makeShell ammoitem muz it cr theupdate w = fromMaybe w $ do
aparams <- ammoitem ^? itUse . amagParams
return $
w & cWorld . lWorld . projectiles . at i w & cWorld . lWorld . projectiles . at i
?~ Shell ?~ Shell
{ _prjPos = pos { _prjPos = pos
@@ -44,21 +66,24 @@ makeShell ap it cr theupdate w =
, _prjAcc = rotateV dir (V2 3 0) , _prjAcc = rotateV dir (V2 3 0)
, _prjDir = dir , _prjDir = dir
, _prjSpin = 0 , _prjSpin = 0
, _prjPayload = _ampPayload ap , _prjPayload = _ampPayload aparams
, _prjTimer = 350 , _prjTimer = 350
, _prjUpdates = theupdate , _prjUpdates = theupdate
, _prjMITID = Just $ _itID it , _prjMITID = Just $ _itID it
} }
where where
i = IM.newKey $ w ^. cWorld . lWorld . props-- _props (_cWorld w) i = IM.newKey $ w ^. cWorld . lWorld . projectiles -- _props (_cWorld w)
dir = _crDir cr dir = _crDir cr + _mzRot muz
pos = _crPos cr +.+ rotateV dir (V2 (_crRad cr + 1) 0) pos = _crPos cr +.+ rotateV dir (_mzPos muz)
--am = _heldConsumption $ _itUse it
fireTrackingShell :: AmmoParams -> Item -> Creature -> World -> World --am = _heldConsumption $ _itUse it
fireTrackingShell ap it cr =
fireTrackingShell :: Item -> Muzzle -> Item -> Creature -> World -> World
fireTrackingShell ammoitem muz it cr = fromMaybe id $ do
return $
makeShell makeShell
ap ammoitem
muz
it it
cr cr
[ PJRemoteShellCollisionCheck [ PJRemoteShellCollisionCheck
+5 -2
View File
@@ -17,9 +17,12 @@ import Dodge.Data.Universe
--import Data.Maybe --import Data.Maybe
--import ShortShow --import ShortShow
--import qualified Data.Map.Strict as M --import qualified Data.Map.Strict as M
--import qualified IntMapHelp as IM import qualified IntMapHelp as IM
testStringInit :: Universe -> [String] testStringInit :: Universe -> [String]
testStringInit _ = [] testStringInit u = [fromMaybe "" $ do
proj <- u ^? uvWorld . cWorld . lWorld . projectiles
return $ show $ IM.size proj
]
-- [fromMaybe "" $ do -- [fromMaybe "" $ do
-- cr <- u ^? uvWorld . cWorld . lWorld . creatures . ix 0 -- cr <- u ^? uvWorld . cWorld . lWorld . creatures . ix 0
-- i <- cr ^? crManipulation . manObject . inInventory . ispItem -- i <- cr ^? crManipulation . manObject . inInventory . ispItem
+82 -84
View File
@@ -200,7 +200,7 @@ BURSTRIFLE src/Dodge/Data/Item/Combine.hs 174;" C
BackgroundSound src/Dodge/Data/SoundOrigin.hs 14;" C BackgroundSound src/Dodge/Data/SoundOrigin.hs 14;" C
Ball src/Dodge/Tesla/Ball.hs 1;" m Ball src/Dodge/Tesla/Ball.hs 1;" m
BangCaneMod src/Dodge/Data/Item/HeldUse.hs 85;" C BangCaneMod src/Dodge/Data/Item/HeldUse.hs 85;" C
BangConeMod src/Dodge/Data/Item/HeldUse.hs 104;" C BangConeMod src/Dodge/Data/Item/HeldUse.hs 102;" C
BangRodMod src/Dodge/Data/Item/HeldUse.hs 89;" C BangRodMod src/Dodge/Data/Item/HeldUse.hs 89;" C
BangStickMod src/Dodge/Data/Item/HeldUse.hs 94;" C BangStickMod src/Dodge/Data/Item/HeldUse.hs 94;" C
Bark src/Dodge/Data/ActionPlan.hs 40;" C Bark src/Dodge/Data/ActionPlan.hs 40;" C
@@ -2170,8 +2170,6 @@ ResourceFailure src/Dodge/Data/Scenario.hs 29;" C
RetailFacility src/Dodge/Data/Scenario.hs 67;" C RetailFacility src/Dodge/Data/Scenario.hs 67;" C
ReturnEffect src/Dodge/Terminal/ReturnEffect.hs 1;" m ReturnEffect src/Dodge/Terminal/ReturnEffect.hs 1;" m
Revenge src/Dodge/Data/Scenario.hs 6;" C Revenge src/Dodge/Data/Scenario.hs 6;" C
RevolverXMod src/Dodge/Data/Item/HeldUse.hs 102;" C
RevolverXRepeatMod src/Dodge/Data/Item/HeldUse.hs 103;" C
RewindEffect src/Dodge/Data/ItEffect.hs 38;" C RewindEffect src/Dodge/Data/ItEffect.hs 38;" C
RewindLeftClick src/Dodge/Data/World.hs 72;" C RewindLeftClick src/Dodge/Data/World.hs 72;" C
RezBaySS src/Dodge/Data/Scenario.hs 105;" C RezBaySS src/Dodge/Data/Scenario.hs 105;" C
@@ -4375,7 +4373,7 @@ advanceScrollAmount src/Dodge/Update.hs 297;" f
advanceSmoothScroll src/Dodge/SmoothScroll.hs 29;" f advanceSmoothScroll src/Dodge/SmoothScroll.hs 29;" f
advanceStepCounter src/Dodge/Creature/Action/Movement.hs 56;" f advanceStepCounter src/Dodge/Creature/Action/Movement.hs 56;" f
advanceStepCounter src/Dodge/Creature/Impulse/Movement.hs 45;" f advanceStepCounter src/Dodge/Creature/Impulse/Movement.hs 45;" f
afterRecoil src/Dodge/Item/Weapon/TriggerType.hs 288;" f afterRecoil src/Dodge/Item/Weapon/TriggerType.hs 291;" f
aimDelaySweep src/Dodge/Render/ShapePicture.hs 44;" f aimDelaySweep src/Dodge/Render/ShapePicture.hs 44;" f
aimStanceInfo src/Dodge/Item/Info.hs 230;" f aimStanceInfo src/Dodge/Item/Info.hs 230;" f
aimTurn src/Dodge/Creature/YourControl.hs 188;" f aimTurn src/Dodge/Creature/YourControl.hs 188;" f
@@ -4509,7 +4507,7 @@ bangRod src/Dodge/Item/Weapon/BulletGun/Rod.hs 18;" f
bangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 478;" f bangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 478;" f
bangStick src/Dodge/Item/Held/Stick.hs 16;" f bangStick src/Dodge/Item/Held/Stick.hs 16;" f
bangStick src/Dodge/Item/Weapon/BulletGun/Stick.hs 17;" f bangStick src/Dodge/Item/Weapon/BulletGun/Stick.hs 17;" f
bangStickSoundChoice src/Dodge/HeldUse.hs 515;" f bangStickSoundChoice src/Dodge/HeldUse.hs 494;" f
bangStickSoundChoice src/Dodge/HeldUse/BulletWeapon.hs 226;" f bangStickSoundChoice src/Dodge/HeldUse/BulletWeapon.hs 226;" f
barPP src/Dodge/Room/Foreground.hs 236;" f barPP src/Dodge/Room/Foreground.hs 236;" f
barrel src/Dodge/Creature/Inanimate.hs 17;" f barrel src/Dodge/Creature/Inanimate.hs 17;" f
@@ -4530,7 +4528,7 @@ baseStickSpread src/Dodge/Item/Held/Stick.hs 35;" f
baseStickSpread src/Dodge/Item/Weapon/BulletGun/Stick.hs 46;" f baseStickSpread src/Dodge/Item/Weapon/BulletGun/Stick.hs 46;" f
baseWindowPane src/Dodge/Placements/Wall.hs 73;" f baseWindowPane src/Dodge/Placements/Wall.hs 73;" f
baseWindowPane src/Dodge/Room/Placement.hs 103;" f baseWindowPane src/Dodge/Room/Placement.hs 103;" f
basicAmPjMoves src/Dodge/Item/Held/Launcher.hs 54;" f basicAmPjMoves src/Dodge/Item/Held/Launcher.hs 58;" f
basicAttentionUpdate src/Dodge/Creature/AlertLevel.hs 50;" f basicAttentionUpdate src/Dodge/Creature/AlertLevel.hs 50;" f
basicAttentionUpdate src/Dodge/Creature/Perception.hs 127;" f basicAttentionUpdate src/Dodge/Creature/Perception.hs 127;" f
basicAwarenessUpdate src/Dodge/Creature/AlertLevel.hs 25;" f basicAwarenessUpdate src/Dodge/Creature/AlertLevel.hs 25;" f
@@ -4556,7 +4554,7 @@ bezierGun src/Dodge/Item/Weapon/Bezier.hs 24;" f
bfsNodePoints src/Dodge/Path.hs 58;" f bfsNodePoints src/Dodge/Path.hs 58;" f
bfsThenReturn src/Dodge/Creature/ReaderUpdate.hs 233;" f bfsThenReturn src/Dodge/Creature/ReaderUpdate.hs 233;" f
bindFBO src/Render.hs 244;" f bindFBO src/Render.hs 244;" f
blCheck src/Dodge/Item/Weapon/TriggerType.hs 378;" f blCheck src/Dodge/Item/Weapon/TriggerType.hs 381;" f
black src/Color.hs 27;" f black src/Color.hs 27;" f
blank src/Picture/Base.hs 59;" f blank src/Picture/Base.hs 59;" f
blinkAcrossChallenge src/Dodge/Room/BlinkAcross.hs 14;" f blinkAcrossChallenge src/Dodge/Room/BlinkAcross.hs 14;" f
@@ -4640,7 +4638,7 @@ canAttachTargeting src/Dodge/Item/Display.hs 33;" f
canHeldScrollAttach src/Dodge/HeldScroll.hs 75;" f canHeldScrollAttach src/Dodge/HeldScroll.hs 75;" f
canSee src/Dodge/Base/Collide.hs 228;" f canSee src/Dodge/Base/Collide.hs 228;" f
canSeeIndirect src/Dodge/Base/Collide.hs 235;" f canSeeIndirect src/Dodge/Base/Collide.hs 235;" f
caneStickSoundChoice src/Dodge/HeldUse.hs 510;" f caneStickSoundChoice src/Dodge/HeldUse.hs 489;" f
cardList src/Dodge/Base/CardinalPoint.hs 6;" f cardList src/Dodge/Base/CardinalPoint.hs 6;" f
cardVec src/Dodge/Base/CardinalPoint.hs 9;" f cardVec src/Dodge/Base/CardinalPoint.hs 9;" f
cardinalVectors src/Dodge/FloorItem.hs 38;" f cardinalVectors src/Dodge/FloorItem.hs 38;" f
@@ -4794,8 +4792,8 @@ composeTree src/Dodge/Tree/Compose.hs 46;" f
computerBeepingS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 458;" f computerBeepingS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 458;" f
conEffects src/Dodge/Concurrent.hs 17;" f conEffects src/Dodge/Concurrent.hs 17;" f
concBall src/Dodge/WorldEvent/SpawnParticle.hs 27;" f concBall src/Dodge/WorldEvent/SpawnParticle.hs 27;" f
coneRandItemParams src/Dodge/HeldUse.hs 524;" f coneRandItemParams src/Dodge/HeldUse.hs 503;" f
coneRandItemUpdate src/Dodge/HeldUse.hs 518;" f coneRandItemUpdate src/Dodge/HeldUse.hs 497;" f
connectRoom src/Dodge/Layout/Tree/Either.hs 48;" f connectRoom src/Dodge/Layout/Tree/Either.hs 48;" f
connectTrunk src/Dodge/Layout/Tree/Either.hs 54;" f connectTrunk src/Dodge/Layout/Tree/Either.hs 54;" f
connectionBlurb src/Dodge/Terminal.hs 100;" f connectionBlurb src/Dodge/Terminal.hs 100;" f
@@ -4876,7 +4874,7 @@ createHeldLight src/Dodge/ItEffect.hs 70;" f
createLightMap src/Render.hs 26;" f createLightMap src/Render.hs 26;" f
createNewArc src/Dodge/Tesla/Arc.hs 76;" f createNewArc src/Dodge/Tesla/Arc.hs 76;" f
createPathGrid src/Dodge/Room/Path.hs 21;" f createPathGrid src/Dodge/Room/Path.hs 21;" f
createProjectile src/Dodge/Projectile/Create.hs 9;" f createProjectile src/Dodge/Projectile/Create.hs 10;" f
createPutItem src/Dodge/Inventory/Add.hs 52;" f createPutItem src/Dodge/Inventory/Add.hs 52;" f
createShieldWall src/Dodge/Euse.hs 134;" f createShieldWall src/Dodge/Euse.hs 134;" f
createTorchLightOffset src/Dodge/LightSource/Torch.hs 9;" f createTorchLightOffset src/Dodge/LightSource/Torch.hs 9;" f
@@ -5377,12 +5375,12 @@ dualBeam src/Dodge/Item/Held/BatteryGuns.hs 136;" f
dualBeamPic src/Dodge/Item/Draw/SPic.hs 463;" f dualBeamPic src/Dodge/Item/Draw/SPic.hs 463;" f
dualRayAt src/Dodge/Item/Weapon/BatteryGuns.hs 194;" f dualRayAt src/Dodge/Item/Weapon/BatteryGuns.hs 194;" f
dummyMenuOption src/Dodge/Menu/Option.hs 81;" f dummyMenuOption src/Dodge/Menu/Option.hs 81;" f
duplicateItem src/Dodge/Item/Weapon/TriggerType.hs 709;" f duplicateItem src/Dodge/Item/Weapon/TriggerType.hs 712;" f
duplicateLoaded src/Dodge/Item/Weapon/TriggerType.hs 660;" f duplicateLoaded src/Dodge/Item/Weapon/TriggerType.hs 663;" f
duplicateLoadedBarrels src/Dodge/Item/Weapon/TriggerType.hs 682;" f duplicateLoadedBarrels src/Dodge/Item/Weapon/TriggerType.hs 685;" f
duplicateNumBarrels src/Dodge/Item/Weapon/TriggerType.hs 668;" f duplicateNumBarrels src/Dodge/Item/Weapon/TriggerType.hs 671;" f
duplicateOffsetsFocus src/Dodge/Item/Weapon/TriggerType.hs 690;" f duplicateOffsetsFocus src/Dodge/Item/Weapon/TriggerType.hs 693;" f
duplicateOffsetsV2 src/Dodge/Item/Weapon/TriggerType.hs 714;" f duplicateOffsetsV2 src/Dodge/Item/Weapon/TriggerType.hs 717;" f
ebFlicker src/Dodge/EnergyBall.hs 94;" f ebFlicker src/Dodge/EnergyBall.hs 94;" f
edgeFormatting src/Dodge/Combine/Graph.hs 119;" f edgeFormatting src/Dodge/Combine/Graph.hs 119;" f
edgeToPic src/Dodge/Debug/Picture.hs 392;" f edgeToPic src/Dodge/Debug/Picture.hs 392;" f
@@ -5468,11 +5466,11 @@ findReverseEdgeList src/Polyhedra.hs 56;" f
findWallFreeDropPoint src/Dodge/FloorItem.hs 46;" f findWallFreeDropPoint src/Dodge/FloorItem.hs 46;" f
findWallsInPolygon src/Dodge/LevelGen/StaticWalls/Deprecated.hs 78;" f findWallsInPolygon src/Dodge/LevelGen/StaticWalls/Deprecated.hs 78;" f
fireLoudS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 504;" f fireLoudS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 504;" f
fireRemoteShell src/Dodge/HeldUse.hs 485;" f fireRemoteShell src/Dodge/HeldUse.hs 464;" f
fireS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 332;" f fireS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 332;" f
fireShell src/Dodge/Projectile/Create.hs 16;" f fireShell src/Dodge/Projectile/Create.hs 17;" f
fireSound src/Dodge/SoundLogic/Synonyms.hs 4;" f fireSound src/Dodge/SoundLogic/Synonyms.hs 4;" f
fireTrackingShell src/Dodge/Projectile/Create.hs 58;" f fireTrackingShell src/Dodge/Projectile/Create.hs 62;" f
firstBreather src/Dodge/Room/Breather.hs 9;" f firstBreather src/Dodge/Room/Breather.hs 9;" f
firstWorldLoad appDodge/Main.hs 77;" f firstWorldLoad appDodge/Main.hs 77;" f
fixedCoordPictures src/Dodge/Render/Picture.hs 17;" f fixedCoordPictures src/Dodge/Render/Picture.hs 17;" f
@@ -5578,7 +5576,7 @@ geometryQuickCheckTests test/Spec.hs 55;" f
geometryTests test/Spec.hs 17;" f geometryTests test/Spec.hs 17;" f
geometryUnitTests test/Spec.hs 22;" f geometryUnitTests test/Spec.hs 22;" f
geqConstr src/SameConstr.hs 21;" f geqConstr src/SameConstr.hs 21;" f
getAmmoMagazine src/Dodge/HeldUse.hs 462;" f getAmmoMagazine src/Dodge/HeldUse.hs 441;" f
getAmmoMags src/Dodge/Creature/Impulse/UseItem.hs 35;" f getAmmoMags src/Dodge/Creature/Impulse/UseItem.hs 35;" f
getArguments src/Dodge/Update/Scroll.hs 147;" f getArguments src/Dodge/Update/Scroll.hs 147;" f
getArguments' src/Dodge/Update/Scroll.hs 135;" f getArguments' src/Dodge/Update/Scroll.hs 135;" f
@@ -5657,7 +5655,7 @@ hackOutline src/Dodge/Render/Outline.hs 5;" f
halfHeight src/Dodge/Base/Window.hs 48;" f halfHeight src/Dodge/Base/Window.hs 48;" f
halfWidth src/Dodge/Base/Window.hs 48;" f halfWidth src/Dodge/Base/Window.hs 48;" f
haltSound src/Dodge/SoundLogic.hs 37;" f haltSound src/Dodge/SoundLogic.hs 37;" f
hammerCheckL src/Dodge/Item/Weapon/TriggerType.hs 386;" f hammerCheckL src/Dodge/Item/Weapon/TriggerType.hs 389;" f
handleEvent src/Dodge/Event.hs 27;" f handleEvent src/Dodge/Event.hs 27;" f
handleHotkeys src/Dodge/Creature/YourControl.hs 42;" f handleHotkeys src/Dodge/Creature/YourControl.hs 42;" f
handleKeyboardEvent src/Dodge/Event/Input.hs 22;" f handleKeyboardEvent src/Dodge/Event/Input.hs 22;" f
@@ -5850,7 +5848,7 @@ itBounds src/Dodge/Item/Module.hs 22;" f
itSlotsTaken src/Dodge/Inventory/ItemSpace.hs 9;" f itSlotsTaken src/Dodge/Inventory/ItemSpace.hs 9;" f
itSlotsTaken src/Dodge/Item/SlotsTaken.hs 9;" f itSlotsTaken src/Dodge/Item/SlotsTaken.hs 9;" f
itStackAmount src/Dodge/Item/Amount.hs 7;" f itStackAmount src/Dodge/Item/Amount.hs 7;" f
itUseCharge src/Dodge/Item/Weapon/TriggerType.hs 154;" f itUseCharge src/Dodge/Item/Weapon/TriggerType.hs 157;" f
itemBaseName src/Dodge/Item/Display.hs 75;" f itemBaseName src/Dodge/Item/Display.hs 75;" f
itemBlips src/Dodge/Item/Weapon/UseEffect.hs 38;" f itemBlips src/Dodge/Item/Weapon/UseEffect.hs 38;" f
itemBlips src/Dodge/RadarSweep.hs 74;" f itemBlips src/Dodge/RadarSweep.hs 74;" f
@@ -5938,14 +5936,14 @@ lasTunnelRunPast src/Dodge/Room/LasTurret.hs 165;" f
lasTurret src/Dodge/Placement/Instance/Turret.hs 23;" f lasTurret src/Dodge/Placement/Instance/Turret.hs 23;" f
lasTurret src/Dodge/Placements/Turret.hs 29;" f lasTurret src/Dodge/Placements/Turret.hs 29;" f
lasWide src/Dodge/Item/Held/BatteryGuns.hs 97;" f lasWide src/Dodge/Item/Held/BatteryGuns.hs 97;" f
lasWideRate src/Dodge/HeldUse.hs 377;" f lasWideRate src/Dodge/HeldUse.hs 353;" f
latchkey src/Dodge/Item/Held/Utility.hs 23;" f latchkey src/Dodge/Item/Held/Utility.hs 23;" f
latchkey src/Dodge/Item/PassKey.hs 14;" f latchkey src/Dodge/Item/PassKey.hs 14;" f
launcher src/Dodge/Item/Held/Launcher.hs 10;" f launcher src/Dodge/Item/Held/Launcher.hs 11;" f
launcherCrit src/Dodge/Creature/LauncherCrit.hs 12;" f launcherCrit src/Dodge/Creature/LauncherCrit.hs 12;" f
launcherPic src/Dodge/Item/Draw/SPic.hs 423;" f launcherPic src/Dodge/Item/Draw/SPic.hs 423;" f
launcherSound src/Dodge/SoundLogic/Synonyms.hs 4;" f launcherSound src/Dodge/SoundLogic/Synonyms.hs 4;" f
launcherX src/Dodge/Item/Held/Launcher.hs 39;" f launcherX src/Dodge/Item/Held/Launcher.hs 40;" f
layerNum src/Picture/Data.hs 31;" f layerNum src/Picture/Data.hs 31;" f
layoutLevelFromSeed src/Dodge/LevelGen.hs 47;" f layoutLevelFromSeed src/Dodge/LevelGen.hs 47;" f
ldpVerticalSelection src/Dodge/Update/Input/ScreenLayer.hs 90;" f ldpVerticalSelection src/Dodge/Update/Input/ScreenLayer.hs 90;" f
@@ -6095,7 +6093,7 @@ makeShaderProgram src/Shader/Compile.hs 287;" f
makeShaderUsingVAO src/Shader/Compile.hs 155;" f makeShaderUsingVAO src/Shader/Compile.hs 155;" f
makeShaderUsingVBO src/Shader/Compile.hs 78;" f makeShaderUsingVBO src/Shader/Compile.hs 78;" f
makeShaderVBO src/Shader/Compile.hs 38;" f makeShaderVBO src/Shader/Compile.hs 38;" f
makeShell src/Dodge/Projectile/Create.hs 34;" f makeShell src/Dodge/Projectile/Create.hs 37;" f
makeShockwaveAt src/Dodge/WorldEvent/Shockwave.hs 12;" f makeShockwaveAt src/Dodge/WorldEvent/Shockwave.hs 12;" f
makeSourcedShader src/Shader/Compile.hs 203;" f makeSourcedShader src/Shader/Compile.hs 203;" f
makeStartCloudAt src/Dodge/WorldEvent/Cloud.hs 60;" f makeStartCloudAt src/Dodge/WorldEvent/Cloud.hs 60;" f
@@ -6146,10 +6144,10 @@ mcProximitySensorUpdate src/Dodge/Machine/Update.hs 104;" f
mcSPic src/Dodge/Render/ShapePicture.hs 169;" f mcSPic src/Dodge/Render/ShapePicture.hs 169;" f
mcSensorTriggerUpdate src/Dodge/Machine/Update.hs 69;" f mcSensorTriggerUpdate src/Dodge/Machine/Update.hs 69;" f
mcSensorUpdate src/Dodge/Machine/Update.hs 99;" f mcSensorUpdate src/Dodge/Machine/Update.hs 99;" f
mcShootLaser src/Dodge/HeldUse.hs 532;" f mcShootLaser src/Dodge/HeldUse.hs 511;" f
mcTriggerVal src/Dodge/Machine/Update.hs 75;" f mcTriggerVal src/Dodge/Machine/Update.hs 75;" f
mcTypeUpdate src/Dodge/Machine/Update.hs 24;" f mcTypeUpdate src/Dodge/Machine/Update.hs 24;" f
mcUseHeld src/Dodge/HeldUse.hs 380;" f mcUseHeld src/Dodge/HeldUse.hs 356;" f
mcUseItem src/Dodge/Machine/Update.hs 61;" f mcUseItem src/Dodge/Machine/Update.hs 61;" f
medkit src/Dodge/Item/Consumable.hs 8;" f medkit src/Dodge/Item/Consumable.hs 8;" f
meleeHeadingMove src/Dodge/Creature/Boid.hs 281;" f meleeHeadingMove src/Dodge/Creature/Boid.hs 281;" f
@@ -6192,7 +6190,7 @@ mini1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 322;" f
miniGunCrit src/Dodge/Creature.hs 62;" f miniGunCrit src/Dodge/Creature.hs 62;" f
miniGunUse src/Dodge/Item/Held/Cane.hs 94;" f miniGunUse src/Dodge/Item/Held/Cane.hs 94;" f
miniGunUse src/Dodge/Item/Weapon/BulletGun/Cane.hs 113;" f miniGunUse src/Dodge/Item/Weapon/BulletGun/Cane.hs 113;" f
miniGunX src/Dodge/Item/Held/Cane.hs 105;" f miniGunX src/Dodge/Item/Held/Cane.hs 106;" f
miniGunX src/Dodge/Item/Weapon/BulletGun/Cane.hs 120;" f miniGunX src/Dodge/Item/Weapon/BulletGun/Cane.hs 120;" f
miniGunXPict src/Dodge/Item/Draw/SPic.hs 383;" f miniGunXPict src/Dodge/Item/Draw/SPic.hs 383;" f
miniGunXPictItem src/Dodge/Item/Draw/SPic.hs 377;" f miniGunXPictItem src/Dodge/Item/Draw/SPic.hs 377;" f
@@ -6222,7 +6220,7 @@ mntLight src/Dodge/Placement/Instance/LightSource.hs 154;" f
mntLight src/Dodge/Placements/LightSource.hs 89;" f mntLight src/Dodge/Placements/LightSource.hs 89;" f
mntLightLnkCond src/Dodge/Placement/Instance/LightSource.hs 159;" f mntLightLnkCond src/Dodge/Placement/Instance/LightSource.hs 159;" f
mntLightLnkCond src/Dodge/Placements/LightSource.hs 94;" f mntLightLnkCond src/Dodge/Placements/LightSource.hs 94;" f
modClock src/Dodge/Item/Weapon/TriggerType.hs 445;" f modClock src/Dodge/Item/Weapon/TriggerType.hs 448;" f
modTo src/Geometry/Zone.hs 10;" f modTo src/Geometry/Zone.hs 10;" f
modifierKey src/Dodge/Config/KeyConfig.hs 34;" f modifierKey src/Dodge/Config/KeyConfig.hs 34;" f
moduleAttachPosition src/Dodge/Item/Module.hs 6;" f moduleAttachPosition src/Dodge/Item/Module.hs 6;" f
@@ -6385,9 +6383,9 @@ overColObj src/Shape.hs 269;" f
overColSH src/Shape.hs 237;" f overColSH src/Shape.hs 237;" f
overLnkPosDir src/Dodge/RoomLink.hs 100;" f overLnkPosDir src/Dodge/RoomLink.hs 100;" f
overLnkType src/Dodge/RoomLink.hs 87;" f overLnkType src/Dodge/RoomLink.hs 87;" f
overNozzle src/Dodge/HeldUse.hs 443;" f overNozzle src/Dodge/HeldUse.hs 422;" f
overNozzles src/Dodge/HeldUse.hs 421;" f overNozzles src/Dodge/HeldUse.hs 400;" f
overNozzles' src/Dodge/HeldUse.hs 430;" f overNozzles' src/Dodge/HeldUse.hs 409;" f
overPos src/Picture/Base.hs 302;" f overPos src/Picture/Base.hs 302;" f
overPosObj src/Shape.hs 273;" f overPosObj src/Shape.hs 273;" f
overPosSH src/Shape.hs 257;" f overPosSH src/Shape.hs 257;" f
@@ -6754,7 +6752,7 @@ randsOnCirc src/RandomHelp.hs 118;" f
randsSpread src/Dodge/RandomHelp.hs 100;" f randsSpread src/Dodge/RandomHelp.hs 100;" f
randsSpread src/RandomHelp.hs 111;" f randsSpread src/RandomHelp.hs 111;" f
ratIntersectLineLine src/Geometry/Intersect.hs 195;" f ratIntersectLineLine src/Geometry/Intersect.hs 195;" f
rateIncAB src/Dodge/Item/Weapon/TriggerType.hs 164;" f rateIncAB src/Dodge/Item/Weapon/TriggerType.hs 167;" f
readSaveSlot src/Dodge/Save.hs 45;" f readSaveSlot src/Dodge/Save.hs 45;" f
rectNESW src/Geometry/Polygon.hs 13;" f rectNESW src/Geometry/Polygon.hs 13;" f
rectNSWE src/Geometry/Polygon.hs 19;" f rectNSWE src/Geometry/Polygon.hs 19;" f
@@ -6788,7 +6786,7 @@ reloadS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 426;" f
reloadSound src/Dodge/SoundLogic/Synonyms.hs 4;" f reloadSound src/Dodge/SoundLogic/Synonyms.hs 4;" f
rememberSounds src/Dodge/Creature/Perception.hs 177;" f rememberSounds src/Dodge/Creature/Perception.hs 177;" f
remoteBombUnarmedPic src/Dodge/Item/Weapon/Grenade.hs 268;" f remoteBombUnarmedPic src/Dodge/Item/Weapon/Grenade.hs 268;" f
remoteLauncher src/Dodge/Item/Held/Launcher.hs 46;" f remoteLauncher src/Dodge/Item/Held/Launcher.hs 50;" f
remoteShellCollisionCheck src/Dodge/Projectile/Update.hs 44;" f remoteShellCollisionCheck src/Dodge/Projectile/Update.hs 44;" f
remoteShellShape src/Dodge/Projectile/Draw.hs 39;" f remoteShellShape src/Dodge/Projectile/Draw.hs 39;" f
removeEither src/Dodge/Layout/Tree/Either.hs 41;" f removeEither src/Dodge/Layout/Tree/Either.hs 41;" f
@@ -6805,7 +6803,7 @@ renderLayer src/Render.hs 233;" f
renderLightingNoShadows src/Render.hs 48;" f renderLightingNoShadows src/Render.hs 48;" f
renderListAt src/Dodge/Render/List.hs 160;" f renderListAt src/Dodge/Render/List.hs 160;" f
renderShadows src/Render.hs 117;" f renderShadows src/Render.hs 117;" f
repeatOnFrames src/Dodge/Item/Weapon/TriggerType.hs 648;" f repeatOnFrames src/Dodge/Item/Weapon/TriggerType.hs 651;" f
repeatTransformed src/Dodge/Item/Weapon/TriggerType.hs 95;" f repeatTransformed src/Dodge/Item/Weapon/TriggerType.hs 95;" f
repeater src/Dodge/Item/Held/Cane.hs 72;" f repeater src/Dodge/Item/Held/Cane.hs 72;" f
repeater src/Dodge/Item/Weapon/BulletGun/Cane.hs 89;" f repeater src/Dodge/Item/Weapon/BulletGun/Cane.hs 89;" f
@@ -7111,7 +7109,7 @@ shootFirstMiss src/Dodge/Creature/Volition.hs 33;" f
shootFlameSpitter src/Dodge/HeldUse/SprayWeapon.hs 9;" f shootFlameSpitter src/Dodge/HeldUse/SprayWeapon.hs 9;" f
shootFlameSpitterRepeat src/Dodge/HeldUse/SprayWeapon.hs 19;" f shootFlameSpitterRepeat src/Dodge/HeldUse/SprayWeapon.hs 19;" f
shootFlameThrower src/Dodge/HeldUse/SprayWeapon.hs 26;" f shootFlameThrower src/Dodge/HeldUse/SprayWeapon.hs 26;" f
shootL src/Dodge/Item/Weapon/TriggerType.hs 400;" f shootL src/Dodge/Item/Weapon/TriggerType.hs 403;" f
shootLaser src/Dodge/Item/Weapon/BatteryGuns.hs 127;" f shootLaser src/Dodge/Item/Weapon/BatteryGuns.hs 127;" f
shootMachineGun src/Dodge/HeldUse/BulletWeapon.hs 218;" f shootMachineGun src/Dodge/HeldUse/BulletWeapon.hs 218;" f
shootMachinePistol src/Dodge/HeldUse/BulletWeapon.hs 62;" f shootMachinePistol src/Dodge/HeldUse/BulletWeapon.hs 62;" f
@@ -7123,7 +7121,7 @@ shootRevolverXRepeat src/Dodge/HeldUse/BulletWeapon.hs 49;" f
shootRifle src/Dodge/HeldUse/BulletWeapon.hs 140;" f shootRifle src/Dodge/HeldUse/BulletWeapon.hs 140;" f
shootShatter src/Dodge/Item/Weapon/Shatter.hs 12;" f shootShatter src/Dodge/Item/Weapon/Shatter.hs 12;" f
shootSmgMod src/Dodge/HeldUse/BulletWeapon.hs 86;" f shootSmgMod src/Dodge/HeldUse/BulletWeapon.hs 86;" f
shootTeslaArc src/Dodge/HeldUse.hs 541;" f shootTeslaArc src/Dodge/HeldUse.hs 520;" f
shootTillEmpty src/Dodge/Creature/Volition.hs 18;" f shootTillEmpty src/Dodge/Creature/Volition.hs 18;" f
shootVolleyGun src/Dodge/HeldUse/BulletWeapon.hs 128;" f shootVolleyGun src/Dodge/HeldUse/BulletWeapon.hs 128;" f
shootersRoom src/Dodge/Room/Room.hs 317;" f shootersRoom src/Dodge/Room/Room.hs 317;" f
@@ -7161,7 +7159,7 @@ shuffleLinks src/Dodge/Room/Link.hs 30;" f
shuffleRoomPos src/Dodge/Layout.hs 78;" f shuffleRoomPos src/Dodge/Layout.hs 78;" f
shuffleTail src/Dodge/RandomHelp.hs 50;" f shuffleTail src/Dodge/RandomHelp.hs 50;" f
shuffleTail src/RandomHelp.hs 55;" f shuffleTail src/RandomHelp.hs 55;" f
sideEffectOnFrame src/Dodge/Item/Weapon/TriggerType.hs 628;" f sideEffectOnFrame src/Dodge/Item/Weapon/TriggerType.hs 631;" f
sideEffectUpdatePreload src/Dodge/PreloadData.hs 7;" f sideEffectUpdatePreload src/Dodge/PreloadData.hs 7;" f
sigmoid src/Dodge/Base.hs 129;" f sigmoid src/Dodge/Base.hs 129;" f
simpleCrSprings src/Dodge/Update.hs 639;" f simpleCrSprings src/Dodge/Update.hs 639;" f
@@ -7241,8 +7239,8 @@ spawnSmokeAtCursor src/Dodge/WorldEvent/Cloud.hs 73;" f
spawnerCrit src/Dodge/Creature.hs 55;" f spawnerCrit src/Dodge/Creature.hs 55;" f
spawnerRoom src/Dodge/Room/Room.hs 362;" f spawnerRoom src/Dodge/Room/Room.hs 362;" f
speedLegs src/Dodge/Item/Equipment.hs 131;" f speedLegs src/Dodge/Item/Equipment.hs 131;" f
spinDrag src/Dodge/Item/Held/Launcher.hs 62;" f spinDrag src/Dodge/Item/Held/Launcher.hs 66;" f
spinStart src/Dodge/Item/Held/Launcher.hs 70;" f spinStart src/Dodge/Item/Held/Launcher.hs 74;" f
splashMenu src/Dodge/Menu.hs 27;" f splashMenu src/Dodge/Menu.hs 27;" f
splashMenuOptions src/Dodge/Menu.hs 32;" f splashMenuOptions src/Dodge/Menu.hs 32;" f
splashScreen src/Dodge/Initialisation.hs 11;" f splashScreen src/Dodge/Initialisation.hs 11;" f
@@ -7287,7 +7285,7 @@ ssfold src/FoldableHelp.hs 104;" f
stackPicturesAt src/Dodge/Render/List.hs 81;" f stackPicturesAt src/Dodge/Render/List.hs 81;" f
stackPicturesAtOff src/Dodge/Render/List.hs 84;" f stackPicturesAtOff src/Dodge/Render/List.hs 84;" f
stackText src/Picture/Base.hs 188;" f stackText src/Picture/Base.hs 188;" f
stackedInventory src/Dodge/Creature.hs 253;" f stackedInventory src/Dodge/Creature.hs 259;" f
startCr src/Dodge/Creature.hs 91;" f startCr src/Dodge/Creature.hs 91;" f
startCrafts src/Dodge/Room/Start.hs 102;" f startCrafts src/Dodge/Room/Start.hs 102;" f
startInvList src/Dodge/Creature.hs 109;" f startInvList src/Dodge/Creature.hs 109;" f
@@ -7401,7 +7399,7 @@ teslaParams src/Dodge/Tesla/ItemParams.hs 6;" f
testCrossWalls src/Dodge/Room/Path.hs 47;" f testCrossWalls src/Dodge/Room/Path.hs 47;" f
testEvent src/Dodge/Event/Test.hs 10;" f testEvent src/Dodge/Event/Test.hs 10;" f
testEventKey src/Dodge/Config/KeyConfig.hs 27;" f testEventKey src/Dodge/Config/KeyConfig.hs 27;" f
testInventory src/Dodge/Creature.hs 230;" f testInventory src/Dodge/Creature.hs 236;" f
testPic src/Dodge/Render/ShapePicture.hs 153;" f testPic src/Dodge/Render/ShapePicture.hs 153;" f
testStringInit src/Dodge/TestString.hs 21;" f testStringInit src/Dodge/TestString.hs 21;" f
text src/Picture/Base.hs 192;" f text src/Picture/Base.hs 192;" f
@@ -7430,7 +7428,7 @@ thingsHit src/Dodge/WorldEvent/ThingsHit.hs 29;" f
thingsHitExceptCr src/Dodge/WorldEvent/ThingsHit.hs 73;" f thingsHitExceptCr src/Dodge/WorldEvent/ThingsHit.hs 73;" f
threeLineDecoration src/Dodge/Placement/TopDecoration.hs 61;" f threeLineDecoration src/Dodge/Placement/TopDecoration.hs 61;" f
throwRemoteBomb src/Dodge/Item/Weapon/Grenade.hs 205;" f throwRemoteBomb src/Dodge/Item/Weapon/Grenade.hs 205;" f
thrustParam src/Dodge/Item/Held/Launcher.hs 78;" f thrustParam src/Dodge/Item/Held/Launcher.hs 82;" f
tileTexCoords src/Tile.hs 10;" f tileTexCoords src/Tile.hs 10;" f
tilesFromRooms src/Dodge/Layout.hs 205;" f tilesFromRooms src/Dodge/Layout.hs 205;" f
tilesToLine src/Shader/AuxAddition.hs 66;" f tilesToLine src/Shader/AuxAddition.hs 66;" f
@@ -7475,10 +7473,10 @@ topPrismEdgeIndices src/Shader/Poke.hs 327;" f
topPrismIndices src/Shader/Poke.hs 402;" f topPrismIndices src/Shader/Poke.hs 402;" f
torch src/Dodge/Item/Held/Utility.hs 26;" f torch src/Dodge/Item/Held/Utility.hs 26;" f
torchShape src/Dodge/Item/Draw/SPic.hs 195;" f torchShape src/Dodge/Item/Draw/SPic.hs 195;" f
torqueBefore src/Dodge/Item/Weapon/TriggerType.hs 558;" f torqueBefore src/Dodge/Item/Weapon/TriggerType.hs 561;" f
torqueBeforeAtLeast src/Dodge/Item/Weapon/TriggerType.hs 581;" f torqueBeforeAtLeast src/Dodge/Item/Weapon/TriggerType.hs 584;" f
torqueCr src/Dodge/WorldEffect.hs 64;" f torqueCr src/Dodge/WorldEffect.hs 64;" f
torqueSideEffect src/Dodge/Item/Weapon/TriggerType.hs 636;" f torqueSideEffect src/Dodge/Item/Weapon/TriggerType.hs 639;" f
torso src/Dodge/Creature/Picture.hs 132;" f torso src/Dodge/Creature/Picture.hs 132;" f
tractCr src/Dodge/TractorBeam/Update.hs 27;" f tractCr src/Dodge/TractorBeam/Update.hs 27;" f
tractFlIt src/Dodge/TractorBeam/Update.hs 22;" f tractFlIt src/Dodge/TractorBeam/Update.hs 22;" f
@@ -7748,16 +7746,16 @@ upperPrismPolySU src/Shape.hs 112;" f
upperPrismPolyTS src/Shape.hs 118;" f upperPrismPolyTS src/Shape.hs 118;" f
upperRounded src/Shape.hs 181;" f upperRounded src/Shape.hs 181;" f
upsProjectile src/Dodge/Projectile/Update.hs 53;" f upsProjectile src/Dodge/Projectile/Update.hs 53;" f
useAllAmmo src/Dodge/Item/Weapon/TriggerType.hs 339;" f useAllAmmo src/Dodge/Item/Weapon/TriggerType.hs 342;" f
useAmmoAmount src/Dodge/Item/Weapon/TriggerType.hs 356;" f useAmmoAmount src/Dodge/Item/Weapon/TriggerType.hs 359;" f
useAmmoParams src/Dodge/Item/Weapon/AmmoParams.hs 17;" f useAmmoParams src/Dodge/Item/Weapon/AmmoParams.hs 17;" f
useAmmoUpTo src/Dodge/Item/Weapon/TriggerType.hs 347;" f useAmmoUpTo src/Dodge/Item/Weapon/TriggerType.hs 350;" f
useC src/Dodge/Cuse.hs 6;" f useC src/Dodge/Cuse.hs 6;" f
useE src/Dodge/Euse.hs 24;" f useE src/Dodge/Euse.hs 24;" f
useEquipment src/Dodge/Creature/State.hs 219;" f useEquipment src/Dodge/Creature/State.hs 219;" f
useForceFieldGun src/Dodge/HeldUse.hs 554;" f useForceFieldGun src/Dodge/HeldUse.hs 533;" f
useGasParams src/Dodge/HeldUse.hs 471;" f useGasParams src/Dodge/HeldUse.hs 450;" f
useHeld src/Dodge/HeldUse.hs 385;" f useHeld src/Dodge/HeldUse.hs 361;" f
useHotKey src/Dodge/Creature/YourControl.hs 49;" f useHotKey src/Dodge/Creature/YourControl.hs 49;" f
useItem src/Dodge/Creature/Action/UseItem.hs 14;" f useItem src/Dodge/Creature/Action/UseItem.hs 14;" f
useItemHotkey src/Dodge/Creature/Impulse/UseItem.hs 120;" f useItemHotkey src/Dodge/Creature/Impulse/UseItem.hs 120;" f
@@ -7770,15 +7768,15 @@ useMagShield src/Dodge/Euse.hs 69;" f
useMod src/Dodge/HeldUse.hs 28;" f useMod src/Dodge/HeldUse.hs 28;" f
useNormalCamera src/Dodge/Camera.hs 6;" f useNormalCamera src/Dodge/Camera.hs 6;" f
usePayload src/Dodge/Payload.hs 7;" f usePayload src/Dodge/Payload.hs 7;" f
usePjCreation src/Dodge/HeldUse.hs 404;" f usePjCreation src/Dodge/HeldUse.hs 380;" f
usePjCreationX src/Dodge/HeldUse.hs 409;" f usePjCreationX src/Dodge/HeldUse.hs 386;" f
useRewindGun src/Dodge/Luse.hs 41;" f useRewindGun src/Dodge/Luse.hs 41;" f
useRoomPosCond src/Dodge/PlacementSpot.hs 178;" f useRoomPosCond src/Dodge/PlacementSpot.hs 178;" f
useRoomPosRoomCond src/Dodge/PlacementSpot.hs 181;" f useRoomPosRoomCond src/Dodge/PlacementSpot.hs 181;" f
useShrinkGun src/Dodge/Luse.hs 59;" f useShrinkGun src/Dodge/Luse.hs 59;" f
useStopWatch src/Dodge/Luse.hs 24;" f useStopWatch src/Dodge/Luse.hs 24;" f
useTargetPos src/Dodge/Item/Weapon/Targeting.hs 9;" f useTargetPos src/Dodge/Item/Weapon/Targeting.hs 9;" f
useTimeCheck src/Dodge/Item/Weapon/TriggerType.hs 367;" f useTimeCheck src/Dodge/Item/Weapon/TriggerType.hs 370;" f
useTimeScrollGun src/Dodge/Luse.hs 32;" f useTimeScrollGun src/Dodge/Luse.hs 32;" f
useUnusedLnk src/Dodge/PlacementSpot.hs 169;" f useUnusedLnk src/Dodge/PlacementSpot.hs 169;" f
useUpdate src/Dodge/Creature/State.hs 211;" f useUpdate src/Dodge/Creature/State.hs 211;" f
@@ -7875,36 +7873,36 @@ windowxsize src/LoadConfig.hs 12;" f
windowysize src/LoadConfig.hs 13;" f windowysize src/LoadConfig.hs 13;" f
withAlpha src/Color.hs 10;" f withAlpha src/Color.hs 10;" f
withByteString src/Shader/Compile.hs 370;" f withByteString src/Shader/Compile.hs 370;" f
withCrPos src/Dodge/Item/Weapon/TriggerType.hs 483;" f withCrPos src/Dodge/Item/Weapon/TriggerType.hs 486;" f
withCrPosShift src/Dodge/Item/Weapon/TriggerType.hs 486;" f withCrPosShift src/Dodge/Item/Weapon/TriggerType.hs 489;" f
withFlare src/Dodge/Item/Weapon/TriggerType.hs 450;" f withFlare src/Dodge/Item/Weapon/TriggerType.hs 453;" f
withItem src/Dodge/Item/Weapon/TriggerType.hs 423;" f withItem src/Dodge/Item/Weapon/TriggerType.hs 426;" f
withItemUpdate src/Dodge/Item/Weapon/TriggerType.hs 432;" f withItemUpdate src/Dodge/Item/Weapon/TriggerType.hs 435;" f
withItemUpdateFirst src/Dodge/Item/Weapon/TriggerType.hs 427;" f withItemUpdateFirst src/Dodge/Item/Weapon/TriggerType.hs 430;" f
withMuzFlare src/Dodge/Item/Weapon/TriggerType.hs 462;" f withMuzFlare src/Dodge/Item/Weapon/TriggerType.hs 465;" f
withOldDir src/Dodge/Item/Weapon/TriggerType.hs 500;" f withOldDir src/Dodge/Item/Weapon/TriggerType.hs 503;" f
withPosDirWallCheck src/Dodge/Item/Weapon/TriggerType.hs 540;" f withPosDirWallCheck src/Dodge/Item/Weapon/TriggerType.hs 543;" f
withPositionOffset src/Dodge/Item/Weapon/TriggerType.hs 524;" f withPositionOffset src/Dodge/Item/Weapon/TriggerType.hs 527;" f
withPositionWallCheck src/Dodge/Item/Weapon/TriggerType.hs 531;" f withPositionWallCheck src/Dodge/Item/Weapon/TriggerType.hs 534;" f
withRandomDirI src/Dodge/Item/Weapon/TriggerType.hs 492;" f withRandomDirI src/Dodge/Item/Weapon/TriggerType.hs 495;" f
withRandomItem src/Dodge/Item/Weapon/TriggerType.hs 519;" f withRandomItem src/Dodge/Item/Weapon/TriggerType.hs 522;" f
withRandomItemParams src/Dodge/Item/Weapon/TriggerType.hs 514;" f withRandomItemParams src/Dodge/Item/Weapon/TriggerType.hs 517;" f
withRandomItemUpdate src/Dodge/Item/Weapon/TriggerType.hs 507;" f withRandomItemUpdate src/Dodge/Item/Weapon/TriggerType.hs 510;" f
withRandomOffset src/Dodge/Item/Weapon/TriggerType.hs 550;" f withRandomOffset src/Dodge/Item/Weapon/TriggerType.hs 553;" f
withRecoil src/Dodge/Item/Weapon/TriggerType.hs 297;" f withRecoil src/Dodge/Item/Weapon/TriggerType.hs 300;" f
withSidePushAfterI src/Dodge/Item/Weapon/TriggerType.hs 326;" f withSidePushAfterI src/Dodge/Item/Weapon/TriggerType.hs 329;" f
withSidePushI src/Dodge/Item/Weapon/TriggerType.hs 307;" f withSidePushI src/Dodge/Item/Weapon/TriggerType.hs 310;" f
withSmoke src/Dodge/Item/Weapon/TriggerType.hs 115;" f withSmoke src/Dodge/Item/Weapon/TriggerType.hs 115;" f
withSoundContinue src/Dodge/Item/Weapon/TriggerType.hs 250;" f withSoundContinue src/Dodge/Item/Weapon/TriggerType.hs 253;" f
withSoundForI src/Dodge/Item/Weapon/TriggerType.hs 263;" f withSoundForI src/Dodge/Item/Weapon/TriggerType.hs 266;" f
withSoundForVol src/Dodge/Item/Weapon/TriggerType.hs 276;" f withSoundForVol src/Dodge/Item/Weapon/TriggerType.hs 279;" f
withSoundItemChoiceStart src/Dodge/Item/Weapon/TriggerType.hs 221;" f withSoundItemChoiceStart src/Dodge/Item/Weapon/TriggerType.hs 224;" f
withSoundStart src/Dodge/Item/Weapon/TriggerType.hs 237;" f withSoundStart src/Dodge/Item/Weapon/TriggerType.hs 240;" f
withTempLight src/Dodge/Item/Weapon/TriggerType.hs 437;" f withTempLight src/Dodge/Item/Weapon/TriggerType.hs 440;" f
withThickSmokeI src/Dodge/Item/Weapon/TriggerType.hs 133;" f withThickSmokeI src/Dodge/Item/Weapon/TriggerType.hs 133;" f
withThinSmokeI src/Dodge/Item/Weapon/TriggerType.hs 124;" f withThinSmokeI src/Dodge/Item/Weapon/TriggerType.hs 124;" f
withTorqueAfter src/Dodge/Item/Weapon/TriggerType.hs 607;" f withTorqueAfter src/Dodge/Item/Weapon/TriggerType.hs 610;" f
withWarmUp src/Dodge/Item/Weapon/TriggerType.hs 201;" f withWarmUp src/Dodge/Item/Weapon/TriggerType.hs 204;" f
wlDustAt src/Dodge/Wall/Dust.hs 10;" f wlDustAt src/Dodge/Wall/Dust.hs 10;" f
wlIXsNearCirc src/Dodge/Zoning/Wall.hs 32;" f wlIXsNearCirc src/Dodge/Zoning/Wall.hs 32;" f
wlIXsNearPoint src/Dodge/Zoning/Wall.hs 22;" f wlIXsNearPoint src/Dodge/Zoning/Wall.hs 22;" f