Fix burst rifle rate delay bug, various cleanups

This commit is contained in:
2025-06-25 23:47:41 +01:00
parent 1bdf426c42
commit 5b35b4c6c8
19 changed files with 440 additions and 469 deletions
+4 -8
View File
@@ -24,9 +24,8 @@ useItem invid pt w = fmap (worldEventFlags . at InventoryChange ?~ ()) $ do
let usedloc = useLocation itmloc let usedloc = useLocation itmloc
useItemLoc cr usedloc pt w useItemLoc cr usedloc pt w
useItemLoc :: useItemLoc :: Creature ->
Creature -> LocationLDT ItemLink CItem ->
LocationLDT ItemLink ComposedItem ->
PressType -> PressType ->
World -> World ->
Maybe World Maybe World
@@ -63,7 +62,7 @@ useItemLoc cr loc pt w
ldt = loc ^. locLDT ldt = loc ^. locLDT
itm = ldt ^. ldtValue . _1 itm = ldt ^. ldtValue . _1
useLocation :: LocationLDT ItemLink ComposedItem -> LocationLDT ItemLink ComposedItem useLocation :: LocationLDT ItemLink CItem -> LocationLDT ItemLink CItem
useLocation loc useLocation loc
| isJust $ loc ^? locLDT . ldtValue . _1 . itType . ibtEquip = loc | isJust $ loc ^? locLDT . ldtValue . _1 . itType . ibtEquip = loc
| isJust $ loc ^? locLDT . ldtValue . _1 . itUse . uaParams . apProjectiles . ix 0 = | isJust $ loc ^? locLDT . ldtValue . _1 . itUse . uaParams . apProjectiles . ix 0 =
@@ -81,10 +80,7 @@ structureUseAtLoc = \case
MapperSF -> True MapperSF -> True
_ -> False _ -> False
activateDetonator :: activateDetonator :: LabelDoubleTree ItemLink CItem -> World -> World
LabelDoubleTree ItemLink ComposedItem ->
World ->
World
activateDetonator det = fromMaybe id $ do activateDetonator det = fromMaybe id $ do
pjid <- det ^? ldtValue . _1 . itUse . uaParams . apProjectiles . ix 0 pjid <- det ^? ldtValue . _1 . itUse . uaParams . apProjectiles . ix 0
return $ cWorld . lWorld . projectiles . ix pjid . pjTimer .~ 0 return $ cWorld . lWorld . projectiles . ix pjid . pjTimer .~ 0
+11 -11
View File
@@ -149,7 +149,7 @@ invRootItemEffs cr =
(reduceLocLDT (Endo . invItemLocUpdate cr) . LocLDT TopLDT) (reduceLocLDT (Endo . invItemLocUpdate cr) . LocLDT TopLDT)
(invLDT (_crInv cr)) (invLDT (_crInv cr))
invItemLocUpdate :: Creature -> LocationLDT ItemLink ComposedItem -> World -> World invItemLocUpdate :: Creature -> LocationLDT ItemLink CItem -> World -> World
invItemLocUpdate cr loc w = doAnyEquipmentEffect loc cr $ case itm ^. itType of invItemLocUpdate cr loc w = doAnyEquipmentEffect loc cr $ case itm ^. itType of
ATTACH BULLETSYNTH -> trySynthBullet loc w ATTACH BULLETSYNTH -> trySynthBullet loc w
EQUIP WRIST_ECG | haspulse -> tryUseParent loc w EQUIP WRIST_ECG | haspulse -> tryUseParent loc w
@@ -175,21 +175,21 @@ copierItemUpdate itm cr w = fromMaybe w $ do
v <- getItemValue itm' w cr v <- getItemValue itm' w cr
return $ w & pointerToItem itm . itUse . uValue .~ v return $ w & pointerToItem itm . itUse . uValue .~ v
doAnyEquipmentEffect :: LocationLDT ItemLink ComposedItem -> Creature -> World -> World doAnyEquipmentEffect :: LocationLDT ItemLink CItem -> Creature -> World -> World
doAnyEquipmentEffect loc cr = case itm ^? itLocation . ilEquipSite . _Just of doAnyEquipmentEffect loc cr = case itm ^? itLocation . ilEquipSite . _Just of
Just _ -> equipBackgroundEffect loc cr Just _ -> equipBackgroundEffect loc cr
_ -> id _ -> id
where where
itm = loc ^. locLDT . ldtValue . _1 itm = loc ^. locLDT . ldtValue . _1
tryUseParent :: LocationLDT ItemLink ComposedItem -> World -> World tryUseParent :: LocationLDT ItemLink CItem -> World -> World
tryUseParent loc w = fromMaybe w $ do tryUseParent loc w = fromMaybe w $ do
t <- locUp loc t <- locUp loc
let t' = bimap (^. iatType) (^. _1) $ t ^. locLDT let t' = bimap (^. iatType) (^. _1) $ t ^. locLDT
cr <- w ^? cWorld . lWorld . creatures . ix 0 cr <- w ^? cWorld . lWorld . creatures . ix 0
return $ heldEffectNoHammerCheck t' cr w return $ heldEffectNoHammerCheck t' cr w
trySynthBullet :: LocationLDT ItemLink ComposedItem -> World -> World trySynthBullet :: LocationLDT ItemLink CItem -> World -> World
trySynthBullet loc w = fromMaybe w $ do trySynthBullet loc w = fromMaybe w $ do
i <- itm ^? itLocation . ilInvID i <- itm ^? itLocation . ilInvID
x <- itm ^? itUse . uaParams . apInt x <- itm ^? itUse . uaParams . apInt
@@ -248,7 +248,7 @@ updateHeldRootItem cr = fromMaybe id $ do
itmtree <- invRootTrees (_crInv cr) ^? ix invid itmtree <- invRootTrees (_crInv cr) ^? ix invid
return $ updateAttachedItems itmtree cr return $ updateAttachedItems itmtree cr
updateAttachedItems :: LabelDoubleTree ItemLink ComposedItem -> Creature -> World -> World updateAttachedItems :: LabelDoubleTree ItemLink CItem -> Creature -> World -> World
updateAttachedItems itmtree cr = updateAttachedItems itmtree cr =
cldtPropagateFold cldtPropagateFold
chainLinkOrientation chainLinkOrientation
@@ -260,9 +260,9 @@ updateAttachedItems itmtree cr =
-- need to check rotation -- need to check rotation
chainLinkOrientation :: chainLinkOrientation ::
(Point3, Q.Quaternion Float) -> (Point3, Q.Quaternion Float) ->
ComposedItem -> CItem ->
ItemLink -> ItemLink ->
ComposedItem -> CItem ->
(Point3, Q.Quaternion Float) (Point3, Q.Quaternion Float)
chainLinkOrientation (p, q) par (ILink lt f) child = (p + Q.rotate q p1, q * q1) chainLinkOrientation (p, q) par (ILink lt f) child = (p + Q.rotate q p1, q * q1)
where where
@@ -271,7 +271,7 @@ chainLinkOrientation (p, q) par (ILink lt f) child = (p + Q.rotate q p1, q * q1)
updateItemWithOrientation :: updateItemWithOrientation ::
Creature -> Creature ->
(Point3, Q.Quaternion Float) -> (Point3, Q.Quaternion Float) ->
LocationLDT ItemLink ComposedItem -> LocationLDT ItemLink CItem ->
World -> World ->
World World
updateItemWithOrientation cr m loc@(LocLDT _ itmtree) w = updateItemWithOrientation cr m loc@(LocLDT _ itmtree) w =
@@ -285,7 +285,7 @@ updateItemWithOrientation cr m loc@(LocLDT _ itmtree) w =
ci = itmtree ^. ldtValue ci = itmtree ^. ldtValue
itm = ci ^. _1 itm = ci ^. _1
drawARHUD :: LocationLDT ItemLink ComposedItem -> World -> World drawARHUD :: LocationLDT ItemLink CItem -> World -> World
drawARHUD (LocLDT con _) w = fromMaybe w $ do drawARHUD (LocLDT con _) w = fromMaybe w $ do
itm <- con ^? cldtParent . _1 itm <- con ^? cldtParent . _1
return $ return $
@@ -295,7 +295,7 @@ drawARHUD (LocLDT con _) w = fromMaybe w $ do
shineTargetLaser :: shineTargetLaser ::
Creature -> Creature ->
LabelDoubleTree ItemLink ComposedItem -> LabelDoubleTree ItemLink CItem ->
(Point3, Q.Quaternion Float) -> (Point3, Q.Quaternion Float) ->
World -> World ->
World World
@@ -336,7 +336,7 @@ shineTargetLaser cr itmtree (p, q) w = fromMaybe (w & pointittarg . itTgPos .~ N
shineTorch :: shineTorch ::
Creature -> Creature ->
LabelDoubleTree ItemLink ComposedItem -> LabelDoubleTree ItemLink CItem ->
(Point3, Q.Quaternion Float) -> (Point3, Q.Quaternion Float) ->
World -> World ->
World World
+10 -10
View File
@@ -12,7 +12,7 @@ import Dodge.Data.Item
import Geometry.Data import Geometry.Data
import Linear.Quaternion (Quaternion (..)) import Linear.Quaternion (Quaternion (..))
data ComposeLinkType data CLinkType
= AmmoInLink Int AmmoType = AmmoInLink Int AmmoType
| TriggerLink | TriggerLink
| AmmoModLink | AmmoModLink
@@ -65,29 +65,29 @@ data ItemStructuralFunction
| MapperSF | MapperSF
deriving (Eq, Ord, Show, Read) deriving (Eq, Ord, Show, Read)
type ComposedItem = (Item, ItemStructuralFunction, LinkTest) type CItem = (Item, ItemStructuralFunction, LinkTest)
data ItemLink = ILink data ItemLink = ILink
{ _iatType :: ComposeLinkType { _iatType :: CLinkType
, _iatOrient :: Item -> ComposeLinkType -> Item -> (Point3, Quaternion Float) , _iatOrient :: Item -> CLinkType -> Item -> (Point3, Quaternion Float)
} }
-- this should possibly use a full item structure tree rather than a -- this should possibly use a full item structure tree rather than a
-- ComposedItem as arguments -- CItem as arguments
data LinkTest = LTest data LinkTest = LTest
{ _tryLeftLink :: LabelDoubleTree ItemLink ComposedItem -> Maybe LinkUpdate { _tryLeftLink :: LabelDoubleTree ItemLink CItem -> Maybe LinkUpdate
, _tryRightLink :: LabelDoubleTree ItemLink ComposedItem -> Maybe LinkUpdate , _tryRightLink :: LabelDoubleTree ItemLink CItem -> Maybe LinkUpdate
} }
data LinkUpdate = LUpdate data LinkUpdate = LUpdate
{ _luLinkType :: ItemLink { _luLinkType :: ItemLink
, _luParentUpdate :: ComposedItem -> ComposedItem , _luParentUpdate :: CItem -> CItem
, _luChildUpdate :: ComposedItem -> ComposedItem , _luChildUpdate :: CItem -> CItem
} }
makeLenses ''ItemLink makeLenses ''ItemLink
makeLenses ''LinkTest makeLenses ''LinkTest
makeLenses ''LinkUpdate makeLenses ''LinkUpdate
makeLenses ''ComposeLinkType makeLenses ''CLinkType
--deriveJSON defaultOptions ''ItemStructuralFunction --deriveJSON defaultOptions ''ItemStructuralFunction
--deriveJSON defaultOptions ''ComposeLinkType --deriveJSON defaultOptions ''ComposeLinkType
-2
View File
@@ -25,7 +25,6 @@ import Dodge.Data.Item.BulletMod
import Dodge.Data.Item.Scope import Dodge.Data.Item.Scope
import Dodge.Data.Item.Targeting import Dodge.Data.Item.Targeting
import Dodge.Data.Payload import Dodge.Data.Payload
--import Dodge.Data.Item.Use.Consumption
import Geometry.Data import Geometry.Data
data ItemUse data ItemUse
@@ -54,7 +53,6 @@ data AmmoParams
= BulletParams {_ampBullet :: Bullet} = BulletParams {_ampBullet :: Bullet}
| ProjectileParams {_ampPayload :: Payload} | ProjectileParams {_ampPayload :: Payload}
| GasParams {_ampCreateGas :: GasFuel} | GasParams {_ampCreateGas :: GasFuel}
| NoAmmoParams
deriving (Eq, Show, Read) --Generic, Flat) deriving (Eq, Show, Read) --Generic, Flat)
makeLenses ''ItemUse makeLenses ''ItemUse
+1 -1
View File
@@ -14,7 +14,7 @@ data Muzzle = Muzzle
, _mzFlareType :: FlareType , _mzFlareType :: FlareType
, _mzEffect :: MuzzleEffect , _mzEffect :: MuzzleEffect
, _mzAmmoPerShot :: AmmoPerShot , _mzAmmoPerShot :: AmmoPerShot
, _mzFrame :: Int -- , _mzFrame :: Int
} }
deriving (Eq, Ord, Show, Read) --Generic, Flat) deriving (Eq, Ord, Show, Read) --Generic, Flat)
+1 -1
View File
@@ -12,7 +12,7 @@ import Dodge.Wall.Move
import Geometry import Geometry
import LensHelp import LensHelp
equipBackgroundEffect :: LocationLDT ItemLink ComposedItem -> Creature -> World -> World equipBackgroundEffect :: LocationLDT ItemLink CItem -> Creature -> World -> World
equipBackgroundEffect loc cr = case eo of equipBackgroundEffect loc cr = case eo of
EQUIP (MAGSHIELD mt) -> useMagShield mt itm cr EQUIP (MAGSHIELD mt) -> useMagShield mt itm cr
EQUIP WRISTARMOUR -> setWristShieldPos itm cr EQUIP WRISTARMOUR -> setWristShieldPos itm cr
+2
View File
@@ -21,6 +21,8 @@ updateFlame w pt
| _flTimer pt <= 0 = (makeCloudAt Smoke 200 (addZ 20 ep) w, Nothing) | _flTimer pt <= 0 = (makeCloudAt Smoke 200 (addZ 20 ep) w, Nothing)
| Just (_, Right wl) <- thit = (doupdate, Just $ reflame wl) | Just (_, Right wl) <- thit = (doupdate, Just $ reflame wl)
-- might want to move differently if we hit a creature? -- might want to move differently if we hit a creature?
| _flTimer pt <= 1 = (makeCloudAt Smoke 200 (addZ 20 ep) $ flFlicker pt doupdate
, Just mvflame)
| otherwise = (flFlicker pt doupdate, Just mvflame) | otherwise = (flFlicker pt doupdate, Just mvflame)
where where
reflame wl = pt & flTimer -~ 1 & flVel %~ reflVelWallDamp 0.9 wl reflame wl = pt & flTimer -~ 1 & flVel %~ reflVelWallDamp 0.9 wl
+201 -207
View File
@@ -10,26 +10,26 @@ module Dodge.HeldUse (
heldEffectMuzzles, heldEffectMuzzles,
) where ) where
import Dodge.Creature.Radius
import Dodge.Creature.Mass
import Dodge.Data.Muzzle
import Dodge.Data.UseDelay
import Dodge.Item.UseDelay
import Dodge.Base
import Color import Color
import Control.Applicative import Control.Applicative
import Control.Monad import Control.Monad
import qualified Data.IntMap.Strict as IM import qualified Data.IntMap.Strict as IM
import Data.Maybe import Data.Maybe
import Dodge.Base
import Dodge.BaseTriggerType import Dodge.BaseTriggerType
import Dodge.Creature.Action import Dodge.Creature.Action
import Dodge.Creature.Mass
import Dodge.Creature.Radius
import Dodge.Data.ComposedItem import Dodge.Data.ComposedItem
import Dodge.Data.DoubleTree import Dodge.Data.DoubleTree
import Dodge.Data.Muzzle
import Dodge.Data.UseDelay
import Dodge.Data.World import Dodge.Data.World
import Dodge.Gas import Dodge.Gas
import Dodge.Inventory.Lock import Dodge.Inventory.Lock
import Dodge.Inventory.Path import Dodge.Inventory.Path
import Dodge.Item.HeldOffset import Dodge.Item.HeldOffset
import Dodge.Item.UseDelay
import Dodge.Item.Weapon.Bullet import Dodge.Item.Weapon.Bullet
import Dodge.Item.Weapon.Shatter import Dodge.Item.Weapon.Shatter
import Dodge.Projectile.Create import Dodge.Projectile.Create
@@ -45,12 +45,7 @@ import RandomHelp
import qualified SDL import qualified SDL
import Sound.Data import Sound.Data
gadgetEffect :: gadgetEffect :: PressType -> LocationLDT ItemLink CItem -> Creature -> World -> World
PressType ->
LocationLDT ItemLink ComposedItem ->
Creature ->
World ->
World
gadgetEffect pt loc gadgetEffect pt loc
| UseHeld{} <- loc ^. locLDT . ldtValue . _1 . itUse = | UseHeld{} <- loc ^. locLDT . ldtValue . _1 . itUse =
heldEffect heldEffect
@@ -65,29 +60,23 @@ gadgetEffect pt loc
useInventoryPath pt i x loc useInventoryPath pt i x loc
| otherwise = const id | otherwise = const id
heldEffect :: heldEffect :: PressType -> LabelDoubleTree CLinkType Item -> Creature -> World -> World
PressType -> heldEffect = useTimeCheck . hammerCheck heldEffectMuzzles
LabelDoubleTree ComposeLinkType Item ->
Creature ->
World ->
World
heldEffect = hammerCheck heldEffectNoHammerCheck
heldEffectNoHammerCheck :: heldEffectNoHammerCheck :: LabelDoubleTree CLinkType Item -> Creature -> World -> World
LabelDoubleTree ComposeLinkType Item -> Creature -> World -> World
heldEffectNoHammerCheck = useTimeCheck heldEffectMuzzles heldEffectNoHammerCheck = useTimeCheck heldEffectMuzzles
type ChainEffect = type ChainEffect =
(LabelDoubleTree ComposeLinkType Item -> Creature -> World -> World) -> (LabelDoubleTree CLinkType Item -> Creature -> World -> World) ->
LabelDoubleTree ComposeLinkType Item -> LabelDoubleTree CLinkType Item ->
Creature -> Creature ->
World -> World ->
World World
hammerCheck :: hammerCheck ::
(LabelDoubleTree ComposeLinkType Item -> Creature -> World -> World) -> (LabelDoubleTree CLinkType Item -> Creature -> World -> World) ->
PressType -> PressType ->
LabelDoubleTree ComposeLinkType Item -> LabelDoubleTree CLinkType Item ->
Creature -> Creature ->
World -> World ->
World World
@@ -106,11 +95,6 @@ hammerCheck f pt it cr
id id
| otherwise = f it cr | otherwise = f it cr
where where
-- g x = (x, WdWdFromItCrixWdWd (upitm x) (_crID cr) ItCrWdItemHeldEffectNoHammer)
-- upitm x =
-- it -- & ldtValue . itUse . heldParams . weaponRepeat .~ []
-- & ldtValue . itUse . heldFrame .~ x
g x = (x, WdWdBurstFireRepetition (_crID cr) (it ^?! ldtValue . itLocation . ilInvID)) g x = (x, WdWdBurstFireRepetition (_crID cr) (it ^?! ldtValue . itLocation . ilInvID))
-- | Applies a world effect after an item use cooldown check. -- | Applies a world effect after an item use cooldown check.
@@ -123,151 +107,163 @@ useTimeCheck f item cr w = case useDelay $ item ^. ldtValue of
| _wTime (_itParams $ _ldtValue item) < wm -> | _wTime (_itParams $ _ldtValue item) < wm ->
w w
& soundContinue (CrWeaponSound cid 0) (_crPos cr) ws (Just 2) & soundContinue (CrWeaponSound cid 0) (_crPos cr) ws (Just 2)
-- & cWorld . lWorld . creatures . ix cid . crInv . ix itRef . itUse . heldDelay . warmTime +~ 2
& cWorld . lWorld . creatures . ix cid . crInv . ix itRef . itParams . wTime +~ 2 & cWorld . lWorld . creatures . ix cid . crInv . ix itRef . itParams . wTime +~ 2
WarmUpNoDelay wm _ -> WarmUpNoDelay wm _ ->
f item cr w f item cr w
-- & cWorld . lWorld . creatures . ix cid . crInv . ix itRef . itUse . heldDelay . warmTime .~ (wm + 1)
& cWorld . lWorld . creatures . ix cid . crInv . ix itRef . itParams . wTime .~ (wm + 1) & cWorld . lWorld . creatures . ix cid . crInv . ix itRef . itParams . wTime .~ (wm + 1)
NoDelay -> f item cr w NoDelay -> f item cr w
--Nothing -> w
where where
lastused = item ^. ldtValue . itTimeLastUsed lastused = item ^. ldtValue . itTimeLastUsed
cid = _crID cr cid = _crID cr
setUseRate = setUseRate =
--cWorld . lWorld . creatures . ix cid . crInv . ix itRef . itUse . heldDelay . rateTimeLastUsed
cWorld . lWorld . creatures . ix cid . crInv . ix itRef . itTimeLastUsed cWorld . lWorld . creatures . ix cid . crInv . ix itRef . itTimeLastUsed
.~ w ^. cWorld . lWorld . lClock .~ w ^. cWorld . lWorld . lClock
-- the following is unsafe, but if ilInvID isn't correctly set we probably -- the following is unsafe, but if ilInvID isn't correctly set we probably
-- will have problems elsewhere also -- will have problems elsewhere also
itRef = item ^?! ldtValue . itLocation . ilInvID itRef = item ^?! ldtValue . itLocation . ilInvID
heldEffectMuzzles :: LabelDoubleTree ComposeLinkType Item -> Creature -> World -> World heldEffectMuzzles :: LabelDoubleTree CLinkType Item -> Creature -> World -> World
heldEffectMuzzles t cr w = heldEffectMuzzles t cr w =
doHeldUseEffect t cr doHeldUseEffect t cr
. uncurry (applyCME (_ldtValue t) cr) . uncurry (applyCME (_ldtValue t) cr)
. foldl' (useLoadedAmmo t cr) (False, w) . foldl' (useLoadedAmmo t cr) (False, w)
$ loadedmuzzles $ loadedmuzzles
where where
-- & doWeaponRepetitions upitm cr (_, loadedmuzzles) = mapAccumR loadMuzzle t . itemMuzzles $ t ^. ldtValue
--muzzles = t ^. ldtValue . itUse . heldMuzzles
muzzles = itemMuzzles $ t ^. ldtValue
--(upitm, loadedmuzzles) = mapAccumR loadMuzzle t muzzles
(_, loadedmuzzles) = mapAccumR loadMuzzle t muzzles
itemMuzzles :: Item -> [Muzzle] itemMuzzles :: Item -> [Muzzle]
itemMuzzles itm = case itm ^. itType of itemMuzzles itm = case itm ^. itType of
HELD ALTERIFLE -> dbwMuzzles & ix 0 . mzPos .~ V2 25 0 HELD ALTERIFLE ->
& ix 0 . mzAmmoSlot .~ _alteRifleSwitch (_itParams itm) dbwMuzzles & ix 0 . mzPos .~ V2 25 0
& ix 0 . mzAmmoSlot .~ _alteRifleSwitch (_itParams itm)
HELD hit -> heldItemMuzzles hit HELD hit -> heldItemMuzzles hit
DETECTOR {} -> dbwMuzzles & ix 0 . mzEffect .~ MuzzleDetector DETECTOR{} ->
& ix 0 . mzAmmoPerShot .~ UseExactly 100 dbwMuzzles & ix 0 . mzEffect .~ MuzzleDetector
& ix 0 . mzAmmoPerShot .~ UseExactly 100
_ -> [] _ -> []
heldItemMuzzles :: HeldItemType -> [Muzzle] heldItemMuzzles :: HeldItemType -> [Muzzle]
heldItemMuzzles = \case heldItemMuzzles = \case
BANGSTICK i -> [ Muzzle BANGSTICK i ->
(V2 10 0) [ Muzzle
a (V2 10 0)
0.01 a
0 0.01
NoFlare 0
MuzzleShootBullet NoFlare
(UseExactly 1) MuzzleShootBullet
0 (UseExactly 1)
| a <- spreadAroundCenter i baseStickSpread -- 0
] | a <- spreadAroundCenter i baseStickSpread
& ix 0 . mzFlareType .~ NoLightFlare ]
& ix (i `div` 2) . mzFlareType .~ MiniGunFlare & ix 0 . mzFlareType .~ NoLightFlare
& ix (i-1) . mzFlareType .~ NoLightFlare & ix (i `div` 2) . mzFlareType .~ BasicFlare
PISTOL -> [Muzzle (V2 10 0) 0 0.05 0 BasicFlare MuzzleShootBullet (UseExactly 1) 0] & ix (i -1) . mzFlareType .~ NoLightFlare
AUTOPISTOL -> [Muzzle (V2 20 0) 0 0 0 BasicFlare MuzzleShootBullet (UseExactly 1) 0] PISTOL -> [Muzzle (V2 10 0) 0 0.05 0 BasicFlare MuzzleShootBullet (UseExactly 1)]
SMG -> [Muzzle (V2 10 0) 0 0.05 0 BasicFlare MuzzleShootBullet (UseExactly 1) 0] AUTOPISTOL -> [Muzzle (V2 20 0) 0 0 0 BasicFlare MuzzleShootBullet (UseExactly 1)]
SMG -> [Muzzle (V2 10 0) 0 0.05 0 BasicFlare MuzzleShootBullet (UseExactly 1)]
RIFLE -> dbwMuzzles & ix 0 . mzPos .~ V2 25 0 RIFLE -> dbwMuzzles & ix 0 . mzPos .~ V2 25 0
BURSTRIFLE -> dbwMuzzles & ix 0 . mzPos .~ V2 25 0 BURSTRIFLE -> dbwMuzzles & ix 0 . mzPos .~ V2 25 0 & ix 0 . mzInaccuracy .~ 0.05
& ix 0 . mzInaccuracy .~ 0.05 MINIGUNX i ->
MINIGUNX i -> replicate
replicate i i
(Muzzle (V2 30 0) 0 0.05 0 MiniGunFlare MuzzleShootBullet (UseExactly 1) 0) (Muzzle (V2 30 0) 0 0.05 0 NoFlare MuzzleShootBullet (UseExactly 1))
BANGROD -> dbwMuzzles & ix 0 . mzFlareType .~ MiniGunFlare
& ix 0 . mzPos .~ V2 30 0 BANGROD ->
& ix 0 . mzFlareType .~ HeavySmokeFlare dbwMuzzles
ELEPHANTGUN -> dbwMuzzles & ix 0 . mzPos .~ V2 30 0
& ix 0 . mzPos .~ V2 30 0 & ix 0 . mzFlareType .~ HeavySmokeFlare
& ix 0 . mzFlareType .~ HeavySmokeFlare ELEPHANTGUN ->
& ix 0 . mzInaccuracy .~ 0.05 dbwMuzzles
AMR -> dbwMuzzles & ix 0 . mzPos .~ V2 30 0
& ix 0 . mzPos .~ V2 30 0 & ix 0 . mzFlareType .~ HeavySmokeFlare
& ix 0 . mzFlareType .~ HeavySmokeFlare & ix 0 . mzInaccuracy .~ 0.05
& ix 0 . mzInaccuracy .~ 0.05 AMR ->
AUTOAMR -> dbwMuzzles dbwMuzzles
& ix 0 . mzPos .~ V2 30 0 & ix 0 . mzPos .~ V2 30 0
& ix 0 . mzFlareType .~ HeavySmokeFlare & ix 0 . mzFlareType .~ HeavySmokeFlare
& ix 0 . mzInaccuracy .~ 0.05 & ix 0 . mzInaccuracy .~ 0.05
SNIPERRIFLE -> dbwMuzzles AUTOAMR ->
& ix 0 . mzPos .~ V2 30 0 dbwMuzzles
& ix 0 . mzFlareType .~ HeavySmokeFlare & ix 0 . mzPos .~ V2 30 0
& ix 0 . mzInaccuracy .~ 0 & ix 0 . mzFlareType .~ HeavySmokeFlare
BANGCONE -> [Muzzle (V2 15 0) 0 0.5 0 BasicFlare MuzzleShootBullet (UseUpTo 15) 0] & ix 0 . mzInaccuracy .~ 0.05
BLUNDERBUSS -> [Muzzle (V2 30 0) 0 0.5 0 BasicFlare MuzzleShootBullet (UseUpTo 15) 0] SNIPERRIFLE ->
GRAPECANNON _ -> [Muzzle (V2 30 0) 0 0.5 0 BasicFlare MuzzleShootBullet (UseUpTo 15) 0] dbwMuzzles
& ix 0 . mzPos .~ V2 30 0
& ix 0 . mzFlareType .~ HeavySmokeFlare
& ix 0 . mzInaccuracy .~ 0
BANGCONE -> [Muzzle (V2 15 0) 0 0.5 0 BasicFlare MuzzleShootBullet (UseUpTo 15)]
BLUNDERBUSS -> [Muzzle (V2 30 0) 0 0.5 0 BasicFlare MuzzleShootBullet (UseUpTo 15)]
GRAPECANNON _ -> [Muzzle (V2 30 0) 0 0.5 0 BasicFlare MuzzleShootBullet (UseUpTo 15)]
TORCH -> dbwMuzzles & ix 0 . mzPos .~ V2 10 0 TORCH -> dbwMuzzles & ix 0 . mzPos .~ V2 10 0
VOLLEYGUN i -> vgunMuzzles i VOLLEYGUN i -> vgunMuzzles i
FLAMETHROWER -> flameMuzzles FLAMETHROWER -> flameMuzzles
FLAMESPITTER -> flameMuzzles & ix 0 . mzEffect . nzPressure .~ UniRandFloat 3 4 FLAMESPITTER -> flameMuzzles & ix 0 . mzEffect . nzPressure .~ UniRandFloat 3 4
RLAUNCHER -> dbwMuzzles RLAUNCHER ->
& ix 0 . mzInaccuracy .~ 0 dbwMuzzles
& ix 0 . mzEffect .~ MuzzleRLauncher & ix 0 . mzInaccuracy .~ 0
& ix 0 . mzPos .~ V2 20 0 & ix 0 . mzEffect .~ MuzzleRLauncher
GLAUNCHER -> dbwMuzzles & ix 0 . mzPos .~ V2 20 0
& ix 0 . mzInaccuracy .~ 0 GLAUNCHER ->
& ix 0 . mzEffect .~ MuzzleGLauncher dbwMuzzles
& ix 0 . mzPos .~ V2 20 0 & ix 0 . mzInaccuracy .~ 0
& ix 0 . mzEffect .~ MuzzleGLauncher
& ix 0 . mzPos .~ V2 20 0
RLAUNCHERX i -> RLAUNCHERX i ->
getZipList getZipList
( ZipList [Muzzle (V2 20 0) a 0 | a <- take i [0, 2 * pi / fromIntegral i ..]] ( ZipList [Muzzle (V2 20 0) a 0 | a <- take i [0, 2 * pi / fromIntegral i ..]]
<*> ZipList [0 ..] <*> ZipList [0 ..]
<*> pure NoFlare <*> pure NoFlare
<*> pure MuzzleRLauncher <*> pure MuzzleRLauncher
<*> pure (UseExactly 1) <*> pure (UseExactly 1)
<*> pure 0 )
) LASER ->
LASER -> dbwMuzzles dbwMuzzles
& ix 0 . mzPos .~ V2 6 0 & ix 0 . mzPos .~ V2 6 0
& ix 0 . mzInaccuracy .~ 0 & ix 0 . mzInaccuracy .~ 0
& ix 0 . mzFlareType .~ LasGunFlare & ix 0 . mzFlareType .~ LasGunFlare
& ix 0 . mzEffect .~ MuzzleLaser & ix 0 . mzEffect .~ MuzzleLaser
TESLAGUN -> dbwMuzzles TESLAGUN ->
& ix 0 . mzPos .~ V2 10 0 dbwMuzzles
& ix 0 . mzInaccuracy .~ 0 & ix 0 . mzPos .~ V2 10 0
& ix 0 . mzFlareType .~ TeslaGunFlare & ix 0 . mzInaccuracy .~ 0
& ix 0 . mzEffect .~ MuzzleTesla & ix 0 . mzFlareType .~ TeslaGunFlare
TRACTORGUN -> dbwMuzzles & ix 0 . mzEffect .~ MuzzleTesla
& ix 0 . mzPos .~ V2 30 0 TRACTORGUN ->
& ix 0 . mzInaccuracy .~ 0 dbwMuzzles
& ix 0 . mzFlareType .~ NoFlare & ix 0 . mzPos .~ V2 30 0
& ix 0 . mzEffect .~ MuzzleTractor & ix 0 . mzInaccuracy .~ 0
SHATTERGUN -> dbwMuzzles & ix 0 . mzFlareType .~ NoFlare
& ix 0 . mzPos .~ V2 30 0 & ix 0 . mzEffect .~ MuzzleTractor
& ix 0 . mzInaccuracy .~ 0 SHATTERGUN ->
& ix 0 . mzEffect .~ MuzzleShatter dbwMuzzles
BLINKER -> dbwMuzzles & ix 0 . mzPos .~ V2 30 0
& ix 0 . mzEffect .~ MuzzleBlink & ix 0 . mzInaccuracy .~ 0
& ix 0 . mzAmmoPerShot .~ UseExactly 10000000 & ix 0 . mzEffect .~ MuzzleShatter
BLINKERUNSAFE -> dbwMuzzles BLINKER ->
& ix 0 . mzEffect .~ MuzzleUnsafeBlink dbwMuzzles
& ix 0 . mzAmmoPerShot .~ UseExactly 10000000 & ix 0 . mzEffect .~ MuzzleBlink
REWINDER -> dbwMuzzles & ix 0 . mzAmmoPerShot .~ UseExactly 10000000
& ix 0 . mzEffect .~ MuzzleRewind BLINKERUNSAFE ->
& ix 0 . mzAmmoPerShot .~ UseExactly 100000 dbwMuzzles
TIMESTOPPER -> dbwMuzzles & ix 0 . mzEffect .~ MuzzleUnsafeBlink
& ix 0 . mzEffect .~ MuzzleStopper & ix 0 . mzAmmoPerShot .~ UseExactly 10000000
& ix 0 . mzAmmoPerShot .~ UseExactly 100000 REWINDER ->
TIMESCROLLER -> dbwMuzzles dbwMuzzles
& ix 0 . mzEffect .~ MuzzleScroller & ix 0 . mzEffect .~ MuzzleRewind
& ix 0 . mzAmmoPerShot .~ UseExactly 100000 & ix 0 . mzAmmoPerShot .~ UseExactly 100000
_ -> [ Muzzle TIMESTOPPER ->
dbwMuzzles
& ix 0 . mzEffect .~ MuzzleStopper
& ix 0 . mzAmmoPerShot .~ UseExactly 100000
TIMESCROLLER ->
dbwMuzzles
& ix 0 . mzEffect .~ MuzzleScroller
& ix 0 . mzAmmoPerShot .~ UseExactly 100000
_ ->
[ Muzzle
{ _mzPos = V2 20 0 { _mzPos = V2 20 0
, _mzRot = 0 , _mzRot = 0
, _mzInaccuracy = 0.05 , _mzInaccuracy = 0.05
@@ -275,7 +271,7 @@ heldItemMuzzles = \case
, _mzFlareType = NoFlare , _mzFlareType = NoFlare
, _mzEffect = MuzzleShootBullet , _mzEffect = MuzzleShootBullet
, _mzAmmoPerShot = UseExactly 1 , _mzAmmoPerShot = UseExactly 1
, _mzFrame = 0 -- , _mzFrame = 0
} }
] ]
@@ -283,49 +279,55 @@ baseStickSpread :: Float
baseStickSpread = 0.2 baseStickSpread = 0.2
dbwMuzzles :: [Muzzle] dbwMuzzles :: [Muzzle]
dbwMuzzles = [Muzzle (V2 15 0) 0 0.01 0 BasicFlare MuzzleShootBullet (UseExactly 1) 0] dbwMuzzles = [Muzzle (V2 15 0) 0 0.01 0 BasicFlare MuzzleShootBullet (UseExactly 1)]
flameMuzzles :: [Muzzle] flameMuzzles :: [Muzzle]
flameMuzzles = flameMuzzles =
[ Muzzle (V2 18 0) 0 0 0 NoFlare MuzzleNozzle [ Muzzle
(V2 18 0)
0
0
0
NoFlare
MuzzleNozzle
{ _nzPressure = ConstFloat 4 { _nzPressure = ConstFloat 4
, _nzMaxWalkAngle = 0.2 , _nzMaxWalkAngle = 0.2
, _nzWalkSpeed = 0.01 , _nzWalkSpeed = 0.01
} }
(UseExactly 1) (UseExactly 1)
0
] ]
vgunMuzzles :: Int -> [Muzzle] vgunMuzzles :: Int -> [Muzzle]
vgunMuzzles i = vgunMuzzles i =
getZipList getZipList
(ZipList [Muzzle (V2 15 x) 0 0.01 | x <- spreadAroundCenter i 6] ( ZipList [Muzzle (V2 15 x) 0 0.01 | x <- spreadAroundCenter i 6]
<*> ZipList [0..i-1] <*> ZipList [0 .. i -1]
<*> pure MiniGunFlare <*> pure BasicFlare
<*> pure MuzzleShootBullet <*> pure MuzzleShootBullet
<*> pure (UseExactly 1) <*> pure (UseExactly 1)
<*> ZipList [0..i-1] -- <*> ZipList [0 .. i -1]
) )
doHeldUseEffect :: LabelDoubleTree ComposeLinkType Item -> Creature -> World -> World doHeldUseEffect :: LabelDoubleTree CLinkType Item -> Creature -> World -> World
doHeldUseEffect t cr w = case t ^. ldtValue . itType of doHeldUseEffect t cr w = case t ^. ldtValue . itType of
-- HELD (VOLLEYGUN x) -> fromMaybe w $ do -- HELD (VOLLEYGUN x) -> fromMaybe w $ do
-- i <- t ^? ldtValue . itLocation . ilInvID -- i <- t ^? ldtValue . itLocation . ilInvID
-- let g = w ^. randGen -- let g = w ^. randGen
-- (is, g') = runState (shuffle [0 .. x -1]) g -- (is, g') = runState (shuffle [0 .. x -1]) g
-- return $ -- return $
-- w & cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix i . itUse . heldMuzzles %~ zipWith (\j mz -> mz & mzFrame .~ j) is -- w & cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix i . itUse . heldMuzzles %~ zipWith (\j mz -> mz & mzFrame .~ j) is
-- & randGen .~ g' -- & randGen .~ g'
HELD ALTERIFLE -> fromMaybe w $ do HELD ALTERIFLE -> fromMaybe w $ do
i <- t ^? ldtValue . itLocation . ilInvID i <- t ^? ldtValue . itLocation . ilInvID
return $ return $
w w
& cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix i & cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix i
. itParams . alteRifleSwitch . itParams
-- . itUse . alteRifleSwitch
-- . heldMuzzles -- . itUse
-- . ix 0 -- . heldMuzzles
-- . mzAmmoSlot -- . ix 0
-- . mzAmmoSlot
%~ ((`mod` 2) . (+ 1)) %~ ((`mod` 2) . (+ 1))
_ -> w _ -> w
@@ -624,11 +626,11 @@ heldTorqueAmount = \case
-- (Muzzle,Int,Int) = (muzzle, amountloaded, id of mag taken from) -- (Muzzle,Int,Int) = (muzzle, amountloaded, id of mag taken from)
loadMuzzle :: loadMuzzle ::
LabelDoubleTree ComposeLinkType Item -> LabelDoubleTree CLinkType Item ->
Muzzle -> Muzzle ->
(LabelDoubleTree ComposeLinkType Item, Maybe (Muzzle, Int, LabelDoubleTree ComposeLinkType Item)) (LabelDoubleTree CLinkType Item, Maybe (Muzzle, Int, LabelDoubleTree CLinkType Item))
loadMuzzle t@(LDT _ l _) mz = fromMaybe (t, Nothing) $ do loadMuzzle t@(LDT _ l _) mz = fromMaybe (t, Nothing) $ do
-- guard $ mz ^? mzFrame == t ^? ldtValue . itUse . heldFrame -- guard $ mz ^? mzFrame == t ^? ldtValue . itUse . heldFrame
let as = _mzAmmoSlot mz let as = _mzAmmoSlot mz
amamount = _mzAmmoPerShot mz amamount = _mzAmmoPerShot mz
(i, (_, mag)) <- findWithIx (isAmmoIntLink as . fst) l (i, (_, mag)) <- findWithIx (isAmmoIntLink as . fst) l
@@ -644,32 +646,29 @@ loadMuzzle t@(LDT _ l _) mz = fromMaybe (t, Nothing) $ do
, Just (mz, usedammo, mag) , Just (mz, usedammo, mag)
) )
makeMuzzleFlare :: Muzzle -> LabelDoubleTree ComposeLinkType Item -> Creature -> World -> World makeMuzzleFlare :: Muzzle -> LabelDoubleTree CLinkType Item -> Creature -> World -> World
makeMuzzleFlare mz itmtree cr = case mz ^. mzFlareType of makeMuzzleFlare mz itmtree cr = case mz ^. mzFlareType of
NoFlare -> id NoFlare -> id
BasicFlare -> basicMuzFlare pos dir BasicFlare -> basicMuzFlare pos dir
NoLightFlare -> muzFlareAt (V4 10 10 1 3) (pos `v2z` 20) dir NoLightFlare -> muzFlareAt (V4 10 10 1 3) (pos `v2z` 20) dir
MiniGunFlare -> MiniGunFlare ->
(cWorld . lWorld . lights .:~ LSParam (pos `v2z` 20) 100 (V3 1 1 0.5)) oddcheck (cWorld . lWorld . lights .:~ LSParam (pos `v2z` 20) 100 (V3 1 1 0.5))
. muzFlareAt (V4 10 10 1 3) (pos `v2z` 20) dir . muzFlareAt (V4 10 10 1 3) (pos `v2z` 20) dir
HeavySmokeFlare -> basicMuzFlare pos dir HeavySmokeFlare -> basicMuzFlare pos dir
LasGunFlare -> LasGunFlare ->
flareCircleAt (getLaserColor itmtree) 0.8 (pos `v2z` 20) flareCircleAt (getLaserColor itmtree) 0.8 (pos `v2z` 20)
-- . ( cWorld . lWorld . tempLightSources
-- .:~ tlsTimeRadColPos 1 100 (xyzV4 $ getLaserColor itmtree) (pos `v2z` 10)
. ( cWorld . lWorld . lights . ( cWorld . lWorld . lights
.:~ LSParam (pos `v2z` 10) 100 (xyzV4 $ getLaserColor itmtree) .:~ LSParam (pos `v2z` 10) 100 (xyzV4 $ getLaserColor itmtree)
) )
TeslaGunFlare -> TeslaGunFlare -> cWorld . lWorld . lights .:~ LSParam (pos `v2z` 10) 100 (V3 0 0 1)
cWorld . lWorld . lights
.:~ LSParam (pos `v2z` 10) 100 (V3 0 0 1)
where where
-- .:~ tlsTimeRadColPos 1 100 (V3 0 0 1) (pos `v2z` 10)
itm = itmtree ^. ldtValue itm = itmtree ^. ldtValue
(moff, mrot) = heldItemOrient2D itm cr (_mzPos mz) (_mzRot mz) (moff, mrot) = heldItemOrient2D itm cr (_mzPos mz) (_mzRot mz)
pos = _crPos cr + rotateV (_crDir cr) moff pos = _crPos cr + rotateV (_crDir cr) moff
dir = _crDir cr + mrot dir = _crDir cr + mrot
oddcheck f w
| odd (w ^. cWorld . lWorld . lClock) = f w
| otherwise = w
--{-# OPTIONS -Wno-incomplete-uni-patterns #-} --{-# OPTIONS -Wno-incomplete-uni-patterns #-}
muzFlareAt :: Color -> Point3 -> Float -> World -> World muzFlareAt :: Color -> Point3 -> Float -> World -> World
@@ -678,13 +677,13 @@ muzFlareAt col tranv dir w =
& cWorld . lWorld . flares <>~ thepic & cWorld . lWorld . flares <>~ thepic
where where
thepic = thepic =
setLayer BloomNoZWrite . translate3 tranv . color col . rotate dir . polygon $ setLayer BloomLayer . translate3 tranv . color col . rotate dir . polygon $
[ V2 0 0 [ V2 0 0
, V2 a (- b) , V2 a (- b)
, V2 c d , V2 c d
] ]
thestate = replicateM 4 $ state $ randomR (2, 20) thestate = replicateM 4 $ state $ randomR (2, 20)
(a : b : c : d : _, g) = runState thestate $ _randGen w -- randomRs (2, 20) (_randGen w) (a : b : c : d : _, g) = runState thestate $ _randGen w
flareCircleAt :: Color -> Float -> Point3 -> World -> World flareCircleAt :: Color -> Float -> Point3 -> World -> World
flareCircleAt col alphax tranv = flareCircleAt col alphax tranv =
@@ -696,13 +695,13 @@ flareCircleAt col alphax tranv =
) )
-- previous phaseV parameters: 0.2, 1, 5 -- previous phaseV parameters: 0.2, 1, 5
getLaserPhaseV :: LabelDoubleTree ComposeLinkType Item -> Float getLaserPhaseV :: LabelDoubleTree CLinkType Item -> Float
getLaserPhaseV = const 1 getLaserPhaseV = const 1
getLaserDamage :: LabelDoubleTree ComposeLinkType Item -> LaserType getLaserDamage :: LabelDoubleTree CLinkType Item -> LaserType
getLaserDamage = const (DamageLaser 11) getLaserDamage = const (DamageLaser 11)
getLaserColor :: LabelDoubleTree ComposeLinkType Item -> Color getLaserColor :: LabelDoubleTree CLinkType Item -> Color
getLaserColor = const yellow getLaserColor = const yellow
basicMuzFlare :: Point2 -> Float -> World -> World basicMuzFlare :: Point2 -> Float -> World -> World
@@ -712,15 +711,15 @@ basicMuzFlare pos dir =
. muzFlareAt (V4 10 10 1 3) (pos `v2z` 20) dir . muzFlareAt (V4 10 10 1 3) (pos `v2z` 20) dir
. muzFlareAt (V4 10 10 1 3) (pos `v2z` 20) dir . muzFlareAt (V4 10 10 1 3) (pos `v2z` 20) dir
isAmmoIntLink :: Int -> ComposeLinkType -> Bool isAmmoIntLink :: Int -> CLinkType -> Bool
isAmmoIntLink i (AmmoInLink j _) = i == j isAmmoIntLink i (AmmoInLink j _) = i == j
isAmmoIntLink _ _ = False isAmmoIntLink _ _ = False
useLoadedAmmo :: useLoadedAmmo ::
LabelDoubleTree ComposeLinkType Item -> LabelDoubleTree CLinkType Item ->
Creature -> Creature ->
(Bool, World) -> (Bool, World) ->
Maybe (Muzzle, Int, LabelDoubleTree ComposeLinkType Item) -> Maybe (Muzzle, Int, LabelDoubleTree CLinkType Item) ->
(Bool, World) (Bool, World)
useLoadedAmmo _ _ (cme, w) Nothing = (cme, w) useLoadedAmmo _ _ (cme, w) Nothing = (cme, w)
useLoadedAmmo itmtree cr (_, w) (Just (mz, x, magtree)) = (,) True $ useLoadedAmmo itmtree cr (_, w) (Just (mz, x, magtree)) = (,) True $
@@ -758,7 +757,7 @@ useLoadedAmmo itmtree cr (_, w) (Just (mz, x, magtree)) = (,) True $
getAttachedSFLink :: getAttachedSFLink ::
ItemStructuralFunction -> ItemStructuralFunction ->
LabelDoubleTree ComposeLinkType Item -> LabelDoubleTree CLinkType Item ->
Maybe (NewInt ItmInt) Maybe (NewInt ItmInt)
getAttachedSFLink sf = (^? ldtRight . folding (lookup (SFLink sf)) . ldtValue . itID) getAttachedSFLink sf = (^? ldtRight . folding (lookup (SFLink sf)) . ldtValue . itID)
@@ -819,7 +818,7 @@ tractorBeamAt pos outpos dir power =
d = unitVectorAtAngle dir * power d = unitVectorAtAngle dir * power
creatureShootLaser :: creatureShootLaser ::
LabelDoubleTree ComposeLinkType Item -> LabelDoubleTree CLinkType Item ->
Creature -> Creature ->
Muzzle -> Muzzle ->
World -> World ->
@@ -875,7 +874,7 @@ removeAmmoFromMag x mid cr = fromMaybe id $ do
. _Just . _Just
-~ x -~ x
getBulletType :: LabelDoubleTree ComposeLinkType Item -> Maybe Bullet getBulletType :: LabelDoubleTree CLinkType Item -> Maybe Bullet
getBulletType magtree = getBulletType magtree =
--magtree ^? ldtValue . itConsumables . magParams . ampBullet --magtree ^? ldtValue . itConsumables . magParams . ampBullet
(magtree ^? ldtValue >>= magAmmoParams >>= (^? ampBullet)) (magtree ^? ldtValue >>= magAmmoParams >>= (^? ampBullet))
@@ -898,7 +897,6 @@ getBulletType magtree =
magAmmoParams :: Item -> Maybe AmmoParams magAmmoParams :: Item -> Maybe AmmoParams
magAmmoParams itm = case itm ^. itType of magAmmoParams itm = case itm ^. itType of
EQUIP BATTERYPACK -> Just NoAmmoParams
EQUIP FUELPACK -> Just $ GasParams ChemFuel EQUIP FUELPACK -> Just $ GasParams ChemFuel
AMMOMAG CHEMFUELPOUCH -> Just $ GasParams ChemFuel AMMOMAG CHEMFUELPOUCH -> Just $ GasParams ChemFuel
EQUIP BULLETBELTPACK -> Just $ BulletParams defaultBullet EQUIP BULLETBELTPACK -> Just $ BulletParams defaultBullet
@@ -906,11 +904,7 @@ magAmmoParams itm = case itm ^. itType of
AMMOMAG TINMAG -> Just $ BulletParams defaultBullet AMMOMAG TINMAG -> Just $ BulletParams defaultBullet
AMMOMAG DRUMMAG -> Just $ BulletParams defaultBullet AMMOMAG DRUMMAG -> Just $ BulletParams defaultBullet
AMMOMAG BELTMAG -> Just $ BulletParams defaultBullet AMMOMAG BELTMAG -> Just $ BulletParams defaultBullet
AMMOMAG SHELLMAG -> Just $ AMMOMAG SHELLMAG -> Just $ ProjectileParams ExplosionPayload
ProjectileParams
{ _ampPayload = ExplosionPayload
}
AMMOMAG BATTERY -> Just NoAmmoParams
_ -> Nothing _ -> Nothing
--getBulletTrajectory :: --getBulletTrajectory ::
@@ -934,9 +928,9 @@ magAmmoParams itm = case itm ^. itType of
-- _ -> 0 -- _ -> 0
shootBullet :: shootBullet ::
LabelDoubleTree ComposeLinkType Item -> LabelDoubleTree CLinkType Item ->
Creature -> Creature ->
(Muzzle, Int, LabelDoubleTree ComposeLinkType Item) -> (Muzzle, Int, LabelDoubleTree CLinkType Item) ->
World -> World ->
World World
shootBullet itmtree cr (mz, x, magtree) w = fromMaybe w $ do shootBullet itmtree cr (mz, x, magtree) w = fromMaybe w $ do
@@ -1196,9 +1190,9 @@ mcShootAuto itm mc w
w w
& cWorld . lWorld . machines . ix (_mcID mc) . mcType . mctTurret . tuWeapon & cWorld . lWorld . machines . ix (_mcID mc) . mcType . mctTurret . tuWeapon
. itTimeLastUsed . itTimeLastUsed
-- . itUse -- . itUse
-- . heldDelay -- . heldDelay
-- . rateTimeLastUsed -- . rateTimeLastUsed
.~ w ^. cWorld . lWorld . lClock .~ w ^. cWorld . lWorld . lClock
& makeBullet defaultBullet itm pos dir & makeBullet defaultBullet itm pos dir
| otherwise = w | otherwise = w
@@ -1221,8 +1215,8 @@ shootTeslaArc itm cr mz w =
dir = _crDir cr + mrot dir = _crDir cr + mrot
determineProjectileTracking :: determineProjectileTracking ::
LabelDoubleTree ComposeLinkType Item -> LabelDoubleTree CLinkType Item ->
LabelDoubleTree ComposeLinkType Item -> LabelDoubleTree CLinkType Item ->
RocketHoming RocketHoming
determineProjectileTracking magtree itmtree = determineProjectileTracking magtree itmtree =
fromMaybe NoHoming $ fromMaybe NoHoming $
@@ -1238,8 +1232,8 @@ determineProjectileTracking magtree itmtree =
return $ HomeUsingTargeting (targetingtree ^. ldtValue . itID) return $ HomeUsingTargeting (targetingtree ^. ldtValue . itID)
createProjectileR :: createProjectileR ::
LabelDoubleTree ComposeLinkType Item -> LabelDoubleTree CLinkType Item ->
LabelDoubleTree ComposeLinkType Item -> LabelDoubleTree CLinkType Item ->
Muzzle -> Muzzle ->
Creature -> Creature ->
World -> World ->
@@ -1257,7 +1251,7 @@ createProjectileR itmtree magtree =
| isJust $ lookup SmokeReducerLink (magtree ^. ldtLeft) = Just ReducedRocketSmoke | isJust $ lookup SmokeReducerLink (magtree ^. ldtLeft) = Just ReducedRocketSmoke
| otherwise = Nothing | otherwise = Nothing
getPJStabiliser :: LabelDoubleTree ComposeLinkType Item -> Maybe PJStabiliser getPJStabiliser :: LabelDoubleTree CLinkType Item -> Maybe PJStabiliser
getPJStabiliser ldt = case lookup ProjectileStabiliserLink (ldt ^. ldtRight) of getPJStabiliser ldt = case lookup ProjectileStabiliserLink (ldt ^. ldtRight) of
Just ldt' -> case ldt' ^? ldtValue . itType . ibtAttach of Just ldt' -> case ldt' ^? ldtValue . itType . ibtAttach of
Just GIMBAL -> Just StabOrthReduce Just GIMBAL -> Just StabOrthReduce
@@ -1265,7 +1259,7 @@ getPJStabiliser ldt = case lookup ProjectileStabiliserLink (ldt ^. ldtRight) of
_ -> Nothing _ -> Nothing
_ -> Nothing _ -> Nothing
getGrenadeHitEffect :: LabelDoubleTree ComposeLinkType Item -> GrenadeHitEffect getGrenadeHitEffect :: LabelDoubleTree CLinkType Item -> GrenadeHitEffect
getGrenadeHitEffect t = case lookup GrenadeHitEffectLink (t ^. ldtRight) of getGrenadeHitEffect t = case lookup GrenadeHitEffectLink (t ^. ldtRight) of
Just ldt' -> case ldt' ^? ldtValue . itType of Just ldt' -> case ldt' ^? ldtValue . itType of
Just STICKYMOD -> GStick Just STICKYMOD -> GStick
@@ -1274,7 +1268,7 @@ getGrenadeHitEffect t = case lookup GrenadeHitEffectLink (t ^. ldtRight) of
createProjectile :: createProjectile ::
ProjectileType -> ProjectileType ->
LabelDoubleTree ComposeLinkType Item -> LabelDoubleTree CLinkType Item ->
Maybe PJStabiliser -> Maybe PJStabiliser ->
Muzzle -> Muzzle ->
Creature -> Creature ->
@@ -1291,7 +1285,7 @@ createProjectile pjtype magtree stab muz cr = fromMaybe failsound $ do
<$> lookup RemoteScreenLink (magtree ^. ldtLeft) <$> lookup RemoteScreenLink (magtree ^. ldtLeft)
aparams <- aparams <-
((magtree ^? ldtLeft) >>= lookup AmmoPayloadLink >>= (^? ldtValue . itType . ibtAttach . shellPayload)) ((magtree ^? ldtLeft) >>= lookup AmmoPayloadLink >>= (^? ldtValue . itType . ibtAttach . shellPayload))
-- <|> ammoitem ^? itConsumables . magParams . ampPayload -- <|> ammoitem ^? itConsumables . magParams . ampPayload
<|> magAmmoParams ammoitem ^? _Just . ampPayload <|> magAmmoParams ammoitem ^? _Just . ampPayload
return $ return $
createShell rdetonate rscreen stab pjtype aparams muz cr createShell rdetonate rscreen stab pjtype aparams muz cr
@@ -1354,7 +1348,7 @@ useRewindGun i =
dropInventoryPath :: dropInventoryPath ::
Int -> Int ->
InventoryPathing -> InventoryPathing ->
LocationLDT ItemLink ComposedItem -> LocationLDT ItemLink CItem ->
Creature -> Creature ->
World -> World ->
World World
@@ -1380,7 +1374,7 @@ useInventoryPath ::
PressType -> PressType ->
Int -> Int ->
InventoryPathing -> InventoryPathing ->
LocationLDT ItemLink ComposedItem -> LocationLDT ItemLink CItem ->
Creature -> Creature ->
World -> World ->
World World
+3 -3
View File
@@ -29,7 +29,7 @@ import NewInt
import Padding import Padding
import Picture.Base import Picture.Base
invSelectionItem :: World -> Int -> LocationLDT ItemLink ComposedItem -> SelectionItem () invSelectionItem :: World -> Int -> LocationLDT ItemLink CItem -> SelectionItem ()
invSelectionItem w indent loc = invSelectionItem w indent loc =
SelectionItem SelectionItem
{ _siPictures = itemDisplay w cr ci { _siPictures = itemDisplay w cr ci
@@ -46,7 +46,7 @@ invSelectionItem w indent loc =
-- note the convoluted display of the hotkey/equipment, this was done to avoid a -- note the convoluted display of the hotkey/equipment, this was done to avoid a
-- space leak -- space leak
itemDisplay :: World -> Creature -> ComposedItem -> [String] itemDisplay :: World -> Creature -> CItem -> [String]
itemDisplay w cr ci = -- f itemDisplay w cr ci = -- f
basicItemDisplay itm basicItemDisplay itm
-- (itemNumberDisplay w cr ci) -- (itemNumberDisplay w cr ci)
@@ -152,7 +152,7 @@ itemScrollValue itm = Left <$> itm ^? itScroll . failing itsInt itsRangeInt
-- | rs == "" = ls -- | rs == "" = ls
-- | otherwise = midPadL 15 ' ' ls (' ' : rs) -- | otherwise = midPadL 15 ' ' ls (' ' : rs)
--itemNumberDisplay :: World -> Creature -> ComposedItem -> [String] --itemNumberDisplay :: World -> Creature -> CItem -> [String]
--itemNumberDisplay w cr ci --itemNumberDisplay w cr ci
-- | Just x <- ci ^? _1 . itUse . uInt = [show x] -- | Just x <- ci ^? _1 . itUse . uInt = [show x]
-- | Just x <- ci ^? _1 . itUse . useToggle = [show x] -- | Just x <- ci ^? _1 . itUse . useToggle = [show x]
+1 -1
View File
@@ -15,7 +15,7 @@ import Dodge.Item.Draw.SPic
import Dodge.Item.HeldOffset import Dodge.Item.HeldOffset
import ShapePicture import ShapePicture
itemEquipPict :: Creature -> LabelDoubleTree ItemLink ComposedItem -> SPic itemEquipPict :: Creature -> LabelDoubleTree ItemLink CItem -> SPic
itemEquipPict cr itmtree itemEquipPict cr itmtree
| Just i <- itm ^? itLocation . ilInvID | Just i <- itm ^? itLocation . ilInvID
, Just esite <- cr ^? crInv . ix i . itLocation . ilEquipSite . _Just , Just esite <- cr ^? crInv . ix i . itLocation . ilEquipSite . _Just
+2 -3
View File
@@ -20,13 +20,12 @@ import Picture
import Shape import Shape
import ShapePicture import ShapePicture
itemTreeSPic :: LabelDoubleTree ItemLink ComposedItem -> SPic itemTreeSPic :: LabelDoubleTree ItemLink CItem -> SPic
itemTreeSPic (LDT (itm,_,_) l r) = itemTreeSPic (LDT (itm,_,_) l r) =
itemSPic itm itemSPic itm
<> foldMap (itemRotTreeSPic itm) (l <> r) <> foldMap (itemRotTreeSPic itm) (l <> r)
itemRotTreeSPic :: Item -> (ItemLink, LabelDoubleTree ItemLink ComposedItem) itemRotTreeSPic :: Item -> (ItemLink, LabelDoubleTree ItemLink CItem) -> SPic
-> SPic
itemRotTreeSPic par (il, t) = translateSP p . overPosSP (Q.rotate q) $ itemTreeSPic t itemRotTreeSPic par (il, t) = translateSP p . overPosSP (Q.rotate q) $ itemTreeSPic t
where where
(p, q) = _iatOrient il par (_iatType il) itm (p, q) = _iatOrient il par (_iatType il) itm
+27 -27
View File
@@ -29,14 +29,14 @@ import LensHelp
import ListHelp import ListHelp
tryAttachItems :: tryAttachItems ::
LabelDoubleTree ItemLink ComposedItem -> LabelDoubleTree ItemLink CItem ->
LabelDoubleTree ItemLink ComposedItem -> LabelDoubleTree ItemLink CItem ->
Maybe (LabelDoubleTree ItemLink ComposedItem) Maybe (LabelDoubleTree ItemLink CItem)
tryAttachItems = leftRightCombine leftIsParentCombine rightIsParentCombine tryAttachItems = leftRightCombine leftIsParentCombine rightIsParentCombine
useBreakL :: useBreakL ::
[(ItemStructuralFunction, ComposeLinkType)] -> [(ItemStructuralFunction, CLinkType)] ->
[(ItemStructuralFunction, ComposeLinkType)] -> [(ItemStructuralFunction, CLinkType)] ->
LinkTest LinkTest
useBreakL x y = useBreakListsLinkTest (map (uncurry noa) x) (map (uncurry noa) y) useBreakL x y = useBreakListsLinkTest (map (uncurry noa) x) (map (uncurry noa) y)
where where
@@ -68,7 +68,7 @@ useBreakListsLinkTest llist rlist = LTest ltest rtest
itemToBreakLists :: itemToBreakLists ::
Item -> Item ->
ItemStructuralFunction -> ItemStructuralFunction ->
([(ItemStructuralFunction, ComposeLinkType)], [(ItemStructuralFunction, ComposeLinkType)]) ([(ItemStructuralFunction, CLinkType)], [(ItemStructuralFunction, CLinkType)])
itemToBreakLists itm itmf = case (itm ^. itType, itmf) of itemToBreakLists itm itmf = case (itm ^. itType, itmf) of
(HELD TORCH, _) -> (getAmmoLinks itm, []) (HELD TORCH, _) -> (getAmmoLinks itm, [])
(ATTACH UNDERBARRELSLOT, _) -> ([(UnderBarrelPlatformSF, UnderBarrelPlatformLink)], []) (ATTACH UNDERBARRELSLOT, _) -> ([(UnderBarrelPlatformSF, UnderBarrelPlatformLink)], [])
@@ -118,12 +118,12 @@ itemToBreakLists itm itmf = case (itm ^. itType, itmf) of
([(AmmoMagSF ElectricalAmmo, AmmoInLink 0 ElectricalAmmo)], []) ([(AmmoMagSF ElectricalAmmo, AmmoInLink 0 ElectricalAmmo)], [])
_ -> ([], []) _ -> ([], [])
getAutoSpringLinks :: Item -> [(ItemStructuralFunction, ComposeLinkType)] getAutoSpringLinks :: Item -> [(ItemStructuralFunction, CLinkType)]
getAutoSpringLinks itm = case baseTriggerType itm of getAutoSpringLinks itm = case baseTriggerType itm of
HammerTrigger -> [(MakeAutoSF, MakeAutoLink)] HammerTrigger -> [(MakeAutoSF, MakeAutoLink)]
_ -> [] _ -> []
extraWeaponLinks :: Item -> [(ItemStructuralFunction, ComposeLinkType)] extraWeaponLinks :: Item -> [(ItemStructuralFunction, CLinkType)]
extraWeaponLinks itm = case itm ^. itType of extraWeaponLinks itm = case itm ^. itType of
HELD GLAUNCHER -> launcherlinks <> [(GrenadeHitEffectSF,GrenadeHitEffectLink)] HELD GLAUNCHER -> launcherlinks <> [(GrenadeHitEffectSF,GrenadeHitEffectLink)]
HELD RLAUNCHER -> launcherlinks HELD RLAUNCHER -> launcherlinks
@@ -132,14 +132,14 @@ extraWeaponLinks itm = case itm ^. itType of
where where
launcherlinks = [(ProjectileStabiliserSF,ProjectileStabiliserLink)] launcherlinks = [(ProjectileStabiliserSF,ProjectileStabiliserLink)]
extraWeaponLinksBelow :: Item -> [(ItemStructuralFunction, ComposeLinkType)] extraWeaponLinksBelow :: Item -> [(ItemStructuralFunction, CLinkType)]
extraWeaponLinksBelow itm extraWeaponLinksBelow itm
-- | Just TwoHandUnder <- itm ^? itUse . heldAim . aimStance -- | Just TwoHandUnder <- itm ^? itUse . heldAim . aimStance
| TwoHandUnder <- aStance itm | TwoHandUnder <- aStance itm
= [(UnderBarrelSlotSF,UnderBarrelSlotLink)] = [(UnderBarrelSlotSF,UnderBarrelSlotLink)]
| otherwise = [] | otherwise = []
getAmmoLinks :: Item -> [(ItemStructuralFunction, ComposeLinkType)] getAmmoLinks :: Item -> [(ItemStructuralFunction, CLinkType)]
getAmmoLinks itm = getAmmoLinks itm =
map map
(\(i, a) -> (AmmoMagSF a, AmmoInLink i a)) (\(i, a) -> (AmmoMagSF a, AmmoInLink i a))
@@ -181,7 +181,7 @@ itemToFunction itm = case itm ^. itType of
_ -> NoSF _ -> NoSF
structureToPotentialFunction :: structureToPotentialFunction ::
LabelDoubleTree ItemLink ComposedItem -> LabelDoubleTree ItemLink CItem ->
S.Set ItemStructuralFunction S.Set ItemStructuralFunction
structureToPotentialFunction ldt = case ldt ^. ldtValue . _1 . itType of structureToPotentialFunction ldt = case ldt ^. ldtValue . _1 . itType of
STICKYMOD -> S.singleton GrenadeHitEffectSF STICKYMOD -> S.singleton GrenadeHitEffectSF
@@ -190,7 +190,7 @@ structureToPotentialFunction ldt = case ldt ^. ldtValue . _1 . itType of
HELD GLAUNCHER -> S.singleton UnderBarrelPlatformSF HELD GLAUNCHER -> S.singleton UnderBarrelPlatformSF
_ -> S.singleton (ldt ^. ldtValue . _2) _ -> S.singleton (ldt ^. ldtValue . _2)
baseCI :: Item -> ComposedItem baseCI :: Item -> CItem
baseCI itm = (itm, itemToFunction itm, itemBaseConnections itm) baseCI itm = (itm, itemToFunction itm, itemBaseConnections itm)
itemBaseConnections :: Item -> LinkTest itemBaseConnections :: Item -> LinkTest
@@ -202,13 +202,13 @@ itemBaseConnections itm = case _itType itm of
laserLinkTest :: Item -> LinkTest laserLinkTest :: Item -> LinkTest
laserLinkTest itm = LTest (llleft itm) (llright itm) laserLinkTest itm = LTest (llleft itm) (llright itm)
llleft :: Item -> LabelDoubleTree ItemLink ComposedItem -> Maybe LinkUpdate llleft :: Item -> LabelDoubleTree ItemLink CItem -> Maybe LinkUpdate
llleft itm = llleft itm =
_tryLeftLink _tryLeftLink
. uncurry useBreakL . uncurry useBreakL
$ itemToBreakLists itm WeaponTargetingSF $ itemToBreakLists itm WeaponTargetingSF
llright :: Item -> LabelDoubleTree ItemLink ComposedItem -> Maybe LinkUpdate llright :: Item -> LabelDoubleTree ItemLink CItem -> Maybe LinkUpdate
llright itm pci = case pci ^. ldtValue . _1 . itType of llright itm pci = case pci ^. ldtValue . _1 . itType of
CRAFT TRANSFORMER -> Just (toLasgunUpdate itm) CRAFT TRANSFORMER -> Just (toLasgunUpdate itm)
_ -> _tryRightLink (uncurry useBreakL $ itemToBreakLists itm WeaponTargetingSF) pci _ -> _tryRightLink (uncurry useBreakL $ itemToBreakLists itm WeaponTargetingSF) pci
@@ -232,20 +232,20 @@ springLinkTest = LTest (const Nothing) $
) )
_ -> Nothing _ -> Nothing
--itemLinkTestLeft :: Item -> PartiallyComposedItem -> Maybe LinkUpdate --itemLinkTestLeft :: Item -> PartiallyCItem -> Maybe LinkUpdate
--itemLinkTestLeft itm = _tryLeftLink $ --itemLinkTestLeft itm = _tryLeftLink $
-- uncurry useBreakL $ itemToBreakLists itm -- uncurry useBreakL $ itemToBreakLists itm
type LDTComb a b = LabelDoubleTree b a -> LabelDoubleTree b a -> Maybe (LabelDoubleTree b a) type LDTComb a b = LabelDoubleTree b a -> LabelDoubleTree b a -> Maybe (LabelDoubleTree b a)
leftIsParentCombine :: LDTComb ComposedItem ItemLink leftIsParentCombine :: LDTComb CItem ItemLink
leftIsParentCombine ltree rtree = do leftIsParentCombine ltree rtree = do
lu <- (ltree ^. ldtValue . _3 . tryRightLink) rtree --(rtree ^. ldtValue) lu <- (ltree ^. ldtValue . _3 . tryRightLink) rtree --(rtree ^. ldtValue)
return $ return $
ltree & ldtValue %~ (lu ^. luParentUpdate) ltree & ldtValue %~ (lu ^. luParentUpdate)
& ldtRight %~ (++ [(lu ^. luLinkType, rtree & ldtValue %~ (lu ^. luChildUpdate))]) & ldtRight %~ (++ [(lu ^. luLinkType, rtree & ldtValue %~ (lu ^. luChildUpdate))])
rightIsParentCombine :: LDTComb ComposedItem ItemLink rightIsParentCombine :: LDTComb CItem ItemLink
rightIsParentCombine ltree rtree = do rightIsParentCombine ltree rtree = do
lu <- (rtree ^. ldtValue . _3 . tryLeftLink) ltree -- (ltree ^. ldtValue) lu <- (rtree ^. ldtValue . _3 . tryLeftLink) ltree -- (ltree ^. ldtValue)
return $ return $
@@ -276,7 +276,7 @@ joinItemsInList f xs = snd $ h (xs, [])
Just w -> h (w : ys, zs) Just w -> h (w : ys, zs)
-- this puts the first elements in the intmap at the end of the list -- this puts the first elements in the intmap at the end of the list
invLDT :: IM.IntMap Item -> [LabelDoubleTree ItemLink ComposedItem] invLDT :: IM.IntMap Item -> [LabelDoubleTree ItemLink CItem]
invLDT = invLDT =
joinItemsInList tryAttachItems . IM.elems joinItemsInList tryAttachItems . IM.elems
. fmap (singleLDT . baseCI) . fmap (singleLDT . baseCI)
@@ -306,28 +306,28 @@ invAdj = IM.unions . map g . invLDT
$ itm ^? itLocation . ilInvID $ itm ^? itLocation . ilInvID
-- returns an intmap with trees for (only!) root items, indexed by inventory position -- returns an intmap with trees for (only!) root items, indexed by inventory position
invRootTrees :: IM.IntMap Item -> IM.IntMap (LabelDoubleTree ItemLink ComposedItem) invRootTrees :: IM.IntMap Item -> IM.IntMap (LabelDoubleTree ItemLink CItem)
invRootTrees = IM.fromDistinctAscList . reverse . map getid . invLDT invRootTrees = IM.fromDistinctAscList . reverse . map getid . invLDT
where where
getid :: getid ::
LabelDoubleTree ItemLink ComposedItem -> LabelDoubleTree ItemLink CItem ->
(Int, LabelDoubleTree ItemLink ComposedItem) (Int, LabelDoubleTree ItemLink CItem)
getid t = (t ^?! ldtValue . _1 . itLocation . ilInvID, t) getid t = (t ^?! ldtValue . _1 . itLocation . ilInvID, t)
-- returns an intmap with indents and locations for all items -- returns an intmap with indents and locations for all items
allInvLocs :: IM.IntMap Item -> IM.IntMap (Int, LocationLDT ItemLink ComposedItem) allInvLocs :: IM.IntMap Item -> IM.IntMap (Int, LocationLDT ItemLink CItem)
allInvLocs inv = foldMap (f . LocLDT TopLDT) (IM.elems (invRootTrees inv)) mempty allInvLocs inv = foldMap (f . LocLDT TopLDT) (IM.elems (invRootTrees inv)) mempty
where where
f t = cldtPropagateFold h h g 0 t id f t = cldtPropagateFold h h g 0 t id
h x _ _ _ = x + 1 h x _ _ _ = x + 1
g :: g ::
Int -> Int ->
LocationLDT ItemLink ComposedItem -> LocationLDT ItemLink CItem ->
( IM.IntMap (Int, LocationLDT ItemLink ComposedItem) -> ( IM.IntMap (Int, LocationLDT ItemLink CItem) ->
IM.IntMap (Int, LocationLDT ItemLink ComposedItem) IM.IntMap (Int, LocationLDT ItemLink CItem)
) -> ) ->
IM.IntMap (Int, LocationLDT ItemLink ComposedItem) -> IM.IntMap (Int, LocationLDT ItemLink CItem) ->
IM.IntMap (Int, LocationLDT ItemLink ComposedItem) IM.IntMap (Int, LocationLDT ItemLink CItem)
g x ldt = g x ldt =
(.) (.)
( IM.insert ( IM.insert
+1 -5
View File
@@ -43,11 +43,7 @@ autoRifle =
& itType .~ HELD AUTORIFLE & itType .~ HELD AUTORIFLE
burstRifle :: Item burstRifle :: Item
burstRifle = burstRifle = rifle & itType .~ HELD BURSTRIFLE
rifle
& itType .~ HELD BURSTRIFLE
-- & itUse . heldMuzzles . ix 0 . mzInaccuracy .~ 0.05
-- & itUse . heldDelay . rateMax .~ 6
miniGunX :: Int -> Item miniGunX :: Int -> Item
miniGunX i = miniGunX i =
+1 -1
View File
@@ -6,7 +6,7 @@ import Color
import Control.Lens import Control.Lens
import Dodge.Data.ComposedItem import Dodge.Data.ComposedItem
itemInvColor :: ComposedItem -> Color itemInvColor :: CItem -> Color
itemInvColor ci = case ci ^. _2 of itemInvColor ci = case ci ^. _2 of
MapperSF -> white MapperSF -> white
GrenadeHitEffectSF -> yellow GrenadeHitEffectSF -> yellow
+2 -2
View File
@@ -13,14 +13,14 @@ orientChild itm = case _itType itm of
HELD LASER -> (V3 15 (-5) 0, Q.qID) HELD LASER -> (V3 15 (-5) 0, Q.qID)
_ -> (0, Q.qID) _ -> (0, Q.qID)
orientByLink :: Item -> ComposeLinkType -> (Point3, Q.Quaternion Float) orientByLink :: Item -> CLinkType -> (Point3, Q.Quaternion Float)
orientByLink itm lt = case (_itType itm, lt) of orientByLink itm lt = case (_itType itm, lt) of
(HELD FLAMETHROWER, AmmoInLink{}) -> (V3 4 (-6) 0, Q.qID) (HELD FLAMETHROWER, AmmoInLink{}) -> (V3 4 (-6) 0, Q.qID)
(HELD _, AmmoInLink{}) -> (V3 7 (-2) 0, Q.qID) (HELD _, AmmoInLink{}) -> (V3 7 (-2) 0, Q.qID)
(HELD _, WeaponScopeLink) -> (V3 5 0 5, Q.qID) (HELD _, WeaponScopeLink) -> (V3 5 0 5, Q.qID)
_ -> (0, Q.qID) _ -> (0, Q.qID)
orientAttachment :: Item -> ComposeLinkType -> Item -> (Point3, Q.Quaternion Float) orientAttachment :: Item -> CLinkType -> Item -> (Point3, Q.Quaternion Float)
orientAttachment par lnk ch = case (_itType par, lnk, _itType ch) of orientAttachment par lnk ch = case (_itType par, lnk, _itType ch) of
-- (HELD BURSTRIFLE, _, HELD TORCH) -> (V3 20 0 0, Q.axisAngle (V3 0 0 1) (pi/2)) -- (HELD BURSTRIFLE, _, HELD TORCH) -> (V3 20 0 0, Q.axisAngle (V3 0 0 1) (pi/2))
-- (HELD LAUNCHER, _, HELD TORCH) -> (V3 0 20 0, Q.axisAngle (V3 0 0 1) (pi/4)) -- (HELD LAUNCHER, _, HELD TORCH) -> (V3 0 20 0, Q.axisAngle (V3 0 0 1) (pi/4))
+5 -11
View File
@@ -1,6 +1,7 @@
{-# OPTIONS_GHC -Wno-unused-imports #-} {-# OPTIONS_GHC -Wno-unused-imports #-}
module Dodge.TestString where module Dodge.TestString where
import Dodge.Item.UseDelay
import qualified SDL import qualified SDL
import Linear import Linear
import Dodge.ListDisplayParams import Dodge.ListDisplayParams
@@ -26,17 +27,10 @@ import qualified IntMapHelp as IM
import qualified Data.Map.Strict as M import qualified Data.Map.Strict as M
testStringInit :: Universe -> [String] testStringInit :: Universe -> [String]
testStringInit u = fmap show $ u ^.. uvWorld . cWorld . lWorld . terminals . each . tmID testStringInit u = prettyShort (u ^? uvWorld . cWorld . lWorld . creatures . ix 0 . crInv
-- foldMap prettyShort $ u ^? uvWorld . cWorld . lWorld . creatures . ix 0 . crTwist . ix 0 . itTimeLastUsed)
-- prettyShort $ u ^.. uvWorld . cWorld . lWorld . teslaArcs . ix 0 . taArcSteps . each . asObject <> prettyShort (u ^? uvWorld . cWorld . lWorld . creatures . ix 0 . crInv
--testStringInit u = foldMap prettyShort $ u ^. uvWorld . cWorld . lWorld . projectiles . ix 0 >>= ((^? rateMax) .useDelay))
-- (map (show . _ebPos) $ u ^. uvWorld . cWorld . lWorld . energyBalls)
-- <>
-- (foldMap prettyShort $ u ^. uvWorld . cWorld . lWorld . bullets)
-- fromMaybe mempty $ do
-- cr <- u ^? uvWorld . cWorld . lWorld . creatures . ix 0
-- let itms = IM.elems $ cr ^. crInv
-- return $ map (show . (^? itLocation . ilIsSelected)) itms
--return . foldMap (prettyLDT (show . (^. _1 . itType))) . invLDT $ _crInv cr --return . foldMap (prettyLDT (show . (^. _1 . itType))) . invLDT $ _crInv cr
-- where -- where
-- idp = invDisplayParams $ u ^. uvWorld -- idp = invDisplayParams $ u ^. uvWorld
-1
View File
@@ -58,7 +58,6 @@ itemScroll yi invid itm w
| HELD ALTERIFLE <- itm ^. itType | HELD ALTERIFLE <- itm ^. itType
, yi /= 0 = , yi /= 0 =
w w
-- & itmlens . itUse . heldMuzzles . ix 0 . mzAmmoSlot
& itmlens . itParams . alteRifleSwitch & itmlens . itParams . alteRifleSwitch
%~ ((`mod` 2) . (+ 1)) %~ ((`mod` 2) . (+ 1))
| isJust $ itm ^? itScroll . itsInt = w & itmlens . itScroll . itsInt +~ yi | isJust $ itm ^? itScroll . itsInt = w & itmlens . itScroll . itsInt +~ yi
-5
View File
@@ -51,11 +51,6 @@ doWdWd we = case we of
allInvLocs (cr ^. crInv) ^? ix invid . _2 . locLDT allInvLocs (cr ^. crInv) ^? ix invid . _2 . locLDT
return $ heldEffectMuzzles itree cr w return $ heldEffectMuzzles itree cr w
--doItCrWdWd :: ItCrWdWd -> LabelDoubleTree ComposeLinkType Item -> Creature -> World -> World
--doItCrWdWd icww = case icww of
-- ItCrWdItemHeldEffect -> heldEffect InitialPress
-- ItCrWdItemHeldEffectNoHammer -> heldEffectNoHammerCheck
accessTerminal :: Maybe Int -> World -> World accessTerminal :: Maybe Int -> World -> World
accessTerminal mtmid w = fromMaybe w $ do accessTerminal mtmid w = fromMaybe w $ do
tmid <- mtmid tmid <- mtmid
+168 -170
View File
@@ -24,9 +24,9 @@ ALTERIFLE src/Dodge/Data/Item/Combine.hs 153;" C
AMMOMAG src/Dodge/Data/Item/Combine.hs 21;" C AMMOMAG src/Dodge/Data/Item/Combine.hs 21;" C
AMR src/Dodge/Data/Item/Combine.hs 158;" C AMR src/Dodge/Data/Item/Combine.hs 158;" C
ANTIMATTER src/Dodge/Data/Item/Combine.hs 68;" C ANTIMATTER src/Dodge/Data/Item/Combine.hs 68;" C
APInt src/Dodge/Data/Item/Use.hs 49;" C APInt src/Dodge/Data/Item/Use.hs 48;" C
APNothing src/Dodge/Data/Item/Use.hs 50;" C APNothing src/Dodge/Data/Item/Use.hs 49;" C
APProjectiles src/Dodge/Data/Item/Use.hs 48;" C APProjectiles src/Dodge/Data/Item/Use.hs 47;" C
AQUAMARINE src/Color/Data.hs 24;" C AQUAMARINE src/Color/Data.hs 24;" C
ARHUD src/Dodge/Data/Item/Combine.hs 35;" C ARHUD src/Dodge/Data/Item/Combine.hs 35;" C
ARHUDSF src/Dodge/Data/ComposedItem.hs 49;" C ARHUDSF src/Dodge/Data/ComposedItem.hs 49;" C
@@ -65,7 +65,7 @@ AmmoMagSF src/Dodge/Data/ComposedItem.hs 50;" C
AmmoMagType src/Dodge/Data/Item/Combine.hs 105;" t AmmoMagType src/Dodge/Data/Item/Combine.hs 105;" t
AmmoModLink src/Dodge/Data/ComposedItem.hs 18;" C AmmoModLink src/Dodge/Data/ComposedItem.hs 18;" C
AmmoModifierSF src/Dodge/Data/ComposedItem.hs 56;" C AmmoModifierSF src/Dodge/Data/ComposedItem.hs 56;" C
AmmoParams src/Dodge/Data/Item/Use.hs 53;" t AmmoParams src/Dodge/Data/Item/Use.hs 52;" t
AmmoPayloadLink src/Dodge/Data/ComposedItem.hs 20;" C AmmoPayloadLink src/Dodge/Data/ComposedItem.hs 20;" C
AmmoPayloadSF src/Dodge/Data/ComposedItem.hs 58;" C AmmoPayloadSF src/Dodge/Data/ComposedItem.hs 58;" C
AmmoPerShot src/Dodge/Data/Muzzle.hs 52;" t AmmoPerShot src/Dodge/Data/Muzzle.hs 52;" t
@@ -99,7 +99,7 @@ AsteroidStrike src/Dodge/Data/Scenario.hs 33;" C
AtEase src/Dodge/Data/Creature/Stance.hs 40;" C AtEase src/Dodge/Data/Creature/Stance.hs 40;" C
AtomicWaste src/Dodge/Data/Scenario.hs 26;" C AtomicWaste src/Dodge/Data/Scenario.hs 26;" C
Attach src/Dodge/Item/Attach.hs 1;" m Attach src/Dodge/Item/Attach.hs 1;" m
AttachParams src/Dodge/Data/Item/Use.hs 47;" t AttachParams src/Dodge/Data/Item/Use.hs 46;" t
AttachType src/Dodge/Data/Item/Combine.hs 91;" t AttachType src/Dodge/Data/Item/Combine.hs 91;" t
Attention src/Dodge/Data/Creature/Perception.hs 60;" t Attention src/Dodge/Data/Creature/Perception.hs 60;" t
AttentiveTo src/Dodge/Data/Creature/Perception.hs 61;" C AttentiveTo src/Dodge/Data/Creature/Perception.hs 61;" C
@@ -231,7 +231,7 @@ BulletMod src/Dodge/Data/Item/BulletMod.hs 10;" t
BulletMod src/Dodge/Data/Item/BulletMod.hs 3;" m BulletMod src/Dodge/Data/Item/BulletMod.hs 3;" m
BulletModEffect src/Dodge/Data/Item/BulletMod.hs 12;" C BulletModEffect src/Dodge/Data/Item/BulletMod.hs 12;" C
BulletModPayload src/Dodge/Data/Item/BulletMod.hs 11;" C BulletModPayload src/Dodge/Data/Item/BulletMod.hs 11;" C
BulletParams src/Dodge/Data/Item/Use.hs 54;" C BulletParams src/Dodge/Data/Item/Use.hs 53;" C
BulletPayload src/Dodge/Data/Bullet.hs 36;" t BulletPayload src/Dodge/Data/Bullet.hs 36;" t
BulletTrajectory src/Dodge/Data/Bullet.hs 44;" t BulletTrajectory src/Dodge/Data/Bullet.hs 44;" t
BulletTrajectoryType src/Dodge/Data/Bullet.hs 51;" t BulletTrajectoryType src/Dodge/Data/Bullet.hs 51;" t
@@ -250,7 +250,9 @@ CHARTREUSE src/Color/Data.hs 25;" C
CHEMFUELPOUCH src/Dodge/Data/Item/Combine.hs 111;" C CHEMFUELPOUCH src/Dodge/Data/Item/Combine.hs 111;" C
CHeal src/Dodge/Data/Item/HeldUse.hs 16;" C CHeal src/Dodge/Data/Item/HeldUse.hs 16;" C
CIRCLE src/Dodge/Data/GenParams.hs 20;" C CIRCLE src/Dodge/Data/GenParams.hs 20;" C
CItem src/Dodge/Data/ComposedItem.hs 68;" t
CLICKER src/Dodge/Data/Item/Combine.hs 28;" C CLICKER src/Dodge/Data/Item/Combine.hs 28;" C
CLinkType src/Dodge/Data/ComposedItem.hs 15;" t
CME src/Dodge/Data/MuzzleEffect.hs 14;" C CME src/Dodge/Data/MuzzleEffect.hs 14;" C
COPIER src/Dodge/Data/Item/Combine.hs 29;" C COPIER src/Dodge/Data/Item/Combine.hs 29;" C
CRAFT src/Dodge/Data/Item/Combine.hs 19;" C CRAFT src/Dodge/Data/Item/Combine.hs 19;" C
@@ -280,7 +282,7 @@ CardinalPoint src/Dodge/Base/CardinalPoint.hs 1;" m
CardinalPoint src/Dodge/Data/CardinalPoint.hs 1;" m CardinalPoint src/Dodge/Data/CardinalPoint.hs 1;" m
Carriage src/Dodge/Data/Creature/Stance.hs 20;" t Carriage src/Dodge/Data/Creature/Stance.hs 20;" t
Carte src/Dodge/Render/HUD/Carte.hs 1;" m Carte src/Dodge/Render/HUD/Carte.hs 1;" m
ChainEffect src/Dodge/HeldUse.hs 80;" t ChainEffect src/Dodge/HeldUse.hs 69;" t
ChainEffect src/Dodge/Item/Weapon/TriggerType.hs 43;" t ChainEffect src/Dodge/Item/Weapon/TriggerType.hs 43;" t
ChainUpdates src/Dodge/Creature/ChainUpdates.hs 1;" m ChainUpdates src/Dodge/Creature/ChainUpdates.hs 1;" m
ChangePosture src/Dodge/Data/ActionPlan.hs 42;" C ChangePosture src/Dodge/Data/ActionPlan.hs 42;" C
@@ -339,8 +341,6 @@ CombineInventoryChange src/Dodge/Data/World.hs 32;" C
Common src/Dodge/Zoning/Common.hs 1;" m Common src/Dodge/Zoning/Common.hs 1;" m
Compile src/Shader/Compile.hs 1;" m Compile src/Shader/Compile.hs 1;" m
Compose src/Dodge/Tree/Compose.hs 4;" m Compose src/Dodge/Tree/Compose.hs 4;" m
ComposeLinkType src/Dodge/Data/ComposedItem.hs 15;" t
ComposedItem src/Dodge/Data/ComposedItem.hs 68;" t
ComposedItem src/Dodge/Data/ComposedItem.hs 6;" m ComposedItem src/Dodge/Data/ComposedItem.hs 6;" m
Composite src/Picture/Composite.hs 1;" m Composite src/Picture/Composite.hs 1;" m
ComsSS src/Dodge/Data/Scenario.hs 98;" C ComsSS src/Dodge/Data/Scenario.hs 98;" C
@@ -635,7 +635,7 @@ EscapeMenuOption src/Dodge/Data/Universe.hs 76;" t
Essential src/Shape/Data.hs 34;" C Essential src/Shape/Data.hs 34;" C
Euse src/Dodge/Data/Item/HeldUse.hs 19;" t Euse src/Dodge/Data/Item/HeldUse.hs 19;" t
Euse src/Dodge/Euse.hs 1;" m Euse src/Dodge/Euse.hs 1;" m
Event src/Dodge/Button/Event.hs 1;" m Event src/Dodge/Button/Event.hs 2;" m
Event src/Dodge/Event.hs 14;" m Event src/Dodge/Event.hs 14;" m
ExamineInventory src/Dodge/Data/HUD.hs 30;" C ExamineInventory src/Dodge/Data/HUD.hs 30;" C
Explore src/Dodge/Data/Scenario.hs 4;" C Explore src/Dodge/Data/Scenario.hs 4;" C
@@ -751,7 +751,7 @@ GasAmmo src/Dodge/Data/AmmoType.hs 11;" C
GasCloud src/Dodge/Data/Cloud.hs 26;" C GasCloud src/Dodge/Data/Cloud.hs 26;" C
GasCreate src/Dodge/Data/Item/Use/Consumption/Ammo.hs 17;" t GasCreate src/Dodge/Data/Item/Use/Consumption/Ammo.hs 17;" t
GasFuel src/Dodge/Data/Item/Use/Consumption/Ammo.hs 14;" t GasFuel src/Dodge/Data/Item/Use/Consumption/Ammo.hs 14;" t
GasParams src/Dodge/Data/Item/Use.hs 56;" C GasParams src/Dodge/Data/Item/Use.hs 55;" C
GenFloat src/Dodge/Data/GenFloat.hs 11;" t GenFloat src/Dodge/Data/GenFloat.hs 11;" t
GenFloat src/Dodge/Data/GenFloat.hs 5;" m GenFloat src/Dodge/Data/GenFloat.hs 5;" m
GenParams src/Dodge/Data/GenParams.hs 15;" t GenParams src/Dodge/Data/GenParams.hs 15;" t
@@ -959,7 +959,7 @@ ItemSetWarmTime src/Dodge/Data/Item/Effect.hs 34;" C
ItemStructuralFunction src/Dodge/Data/ComposedItem.hs 38;" t ItemStructuralFunction src/Dodge/Data/ComposedItem.hs 38;" t
ItemTargeting src/Dodge/Data/Item.hs 56;" t ItemTargeting src/Dodge/Data/Item.hs 56;" t
ItemType src/Dodge/Data/Item/Combine.hs 16;" t ItemType src/Dodge/Data/Item/Combine.hs 16;" t
ItemUse src/Dodge/Data/Item/Use.hs 31;" t ItemUse src/Dodge/Data/Item/Use.hs 30;" t
ItemUseCondition src/Dodge/ItemUseCondition.hs 1;" m ItemUseCondition src/Dodge/ItemUseCondition.hs 1;" m
ItemUseDelay src/Dodge/Data/UseDelay.hs 11;" t ItemUseDelay src/Dodge/Data/UseDelay.hs 11;" t
ItemUseToggle src/Dodge/Data/Item/Effect.hs 30;" C ItemUseToggle src/Dodge/Data/Item/Effect.hs 30;" C
@@ -1261,7 +1261,6 @@ NewIntMap src/NewInt.hs 18;" t
NewSideEffect src/Dodge/Data/Universe.hs 65;" C NewSideEffect src/Dodge/Data/Universe.hs 65;" C
Ngon src/Dodge/Room/Ngon.hs 1;" m Ngon src/Dodge/Room/Ngon.hs 1;" m
NoAction src/Dodge/Data/ActionPlan.hs 152;" C NoAction src/Dodge/Data/ActionPlan.hs 152;" C
NoAmmoParams src/Dodge/Data/Item/Use.hs 57;" C
NoArguments src/Dodge/Data/Terminal.hs 91;" C NoArguments src/Dodge/Data/Terminal.hs 91;" C
NoBeamCombine src/Dodge/Data/Beam.hs 43;" C NoBeamCombine src/Dodge/Data/Beam.hs 43;" C
NoConcurrentEffect src/Loop/Data.hs 7;" C NoConcurrentEffect src/Loop/Data.hs 7;" C
@@ -1503,7 +1502,7 @@ Procedural src/Dodge/Room/Procedural.hs 2;" m
Projectile src/Dodge/Data/Projectile.hs 17;" t Projectile src/Dodge/Data/Projectile.hs 17;" t
Projectile src/Dodge/Data/Projectile.hs 6;" m Projectile src/Dodge/Data/Projectile.hs 6;" m
Projectile src/Dodge/Projectile.hs 1;" m Projectile src/Dodge/Projectile.hs 1;" m
ProjectileParams src/Dodge/Data/Item/Use.hs 55;" C ProjectileParams src/Dodge/Data/Item/Use.hs 54;" C
ProjectileStabiliserLink src/Dodge/Data/ComposedItem.hs 31;" C ProjectileStabiliserLink src/Dodge/Data/ComposedItem.hs 31;" C
ProjectileStabiliserSF src/Dodge/Data/ComposedItem.hs 62;" C ProjectileStabiliserSF src/Dodge/Data/ComposedItem.hs 62;" C
ProjectileType src/Dodge/Data/Projectile.hs 41;" t ProjectileType src/Dodge/Data/Projectile.hs 41;" t
@@ -2079,32 +2078,32 @@ Update src/Preload/Update.hs 3;" m
Use src/Dodge/Data/Item/Use.hs 6;" m Use src/Dodge/Data/Item/Use.hs 6;" m
Use src/Dodge/Default/Item/Use.hs 1;" m Use src/Dodge/Default/Item/Use.hs 1;" m
UseAheadPos src/Dodge/Data/ActionPlan.hs 160;" C UseAheadPos src/Dodge/Data/ActionPlan.hs 160;" C
UseAttach src/Dodge/Data/Item/Use.hs 34;" C UseAttach src/Dodge/Data/Item/Use.hs 33;" C
UseBulletMod src/Dodge/Data/Item/Use.hs 39;" C UseBulletMod src/Dodge/Data/Item/Use.hs 38;" C
UseCondition src/Dodge/Data/UseCondition.hs 2;" m UseCondition src/Dodge/Data/UseCondition.hs 2;" m
UseDelay src/Dodge/Data/Item/HeldDelay.hs 13;" t UseDelay src/Dodge/Data/Item/HeldDelay.hs 13;" t
UseDelay src/Dodge/Data/UseDelay.hs 6;" m UseDelay src/Dodge/Data/UseDelay.hs 6;" m
UseDelay src/Dodge/Item/UseDelay.hs 3;" m UseDelay src/Dodge/Item/UseDelay.hs 3;" m
UseEquip src/Dodge/Data/Item/Use.hs 33;" C UseEquip src/Dodge/Data/Item/Use.hs 32;" C
UseExactly src/Dodge/Data/Muzzle.hs 53;" C UseExactly src/Dodge/Data/Muzzle.hs 53;" C
UseFocus src/Dodge/Data/UseCondition.hs 11;" t UseFocus src/Dodge/Data/UseCondition.hs 11;" t
UseFromLocation src/Dodge/Data/UseCondition.hs 13;" C UseFromLocation src/Dodge/Data/UseCondition.hs 13;" C
UseFromRoot src/Dodge/Data/UseCondition.hs 12;" C UseFromRoot src/Dodge/Data/UseCondition.hs 12;" C
UseHeld src/Dodge/Data/Item/Use.hs 32;" C UseHeld src/Dodge/Data/Item/Use.hs 31;" C
UseInt src/Dodge/Data/Item/Use.hs 35;" C UseInt src/Dodge/Data/Item/Use.hs 34;" C
UseInvItem src/Dodge/Data/WorldEffect.hs 34;" C UseInvItem src/Dodge/Data/WorldEffect.hs 34;" C
UseItem src/Dodge/Data/ActionPlan.hs 37;" C UseItem src/Dodge/Data/ActionPlan.hs 37;" C
UseItem src/Dodge/Creature/Impulse/UseItem.hs 3;" m UseItem src/Dodge/Creature/Impulse/UseItem.hs 3;" m
UseItemWidth src/Dodge/Data/SelectionList.hs 41;" C UseItemWidth src/Dodge/Data/SelectionList.hs 41;" C
UseMapper src/Dodge/Data/Item/Use.hs 41;" C UseMapper src/Dodge/Data/Item/Use.hs 40;" C
UseMvTargetPos src/Dodge/Data/ActionPlan.hs 163;" C UseMvTargetPos src/Dodge/Data/ActionPlan.hs 163;" C
UseNothing src/Dodge/Data/Item/Use.hs 36;" C UseNothing src/Dodge/Data/Item/Use.hs 35;" C
UseScope src/Dodge/Data/Item/Use.hs 38;" C UseScope src/Dodge/Data/Item/Use.hs 37;" C
UseSelf src/Dodge/Data/ActionPlan.hs 157;" C UseSelf src/Dodge/Data/ActionPlan.hs 157;" C
UseTarget src/Dodge/Data/ActionPlan.hs 154;" C UseTarget src/Dodge/Data/ActionPlan.hs 154;" C
UseToggle src/Dodge/Data/Item/Use.hs 40;" C UseToggle src/Dodge/Data/Item/Use.hs 39;" C
UseUpTo src/Dodge/Data/Muzzle.hs 54;" C UseUpTo src/Dodge/Data/Muzzle.hs 54;" C
UseValue src/Dodge/Data/Item/Use.hs 37;" C UseValue src/Dodge/Data/Item/Use.hs 36;" C
UseableAnytime src/Dodge/Data/UseCondition.hs 7;" C UseableAnytime src/Dodge/Data/UseCondition.hs 7;" C
UseableWhenAimed src/Dodge/Data/UseCondition.hs 5;" C UseableWhenAimed src/Dodge/Data/UseCondition.hs 5;" C
UseableWhenHeld src/Dodge/Data/UseCondition.hs 6;" C UseableWhenHeld src/Dodge/Data/UseCondition.hs 6;" C
@@ -2243,14 +2242,14 @@ _allocSwapID src/Dodge/Data/RightButtonOptions.hs 30;" f
_alphaDivideShader src/Data/Preload/Render.hs 18;" f _alphaDivideShader src/Data/Preload/Render.hs 18;" f
_alteRifleSwitch src/Dodge/Data/Item/Params.hs 19;" f _alteRifleSwitch src/Dodge/Data/Item/Params.hs 19;" f
_ambushTarget src/Dodge/Data/ActionPlan.hs 178;" f _ambushTarget src/Dodge/Data/ActionPlan.hs 178;" f
_ampBullet src/Dodge/Data/Item/Use.hs 54;" f _ampBullet src/Dodge/Data/Item/Use.hs 53;" f
_ampCreateGas src/Dodge/Data/Item/Use.hs 56;" f _ampCreateGas src/Dodge/Data/Item/Use.hs 55;" f
_ampPayload src/Dodge/Data/Item/Use.hs 55;" f _ampPayload src/Dodge/Data/Item/Use.hs 54;" f
_apAction src/Dodge/Data/ActionPlan.hs 20;" f _apAction src/Dodge/Data/ActionPlan.hs 20;" f
_apGoal src/Dodge/Data/ActionPlan.hs 22;" f _apGoal src/Dodge/Data/ActionPlan.hs 22;" f
_apImpulse src/Dodge/Data/ActionPlan.hs 19;" f _apImpulse src/Dodge/Data/ActionPlan.hs 19;" f
_apInt src/Dodge/Data/Item/Use.hs 49;" f _apInt src/Dodge/Data/Item/Use.hs 48;" f
_apProjectiles src/Dodge/Data/Item/Use.hs 48;" f _apProjectiles src/Dodge/Data/Item/Use.hs 47;" f
_apStrategy src/Dodge/Data/ActionPlan.hs 21;" f _apStrategy src/Dodge/Data/ActionPlan.hs 21;" f
_arLoaded src/Dodge/Data/Item/Use/Consumption.hs 27;" f _arLoaded src/Dodge/Data/Item/Use/Consumption.hs 27;" f
_arMax src/Dodge/Data/Item/Use/Consumption.hs 28;" f _arMax src/Dodge/Data/Item/Use/Consumption.hs 28;" f
@@ -2791,7 +2790,6 @@ _mzAmmoPerShot src/Dodge/Data/Muzzle.hs 16;" f
_mzAmmoSlot src/Dodge/Data/Muzzle.hs 13;" f _mzAmmoSlot src/Dodge/Data/Muzzle.hs 13;" f
_mzEffect src/Dodge/Data/Muzzle.hs 15;" f _mzEffect src/Dodge/Data/Muzzle.hs 15;" f
_mzFlareType src/Dodge/Data/Muzzle.hs 14;" f _mzFlareType src/Dodge/Data/Muzzle.hs 14;" f
_mzFrame src/Dodge/Data/Muzzle.hs 17;" f
_mzInaccuracy src/Dodge/Data/Muzzle.hs 12;" f _mzInaccuracy src/Dodge/Data/Muzzle.hs 12;" f
_mzPos src/Dodge/Data/Muzzle.hs 10;" f _mzPos src/Dodge/Data/Muzzle.hs 10;" f
_mzRot src/Dodge/Data/Muzzle.hs 11;" f _mzRot src/Dodge/Data/Muzzle.hs 11;" f
@@ -3173,11 +3171,11 @@ _tuFireTime src/Dodge/Data/Machine.hs 60;" f
_tuTurnSpeed src/Dodge/Data/Machine.hs 59;" f _tuTurnSpeed src/Dodge/Data/Machine.hs 59;" f
_tuWeapon src/Dodge/Data/Machine.hs 58;" f _tuWeapon src/Dodge/Data/Machine.hs 58;" f
_turnToPoint src/Dodge/Data/ActionPlan.hs 92;" f _turnToPoint src/Dodge/Data/ActionPlan.hs 92;" f
_uInt src/Dodge/Data/Item/Use.hs 35;" f _uInt src/Dodge/Data/Item/Use.hs 34;" f
_uScope src/Dodge/Data/Item/Use.hs 38;" f _uScope src/Dodge/Data/Item/Use.hs 37;" f
_uValue src/Dodge/Data/Item/Use.hs 37;" f _uValue src/Dodge/Data/Item/Use.hs 36;" f
_uaParams src/Dodge/Data/Item/Use.hs 34;" f _uaParams src/Dodge/Data/Item/Use.hs 33;" f
_ubMod src/Dodge/Data/Item/Use.hs 39;" f _ubMod src/Dodge/Data/Item/Use.hs 38;" f
_unCombEdge src/Dodge/Combine/Graph.hs 32;" f _unCombEdge src/Dodge/Combine/Graph.hs 32;" f
_unCombNode src/Dodge/Combine/Graph.hs 25;" f _unCombNode src/Dodge/Combine/Graph.hs 25;" f
_unFBO src/Shader/Data.hs 57;" f _unFBO src/Shader/Data.hs 57;" f
@@ -3194,12 +3192,12 @@ _unpauseClock src/Dodge/Data/World.hs 55;" f
_unputTerminal src/Dodge/Data/GenWorld.hs 36;" f _unputTerminal src/Dodge/Data/GenWorld.hs 36;" f
_useAheadPos src/Dodge/Data/ActionPlan.hs 161;" f _useAheadPos src/Dodge/Data/ActionPlan.hs 161;" f
_useExactly src/Dodge/Data/Muzzle.hs 53;" f _useExactly src/Dodge/Data/Muzzle.hs 53;" f
_useMapperLines src/Dodge/Data/Item/Use.hs 42;" f _useMapperLines src/Dodge/Data/Item/Use.hs 41;" f
_useMapperPoints src/Dodge/Data/Item/Use.hs 43;" f _useMapperPoints src/Dodge/Data/Item/Use.hs 42;" f
_useMvTargetPos src/Dodge/Data/ActionPlan.hs 164;" f _useMvTargetPos src/Dodge/Data/ActionPlan.hs 164;" f
_useSelf src/Dodge/Data/ActionPlan.hs 158;" f _useSelf src/Dodge/Data/ActionPlan.hs 158;" f
_useTarget src/Dodge/Data/ActionPlan.hs 155;" f _useTarget src/Dodge/Data/ActionPlan.hs 155;" f
_useToggle src/Dodge/Data/Item/Use.hs 40;" f _useToggle src/Dodge/Data/Item/Use.hs 39;" f
_useUpTo src/Dodge/Data/Muzzle.hs 54;" f _useUpTo src/Dodge/Data/Muzzle.hs 54;" f
_uvCanContinue src/Dodge/Data/Universe.hs 39;" f _uvCanContinue src/Dodge/Data/Universe.hs 39;" f
_uvConfig src/Dodge/Data/Universe.hs 37;" f _uvConfig src/Dodge/Data/Universe.hs 37;" f
@@ -3297,8 +3295,8 @@ aShape src/Dodge/Placement/Instance/LightSource.hs 107;" f
aSound src/Dodge/SoundLogic.hs 74;" f aSound src/Dodge/SoundLogic.hs 74;" f
aStance src/Dodge/Item/AimStance.hs 12;" f aStance src/Dodge/Item/AimStance.hs 12;" f
aTreeStrut src/Dodge/Tree/GenerateStructure.hs 42;" f aTreeStrut src/Dodge/Tree/GenerateStructure.hs 42;" f
accessTerminal src/Dodge/WorldEffect.hs 59;" f accessTerminal src/Dodge/WorldEffect.hs 54;" f
activateDetonator src/Dodge/Creature/Impulse/UseItem.hs 84;" f activateDetonator src/Dodge/Creature/Impulse/UseItem.hs 83;" f
activeTargetCursorPic src/Dodge/Targeting/Draw.hs 31;" f activeTargetCursorPic src/Dodge/Targeting/Draw.hs 31;" f
addArmour src/Dodge/Creature.hs 85;" f addArmour src/Dodge/Creature.hs 85;" f
addBranchAt src/Dodge/Tree/GenerateStructure.hs 18;" f addBranchAt src/Dodge/Tree/GenerateStructure.hs 18;" f
@@ -3358,7 +3356,7 @@ allVisibleWalls src/Dodge/Base/Collide.hs 132;" f
alongSegBy src/Geometry.hs 40;" f alongSegBy src/Geometry.hs 40;" f
alteRifle src/Dodge/Item/Held/Cane.hs 34;" f alteRifle src/Dodge/Item/Held/Cane.hs 34;" f
ammoMagInfo src/Dodge/Item/Info.hs 48;" f ammoMagInfo src/Dodge/Item/Info.hs 48;" f
ammoMagSPic src/Dodge/Item/Draw/SPic.hs 125;" f ammoMagSPic src/Dodge/Item/Draw/SPic.hs 124;" f
amr src/Dodge/Item/Held/Rod.hs 34;" f amr src/Dodge/Item/Held/Rod.hs 34;" f
analyser src/Dodge/Placement/Instance/Analyser.hs 12;" f analyser src/Dodge/Placement/Instance/Analyser.hs 12;" f
analyserByDoor src/Dodge/Room/LasTurret.hs 77;" f analyserByDoor src/Dodge/Room/LasTurret.hs 77;" f
@@ -3369,21 +3367,21 @@ angleVV3 src/Geometry/Vector3D.hs 122;" f
annoToRoomTree src/Dodge/Annotation.hs 17;" f annoToRoomTree src/Dodge/Annotation.hs 17;" f
anyUnusedSpot src/Dodge/PlacementSpot.hs 66;" f anyUnusedSpot src/Dodge/PlacementSpot.hs 66;" f
anythingHitCirc src/Dodge/Base/Collide.hs 247;" f anythingHitCirc src/Dodge/Base/Collide.hs 247;" f
applyCME src/Dodge/HeldUse.hs 364;" f applyCME src/Dodge/HeldUse.hs 370;" f
applyCreatureDamage src/Dodge/Creature/Damage.hs 13;" f applyCreatureDamage src/Dodge/Creature/Damage.hs 13;" f
applyEventIO src/Loop.hs 89;" f applyEventIO src/Loop.hs 89;" f
applyGravityPU src/Dodge/Projectile/Update.hs 56;" f applyGravityPU src/Dodge/Projectile/Update.hs 56;" f
applyIndividualDamage src/Dodge/Creature/Damage.hs 16;" f applyIndividualDamage src/Dodge/Creature/Damage.hs 16;" f
applyInvLock src/Dodge/HeldUse.hs 423;" f applyInvLock src/Dodge/HeldUse.hs 429;" f
applyMagnetsToBul src/Dodge/Bullet.hs 30;" f applyMagnetsToBul src/Dodge/Bullet.hs 30;" f
applyPastDamages src/Dodge/Creature/State.hs 131;" f applyPastDamages src/Dodge/Creature/State.hs 131;" f
applyPiercingDamage src/Dodge/Creature/Damage.hs 22;" f applyPiercingDamage src/Dodge/Creature/Damage.hs 22;" f
applyPosition src/Sound.hs 111;" f applyPosition src/Sound.hs 111;" f
applyRecoil src/Dodge/HeldUse.hs 455;" f applyRecoil src/Dodge/HeldUse.hs 461;" f
applyResFactor src/Dodge/Data/Config.hs 110;" f applyResFactor src/Dodge/Data/Config.hs 110;" f
applySetTerminalString src/Dodge/Debug/Terminal.hs 81;" f applySetTerminalString src/Dodge/Debug/Terminal.hs 81;" f
applySidePush src/Dodge/HeldUse.hs 554;" f applySidePush src/Dodge/HeldUse.hs 560;" f
applySoundCME src/Dodge/HeldUse.hs 445;" f applySoundCME src/Dodge/HeldUse.hs 451;" f
applyTerminalCommand src/Dodge/Debug/Terminal.hs 28;" f applyTerminalCommand src/Dodge/Debug/Terminal.hs 28;" f
applyTerminalCommandArguments src/Dodge/Debug/Terminal.hs 42;" f applyTerminalCommandArguments src/Dodge/Debug/Terminal.hs 42;" f
applyTerminalString src/Dodge/Debug/Terminal.hs 22;" f applyTerminalString src/Dodge/Debug/Terminal.hs 22;" f
@@ -3391,7 +3389,7 @@ applyToNode src/TreeHelp.hs 64;" f
applyToRandomNode src/TreeHelp.hs 150;" f applyToRandomNode src/TreeHelp.hs 150;" f
applyToSubforest src/TreeHelp.hs 77;" f applyToSubforest src/TreeHelp.hs 77;" f
applyToSubtree src/TreeHelp.hs 70;" f applyToSubtree src/TreeHelp.hs 70;" f
applyTorqueCME src/Dodge/HeldUse.hs 565;" f applyTorqueCME src/Dodge/HeldUse.hs 571;" f
applyWorldConfig src/Dodge/Config/Update.hs 38;" f applyWorldConfig src/Dodge/Config/Update.hs 38;" f
aquamarine src/Color.hs 23;" f aquamarine src/Color.hs 23;" f
arHUD src/Dodge/Item/Scope.hs 134;" f arHUD src/Dodge/Item/Scope.hs 134;" f
@@ -3441,10 +3439,10 @@ azure src/Color.hs 22;" f
bQuadToF src/Geometry/Bezier.hs 37;" f bQuadToF src/Geometry/Bezier.hs 37;" f
bQuadToLine src/Geometry/Bezier.hs 30;" f bQuadToLine src/Geometry/Bezier.hs 30;" f
backpackCombinations src/Dodge/Combine/Combinations.hs 27;" f backpackCombinations src/Dodge/Combine/Combinations.hs 27;" f
backpackShape src/Dodge/Item/Draw/SPic.hs 178;" f backpackShape src/Dodge/Item/Draw/SPic.hs 177;" f
backspaceInputted src/Dodge/Update/Input/Text.hs 25;" f backspaceInputted src/Dodge/Update/Input/Text.hs 25;" f
bangCone src/Dodge/Item/Held/Cone.hs 11;" f bangCone src/Dodge/Item/Held/Cone.hs 11;" f
bangConeShape src/Dodge/Item/Draw/SPic.hs 293;" f bangConeShape src/Dodge/Item/Draw/SPic.hs 292;" f
bangEchoS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 454;" f bangEchoS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 454;" f
bangRod src/Dodge/Item/Held/Rod.hs 18;" f bangRod src/Dodge/Item/Held/Rod.hs 18;" f
bangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 598;" f bangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 598;" f
@@ -3452,18 +3450,18 @@ bangStick src/Dodge/Item/Held/Stick.hs 15;" f
barPP src/Dodge/Room/Foreground.hs 236;" f barPP src/Dodge/Room/Foreground.hs 236;" f
barrel src/Dodge/Creature/Inanimate.hs 17;" f barrel src/Dodge/Creature/Inanimate.hs 17;" f
barrelShape src/Dodge/Render/ShapePicture.hs 46;" f barrelShape src/Dodge/Render/ShapePicture.hs 46;" f
baseAMRShape src/Dodge/Item/Draw/SPic.hs 407;" f baseAMRShape src/Dodge/Item/Draw/SPic.hs 406;" f
baseBlockPane src/Dodge/Placement/Instance/Wall.hs 86;" f baseBlockPane src/Dodge/Placement/Instance/Wall.hs 86;" f
baseCI src/Dodge/Item/Grammar.hs 193;" f baseCI src/Dodge/Item/Grammar.hs 193;" f
baseCaneShape src/Dodge/Item/Draw/SPic.hs 313;" f baseCaneShape src/Dodge/Item/Draw/SPic.hs 312;" f
baseDebris src/Dodge/Block/Debris.hs 122;" f baseDebris src/Dodge/Block/Debris.hs 122;" f
baseFloorTileSize src/Tile.hs 45;" f baseFloorTileSize src/Tile.hs 45;" f
baseRifleShape src/Dodge/Item/Draw/SPic.hs 316;" f baseRifleShape src/Dodge/Item/Draw/SPic.hs 315;" f
baseRodShape src/Dodge/Item/Draw/SPic.hs 404;" f baseRodShape src/Dodge/Item/Draw/SPic.hs 403;" f
baseSMGShape src/Dodge/Item/Draw/SPic.hs 384;" f baseSMGShape src/Dodge/Item/Draw/SPic.hs 383;" f
baseShoulder src/Dodge/Creature/Picture.hs 125;" f baseShoulder src/Dodge/Creature/Picture.hs 125;" f
baseStickShape src/Dodge/Item/Draw/SPic.hs 290;" f baseStickShape src/Dodge/Item/Draw/SPic.hs 289;" f
baseStickShapeX src/Dodge/Item/Draw/SPic.hs 283;" f baseStickShapeX src/Dodge/Item/Draw/SPic.hs 282;" f
baseStickSpread src/Dodge/HeldUse.hs 282;" f baseStickSpread src/Dodge/HeldUse.hs 282;" f
baseTriggerType src/Dodge/BaseTriggerType.hs 12;" f baseTriggerType src/Dodge/BaseTriggerType.hs 12;" f
baseTriggerType src/Dodge/Item/TriggerType.hs 5;" f baseTriggerType src/Dodge/Item/TriggerType.hs 5;" f
@@ -3475,7 +3473,7 @@ basicDrawBeam src/Dodge/Beam/Draw.hs 11;" f
basicItemDisplay src/Dodge/Item/Display.hs 22;" f basicItemDisplay src/Dodge/Item/Display.hs 22;" f
basicMachineApplyDamage src/Dodge/Machine/Damage.hs 6;" f basicMachineApplyDamage src/Dodge/Machine/Damage.hs 6;" f
basicMachineUpdate src/Dodge/Machine.hs 13;" f basicMachineUpdate src/Dodge/Machine.hs 13;" f
basicMuzFlare src/Dodge/HeldUse.hs 708;" f basicMuzFlare src/Dodge/HeldUse.hs 711;" f
basicTerminal src/Dodge/Terminal.hs 35;" f basicTerminal src/Dodge/Terminal.hs 35;" f
battery src/Dodge/Item/Ammo.hs 62;" f battery src/Dodge/Item/Ammo.hs 62;" f
batteryPack src/Dodge/Item/Equipment.hs 46;" f batteryPack src/Dodge/Item/Equipment.hs 46;" f
@@ -3484,7 +3482,7 @@ beltMag src/Dodge/Item/Ammo.hs 38;" f
bfsNodePoints src/Dodge/Path.hs 58;" f bfsNodePoints src/Dodge/Path.hs 58;" f
bfsThenReturn src/Dodge/Creature/ReaderUpdate.hs 218;" f bfsThenReturn src/Dodge/Creature/ReaderUpdate.hs 218;" f
bgateCalc src/Dodge/Inventory/SelectionList.hs 114;" f bgateCalc src/Dodge/Inventory/SelectionList.hs 114;" f
bgunSound src/Dodge/HeldUse.hs 508;" f bgunSound src/Dodge/HeldUse.hs 514;" f
bindFBO src/Render.hs 244;" f bindFBO src/Render.hs 244;" f
bingate src/Dodge/Item/Scope.hs 109;" f bingate src/Dodge/Item/Scope.hs 109;" f
black src/Color.hs 27;" f black src/Color.hs 27;" f
@@ -3551,6 +3549,7 @@ bulletPayloadModule src/Dodge/Item/Scope.hs 131;" f
bulletSynthesizer src/Dodge/Item/Ammo.hs 75;" f bulletSynthesizer src/Dodge/Item/Ammo.hs 75;" f
bulletWeapons src/Dodge/Combine/Combinations.hs 248;" f bulletWeapons src/Dodge/Combine/Combinations.hs 248;" f
burstRifle src/Dodge/Item/Held/Cane.hs 45;" f burstRifle src/Dodge/Item/Held/Cane.hs 45;" f
buttonFlip src/Dodge/Button/Event.hs 18;" f
buzzS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 626;" f buzzS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 626;" f
cFilledRect src/Dodge/CharacterEnums.hs 6;" f cFilledRect src/Dodge/CharacterEnums.hs 6;" f
cWireRect src/Dodge/CharacterEnums.hs 10;" f cWireRect src/Dodge/CharacterEnums.hs 10;" f
@@ -3758,7 +3757,7 @@ crVocalizationSound src/Dodge/Creature/Vocalization.hs 13;" f
crWarningSounds src/Dodge/Creature/Vocalization.hs 23;" f crWarningSounds src/Dodge/Creature/Vocalization.hs 23;" f
crZoneSize src/Dodge/Zoning/Creature.hs 41;" f crZoneSize src/Dodge/Zoning/Creature.hs 41;" f
craftInfo src/Dodge/Item/Info.hs 168;" f craftInfo src/Dodge/Item/Info.hs 168;" f
craftItemSPic src/Dodge/Item/Draw/SPic.hs 57;" f craftItemSPic src/Dodge/Item/Draw/SPic.hs 56;" f
crankSlowS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 522;" f crankSlowS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 522;" f
createArc src/Dodge/Tesla/Arc.hs 81;" f createArc src/Dodge/Tesla/Arc.hs 81;" f
createFlIt src/Dodge/Placement/PlaceSpot.hs 180;" f createFlIt src/Dodge/Placement/PlaceSpot.hs 180;" f
@@ -3769,14 +3768,14 @@ createItemYou src/Dodge/Inventory/Add.hs 95;" f
createLightMap src/Render.hs 26;" f createLightMap src/Render.hs 26;" f
createNewArc src/Dodge/Tesla/Arc.hs 90;" f createNewArc src/Dodge/Tesla/Arc.hs 90;" f
createPathGrid src/Dodge/Room/Path.hs 21;" f createPathGrid src/Dodge/Room/Path.hs 21;" f
createProjectile src/Dodge/HeldUse.hs 1275;" f createProjectile src/Dodge/HeldUse.hs 1273;" f
createProjectileR src/Dodge/HeldUse.hs 1240;" f createProjectileR src/Dodge/HeldUse.hs 1238;" f
createShell src/Dodge/Projectile/Create.hs 23;" f createShell src/Dodge/Projectile/Create.hs 23;" f
createShieldWall src/Dodge/Item/BackgroundEffect.hs 39;" f createShieldWall src/Dodge/Item/BackgroundEffect.hs 39;" f
createUnusedLinkPos src/Dodge/Tree/Shift.hs 117;" f createUnusedLinkPos src/Dodge/Tree/Shift.hs 117;" f
createWall src/Dodge/Wall/Create.hs 8;" f createWall src/Dodge/Wall/Create.hs 8;" f
creatureDisplayText src/Dodge/Creature/Picture/Awareness.hs 11;" f creatureDisplayText src/Dodge/Creature/Picture/Awareness.hs 11;" f
creatureShootLaser src/Dodge/HeldUse.hs 821;" f creatureShootLaser src/Dodge/HeldUse.hs 824;" f
creatureTurnTo src/Dodge/Creature/Impulse/Movement.hs 52;" f creatureTurnTo src/Dodge/Creature/Impulse/Movement.hs 52;" f
creatureTurnToward src/Dodge/Creature/Impulse/Movement.hs 73;" f creatureTurnToward src/Dodge/Creature/Impulse/Movement.hs 73;" f
creatureTurnTowardDir src/Dodge/Creature/Impulse/Movement.hs 62;" f creatureTurnTowardDir src/Dodge/Creature/Impulse/Movement.hs 62;" f
@@ -3882,7 +3881,7 @@ dededumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 558;" f
dedumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 396;" f dedumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 396;" f
defDamageMaterial src/Dodge/Material/Damage.hs 22;" f defDamageMaterial src/Dodge/Material/Damage.hs 22;" f
defLSPic src/Dodge/LightSource/Draw.hs 10;" f defLSPic src/Dodge/LightSource/Draw.hs 10;" f
defSPic src/Dodge/Item/Draw/SPic.hs 299;" f defSPic src/Dodge/Item/Draw/SPic.hs 298;" f
defaultAimMvType src/Dodge/Creature/MoveType.hs 16;" f defaultAimMvType src/Dodge/Creature/MoveType.hs 16;" f
defaultAimingCrit src/Dodge/Default/Creature.hs 105;" f defaultAimingCrit src/Dodge/Default/Creature.hs 105;" f
defaultArcStep src/Dodge/Tesla/Arc.hs 140;" f defaultArcStep src/Dodge/Tesla/Arc.hs 140;" f
@@ -3962,10 +3961,10 @@ destroyMounts src/Dodge/Block.hs 97;" f
destroyProjectile src/Dodge/Projectile/Update.hs 139;" f destroyProjectile src/Dodge/Projectile/Update.hs 139;" f
detV src/Geometry/Vector.hs 93;" f detV src/Geometry/Vector.hs 93;" f
detector src/Dodge/Item/Held/Utility.hs 27;" f detector src/Dodge/Item/Held/Utility.hs 27;" f
detectorColor src/Dodge/Item/Draw/SPic.hs 453;" f detectorColor src/Dodge/Item/Draw/SPic.hs 452;" f
detectorEffect src/Dodge/Item/Weapon/Radar.hs 20;" f detectorEffect src/Dodge/Item/Weapon/Radar.hs 20;" f
detectorInfo src/Dodge/Item/Info.hs 224;" f detectorInfo src/Dodge/Item/Info.hs 224;" f
determineProjectileTracking src/Dodge/HeldUse.hs 1223;" f determineProjectileTracking src/Dodge/HeldUse.hs 1221;" f
diagonalLinesRect src/Dodge/Room/Foreground.hs 52;" f diagonalLinesRect src/Dodge/Room/Foreground.hs 52;" f
did src/Dodge/Item/InvSize.hs 54;" f did src/Dodge/Item/InvSize.hs 54;" f
diffAngles src/Geometry.hs 204;" f diffAngles src/Geometry.hs 204;" f
@@ -4004,7 +4003,7 @@ doBackspace src/Dodge/Update/Input/Text.hs 31;" f
doBlBl src/Dodge/BlBl.hs 5;" f doBlBl src/Dodge/BlBl.hs 5;" f
doBlSh src/Dodge/Block/Draw.hs 14;" f doBlSh src/Dodge/Block/Draw.hs 14;" f
doBounce src/Dodge/Base/Collide.hs 70;" f doBounce src/Dodge/Base/Collide.hs 70;" f
doButtonEvent src/Dodge/Button/Event.hs 9;" f doButtonEvent src/Dodge/Button/Event.hs 10;" f
doConLoop src/Loop.hs 137;" f doConLoop src/Loop.hs 137;" f
doConLoop' src/Loop.hs 226;" f doConLoop' src/Loop.hs 226;" f
doCrAc src/Dodge/CreatureEffect.hs 61;" f doCrAc src/Dodge/CreatureEffect.hs 61;" f
@@ -4015,8 +4014,8 @@ doCrWdAc src/Dodge/CreatureEffect.hs 77;" f
doCrWdImp src/Dodge/CreatureEffect.hs 16;" f doCrWdImp src/Dodge/CreatureEffect.hs 16;" f
doCrWdWd src/Dodge/CreatureEffect.hs 20;" f doCrWdWd src/Dodge/CreatureEffect.hs 20;" f
doDamage src/Dodge/Creature/State.hs 127;" f doDamage src/Dodge/Creature/State.hs 127;" f
doDeathToggle src/Dodge/WorldEffect.hs 98;" f doDeathToggle src/Dodge/WorldEffect.hs 93;" f
doDeathTriggers src/Dodge/WorldEffect.hs 93;" f doDeathTriggers src/Dodge/WorldEffect.hs 88;" f
doDebugTest src/Dodge/Update/Input/DebugTest.hs 22;" f doDebugTest src/Dodge/Update/Input/DebugTest.hs 22;" f
doDebugTest2 src/Dodge/Update/Input/DebugTest.hs 37;" f doDebugTest2 src/Dodge/Update/Input/DebugTest.hs 37;" f
doDebugTestF10 src/Dodge/Update/Input/DebugTest.hs 62;" f doDebugTestF10 src/Dodge/Update/Input/DebugTest.hs 62;" f
@@ -4030,9 +4029,9 @@ doDrag src/Dodge/Update/Input/InGame.hs 107;" f
doDrawing src/Dodge/Render.hs 35;" f doDrawing src/Dodge/Render.hs 35;" f
doDrawing' src/Dodge/Render.hs 46;" f doDrawing' src/Dodge/Render.hs 46;" f
doFloatFloat src/Dodge/FloatFunction.hs 5;" f doFloatFloat src/Dodge/FloatFunction.hs 5;" f
doGenFloat src/Dodge/HeldUse.hs 1181;" f doGenFloat src/Dodge/HeldUse.hs 1179;" f
doGravityPU src/Dodge/Projectile/Update.hs 50;" f doGravityPU src/Dodge/Projectile/Update.hs 50;" f
doHeldUseEffect src/Dodge/HeldUse.hs 310;" f doHeldUseEffect src/Dodge/HeldUse.hs 315;" f
doInPlacements src/Dodge/Layout.hs 92;" f doInPlacements src/Dodge/Layout.hs 92;" f
doIndividualPlacements src/Dodge/Layout.hs 117;" f doIndividualPlacements src/Dodge/Layout.hs 117;" f
doInputScreenInput src/Dodge/Update/Input/ScreenLayer.hs 28;" f doInputScreenInput src/Dodge/Update/Input/ScreenLayer.hs 28;" f
@@ -4061,12 +4060,12 @@ doRoomInPlacements src/Dodge/Layout.hs 97;" f
doRoomOutPlacements src/Dodge/Layout.hs 107;" f doRoomOutPlacements src/Dodge/Layout.hs 107;" f
doRoomPlacements src/Dodge/Layout.hs 122;" f doRoomPlacements src/Dodge/Layout.hs 122;" f
doRoomShift src/Dodge/Room/Link.hs 33;" f doRoomShift src/Dodge/Room/Link.hs 33;" f
doScopeZoom src/Dodge/Update/Scroll.hs 85;" f doScopeZoom src/Dodge/Update/Scroll.hs 84;" f
doSectionSize src/Dodge/DisplayInventory.hs 217;" f doSectionSize src/Dodge/DisplayInventory.hs 217;" f
doSideEffects appDodge/Main.hs 120;" f doSideEffects appDodge/Main.hs 120;" f
doStep src/Dodge/ArcStep.hs 9;" f doStep src/Dodge/ArcStep.hs 9;" f
doStrategyActions src/Dodge/Creature/ReaderUpdate.hs 166;" f doStrategyActions src/Dodge/Creature/ReaderUpdate.hs 166;" f
doTerminalBootProgram src/Dodge/WorldEffect.hs 101;" f doTerminalBootProgram src/Dodge/WorldEffect.hs 96;" f
doTerminalCommandEffect src/Dodge/Terminal.hs 135;" f doTerminalCommandEffect src/Dodge/Terminal.hs 135;" f
doTestDrawing src/Dodge/Render.hs 42;" f doTestDrawing src/Dodge/Render.hs 42;" f
doTextInputOver src/Dodge/Update/Input/Text.hs 15;" f doTextInputOver src/Dodge/Update/Input/Text.hs 15;" f
@@ -4074,7 +4073,7 @@ doTextInputOverUniverse src/Dodge/Update/Input/Text.hs 12;" f
doThrust src/Dodge/Projectile/Update.hs 149;" f doThrust src/Dodge/Projectile/Update.hs 149;" f
doTimeScroll src/Dodge/Update.hs 202;" f doTimeScroll src/Dodge/Update.hs 202;" f
doTmTm src/Dodge/TmTm.hs 6;" f doTmTm src/Dodge/TmTm.hs 6;" f
doTmWdWd src/Dodge/WorldEffect.hs 106;" f doTmWdWd src/Dodge/WorldEffect.hs 101;" f
doWallRotate src/Dodge/Update/Camera.hs 212;" f doWallRotate src/Dodge/Update/Camera.hs 212;" f
doWdBl src/Dodge/WorldBool.hs 10;" f doWdBl src/Dodge/WorldBool.hs 10;" f
doWdCrBl src/Dodge/CreatureEffect.hs 37;" f doWdCrBl src/Dodge/CreatureEffect.hs 37;" f
@@ -4224,7 +4223,7 @@ drawZoneNearPointCursor src/Dodge/Debug/Picture.hs 279;" f
droneLauncher src/Dodge/Item/Weapon/Drone.hs 11;" f droneLauncher src/Dodge/Item/Weapon/Drone.hs 11;" f
dropAll src/Dodge/Creature/State.hs 124;" f dropAll src/Dodge/Creature/State.hs 124;" f
dropExcept src/Dodge/Creature/Action.hs 166;" f dropExcept src/Dodge/Creature/Action.hs 166;" f
dropInventoryPath src/Dodge/HeldUse.hs 1354;" f dropInventoryPath src/Dodge/HeldUse.hs 1352;" f
dropItem src/Dodge/Creature/Action.hs 172;" f dropItem src/Dodge/Creature/Action.hs 172;" f
dropper src/Dodge/Item/Scope.hs 76;" f dropper src/Dodge/Item/Scope.hs 76;" f
drumMag src/Dodge/Item/Ammo.hs 33;" f drumMag src/Dodge/Item/Ammo.hs 33;" f
@@ -4278,7 +4277,7 @@ equipAllocString src/Dodge/Render/HUD.hs 308;" f
equipAttachPos src/Dodge/Item/Draw.hs 30;" f equipAttachPos src/Dodge/Item/Draw.hs 30;" f
equipBackgroundEffect src/Dodge/Euse.hs 15;" f equipBackgroundEffect src/Dodge/Euse.hs 15;" f
equipInfo src/Dodge/Item/Info.hs 140;" f equipInfo src/Dodge/Item/Info.hs 140;" f
equipItemSPic src/Dodge/Item/Draw/SPic.hs 149;" f equipItemSPic src/Dodge/Item/Draw/SPic.hs 148;" f
equipPosition src/Dodge/Item/Draw.hs 38;" f equipPosition src/Dodge/Item/Draw.hs 38;" f
equipSiteInfo src/Dodge/Item/Info.hs 253;" f equipSiteInfo src/Dodge/Item/Info.hs 253;" f
equipType src/Dodge/Data/EquipType.hs 10;" f equipType src/Dodge/Data/EquipType.hs 10;" f
@@ -4338,7 +4337,7 @@ 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
fixedSizePicClampArrow src/Dodge/Picture/SizeInvariant.hs 57;" f fixedSizePicClampArrow src/Dodge/Picture/SizeInvariant.hs 57;" f
flFlicker src/Dodge/Flame.hs 36;" f flFlicker src/Dodge/Flame.hs 38;" f
flameMuzzles src/Dodge/HeldUse.hs 288;" f flameMuzzles src/Dodge/HeldUse.hs 288;" f
flameShield src/Dodge/Item/Equipment.hs 33;" f flameShield src/Dodge/Item/Equipment.hs 33;" f
flameSize src/Dodge/Flame/Size.hs 5;" f flameSize src/Dodge/Flame/Size.hs 5;" f
@@ -4346,17 +4345,16 @@ flameSpitter src/Dodge/Item/Held/SprayGuns.hs 23;" f
flameThrower src/Dodge/Item/Held/SprayGuns.hs 64;" f flameThrower src/Dodge/Item/Held/SprayGuns.hs 64;" f
flameTorrent src/Dodge/Item/Held/SprayGuns.hs 32;" f flameTorrent src/Dodge/Item/Held/SprayGuns.hs 32;" f
flameWall src/Dodge/Item/Held/SprayGuns.hs 48;" f flameWall src/Dodge/Item/Held/SprayGuns.hs 48;" f
flamerPic src/Dodge/Item/Draw/SPic.hs 387;" f flamerPic src/Dodge/Item/Draw/SPic.hs 386;" f
flareCircleAt src/Dodge/HeldUse.hs 689;" f flareCircleAt src/Dodge/HeldUse.hs 692;" f
flatItemCombinations src/Dodge/Combine/Combinations.hs 51;" f flatItemCombinations src/Dodge/Combine/Combinations.hs 51;" f
flatLookupItems src/Dodge/Combine.hs 39;" f flatLookupItems src/Dodge/Combine.hs 39;" f
flatShield src/Dodge/Item/Held/Utility.hs 17;" f flatShield src/Dodge/Item/Held/Utility.hs 17;" f
flatShieldEquipSPic src/Dodge/Item/Draw/SPic.hs 440;" f flatShieldEquipSPic src/Dodge/Item/Draw/SPic.hs 439;" f
fleeFrom src/Dodge/CreatureEffect.hs 120;" f fleeFrom src/Dodge/CreatureEffect.hs 120;" f
fleeFromTarget src/Dodge/CreatureEffect.hs 66;" f fleeFromTarget src/Dodge/CreatureEffect.hs 66;" f
flickerMod src/Dodge/Placement/Instance/LightSource/Flicker.hs 10;" f flickerMod src/Dodge/Placement/Instance/LightSource/Flicker.hs 10;" f
flickerUpdate src/Dodge/Placement/Instance/LightSource/Flicker.hs 24;" f flickerUpdate src/Dodge/Placement/Instance/LightSource/Flicker.hs 24;" f
flipSwitch src/Dodge/Button/Event.hs 20;" f
floatSize src/Shader/Parameters.hs 17;" f floatSize src/Shader/Parameters.hs 17;" f
flockACC src/Dodge/Creature/ReaderUpdate.hs 89;" f flockACC src/Dodge/Creature/ReaderUpdate.hs 89;" f
flockArmourChaseCrit src/Dodge/Creature/ArmourChase.hs 14;" f flockArmourChaseCrit src/Dodge/Creature/ArmourChase.hs 14;" f
@@ -4387,7 +4385,7 @@ forceFoldable src/StrictHelp.hs 7;" f
forceSpine src/StrictHelp.hs 4;" f forceSpine src/StrictHelp.hs 4;" f
fourEmbossDecoration src/Dodge/Placement/TopDecoration.hs 29;" f fourEmbossDecoration src/Dodge/Placement/TopDecoration.hs 29;" f
fpsText src/Dodge/Render/Picture.hs 53;" f fpsText src/Dodge/Render/Picture.hs 53;" f
fractionLoadedAmmo src/Dodge/Item/Draw/SPic.hs 138;" f fractionLoadedAmmo src/Dodge/Item/Draw/SPic.hs 137;" f
frag src/Shader/Data.hs 102;" f frag src/Shader/Data.hs 102;" f
freeShaderPointers' src/Shader.hs 37;" f freeShaderPointers' src/Shader.hs 37;" f
fridgeHumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 442;" f fridgeHumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 442;" f
@@ -4415,7 +4413,7 @@ gameRoomViewpoints src/Dodge/Viewpoints.hs 35;" f
gameRoomsFromRooms src/Dodge/Layout.hs 158;" f gameRoomsFromRooms src/Dodge/Layout.hs 158;" f
gameplayMenu src/Dodge/Menu.hs 134;" f gameplayMenu src/Dodge/Menu.hs 134;" f
gameplayMenuOptions src/Dodge/Menu.hs 137;" f gameplayMenuOptions src/Dodge/Menu.hs 137;" f
gasType src/Dodge/HeldUse.hs 1137;" f gasType src/Dodge/HeldUse.hs 1135;" f
generateGenParams src/Dodge/LevelGen/LevelStructure.hs 22;" f generateGenParams src/Dodge/LevelGen/LevelStructure.hs 22;" f
generateGraphs src/Dodge/LevelGen.hs 39;" f generateGraphs src/Dodge/LevelGen.hs 39;" f
generateLayout src/Dodge/Layout/Generate.hs 10;" f generateLayout src/Dodge/Layout/Generate.hs 10;" f
@@ -4428,13 +4426,13 @@ geometryUnitTests test/Spec.hs 22;" f
geqConstr src/SameConstr.hs 21;" f geqConstr src/SameConstr.hs 21;" f
getAimZoom src/Dodge/Update/Camera.hs 135;" f getAimZoom src/Dodge/Update/Camera.hs 135;" f
getAmmoLinks src/Dodge/Item/Grammar.hs 142;" f getAmmoLinks src/Dodge/Item/Grammar.hs 142;" f
getArguments src/Dodge/Update/Scroll.hs 179;" f getArguments src/Dodge/Update/Scroll.hs 178;" f
getArguments' src/Dodge/Update/Scroll.hs 167;" f getArguments' src/Dodge/Update/Scroll.hs 166;" f
getAttachedSFLink src/Dodge/HeldUse.hs 759;" f getAttachedSFLink src/Dodge/HeldUse.hs 762;" f
getAutoSpringLinks src/Dodge/Item/Grammar.hs 121;" f getAutoSpringLinks src/Dodge/Item/Grammar.hs 121;" f
getAvailableListLines src/Dodge/SelectionList.hs 10;" f getAvailableListLines src/Dodge/SelectionList.hs 10;" f
getBulHitDams src/Dodge/Bullet.hs 171;" f getBulHitDams src/Dodge/Bullet.hs 171;" f
getBulletType src/Dodge/HeldUse.hs 878;" f getBulletType src/Dodge/HeldUse.hs 881;" f
getCloseObj src/Dodge/Update/Input/InGame.hs 515;" f getCloseObj src/Dodge/Update/Input/InGame.hs 515;" f
getCommands src/Dodge/Terminal.hs 117;" f getCommands src/Dodge/Terminal.hs 117;" f
getCommandsHelp src/Dodge/Terminal.hs 75;" f getCommandsHelp src/Dodge/Terminal.hs 75;" f
@@ -4442,21 +4440,21 @@ getCrMoveSpeed src/Dodge/Creature/Statistics.hs 45;" f
getDamageCoding src/Dodge/Terminal.hs 177;" f getDamageCoding src/Dodge/Terminal.hs 177;" f
getDistortions src/Dodge/Render.hs 411;" f getDistortions src/Dodge/Render.hs 411;" f
getEquipmentAllocation src/Dodge/Inventory/RBList.hs 47;" f getEquipmentAllocation src/Dodge/Inventory/RBList.hs 47;" f
getGrenadeHitEffect src/Dodge/HeldUse.hs 1268;" f getGrenadeHitEffect src/Dodge/HeldUse.hs 1266;" f
getInventoryPath src/Dodge/Inventory/Path.hs 8;" f getInventoryPath src/Dodge/Inventory/Path.hs 8;" f
getItemValue src/Dodge/Inventory/SelectionList.hs 143;" f getItemValue src/Dodge/Inventory/SelectionList.hs 143;" f
getLaserColor src/Dodge/HeldUse.hs 705;" f getLaserColor src/Dodge/HeldUse.hs 708;" f
getLaserDamage src/Dodge/HeldUse.hs 702;" f getLaserDamage src/Dodge/HeldUse.hs 705;" f
getLaserPhaseV src/Dodge/HeldUse.hs 699;" f getLaserPhaseV src/Dodge/HeldUse.hs 702;" f
getLinksOfType src/Dodge/RoomLink.hs 39;" f getLinksOfType src/Dodge/RoomLink.hs 39;" f
getMaxLinesTM src/Dodge/Terminal/Type.hs 11;" f getMaxLinesTM src/Dodge/Terminal/Type.hs 11;" f
getMenuMouseContext src/Dodge/Update.hs 392;" f getMenuMouseContext src/Dodge/Update.hs 392;" f
getNodePos src/Dodge/Path.hs 31;" f getNodePos src/Dodge/Path.hs 31;" f
getPJStabiliser src/Dodge/HeldUse.hs 1260;" f getPJStabiliser src/Dodge/HeldUse.hs 1258;" f
getPretty src/AesonHelp.hs 8;" f getPretty src/AesonHelp.hs 8;" f
getPromptTM src/Dodge/Terminal/Type.hs 8;" f getPromptTM src/Dodge/Terminal/Type.hs 8;" f
getRootItemBounds src/Dodge/Render/HUD.hs 95;" f getRootItemBounds src/Dodge/Render/HUD.hs 95;" f
getSelectedCloseObj src/Dodge/SelectedClose.hs 15;" f getSelectedCloseObj src/Dodge/SelectedClose.hs 14;" f
getSensor src/Dodge/Terminal.hs 189;" f getSensor src/Dodge/Terminal.hs 189;" f
getSmoothScrollValue src/Dodge/SmoothScroll.hs 21;" f getSmoothScrollValue src/Dodge/SmoothScroll.hs 21;" f
getSplitString src/Dodge/Debug/Terminal.hs 126;" f getSplitString src/Dodge/Debug/Terminal.hs 126;" f
@@ -4480,7 +4478,7 @@ glassShat4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 542;" f
glassSwitchBack src/Dodge/Room/Room.hs 70;" f glassSwitchBack src/Dodge/Room/Room.hs 70;" f
glassSwitchBackCrits src/Dodge/Room/Room.hs 99;" f glassSwitchBackCrits src/Dodge/Room/Room.hs 99;" f
glassWallDamage src/Dodge/Wall/DamageEffect.hs 49;" f glassWallDamage src/Dodge/Wall/DamageEffect.hs 49;" f
glauncherPic src/Dodge/Item/Draw/SPic.hs 393;" f glauncherPic src/Dodge/Item/Draw/SPic.hs 392;" f
glushortSize src/Shader/Parameters.hs 25;" f glushortSize src/Shader/Parameters.hs 25;" f
goToPostStrat src/Dodge/Creature/Strategy.hs 10;" f goToPostStrat src/Dodge/Creature/Strategy.hs 10;" f
goToTarget src/Dodge/Creature/ReaderUpdate.hs 138;" f goToTarget src/Dodge/Creature/ReaderUpdate.hs 138;" f
@@ -4511,7 +4509,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 38;" f haltSound src/Dodge/SoundLogic.hs 38;" f
hammerCheck src/Dodge/HeldUse.hs 87;" f hammerCheck src/Dodge/HeldUse.hs 76;" f
handleEvent src/Dodge/Event.hs 27;" f handleEvent src/Dodge/Event.hs 27;" f
handleHotkeys src/Dodge/Creature/YourControl.hs 45;" f handleHotkeys src/Dodge/Creature/YourControl.hs 45;" f
handleKeyboardEvent src/Dodge/Event/Input.hs 22;" f handleKeyboardEvent src/Dodge/Event/Input.hs 22;" f
@@ -4531,7 +4529,7 @@ hasLOSIndirect src/Dodge/Base/Collide.hs 219;" f
hat src/Dodge/Item/Equipment.hs 76;" f hat src/Dodge/Item/Equipment.hs 76;" f
head src/DoubleStack.hs 14;" f head src/DoubleStack.hs 14;" f
headLamp src/Dodge/Item/Equipment.hs 79;" f headLamp src/Dodge/Item/Equipment.hs 79;" f
headLampShape src/Dodge/Item/Draw/SPic.hs 443;" f headLampShape src/Dodge/Item/Draw/SPic.hs 442;" f
headMap src/Dodge/DoubleTree.hs 170;" f headMap src/Dodge/DoubleTree.hs 170;" f
heal src/Dodge/Item/Consumable.hs 17;" f heal src/Dodge/Item/Consumable.hs 17;" f
heal25 src/Dodge/Item/Consumable.hs 14;" f heal25 src/Dodge/Item/Consumable.hs 14;" f
@@ -4541,24 +4539,24 @@ healthTest src/Dodge/Room/LasTurret.hs 95;" f
heightWallPS src/Dodge/Placement/Instance/Wall.hs 13;" f heightWallPS src/Dodge/Placement/Instance/Wall.hs 13;" f
heldAimStance src/Dodge/Item/AimStance.hs 17;" f heldAimStance src/Dodge/Item/AimStance.hs 17;" f
heldAimZoom src/Dodge/Update/Camera.hs 140;" f heldAimZoom src/Dodge/Update/Camera.hs 140;" f
heldEffect src/Dodge/HeldUse.hs 68;" f heldEffect src/Dodge/HeldUse.hs 63;" f
heldEffectMuzzles src/Dodge/HeldUse.hs 145;" f heldEffectMuzzles src/Dodge/HeldUse.hs 125;" f
heldEffectNoHammerCheck src/Dodge/HeldUse.hs 76;" f heldEffectNoHammerCheck src/Dodge/HeldUse.hs 66;" f
heldHandlePos src/Dodge/Item/HeldOffset.hs 95;" f heldHandlePos src/Dodge/Item/HeldOffset.hs 95;" f
heldInfo src/Dodge/Item/Info.hs 90;" f heldInfo src/Dodge/Item/Info.hs 90;" f
heldItemAmmoSlots src/Dodge/Item/AmmoSlots.hs 18;" f heldItemAmmoSlots src/Dodge/Item/AmmoSlots.hs 18;" f
heldItemBulkiness src/Dodge/Creature/YourControl.hs 177;" f heldItemBulkiness src/Dodge/Creature/YourControl.hs 177;" f
heldItemInvLock src/Dodge/HeldUse.hs 438;" f heldItemInvLock src/Dodge/HeldUse.hs 444;" f
heldItemMuzVel src/Dodge/HeldUse.hs 1023;" f heldItemMuzVel src/Dodge/HeldUse.hs 1021;" f
heldItemMuzzles src/Dodge/HeldUse.hs 168;" f heldItemMuzzles src/Dodge/HeldUse.hs 150;" f
heldItemOffset src/Dodge/Item/HeldOffset.hs 72;" f heldItemOffset src/Dodge/Item/HeldOffset.hs 72;" f
heldItemOrient2D src/Dodge/Item/HeldOffset.hs 29;" f heldItemOrient2D src/Dodge/Item/HeldOffset.hs 29;" f
heldItemRelativeOrient src/Dodge/Item/HeldOffset.hs 34;" f heldItemRelativeOrient src/Dodge/Item/HeldOffset.hs 34;" f
heldItemRifling src/Dodge/HeldUse.hs 1067;" f heldItemRifling src/Dodge/HeldUse.hs 1065;" f
heldItemSPic src/Dodge/Item/Draw/SPic.hs 225;" f heldItemSPic src/Dodge/Item/Draw/SPic.hs 224;" f
heldItemWeight src/Dodge/Creature/Statistics.hs 71;" f heldItemWeight src/Dodge/Creature/Statistics.hs 71;" f
heldPositionInfo src/Dodge/Item/Info.hs 240;" f heldPositionInfo src/Dodge/Item/Info.hs 240;" f
heldTorqueAmount src/Dodge/HeldUse.hs 581;" f heldTorqueAmount src/Dodge/HeldUse.hs 587;" f
heldTriggerType src/Dodge/BaseTriggerType.hs 17;" f heldTriggerType src/Dodge/BaseTriggerType.hs 17;" f
heldUseDelay src/Dodge/Item/UseDelay.hs 19;" f heldUseDelay src/Dodge/Item/UseDelay.hs 19;" f
helpCommand src/Dodge/Terminal.hs 66;" f helpCommand src/Dodge/Terminal.hs 66;" f
@@ -4673,7 +4671,7 @@ invertIntMap src/Multiset.hs 67;" f
invertInventoryToMap src/Dodge/Combine.hs 57;" f invertInventoryToMap src/Dodge/Combine.hs 57;" f
invisibleChaseCrit src/Dodge/Creature/ChaseCrit.hs 21;" f invisibleChaseCrit src/Dodge/Creature/ChaseCrit.hs 21;" f
invisibleWall src/Dodge/Placement/Instance/Wall.hs 16;" f invisibleWall src/Dodge/Placement/Instance/Wall.hs 16;" f
isAmmoIntLink src/Dodge/HeldUse.hs 715;" f isAmmoIntLink src/Dodge/HeldUse.hs 718;" f
isAnimate src/Dodge/Creature/Test.hs 142;" f isAnimate src/Dodge/Creature/Test.hs 142;" f
isCognizant src/Dodge/Creature/Perception.hs 106;" f isCognizant src/Dodge/Creature/Perception.hs 106;" f
isConnected src/Dodge/Inventory/Swap.hs 74;" f isConnected src/Dodge/Inventory/Swap.hs 74;" f
@@ -4710,7 +4708,7 @@ itemBlips src/Dodge/RadarSweep.hs 93;" f
itemBulkiness src/Dodge/Creature/YourControl.hs 172;" f itemBulkiness src/Dodge/Creature/YourControl.hs 172;" f
itemCombinations src/Dodge/Combine/Combinations.hs 56;" f itemCombinations src/Dodge/Combine/Combinations.hs 56;" f
itemCombinationsEdges src/Dodge/Combine/Graph.hs 61;" f itemCombinationsEdges src/Dodge/Combine/Graph.hs 61;" f
itemDetectorEffect src/Dodge/HeldUse.hs 765;" f itemDetectorEffect src/Dodge/HeldUse.hs 768;" f
itemDisplay src/Dodge/Inventory/SelectionList.hs 49;" f itemDisplay src/Dodge/Inventory/SelectionList.hs 49;" f
itemEquipPict src/Dodge/Item/Draw.hs 18;" f itemEquipPict src/Dodge/Item/Draw.hs 18;" f
itemExternalValue src/Dodge/Inventory/SelectionList.hs 84;" f itemExternalValue src/Dodge/Inventory/SelectionList.hs 84;" f
@@ -4722,17 +4720,17 @@ itemFromHeldType src/Dodge/Item/Held.hs 25;" f
itemInfo src/Dodge/Item/Info.hs 20;" f itemInfo src/Dodge/Item/Info.hs 20;" f
itemInternalValue src/Dodge/Item/Display.hs 33;" f itemInternalValue src/Dodge/Item/Display.hs 33;" f
itemInvColor src/Dodge/Item/InventoryColor.hs 9;" f itemInvColor src/Dodge/Item/InventoryColor.hs 9;" f
itemInvLock src/Dodge/HeldUse.hs 433;" f itemInvLock src/Dodge/HeldUse.hs 439;" f
itemMuzzles src/Dodge/HeldUse.hs 159;" f itemMuzzles src/Dodge/HeldUse.hs 139;" f
itemRandomOffset src/Dodge/HeldUse.hs 960;" f itemRandomOffset src/Dodge/HeldUse.hs 958;" f
itemRooms src/Dodge/LockAndKey.hs 39;" f itemRooms src/Dodge/LockAndKey.hs 39;" f
itemRotTreeSPic src/Dodge/Item/Draw/SPic.hs 28;" f itemRotTreeSPic src/Dodge/Item/Draw/SPic.hs 28;" f
itemSPic src/Dodge/Item/Draw/SPic.hs 35;" f itemSPic src/Dodge/Item/Draw/SPic.hs 34;" f
itemScan src/Dodge/Item/Scope.hs 63;" f itemScan src/Dodge/Item/Scope.hs 63;" f
itemScroll src/Dodge/Update/Scroll.hs 52;" f itemScroll src/Dodge/Update/Scroll.hs 52;" f
itemScrollDisplay src/Dodge/Inventory/SelectionList.hs 120;" f itemScrollDisplay src/Dodge/Inventory/SelectionList.hs 120;" f
itemScrollValue src/Dodge/Inventory/SelectionList.hs 147;" f itemScrollValue src/Dodge/Inventory/SelectionList.hs 147;" f
itemSidePush src/Dodge/HeldUse.hs 379;" f itemSidePush src/Dodge/HeldUse.hs 385;" f
itemString src/Dodge/Item/Display.hs 55;" f itemString src/Dodge/Item/Display.hs 55;" f
itemToBreakLists src/Dodge/Item/Grammar.hs 68;" f itemToBreakLists src/Dodge/Item/Grammar.hs 68;" f
itemToFunction src/Dodge/Item/Grammar.hs 148;" f itemToFunction src/Dodge/Item/Grammar.hs 148;" f
@@ -4762,7 +4760,7 @@ keyCard src/Dodge/Item/Held/Utility.hs 20;" f
keyCardAnalyserByDoor src/Dodge/Room/LasTurret.hs 71;" f keyCardAnalyserByDoor src/Dodge/Room/LasTurret.hs 71;" f
keyCardRoomRunPast src/Dodge/Room/LasTurret.hs 59;" f keyCardRoomRunPast src/Dodge/Room/LasTurret.hs 59;" f
keyCardRunPastRand src/Dodge/LockAndKey.hs 36;" f keyCardRunPastRand src/Dodge/LockAndKey.hs 36;" f
keyPic src/Dodge/Item/Draw/SPic.hs 459;" f keyPic src/Dodge/Item/Draw/SPic.hs 458;" f
keyholeCorridor src/Dodge/Room/Corridor.hs 39;" f keyholeCorridor src/Dodge/Room/Corridor.hs 39;" f
knifeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 568;" f knifeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 568;" f
lConnect src/Dodge/Render/Connectors.hs 42;" f lConnect src/Dodge/Render/Connectors.hs 42;" f
@@ -4774,7 +4772,7 @@ lampCoverWhen src/Dodge/Placement/Instance/LightSource/Cover.hs 19;" f
lampCrSPic src/Dodge/Render/ShapePicture.hs 51;" f lampCrSPic src/Dodge/Render/ShapePicture.hs 51;" f
lasCenSensEdge src/Dodge/Room/LasTurret.hs 114;" f lasCenSensEdge src/Dodge/Room/LasTurret.hs 114;" f
lasDronesPic src/Dodge/Item/Weapon/Drone.hs 22;" f lasDronesPic src/Dodge/Item/Weapon/Drone.hs 22;" f
lasGunPic src/Dodge/Item/Draw/SPic.hs 413;" f lasGunPic src/Dodge/Item/Draw/SPic.hs 412;" f
lasSensorTurretTest src/Dodge/Room/LasTurret.hs 107;" f lasSensorTurretTest src/Dodge/Room/LasTurret.hs 107;" f
lasTunnel src/Dodge/Room/LasTurret.hs 126;" f lasTunnel src/Dodge/Room/LasTurret.hs 126;" f
lasTunnelRunPast src/Dodge/Room/LasTurret.hs 167;" f lasTunnelRunPast src/Dodge/Room/LasTurret.hs 167;" f
@@ -4798,7 +4796,7 @@ left src/DoubleStack.hs 16;" f
leftIsParentCombine src/Dodge/Item/Grammar.hs 241;" f leftIsParentCombine src/Dodge/Item/Grammar.hs 241;" f
leftPad src/Padding.hs 15;" f leftPad src/Padding.hs 15;" f
leftRightCombine src/Dodge/Item/Grammar.hs 255;" f leftRightCombine src/Dodge/Item/Grammar.hs 255;" f
legsSPic src/Dodge/Item/Draw/SPic.hs 477;" f legsSPic src/Dodge/Item/Draw/SPic.hs 476;" f
liShape src/Dodge/Placement/Instance/LightSource.hs 98;" f liShape src/Dodge/Placement/Instance/LightSource.hs 98;" f
light src/Color.hs 104;" f light src/Color.hs 104;" f
lightSensByDoor src/Dodge/Room/LasTurret.hs 46;" f lightSensByDoor src/Dodge/Room/LasTurret.hs 46;" f
@@ -4812,7 +4810,7 @@ lineCol src/Picture/Base.hs 230;" f
lineGeom src/Dodge/Base.hs 32;" f lineGeom src/Dodge/Base.hs 32;" f
lineOnScreenCone src/Dodge/Debug/Picture.hs 60;" f lineOnScreenCone src/Dodge/Debug/Picture.hs 60;" f
lineOrth src/Dodge/Creature/Boid.hs 126;" f lineOrth src/Dodge/Creature/Boid.hs 126;" f
lineOutputTerminal src/Dodge/WorldEffect.hs 81;" f lineOutputTerminal src/Dodge/WorldEffect.hs 76;" f
lineSplit src/Justify.hs 26;" f lineSplit src/Justify.hs 26;" f
lineThick src/Picture/Base.hs 234;" f lineThick src/Picture/Base.hs 234;" f
lineUp src/Dodge/Creature/Boid.hs 148;" f lineUp src/Dodge/Creature/Boid.hs 148;" f
@@ -4833,7 +4831,7 @@ lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 394;" f
lnkPosDir src/Dodge/RoomLink.hs 97;" f lnkPosDir src/Dodge/RoomLink.hs 97;" f
loadDodgeConfig src/Dodge/Config/Load.hs 9;" f loadDodgeConfig src/Dodge/Config/Load.hs 9;" f
loadMusic src/Dodge/SoundLogic/LoadSound.hs 30;" f loadMusic src/Dodge/SoundLogic/LoadSound.hs 30;" f
loadMuzzle src/Dodge/HeldUse.hs 626;" f loadMuzzle src/Dodge/HeldUse.hs 632;" f
loadSaveSlot src/Dodge/Save.hs 74;" f loadSaveSlot src/Dodge/Save.hs 74;" f
loadSeed src/Dodge/LoadSeed.hs 7;" f loadSeed src/Dodge/LoadSeed.hs 7;" f
loadSound src/Dodge/SoundLogic/LoadSound.hs 11;" f loadSound src/Dodge/SoundLogic/LoadSound.hs 11;" f
@@ -4876,7 +4874,7 @@ machineAddSound src/Dodge/Machine.hs 49;" f
machinePistol src/Dodge/Item/Held/Stick.hs 52;" f machinePistol src/Dodge/Item/Held/Stick.hs 52;" f
machineUpdateDeathEff src/Dodge/Machine.hs 34;" f machineUpdateDeathEff src/Dodge/Machine.hs 34;" f
machineUpdateLiveDieEff src/Dodge/Machine.hs 16;" f machineUpdateLiveDieEff src/Dodge/Machine.hs 16;" f
magAmmoParams src/Dodge/HeldUse.hs 899;" f magAmmoParams src/Dodge/HeldUse.hs 902;" f
magAmmoType src/Dodge/Item/MagAmmoType.hs 11;" f magAmmoType src/Dodge/Item/MagAmmoType.hs 11;" f
magShield src/Dodge/Item/Equipment.hs 27;" f magShield src/Dodge/Item/Equipment.hs 27;" f
magV src/Geometry/Vector.hs 171;" f magV src/Geometry/Vector.hs 171;" f
@@ -4891,8 +4889,8 @@ makeAttach src/Dodge/Item/Attach.hs 10;" f
makeBlip src/Dodge/RadarSweep.hs 69;" f makeBlip src/Dodge/RadarSweep.hs 69;" f
makeBlockDebris src/Dodge/Block/Debris.hs 28;" f makeBlockDebris src/Dodge/Block/Debris.hs 28;" f
makeBoolOption src/Dodge/Menu/OptionType.hs 8;" f makeBoolOption src/Dodge/Menu/OptionType.hs 8;" f
makeBullet src/Dodge/HeldUse.hs 1004;" f makeBullet src/Dodge/HeldUse.hs 1002;" f
makeBullet' src/Dodge/HeldUse.hs 946;" f makeBullet' src/Dodge/HeldUse.hs 944;" f
makeButton src/Dodge/LevelGen/Switch.hs 17;" f makeButton src/Dodge/LevelGen/Switch.hs 17;" f
makeByteStringShaderUsingVAO src/Shader/Compile.hs 128;" f makeByteStringShaderUsingVAO src/Shader/Compile.hs 128;" f
makeCloudAt src/Dodge/WorldEvent/Cloud.hs 7;" f makeCloudAt src/Dodge/WorldEvent/Cloud.hs 7;" f
@@ -4909,7 +4907,7 @@ makeDustAt src/Dodge/WorldEvent/Cloud.hs 17;" f
makeEnumOption src/Dodge/Menu/OptionType.hs 13;" f makeEnumOption src/Dodge/Menu/OptionType.hs 13;" f
makeExplosionAt src/Dodge/WorldEvent/Explosion.hs 71;" f makeExplosionAt src/Dodge/WorldEvent/Explosion.hs 71;" f
makeFlak src/Dodge/Bullet.hs 143;" f makeFlak src/Dodge/Bullet.hs 143;" f
makeFlame src/Dodge/Flame.hs 43;" f makeFlame src/Dodge/Flame.hs 45;" f
makeFlameExplosionAt src/Dodge/WorldEvent/Explosion.hs 54;" f makeFlameExplosionAt src/Dodge/WorldEvent/Explosion.hs 54;" f
makeFlamelet src/Dodge/EnergyBall.hs 21;" f makeFlamelet src/Dodge/EnergyBall.hs 21;" f
makeFlashBall src/Dodge/EnergyBall.hs 84;" f makeFlashBall src/Dodge/EnergyBall.hs 84;" f
@@ -4918,7 +4916,7 @@ makeGasCloud src/Dodge/WorldEvent/SpawnParticle.hs 11;" f
makeGrid src/Grid.hs 46;" f makeGrid src/Grid.hs 46;" f
makeIntInterval src/Dodge/Zoning/Base.hs 35;" f makeIntInterval src/Dodge/Zoning/Base.hs 35;" f
makeMovingEB src/Dodge/EnergyBall.hs 74;" f makeMovingEB src/Dodge/EnergyBall.hs 74;" f
makeMuzzleFlare src/Dodge/HeldUse.hs 647;" f makeMuzzleFlare src/Dodge/HeldUse.hs 653;" f
makeParagraph src/Justify.hs 6;" f makeParagraph src/Justify.hs 6;" f
makePathBetween src/Dodge/Path.hs 35;" f makePathBetween src/Dodge/Path.hs 35;" f
makePathBetweenPs src/Dodge/Path.hs 54;" f makePathBetweenPs src/Dodge/Path.hs 54;" f
@@ -4974,11 +4972,11 @@ mcProximitySensorUpdate src/Dodge/Machine/Update.hs 130;" f
mcSPic src/Dodge/Render/ShapePicture.hs 111;" f mcSPic src/Dodge/Render/ShapePicture.hs 111;" f
mcSensorTriggerUpdate src/Dodge/Machine/Update.hs 93;" f mcSensorTriggerUpdate src/Dodge/Machine/Update.hs 93;" f
mcSensorUpdate src/Dodge/Machine/Update.hs 125;" f mcSensorUpdate src/Dodge/Machine/Update.hs 125;" f
mcShootAuto src/Dodge/HeldUse.hs 1192;" f mcShootAuto src/Dodge/HeldUse.hs 1190;" f
mcShootLaser src/Dodge/HeldUse.hs 1185;" f mcShootLaser src/Dodge/HeldUse.hs 1183;" f
mcTriggerVal src/Dodge/Machine/Update.hs 99;" f mcTriggerVal src/Dodge/Machine/Update.hs 99;" f
mcTypeUpdate src/Dodge/Machine/Update.hs 28;" f mcTypeUpdate src/Dodge/Machine/Update.hs 28;" f
mcUseHeld src/Dodge/HeldUse.hs 1111;" f mcUseHeld src/Dodge/HeldUse.hs 1109;" f
mcUseItem src/Dodge/Machine/Update.hs 85;" f mcUseItem src/Dodge/Machine/Update.hs 85;" f
medkit src/Dodge/Item/Consumable.hs 8;" f medkit src/Dodge/Item/Consumable.hs 8;" f
megaBattery src/Dodge/Item/Ammo.hs 54;" f megaBattery src/Dodge/Item/Ammo.hs 54;" f
@@ -5019,9 +5017,9 @@ minCrIXOn src/Dodge/Zoning/Creature.hs 47;" f
minOn src/FoldableHelp.hs 35;" f minOn src/FoldableHelp.hs 35;" f
mini1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 402;" f mini1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 402;" f
miniGunCrit src/Dodge/Creature.hs 64;" f miniGunCrit src/Dodge/Creature.hs 64;" f
miniGunX src/Dodge/Item/Held/Cane.hs 52;" f miniGunX src/Dodge/Item/Held/Cane.hs 48;" f
miniGunXPict src/Dodge/Item/Draw/SPic.hs 365;" f miniGunXPict src/Dodge/Item/Draw/SPic.hs 364;" f
miniGunXPictItem src/Dodge/Item/Draw/SPic.hs 359;" f miniGunXPictItem src/Dodge/Item/Draw/SPic.hs 358;" f
miniS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 638;" f miniS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 638;" f
miniTree2 src/Dodge/Room/Room.hs 106;" f miniTree2 src/Dodge/Room/Room.hs 106;" f
minimumOn src/FoldlHelp.hs 14;" f minimumOn src/FoldlHelp.hs 14;" f
@@ -5048,7 +5046,7 @@ mouseClickOptionsList src/Dodge/Update/Input/ScreenLayer.hs 60;" f
mouseCursorType src/Dodge/Render/Picture.hs 86;" f mouseCursorType src/Dodge/Render/Picture.hs 86;" f
mouseWorldPos src/Dodge/Base/Coordinate.hs 48;" f mouseWorldPos src/Dodge/Base/Coordinate.hs 48;" f
moveBullet src/Dodge/Bullet.hs 195;" f moveBullet src/Dodge/Bullet.hs 195;" f
moveCombineSel src/Dodge/Update/Scroll.hs 115;" f moveCombineSel src/Dodge/Update/Scroll.hs 114;" f
moveHammerUp src/Dodge/Hammer.hs 5;" f moveHammerUp src/Dodge/Hammer.hs 5;" f
moveInverseShockwave src/Dodge/Shockwave/Update.hs 44;" f moveInverseShockwave src/Dodge/Shockwave/Update.hs 44;" f
moveLSThen src/Dodge/Placement/Instance/LightSource.hs 30;" f moveLSThen src/Dodge/Placement/Instance/LightSource.hs 30;" f
@@ -5071,7 +5069,7 @@ multiArrow src/Picture/Composite.hs 11;" f
multiLookupTrie src/SimpleTrie.hs 34;" f multiLookupTrie src/SimpleTrie.hs 34;" f
multiLookupTrieI src/SimpleTrie.hs 43;" f multiLookupTrieI src/SimpleTrie.hs 43;" f
muout src/Dodge/RoomLink.hs 129;" f muout src/Dodge/RoomLink.hs 129;" f
muzFlareAt src/Dodge/HeldUse.hs 675;" f muzFlareAt src/Dodge/HeldUse.hs 678;" f
mvButton src/Dodge/Placement/PlaceSpot.hs 176;" f mvButton src/Dodge/Placement/PlaceSpot.hs 176;" f
mvCr src/Dodge/Placement/PlaceSpot.hs 186;" f mvCr src/Dodge/Placement/PlaceSpot.hs 186;" f
mvFS src/Dodge/Placement/PlaceSpot.hs 189;" f mvFS src/Dodge/Placement/PlaceSpot.hs 189;" f
@@ -5114,7 +5112,7 @@ normalizeColor src/Color.hs 76;" f
normalizeV src/Geometry/Vector.hs 43;" f normalizeV src/Geometry/Vector.hs 43;" f
normalizeV3 src/Geometry/Vector3D.hs 84;" f normalizeV3 src/Geometry/Vector3D.hs 84;" f
nulgate src/Dodge/Item/Scope.hs 95;" f nulgate src/Dodge/Item/Scope.hs 95;" f
nullCommand src/Dodge/Update/Scroll.hs 170;" f nullCommand src/Dodge/Update/Scroll.hs 169;" f
numColor src/Color.hs 128;" f numColor src/Color.hs 128;" f
numDrawableVertices src/Shader/Parameters.hs 34;" f numDrawableVertices src/Shader/Parameters.hs 34;" f
numGLushort src/Shader/Parameters.hs 29;" f numGLushort src/Shader/Parameters.hs 29;" f
@@ -5463,7 +5461,7 @@ randsOnCirc src/RandomHelp.hs 127;" f
randsSpread src/RandomHelp.hs 120;" f randsSpread src/RandomHelp.hs 120;" f
ratIntersectLineLine src/Geometry/Intersect.hs 195;" f ratIntersectLineLine src/Geometry/Intersect.hs 195;" f
readSaveSlot src/Dodge/Save.hs 45;" f readSaveSlot src/Dodge/Save.hs 45;" f
recoilAmount src/Dodge/HeldUse.hs 460;" f recoilAmount src/Dodge/HeldUse.hs 466;" f
rectNSWE src/Geometry/Polygon.hs 13;" f rectNSWE src/Geometry/Polygon.hs 13;" f
rectVV src/Geometry/Polygon.hs 38;" f rectVV src/Geometry/Polygon.hs 38;" f
rectWH src/Geometry/Polygon.hs 17;" f rectWH src/Geometry/Polygon.hs 17;" f
@@ -5490,7 +5488,7 @@ rememberSounds src/Dodge/Creature/Perception.hs 178;" f
remoteDetonator src/Dodge/Item/Scope.hs 144;" f remoteDetonator src/Dodge/Item/Scope.hs 144;" f
remoteScreen src/Dodge/Item/Scope.hs 139;" f remoteScreen src/Dodge/Item/Scope.hs 139;" f
removeAimPosture src/Dodge/Creature/YourControl.hs 147;" f removeAimPosture src/Dodge/Creature/YourControl.hs 147;" f
removeAmmoFromMag src/Dodge/HeldUse.hs 866;" f removeAmmoFromMag src/Dodge/HeldUse.hs 869;" f
removeDot src/ShortShow.hs 29;" f removeDot src/ShortShow.hs 29;" f
removeInverseWalls src/Dodge/LevelGen/StaticWalls.hs 25;" f removeInverseWalls src/Dodge/LevelGen/StaticWalls.hs 25;" f
removeShieldWall src/Dodge/Item/BackgroundEffect.hs 57;" f removeShieldWall src/Dodge/Item/BackgroundEffect.hs 57;" f
@@ -5539,7 +5537,7 @@ rightIsParentCombine src/Dodge/Item/Grammar.hs 248;" f
rightPad src/Padding.hs 19;" f rightPad src/Padding.hs 19;" f
rightPadNoSquash src/Padding.hs 23;" f rightPadNoSquash src/Padding.hs 23;" f
rlPosDir src/Dodge/RoomLink.hs 94;" f rlPosDir src/Dodge/RoomLink.hs 94;" f
rlauncherPic src/Dodge/Item/Draw/SPic.hs 390;" f rlauncherPic src/Dodge/Item/Draw/SPic.hs 389;" f
rmInLinks src/Dodge/RoomLink.hs 138;" f rmInLinks src/Dodge/RoomLink.hs 138;" f
rmInvItem src/Dodge/Inventory.hs 64;" f rmInvItem src/Dodge/Inventory.hs 64;" f
rmLinksOfType src/Dodge/RoomLink.hs 135;" f rmLinksOfType src/Dodge/RoomLink.hs 135;" f
@@ -5636,10 +5634,10 @@ screenPosAbs src/Dodge/ScreenPos.hs 15;" f
screenToWorldPos src/Dodge/Base/Coordinate.hs 51;" f screenToWorldPos src/Dodge/Base/Coordinate.hs 51;" f
scrollAugInvSel src/Dodge/Inventory.hs 204;" f scrollAugInvSel src/Dodge/Inventory.hs 204;" f
scrollAugNextInSection src/Dodge/Inventory.hs 217;" f scrollAugNextInSection src/Dodge/Inventory.hs 217;" f
scrollCommandStrings src/Dodge/Update/Scroll.hs 162;" f scrollCommandStrings src/Dodge/Update/Scroll.hs 161;" f
scrollCommands src/Dodge/Update/Scroll.hs 159;" f scrollCommands src/Dodge/Update/Scroll.hs 158;" f
scrollDebugInfoInt src/Dodge/Debug.hs 71;" f scrollDebugInfoInt src/Dodge/Debug.hs 71;" f
scrollRBOption src/Dodge/Update/Scroll.hs 153;" f scrollRBOption src/Dodge/Update/Scroll.hs 152;" f
scrollSelectionSections src/Dodge/SelectionSections.hs 26;" f scrollSelectionSections src/Dodge/SelectionSections.hs 26;" f
scrollTimeBack src/Dodge/Update.hs 212;" f scrollTimeBack src/Dodge/Update.hs 212;" f
scrollTimeForward src/Dodge/Update.hs 235;" f scrollTimeForward src/Dodge/Update.hs 235;" f
@@ -5741,7 +5739,7 @@ shapeVerxAttributes src/Shape/Parameters.hs 13;" f
shapeVerxSize src/Shape/Parameters.hs 10;" f shapeVerxSize src/Shape/Parameters.hs 10;" f
shardShape src/Dodge/Block/Debris.hs 181;" f shardShape src/Dodge/Block/Debris.hs 181;" f
shatterGun src/Dodge/Item/Held/Weapons.hs 8;" f shatterGun src/Dodge/Item/Held/Weapons.hs 8;" f
shatterGunSPic src/Dodge/Item/Draw/SPic.hs 302;" f shatterGunSPic src/Dodge/Item/Draw/SPic.hs 301;" f
shatterWall src/Dodge/Item/Weapon/Shatter.hs 26;" f shatterWall src/Dodge/Item/Weapon/Shatter.hs 26;" f
shellCollisionCheck src/Dodge/Projectile/Update.hs 85;" f shellCollisionCheck src/Dodge/Projectile/Update.hs 85;" f
shellMag src/Dodge/Item/Ammo.hs 48;" f shellMag src/Dodge/Item/Ammo.hs 48;" f
@@ -5770,14 +5768,14 @@ shiftRoomShiftToLink src/Dodge/Room/Link.hs 70;" f
shiftedGrid src/Grid.hs 25;" f shiftedGrid src/Grid.hs 25;" f
shineTargetLaser src/Dodge/Creature/State.hs 296;" f shineTargetLaser src/Dodge/Creature/State.hs 296;" f
shineTorch src/Dodge/Creature/State.hs 337;" f shineTorch src/Dodge/Creature/State.hs 337;" f
shootBullet src/Dodge/HeldUse.hs 936;" f shootBullet src/Dodge/HeldUse.hs 934;" f
shootFirstMiss src/Dodge/Creature/Volition.hs 33;" f shootFirstMiss src/Dodge/Creature/Volition.hs 33;" f
shootLaser src/Dodge/HeldUse.hs 845;" f shootLaser src/Dodge/HeldUse.hs 848;" f
shootOutPassage src/Dodge/Room/RezBox.hs 74;" f shootOutPassage src/Dodge/Room/RezBox.hs 74;" f
shootShatter src/Dodge/Item/Weapon/Shatter.hs 11;" f shootShatter src/Dodge/Item/Weapon/Shatter.hs 11;" f
shootTeslaArc src/Dodge/HeldUse.hs 1211;" f shootTeslaArc src/Dodge/HeldUse.hs 1209;" f
shootTillEmpty src/Dodge/Creature/Volition.hs 18;" f shootTillEmpty src/Dodge/Creature/Volition.hs 18;" f
shootTractorBeam src/Dodge/HeldUse.hs 798;" f shootTractorBeam src/Dodge/HeldUse.hs 801;" f
shootersRoom src/Dodge/Room/Room.hs 315;" f shootersRoom src/Dodge/Room/Room.hs 315;" f
shootersRoom' src/Dodge/Room/Room.hs 280;" f shootersRoom' src/Dodge/Room/Room.hs 280;" f
shootersRoom1 src/Dodge/Room/Room.hs 305;" f shootersRoom1 src/Dodge/Room/Room.hs 305;" f
@@ -5793,9 +5791,9 @@ showEquipItem src/Dodge/Item/Display.hs 104;" f
showInt src/Dodge/Item/Info.hs 73;" f showInt src/Dodge/Item/Info.hs 73;" f
showIntsString src/Dodge/Tree/Compose.hs 129;" f showIntsString src/Dodge/Tree/Compose.hs 129;" f
showInventoryPathing src/Dodge/Item/Display.hs 84;" f showInventoryPathing src/Dodge/Item/Display.hs 84;" f
showManObj src/Dodge/TestString.hs 66;" f showManObj src/Dodge/TestString.hs 67;" f
showTerminalError src/Dodge/Debug/Terminal.hs 78;" f showTerminalError src/Dodge/Debug/Terminal.hs 78;" f
showTimeFlow src/Dodge/TestString.hs 89;" f showTimeFlow src/Dodge/TestString.hs 90;" f
shrinkPolyOnEdges src/Geometry/Polygon.hs 136;" f shrinkPolyOnEdges src/Geometry/Polygon.hs 136;" f
shrinkVert src/Geometry/Polygon.hs 140;" f shrinkVert src/Geometry/Polygon.hs 140;" f
shuffle src/RandomHelp.hs 49;" f shuffle src/RandomHelp.hs 49;" f
@@ -5941,7 +5939,7 @@ stringToList src/Picture/Base.hs 313;" f
stringToListGrad src/Picture/Text.hs 12;" f stringToListGrad src/Picture/Text.hs 12;" f
stripZ src/Geometry/Vector3D.hs 97;" f stripZ src/Geometry/Vector3D.hs 97;" f
structureToPotentialFunction src/Dodge/Item/Grammar.hs 183;" f structureToPotentialFunction src/Dodge/Item/Grammar.hs 183;" f
structureUseAtLoc src/Dodge/Creature/Impulse/UseItem.hs 76;" f structureUseAtLoc src/Dodge/Creature/Impulse/UseItem.hs 75;" f
subInvX src/Dodge/ListDisplayParams.hs 48;" f subInvX src/Dodge/ListDisplayParams.hs 48;" f
subMap src/TreeHelp.hs 118;" f subMap src/TreeHelp.hs 118;" f
subZipWith src/Dodge/Placement/Instance/Wall.hs 115;" f subZipWith src/Dodge/Placement/Instance/Wall.hs 115;" f
@@ -5993,9 +5991,9 @@ terminalReturnEffect src/Dodge/Terminal.hs 276;" f
terminalSPic src/Dodge/Machine/Draw.hs 29;" f terminalSPic src/Dodge/Machine/Draw.hs 29;" f
terminalScreenGlow src/Dodge/Machine/Update.hs 35;" f terminalScreenGlow src/Dodge/Machine/Update.hs 35;" f
terminalShape src/Dodge/Machine/Draw.hs 32;" f terminalShape src/Dodge/Machine/Draw.hs 32;" f
terminalWheelEvent src/Dodge/Update/Scroll.hs 125;" f terminalWheelEvent src/Dodge/Update/Scroll.hs 124;" f
teslaGun src/Dodge/Item/Held/BatteryGuns.hs 19;" f teslaGun src/Dodge/Item/Held/BatteryGuns.hs 19;" f
teslaGunPic src/Dodge/Item/Draw/SPic.hs 410;" f teslaGunPic src/Dodge/Item/Draw/SPic.hs 409;" f
teslaParams src/Dodge/Item/Held/BatteryGuns.hs 32;" f teslaParams src/Dodge/Item/Held/BatteryGuns.hs 32;" f
teslaParams src/Dodge/Tesla/ItemParams.hs 6;" f teslaParams src/Dodge/Tesla/ItemParams.hs 6;" f
testCrossWalls src/Dodge/Room/Path.hs 47;" f testCrossWalls src/Dodge/Room/Path.hs 47;" f
@@ -6062,11 +6060,11 @@ toV3 src/Geometry/Data.hs 38;" f
toV4 src/Geometry/Data.hs 40;" f toV4 src/Geometry/Data.hs 40;" f
toggleCombineInv src/Dodge/DisplayInventory.hs 317;" f toggleCombineInv src/Dodge/DisplayInventory.hs 317;" f
toggleCommand src/Dodge/Terminal.hs 196;" f toggleCommand src/Dodge/Terminal.hs 196;" f
toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 92;" f toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 88;" f
toggleExamineInv src/Dodge/Creature/Impulse/UseItem.hs 132;" f toggleExamineInv src/Dodge/Creature/Impulse/UseItem.hs 128;" f
toggleExamineInv src/Dodge/ToggleExamine.hs 5;" f toggleExamineInv src/Dodge/ToggleExamine.hs 5;" f
toggleJust src/MaybeHelp.hs 41;" f toggleJust src/MaybeHelp.hs 41;" f
toggleMapperInv src/Dodge/Creature/Impulse/UseItem.hs 137;" f toggleMapperInv src/Dodge/Creature/Impulse/UseItem.hs 133;" f
togglesToEffects src/Dodge/Terminal.hs 248;" f togglesToEffects src/Dodge/Terminal.hs 248;" f
tone440S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 572;" f tone440S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 572;" f
tone440raiseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 594;" f tone440raiseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 594;" f
@@ -6075,17 +6073,17 @@ tone440sawtoothquietS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 400;" f
topInvW src/Dodge/ListDisplayParams.hs 51;" f topInvW src/Dodge/ListDisplayParams.hs 51;" f
topPrismEdgeIndices src/Shader/Poke.hs 335;" f topPrismEdgeIndices src/Shader/Poke.hs 335;" f
topPrismIndices src/Shader/Poke.hs 410;" f topPrismIndices src/Shader/Poke.hs 410;" f
topTestPart src/Dodge/TestString.hs 62;" f topTestPart src/Dodge/TestString.hs 63;" f
torch src/Dodge/Item/Held/Utility.hs 23;" f torch src/Dodge/Item/Held/Utility.hs 23;" f
torchShape src/Dodge/Item/Draw/SPic.hs 269;" f torchShape src/Dodge/Item/Draw/SPic.hs 268;" f
torqueAmount src/Dodge/HeldUse.hs 576;" f torqueAmount src/Dodge/HeldUse.hs 582;" f
torqueCr src/Dodge/WorldEffect.hs 74;" f torqueCr src/Dodge/WorldEffect.hs 69;" f
torso src/Dodge/Creature/Picture.hs 99;" f torso src/Dodge/Creature/Picture.hs 99;" f
tractCr src/Dodge/TractorBeam/Update.hs 28;" f tractCr src/Dodge/TractorBeam/Update.hs 28;" f
tractFlIt src/Dodge/TractorBeam/Update.hs 23;" f tractFlIt src/Dodge/TractorBeam/Update.hs 23;" f
tractorBeamAt src/Dodge/HeldUse.hs 810;" f tractorBeamAt src/Dodge/HeldUse.hs 813;" f
tractorGun src/Dodge/Item/Held/BatteryGuns.hs 60;" f tractorGun src/Dodge/Item/Held/BatteryGuns.hs 60;" f
tractorGunPic src/Dodge/Item/Draw/SPic.hs 437;" f tractorGunPic src/Dodge/Item/Draw/SPic.hs 436;" f
tractorPullPos src/Dodge/TractorBeam/Update.hs 33;" f tractorPullPos src/Dodge/TractorBeam/Update.hs 33;" f
tractorSPic src/Dodge/TractorBeam/Draw.hs 10;" f tractorSPic src/Dodge/TractorBeam/Draw.hs 10;" f
tranRot src/Picture/Base.hs 124;" f tranRot src/Picture/Base.hs 124;" f
@@ -6272,7 +6270,7 @@ updateRadarSweeps src/Dodge/Update.hs 609;" f
updateRandNode src/TreeHelp.hs 108;" f updateRandNode src/TreeHelp.hs 108;" f
updateRenderSplit appDodge/Main.hs 108;" f updateRenderSplit appDodge/Main.hs 108;" f
updateRootItemID src/Dodge/Inventory/Location.hs 35;" f updateRootItemID src/Dodge/Inventory/Location.hs 35;" f
updateScopeZoom src/Dodge/Update/Scroll.hs 73;" f updateScopeZoom src/Dodge/Update/Scroll.hs 72;" f
updateScrollTestValue src/Dodge/ScrollValue.hs 6;" f updateScrollTestValue src/Dodge/ScrollValue.hs 6;" f
updateSection src/Dodge/DisplayInventory.hs 264;" f updateSection src/Dodge/DisplayInventory.hs 264;" f
updateSectionsPositioning src/Dodge/DisplayInventory.hs 243;" f updateSectionsPositioning src/Dodge/DisplayInventory.hs 243;" f
@@ -6326,26 +6324,26 @@ useBulletPayload src/Dodge/Bullet.hs 113;" f
useC src/Dodge/Cuse.hs 8;" f useC src/Dodge/Cuse.hs 8;" f
useC' src/Dodge/Cuse.hs 13;" f useC' src/Dodge/Cuse.hs 13;" f
useDelay src/Dodge/Item/UseDelay.hs 13;" f useDelay src/Dodge/Item/UseDelay.hs 13;" f
useGasParams src/Dodge/HeldUse.hs 1116;" f useGasParams src/Dodge/HeldUse.hs 1114;" f
useHotkey src/Dodge/Creature/YourControl.hs 70;" f useHotkey src/Dodge/Creature/YourControl.hs 70;" f
useInventoryPath src/Dodge/HeldUse.hs 1379;" f useInventoryPath src/Dodge/HeldUse.hs 1377;" f
useItem src/Dodge/Creature/Impulse/UseItem.hs 20;" f useItem src/Dodge/Creature/Impulse/UseItem.hs 20;" f
useItemLoc src/Dodge/Creature/Impulse/UseItem.hs 27;" f useItemLoc src/Dodge/Creature/Impulse/UseItem.hs 27;" f
useLnkRoomPos src/Dodge/PlacementSpot.hs 244;" f useLnkRoomPos src/Dodge/PlacementSpot.hs 244;" f
useLoadedAmmo src/Dodge/HeldUse.hs 719;" f useLoadedAmmo src/Dodge/HeldUse.hs 722;" f
useLocation src/Dodge/Creature/Impulse/UseItem.hs 66;" f useLocation src/Dodge/Creature/Impulse/UseItem.hs 65;" f
useMagShield src/Dodge/Euse.hs 26;" f useMagShield src/Dodge/Euse.hs 26;" f
useNormalCamera src/Dodge/Camera.hs 6;" f useNormalCamera src/Dodge/Camera.hs 6;" f
usePayload src/Dodge/Payload.hs 18;" f usePayload src/Dodge/Payload.hs 18;" f
useRewindGun src/Dodge/HeldUse.hs 1345;" f useRewindGun src/Dodge/HeldUse.hs 1343;" f
useRewindGun src/Dodge/Luse.hs 40;" f useRewindGun src/Dodge/Luse.hs 40;" 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
useStopWatch src/Dodge/HeldUse.hs 1326;" f useStopWatch src/Dodge/HeldUse.hs 1324;" f
useStopWatch src/Dodge/Luse.hs 21;" f useStopWatch src/Dodge/Luse.hs 21;" f
useTimeCheck src/Dodge/HeldUse.hs 117;" f useTimeCheck src/Dodge/HeldUse.hs 101;" f
useTimeCheck src/Dodge/Item/Weapon/TriggerType.hs 127;" f useTimeCheck src/Dodge/Item/Weapon/TriggerType.hs 127;" f
useTimeScrollGun src/Dodge/HeldUse.hs 1334;" f useTimeScrollGun src/Dodge/HeldUse.hs 1332;" f
useTimeScrollGun src/Dodge/Luse.hs 29;" f useTimeScrollGun src/Dodge/Luse.hs 29;" f
useUnusedLnk src/Dodge/PlacementSpot.hs 169;" f useUnusedLnk src/Dodge/PlacementSpot.hs 169;" f
usedRoomInLinkPoss src/Dodge/PlacementSpot.hs 196;" f usedRoomInLinkPoss src/Dodge/PlacementSpot.hs 196;" f
@@ -6369,7 +6367,7 @@ verticalLampCover src/Dodge/Placement/Instance/LightSource/Cover.hs 38;" f
verticalPipe src/Dodge/Picture.hs 19;" f verticalPipe src/Dodge/Picture.hs 19;" f
verticalPipe src/Dodge/Placement/Instance/Pipe.hs 6;" f verticalPipe src/Dodge/Placement/Instance/Pipe.hs 6;" f
verticalWire src/Dodge/Wire.hs 24;" f verticalWire src/Dodge/Wire.hs 24;" f
vgunMuzzles src/Dodge/HeldUse.hs 299;" f vgunMuzzles src/Dodge/HeldUse.hs 304;" f
viewBoundaries src/Dodge/Debug/Picture.hs 304;" f viewBoundaries src/Dodge/Debug/Picture.hs 304;" f
viewClipBounds src/Dodge/Debug/Picture.hs 313;" f viewClipBounds src/Dodge/Debug/Picture.hs 313;" f
viewDistanceFromItems src/Dodge/Update/Camera.hs 186;" f viewDistanceFromItems src/Dodge/Update/Camera.hs 186;" f
@@ -6379,9 +6377,9 @@ visibleWalls src/Dodge/Base/Collide.hs 124;" f
visionCheck src/Dodge/Creature/Perception.hs 153;" f visionCheck src/Dodge/Creature/Perception.hs 153;" f
vocalizationTest src/Dodge/Creature/Vocalization.hs 42;" f vocalizationTest src/Dodge/Creature/Vocalization.hs 42;" f
volleyGun src/Dodge/Item/Held/Cane.hs 15;" f volleyGun src/Dodge/Item/Held/Cane.hs 15;" f
volleyGunShape src/Dodge/Item/Draw/SPic.hs 347;" f volleyGunShape src/Dodge/Item/Draw/SPic.hs 346;" f
waistSP src/Dodge/Creature/HandPos.hs 173;" f waistSP src/Dodge/Creature/HandPos.hs 173;" f
walkNozzle src/Dodge/HeldUse.hs 780;" f walkNozzle src/Dodge/HeldUse.hs 783;" f
walkableNodeNear src/Dodge/Path.hs 48;" f walkableNodeNear src/Dodge/Path.hs 48;" f
wallBlips src/Dodge/RadarSweep.hs 98;" f wallBlips src/Dodge/RadarSweep.hs 98;" f
wallBuffer src/Dodge/WallCreatureCollisions.hs 52;" f wallBuffer src/Dodge/WallCreatureCollisions.hs 52;" f
@@ -6495,7 +6493,7 @@ zoneWall src/Dodge/Zoning/Wall.hs 65;" f
zonesAroundPoint src/Dodge/Zoning/Base.hs 96;" f zonesAroundPoint src/Dodge/Zoning/Base.hs 96;" f
zonesExtract src/Dodge/Zoning/Base.hs 56;" f zonesExtract src/Dodge/Zoning/Base.hs 56;" f
zoomFloatingCamera src/Dodge/Update/Camera.hs 70;" f zoomFloatingCamera src/Dodge/Update/Camera.hs 70;" f
zoomInLongGun src/Dodge/Update/Scroll.hs 99;" f zoomInLongGun src/Dodge/Update/Scroll.hs 98;" f
zoomOutLongGun src/Dodge/Update/Scroll.hs 107;" f zoomOutLongGun src/Dodge/Update/Scroll.hs 106;" f
zoomScope src/Dodge/Item/Scope.hs 33;" f zoomScope src/Dodge/Item/Scope.hs 33;" f
zoomSpeed src/Dodge/Update/Scroll.hs 96;" f zoomSpeed src/Dodge/Update/Scroll.hs 95;" f