From e5eff32ce315c91cfae592f5dd7e86bb9906c51e Mon Sep 17 00:00:00 2001 From: justin Date: Fri, 11 Jul 2025 00:24:38 +0100 Subject: [PATCH] Continue removal of LDTs --- src/Dodge/HeldUse.hs | 136 ++++++++++++++++++++----------------------- tags | 63 ++++++++++---------- 2 files changed, 93 insertions(+), 106 deletions(-) diff --git a/src/Dodge/HeldUse.hs b/src/Dodge/HeldUse.hs index cc7d84830..47ba6efed 100644 --- a/src/Dodge/HeldUse.hs +++ b/src/Dodge/HeldUse.hs @@ -129,7 +129,7 @@ heldEffectMuzzles :: LocationLDT ItemLink OItem -> Creature -> World -> World heldEffectMuzzles loc cr w = setusetime . doHeldUseEffect t cr . uncurry (applyCME loc cr) - . foldl' (useLoadedAmmo loc cr) (False, w) + . foldl' (useLoadedAmmo (locLDTToLocDT loc) cr) (False, w) $ loadedmuzzles where t = loc ^. locLDT @@ -759,52 +759,55 @@ isAmmoIntLink i (AmmoMagSF j _) = i == j isAmmoIntLink _ _ = False useLoadedAmmo :: - LocationLDT ItemLink OItem -> + LocationDT OItem -> Creature -> (Bool, World) -> Maybe (Muzzle, Int, LDTree ItemLink OItem) -> (Bool, World) useLoadedAmmo _ _ (cme, w) Nothing = (cme, w) useLoadedAmmo loc cr (_, w) (Just (mz, x, magtree)) = (,) True $ - removeAmmoFromMag x mid cr . makeMuzzleFlare mz (locLDTToLocDT loc) cr $ case _mzEffect mz of - MuzzleShootBullet -> shootBullets loc cr (mz, x, magtree) w - MuzzleLaser -> creatureShootLaser (locLDTToLocDT loc) cr mz w + removeAmmoFromMag x mid cr . makeMuzzleFlare mz loc cr $ case _mzEffect mz of + MuzzleShootBullet -> shootBullets loc cr (mz, x, (ldtToDT magtree)) w + MuzzleLaser -> creatureShootLaser loc cr mz w MuzzleTesla -> shootTeslaArc loc cr mz w MuzzleTractor -> shootTractorBeam cr w MuzzleRLauncher -> createProjectileR loc magtree mz cr w MuzzleGLauncher -> createProjectile - (itmtree ^. ldtValue . _3) + (itmtree ^. dtValue . _3) (Grenade (getGrenadeHitEffect $ itmtree)) magtree (getPJStabiliser $ itmtree) mz cr w - MuzzleNozzle{} -> useGasParams mid mz loc cr $ walkNozzle mz (itm ^. _1) cr w - MuzzleShatter -> shootShatter (itm ^. _1) cr w + MuzzleNozzle{} -> useGasParams mid mz loc cr $ walkNozzle mz itm cr w + MuzzleShatter -> shootShatter itm cr w MuzzleDetector -> itemDetectorEffect - (itm ^. _1) - (getAttachedSFLink MapperSF $ fmap (^. _1) itmtree) - (getAttachedSFLink ARHUDSF $ fmap (^. _1) itmtree) + itm + (getAttachedSFLink MapperSF itmtree) + (getAttachedSFLink ARHUDSF itmtree) cr w MuzzleBlink -> unsafeBlinkAction cr w MuzzleUnsafeBlink -> blinkActionMousePos cr w - MuzzleRewind -> useRewindGun (itm ^. _1 . itID) w - MuzzleStopper -> useStopWatch (itm ^. _1) cr w - MuzzleScroller -> useTimeScrollGun (itm ^. _1) cr w + MuzzleRewind -> useRewindGun (itm ^. itID) w + MuzzleStopper -> useStopWatch itm cr w + MuzzleScroller -> useTimeScrollGun itm cr w where - itmtree = loc ^. locLDT + itmtree = loc ^. locDT mid = magtree ^? ldtValue . _1 . itLocation . ilInvID - itm = itmtree ^. ldtValue + itm = itmtree ^. dtValue . _1 getAttachedSFLink :: ItemStructuralFunction -> - LDTree ItemLink Item -> + DTree OItem -> 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 :: Item -> @@ -925,33 +928,24 @@ removeAmmoFromMag x mid cr = fromMaybe id $ do . _Just -~ x -getBulletType :: LDTree ItemLink OItem -> Maybe Bullet +getBulletType :: DTree OItem -> Maybe Bullet getBulletType magtree = - --magtree ^? ldtValue . itConsumables . magParams . ampBullet --- (magAmmoParams (magtree ^. ldtValue . _1) ^? _Just . ampBullet) - (magtree ^? ldtValue . _1 . to magAmmoParams . _Just . ampBullet) - -- <&> buTrajectory .~ btraj + (magtree ^? dtValue . _1 . to magAmmoParams . _Just . ampBullet) <&> buPayload .~ bpayload <&> buEffect .~ beffect 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 - 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 + attree <- find ispayload (magtree ^. dtLeft) + attree ^? dtValue . _1 . itUse . ubMod . bmPayload + ispayload :: (DTree OItem) -> Bool + ispayload y = case y ^. dtValue . _2 of AmmoPayloadSF {} -> True _ -> False beffect = fromMaybe DestroyBullet $ do - 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 + attree <- find isammoeffect (magtree ^. dtLeft) + attree ^? dtValue . _1 . itUse . ubMod . bmEffect + isammoeffect :: (DTree OItem) -> Bool + isammoeffect y = case y ^. dtValue . _2 of AmmoEffectSF {} -> True _ -> False @@ -988,22 +982,22 @@ magAmmoParams itm = case itm ^. itType of -- _ -> 0 shootBullets :: - LocationLDT ItemLink OItem -> + LocationDT OItem -> Creature -> - (Muzzle, Int, LDTree ItemLink OItem) -> + (Muzzle, Int, DTree OItem) -> World -> World shootBullets loc cr (mz, x, magtree) w = fromMaybe w $ do thebullet <- getBulletType $ magtree 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 where (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)) - itm = loc ^. locLDT . ldtValue . _1 + itm = loc ^. locDT . dtValue . _1 bulpos = _crPos cr + rotateV (_crDir cr) (V2 x y) (a, g) = randomR (- inacc, inacc) $ _randGen w dir = _crDir cr + Q.qToAng q + a @@ -1124,19 +1118,13 @@ mcUseHeld hit = case hit of LASER -> mcShootLaser _ -> mcShootAuto -useGasParams :: - Maybe Int -> - Muzzle -> - LocationLDT ItemLink OItem -> - Creature -> - World -> - World +useGasParams :: Maybe Int -> Muzzle -> LocationDT OItem -> Creature -> World -> World useGasParams mmagid mz loc cr w = w & createGas gastype pressure pos dir cr & randGen .~ g' where - itm = loc ^. locLDT . ldtValue . _1 + itm = loc ^. locDT . dtValue . _1 (pressure, g) = doGenFloat (_nzPressure $ _mzEffect mz) (_randGen w) gastype = fromMaybe (error "cannot find gas ammo") $ do magid <- mmagid @@ -1144,7 +1132,7 @@ useGasParams mmagid mz loc cr w = fueltype <- cr ^? crInv . ix magid >>= magAmmoParams >>= (^? ampCreateGas) gasType hit fueltype (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)) -- (moff, mrot) = heldItemOrient2D itm cr (_mzPos mz) (_mzRot mz) pos = _crPos cr + rotateV (_crDir cr) (V2 x y) @@ -1230,18 +1218,18 @@ mcShootAuto itm mc w dir = mc ^?! mcType . _McTurret . tuDir -- | 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 = w' & cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix invid . itParams .~ ip & soundContinue (CrWeaponSound (_crID cr) 0) pos elecCrackleS (Just 2) where -- use items item location instead -- itRef = cr ^?! crManipulation . manObject . imRootSelectedItem -- unsafe!! TODO change - itm = loc ^. locLDT . ldtValue . _1 + itm = loc ^. locDT . dtValue . _1 invid = itm ^?! itLocation . ilInvID (w', ip) = makeTeslaArc (itm ^. itParams) pos dir w (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)) pos = _crPos cr + rotateV (_crDir cr) (V2 x y) dir = _crDir cr + Q.qToAng q @@ -1250,7 +1238,7 @@ shootTeslaArc loc cr mz w = i -> fst . randomR (- i, i) $ _randGen w determineProjectileTracking :: LDTree ItemLink OItem - -> LDTree ItemLink OItem -> RocketHoming + -> DTree OItem -> RocketHoming determineProjectileTracking magtree itmtree = fromMaybe NoHoming $ finddronecontrols <|> findexternaltracking @@ -1261,8 +1249,8 @@ determineProjectileTracking magtree itmtree = return $ HomeUsingRemoteScreen (screen ^. _2 . ldtValue . _1 . itID) findexternaltracking = do _ <- find isammotargeting (magtree ^. ldtLeft) - targetingtree <- find isweapontargeting (itmtree ^. ldtRight) - return $ HomeUsingTargeting (targetingtree ^. _2 . ldtValue . _1 . itID) + targetingtree <- find isweapontargeting (itmtree ^. dtRight) + return $ HomeUsingTargeting (targetingtree ^. dtValue . _1 . itID) isremscreen :: (ItemLink,LDTree ItemLink OItem) -> Bool isremscreen x = case x ^. _2 . ldtValue . _2 of RemoteScreenSF {} -> True @@ -1275,13 +1263,13 @@ determineProjectileTracking magtree itmtree = 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 + isweapontargeting :: (DTree OItem) -> Bool + isweapontargeting x = case x ^. dtValue . _2 of WeaponTargetingSF {} -> True _ -> False createProjectileR :: - LocationLDT ItemLink OItem -> + LocationDT OItem -> LDTree ItemLink OItem -> Muzzle -> Creature -> @@ -1289,15 +1277,15 @@ createProjectileR :: World createProjectileR loc magtree = createProjectile - (loc ^. locLDT . ldtValue . _3) + (loc ^. locDT . dtValue . _3) ( Rocket - (determineProjectileTracking ( magtree) $ itmtree) + (determineProjectileTracking ( magtree) $ itmtree) smoke ) magtree - (getPJStabiliser itmtree) + (getPJStabiliser itmtree) where - itmtree = loc ^. locLDT + itmtree = loc ^. locDT smoke | isJust $ find issmokereducer (magtree ^. ldtLeft) = Just ReducedRocketSmoke | otherwise = Nothing @@ -1306,28 +1294,28 @@ createProjectileR loc magtree = SmokeReducerSF {} -> True _ -> False -getPJStabiliser :: LDTree ItemLink OItem -> Maybe PJStabiliser -getPJStabiliser ldt = case find isprojstab (ldt ^. ldtRight) of - Just ldt' -> case ldt' ^? _2 . ldtValue . _1 . itType . ibtAttach of +getPJStabiliser :: DTree OItem -> Maybe PJStabiliser +getPJStabiliser ldt = case find isprojstab (ldt ^. dtRight) of + Just ldt' -> case ldt' ^? dtValue . _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 + isprojstab :: (DTree OItem) -> Bool + isprojstab y = case y ^.dtValue . _2 of ProjectileStabiliserSF {} -> True _ -> False -getGrenadeHitEffect :: LDTree ItemLink OItem -> GrenadeHitEffect -getGrenadeHitEffect t = case find isghiteff (t ^. ldtRight) of - Just ldt' -> case ldt' ^? _2 . ldtValue . _1 . itType of +getGrenadeHitEffect :: DTree OItem -> GrenadeHitEffect +getGrenadeHitEffect t = case find isghiteff (t ^. dtRight) of + Just ldt' -> case ldt' ^? dtValue . _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 + isghiteff :: (DTree OItem) -> Bool + isghiteff y = case y ^. dtValue . _2 of GrenadeHitEffectSF {} -> True _ -> False diff --git a/tags b/tags index 7a7c753cb..547c5c914 100644 --- a/tags +++ b/tags @@ -2009,7 +2009,6 @@ TreeHelp src/TreeHelp.hs 12;" m Triangulate src/Geometry/Triangulate.hs 3;" m Trie src/SimpleTrie.hs 9;" t 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 TriggerType src/Dodge/Data/TriggerType.hs 10;" t 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 createNewArc src/Dodge/Tesla/Arc.hs 90;" f createPathGrid src/Dodge/Room/Path.hs 21;" f -createProjectile src/Dodge/HeldUse.hs 1312;" f -createProjectileR src/Dodge/HeldUse.hs 1275;" f +createProjectile src/Dodge/HeldUse.hs 1322;" f +createProjectileR src/Dodge/HeldUse.hs 1271;" 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 createWall src/Dodge/Wall/Create.hs 8;" 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 creatureTurnToward src/Dodge/Creature/Impulse/Movement.hs 73;" 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 detectorEffect src/Dodge/Item/Weapon/Radar.hs 20;" 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 did src/Dodge/Item/InvSize.hs 54;" 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 46;" 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 doHeldUseEffect src/Dodge/HeldUse.hs 326;" 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 dropAll src/Dodge/Creature/State.hs 125;" 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 dropper src/Dodge/Item/Scope.hs 76;" 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 gameplayMenu src/Dodge/Menu.hs 134;" 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 generateGraphs src/Dodge/LevelGen.hs 39;" 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 getAvailableListLines src/Dodge/SelectionList.hs 10;" 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 getCommands src/Dodge/Terminal.hs 117;" 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 getDistortions src/Dodge/Render.hs 411;" 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 getItemValue src/Dodge/Inventory/SelectionList.hs 143;" 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 heldItemBulkiness src/Dodge/Creature/YourControl.hs 177;" 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 -heldItemRifling src/Dodge/HeldUse.hs 1077;" f +heldItemRifling src/Dodge/HeldUse.hs 1072;" 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 @@ -4714,7 +4713,7 @@ itemBlips src/Dodge/RadarSweep.hs 93;" f itemBulkiness src/Dodge/Creature/YourControl.hs 172;" f itemCombinations src/Dodge/Combine/Combinations.hs 56;" 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 itemEquipPict src/Dodge/Item/Draw.hs 19;" 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 machineUpdateDeathEff src/Dodge/Machine.hs 34;" 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 magShield src/Dodge/Item/Equipment.hs 27;" 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 makeBlockDebris src/Dodge/Block/Debris.hs 28;" 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 makeByteStringShaderUsingVAO src/Shader/Compile.hs 128;" 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 mcSensorTriggerUpdate src/Dodge/Machine/Update.hs 93;" f mcSensorUpdate src/Dodge/Machine/Update.hs 125;" f -mcShootAuto src/Dodge/HeldUse.hs 1213;" f -mcShootLaser src/Dodge/HeldUse.hs 1206;" f +mcShootAuto src/Dodge/HeldUse.hs 1202;" f +mcShootLaser src/Dodge/HeldUse.hs 1195;" f mcTriggerVal src/Dodge/Machine/Update.hs 99;" 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 medkit src/Dodge/Item/Consumable.hs 8;" 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 remoteScreen src/Dodge/Item/Scope.hs 139;" 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 removeInverseWalls src/Dodge/LevelGen/StaticWalls.hs 25;" 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 shineTargetLaser src/Dodge/Creature/State.hs 293;" f shineTorch src/Dodge/Creature/State.hs 333;" f -shootBullet src/Dodge/HeldUse.hs 999;" f -shootBullets src/Dodge/HeldUse.hs 989;" f +shootBullet src/Dodge/HeldUse.hs 994;" f +shootBullets src/Dodge/HeldUse.hs 984;" 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 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 -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 280;" 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 tractCr src/Dodge/TractorBeam/Update.hs 28;" 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 tractorGunPic src/Dodge/Item/Draw/SPic.hs 435;" 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 useC src/Dodge/Cuse.hs 8;" 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 -useInventoryPath src/Dodge/HeldUse.hs 1423;" f +useInventoryPath src/Dodge/HeldUse.hs 1446;" 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 @@ -6340,14 +6339,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 1383;" f +useRewindGun src/Dodge/HeldUse.hs 1406;" 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 1364;" f +useStopWatch src/Dodge/HeldUse.hs 1387;" f useStopWatch src/Dodge/Luse.hs 21;" 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 useUnusedLnk src/Dodge/PlacementSpot.hs 169;" 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 volleyGunShape src/Dodge/Item/Draw/SPic.hs 345;" 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 wallBlips src/Dodge/RadarSweep.hs 98;" 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 wallsFromRooms src/Dodge/Layout.hs 146;" 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 wasdAim src/Dodge/Creature/YourControl.hs 126;" f wasdDir src/Dodge/WASD.hs 17;" f