Continue removal of LDTs

This commit is contained in:
2025-07-11 00:24:38 +01:00
parent 8597f2bcc0
commit e5eff32ce3
2 changed files with 93 additions and 106 deletions
+60 -72
View File
@@ -129,7 +129,7 @@ heldEffectMuzzles :: LocationLDT ItemLink OItem -> Creature -> World -> World
heldEffectMuzzles loc cr w = heldEffectMuzzles loc cr w =
setusetime . doHeldUseEffect t cr setusetime . doHeldUseEffect t cr
. uncurry (applyCME loc cr) . uncurry (applyCME loc cr)
. foldl' (useLoadedAmmo loc cr) (False, w) . foldl' (useLoadedAmmo (locLDTToLocDT loc) cr) (False, w)
$ loadedmuzzles $ loadedmuzzles
where where
t = loc ^. locLDT t = loc ^. locLDT
@@ -759,52 +759,55 @@ isAmmoIntLink i (AmmoMagSF j _) = i == j
isAmmoIntLink _ _ = False isAmmoIntLink _ _ = False
useLoadedAmmo :: useLoadedAmmo ::
LocationLDT ItemLink OItem -> LocationDT OItem ->
Creature -> Creature ->
(Bool, World) -> (Bool, World) ->
Maybe (Muzzle, Int, LDTree ItemLink OItem) -> Maybe (Muzzle, Int, LDTree ItemLink OItem) ->
(Bool, World) (Bool, World)
useLoadedAmmo _ _ (cme, w) Nothing = (cme, w) useLoadedAmmo _ _ (cme, w) Nothing = (cme, w)
useLoadedAmmo loc cr (_, w) (Just (mz, x, magtree)) = (,) True $ useLoadedAmmo loc cr (_, w) (Just (mz, x, magtree)) = (,) True $
removeAmmoFromMag x mid cr . makeMuzzleFlare mz (locLDTToLocDT loc) cr $ case _mzEffect mz of removeAmmoFromMag x mid cr . makeMuzzleFlare mz loc cr $ case _mzEffect mz of
MuzzleShootBullet -> shootBullets loc cr (mz, x, magtree) w MuzzleShootBullet -> shootBullets loc cr (mz, x, (ldtToDT magtree)) w
MuzzleLaser -> creatureShootLaser (locLDTToLocDT loc) cr mz w MuzzleLaser -> creatureShootLaser loc cr mz w
MuzzleTesla -> shootTeslaArc loc cr mz w MuzzleTesla -> shootTeslaArc loc cr mz w
MuzzleTractor -> shootTractorBeam cr w MuzzleTractor -> shootTractorBeam cr w
MuzzleRLauncher -> createProjectileR loc magtree mz cr w MuzzleRLauncher -> createProjectileR loc magtree mz cr w
MuzzleGLauncher -> MuzzleGLauncher ->
createProjectile createProjectile
(itmtree ^. ldtValue . _3) (itmtree ^. dtValue . _3)
(Grenade (getGrenadeHitEffect $ itmtree)) (Grenade (getGrenadeHitEffect $ itmtree))
magtree magtree
(getPJStabiliser $ itmtree) (getPJStabiliser $ itmtree)
mz mz
cr cr
w w
MuzzleNozzle{} -> useGasParams mid mz loc cr $ walkNozzle mz (itm ^. _1) cr w MuzzleNozzle{} -> useGasParams mid mz loc cr $ walkNozzle mz itm cr w
MuzzleShatter -> shootShatter (itm ^. _1) cr w MuzzleShatter -> shootShatter itm cr w
MuzzleDetector -> MuzzleDetector ->
itemDetectorEffect itemDetectorEffect
(itm ^. _1) itm
(getAttachedSFLink MapperSF $ fmap (^. _1) itmtree) (getAttachedSFLink MapperSF itmtree)
(getAttachedSFLink ARHUDSF $ fmap (^. _1) itmtree) (getAttachedSFLink ARHUDSF itmtree)
cr cr
w w
MuzzleBlink -> unsafeBlinkAction cr w MuzzleBlink -> unsafeBlinkAction cr w
MuzzleUnsafeBlink -> blinkActionMousePos cr w MuzzleUnsafeBlink -> blinkActionMousePos cr w
MuzzleRewind -> useRewindGun (itm ^. _1 . itID) w MuzzleRewind -> useRewindGun (itm ^. itID) w
MuzzleStopper -> useStopWatch (itm ^. _1) cr w MuzzleStopper -> useStopWatch itm cr w
MuzzleScroller -> useTimeScrollGun (itm ^. _1) cr w MuzzleScroller -> useTimeScrollGun itm cr w
where where
itmtree = loc ^. locLDT itmtree = loc ^. locDT
mid = magtree ^? ldtValue . _1 . itLocation . ilInvID mid = magtree ^? ldtValue . _1 . itLocation . ilInvID
itm = itmtree ^. ldtValue itm = itmtree ^. dtValue . _1
getAttachedSFLink :: getAttachedSFLink ::
ItemStructuralFunction -> ItemStructuralFunction ->
LDTree ItemLink Item -> DTree OItem ->
Maybe (NewInt ItmInt) Maybe (NewInt ItmInt)
getAttachedSFLink sf = (^? ldtRight . folding (lookup (SFLink sf)) . ldtValue . itID) getAttachedSFLink sf = (^? dtRight . folding (find f) . dtValue . _1 . itID)
where
f :: DTree OItem -> Bool
f x = x ^. dtValue . _2 == sf
itemDetectorEffect :: itemDetectorEffect ::
Item -> Item ->
@@ -925,33 +928,24 @@ removeAmmoFromMag x mid cr = fromMaybe id $ do
. _Just . _Just
-~ x -~ x
getBulletType :: LDTree ItemLink OItem -> Maybe Bullet getBulletType :: DTree OItem -> Maybe Bullet
getBulletType magtree = getBulletType magtree =
--magtree ^? ldtValue . itConsumables . magParams . ampBullet (magtree ^? dtValue . _1 . to magAmmoParams . _Just . ampBullet)
-- (magAmmoParams (magtree ^. ldtValue . _1) ^? _Just . ampBullet)
(magtree ^? ldtValue . _1 . to magAmmoParams . _Just . ampBullet)
-- <&> buTrajectory .~ btraj
<&> buPayload .~ bpayload <&> buPayload .~ bpayload
<&> buEffect .~ beffect <&> buEffect .~ beffect
where where
-- btraj = fromMaybe BasicBulletTrajectory $ do
-- targetingtree <- lookup WeaponTargetingLink (itmtree ^. ldtRight) -- left or right for these?
-- tp <- targetingtree ^? ldtValue . itTargeting . itTgPos . _Just
-- attree <- lookup AmmoTargetingLink (magtree ^. ldtLeft)
-- bt <- attree ^? ldtValue . itUse . ubMod . bmTrajectory
-- return $ getBulletTrajectory mz (itmtree ^. ldtValue) bt tp cr w
bpayload = fromMaybe (BulPlain 100) $ do bpayload = fromMaybe (BulPlain 100) $ do
attree <- find ispayload (magtree ^. ldtLeft) attree <- find ispayload (magtree ^. dtLeft)
attree ^? _2 . ldtValue . _1 . itUse . ubMod . bmPayload attree ^? dtValue . _1 . itUse . ubMod . bmPayload
ispayload :: (ItemLink,LDTree ItemLink OItem) -> Bool ispayload :: (DTree OItem) -> Bool
ispayload y = case y ^. _2 . ldtValue . _2 of ispayload y = case y ^. dtValue . _2 of
AmmoPayloadSF {} -> True AmmoPayloadSF {} -> True
_ -> False _ -> False
beffect = fromMaybe DestroyBullet $ do beffect = fromMaybe DestroyBullet $ do
attree <- find isammoeffect (magtree ^. ldtLeft) attree <- find isammoeffect (magtree ^. dtLeft)
attree ^? _2 . ldtValue . _1 . itUse . ubMod . bmEffect attree ^? dtValue . _1 . itUse . ubMod . bmEffect
isammoeffect :: (ItemLink,LDTree ItemLink OItem) -> Bool isammoeffect :: (DTree OItem) -> Bool
isammoeffect y = case y ^. _2 . ldtValue . _2 of isammoeffect y = case y ^. dtValue . _2 of
AmmoEffectSF {} -> True AmmoEffectSF {} -> True
_ -> False _ -> False
@@ -988,22 +982,22 @@ magAmmoParams itm = case itm ^. itType of
-- _ -> 0 -- _ -> 0
shootBullets :: shootBullets ::
LocationLDT ItemLink OItem -> LocationDT OItem ->
Creature -> Creature ->
(Muzzle, Int, LDTree ItemLink OItem) -> (Muzzle, Int, DTree OItem) ->
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 $ 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 -> LocationDT OItem -> Creature -> Muzzle -> World -> World
shootBullet bu loc cr mz w = makeBullet bu itm bulpos dir . (randGen .~ g) $ w shootBullet bu loc cr mz w = makeBullet bu itm bulpos dir . (randGen .~ g) $ w
where where
(V3 x y _, q) = (V3 x y _, q) =
locOrient (locLDTToLocDT loc) cr locOrient loc cr
`Q.comp` ((_mzPos mz + V2 0 offset) `v2z` 0, Q.axisAngle (V3 0 0 1) (_mzRot mz)) `Q.comp` ((_mzPos mz + V2 0 offset) `v2z` 0, Q.axisAngle (V3 0 0 1) (_mzRot mz))
itm = loc ^. locLDT . ldtValue . _1 itm = loc ^. locDT . dtValue . _1
bulpos = _crPos cr + rotateV (_crDir cr) (V2 x y) bulpos = _crPos cr + rotateV (_crDir cr) (V2 x y)
(a, g) = randomR (- inacc, inacc) $ _randGen w (a, g) = randomR (- inacc, inacc) $ _randGen w
dir = _crDir cr + Q.qToAng q + a dir = _crDir cr + Q.qToAng q + a
@@ -1124,19 +1118,13 @@ mcUseHeld hit = case hit of
LASER -> mcShootLaser LASER -> mcShootLaser
_ -> mcShootAuto _ -> mcShootAuto
useGasParams :: useGasParams :: Maybe Int -> Muzzle -> LocationDT OItem -> Creature -> World -> World
Maybe Int ->
Muzzle ->
LocationLDT ItemLink OItem ->
Creature ->
World ->
World
useGasParams mmagid mz loc cr w = useGasParams mmagid mz loc cr w =
w w
& createGas gastype pressure pos dir cr & createGas gastype pressure pos dir cr
& randGen .~ g' & randGen .~ g'
where where
itm = loc ^. locLDT . ldtValue . _1 itm = loc ^. locDT . dtValue . _1
(pressure, g) = doGenFloat (_nzPressure $ _mzEffect mz) (_randGen w) (pressure, g) = doGenFloat (_nzPressure $ _mzEffect mz) (_randGen w)
gastype = fromMaybe (error "cannot find gas ammo") $ do gastype = fromMaybe (error "cannot find gas ammo") $ do
magid <- mmagid magid <- mmagid
@@ -1144,7 +1132,7 @@ useGasParams mmagid mz loc cr w =
fueltype <- cr ^? crInv . ix magid >>= magAmmoParams >>= (^? ampCreateGas) fueltype <- cr ^? crInv . ix magid >>= magAmmoParams >>= (^? ampCreateGas)
gasType hit fueltype gasType hit fueltype
(V3 x y _, q) = (V3 x y _, q) =
locOrient (locLDTToLocDT loc) cr locOrient loc cr
`Q.comp` ((_mzPos mz + V2 0 offset) `v2z` 0, Q.axisAngle (V3 0 0 1) (_mzRot mz)) `Q.comp` ((_mzPos mz + V2 0 offset) `v2z` 0, Q.axisAngle (V3 0 0 1) (_mzRot mz))
-- (moff, mrot) = heldItemOrient2D itm cr (_mzPos mz) (_mzRot mz) -- (moff, mrot) = heldItemOrient2D itm cr (_mzPos mz) (_mzRot mz)
pos = _crPos cr + rotateV (_crDir cr) (V2 x y) pos = _crPos cr + rotateV (_crDir cr) (V2 x y)
@@ -1230,18 +1218,18 @@ mcShootAuto itm mc w
dir = mc ^?! mcType . _McTurret . tuDir dir = mc ^?! mcType . _McTurret . tuDir
-- | assumes that the item is held -- | assumes that the item is held
shootTeslaArc :: LocationLDT ItemLink OItem -> Creature -> Muzzle -> World -> World shootTeslaArc :: LocationDT OItem -> Creature -> Muzzle -> World -> World
shootTeslaArc loc cr mz w = shootTeslaArc loc cr mz w =
w' & cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix invid . itParams .~ ip w' & cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix invid . itParams .~ ip
& soundContinue (CrWeaponSound (_crID cr) 0) pos elecCrackleS (Just 2) & soundContinue (CrWeaponSound (_crID cr) 0) pos elecCrackleS (Just 2)
where where
-- use items item location instead -- use items item location instead
-- itRef = cr ^?! crManipulation . manObject . imRootSelectedItem -- unsafe!! TODO change -- itRef = cr ^?! crManipulation . manObject . imRootSelectedItem -- unsafe!! TODO change
itm = loc ^. locLDT . ldtValue . _1 itm = loc ^. locDT . dtValue . _1
invid = itm ^?! itLocation . ilInvID invid = itm ^?! itLocation . ilInvID
(w', ip) = makeTeslaArc (itm ^. itParams) pos dir w (w', ip) = makeTeslaArc (itm ^. itParams) pos dir w
(V3 x y _, q) = (V3 x y _, q) =
locOrient (locLDTToLocDT loc) cr locOrient loc cr
`Q.comp` ((_mzPos mz + V2 0 offset) `v2z` 0, Q.axisAngle (V3 0 0 1) (_mzRot mz)) `Q.comp` ((_mzPos mz + V2 0 offset) `v2z` 0, Q.axisAngle (V3 0 0 1) (_mzRot mz))
pos = _crPos cr + rotateV (_crDir cr) (V2 x y) pos = _crPos cr + rotateV (_crDir cr) (V2 x y)
dir = _crDir cr + Q.qToAng q dir = _crDir cr + Q.qToAng q
@@ -1250,7 +1238,7 @@ shootTeslaArc loc cr mz w =
i -> fst . randomR (- i, i) $ _randGen w i -> fst . randomR (- i, i) $ _randGen w
determineProjectileTracking :: LDTree ItemLink OItem determineProjectileTracking :: LDTree ItemLink OItem
-> LDTree ItemLink OItem -> RocketHoming -> DTree OItem -> RocketHoming
determineProjectileTracking magtree itmtree = determineProjectileTracking magtree itmtree =
fromMaybe NoHoming $ fromMaybe NoHoming $
finddronecontrols <|> findexternaltracking finddronecontrols <|> findexternaltracking
@@ -1261,8 +1249,8 @@ determineProjectileTracking magtree itmtree =
return $ HomeUsingRemoteScreen (screen ^. _2 . ldtValue . _1 . itID) return $ HomeUsingRemoteScreen (screen ^. _2 . ldtValue . _1 . itID)
findexternaltracking = do findexternaltracking = do
_ <- find isammotargeting (magtree ^. ldtLeft) _ <- find isammotargeting (magtree ^. ldtLeft)
targetingtree <- find isweapontargeting (itmtree ^. ldtRight) targetingtree <- find isweapontargeting (itmtree ^. dtRight)
return $ HomeUsingTargeting (targetingtree ^. _2 . ldtValue . _1 . itID) return $ HomeUsingTargeting (targetingtree ^. dtValue . _1 . itID)
isremscreen :: (ItemLink,LDTree ItemLink OItem) -> Bool isremscreen :: (ItemLink,LDTree ItemLink OItem) -> Bool
isremscreen x = case x ^. _2 . ldtValue . _2 of isremscreen x = case x ^. _2 . ldtValue . _2 of
RemoteScreenSF {} -> True RemoteScreenSF {} -> True
@@ -1275,13 +1263,13 @@ determineProjectileTracking magtree itmtree =
isammotargeting x = case x ^. _2 . ldtValue . _2 of isammotargeting x = case x ^. _2 . ldtValue . _2 of
AmmoTargetingSF {} -> True AmmoTargetingSF {} -> True
_ -> False _ -> False
isweapontargeting :: (ItemLink,LDTree ItemLink OItem) -> Bool isweapontargeting :: (DTree OItem) -> Bool
isweapontargeting x = case x ^. _2 . ldtValue . _2 of isweapontargeting x = case x ^. dtValue . _2 of
WeaponTargetingSF {} -> True WeaponTargetingSF {} -> True
_ -> False _ -> False
createProjectileR :: createProjectileR ::
LocationLDT ItemLink OItem -> LocationDT OItem ->
LDTree ItemLink OItem -> LDTree ItemLink OItem ->
Muzzle -> Muzzle ->
Creature -> Creature ->
@@ -1289,7 +1277,7 @@ createProjectileR ::
World World
createProjectileR loc magtree = createProjectileR loc magtree =
createProjectile createProjectile
(loc ^. locLDT . ldtValue . _3) (loc ^. locDT . dtValue . _3)
( Rocket ( Rocket
(determineProjectileTracking ( magtree) $ itmtree) (determineProjectileTracking ( magtree) $ itmtree)
smoke smoke
@@ -1297,7 +1285,7 @@ createProjectileR loc magtree =
magtree magtree
(getPJStabiliser itmtree) (getPJStabiliser itmtree)
where where
itmtree = loc ^. locLDT itmtree = loc ^. locDT
smoke smoke
| isJust $ find issmokereducer (magtree ^. ldtLeft) = Just ReducedRocketSmoke | isJust $ find issmokereducer (magtree ^. ldtLeft) = Just ReducedRocketSmoke
| otherwise = Nothing | otherwise = Nothing
@@ -1306,28 +1294,28 @@ createProjectileR loc magtree =
SmokeReducerSF {} -> True SmokeReducerSF {} -> True
_ -> False _ -> False
getPJStabiliser :: LDTree ItemLink OItem -> Maybe PJStabiliser getPJStabiliser :: DTree OItem -> Maybe PJStabiliser
getPJStabiliser ldt = case find isprojstab (ldt ^. ldtRight) of getPJStabiliser ldt = case find isprojstab (ldt ^. dtRight) of
Just ldt' -> case ldt' ^? _2 . ldtValue . _1 . itType . ibtAttach of Just ldt' -> case ldt' ^? dtValue . _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 where
isprojstab :: (ItemLink,LDTree ItemLink OItem) -> Bool isprojstab :: (DTree OItem) -> Bool
isprojstab y = case y ^. _2 . ldtValue . _2 of isprojstab y = case y ^.dtValue . _2 of
ProjectileStabiliserSF {} -> True ProjectileStabiliserSF {} -> True
_ -> False _ -> False
getGrenadeHitEffect :: LDTree ItemLink OItem -> GrenadeHitEffect getGrenadeHitEffect :: DTree OItem -> GrenadeHitEffect
getGrenadeHitEffect t = case find isghiteff (t ^. ldtRight) of getGrenadeHitEffect t = case find isghiteff (t ^. dtRight) of
Just ldt' -> case ldt' ^? _2 . ldtValue . _1 . itType of Just ldt' -> case ldt' ^? dtValue . _1 . itType of
Just STICKYMOD -> GStick Just STICKYMOD -> GStick
_ -> GBounce 2 _ -> GBounce 2
_ -> GBounce 2 _ -> GBounce 2
where where
isghiteff :: (ItemLink,LDTree ItemLink OItem) -> Bool isghiteff :: (DTree OItem) -> Bool
isghiteff y = case y ^. _2 . ldtValue . _2 of isghiteff y = case y ^. dtValue . _2 of
GrenadeHitEffectSF {} -> True GrenadeHitEffectSF {} -> True
_ -> False _ -> False
+31 -32
View File
@@ -2009,7 +2009,6 @@ TreeHelp src/TreeHelp.hs 12;" m
Triangulate src/Geometry/Triangulate.hs 3;" m Triangulate src/Geometry/Triangulate.hs 3;" m
Trie src/SimpleTrie.hs 9;" t Trie src/SimpleTrie.hs 9;" t
TriggerDoor src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 1;" m TriggerDoor src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 1;" m
TriggerLink src/Dodge/Data/ComposedItem.hs 15;" C
TriggerSF src/Dodge/Data/ComposedItem.hs 47;" C TriggerSF src/Dodge/Data/ComposedItem.hs 47;" C
TriggerType src/Dodge/Data/TriggerType.hs 10;" t TriggerType src/Dodge/Data/TriggerType.hs 10;" t
TriggerType src/Dodge/Data/TriggerType.hs 4;" m TriggerType src/Dodge/Data/TriggerType.hs 4;" m
@@ -3770,14 +3769,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 1312;" f createProjectile src/Dodge/HeldUse.hs 1322;" f
createProjectileR src/Dodge/HeldUse.hs 1275;" f createProjectileR src/Dodge/HeldUse.hs 1271;" 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
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 865;" f creatureShootLaser src/Dodge/HeldUse.hs 868;" 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
@@ -3966,7 +3965,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 1251;" f determineProjectileTracking src/Dodge/HeldUse.hs 1240;" 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
@@ -4031,7 +4030,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 1202;" f doGenFloat src/Dodge/HeldUse.hs 1191;" 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
@@ -4225,7 +4224,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 1392;" f dropInventoryPath src/Dodge/HeldUse.hs 1415;" 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
@@ -4417,7 +4416,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 1158;" f gasType src/Dodge/HeldUse.hs 1147;" 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
@@ -4436,7 +4435,7 @@ getAttachedSFLink src/Dodge/HeldUse.hs 803;" 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 928;" f getBulletType src/Dodge/HeldUse.hs 931;" 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
@@ -4444,7 +4443,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 1305;" f getGrenadeHitEffect src/Dodge/HeldUse.hs 1310;" 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
@@ -4554,9 +4553,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 1033;" f heldItemMuzVel src/Dodge/HeldUse.hs 1028;" f
heldItemMuzzles src/Dodge/HeldUse.hs 157;" f heldItemMuzzles src/Dodge/HeldUse.hs 157;" f
heldItemRifling src/Dodge/HeldUse.hs 1077;" f heldItemRifling src/Dodge/HeldUse.hs 1072;" 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
@@ -4714,7 +4713,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 809;" f itemDetectorEffect src/Dodge/HeldUse.hs 812;" f
itemDisplay src/Dodge/Inventory/SelectionList.hs 49;" f itemDisplay src/Dodge/Inventory/SelectionList.hs 49;" f
itemEquipPict src/Dodge/Item/Draw.hs 19;" f itemEquipPict src/Dodge/Item/Draw.hs 19;" f
itemExternalValue src/Dodge/Inventory/SelectionList.hs 84;" f itemExternalValue src/Dodge/Inventory/SelectionList.hs 84;" f
@@ -4885,7 +4884,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 957;" f magAmmoParams src/Dodge/HeldUse.hs 952;" 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
@@ -4900,7 +4899,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 1014;" f makeBullet src/Dodge/HeldUse.hs 1009;" 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
@@ -4981,11 +4980,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 1213;" f mcShootAuto src/Dodge/HeldUse.hs 1202;" f
mcShootLaser src/Dodge/HeldUse.hs 1206;" f mcShootLaser src/Dodge/HeldUse.hs 1195;" 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 1121;" f mcUseHeld src/Dodge/HeldUse.hs 1116;" 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
@@ -5501,7 +5500,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 916;" f removeAmmoFromMag src/Dodge/HeldUse.hs 919;" 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
@@ -5782,15 +5781,15 @@ 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 333;" f shineTorch src/Dodge/Creature/State.hs 333;" f
shootBullet src/Dodge/HeldUse.hs 999;" f shootBullet src/Dodge/HeldUse.hs 994;" f
shootBullets src/Dodge/HeldUse.hs 989;" f shootBullets src/Dodge/HeldUse.hs 984;" 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 898;" 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 1232;" f shootTeslaArc src/Dodge/HeldUse.hs 1221;" 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 845;" 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
@@ -6092,7 +6091,7 @@ torqueCr src/Dodge/WorldEffect.hs 66;" 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 854;" f tractorBeamAt src/Dodge/HeldUse.hs 857;" 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 435;" f tractorGunPic src/Dodge/Item/Draw/SPic.hs 435;" f
tractorPullPos src/Dodge/TractorBeam/Update.hs 33;" f tractorPullPos src/Dodge/TractorBeam/Update.hs 33;" f
@@ -6330,9 +6329,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 1126;" f useGasParams src/Dodge/HeldUse.hs 1121;" f
useHotkey src/Dodge/Creature/YourControl.hs 70;" f useHotkey src/Dodge/Creature/YourControl.hs 70;" f
useInventoryPath src/Dodge/HeldUse.hs 1423;" f useInventoryPath src/Dodge/HeldUse.hs 1446;" 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
@@ -6340,14 +6339,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 1383;" f useRewindGun src/Dodge/HeldUse.hs 1406;" 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 1364;" f useStopWatch src/Dodge/HeldUse.hs 1387;" 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 1372;" f useTimeScrollGun src/Dodge/HeldUse.hs 1395;" 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
@@ -6383,7 +6382,7 @@ 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 345;" f volleyGunShape src/Dodge/Item/Draw/SPic.hs 345;" f
waistSP src/Dodge/Creature/HandPos.hs 173;" f waistSP src/Dodge/Creature/HandPos.hs 173;" f
walkNozzle src/Dodge/HeldUse.hs 824;" f walkNozzle src/Dodge/HeldUse.hs 827;" 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
@@ -6391,7 +6390,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 1417;" f warmupSound src/Dodge/HeldUse.hs 1440;" 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