From 6706ac494ae6176082b24c1fccf7f3eb07b9eb54 Mon Sep 17 00:00:00 2001 From: justin Date: Mon, 2 Jun 2025 11:13:19 +0100 Subject: [PATCH] Reduce positional effect on sounds --- src/Dodge/HeldUse.hs | 62 ++++---- src/Dodge/Item/Held/BatteryGuns.hs | 3 +- src/Dodge/SoundLogic.hs | 10 +- tags | 241 ++++++++++++++--------------- 4 files changed, 163 insertions(+), 153 deletions(-) diff --git a/src/Dodge/HeldUse.hs b/src/Dodge/HeldUse.hs index fb41744b6..64b0de14a 100644 --- a/src/Dodge/HeldUse.hs +++ b/src/Dodge/HeldUse.hs @@ -188,9 +188,10 @@ applyInvLock itm cr = case itm ^? itUse . heldParams . weaponInvLock of applySoundCME :: Item -> Creature -> World -> World applySoundCME itm cr = fromMaybe id $ do (soundid, x) <- itm ^? itUse . heldParams . bulGunSound . _Just - return $ if x > 0 - then soundContinue (CrWeaponSound cid 0) (_crPos cr) soundid (Just x) - else soundMultiFrom [CrWeaponSound cid j | j <- [0 .. 5]] (_crPos cr) soundid Nothing + return $ + if x > 0 + then soundContinue (CrWeaponSound cid 0) (_crPos cr) soundid (Just x) + else soundMultiFrom [CrWeaponSound cid j | j <- [0 .. 5]] (_crPos cr) soundid Nothing where cid = _crID cr @@ -406,7 +407,8 @@ walkNozzle mzid mz itm cr w = fromMaybe w $ do wa = min maxa $ max (negate maxa) (_nzCurrentWalkAngle nz + walkamount) shootTractorBeam :: Creature -> World -> World -shootTractorBeam cr w = w & cWorld . lWorld . tractorBeams .:~ tractorBeamAt spos outpos dir power +shootTractorBeam cr w = + w & cWorld . lWorld . tractorBeams .:~ tractorBeamAt spos outpos dir power & soundContinue (CrWeaponSound (_crID cr) 0) cpos tone440sawtoothquietS (Just 2) where cpos = _crPos cr @@ -433,19 +435,18 @@ creatureShootLaser :: Muzzle -> World -> World -creatureShootLaser itmtree cr mz w = w +creatureShootLaser itmtree cr mz w = + w & randGen .~ g - & shootLaser (CrWeaponSound (_crID cr) 0) (getLaserDamage itmtree) - (getLaserPhaseV itmtree) pos dir (getLaserColor itmtree) --- & cWorld . lWorld . lasers --- .:~ Laser --- { _lpType = getLaserDamage itmtree --- , _lpPhaseV = getLaserPhaseV itmtree --- , _lpPos = pos --- , _lpDir = dir --- , _lpColor = getLaserColor itmtree --- } + & shootLaser + (CrWeaponSound (_crID cr) 0) + (getLaserDamage itmtree) + (getLaserPhaseV itmtree) + pos + dir + (getLaserColor itmtree) where + itm = itmtree ^. ldtValue (moff, mrot) = heldItemOrient2D itm cr (_mzPos mz) (_mzRot mz) pos = _crPos cr + rotateV (_crDir cr) moff @@ -462,24 +463,27 @@ shootLaser :: Color -> World -> World -shootLaser so lt pv p dir col w = w & cWorld . lWorld . lasers .:~ Laser +shootLaser so lt pv p dir col w = + w + & cWorld . lWorld . lasers + .:~ Laser { _lpType = lt , _lpPhaseV = pv , _lpPos = p , _lpDir = dir , _lpColor = col } - & soundContinue so p tone440sawtoothquietS (Just 2) + & soundContinue so p tone440sawtoothquietS (Just 2) -lasRayAt :: Color -> Int -> Float -> Point2 -> Float -> Laser -lasRayAt col dam phasev pos dir = - Laser - { _lpType = DamageLaser dam - , _lpPhaseV = phasev - , _lpPos = pos - , _lpDir = dir - , _lpColor = col - } +--lasRayAt :: Color -> Int -> Float -> Point2 -> Float -> Laser +--lasRayAt col dam phasev pos dir = +-- Laser +-- { _lpType = DamageLaser dam +-- , _lpPhaseV = phasev +-- , _lpPos = pos +-- , _lpDir = dir +-- , _lpColor = col +-- } removeAmmoFromMag :: Int -> Maybe Int -> Creature -> World -> World removeAmmoFromMag x mid cr = fromMaybe id $ do @@ -643,12 +647,12 @@ doGenFloat (UniRandFloat x y) g = randomR (x, y) g -- & itUse . heldParams . rifling .~ rifl mcShootLaser :: Item -> Machine -> World -> World -mcShootLaser _ mc = cWorld . lWorld . lasers .:~ lasRayAt yellow dam phasev pos dir +mcShootLaser _ mc = + --cWorld . lWorld . lasers .:~ lasRayAt yellow dam phasev pos dir + shootLaser (MachineSound (_mcID mc)) (DamageLaser 11) 1 pos dir yellow where pos = _mcPos mc +.+ 20 *.* unitVectorAtAngle dir dir = mc ^?! mcType . _McTurret . tuDir - phasev = 1 - dam = 11 mcShootAuto :: Item -> Machine -> World -> World mcShootAuto itm mc w diff --git a/src/Dodge/Item/Held/BatteryGuns.hs b/src/Dodge/Item/Held/BatteryGuns.hs index 3df4d8b52..03d129852 100644 --- a/src/Dodge/Item/Held/BatteryGuns.hs +++ b/src/Dodge/Item/Held/BatteryGuns.hs @@ -8,7 +8,6 @@ module Dodge.Item.Held.BatteryGuns ( import Control.Lens import Dodge.Data.Item import Dodge.Default.Item -import Dodge.SoundLogic.ExternallyGeneratedSounds import Geometry.Data sparkGun :: Item @@ -69,7 +68,7 @@ laser = tractorGun :: Item tractorGun = defaultHeldItem - & itUse . heldParams .~ BeamShooterParams-- (Just (tone440sawtoothquietS, 2)) + & itUse . heldParams .~ BeamShooterParams & itAmmoSlots .~ singleAmmo ElectricalAmmo & itUse . heldTriggerType .~ AutoTrigger & itUse . heldAim . aimMuzzles . ix 0 . mzPos .~ V2 30 0 diff --git a/src/Dodge/SoundLogic.hs b/src/Dodge/SoundLogic.hs index 7610fb25e..0b2c14bb0 100644 --- a/src/Dodge/SoundLogic.hs +++ b/src/Dodge/SoundLogic.hs @@ -157,15 +157,23 @@ Within 10 units considers the sound to be directly in front. soundAngle :: Point2 -> World -> Int16 {-# INLINE soundAngle #-} soundAngle p w - | dist p earPos < 10 = 0 + | d < 10 = 0 | otherwise = round . radToDeg + . f . normalizeAngle . (+ pi) $ argV (vNormal (p -.- earPos)) - (w ^. wCam . camRot) where earPos = w ^. wCam . camViewFrom + d = dist p earPos + -- the following should soften the positional effect + -- when you are close to the sound source + f x | x < pi / 2 = x * dfact + | x < 3 * pi / 2 = pi + (dfact * (x - pi)) + | otherwise = 2*pi + (dfact * (x - 2*pi)) + dfact = min ((d - 10) / 100) 1 {- | Uses the first free origin from a list. Does nothing if all origins are already creating sounds. diff --git a/tags b/tags index 78c37f592..e94a8e4dd 100644 --- a/tags +++ b/tags @@ -46,9 +46,9 @@ Add src/Dodge/Inventory/Add.hs 1;" m AddGoal src/Dodge/Data/ActionPlan.hs 45;" C AesonHelp src/AesonHelp.hs 1;" m AimAt src/Dodge/Data/ActionPlan.hs 84;" C -AimParams src/Dodge/Data/Item/Use.hs 121;" t +AimParams src/Dodge/Data/Item/Use.hs 118;" t AimParams src/Dodge/Default/Item/Use/AimParams.hs 1;" m -AimStance src/Dodge/Data/Item/Use.hs 190;" t +AimStance src/Dodge/Data/Item/Use.hs 187;" t Aiming src/Dodge/Data/Creature/Stance.hs 39;" C AirFiltrationSS src/Dodge/Data/Scenario.hs 95;" C Airlock src/Dodge/Room/Airlock.hs 4;" m @@ -65,10 +65,10 @@ AmmoMagSF src/Dodge/Data/ComposedItem.hs 51;" C AmmoMagType src/Dodge/Data/Item/Combine.hs 104;" t AmmoModLink src/Dodge/Data/ComposedItem.hs 19;" C AmmoModifierSF src/Dodge/Data/ComposedItem.hs 57;" C -AmmoParams src/Dodge/Data/Item/Use.hs 114;" t +AmmoParams src/Dodge/Data/Item/Use.hs 111;" t AmmoPayloadLink src/Dodge/Data/ComposedItem.hs 21;" C AmmoPayloadSF src/Dodge/Data/ComposedItem.hs 59;" C -AmmoPerShot src/Dodge/Data/Item/Use.hs 164;" t +AmmoPerShot src/Dodge/Data/Item/Use.hs 161;" t AmmoTargetingLink src/Dodge/Data/ComposedItem.hs 20;" C AmmoTargetingSF src/Dodge/Data/ComposedItem.hs 58;" C AmmoType src/Dodge/Data/Item/Use/Consumption/Ammo.hs 24;" t @@ -147,7 +147,7 @@ Base src/Picture/Base.hs 4;" m BasicBeamDraw src/Dodge/Data/Beam.hs 34;" C BasicBulletTrajectory src/Dodge/Data/Bullet.hs 50;" C BasicBulletTrajectoryType src/Dodge/Data/Bullet.hs 57;" C -BasicFlare src/Dodge/Data/Item/Use.hs 134;" C +BasicFlare src/Dodge/Data/Item/Use.hs 131;" C BatteryGuns src/Dodge/Item/Held/BatteryGuns.hs 1;" m BatteryGuns src/Dodge/Item/Weapon/BatteryGuns.hs 1;" m Beam src/Dodge/Data/Beam.hs 18;" t @@ -229,9 +229,9 @@ BulletMod src/Dodge/Data/Item/BulletMod.hs 10;" t BulletMod src/Dodge/Data/Item/BulletMod.hs 3;" m BulletModEffect src/Dodge/Data/Item/BulletMod.hs 12;" C BulletModPayload src/Dodge/Data/Item/BulletMod.hs 11;" C -BulletParams src/Dodge/Data/Item/Use.hs 115;" C +BulletParams src/Dodge/Data/Item/Use.hs 112;" C BulletPayload src/Dodge/Data/Bullet.hs 41;" t -BulletShooterParams src/Dodge/Data/Item/Use.hs 99;" C +BulletShooterParams src/Dodge/Data/Item/Use.hs 96;" C BulletTrajectory src/Dodge/Data/Bullet.hs 49;" t BulletTrajectoryType src/Dodge/Data/Bullet.hs 56;" t Button src/Dodge/Data/Button.hs 48;" t @@ -686,7 +686,7 @@ FlameBeamCombine src/Dodge/Data/Beam.hs 39;" C FlameSound src/Dodge/Data/SoundOrigin.hs 27;" C Flamer src/Dodge/Data/SoundOrigin.hs 25;" C Flank src/Dodge/Data/ActionPlan.hs 177;" C -FlareType src/Dodge/Data/Item/Use.hs 132;" t +FlareType src/Dodge/Data/Item/Use.hs 129;" t FlashBall src/Dodge/Data/Bullet.hs 32;" C FlatFaces src/Shape/Data.hs 17;" C FlatShieldParams src/Dodge/Data/Item/Params.hs 15;" C @@ -756,7 +756,7 @@ GasAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 30;" C GasCloud src/Dodge/Data/Cloud.hs 31;" C GasCreate src/Dodge/Data/Item/Use/Consumption/Ammo.hs 41;" t GasFuel src/Dodge/Data/Item/Use/Consumption/Ammo.hs 38;" t -GasParams src/Dodge/Data/Item/Use.hs 117;" C +GasParams src/Dodge/Data/Item/Use.hs 114;" C GasSprayParams src/Dodge/Data/Item/Use.hs 83;" C GenCr src/Dodge/Data/Creature/State.hs 31;" C GenFloat src/Dodge/Data/GenFloat.hs 11;" t @@ -825,7 +825,7 @@ HammerUp src/Dodge/Data/Hammer.hs 20;" C HandPos src/Dodge/Creature/HandPos.hs 1;" m HardQuit src/Dodge/Data/Universe.hs 68;" C HasHammer src/Dodge/Data/Hammer.hs 14;" C -HeavySmokeFlare src/Dodge/Data/Item/Use.hs 137;" C +HeavySmokeFlare src/Dodge/Data/Item/Use.hs 134;" C Held src/Dodge/Item/Held.hs 1;" m HeldDelay src/Dodge/Data/Item/HeldDelay.hs 6;" m HeldItemType src/Dodge/Data/Item/Combine.hs 137;" t @@ -945,7 +945,7 @@ ItEffect src/Dodge/ItEffect.hs 3;" m ItID src/Dodge/Data/Item.hs 29;" t ItInvEffect src/Dodge/Data/Item/Effect.hs 23;" t ItTargeting src/Dodge/Data/Item.hs 61;" C -ItZoom src/Dodge/Data/Item/Use.hs 197;" t +ItZoom src/Dodge/Data/Item/Use.hs 194;" t Item src/Dodge/Data/Item.hs 41;" t Item src/Dodge/Data/Item.hs 4;" m Item src/Dodge/Default/Item.hs 1;" m @@ -1015,7 +1015,7 @@ Lampoid src/Dodge/Data/Creature/Misc.hs 83;" C Lampoid src/Dodge/Lampoid.hs 1;" m Large src/Shape/Data.hs 29;" C LasBeamCombine src/Dodge/Data/Beam.hs 40;" C -LasGunFlare src/Dodge/Data/Item/Use.hs 138;" C +LasGunFlare src/Dodge/Data/Item/Use.hs 135;" C LasSound src/Dodge/Data/SoundOrigin.hs 28;" C LasTurret src/Dodge/Room/LasTurret.hs 1;" m Laser src/Dodge/Data/Laser.hs 21;" t @@ -1186,7 +1186,7 @@ Metapysics src/Dodge/Data/Scenario.hs 17;" t Military src/Dodge/Data/Scenario.hs 45;" C Mine src/Dodge/Data/Scenario.hs 64;" C MiniGunAI src/Dodge/Data/Creature/Misc.hs 58;" C -MiniGunFlare src/Dodge/Data/Item/Use.hs 136;" C +MiniGunFlare src/Dodge/Data/Item/Use.hs 133;" C Misc src/Dodge/Data/Creature/Misc.hs 6;" m Misc src/Dodge/Data/Equipment/Misc.hs 6;" m Misc src/Dodge/Data/Item/Misc.hs 6;" m @@ -1220,23 +1220,23 @@ Multiset src/Multiset.hs 4;" m Music src/Music.hs 1;" m MusicData src/Music.hs 7;" t Mute src/Dodge/Data/Creature/Misc.hs 28;" C -Muzzle src/Dodge/Data/Item/Use.hs 169;" t -MuzzleBlink src/Dodge/Data/Item/Use.hs 157;" C -MuzzleDetector src/Dodge/Data/Item/Use.hs 156;" C -MuzzleEffect src/Dodge/Data/Item/Use.hs 142;" t +Muzzle src/Dodge/Data/Item/Use.hs 166;" t +MuzzleBlink src/Dodge/Data/Item/Use.hs 154;" C +MuzzleDetector src/Dodge/Data/Item/Use.hs 153;" C +MuzzleEffect src/Dodge/Data/Item/Use.hs 139;" t MuzzleEffect src/Dodge/Data/MuzzleEffect.hs 5;" m -MuzzleGLauncher src/Dodge/Data/Item/Use.hs 148;" C -MuzzleLaser src/Dodge/Data/Item/Use.hs 144;" C -MuzzleNozzle src/Dodge/Data/Item/Use.hs 149;" C -MuzzleRLauncher src/Dodge/Data/Item/Use.hs 147;" C -MuzzleRewind src/Dodge/Data/Item/Use.hs 159;" C -MuzzleScroller src/Dodge/Data/Item/Use.hs 161;" C -MuzzleShatter src/Dodge/Data/Item/Use.hs 155;" C -MuzzleShootBullet src/Dodge/Data/Item/Use.hs 143;" C -MuzzleStopper src/Dodge/Data/Item/Use.hs 160;" C -MuzzleTesla src/Dodge/Data/Item/Use.hs 145;" C -MuzzleTractor src/Dodge/Data/Item/Use.hs 146;" C -MuzzleUnsafeBlink src/Dodge/Data/Item/Use.hs 158;" C +MuzzleGLauncher src/Dodge/Data/Item/Use.hs 145;" C +MuzzleLaser src/Dodge/Data/Item/Use.hs 141;" C +MuzzleNozzle src/Dodge/Data/Item/Use.hs 146;" C +MuzzleRLauncher src/Dodge/Data/Item/Use.hs 144;" C +MuzzleRewind src/Dodge/Data/Item/Use.hs 156;" C +MuzzleScroller src/Dodge/Data/Item/Use.hs 158;" C +MuzzleShatter src/Dodge/Data/Item/Use.hs 152;" C +MuzzleShootBullet src/Dodge/Data/Item/Use.hs 140;" C +MuzzleStopper src/Dodge/Data/Item/Use.hs 157;" C +MuzzleTesla src/Dodge/Data/Item/Use.hs 142;" C +MuzzleTractor src/Dodge/Data/Item/Use.hs 143;" C +MuzzleUnsafeBlink src/Dodge/Data/Item/Use.hs 155;" C MvForward src/Dodge/Data/ActionPlan.hs 35;" C MvTurnToward src/Dodge/Data/ActionPlan.hs 34;" C MvWalking src/Dodge/Data/Creature/Misc.hs 39;" C @@ -1259,7 +1259,7 @@ NewIntMap src/NewInt.hs 18;" t NewSideEffect src/Dodge/Data/Universe.hs 63;" C Ngon src/Dodge/Room/Ngon.hs 1;" m NoAction src/Dodge/Data/ActionPlan.hs 152;" C -NoAmmoParams src/Dodge/Data/Item/Use.hs 118;" C +NoAmmoParams src/Dodge/Data/Item/Use.hs 115;" C NoArguments src/Dodge/Data/Terminal.hs 91;" C NoBeamCombine src/Dodge/Data/Beam.hs 43;" C NoConcurrentEffect src/Loop/Data.hs 7;" C @@ -1274,7 +1274,7 @@ NoDropEffect src/Dodge/Data/Item/Effect.hs 37;" C NoEquipParams src/Dodge/Data/Item/Use/Equipment.hs 36;" C NoEscapeMenuOption src/Dodge/Data/Universe.hs 77;" C NoFaction src/Dodge/Data/Creature/State.hs 40;" C -NoFlare src/Dodge/Data/Item/Use.hs 133;" C +NoFlare src/Dodge/Data/Item/Use.hs 130;" C NoHammer src/Dodge/Data/Hammer.hs 13;" C NoHeldUseEffect src/Dodge/Data/Item/Use.hs 57;" C NoHoming src/Dodge/Data/Projectile.hs 48;" C @@ -1282,7 +1282,7 @@ NoIntImp src/Dodge/Data/CreatureEffect.hs 20;" C NoInvEffect src/Dodge/Data/Item/Effect.hs 24;" C NoItTargeting src/Dodge/Data/Item.hs 60;" C NoItemScroll src/Dodge/Data/Item.hs 56;" C -NoLightFlare src/Dodge/Data/Item/Use.hs 135;" C +NoLightFlare src/Dodge/Data/Item/Use.hs 132;" C NoLighting src/Dodge/Data/Config.hs 104;" C NoMouseContext src/Dodge/Data/Input.hs 22;" C NoMvType src/Dodge/Data/Creature/Misc.hs 38;" C @@ -1362,7 +1362,7 @@ OnSpecial src/Dodge/Data/Equipment/Misc.hs 28;" C OnTurret src/Dodge/Data/Item/Location.hs 37;" C OnceSound src/Dodge/Data/SoundOrigin.hs 16;" C OneArgument src/Dodge/Data/Terminal.hs 92;" C -OneHand src/Dodge/Data/Item/Use.hs 194;" C +OneHand src/Dodge/Data/Item/Use.hs 191;" C OnwardCluster src/Dodge/Data/RoomCluster.hs 14;" C OnwardList src/Dodge/Annotation/Data.hs 16;" C Opacity src/Dodge/Data/Wall.hs 40;" t @@ -1499,7 +1499,7 @@ Procedural src/Dodge/Room/Procedural.hs 2;" m 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 116;" C +ProjectileParams src/Dodge/Data/Item/Use.hs 113;" C ProjectileStabiliserLink src/Dodge/Data/ComposedItem.hs 32;" C ProjectileStabiliserSF src/Dodge/Data/ComposedItem.hs 63;" C ProjectileType src/Dodge/Data/Projectile.hs 36;" t @@ -1958,7 +1958,7 @@ TeslaArc src/Dodge/Data/TeslaArc.hs 17;" t TeslaArc src/Dodge/Data/TeslaArc.hs 6;" m TeslaBall src/Dodge/Data/Bullet.hs 31;" C TeslaBeamCombine src/Dodge/Data/Beam.hs 41;" C -TeslaGunFlare src/Dodge/Data/Item/Use.hs 139;" C +TeslaGunFlare src/Dodge/Data/Item/Use.hs 136;" C Test src/Dodge/Creature/Test.hs 8;" m Test src/Dodge/Event/Test.hs 1;" m Test src/Picture/Test.hs 1;" m @@ -2030,9 +2030,9 @@ Turret src/Dodge/Data/Machine.hs 57;" t Turret src/Dodge/Placement/Instance/Turret.hs 1;" m TurretInt src/Dodge/Data/Item/Location.hs 21;" t TwistGoal src/Dodge/Data/Scenario.hs 15;" C -TwoHandFlat src/Dodge/Data/Item/Use.hs 193;" C -TwoHandOver src/Dodge/Data/Item/Use.hs 192;" C -TwoHandUnder src/Dodge/Data/Item/Use.hs 191;" C +TwoHandFlat src/Dodge/Data/Item/Use.hs 190;" C +TwoHandOver src/Dodge/Data/Item/Use.hs 189;" C +TwoHandUnder src/Dodge/Data/Item/Use.hs 188;" C Type src/Dodge/Data/Damage/Type.hs 6;" m Type src/Dodge/Terminal/Type.hs 1;" m Typical src/Shape/Data.hs 36;" C @@ -2074,7 +2074,7 @@ UseBulletMod src/Dodge/Data/Item/Use.hs 48;" C UseCondition src/Dodge/Data/Item/Use.hs 67;" t UseDelay src/Dodge/Data/Item/HeldDelay.hs 13;" t UseEquip src/Dodge/Data/Item/Use.hs 42;" C -UseExactly src/Dodge/Data/Item/Use.hs 165;" C +UseExactly src/Dodge/Data/Item/Use.hs 162;" C UseFocus src/Dodge/Data/Item/Use.hs 62;" t UseFromLocation src/Dodge/Data/Item/Use.hs 64;" C UseFromRoot src/Dodge/Data/Item/Use.hs 63;" C @@ -2091,7 +2091,7 @@ UseScope src/Dodge/Data/Item/Use.hs 47;" C UseSelf src/Dodge/Data/ActionPlan.hs 157;" C UseTarget src/Dodge/Data/ActionPlan.hs 154;" C UseToggle src/Dodge/Data/Item/Use.hs 49;" C -UseUpTo src/Dodge/Data/Item/Use.hs 166;" C +UseUpTo src/Dodge/Data/Item/Use.hs 163;" C UseValue src/Dodge/Data/Item/Use.hs 46;" C UseableAnytime src/Dodge/Data/Item/Use.hs 69;" C UseableWhenAimed src/Dodge/Data/Item/Use.hs 68;" C @@ -2216,13 +2216,13 @@ Zoning src/Dodge/Zoning.hs 1;" m __Just' src/MaybeHelp.hs 13;" f _actAction src/Dodge/Data/ActionPlan.hs 81;" f _actLabel src/Dodge/Data/ActionPlan.hs 80;" f -_aimHandlePos src/Dodge/Data/Item/Use.hs 127;" f -_aimMuzzles src/Dodge/Data/Item/Use.hs 128;" f -_aimRange src/Dodge/Data/Item/Use.hs 124;" f -_aimStance src/Dodge/Data/Item/Use.hs 126;" f -_aimTurnSpeed src/Dodge/Data/Item/Use.hs 123;" f -_aimWeight src/Dodge/Data/Item/Use.hs 122;" f -_aimZoom src/Dodge/Data/Item/Use.hs 125;" f +_aimHandlePos src/Dodge/Data/Item/Use.hs 124;" f +_aimMuzzles src/Dodge/Data/Item/Use.hs 125;" f +_aimRange src/Dodge/Data/Item/Use.hs 121;" f +_aimStance src/Dodge/Data/Item/Use.hs 123;" f +_aimTurnSpeed src/Dodge/Data/Item/Use.hs 120;" f +_aimWeight src/Dodge/Data/Item/Use.hs 119;" f +_aimZoom src/Dodge/Data/Item/Use.hs 122;" f _allocNewPos src/Dodge/Data/RightButtonOptions.hs 21;" f _allocNewPos src/Dodge/Data/RightButtonOptions.hs 24;" f _allocNewPos src/Dodge/Data/RightButtonOptions.hs 28;" f @@ -2234,9 +2234,9 @@ _allocRemoveID src/Dodge/Data/RightButtonOptions.hs 34;" f _allocSwapID src/Dodge/Data/RightButtonOptions.hs 30;" f _alphaDivideShader src/Data/Preload/Render.hs 18;" f _ambushTarget src/Dodge/Data/ActionPlan.hs 178;" f -_ampBullet src/Dodge/Data/Item/Use.hs 115;" f -_ampCreateGas src/Dodge/Data/Item/Use.hs 117;" f -_ampPayload src/Dodge/Data/Item/Use.hs 116;" f +_ampBullet src/Dodge/Data/Item/Use.hs 112;" f +_ampCreateGas src/Dodge/Data/Item/Use.hs 114;" f +_ampPayload src/Dodge/Data/Item/Use.hs 113;" f _apAction src/Dodge/Data/ActionPlan.hs 20;" f _apGoal src/Dodge/Data/ActionPlan.hs 22;" f _apImpulse src/Dodge/Data/ActionPlan.hs 19;" f @@ -2315,8 +2315,7 @@ _buPos src/Dodge/Data/Bullet.hs 23;" f _buVel src/Dodge/Data/Bullet.hs 21;" f _buWidth src/Dodge/Data/Bullet.hs 25;" f _bulGunSound src/Dodge/Data/Item/Use.hs 89;" f -_bulGunSound src/Dodge/Data/Item/Use.hs 96;" f -_bulGunSound src/Dodge/Data/Item/Use.hs 106;" f +_bulGunSound src/Dodge/Data/Item/Use.hs 103;" f _bullets src/Dodge/Data/LWorld.hs 107;" f _buttons src/Dodge/Data/LWorld.hs 137;" f _cClock src/Dodge/Data/CWorld.hs 26;" f @@ -2685,9 +2684,9 @@ _itemLocations src/Dodge/Data/LWorld.hs 101;" f _itsInt src/Dodge/Data/Item.hs 57;" f _itsMax src/Dodge/Data/Item.hs 58;" f _itsRangeInt src/Dodge/Data/Item.hs 58;" f -_izFac src/Dodge/Data/Item/Use.hs 200;" f -_izMax src/Dodge/Data/Item/Use.hs 198;" f -_izMin src/Dodge/Data/Item/Use.hs 199;" f +_izFac src/Dodge/Data/Item/Use.hs 197;" f +_izMax src/Dodge/Data/Item/Use.hs 195;" f +_izMin src/Dodge/Data/Item/Use.hs 196;" f _killTarget src/Dodge/Data/ActionPlan.hs 198;" f _lClock src/Dodge/Data/LWorld.hs 145;" f _lTestInt src/Dodge/Data/LWorld.hs 147;" f @@ -2811,20 +2810,20 @@ _mtLabel src/Dodge/Tree/Compose/Data.hs 8;" f _mtTree src/Dodge/Data/MetaTree.hs 10;" f _mtTree src/Dodge/Tree/Compose/Data.hs 8;" f _musicData src/Data/Preload.hs 13;" f -_muzVel src/Dodge/Data/Item/Use.hs 100;" f +_muzVel src/Dodge/Data/Item/Use.hs 97;" f _mvAimSpeed src/Dodge/Data/Creature/Misc.hs 44;" f _mvSpeed src/Dodge/Data/Creature/Misc.hs 39;" f _mvToPoint src/Dodge/Data/Creature.hs 78;" f _mvTurnJit src/Dodge/Data/Creature/Misc.hs 43;" f _mvTurnRad src/Dodge/Data/Creature/Misc.hs 42;" f -_mzAmmoPerShot src/Dodge/Data/Item/Use.hs 176;" f -_mzAmmoSlot src/Dodge/Data/Item/Use.hs 173;" f -_mzEffect src/Dodge/Data/Item/Use.hs 175;" f -_mzFlareType src/Dodge/Data/Item/Use.hs 174;" f -_mzFrame src/Dodge/Data/Item/Use.hs 177;" f -_mzInaccuracy src/Dodge/Data/Item/Use.hs 172;" f -_mzPos src/Dodge/Data/Item/Use.hs 170;" f -_mzRot src/Dodge/Data/Item/Use.hs 171;" f +_mzAmmoPerShot src/Dodge/Data/Item/Use.hs 173;" f +_mzAmmoSlot src/Dodge/Data/Item/Use.hs 170;" f +_mzEffect src/Dodge/Data/Item/Use.hs 172;" f +_mzFlareType src/Dodge/Data/Item/Use.hs 171;" f +_mzFrame src/Dodge/Data/Item/Use.hs 174;" f +_mzInaccuracy src/Dodge/Data/Item/Use.hs 169;" f +_mzPos src/Dodge/Data/Item/Use.hs 167;" f +_mzRot src/Dodge/Data/Item/Use.hs 168;" f _nodeMetaTree src/Dodge/Data/MetaTree.hs 14;" f _nodeMetaTree src/Dodge/Tree/Compose/Data.hs 9;" f _nodeTree src/Dodge/Data/MetaTree.hs 13;" f @@ -2833,10 +2832,10 @@ _nodesSearched src/Dodge/Data/Creature/Memory.hs 15;" f _numLinkEW src/Dodge/Data/Room.hs 33;" f _numLinkNS src/Dodge/Data/Room.hs 34;" f _numberFloorVerxs src/Dodge/Data/CWorld.hs 29;" f -_nzCurrentWalkAngle src/Dodge/Data/Item/Use.hs 152;" f -_nzMaxWalkAngle src/Dodge/Data/Item/Use.hs 151;" f -_nzPressure src/Dodge/Data/Item/Use.hs 150;" f -_nzWalkSpeed src/Dodge/Data/Item/Use.hs 153;" f +_nzCurrentWalkAngle src/Dodge/Data/Item/Use.hs 149;" f +_nzMaxWalkAngle src/Dodge/Data/Item/Use.hs 148;" f +_nzPressure src/Dodge/Data/Item/Use.hs 147;" f +_nzWalkSpeed src/Dodge/Data/Item/Use.hs 150;" f _offPathFromEdges src/Dodge/Data/Room.hs 74;" f _oldMagnets src/Dodge/Data/LWorld.hs 127;" f _onPathFromEdges src/Dodge/Data/Room.hs 73;" f @@ -2963,7 +2962,7 @@ _radarBlips src/Dodge/Data/LWorld.hs 113;" f _radarSweeps src/Dodge/Data/LWorld.hs 108;" f _randGen src/Dodge/Data/World.hs 39;" f _randomOffset src/Dodge/Data/Item/Use.hs 87;" f -_randomOffset src/Dodge/Data/Item/Use.hs 104;" f +_randomOffset src/Dodge/Data/Item/Use.hs 101;" f _rateMax src/Dodge/Data/Item/HeldDelay.hs 16;" f _rateTimeLastUsed src/Dodge/Data/Item/HeldDelay.hs 17;" f _rbColor src/Dodge/Data/RadarBlip.hs 15;" f @@ -2974,12 +2973,12 @@ _rbRad src/Dodge/Data/RadarBlip.hs 18;" f _rbTime src/Dodge/Data/RadarBlip.hs 16;" f _rboBaseBloom src/Data/Preload/Render.hs 38;" f _recoil src/Dodge/Data/Item/Use.hs 85;" f -_recoil src/Dodge/Data/Item/Use.hs 102;" f +_recoil src/Dodge/Data/Item/Use.hs 99;" f _renderData src/Data/Preload.hs 11;" f _reverseAmount src/Dodge/Data/World.hs 63;" f _reverseAmount src/Dodge/Data/World.hs 69;" f _reverseAmount src/Dodge/Data/World.hs 73;" f -_rifling src/Dodge/Data/Item/Use.hs 101;" f +_rifling src/Dodge/Data/Item/Use.hs 98;" f _rkHoming src/Dodge/Data/Projectile.hs 41;" f _rkSmoke src/Dodge/Data/Projectile.hs 42;" f _rlDir src/Dodge/Data/Room.hs 26;" f @@ -3090,7 +3089,7 @@ _siWidth src/Dodge/Data/SelectionList.hs 56;" f _sideEffect src/Loop/Data.hs 13;" f _sideImpulses src/Dodge/Data/ActionPlan.hs 170;" f _sidePush src/Dodge/Data/Item/Use.hs 88;" f -_sidePush src/Dodge/Data/Item/Use.hs 105;" f +_sidePush src/Dodge/Data/Item/Use.hs 102;" f _silhouetteEBO src/Data/Preload/Render.hs 27;" f _skColor src/Dodge/Data/Spark.hs 17;" f _skDamageType src/Dodge/Data/Spark.hs 21;" f @@ -3205,7 +3204,7 @@ _toPlaySoundVolumeFraction src/Sound/Data.hs 44;" f _toPlaySounds src/Dodge/Data/World.hs 40;" f _topBoxSize src/Shape/Data.hs 17;" f _torqueAfter src/Dodge/Data/Item/Use.hs 86;" f -_torqueAfter src/Dodge/Data/Item/Use.hs 103;" f +_torqueAfter src/Dodge/Data/Item/Use.hs 100;" f _tractorBeams src/Dodge/Data/LWorld.hs 121;" f _trieChildren src/SimpleTrie.hs 11;" f _trieMVal src/SimpleTrie.hs 10;" f @@ -3239,14 +3238,14 @@ _unTO src/Shader/Data.hs 59;" f _unpauseClock src/Dodge/Data/World.hs 54;" f _unputTerminal src/Dodge/Data/GenWorld.hs 36;" f _useAheadPos src/Dodge/Data/ActionPlan.hs 161;" f -_useExactly src/Dodge/Data/Item/Use.hs 165;" f +_useExactly src/Dodge/Data/Item/Use.hs 162;" f _useMapperLines src/Dodge/Data/Item/Use.hs 51;" f _useMapperPoints src/Dodge/Data/Item/Use.hs 52;" f _useMvTargetPos src/Dodge/Data/ActionPlan.hs 164;" f _useSelf src/Dodge/Data/ActionPlan.hs 158;" f _useTarget src/Dodge/Data/ActionPlan.hs 155;" f _useToggle src/Dodge/Data/Item/Use.hs 49;" f -_useUpTo src/Dodge/Data/Item/Use.hs 166;" f +_useUpTo src/Dodge/Data/Item/Use.hs 163;" f _uvCanContinue src/Dodge/Data/Universe.hs 38;" f _uvConfig src/Dodge/Data/Universe.hs 36;" f _uvDebug src/Dodge/Data/Universe.hs 43;" f @@ -3301,9 +3300,9 @@ _warmMax src/Dodge/Data/Item/HeldDelay.hs 27;" f _warmSound src/Dodge/Data/Item/HeldDelay.hs 28;" f _warmTime src/Dodge/Data/Item/HeldDelay.hs 26;" f _weaponInvLock src/Dodge/Data/Item/Use.hs 92;" f -_weaponInvLock src/Dodge/Data/Item/Use.hs 109;" f +_weaponInvLock src/Dodge/Data/Item/Use.hs 106;" f _weaponRepeat src/Dodge/Data/Item/Use.hs 93;" f -_weaponRepeat src/Dodge/Data/Item/Use.hs 110;" f +_weaponRepeat src/Dodge/Data/Item/Use.hs 107;" f _windowPosX src/Dodge/Data/Config.hs 53;" f _windowPosY src/Dodge/Data/Config.hs 54;" f _windowShader src/Data/Preload/Render.hs 19;" f @@ -3435,7 +3434,7 @@ applyPosition src/Sound.hs 110;" f applyRecoil src/Dodge/HeldUse.hs 197;" f applyResFactor src/Dodge/Data/Config.hs 110;" f applySetTerminalString src/Dodge/Debug/Terminal.hs 81;" f -applySidePush src/Dodge/HeldUse.hs 204;" f +applySidePush src/Dodge/HeldUse.hs 203;" f applySoundCME src/Dodge/HeldUse.hs 188;" f applyTerminalCommand src/Dodge/Debug/Terminal.hs 28;" f applyTerminalCommandArguments src/Dodge/Debug/Terminal.hs 42;" f @@ -3444,7 +3443,7 @@ applyToNode src/TreeHelp.hs 64;" f applyToRandomNode src/TreeHelp.hs 150;" f applyToSubforest src/TreeHelp.hs 77;" f applyToSubtree src/TreeHelp.hs 70;" f -applyTorqueCME src/Dodge/HeldUse.hs 215;" f +applyTorqueCME src/Dodge/HeldUse.hs 214;" f applyWorldConfig src/Dodge/Config/Update.hs 38;" f aquamarine src/Color.hs 23;" f arHUD src/Dodge/Item/Scope.hs 135;" f @@ -3525,7 +3524,7 @@ basicDrawBeam src/Dodge/Beam/Draw.hs 11;" f basicItemDisplay src/Dodge/Item/Display.hs 21;" f basicMachineApplyDamage src/Dodge/Machine/Damage.hs 6;" f basicMachineUpdate src/Dodge/Machine.hs 13;" f -basicMuzFlare src/Dodge/HeldUse.hs 315;" f +basicMuzFlare src/Dodge/HeldUse.hs 314;" f basicTerminal src/Dodge/Terminal.hs 35;" f battery src/Dodge/Item/Ammo.hs 87;" f batteryPack src/Dodge/Item/Equipment.hs 55;" f @@ -3795,8 +3794,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 727;" f -createProjectileR src/Dodge/HeldUse.hs 692;" f +createProjectile src/Dodge/HeldUse.hs 734;" f +createProjectileR src/Dodge/HeldUse.hs 699;" f createShell src/Dodge/Projectile/Create.hs 22;" f createShieldWall src/Dodge/Euse.hs 107;" f createUnusedLinkPos src/Dodge/Tree/Shift.hs 117;" f @@ -3995,7 +3994,7 @@ detector src/Dodge/Item/Held/Utility.hs 41;" f detectorColor src/Dodge/Item/Draw/SPic.hs 445;" f detectorEffect src/Dodge/Item/Weapon/Radar.hs 20;" f detectorInfo src/Dodge/Item/Info.hs 216;" f -determineProjectileTracking src/Dodge/HeldUse.hs 675;" f +determineProjectileTracking src/Dodge/HeldUse.hs 682;" f diagonalLinesRect src/Dodge/Room/Foreground.hs 52;" f did src/Dodge/Item/InvSize.hs 54;" f diffAngles src/Geometry.hs 204;" f @@ -4060,7 +4059,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 615;" f +doGenFloat src/Dodge/HeldUse.hs 621;" f doGravityPU src/Dodge/Projectile/Update.hs 50;" f doHeldUseEffect src/Dodge/HeldUse.hs 128;" f doInPlacements src/Dodge/Layout.hs 92;" f @@ -4256,7 +4255,7 @@ drawZoneNearPointCursor src/Dodge/Debug/Picture.hs 279;" f droneLauncher src/Dodge/Item/Weapon/Drone.hs 11;" f dropByState src/Dodge/Creature/State.hs 130;" f dropExcept src/Dodge/Creature/Action.hs 167;" f -dropInventoryPath src/Dodge/HeldUse.hs 805;" f +dropInventoryPath src/Dodge/HeldUse.hs 812;" f dropItem src/Dodge/Creature/Action.hs 173;" f dropper src/Dodge/Item/Scope.hs 76;" f drumMag src/Dodge/Item/Ammo.hs 42;" f @@ -4360,7 +4359,7 @@ flameThrower src/Dodge/Item/Held/SprayGuns.hs 72;" f flameTorrent src/Dodge/Item/Held/SprayGuns.hs 40;" f flameWall src/Dodge/Item/Held/SprayGuns.hs 56;" f flamerPic src/Dodge/Item/Draw/SPic.hs 379;" f -flareCircleAt src/Dodge/HeldUse.hs 296;" f +flareCircleAt src/Dodge/HeldUse.hs 295;" f flatItemCombinations src/Dodge/Combine/Combinations.hs 50;" f flatLookupItems src/Dodge/Combine.hs 38;" f flatShield src/Dodge/Item/Held/Utility.hs 20;" f @@ -4429,7 +4428,7 @@ gameRoomViewpoints src/Dodge/Viewpoints.hs 35;" f gameRoomsFromRooms src/Dodge/Layout.hs 158;" f gameplayMenu src/Dodge/Menu.hs 131;" f gameplayMenuOptions src/Dodge/Menu.hs 134;" f -gasCreate src/Dodge/HeldUse.hs 612;" f +gasCreate src/Dodge/HeldUse.hs 618;" f generateGenParams src/Dodge/LevelGen/LevelStructure.hs 22;" f generateGraphs src/Dodge/LevelGen.hs 39;" f generateLayout src/Dodge/Layout/Generate.hs 10;" f @@ -4443,10 +4442,10 @@ geqConstr src/SameConstr.hs 21;" f getAmmoLinks src/Dodge/Item/Grammar.hs 132;" f getArguments src/Dodge/Update/Scroll.hs 176;" f getArguments' src/Dodge/Update/Scroll.hs 164;" f -getAttachedSFLink src/Dodge/HeldUse.hs 366;" f +getAttachedSFLink src/Dodge/HeldUse.hs 365;" f getAutoSpringLinks src/Dodge/Item/Grammar.hs 112;" f getAvailableListLines src/Dodge/SelectionList.hs 10;" f -getBulletType src/Dodge/HeldUse.hs 491;" f +getBulletType src/Dodge/HeldUse.hs 497;" f getCloseObj src/Dodge/Update/Input/InGame.hs 514;" f getCommands src/Dodge/Terminal.hs 117;" f getCommandsHelp src/Dodge/Terminal.hs 75;" f @@ -4456,17 +4455,17 @@ getCrMoveSpeed src/Dodge/Creature/Statistics.hs 14;" f getDamageCoding src/Dodge/Terminal.hs 177;" f getDistortions src/Dodge/Render.hs 383;" f getEquipmentAllocation src/Dodge/Inventory/RBList.hs 45;" f -getGrenadeHitEffect src/Dodge/HeldUse.hs 720;" f +getGrenadeHitEffect src/Dodge/HeldUse.hs 727;" f getInventoryPath src/Dodge/Inventory/Path.hs 8;" f getItemValue src/Dodge/Inventory/SelectionList.hs 141;" f -getLaserColor src/Dodge/HeldUse.hs 312;" f -getLaserDamage src/Dodge/HeldUse.hs 309;" f -getLaserPhaseV src/Dodge/HeldUse.hs 306;" f +getLaserColor src/Dodge/HeldUse.hs 311;" f +getLaserDamage src/Dodge/HeldUse.hs 308;" f +getLaserPhaseV src/Dodge/HeldUse.hs 305;" f getLinksOfType src/Dodge/RoomLink.hs 39;" f getMaxLinesTM src/Dodge/Terminal/Type.hs 11;" f getMenuMouseContext src/Dodge/Update.hs 380;" f getNodePos src/Dodge/Path.hs 31;" f -getPJStabiliser src/Dodge/HeldUse.hs 712;" f +getPJStabiliser src/Dodge/HeldUse.hs 719;" f getPretty src/AesonHelp.hs 8;" f getPromptTM src/Dodge/Terminal/Type.hs 8;" f getRootItemBounds src/Dodge/Render/HUD.hs 94;" f @@ -4676,7 +4675,7 @@ invertIntMap src/Multiset.hs 67;" f invertInventoryToMap src/Dodge/Combine.hs 56;" f invisibleChaseCrit src/Dodge/Creature/ChaseCrit.hs 23;" f invisibleWall src/Dodge/Placement/Instance/Wall.hs 16;" f -isAmmoIntLink src/Dodge/HeldUse.hs 322;" f +isAmmoIntLink src/Dodge/HeldUse.hs 321;" f isAnimate src/Dodge/Creature/Test.hs 138;" f isCognizant src/Dodge/Creature/Perception.hs 105;" f isConnected src/Dodge/Inventory/Swap.hs 74;" f @@ -4709,7 +4708,7 @@ itemBaseName src/Dodge/Item/Display.hs 57;" f itemBlips src/Dodge/RadarSweep.hs 93;" f itemCombinations src/Dodge/Combine/Combinations.hs 55;" f itemCombinationsEdges src/Dodge/Combine/Graph.hs 60;" f -itemDetectorEffect src/Dodge/HeldUse.hs 372;" f +itemDetectorEffect src/Dodge/HeldUse.hs 371;" f itemDisplay src/Dodge/Inventory/SelectionList.hs 47;" f itemEquipPict src/Dodge/Item/Draw.hs 16;" f itemExternalValue src/Dodge/Inventory/SelectionList.hs 82;" f @@ -4769,12 +4768,12 @@ lampCrSPic src/Dodge/Render/ShapePicture.hs 56;" f lasCenSensEdge src/Dodge/Room/LasTurret.hs 114;" f lasDronesPic src/Dodge/Item/Weapon/Drone.hs 22;" f lasGunPic src/Dodge/Item/Draw/SPic.hs 405;" f -lasRayAt src/Dodge/HeldUse.hs 468;" f +lasRayAt src/Dodge/HeldUse.hs 474;" f lasSensorTurretTest src/Dodge/Room/LasTurret.hs 107;" f lasTunnel src/Dodge/Room/LasTurret.hs 126;" f lasTunnelRunPast src/Dodge/Room/LasTurret.hs 167;" f lasTurret src/Dodge/Placement/Instance/Turret.hs 38;" f -laser src/Dodge/Item/Held/BatteryGuns.hs 45;" f +laser src/Dodge/Item/Held/BatteryGuns.hs 44;" f laserLinkTest src/Dodge/Item/Grammar.hs 192;" f lastMap src/Dodge/DoubleTree.hs 174;" f launcherCrit src/Dodge/Creature/LauncherCrit.hs 12;" f @@ -4828,7 +4827,7 @@ lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 393;" f lnkPosDir src/Dodge/RoomLink.hs 97;" f loadDodgeConfig src/Dodge/Config/Load.hs 9;" f loadMusic src/Dodge/SoundLogic/LoadSound.hs 21;" f -loadMuzzle src/Dodge/HeldUse.hs 232;" f +loadMuzzle src/Dodge/HeldUse.hs 231;" f loadSaveSlot src/Dodge/Save.hs 74;" f loadSeed src/Dodge/LoadSeed.hs 7;" f loadSound src/Dodge/SoundLogic/LoadSound.hs 11;" f @@ -4883,8 +4882,8 @@ 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 563;" f -makeBullet' src/Dodge/HeldUse.hs 549;" f +makeBullet src/Dodge/HeldUse.hs 569;" f +makeBullet' src/Dodge/HeldUse.hs 555;" f makeButton src/Dodge/LevelGen/Switch.hs 16;" f makeByteStringShaderUsingVAO src/Shader/Compile.hs 128;" f makeCloudAt src/Dodge/WorldEvent/Cloud.hs 18;" f @@ -4910,7 +4909,7 @@ makeFragBullets src/Dodge/Bullet.hs 122;" f makeGasCloud src/Dodge/WorldEvent/SpawnParticle.hs 80;" f makeGrid src/Grid.hs 46;" f makeIntInterval src/Dodge/Zoning/Base.hs 34;" f -makeMuzzleFlare src/Dodge/HeldUse.hs 254;" f +makeMuzzleFlare src/Dodge/HeldUse.hs 253;" f makeParagraph src/Justify.hs 6;" f makePathBetween src/Dodge/Path.hs 35;" f makePathBetweenPs src/Dodge/Path.hs 54;" f @@ -4966,11 +4965,11 @@ mcProximitySensorUpdate src/Dodge/Machine/Update.hs 124;" f mcSPic src/Dodge/Render/ShapePicture.hs 120;" f mcSensorTriggerUpdate src/Dodge/Machine/Update.hs 87;" f mcSensorUpdate src/Dodge/Machine/Update.hs 119;" f -mcShootAuto src/Dodge/HeldUse.hs 647;" f -mcShootLaser src/Dodge/HeldUse.hs 639;" f +mcShootAuto src/Dodge/HeldUse.hs 653;" f +mcShootLaser src/Dodge/HeldUse.hs 645;" f mcTriggerVal src/Dodge/Machine/Update.hs 93;" f mcTypeUpdate src/Dodge/Machine/Update.hs 27;" f -mcUseHeld src/Dodge/HeldUse.hs 582;" f +mcUseHeld src/Dodge/HeldUse.hs 588;" f mcUseItem src/Dodge/Machine/Update.hs 79;" f medkit src/Dodge/Item/Consumable.hs 8;" f megaBattery src/Dodge/Item/Ammo.hs 76;" f @@ -5063,7 +5062,7 @@ multiArrow src/Picture/Composite.hs 11;" f multiLookupTrie src/SimpleTrie.hs 34;" f multiLookupTrieI src/SimpleTrie.hs 43;" f muout src/Dodge/RoomLink.hs 129;" f -muzFlareAt src/Dodge/HeldUse.hs 282;" f +muzFlareAt src/Dodge/HeldUse.hs 281;" f mvButton src/Dodge/Placement/PlaceSpot.hs 176;" f mvCr src/Dodge/Placement/PlaceSpot.hs 186;" f mvFS src/Dodge/Placement/PlaceSpot.hs 189;" f @@ -5478,7 +5477,7 @@ rememberSounds src/Dodge/Creature/Perception.hs 177;" f remoteDetonator src/Dodge/Item/Scope.hs 145;" f remoteScreen src/Dodge/Item/Scope.hs 140;" f removeAimPosture src/Dodge/Creature/YourControl.hs 142;" f -removeAmmoFromMag src/Dodge/HeldUse.hs 478;" f +removeAmmoFromMag src/Dodge/HeldUse.hs 484;" f removeDot src/ShortShow.hs 29;" f removeInverseWalls src/Dodge/LevelGen/StaticWalls.hs 25;" f removeShieldWall src/Dodge/Euse.hs 125;" f @@ -5756,14 +5755,14 @@ shiftRoomShiftToLink src/Dodge/Room/Link.hs 70;" f shiftedGrid src/Grid.hs 25;" f shineTargetLaser src/Dodge/Creature/State.hs 308;" f shineTorch src/Dodge/Creature/State.hs 350;" f -shootBullet src/Dodge/HeldUse.hs 538;" f +shootBullet src/Dodge/HeldUse.hs 544;" f shootFirstMiss src/Dodge/Creature/Volition.hs 33;" f -shootLaser src/Dodge/HeldUse.hs 454;" f +shootLaser src/Dodge/HeldUse.hs 456;" f shootOutPassage src/Dodge/Room/RezBox.hs 74;" f shootShatter src/Dodge/Item/Weapon/Shatter.hs 11;" f -shootTeslaArc src/Dodge/HeldUse.hs 664;" f +shootTeslaArc src/Dodge/HeldUse.hs 670;" f shootTillEmpty src/Dodge/Creature/Volition.hs 18;" f -shootTractorBeam src/Dodge/HeldUse.hs 409;" f +shootTractorBeam src/Dodge/HeldUse.hs 408;" 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 @@ -5849,7 +5848,7 @@ spanLS src/Dodge/Placement/Instance/LightSource.hs 175;" f spanLSLightI src/Dodge/Placement/Instance/LightSource.hs 168;" f spanLightI src/Dodge/Placement/Instance/LightSource.hs 197;" f sparkDam src/Dodge/Spark.hs 32;" f -sparkGun src/Dodge/Item/Held/BatteryGuns.hs 14;" f +sparkGun src/Dodge/Item/Held/BatteryGuns.hs 13;" f spawnCrNextTo src/Dodge/Item/Weapon/Spawn.hs 20;" f spawnElectricalSparks src/Dodge/PosEvent.hs 20;" f spawnGun src/Dodge/Item/Weapon/Spawn.hs 12;" f @@ -5981,9 +5980,9 @@ terminalSPic src/Dodge/Machine/Draw.hs 29;" f terminalScreenGlow src/Dodge/Machine/Update.hs 34;" f terminalShape src/Dodge/Machine/Draw.hs 32;" f terminalWheelEvent src/Dodge/Update/Scroll.hs 122;" f -teslaGun src/Dodge/Item/Held/BatteryGuns.hs 20;" f +teslaGun src/Dodge/Item/Held/BatteryGuns.hs 19;" f teslaGunPic src/Dodge/Item/Draw/SPic.hs 402;" f -teslaParams src/Dodge/Item/Held/BatteryGuns.hs 36;" f +teslaParams src/Dodge/Item/Held/BatteryGuns.hs 35;" f teslaParams src/Dodge/Tesla/ItemParams.hs 6;" f testCrossWalls src/Dodge/Room/Path.hs 47;" f testEvent src/Dodge/Event/Test.hs 10;" f @@ -6302,26 +6301,26 @@ useBulletPayload src/Dodge/Bullet.hs 111;" f useC src/Dodge/Cuse.hs 8;" f useC' src/Dodge/Cuse.hs 13;" f useE src/Dodge/Euse.hs 34;" f -useGasParams src/Dodge/HeldUse.hs 587;" f +useGasParams src/Dodge/HeldUse.hs 593;" f useHotkey src/Dodge/Creature/YourControl.hs 65;" f -useInventoryPath src/Dodge/HeldUse.hs 830;" f +useInventoryPath src/Dodge/HeldUse.hs 837;" f useItem src/Dodge/Creature/Impulse/UseItem.hs 20;" f useItemLoc src/Dodge/Creature/Impulse/UseItem.hs 27;" f useLnkRoomPos src/Dodge/PlacementSpot.hs 244;" f -useLoadedAmmo src/Dodge/HeldUse.hs 326;" f +useLoadedAmmo src/Dodge/HeldUse.hs 325;" f useLocation src/Dodge/Creature/Impulse/UseItem.hs 66;" f useMagShield src/Dodge/Euse.hs 46;" f useNormalCamera src/Dodge/Camera.hs 6;" f usePayload src/Dodge/Payload.hs 18;" f -useRewindGun src/Dodge/HeldUse.hs 796;" f +useRewindGun src/Dodge/HeldUse.hs 803;" 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 777;" f +useStopWatch src/Dodge/HeldUse.hs 784;" f useStopWatch src/Dodge/Luse.hs 21;" f useTimeCheck src/Dodge/HeldUse.hs 94;" f useTimeCheck src/Dodge/Item/Weapon/TriggerType.hs 127;" f -useTimeScrollGun src/Dodge/HeldUse.hs 785;" f +useTimeScrollGun src/Dodge/HeldUse.hs 792;" f useTimeScrollGun src/Dodge/Luse.hs 29;" f useUnusedLnk src/Dodge/PlacementSpot.hs 169;" f usedRoomInLinkPoss src/Dodge/PlacementSpot.hs 196;" f @@ -6356,7 +6355,7 @@ vocalizationTest src/Dodge/Creature/Vocalization.hs 8;" f volleyGun src/Dodge/Item/Held/Cane.hs 31;" f volleyGunShape src/Dodge/Item/Draw/SPic.hs 340;" f waistSP src/Dodge/Creature/HandPos.hs 173;" f -walkNozzle src/Dodge/HeldUse.hs 387;" f +walkNozzle src/Dodge/HeldUse.hs 386;" f walkableNodeNear src/Dodge/Path.hs 48;" f wallBlips src/Dodge/RadarSweep.hs 98;" f wallBuffer src/Dodge/WallCreatureCollisions.hs 51;" f