Remove external duplicated ItemLinks

This commit is contained in:
2025-07-10 23:57:27 +01:00
parent 918f970ca8
commit ba352e7191
3 changed files with 128 additions and 92 deletions
+18 -18
View File
@@ -13,24 +13,24 @@ import qualified Linear.Quaternion as Q
data ItemLink data ItemLink
= TriggerLink = TriggerLink
| AmmoInLink Int AmmoType -- | AmmoInLink Int AmmoType
| AmmoModLink -- | AmmoModLink
| AmmoTargetingLink -- | AmmoTargetingLink
| AmmoPayloadLink -- | AmmoPayloadLink
| AmmoEffectLink -- | AmmoEffectLink
| WeaponScopeLink -- | WeaponScopeLink
| WeaponTargetingLink -- | WeaponTargetingLink
| JoystickLink -- | JoystickLink
| RemoteScreenLink -- | RemoteScreenLink
| RemoteDetonatorLink -- | RemoteDetonatorLink
| SmokeReducerLink -- | SmokeReducerLink
-- | AugmentedHUDLink ---- | AugmentedHUDLink
| FunctionChangeLink -- | FunctionChangeLink
| MakeAutoLink -- | MakeAutoLink
| ProjectileStabiliserLink -- | ProjectileStabiliserLink
| UnderBarrelSlotLink -- | UnderBarrelSlotLink
| UnderBarrelPlatformLink -- | UnderBarrelPlatformLink
| GrenadeHitEffectLink -- | GrenadeHitEffectLink
| SFLink {_sfLink :: ItemStructuralFunction} | SFLink {_sfLink :: ItemStructuralFunction}
deriving (Eq, Ord, Show, Read) deriving (Eq, Ord, Show, Read)
+83 -30
View File
@@ -775,9 +775,9 @@ useLoadedAmmo loc cr (_, w) (Just (mz, x, magtree)) = (,) True $
MuzzleGLauncher -> MuzzleGLauncher ->
createProjectile createProjectile
(itmtree ^. ldtValue . _3) (itmtree ^. ldtValue . _3)
(Grenade (getGrenadeHitEffect $ fmap (^. _1) itmtree)) (Grenade (getGrenadeHitEffect $ itmtree))
magtree magtree
(getPJStabiliser $ fmap (^. _1) itmtree) (getPJStabiliser $ itmtree)
mz mz
cr cr
w w
@@ -925,10 +925,11 @@ removeAmmoFromMag x mid cr = fromMaybe id $ do
. _Just . _Just
-~ x -~ x
getBulletType :: LDTree ItemLink Item -> Maybe Bullet getBulletType :: LDTree ItemLink OItem -> Maybe Bullet
getBulletType magtree = getBulletType magtree =
--magtree ^? ldtValue . itConsumables . magParams . ampBullet --magtree ^? ldtValue . itConsumables . magParams . ampBullet
(magtree ^? ldtValue >>= magAmmoParams >>= (^? ampBullet)) -- (magAmmoParams (magtree ^. ldtValue . _1) ^? _Just . ampBullet)
(magtree ^? ldtValue . _1 . to magAmmoParams . _Just . ampBullet)
-- <&> buTrajectory .~ btraj -- <&> buTrajectory .~ btraj
<&> buPayload .~ bpayload <&> buPayload .~ bpayload
<&> buEffect .~ beffect <&> buEffect .~ beffect
@@ -940,11 +941,19 @@ getBulletType magtree =
-- bt <- attree ^? ldtValue . itUse . ubMod . bmTrajectory -- bt <- attree ^? ldtValue . itUse . ubMod . bmTrajectory
-- return $ getBulletTrajectory mz (itmtree ^. ldtValue) bt tp cr w -- return $ getBulletTrajectory mz (itmtree ^. ldtValue) bt tp cr w
bpayload = fromMaybe (BulPlain 100) $ do bpayload = fromMaybe (BulPlain 100) $ do
attree <- lookup AmmoPayloadLink (magtree ^. ldtLeft) attree <- find ispayload (magtree ^. ldtLeft)
attree ^? ldtValue . itUse . ubMod . bmPayload attree ^? _2 . ldtValue . _1 . itUse . ubMod . bmPayload
ispayload :: (ItemLink,LDTree ItemLink OItem) -> Bool
ispayload y = case y ^. _2 . ldtValue . _2 of
AmmoPayloadSF {} -> True
_ -> False
beffect = fromMaybe DestroyBullet $ do beffect = fromMaybe DestroyBullet $ do
attree <- lookup AmmoEffectLink (magtree ^. ldtLeft) attree <- find isammoeffect (magtree ^. ldtLeft)
attree ^? ldtValue . itUse . ubMod . bmEffect attree ^? _2 . ldtValue . _1 . itUse . ubMod . bmEffect
isammoeffect :: (ItemLink,LDTree ItemLink OItem) -> Bool
isammoeffect y = case y ^. _2 . ldtValue . _2 of
AmmoEffectSF {} -> True
_ -> False
magAmmoParams :: Item -> Maybe AmmoParams magAmmoParams :: Item -> Maybe AmmoParams
magAmmoParams itm = case itm ^. itType of magAmmoParams itm = case itm ^. itType of
@@ -985,7 +994,7 @@ shootBullets ::
World -> World ->
World World
shootBullets loc cr (mz, x, magtree) w = fromMaybe w $ do shootBullets loc cr (mz, x, magtree) w = fromMaybe w $ do
thebullet <- getBulletType $ fmap (^. _1) magtree thebullet <- getBulletType $ magtree
return $ foldl' (&) w (replicate x (shootBullet thebullet loc cr mz)) return $ foldl' (&) w (replicate x (shootBullet thebullet loc cr mz))
shootBullet :: Bullet -> LocationLDT ItemLink OItem -> Creature -> Muzzle -> World -> World shootBullet :: Bullet -> LocationLDT ItemLink OItem -> Creature -> Muzzle -> World -> World
@@ -1240,19 +1249,36 @@ shootTeslaArc loc cr mz w =
0 -> 0 0 -> 0
i -> fst . randomR (- i, i) $ _randGen w i -> fst . randomR (- i, i) $ _randGen w
determineProjectileTracking :: LDTree ItemLink Item -> LDTree ItemLink Item -> RocketHoming determineProjectileTracking :: LDTree ItemLink OItem
-> LDTree ItemLink OItem -> RocketHoming
determineProjectileTracking magtree itmtree = determineProjectileTracking magtree itmtree =
fromMaybe NoHoming $ fromMaybe NoHoming $
finddronecontrols <|> findexternaltracking finddronecontrols <|> findexternaltracking
where where
finddronecontrols = do finddronecontrols = do
screen <- lookup RemoteScreenLink (magtree ^. ldtLeft) screen <- find isremscreen (magtree ^. ldtLeft)
_ <- lookup JoystickLink (screen ^. ldtLeft) _ <- find isjoystick (screen ^. _2 . ldtLeft)
return $ HomeUsingRemoteScreen (screen ^. ldtValue . itID) return $ HomeUsingRemoteScreen (screen ^. _2 . ldtValue . _1 . itID)
findexternaltracking = do findexternaltracking = do
_ <- lookup AmmoTargetingLink (magtree ^. ldtLeft) _ <- find isammotargeting (magtree ^. ldtLeft)
targetingtree <- lookup WeaponTargetingLink (itmtree ^. ldtRight) targetingtree <- find isweapontargeting (itmtree ^. ldtRight)
return $ HomeUsingTargeting (targetingtree ^. ldtValue . itID) return $ HomeUsingTargeting (targetingtree ^. _2 . ldtValue . _1 . itID)
isremscreen :: (ItemLink,LDTree ItemLink OItem) -> Bool
isremscreen x = case x ^. _2 . ldtValue . _2 of
RemoteScreenSF {} -> True
_ -> False
isjoystick :: (ItemLink,LDTree ItemLink OItem) -> Bool
isjoystick x = case x ^. _2 . ldtValue . _2 of
JoystickSF {} -> True
_ -> False
isammotargeting :: (ItemLink,LDTree ItemLink OItem) -> Bool
isammotargeting x = case x ^. _2 . ldtValue . _2 of
AmmoTargetingSF {} -> True
_ -> False
isweapontargeting :: (ItemLink,LDTree ItemLink OItem) -> Bool
isweapontargeting x = case x ^. _2 . ldtValue . _2 of
WeaponTargetingSF {} -> True
_ -> False
createProjectileR :: createProjectileR ::
LocationLDT ItemLink OItem -> LocationLDT ItemLink OItem ->
@@ -1265,31 +1291,45 @@ createProjectileR loc magtree =
createProjectile createProjectile
(loc ^. locLDT . ldtValue . _3) (loc ^. locLDT . ldtValue . _3)
( Rocket ( Rocket
(determineProjectileTracking (fmap (^. _1) magtree) $ fmap (^. _1) itmtree) (determineProjectileTracking ( magtree) $ itmtree)
smoke smoke
) )
magtree magtree
(getPJStabiliser $ fmap (^. _1) itmtree) (getPJStabiliser itmtree)
where where
itmtree = loc ^. locLDT itmtree = loc ^. locLDT
smoke smoke
| isJust $ lookup SmokeReducerLink (magtree ^. ldtLeft) = Just ReducedRocketSmoke | isJust $ find issmokereducer (magtree ^. ldtLeft) = Just ReducedRocketSmoke
| otherwise = Nothing | otherwise = Nothing
issmokereducer :: (ItemLink,LDTree ItemLink OItem) -> Bool
issmokereducer y = case y ^. _2 . ldtValue . _2 of
SmokeReducerSF {} -> True
_ -> False
getPJStabiliser :: LDTree ItemLink Item -> Maybe PJStabiliser getPJStabiliser :: LDTree ItemLink OItem -> Maybe PJStabiliser
getPJStabiliser ldt = case lookup ProjectileStabiliserLink (ldt ^. ldtRight) of getPJStabiliser ldt = case find isprojstab (ldt ^. ldtRight) of
Just ldt' -> case ldt' ^? ldtValue . itType . ibtAttach of Just ldt' -> case ldt' ^? _2 . ldtValue . _1 . itType . ibtAttach of
Just GIMBAL -> Just StabOrthReduce Just GIMBAL -> Just StabOrthReduce
Just GYROSCOPE -> Just StabSpinIncrease Just GYROSCOPE -> Just StabSpinIncrease
_ -> Nothing _ -> Nothing
_ -> Nothing _ -> Nothing
where
isprojstab :: (ItemLink,LDTree ItemLink OItem) -> Bool
isprojstab y = case y ^. _2 . ldtValue . _2 of
ProjectileStabiliserSF {} -> True
_ -> False
getGrenadeHitEffect :: LDTree ItemLink Item -> GrenadeHitEffect getGrenadeHitEffect :: LDTree ItemLink OItem -> GrenadeHitEffect
getGrenadeHitEffect t = case lookup GrenadeHitEffectLink (t ^. ldtRight) of getGrenadeHitEffect t = case find isghiteff (t ^. ldtRight) of
Just ldt' -> case ldt' ^? ldtValue . itType of Just ldt' -> case ldt' ^? _2 . ldtValue . _1 . itType of
Just STICKYMOD -> GStick Just STICKYMOD -> GStick
_ -> GBounce 2 _ -> GBounce 2
_ -> GBounce 2 _ -> GBounce 2
where
isghiteff :: (ItemLink,LDTree ItemLink OItem) -> Bool
isghiteff y = case y ^. _2 . ldtValue . _2 of
GrenadeHitEffectSF {} -> True
_ -> False
createProjectile :: createProjectile ::
(Point3, Q.Quaternion Float) -> (Point3, Q.Quaternion Float) ->
@@ -1304,19 +1344,32 @@ createProjectile x pjtype magtree stab muz cr = fromMaybe failsound $ do
magid <- magtree ^? ldtValue . _1 . itLocation . ilInvID magid <- magtree ^? ldtValue . _1 . itLocation . ilInvID
ammoitem <- cr ^? crInv . ix magid ammoitem <- cr ^? crInv . ix magid
let rdetonate = let rdetonate =
(^. ldtValue . _1 . itID) (^. _2 . ldtValue . _1 . itID)
<$> lookup RemoteDetonatorLink (magtree ^. ldtLeft) <$> find isrdet (magtree ^. ldtLeft)
rscreen = rscreen =
(^. ldtValue . _1 . itID) (^. _2 . ldtValue . _1 . itID)
<$> lookup RemoteScreenLink (magtree ^. ldtLeft) <$> find isrscreen (magtree ^. ldtLeft)
aparams <- aparams <-
((magtree ^? ldtLeft) >>= lookup AmmoPayloadLink >>= (^? ldtValue . _1 . itType . ibtAttach . shellPayload)) ((magtree ^? ldtLeft) >>= find isampay >>= (^? _2 . ldtValue . _1 . itType . ibtAttach . shellPayload))
-- <|> ammoitem ^? itConsumables . magParams . ampPayload -- <|> ammoitem ^? itConsumables . magParams . ampPayload
<|> magAmmoParams ammoitem ^? _Just . ampPayload <|> magAmmoParams ammoitem ^? _Just . ampPayload
return $ return $
createShell x rdetonate rscreen stab pjtype aparams muz cr createShell x rdetonate rscreen stab pjtype aparams muz cr
. startthesound . startthesound
where where
isrdet :: (ItemLink,LDTree ItemLink OItem) -> Bool
isrdet y = case y ^. _2 . ldtValue . _2 of
RemoteDetonatorSF {} -> True
_ -> False
isrscreen :: (ItemLink,LDTree ItemLink OItem) -> Bool
isrscreen y = case y ^. _2 . ldtValue . _2 of
RemoteScreenSF {} -> True
_ -> False
isampay :: (ItemLink,LDTree ItemLink OItem) -> Bool
isampay y = case y ^. _2 . ldtValue . _2 of
AmmoPayloadSF {} -> True
_ -> False
-- the sound should be moved to the projectile firing -- the sound should be moved to the projectile firing
startthesound = startthesound =
soundMultiFrom soundMultiFrom
+27 -44
View File
@@ -57,19 +57,14 @@ AlteRifleSwitch src/Dodge/Data/Item/Params.hs 20;" C
Ambush src/Dodge/Data/ActionPlan.hs 178;" C Ambush src/Dodge/Data/ActionPlan.hs 178;" C
Ammo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 3;" m Ammo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 3;" m
Ammo src/Dodge/Item/Ammo.hs 1;" m Ammo src/Dodge/Item/Ammo.hs 1;" m
AmmoEffectLink src/Dodge/Data/ComposedItem.hs 20;" C
AmmoEffectSF src/Dodge/Data/ComposedItem.hs 58;" C AmmoEffectSF src/Dodge/Data/ComposedItem.hs 58;" C
AmmoInLink src/Dodge/Data/ComposedItem.hs 16;" C
AmmoMagSF src/Dodge/Data/ComposedItem.hs 49;" C AmmoMagSF src/Dodge/Data/ComposedItem.hs 49;" 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 17;" C
AmmoModifierSF src/Dodge/Data/ComposedItem.hs 55;" C AmmoModifierSF src/Dodge/Data/ComposedItem.hs 55;" C
AmmoParams src/Dodge/Data/Item/Use.hs 51;" t AmmoParams src/Dodge/Data/Item/Use.hs 51;" t
AmmoPayloadLink src/Dodge/Data/ComposedItem.hs 19;" C
AmmoPayloadSF src/Dodge/Data/ComposedItem.hs 57;" C AmmoPayloadSF src/Dodge/Data/ComposedItem.hs 57;" C
AmmoPerShot src/Dodge/Data/Muzzle.hs 52;" t AmmoPerShot src/Dodge/Data/Muzzle.hs 52;" t
AmmoSlots src/Dodge/Item/AmmoSlots.hs 3;" m AmmoSlots src/Dodge/Item/AmmoSlots.hs 3;" m
AmmoTargetingLink src/Dodge/Data/ComposedItem.hs 18;" C
AmmoTargetingSF src/Dodge/Data/ComposedItem.hs 56;" C AmmoTargetingSF src/Dodge/Data/ComposedItem.hs 56;" C
AmmoType src/Dodge/Data/AmmoType.hs 3;" m AmmoType src/Dodge/Data/AmmoType.hs 3;" m
AnRoom src/Dodge/Annotation/Data.hs 18;" C AnRoom src/Dodge/Annotation/Data.hs 18;" C
@@ -726,7 +721,6 @@ FullRes src/Dodge/Data/Config.hs 97;" C
FullShadowFidelity src/Shape/Data.hs 24;" C FullShadowFidelity src/Shape/Data.hs 24;" C
FullSize src/Dodge/Data/Item/Params.hs 28;" C FullSize src/Dodge/Data/Item/Params.hs 28;" C
FullyVisible src/Dodge/Data/CamouflageStatus.hs 6;" C FullyVisible src/Dodge/Data/CamouflageStatus.hs 6;" C
FunctionChangeLink src/Dodge/Data/ComposedItem.hs 28;" C
FunctionChangeSF src/Dodge/Data/ComposedItem.hs 59;" C FunctionChangeSF src/Dodge/Data/ComposedItem.hs 59;" C
GBounce src/Dodge/Data/Projectile.hs 57;" C GBounce src/Dodge/Data/Projectile.hs 57;" C
GEqC src/SameConstr.hs 20;" c GEqC src/SameConstr.hs 20;" c
@@ -785,7 +779,6 @@ GraphHelp src/GraphHelp.hs 1;" m
GraphVizHelp src/GraphVizHelp.hs 2;" m GraphVizHelp src/GraphVizHelp.hs 2;" m
Grenade src/Dodge/Data/Projectile.hs 42;" C Grenade src/Dodge/Data/Projectile.hs 42;" C
GrenadeHitEffect src/Dodge/Data/Projectile.hs 56;" t GrenadeHitEffect src/Dodge/Data/Projectile.hs 56;" t
GrenadeHitEffectLink src/Dodge/Data/ComposedItem.hs 33;" C
GrenadeHitEffectSF src/Dodge/Data/ComposedItem.hs 62;" C GrenadeHitEffectSF src/Dodge/Data/ComposedItem.hs 62;" C
Grid src/Grid.hs 1;" m Grid src/Grid.hs 1;" m
Gust src/Dodge/Data/Gust.hs 13;" t Gust src/Dodge/Data/Gust.hs 13;" t
@@ -967,7 +960,6 @@ JGK src/Control/Foldl/JGK.hs 1;" m
JOYSTICK src/Dodge/Data/Item/Combine.hs 95;" C JOYSTICK src/Dodge/Data/Item/Combine.hs 95;" C
JUMPLEGS src/Dodge/Data/Item/Combine.hs 130;" C JUMPLEGS src/Dodge/Data/Item/Combine.hs 130;" C
JoinClust src/Dodge/Combine/Graph.hs 22;" C JoinClust src/Dodge/Combine/Graph.hs 22;" C
JoystickLink src/Dodge/Data/ComposedItem.hs 23;" C
JoystickSF src/Dodge/Data/ComposedItem.hs 51;" C JoystickSF src/Dodge/Data/ComposedItem.hs 51;" C
Just' src/MaybeHelp.hs 13;" C Just' src/MaybeHelp.hs 13;" C
JustStartedPlaying src/Sound/Data.hs 24;" C JustStartedPlaying src/Sound/Data.hs 24;" C
@@ -1129,7 +1121,6 @@ MagnetUpdate src/Dodge/Data/Magnet.hs 13;" t
MagnetUpdateTimer src/Dodge/Data/Magnet.hs 13;" C MagnetUpdateTimer src/Dodge/Data/Magnet.hs 13;" C
Main appDodge/Main.hs 1;" m Main appDodge/Main.hs 1;" m
Make src/Dodge/Corpse/Make.hs 1;" m Make src/Dodge/Corpse/Make.hs 1;" m
MakeAutoLink src/Dodge/Data/ComposedItem.hs 29;" C
MakeAutoSF src/Dodge/Data/ComposedItem.hs 60;" C MakeAutoSF src/Dodge/Data/ComposedItem.hs 60;" C
MakeSound src/Dodge/Data/ActionPlan.hs 43;" C MakeSound src/Dodge/Data/ActionPlan.hs 43;" C
MakeStartCloudAt src/Dodge/Data/WorldEffect.hs 29;" C MakeStartCloudAt src/Dodge/Data/WorldEffect.hs 29;" C
@@ -1502,7 +1493,6 @@ 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 53;" C ProjectileParams src/Dodge/Data/Item/Use.hs 53;" C
ProjectileStabiliserLink src/Dodge/Data/ComposedItem.hs 30;" C
ProjectileStabiliserSF src/Dodge/Data/ComposedItem.hs 61;" C ProjectileStabiliserSF src/Dodge/Data/ComposedItem.hs 61;" C
ProjectileType src/Dodge/Data/Projectile.hs 41;" t ProjectileType src/Dodge/Data/Projectile.hs 41;" t
ProjectileUpdate src/Dodge/Data/Projectile.hs 35;" t ProjectileUpdate src/Dodge/Data/Projectile.hs 35;" t
@@ -1612,10 +1602,8 @@ ReigonalGovernment src/Dodge/Data/Scenario.hs 50;" C
Religion src/Dodge/Data/Scenario.hs 47;" C Religion src/Dodge/Data/Scenario.hs 47;" C
Reload src/Dodge/Data/ActionPlan.hs 190;" C Reload src/Dodge/Data/ActionPlan.hs 190;" C
ReloadStatus src/Dodge/Data/Item/Use/Consumption.hs 20;" t ReloadStatus src/Dodge/Data/Item/Use/Consumption.hs 20;" t
RemoteDetonatorLink src/Dodge/Data/ComposedItem.hs 25;" C
RemoteDetonatorSF src/Dodge/Data/ComposedItem.hs 52;" C RemoteDetonatorSF src/Dodge/Data/ComposedItem.hs 52;" C
RemoteDirectionPU src/Dodge/Data/Projectile.hs 38;" C RemoteDirectionPU src/Dodge/Data/Projectile.hs 38;" C
RemoteScreenLink src/Dodge/Data/ComposedItem.hs 24;" C
RemoteScreenSF src/Dodge/Data/ComposedItem.hs 50;" C RemoteScreenSF src/Dodge/Data/ComposedItem.hs 50;" C
RemoveEquipment src/Dodge/Data/RightButtonOptions.hs 36;" C RemoveEquipment src/Dodge/Data/RightButtonOptions.hs 36;" C
RemoveShieldWall src/Dodge/Data/Item/Effect.hs 27;" C RemoveShieldWall src/Dodge/Data/Item/Effect.hs 27;" C
@@ -1803,7 +1791,6 @@ SkiffBaySS src/Dodge/Data/Scenario.hs 108;" C
SleepingQuatersSS src/Dodge/Data/Scenario.hs 90;" C SleepingQuatersSS src/Dodge/Data/Scenario.hs 90;" C
Small src/Shape/Data.hs 31;" C Small src/Shape/Data.hs 31;" C
Smoke src/Dodge/Data/Cloud.hs 23;" C Smoke src/Dodge/Data/Cloud.hs 23;" C
SmokeReducerLink src/Dodge/Data/ComposedItem.hs 26;" C
SmokeReducerSF src/Dodge/Data/ComposedItem.hs 53;" C SmokeReducerSF src/Dodge/Data/ComposedItem.hs 53;" C
SmoothScroll src/Dodge/SmoothScroll.hs 1;" m SmoothScroll src/Dodge/SmoothScroll.hs 1;" m
SocialUpheaval src/Dodge/Data/Scenario.hs 27;" C SocialUpheaval src/Dodge/Data/Scenario.hs 27;" C
@@ -2049,9 +2036,7 @@ Type src/Dodge/Terminal/Type.hs 1;" m
Typical src/Shape/Data.hs 36;" C Typical src/Shape/Data.hs 36;" C
UNDERBARRELSLOT src/Dodge/Data/Item/Combine.hs 98;" C UNDERBARRELSLOT src/Dodge/Data/Item/Combine.hs 98;" C
UNIGATE src/Dodge/Data/Item/Combine.hs 31;" C UNIGATE src/Dodge/Data/Item/Combine.hs 31;" C
UnderBarrelPlatformLink src/Dodge/Data/ComposedItem.hs 32;" C
UnderBarrelPlatformSF src/Dodge/Data/ComposedItem.hs 41;" C UnderBarrelPlatformSF src/Dodge/Data/ComposedItem.hs 41;" C
UnderBarrelSlotLink src/Dodge/Data/ComposedItem.hs 31;" C
UnderBarrelSlotSF src/Dodge/Data/ComposedItem.hs 40;" C UnderBarrelSlotSF src/Dodge/Data/ComposedItem.hs 40;" C
UnderGround src/Dodge/Data/Scenario.hs 78;" C UnderGround src/Dodge/Data/Scenario.hs 78;" C
UnderRoof src/Dodge/Data/Scenario.hs 79;" C UnderRoof src/Dodge/Data/Scenario.hs 79;" C
@@ -2197,9 +2182,7 @@ WdWdBurstFireRepetition src/Dodge/Data/WorldEffect.hs 35;" C
WdWdNegateTrig src/Dodge/Data/WorldEffect.hs 31;" C WdWdNegateTrig src/Dodge/Data/WorldEffect.hs 31;" C
WdYouPos src/Dodge/Data/WorldEffect.hs 41;" C WdYouPos src/Dodge/Data/WorldEffect.hs 41;" C
Weapon src/Dodge/Item/Weapon.hs 2;" m Weapon src/Dodge/Item/Weapon.hs 2;" m
WeaponScopeLink src/Dodge/Data/ComposedItem.hs 21;" C
WeaponScopeSF src/Dodge/Data/ComposedItem.hs 44;" C WeaponScopeSF src/Dodge/Data/ComposedItem.hs 44;" C
WeaponTargetingLink src/Dodge/Data/ComposedItem.hs 22;" C
WeaponTargetingSF src/Dodge/Data/ComposedItem.hs 45;" C WeaponTargetingSF src/Dodge/Data/ComposedItem.hs 45;" C
Weapons src/Dodge/Item/Held/Weapons.hs 1;" m Weapons src/Dodge/Item/Held/Weapons.hs 1;" m
West src/Dodge/Data/CardinalPoint.hs 7;" C West src/Dodge/Data/CardinalPoint.hs 7;" C
@@ -3787,8 +3770,8 @@ 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 1294;" f createProjectile src/Dodge/HeldUse.hs 1312;" f
createProjectileR src/Dodge/HeldUse.hs 1257;" f createProjectileR src/Dodge/HeldUse.hs 1275;" f
createShell src/Dodge/Projectile/Create.hs 22;" f createShell src/Dodge/Projectile/Create.hs 22;" 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
@@ -3983,7 +3966,7 @@ detector src/Dodge/Item/Held/Utility.hs 27;" f
detectorColor src/Dodge/Item/Draw/SPic.hs 451;" f detectorColor src/Dodge/Item/Draw/SPic.hs 451;" 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 1243;" f determineProjectileTracking src/Dodge/HeldUse.hs 1251;" 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
@@ -4048,7 +4031,7 @@ 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 1194;" f doGenFloat src/Dodge/HeldUse.hs 1202;" f
doGravityPU src/Dodge/Projectile/Update.hs 50;" f doGravityPU src/Dodge/Projectile/Update.hs 50;" f
doHeldUseEffect src/Dodge/HeldUse.hs 326;" f doHeldUseEffect src/Dodge/HeldUse.hs 326;" f
doInPlacements src/Dodge/Layout.hs 92;" f doInPlacements src/Dodge/Layout.hs 92;" f
@@ -4242,7 +4225,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 125;" f dropAll src/Dodge/Creature/State.hs 125;" f
dropExcept src/Dodge/Creature/Action.hs 166;" f dropExcept src/Dodge/Creature/Action.hs 166;" f
dropInventoryPath src/Dodge/HeldUse.hs 1374;" f dropInventoryPath src/Dodge/HeldUse.hs 1392;" 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
@@ -4434,7 +4417,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 1150;" f gasType src/Dodge/HeldUse.hs 1158;" 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
@@ -4461,7 +4444,7 @@ 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 1287;" f getGrenadeHitEffect src/Dodge/HeldUse.hs 1305;" 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 747;" f getLaserColor src/Dodge/HeldUse.hs 747;" f
@@ -4471,7 +4454,7 @@ 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 1279;" f getPJStabiliser src/Dodge/HeldUse.hs 1297;" 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
@@ -4571,9 +4554,9 @@ 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 479;" f heldItemInvLock src/Dodge/HeldUse.hs 479;" f
heldItemMuzVel src/Dodge/HeldUse.hs 1025;" f heldItemMuzVel src/Dodge/HeldUse.hs 1033;" f
heldItemMuzzles src/Dodge/HeldUse.hs 157;" f heldItemMuzzles src/Dodge/HeldUse.hs 157;" f
heldItemRifling src/Dodge/HeldUse.hs 1069;" f heldItemRifling src/Dodge/HeldUse.hs 1077;" f
heldItemSPic src/Dodge/Item/Draw/SPic.hs 223;" f heldItemSPic src/Dodge/Item/Draw/SPic.hs 223;" 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
@@ -4902,7 +4885,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 949;" f magAmmoParams src/Dodge/HeldUse.hs 957;" 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
@@ -4917,7 +4900,7 @@ 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 1006;" f makeBullet src/Dodge/HeldUse.hs 1014;" f
makeButton src/Dodge/LevelGen/Switch.hs 16;" f makeButton src/Dodge/LevelGen/Switch.hs 16;" 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
@@ -4998,11 +4981,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 1205;" f mcShootAuto src/Dodge/HeldUse.hs 1213;" f
mcShootLaser src/Dodge/HeldUse.hs 1198;" f mcShootLaser src/Dodge/HeldUse.hs 1206;" 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 1113;" f mcUseHeld src/Dodge/HeldUse.hs 1121;" 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
@@ -5730,7 +5713,7 @@ setOldPos src/Dodge/Update.hs 475;" f
setOutLinks src/Dodge/RoomLink.hs 48;" f setOutLinks src/Dodge/RoomLink.hs 48;" f
setOutLinksByType src/Dodge/RoomLink.hs 57;" f setOutLinksByType src/Dodge/RoomLink.hs 57;" f
setOutLinksPD src/Dodge/RoomLink.hs 77;" f setOutLinksPD src/Dodge/RoomLink.hs 77;" f
setRBCreatureTargeting src/Dodge/Creature/State.hs 384;" f setRBCreatureTargeting src/Dodge/Creature/State.hs 385;" f
setSelWhileDragging src/Dodge/Update/Input/InGame.hs 334;" f setSelWhileDragging src/Dodge/Update/Input/InGame.hs 334;" f
setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 87;" f setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 87;" f
setShaderSource src/Shader/Compile.hs 290;" f setShaderSource src/Shader/Compile.hs 290;" f
@@ -5798,14 +5781,14 @@ shiftRoomShiftBy src/Dodge/Room/Link.hs 81;" f
shiftRoomShiftToLink src/Dodge/Room/Link.hs 70;" f 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 293;" f shineTargetLaser src/Dodge/Creature/State.hs 293;" f
shineTorch src/Dodge/Creature/State.hs 332;" f shineTorch src/Dodge/Creature/State.hs 333;" f
shootBullet src/Dodge/HeldUse.hs 991;" f shootBullet src/Dodge/HeldUse.hs 999;" f
shootBullets src/Dodge/HeldUse.hs 981;" f shootBullets src/Dodge/HeldUse.hs 989;" f
shootFirstMiss src/Dodge/Creature/Volition.hs 33;" f shootFirstMiss src/Dodge/Creature/Volition.hs 33;" f
shootLaser src/Dodge/HeldUse.hs 895;" f shootLaser src/Dodge/HeldUse.hs 895;" 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 1224;" f shootTeslaArc src/Dodge/HeldUse.hs 1232;" f
shootTillEmpty src/Dodge/Creature/Volition.hs 18;" f shootTillEmpty src/Dodge/Creature/Volition.hs 18;" f
shootTractorBeam src/Dodge/HeldUse.hs 842;" f shootTractorBeam src/Dodge/HeldUse.hs 842;" f
shootersRoom src/Dodge/Room/Room.hs 315;" f shootersRoom src/Dodge/Room/Room.hs 315;" f
@@ -6264,7 +6247,7 @@ updateInGameCamera src/Dodge/Update/Camera.hs 78;" f
updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 400;" f updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 400;" f
updateInt2Map src/Dodge/Zoning/Base.hs 92;" f updateInt2Map src/Dodge/Zoning/Base.hs 92;" f
updateInventoryPositioning src/Dodge/DisplayInventory.hs 86;" f updateInventoryPositioning src/Dodge/DisplayInventory.hs 86;" f
updateItemTargeting src/Dodge/Creature/State.hs 353;" f updateItemTargeting src/Dodge/Creature/State.hs 354;" f
updateKeyInGame src/Dodge/Update/Input/InGame.hs 394;" f updateKeyInGame src/Dodge/Update/Input/InGame.hs 394;" f
updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 382;" f updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 382;" f
updateLampoid src/Dodge/Lampoid.hs 12;" f updateLampoid src/Dodge/Lampoid.hs 12;" f
@@ -6347,9 +6330,9 @@ upperRounded src/Shape.hs 185;" f
useBulletPayload src/Dodge/Bullet.hs 113;" f 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
useGasParams src/Dodge/HeldUse.hs 1118;" f useGasParams src/Dodge/HeldUse.hs 1126;" f
useHotkey src/Dodge/Creature/YourControl.hs 70;" f useHotkey src/Dodge/Creature/YourControl.hs 70;" f
useInventoryPath src/Dodge/HeldUse.hs 1405;" f useInventoryPath src/Dodge/HeldUse.hs 1423;" f
useItem src/Dodge/Creature/Impulse/UseItem.hs 18;" f useItem src/Dodge/Creature/Impulse/UseItem.hs 18;" f
useItemLoc src/Dodge/Creature/Impulse/UseItem.hs 24;" f useItemLoc src/Dodge/Creature/Impulse/UseItem.hs 24;" f
useLnkRoomPos src/Dodge/PlacementSpot.hs 244;" f useLnkRoomPos src/Dodge/PlacementSpot.hs 244;" f
@@ -6357,14 +6340,14 @@ useLoadedAmmo src/Dodge/HeldUse.hs 761;" f
useMagShield src/Dodge/Euse.hs 27;" f useMagShield src/Dodge/Euse.hs 27;" 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 1365;" f useRewindGun src/Dodge/HeldUse.hs 1383;" 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 1346;" f useStopWatch src/Dodge/HeldUse.hs 1364;" f
useStopWatch src/Dodge/Luse.hs 21;" f useStopWatch src/Dodge/Luse.hs 21;" f
useTimeCheck src/Dodge/Item/Weapon/TriggerType.hs 127;" f useTimeCheck src/Dodge/Item/Weapon/TriggerType.hs 127;" f
useTimeScrollGun src/Dodge/HeldUse.hs 1354;" f useTimeScrollGun src/Dodge/HeldUse.hs 1372;" 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
@@ -6408,7 +6391,7 @@ wallIsZeroLength src/Dodge/LevelGen/StaticWalls.hs 179;" f
wallLine src/Dodge/Placement/Instance/Wall.hs 71;" f wallLine src/Dodge/Placement/Instance/Wall.hs 71;" f
wallsFromRooms src/Dodge/Layout.hs 146;" f wallsFromRooms src/Dodge/Layout.hs 146;" f
wallsToDraw src/Dodge/Render/Walls.hs 17;" f wallsToDraw src/Dodge/Render/Walls.hs 17;" f
warmupSound src/Dodge/HeldUse.hs 1399;" f warmupSound src/Dodge/HeldUse.hs 1417;" f
warningRooms src/Dodge/Room/Warning.hs 28;" f warningRooms src/Dodge/Room/Warning.hs 28;" f
wasdAim src/Dodge/Creature/YourControl.hs 126;" f wasdAim src/Dodge/Creature/YourControl.hs 126;" f
wasdDir src/Dodge/WASD.hs 17;" f wasdDir src/Dodge/WASD.hs 17;" f