From ba352e7191925406a6b4f99ad52db05cc66506ba Mon Sep 17 00:00:00 2001 From: justin Date: Thu, 10 Jul 2025 23:57:27 +0100 Subject: [PATCH] Remove external duplicated ItemLinks --- src/Dodge/Data/ComposedItem.hs | 36 +++++------ src/Dodge/HeldUse.hs | 113 ++++++++++++++++++++++++--------- tags | 71 ++++++++------------- 3 files changed, 128 insertions(+), 92 deletions(-) diff --git a/src/Dodge/Data/ComposedItem.hs b/src/Dodge/Data/ComposedItem.hs index af9d74812..2d3317ba4 100644 --- a/src/Dodge/Data/ComposedItem.hs +++ b/src/Dodge/Data/ComposedItem.hs @@ -13,24 +13,24 @@ import qualified Linear.Quaternion as Q data ItemLink = TriggerLink - | AmmoInLink Int AmmoType - | AmmoModLink - | AmmoTargetingLink - | AmmoPayloadLink - | AmmoEffectLink - | WeaponScopeLink - | WeaponTargetingLink - | JoystickLink - | RemoteScreenLink - | RemoteDetonatorLink - | SmokeReducerLink --- | AugmentedHUDLink - | FunctionChangeLink - | MakeAutoLink - | ProjectileStabiliserLink - | UnderBarrelSlotLink - | UnderBarrelPlatformLink - | GrenadeHitEffectLink +-- | AmmoInLink Int AmmoType +-- | AmmoModLink +-- | AmmoTargetingLink +-- | AmmoPayloadLink +-- | AmmoEffectLink +-- | WeaponScopeLink +-- | WeaponTargetingLink +-- | JoystickLink +-- | RemoteScreenLink +-- | RemoteDetonatorLink +-- | SmokeReducerLink +---- | AugmentedHUDLink +-- | FunctionChangeLink +-- | MakeAutoLink +-- | ProjectileStabiliserLink +-- | UnderBarrelSlotLink +-- | UnderBarrelPlatformLink +-- | GrenadeHitEffectLink | SFLink {_sfLink :: ItemStructuralFunction} deriving (Eq, Ord, Show, Read) diff --git a/src/Dodge/HeldUse.hs b/src/Dodge/HeldUse.hs index f1a7bbeac..4be7eb4cc 100644 --- a/src/Dodge/HeldUse.hs +++ b/src/Dodge/HeldUse.hs @@ -775,9 +775,9 @@ useLoadedAmmo loc cr (_, w) (Just (mz, x, magtree)) = (,) True $ MuzzleGLauncher -> createProjectile (itmtree ^. ldtValue . _3) - (Grenade (getGrenadeHitEffect $ fmap (^. _1) itmtree)) + (Grenade (getGrenadeHitEffect $ itmtree)) magtree - (getPJStabiliser $ fmap (^. _1) itmtree) + (getPJStabiliser $ itmtree) mz cr w @@ -925,10 +925,11 @@ removeAmmoFromMag x mid cr = fromMaybe id $ do . _Just -~ x -getBulletType :: LDTree ItemLink Item -> Maybe Bullet +getBulletType :: LDTree ItemLink OItem -> Maybe Bullet getBulletType magtree = --magtree ^? ldtValue . itConsumables . magParams . ampBullet - (magtree ^? ldtValue >>= magAmmoParams >>= (^? ampBullet)) +-- (magAmmoParams (magtree ^. ldtValue . _1) ^? _Just . ampBullet) + (magtree ^? ldtValue . _1 . to magAmmoParams . _Just . ampBullet) -- <&> buTrajectory .~ btraj <&> buPayload .~ bpayload <&> buEffect .~ beffect @@ -940,11 +941,19 @@ getBulletType magtree = -- bt <- attree ^? ldtValue . itUse . ubMod . bmTrajectory -- return $ getBulletTrajectory mz (itmtree ^. ldtValue) bt tp cr w bpayload = fromMaybe (BulPlain 100) $ do - attree <- lookup AmmoPayloadLink (magtree ^. ldtLeft) - attree ^? ldtValue . itUse . ubMod . bmPayload + attree <- find ispayload (magtree ^. ldtLeft) + 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 - attree <- lookup AmmoEffectLink (magtree ^. ldtLeft) - attree ^? ldtValue . itUse . ubMod . bmEffect + attree <- find isammoeffect (magtree ^. ldtLeft) + 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 itm = case itm ^. itType of @@ -985,7 +994,7 @@ shootBullets :: World -> World 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)) shootBullet :: Bullet -> LocationLDT ItemLink OItem -> Creature -> Muzzle -> World -> World @@ -1240,19 +1249,36 @@ shootTeslaArc loc cr mz w = 0 -> 0 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 = fromMaybe NoHoming $ finddronecontrols <|> findexternaltracking where finddronecontrols = do - screen <- lookup RemoteScreenLink (magtree ^. ldtLeft) - _ <- lookup JoystickLink (screen ^. ldtLeft) - return $ HomeUsingRemoteScreen (screen ^. ldtValue . itID) + screen <- find isremscreen (magtree ^. ldtLeft) + _ <- find isjoystick (screen ^. _2 . ldtLeft) + return $ HomeUsingRemoteScreen (screen ^. _2 . ldtValue . _1 . itID) findexternaltracking = do - _ <- lookup AmmoTargetingLink (magtree ^. ldtLeft) - targetingtree <- lookup WeaponTargetingLink (itmtree ^. ldtRight) - return $ HomeUsingTargeting (targetingtree ^. ldtValue . itID) + _ <- find isammotargeting (magtree ^. ldtLeft) + targetingtree <- find isweapontargeting (itmtree ^. ldtRight) + 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 :: LocationLDT ItemLink OItem -> @@ -1265,31 +1291,45 @@ createProjectileR loc magtree = createProjectile (loc ^. locLDT . ldtValue . _3) ( Rocket - (determineProjectileTracking (fmap (^. _1) magtree) $ fmap (^. _1) itmtree) + (determineProjectileTracking ( magtree) $ itmtree) smoke ) magtree - (getPJStabiliser $ fmap (^. _1) itmtree) + (getPJStabiliser itmtree) where itmtree = loc ^. locLDT smoke - | isJust $ lookup SmokeReducerLink (magtree ^. ldtLeft) = Just ReducedRocketSmoke + | isJust $ find issmokereducer (magtree ^. ldtLeft) = Just ReducedRocketSmoke | 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 ldt = case lookup ProjectileStabiliserLink (ldt ^. ldtRight) of - Just ldt' -> case ldt' ^? ldtValue . itType . ibtAttach of +getPJStabiliser :: LDTree ItemLink OItem -> Maybe PJStabiliser +getPJStabiliser ldt = case find isprojstab (ldt ^. ldtRight) of + Just ldt' -> case ldt' ^? _2 . ldtValue . _1 . itType . ibtAttach of Just GIMBAL -> Just StabOrthReduce Just GYROSCOPE -> Just StabSpinIncrease _ -> 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 t = case lookup GrenadeHitEffectLink (t ^. ldtRight) of - Just ldt' -> case ldt' ^? ldtValue . itType of +getGrenadeHitEffect :: LDTree ItemLink OItem -> GrenadeHitEffect +getGrenadeHitEffect t = case find isghiteff (t ^. ldtRight) of + Just ldt' -> case ldt' ^? _2 . ldtValue . _1 . itType of Just STICKYMOD -> GStick _ -> GBounce 2 _ -> GBounce 2 + where + isghiteff :: (ItemLink,LDTree ItemLink OItem) -> Bool + isghiteff y = case y ^. _2 . ldtValue . _2 of + GrenadeHitEffectSF {} -> True + _ -> False createProjectile :: (Point3, Q.Quaternion Float) -> @@ -1304,19 +1344,32 @@ createProjectile x pjtype magtree stab muz cr = fromMaybe failsound $ do magid <- magtree ^? ldtValue . _1 . itLocation . ilInvID ammoitem <- cr ^? crInv . ix magid let rdetonate = - (^. ldtValue . _1 . itID) - <$> lookup RemoteDetonatorLink (magtree ^. ldtLeft) + (^. _2 . ldtValue . _1 . itID) + <$> find isrdet (magtree ^. ldtLeft) rscreen = - (^. ldtValue . _1 . itID) - <$> lookup RemoteScreenLink (magtree ^. ldtLeft) + (^. _2 . ldtValue . _1 . itID) + <$> find isrscreen (magtree ^. ldtLeft) aparams <- - ((magtree ^? ldtLeft) >>= lookup AmmoPayloadLink >>= (^? ldtValue . _1 . itType . ibtAttach . shellPayload)) + ((magtree ^? ldtLeft) >>= find isampay >>= (^? _2 . ldtValue . _1 . itType . ibtAttach . shellPayload)) -- <|> ammoitem ^? itConsumables . magParams . ampPayload <|> magAmmoParams ammoitem ^? _Just . ampPayload return $ createShell x rdetonate rscreen stab pjtype aparams muz cr . startthesound 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 startthesound = soundMultiFrom diff --git a/tags b/tags index 617ae8296..7a7c753cb 100644 --- a/tags +++ b/tags @@ -57,19 +57,14 @@ AlteRifleSwitch src/Dodge/Data/Item/Params.hs 20;" C Ambush src/Dodge/Data/ActionPlan.hs 178;" C Ammo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 3;" 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 -AmmoInLink src/Dodge/Data/ComposedItem.hs 16;" C AmmoMagSF src/Dodge/Data/ComposedItem.hs 49;" C 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 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 AmmoPerShot src/Dodge/Data/Muzzle.hs 52;" t AmmoSlots src/Dodge/Item/AmmoSlots.hs 3;" m -AmmoTargetingLink src/Dodge/Data/ComposedItem.hs 18;" C AmmoTargetingSF src/Dodge/Data/ComposedItem.hs 56;" C AmmoType src/Dodge/Data/AmmoType.hs 3;" m 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 FullSize src/Dodge/Data/Item/Params.hs 28;" 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 GBounce src/Dodge/Data/Projectile.hs 57;" C GEqC src/SameConstr.hs 20;" c @@ -785,7 +779,6 @@ GraphHelp src/GraphHelp.hs 1;" m GraphVizHelp src/GraphVizHelp.hs 2;" m Grenade src/Dodge/Data/Projectile.hs 42;" C GrenadeHitEffect src/Dodge/Data/Projectile.hs 56;" t -GrenadeHitEffectLink src/Dodge/Data/ComposedItem.hs 33;" C GrenadeHitEffectSF src/Dodge/Data/ComposedItem.hs 62;" C Grid src/Grid.hs 1;" m 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 JUMPLEGS src/Dodge/Data/Item/Combine.hs 130;" 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 Just' src/MaybeHelp.hs 13;" 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 Main appDodge/Main.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 MakeSound src/Dodge/Data/ActionPlan.hs 43;" 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/Projectile.hs 1;" m 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 ProjectileType src/Dodge/Data/Projectile.hs 41;" 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 Reload src/Dodge/Data/ActionPlan.hs 190;" C 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 RemoteDirectionPU src/Dodge/Data/Projectile.hs 38;" C -RemoteScreenLink src/Dodge/Data/ComposedItem.hs 24;" C RemoteScreenSF src/Dodge/Data/ComposedItem.hs 50;" C RemoveEquipment src/Dodge/Data/RightButtonOptions.hs 36;" 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 Small src/Shape/Data.hs 31;" 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 SmoothScroll src/Dodge/SmoothScroll.hs 1;" m 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 UNDERBARRELSLOT src/Dodge/Data/Item/Combine.hs 98;" 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 -UnderBarrelSlotLink src/Dodge/Data/ComposedItem.hs 31;" C UnderBarrelSlotSF src/Dodge/Data/ComposedItem.hs 40;" C UnderGround src/Dodge/Data/Scenario.hs 78;" 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 WdYouPos src/Dodge/Data/WorldEffect.hs 41;" C Weapon src/Dodge/Item/Weapon.hs 2;" m -WeaponScopeLink src/Dodge/Data/ComposedItem.hs 21;" 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 Weapons src/Dodge/Item/Held/Weapons.hs 1;" m 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 createNewArc src/Dodge/Tesla/Arc.hs 90;" f createPathGrid src/Dodge/Room/Path.hs 21;" f -createProjectile src/Dodge/HeldUse.hs 1294;" f -createProjectileR src/Dodge/HeldUse.hs 1257;" f +createProjectile src/Dodge/HeldUse.hs 1312;" f +createProjectileR src/Dodge/HeldUse.hs 1275;" f createShell src/Dodge/Projectile/Create.hs 22;" f createShieldWall src/Dodge/Item/BackgroundEffect.hs 39;" 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 detectorEffect src/Dodge/Item/Weapon/Radar.hs 20;" 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 did src/Dodge/Item/InvSize.hs 54;" 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 46;" 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 doHeldUseEffect src/Dodge/HeldUse.hs 326;" 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 dropAll src/Dodge/Creature/State.hs 125;" 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 dropper src/Dodge/Item/Scope.hs 76;" 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 gameplayMenu src/Dodge/Menu.hs 134;" 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 generateGraphs src/Dodge/LevelGen.hs 39;" 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 getDistortions src/Dodge/Render.hs 411;" 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 getItemValue src/Dodge/Inventory/SelectionList.hs 143;" 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 getMenuMouseContext src/Dodge/Update.hs 392;" 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 getPromptTM src/Dodge/Terminal/Type.hs 8;" 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 heldItemBulkiness src/Dodge/Creature/YourControl.hs 177;" 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 -heldItemRifling src/Dodge/HeldUse.hs 1069;" f +heldItemRifling src/Dodge/HeldUse.hs 1077;" f heldItemSPic src/Dodge/Item/Draw/SPic.hs 223;" f heldItemWeight src/Dodge/Creature/Statistics.hs 71;" 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 machineUpdateDeathEff src/Dodge/Machine.hs 34;" 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 magShield src/Dodge/Item/Equipment.hs 27;" 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 makeBlockDebris src/Dodge/Block/Debris.hs 28;" 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 makeByteStringShaderUsingVAO src/Shader/Compile.hs 128;" 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 mcSensorTriggerUpdate src/Dodge/Machine/Update.hs 93;" f mcSensorUpdate src/Dodge/Machine/Update.hs 125;" f -mcShootAuto src/Dodge/HeldUse.hs 1205;" f -mcShootLaser src/Dodge/HeldUse.hs 1198;" f +mcShootAuto src/Dodge/HeldUse.hs 1213;" f +mcShootLaser src/Dodge/HeldUse.hs 1206;" f mcTriggerVal src/Dodge/Machine/Update.hs 99;" 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 medkit src/Dodge/Item/Consumable.hs 8;" 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 setOutLinksByType src/Dodge/RoomLink.hs 57;" 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 setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 87;" 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 shiftedGrid src/Grid.hs 25;" f shineTargetLaser src/Dodge/Creature/State.hs 293;" f -shineTorch src/Dodge/Creature/State.hs 332;" f -shootBullet src/Dodge/HeldUse.hs 991;" f -shootBullets src/Dodge/HeldUse.hs 981;" f +shineTorch src/Dodge/Creature/State.hs 333;" f +shootBullet src/Dodge/HeldUse.hs 999;" f +shootBullets src/Dodge/HeldUse.hs 989;" f shootFirstMiss src/Dodge/Creature/Volition.hs 33;" f shootLaser src/Dodge/HeldUse.hs 895;" f shootOutPassage src/Dodge/Room/RezBox.hs 74;" 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 shootTractorBeam src/Dodge/HeldUse.hs 842;" 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 updateInt2Map src/Dodge/Zoning/Base.hs 92;" 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 updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 382;" 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 useC src/Dodge/Cuse.hs 8;" 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 -useInventoryPath src/Dodge/HeldUse.hs 1405;" f +useInventoryPath src/Dodge/HeldUse.hs 1423;" f useItem src/Dodge/Creature/Impulse/UseItem.hs 18;" f useItemLoc src/Dodge/Creature/Impulse/UseItem.hs 24;" 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 useNormalCamera src/Dodge/Camera.hs 6;" 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 useRoomPosCond src/Dodge/PlacementSpot.hs 178;" 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 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 useUnusedLnk src/Dodge/PlacementSpot.hs 169;" 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 wallsFromRooms src/Dodge/Layout.hs 146;" 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 wasdAim src/Dodge/Creature/YourControl.hs 126;" f wasdDir src/Dodge/WASD.hs 17;" f