From a71e237789a5e2517f246522a44dc9019585ae85 Mon Sep 17 00:00:00 2001 From: justin Date: Wed, 4 Jun 2025 09:22:01 +0100 Subject: [PATCH] Remove aimParam records --- src/Dodge/Creature/Statistics.hs | 52 ++- src/Dodge/Creature/YourControl.hs | 65 +++- src/Dodge/Data/Item/Use.hs | 7 +- src/Dodge/Default/Item/Use/AimParams.hs | 6 +- src/Dodge/Item/Held/BatteryGuns.hs | 3 - src/Dodge/Item/Held/Cane.hs | 4 - src/Dodge/Item/Held/Cone.hs | 2 - src/Dodge/Item/Held/Launcher.hs | 1 - src/Dodge/Item/Held/Rod.hs | 1 - src/Dodge/Item/Held/SprayGuns.hs | 1 - src/Dodge/Item/Held/Utility.hs | 2 - tags | 488 ++++++++++++------------ 12 files changed, 356 insertions(+), 276 deletions(-) diff --git a/src/Dodge/Creature/Statistics.hs b/src/Dodge/Creature/Statistics.hs index aea0474d8..1a4cf5aa4 100644 --- a/src/Dodge/Creature/Statistics.hs +++ b/src/Dodge/Creature/Statistics.hs @@ -1,3 +1,4 @@ +{-# LANGUAGE LambdaCase #-} module Dodge.Creature.Statistics ( getCrMoveSpeed, getCrDexterity, @@ -30,4 +31,53 @@ strFromHeldItem :: Creature -> Int strFromHeldItem cr = fromMaybe 0 $ do Aiming <- cr ^? crStance . posture i <- cr ^? crManipulation . manObject . imRootSelectedItem - fmap negate $ cr ^? crInv . ix i . itUse . heldAim . aimWeight + fmap (negate . itemWeight) $ cr ^? crInv . ix i + +itemWeight :: Item -> Int +itemWeight it = case it ^. itType of + HELD hit -> heldItemWeight hit + _ -> 1 + +heldItemWeight :: HeldItemType -> Int +heldItemWeight = \case + BANGSTICK{} -> 5 + REWINDER -> 5 + TIMESTOPPER -> 5 + TIMESCROLLER -> 5 + PISTOL -> 5 + MACHINEPISTOL -> 5 + AUTOPISTOL -> 5 + SMG -> 10 + BANGCONE -> 5 + BLUNDERBUSS -> 10 + GRAPECANNON{} -> 10 + MINIGUNX{} -> 20 + VOLLEYGUN{} -> 15 + RIFLE -> 10 + ALTERIFLE -> 10 + AUTORIFLE -> 10 + BURSTRIFLE -> 10 + BANGROD -> 10 + ELEPHANTGUN -> 10 + AMR -> 10 + AUTOAMR -> 10 + SNIPERRIFLE -> 10 + FLAMESPITTER -> 5 + FLAMETHROWER -> 10 + FLAMETORRENT -> 10 + FLAMEWALL -> 10 + BLOWTORCH -> 10 + SPARKGUN -> 15 + TESLAGUN -> 15 + LASER -> 15 + TRACTORGUN -> 10 + RLAUNCHER -> 20 + RLAUNCHERX{} -> 20 + GLAUNCHER -> 10 + POISONSPRAYER -> 10 + SHATTERGUN -> 10 + TORCH -> 5 + FLATSHIELD -> 15 + KEYCARD {} -> 5 + BLINKER -> 5 + BLINKERUNSAFE -> 5 diff --git a/src/Dodge/Creature/YourControl.hs b/src/Dodge/Creature/YourControl.hs index c81adc4f9..9aaff5a37 100644 --- a/src/Dodge/Creature/YourControl.hs +++ b/src/Dodge/Creature/YourControl.hs @@ -1,18 +1,20 @@ +{-# LANGUAGE LambdaCase #-} + module Dodge.Creature.YourControl ( yourControl, ) where -import Dodge.Data.AimStance -import Dodge.Item.AimStance import Control.Monad import qualified Data.Map.Strict as M import Data.Maybe import Dodge.Creature.Impulse.Movement import Dodge.Creature.Impulse.UseItem +import Dodge.Data.AimStance import Dodge.Data.World import Dodge.Hotkey import Dodge.InputFocus import Dodge.Inventory +import Dodge.Item.AimStance import Dodge.SelectedClose import Dodge.WASD import Geometry @@ -41,7 +43,7 @@ yourControl _ w handleHotkeys :: World -> World handleHotkeys w | ispressed SDL.ScancodeLShift || ispressed SDL.ScancodeRShift - , Just hk <- + , Just hk <- listToMaybe . mapMaybe scancodeToHotkey . M.keys $ w ^. input . pressedKeys , Just invid <- lw ^? creatures . ix 0 . crManipulation . manObject . imSelectedItem , Just itid <- lw ^? creatures . ix 0 . crInv . ix invid . itID = @@ -121,9 +123,9 @@ wasdWithAiming w cr = wasdAim inp w $ wasdMovement inp cam speed cr wasdAim :: Input -> World -> Creature -> Creature wasdAim inp w cr - | Just 0 <- inp ^? mouseButtons . ix SDL.ButtonRight - , Nothing <- inp ^? mouseButtons . ix SDL.ButtonLeft - = setAimPosture cr + | Just 0 <- inp ^? mouseButtons . ix SDL.ButtonRight + , Nothing <- inp ^? mouseButtons . ix SDL.ButtonLeft = + setAimPosture cr | SDL.ButtonRight `M.member` _mouseButtons inp = aimTurn mousedir cr | Aiming <- cr ^. crStance . posture = removeAimPosture cr | otherwise = creatureTurnTowardDir (_crMvAim cr) 0.2 cr @@ -163,7 +165,56 @@ aimTurn a cr = creatureTurnTowardDir a (x * 0.2) cr where x = fromMaybe 1 $ do itRef <- cr ^? crManipulation . manObject . imRootSelectedItem - cr ^? crInv . ix itRef . itUse . heldAim . aimTurnSpeed + fmap itemBulkiness $ cr ^? crInv . ix itRef . itType + +itemBulkiness :: ItemType -> Float +itemBulkiness = \case + HELD hit -> heldItemBulkiness hit + _ -> 1 + +heldItemBulkiness :: HeldItemType -> Float +heldItemBulkiness = \case + BANGSTICK{} -> 1 + REWINDER -> 1 + TIMESTOPPER -> 1 + TIMESCROLLER -> 1 + PISTOL -> 1 + MACHINEPISTOL -> 1 + AUTOPISTOL -> 1 + SMG -> 1 + BANGCONE -> 1 + BLUNDERBUSS -> 1 + GRAPECANNON{} -> 1 + MINIGUNX{} -> 0.5 + VOLLEYGUN{} -> 1 + RIFLE -> 1 + ALTERIFLE -> 1 + AUTORIFLE -> 1 + BURSTRIFLE -> 1 + BANGROD -> 1 + ELEPHANTGUN -> 1 + AMR -> 1 + AUTOAMR -> 1 + SNIPERRIFLE -> 1 + FLAMESPITTER -> 1 + FLAMETHROWER -> 1 + FLAMETORRENT -> 1 + FLAMEWALL -> 1 + BLOWTORCH -> 1 + SPARKGUN -> 1 + TESLAGUN -> 1 + LASER -> 1 + TRACTORGUN -> 1 + RLAUNCHER -> 0.9 + RLAUNCHERX{} -> 0.9 + GLAUNCHER -> 1 + POISONSPRAYER -> 1 + SHATTERGUN -> 1 + TORCH -> 1 + FLATSHIELD -> 0.5 + KEYCARD{} -> 1 + BLINKER -> 1 + BLINKERUNSAFE -> 1 tryClickUse :: M.Map SDL.MouseButton Int -> World -> World tryClickUse pkeys w = fromMaybe w $ do diff --git a/src/Dodge/Data/Item/Use.hs b/src/Dodge/Data/Item/Use.hs index a009e22d0..10faf07e3 100644 --- a/src/Dodge/Data/Item/Use.hs +++ b/src/Dodge/Data/Item/Use.hs @@ -34,7 +34,6 @@ data ItemUse { _heldDelay :: UseDelay , _heldAim :: AimParams , _heldParams :: HeldParams --- , _heldTriggerType :: TriggerType , _heldFrame :: Int , _heldUseEffect :: HeldUseEffect } @@ -107,11 +106,7 @@ data AmmoParams | NoAmmoParams deriving (Eq, Show, Read) --Generic, Flat) -data AimParams = AimParams - { _aimWeight :: Int - , _aimTurnSpeed :: Float - , _aimMuzzles :: [Muzzle] - } +data AimParams = AimParams { _aimMuzzles :: [Muzzle] } deriving (Eq, Ord, Show, Read) --Generic, Flat) data FlareType diff --git a/src/Dodge/Default/Item/Use/AimParams.hs b/src/Dodge/Default/Item/Use/AimParams.hs index 6de1260b2..45a841359 100644 --- a/src/Dodge/Default/Item/Use/AimParams.hs +++ b/src/Dodge/Default/Item/Use/AimParams.hs @@ -9,11 +9,7 @@ import Linear defaultAimParams :: AimParams defaultAimParams = AimParams - { _aimWeight = 0 - , _aimTurnSpeed = 1 --- , _aimZoom = defaultItZoom - --, _aimHandlePos = V2 3 0 - , _aimMuzzles = + { _aimMuzzles = [ Muzzle { _mzPos = V2 20 0 , _mzRot = 0 diff --git a/src/Dodge/Item/Held/BatteryGuns.hs b/src/Dodge/Item/Held/BatteryGuns.hs index 53a3cd7de..f0fa5ff1d 100644 --- a/src/Dodge/Item/Held/BatteryGuns.hs +++ b/src/Dodge/Item/Held/BatteryGuns.hs @@ -22,7 +22,6 @@ teslaGun = & itUse . heldParams .~ BeamShooterParams-- (Just (elecCrackleS, 2)) & itParams .~ teslaParams & itUse . heldDelay .~ NoDelay - & itUse . heldAim . aimWeight .~ 6 & itUse . heldAim . aimMuzzles . ix 0 . mzPos .~ V2 10 0 & itUse . heldAim . aimMuzzles . ix 0 . mzInaccuracy .~ 0 & itUse . heldAim . aimMuzzles . ix 0 . mzFlareType .~ TeslaGunFlare @@ -56,7 +55,6 @@ laser = , _itTgID = Nothing , _itTgActive = False } - & itUse . heldAim . aimWeight .~ 6 & itType .~ HELD LASER -- previous attractionPower values: 1, -1, -10, 0 @@ -67,7 +65,6 @@ tractorGun = & itAmmoSlots .~ singleAmmo ElectricalAmmo & itUse . heldAim . aimMuzzles . ix 0 . mzPos .~ V2 30 0 & itUse . heldAim . aimMuzzles . ix 0 . mzInaccuracy .~ 0 - & itUse . heldAim . aimWeight .~ 6 & itUse . heldAim . aimMuzzles . ix 0 . mzFlareType .~ NoFlare & itUse . heldAim . aimMuzzles . ix 0 . mzEffect .~ MuzzleTractor & itType .~ HELD TRACTORGUN diff --git a/src/Dodge/Item/Held/Cane.hs b/src/Dodge/Item/Held/Cane.hs index c92a11035..c97746525 100644 --- a/src/Dodge/Item/Held/Cane.hs +++ b/src/Dodge/Item/Held/Cane.hs @@ -30,7 +30,6 @@ defaultBangCane = volleyGun :: Int -> Item volleyGun i = defaultBangCane - & itUse . heldAim . aimWeight .~ 6 -- & itUse . heldAim . aimZoom .~ defaultItZoom{_izFac = 1.5} & itUse . heldAim . aimMuzzles .~ getZipList (ZipList [Muzzle (V2 15 x) 0 0.01 | x <- spreadAroundCenter i 6] @@ -52,7 +51,6 @@ rifle :: Item rifle = defaultBangCane & itType .~ HELD RIFLE - & itUse . heldAim . aimWeight .~ 6 -- & itUse . heldAim . aimZoom .~ defaultItZoom{_izFac = 1.5} & itUse . heldAim . aimMuzzles . ix 0 . mzPos .~ V2 25 0 @@ -90,11 +88,9 @@ miniGunX :: Int -> Item miniGunX i = autoRifle & itUse . heldDelay .~ WarmUpNoDelay{_warmTime = 0, _warmMax = 100, _warmSound = crankSlowS} - & itUse . heldAim . aimWeight .~ 6 -- & itUse . heldAim . aimZoom .~ defaultItZoom{_izFac = 1.5} & itAmmoSlots .~ singleAmmo BeltBulletAmmo -- & itUse . heldParams . bulGunSound ?~ (mini1S,2) - & itUse . heldAim . aimTurnSpeed .~ 0.5 & itUse . heldAim . aimMuzzles .~ replicate i (Muzzle (V2 30 0) 0 0.05 0 MiniGunFlare MuzzleShootBullet (UseExactly 1) 0) diff --git a/src/Dodge/Item/Held/Cone.hs b/src/Dodge/Item/Held/Cone.hs index e986b5ac9..051622194 100644 --- a/src/Dodge/Item/Held/Cone.hs +++ b/src/Dodge/Item/Held/Cone.hs @@ -28,8 +28,6 @@ bangCone = blunderbuss :: Item blunderbuss = bangCone - & itUse . heldAim . aimWeight .~ 6 - -- & itUse . heldAim . aimHandlePos .~ 5 & itUse . heldAim . aimMuzzles . ix 0 . mzPos . _x .~ 30 & itType .~ HELD BLUNDERBUSS diff --git a/src/Dodge/Item/Held/Launcher.hs b/src/Dodge/Item/Held/Launcher.hs index 9bbe91579..8e0818a4f 100644 --- a/src/Dodge/Item/Held/Launcher.hs +++ b/src/Dodge/Item/Held/Launcher.hs @@ -15,7 +15,6 @@ rLauncher :: Item rLauncher = defaultHeldItem & itUse . heldDelay . rateMax .~ 20 - & itUse . heldAim . aimWeight .~ 8 & itUse . heldAim . aimMuzzles . ix 0 . mzInaccuracy .~ 0 & itUse . heldAim . aimMuzzles . ix 0 . mzEffect .~ MuzzleRLauncher & itUse . heldAim . aimMuzzles . ix 0 . mzPos .~ V2 20 0 diff --git a/src/Dodge/Item/Held/Rod.hs b/src/Dodge/Item/Held/Rod.hs index babbcafcf..561fe5001 100644 --- a/src/Dodge/Item/Held/Rod.hs +++ b/src/Dodge/Item/Held/Rod.hs @@ -24,7 +24,6 @@ bangRod = -- & itUse . heldParams . bulGunSound ?~ (bangEchoS,0) & itUse . heldDelay . rateMax .~ 12 & itType .~ HELD BANGROD - & itUse . heldAim . aimWeight .~ 8 -- & itUse . heldAim . aimZoom .~ defaultItZoom{_izFac = 1.5} -- & itUse . heldAim . aimHandlePos .~ 5 & itUse . heldAim . aimMuzzles . ix 0 . mzPos .~ V2 30 0 diff --git a/src/Dodge/Item/Held/SprayGuns.hs b/src/Dodge/Item/Held/SprayGuns.hs index ada153d9d..2f9ba1ee4 100644 --- a/src/Dodge/Item/Held/SprayGuns.hs +++ b/src/Dodge/Item/Held/SprayGuns.hs @@ -72,7 +72,6 @@ flameThrower = defaultHeldItem & itParams .~ NoParams & itUse . heldDelay .~ NoDelay - & itUse . heldAim . aimWeight .~ 5 -- & itUse . heldAim . aimZoom .~ defaultItZoom{_izMax = 5, _izMin = 1.5} & itUse . heldAim . aimMuzzles .~ [Muzzle (V2 18 0) 0 0 0 NoFlare MuzzleNozzle diff --git a/src/Dodge/Item/Held/Utility.hs b/src/Dodge/Item/Held/Utility.hs index 19c0c028e..74ec8fa8a 100644 --- a/src/Dodge/Item/Held/Utility.hs +++ b/src/Dodge/Item/Held/Utility.hs @@ -21,8 +21,6 @@ flatShield :: Item flatShield = defaultHeldItem & itEffect . ieInv .~ EffectRootNotroot CreateShieldWall RemoveShieldWall - & itUse . heldAim . aimWeight .~ 5 - & itUse . heldAim . aimTurnSpeed .~ 0.5 & itType .~ HELD FLATSHIELD keyCard :: Int -> Item diff --git a/tags b/tags index 4b561e624..454749cae 100644 --- a/tags +++ b/tags @@ -25,9 +25,9 @@ ALTERIFLE src/Dodge/Data/Item/Combine.hs 152;" C AMMOMAG src/Dodge/Data/Item/Combine.hs 20;" C AMR src/Dodge/Data/Item/Combine.hs 157;" C ANTIMATTER src/Dodge/Data/Item/Combine.hs 67;" C -APInt src/Dodge/Data/Item/Use.hs 73;" C -APNothing src/Dodge/Data/Item/Use.hs 74;" C -APProjectiles src/Dodge/Data/Item/Use.hs 72;" C +APInt src/Dodge/Data/Item/Use.hs 72;" C +APNothing src/Dodge/Data/Item/Use.hs 73;" C +APProjectiles src/Dodge/Data/Item/Use.hs 71;" C AQUAMARINE src/Color/Data.hs 24;" C ARHUD src/Dodge/Data/Item/Combine.hs 34;" C ARHUDSF src/Dodge/Data/ComposedItem.hs 50;" C @@ -46,7 +46,7 @@ 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 110;" t +AimParams src/Dodge/Data/Item/Use.hs 109;" t AimParams src/Dodge/Default/Item/Use/AimParams.hs 1;" m AimStance src/Dodge/Data/AimStance.hs 9;" t AimStance src/Dodge/Data/AimStance.hs 4;" m @@ -68,10 +68,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 103;" t +AmmoParams src/Dodge/Data/Item/Use.hs 102;" t AmmoPayloadLink src/Dodge/Data/ComposedItem.hs 21;" C AmmoPayloadSF src/Dodge/Data/ComposedItem.hs 59;" C -AmmoPerShot src/Dodge/Data/Item/Use.hs 149;" t +AmmoPerShot src/Dodge/Data/Item/Use.hs 144;" 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 @@ -100,7 +100,7 @@ AsteroidStrike src/Dodge/Data/Scenario.hs 33;" C AtEase src/Dodge/Data/Creature/Stance.hs 40;" C AtomicWaste src/Dodge/Data/Scenario.hs 26;" C Attach src/Dodge/Item/Attach.hs 1;" m -AttachParams src/Dodge/Data/Item/Use.hs 71;" t +AttachParams src/Dodge/Data/Item/Use.hs 70;" t AttachType src/Dodge/Data/Item/Combine.hs 90;" t Attention src/Dodge/Data/Creature/Perception.hs 60;" t AttentiveTo src/Dodge/Data/Creature/Perception.hs 61;" C @@ -151,7 +151,7 @@ BaseTriggerType src/Dodge/BaseTriggerType.hs 3;" 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 119;" C +BasicFlare src/Dodge/Data/Item/Use.hs 114;" 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 @@ -161,7 +161,7 @@ BeamCombine src/Dodge/Data/Beam.hs 47;" C BeamCombineType src/Dodge/Data/Beam.hs 38;" t BeamDraw src/Dodge/Data/Beam.hs 33;" t BeamDrawColor src/Dodge/Data/Beam.hs 35;" C -BeamShooterParams src/Dodge/Data/Item/Use.hs 87;" C +BeamShooterParams src/Dodge/Data/Item/Use.hs 86;" C BeamSimple src/Dodge/Data/Beam.hs 50;" C BeamType src/Dodge/Data/Beam.hs 46;" t BecomePowerful src/Dodge/Data/Scenario.hs 9;" C @@ -233,9 +233,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 104;" C +BulletParams src/Dodge/Data/Item/Use.hs 103;" C BulletPayload src/Dodge/Data/Bullet.hs 41;" t -BulletShooterParams src/Dodge/Data/Item/Use.hs 88;" C +BulletShooterParams src/Dodge/Data/Item/Use.hs 87;" 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 @@ -289,7 +289,7 @@ CardinalPoint src/Dodge/Base/CardinalPoint.hs 1;" m CardinalPoint src/Dodge/Data/CardinalPoint.hs 1;" m Carriage src/Dodge/Data/Creature/Stance.hs 20;" t Carte src/Dodge/Render/HUD/Carte.hs 1;" m -ChainEffect src/Dodge/HeldUse.hs 73;" t +ChainEffect src/Dodge/HeldUse.hs 74;" t ChainEffect src/Dodge/Item/Weapon/TriggerType.hs 43;" t ChainUpdates src/Dodge/Creature/ChainUpdates.hs 1;" m ChangePosture src/Dodge/Data/ActionPlan.hs 42;" C @@ -501,7 +501,7 @@ DefaultCrGroupUpdate src/Dodge/Data/CrGroupParams.hs 22;" C DefaultDrawButton src/Dodge/Data/Button.hs 17;" C DefaultDrawSwitch src/Dodge/Data/Button.hs 18;" C DefaultForceField src/Dodge/Data/Item/Use/Consumption/Ammo.hs 35;" C -DefaultHeldParams src/Dodge/Data/Item/Use.hs 78;" C +DefaultHeldParams src/Dodge/Data/Item/Use.hs 77;" C DefaultLightSourceDraw src/Dodge/Data/LightSource.hs 13;" C DefaultRoomType src/Dodge/Data/Room.hs 31;" C DefaultTerminal src/Dodge/Data/Terminal.hs 55;" C @@ -690,7 +690,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 117;" t +FlareType src/Dodge/Data/Item/Use.hs 112;" 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 @@ -760,8 +760,8 @@ 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 106;" C -GasSprayParams src/Dodge/Data/Item/Use.hs 79;" C +GasParams src/Dodge/Data/Item/Use.hs 105;" C +GasSprayParams src/Dodge/Data/Item/Use.hs 78;" C GenCr src/Dodge/Data/Creature/State.hs 31;" C GenFloat src/Dodge/Data/GenFloat.hs 11;" t GenFloat src/Dodge/Data/GenFloat.hs 5;" m @@ -829,17 +829,17 @@ HammerUp src/Dodge/Data/Hammer.hs 20;" C HandPos src/Dodge/Creature/HandPos.hs 1;" m HardQuit src/Dodge/Data/Universe.hs 70;" C HasHammer src/Dodge/Data/Hammer.hs 14;" C -HeavySmokeFlare src/Dodge/Data/Item/Use.hs 122;" C +HeavySmokeFlare src/Dodge/Data/Item/Use.hs 117;" 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 HeldOffset src/Dodge/Item/HeldOffset.hs 2;" m -HeldParams src/Dodge/Data/Item/Use.hs 77;" t +HeldParams src/Dodge/Data/Item/Use.hs 76;" t HeldPlatformSF src/Dodge/Data/ComposedItem.hs 41;" C HeldScroll src/Dodge/HeldScroll.hs 1;" m HeldUse src/Dodge/Data/Item/HeldUse.hs 6;" m HeldUse src/Dodge/HeldUse.hs 4;" m -HeldUseEffect src/Dodge/Data/Item/Use.hs 55;" t +HeldUseEffect src/Dodge/Data/Item/Use.hs 54;" t HelpNum src/HelpNum.hs 1;" m HiddenGoal src/Dodge/Data/Scenario.hs 14;" C HomeUsingRemoteScreen src/Dodge/Data/Projectile.hs 49;" C @@ -990,7 +990,7 @@ LASER src/Dodge/Data/Item/Combine.hs 167;" C LASERING src/Dodge/Data/Damage/Type.hs 19;" C LDT src/Dodge/Data/DoubleTree.hs 40;" C LDTBottomNode src/Dodge/Data/DoubleTree.hs 28;" C -LDTComb src/Dodge/Item/Grammar.hs 232;" t +LDTComb src/Dodge/Item/Grammar.hs 234;" t LDTMidAboveNode src/Dodge/Data/DoubleTree.hs 26;" C LDTMidBelowNode src/Dodge/Data/DoubleTree.hs 27;" C LDTRootNode src/Dodge/Data/DoubleTree.hs 24;" C @@ -1018,7 +1018,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 123;" C +LasGunFlare src/Dodge/Data/Item/Use.hs 118;" 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 @@ -1189,7 +1189,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 121;" C +MiniGunFlare src/Dodge/Data/Item/Use.hs 116;" 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 @@ -1223,23 +1223,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 154;" t -MuzzleBlink src/Dodge/Data/Item/Use.hs 142;" C -MuzzleDetector src/Dodge/Data/Item/Use.hs 141;" C -MuzzleEffect src/Dodge/Data/Item/Use.hs 127;" t +Muzzle src/Dodge/Data/Item/Use.hs 149;" t +MuzzleBlink src/Dodge/Data/Item/Use.hs 137;" C +MuzzleDetector src/Dodge/Data/Item/Use.hs 136;" C +MuzzleEffect src/Dodge/Data/Item/Use.hs 122;" t MuzzleEffect src/Dodge/Data/MuzzleEffect.hs 5;" m -MuzzleGLauncher src/Dodge/Data/Item/Use.hs 133;" C -MuzzleLaser src/Dodge/Data/Item/Use.hs 129;" C -MuzzleNozzle src/Dodge/Data/Item/Use.hs 134;" C -MuzzleRLauncher src/Dodge/Data/Item/Use.hs 132;" C -MuzzleRewind src/Dodge/Data/Item/Use.hs 144;" C -MuzzleScroller src/Dodge/Data/Item/Use.hs 146;" C -MuzzleShatter src/Dodge/Data/Item/Use.hs 140;" C -MuzzleShootBullet src/Dodge/Data/Item/Use.hs 128;" C -MuzzleStopper src/Dodge/Data/Item/Use.hs 145;" C -MuzzleTesla src/Dodge/Data/Item/Use.hs 130;" C -MuzzleTractor src/Dodge/Data/Item/Use.hs 131;" C -MuzzleUnsafeBlink src/Dodge/Data/Item/Use.hs 143;" C +MuzzleGLauncher src/Dodge/Data/Item/Use.hs 128;" C +MuzzleLaser src/Dodge/Data/Item/Use.hs 124;" C +MuzzleNozzle src/Dodge/Data/Item/Use.hs 129;" C +MuzzleRLauncher src/Dodge/Data/Item/Use.hs 127;" C +MuzzleRewind src/Dodge/Data/Item/Use.hs 139;" C +MuzzleScroller src/Dodge/Data/Item/Use.hs 141;" C +MuzzleShatter src/Dodge/Data/Item/Use.hs 135;" C +MuzzleShootBullet src/Dodge/Data/Item/Use.hs 123;" C +MuzzleStopper src/Dodge/Data/Item/Use.hs 140;" C +MuzzleTesla src/Dodge/Data/Item/Use.hs 125;" C +MuzzleTractor src/Dodge/Data/Item/Use.hs 126;" C +MuzzleUnsafeBlink src/Dodge/Data/Item/Use.hs 138;" 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 @@ -1262,7 +1262,7 @@ NewIntMap src/NewInt.hs 18;" t NewSideEffect src/Dodge/Data/Universe.hs 65;" C Ngon src/Dodge/Room/Ngon.hs 1;" m NoAction src/Dodge/Data/ActionPlan.hs 152;" C -NoAmmoParams src/Dodge/Data/Item/Use.hs 107;" C +NoAmmoParams src/Dodge/Data/Item/Use.hs 106;" C NoArguments src/Dodge/Data/Terminal.hs 91;" C NoBeamCombine src/Dodge/Data/Beam.hs 43;" C NoConcurrentEffect src/Loop/Data.hs 7;" C @@ -1277,15 +1277,15 @@ 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 79;" C NoFaction src/Dodge/Data/Creature/State.hs 40;" C -NoFlare src/Dodge/Data/Item/Use.hs 118;" C +NoFlare src/Dodge/Data/Item/Use.hs 113;" C NoHammer src/Dodge/Data/Hammer.hs 13;" C -NoHeldUseEffect src/Dodge/Data/Item/Use.hs 56;" C +NoHeldUseEffect src/Dodge/Data/Item/Use.hs 55;" C NoHoming src/Dodge/Data/Projectile.hs 48;" C 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 120;" C +NoLightFlare src/Dodge/Data/Item/Use.hs 115;" 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 @@ -1503,7 +1503,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 105;" C +ProjectileParams src/Dodge/Data/Item/Use.hs 104;" 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 @@ -1605,7 +1605,7 @@ RandomHelp src/RandomHelp.hs 3;" m RandomImpulse src/Dodge/Data/ActionPlan.hs 32;" C RandomPlacement src/Dodge/Data/GenWorld.hs 84;" C RandomTurn src/Dodge/Data/ActionPlan.hs 31;" C -RandomiseMuzzleFrames src/Dodge/Data/Item/Use.hs 57;" C +RandomiseMuzzleFrames src/Dodge/Data/Item/Use.hs 56;" C ReactorSS src/Dodge/Data/Scenario.hs 111;" C ReaderUpdate src/Dodge/Creature/ReaderUpdate.hs 1;" m RecRoomSS src/Dodge/Data/Scenario.hs 103;" C @@ -1857,7 +1857,7 @@ StartSpinPU src/Dodge/Data/Item/Use/Consumption/Ammo.hs 20;" C State src/Dodge/Creature/State.hs 1;" m State src/Dodge/Data/Creature/State.hs 6;" m StaticWalls src/Dodge/LevelGen/StaticWalls.hs 5;" m -Statistics src/Dodge/Creature/Statistics.hs 1;" m +Statistics src/Dodge/Creature/Statistics.hs 2;" m StayInArea src/Dodge/Data/Scenario.hs 13;" C Stick src/Dodge/Item/Held/Stick.hs 1;" m Stone src/Dodge/Data/Material.hs 11;" C @@ -1881,7 +1881,7 @@ SwarmAI src/Dodge/Data/Creature/Misc.hs 55;" C SwarmCrit src/Dodge/Creature/SwarmCrit.hs 1;" m SwarmPlacement src/Dodge/LevelGen/SwarmPlacement.hs 1;" m Switch src/Dodge/LevelGen/Switch.hs 1;" m -SwitchAlteRifle src/Dodge/Data/Item/Use.hs 58;" C +SwitchAlteRifle src/Dodge/Data/Item/Use.hs 57;" C SwitchToItem src/Dodge/Data/ActionPlan.hs 38;" C TAPE src/Dodge/Data/Item/Combine.hs 54;" C TARGETING src/Dodge/Data/Item/Combine.hs 21;" C @@ -1961,7 +1961,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 124;" C +TeslaGunFlare src/Dodge/Data/Item/Use.hs 119;" C Test src/Dodge/Creature/Test.hs 8;" m Test src/Dodge/Event/Test.hs 1;" m Test src/Picture/Test.hs 1;" m @@ -2075,32 +2075,32 @@ Update src/Preload/Update.hs 3;" m Use src/Dodge/Data/Item/Use.hs 5;" m Use src/Dodge/Default/Item/Use.hs 1;" m UseAheadPos src/Dodge/Data/ActionPlan.hs 160;" C -UseAttach src/Dodge/Data/Item/Use.hs 42;" C -UseBulletMod src/Dodge/Data/Item/Use.hs 47;" C -UseCondition src/Dodge/Data/Item/Use.hs 66;" t +UseAttach src/Dodge/Data/Item/Use.hs 41;" C +UseBulletMod src/Dodge/Data/Item/Use.hs 46;" C +UseCondition src/Dodge/Data/Item/Use.hs 65;" t UseDelay src/Dodge/Data/Item/HeldDelay.hs 13;" t -UseEquip src/Dodge/Data/Item/Use.hs 41;" C -UseExactly src/Dodge/Data/Item/Use.hs 150;" C -UseFocus src/Dodge/Data/Item/Use.hs 61;" t -UseFromLocation src/Dodge/Data/Item/Use.hs 63;" C -UseFromRoot src/Dodge/Data/Item/Use.hs 62;" C +UseEquip src/Dodge/Data/Item/Use.hs 40;" C +UseExactly src/Dodge/Data/Item/Use.hs 145;" C +UseFocus src/Dodge/Data/Item/Use.hs 60;" t +UseFromLocation src/Dodge/Data/Item/Use.hs 62;" C +UseFromRoot src/Dodge/Data/Item/Use.hs 61;" C UseHeld src/Dodge/Data/Item/Use.hs 33;" C -UseInt src/Dodge/Data/Item/Use.hs 43;" C +UseInt src/Dodge/Data/Item/Use.hs 42;" C UseInvItem src/Dodge/Data/WorldEffect.hs 36;" C UseItem src/Dodge/Data/ActionPlan.hs 37;" C UseItem src/Dodge/Creature/Impulse/UseItem.hs 3;" m UseItemWidth src/Dodge/Data/SelectionList.hs 41;" C -UseMapper src/Dodge/Data/Item/Use.hs 49;" C +UseMapper src/Dodge/Data/Item/Use.hs 48;" C UseMvTargetPos src/Dodge/Data/ActionPlan.hs 163;" C -UseNothing src/Dodge/Data/Item/Use.hs 44;" C -UseScope src/Dodge/Data/Item/Use.hs 46;" C +UseNothing src/Dodge/Data/Item/Use.hs 43;" C +UseScope src/Dodge/Data/Item/Use.hs 45;" C UseSelf src/Dodge/Data/ActionPlan.hs 157;" C UseTarget src/Dodge/Data/ActionPlan.hs 154;" C -UseToggle src/Dodge/Data/Item/Use.hs 48;" C -UseUpTo src/Dodge/Data/Item/Use.hs 151;" C -UseValue src/Dodge/Data/Item/Use.hs 45;" C -UseableAnytime src/Dodge/Data/Item/Use.hs 68;" C -UseableWhenAimed src/Dodge/Data/Item/Use.hs 67;" C +UseToggle src/Dodge/Data/Item/Use.hs 47;" C +UseUpTo src/Dodge/Data/Item/Use.hs 146;" C +UseValue src/Dodge/Data/Item/Use.hs 44;" C +UseableAnytime src/Dodge/Data/Item/Use.hs 67;" C +UseableWhenAimed src/Dodge/Data/Item/Use.hs 66;" C UsedInLink src/Dodge/Data/Room.hs 61;" C UsedOutLink src/Dodge/Data/Room.hs 56;" C Utility src/Dodge/Item/Held/Utility.hs 1;" m @@ -2213,7 +2213,7 @@ WorldLoad src/Dodge/WorldLoad.hs 1;" m WorldPos src/Dodge/WorldPos.hs 1;" m YELLOW src/Color/Data.hs 18;" C You src/Dodge/Base/You.hs 1;" m -YourControl src/Dodge/Creature/YourControl.hs 1;" m +YourControl src/Dodge/Creature/YourControl.hs 2;" m ZOOMSCOPE src/Dodge/Data/Item/Combine.hs 91;" C ZombieFaction src/Dodge/Data/Creature/State.hs 36;" C Zone src/Dodge/Wall/Zone.hs 1;" m @@ -2222,9 +2222,7 @@ 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 -_aimMuzzles src/Dodge/Data/Item/Use.hs 113;" f -_aimTurnSpeed src/Dodge/Data/Item/Use.hs 112;" f -_aimWeight src/Dodge/Data/Item/Use.hs 111;" f +_aimMuzzles src/Dodge/Data/Item/Use.hs 109;" 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 @@ -2236,14 +2234,14 @@ _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 104;" f -_ampCreateGas src/Dodge/Data/Item/Use.hs 106;" f -_ampPayload src/Dodge/Data/Item/Use.hs 105;" f +_ampBullet src/Dodge/Data/Item/Use.hs 103;" f +_ampCreateGas src/Dodge/Data/Item/Use.hs 105;" f +_ampPayload src/Dodge/Data/Item/Use.hs 104;" 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 -_apInt src/Dodge/Data/Item/Use.hs 73;" f -_apProjectiles src/Dodge/Data/Item/Use.hs 72;" f +_apInt src/Dodge/Data/Item/Use.hs 72;" f +_apProjectiles src/Dodge/Data/Item/Use.hs 71;" f _apStrategy src/Dodge/Data/ActionPlan.hs 21;" f _arLoaded src/Dodge/Data/Item/Use/Consumption.hs 28;" f _arMax src/Dodge/Data/Item/Use/Consumption.hs 29;" f @@ -2578,7 +2576,7 @@ _fullscreenShader src/Data/Preload/Render.hs 20;" f _futureWorlds src/Dodge/Data/World.hs 64;" f _futureWorlds src/Dodge/Data/World.hs 70;" f _gameplay_rotate_to_wall src/Dodge/Data/Config.hs 55;" f -_gasCreation src/Dodge/Data/Item/Use.hs 80;" f +_gasCreation src/Dodge/Data/Item/Use.hs 79;" f _genPlacements src/Dodge/Data/GenWorld.hs 25;" f _genRooms src/Dodge/Data/GenWorld.hs 26;" f _getAttentiveTo src/Dodge/Data/Creature/Perception.hs 61;" f @@ -2615,10 +2613,10 @@ _gwWorld src/Dodge/Data/GenWorld.hs 24;" f _hammerPosition src/Dodge/Data/Hammer.hs 14;" f _heldAim src/Dodge/Data/Item/Use.hs 35;" f _heldDelay src/Dodge/Data/Item/Use.hs 34;" f -_heldFrame src/Dodge/Data/Item/Use.hs 38;" f +_heldFrame src/Dodge/Data/Item/Use.hs 37;" f _heldParams src/Dodge/Data/Item/Use.hs 36;" f _heldPos src/Dodge/Data/Input.hs 54;" f -_heldUseEffect src/Dodge/Data/Item/Use.hs 39;" f +_heldUseEffect src/Dodge/Data/Item/Use.hs 38;" f _heldWorldPos src/Dodge/Data/Input.hs 56;" f _hotkeys src/Dodge/Data/LWorld.hs 148;" f _hud src/Dodge/Data/World.hs 45;" f @@ -2806,20 +2804,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 89;" f +_muzVel src/Dodge/Data/Item/Use.hs 88;" 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 161;" f -_mzAmmoSlot src/Dodge/Data/Item/Use.hs 158;" f -_mzEffect src/Dodge/Data/Item/Use.hs 160;" f -_mzFlareType src/Dodge/Data/Item/Use.hs 159;" f -_mzFrame src/Dodge/Data/Item/Use.hs 162;" f -_mzInaccuracy src/Dodge/Data/Item/Use.hs 157;" f -_mzPos src/Dodge/Data/Item/Use.hs 155;" f -_mzRot src/Dodge/Data/Item/Use.hs 156;" f +_mzAmmoPerShot src/Dodge/Data/Item/Use.hs 156;" f +_mzAmmoSlot src/Dodge/Data/Item/Use.hs 153;" f +_mzEffect src/Dodge/Data/Item/Use.hs 155;" f +_mzFlareType src/Dodge/Data/Item/Use.hs 154;" f +_mzFrame src/Dodge/Data/Item/Use.hs 157;" f +_mzInaccuracy src/Dodge/Data/Item/Use.hs 152;" f +_mzPos src/Dodge/Data/Item/Use.hs 150;" f +_mzRot src/Dodge/Data/Item/Use.hs 151;" 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 @@ -2828,10 +2826,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 137;" f -_nzMaxWalkAngle src/Dodge/Data/Item/Use.hs 136;" f -_nzPressure src/Dodge/Data/Item/Use.hs 135;" f -_nzWalkSpeed src/Dodge/Data/Item/Use.hs 138;" f +_nzCurrentWalkAngle src/Dodge/Data/Item/Use.hs 132;" f +_nzMaxWalkAngle src/Dodge/Data/Item/Use.hs 131;" f +_nzPressure src/Dodge/Data/Item/Use.hs 130;" f +_nzWalkSpeed src/Dodge/Data/Item/Use.hs 133;" 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 @@ -2957,8 +2955,8 @@ _pyFaces src/Polyhedra/Data.hs 14;" f _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 82;" f -_randomOffset src/Dodge/Data/Item/Use.hs 93;" f +_randomOffset src/Dodge/Data/Item/Use.hs 81;" f +_randomOffset src/Dodge/Data/Item/Use.hs 92;" 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 @@ -2972,7 +2970,7 @@ _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 90;" f +_rifling src/Dodge/Data/Item/Use.hs 89;" 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 @@ -3082,8 +3080,8 @@ _siWidth src/Dodge/Data/SelectionList.hs 47;" f _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 83;" f -_sidePush src/Dodge/Data/Item/Use.hs 94;" f +_sidePush src/Dodge/Data/Item/Use.hs 82;" f +_sidePush src/Dodge/Data/Item/Use.hs 93;" 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 @@ -3197,8 +3195,8 @@ _toPlaySoundVolume src/Sound/Data.hs 39;" f _toPlaySoundVolumeFraction src/Sound/Data.hs 40;" f _toPlaySounds src/Dodge/Data/World.hs 40;" f _topBoxSize src/Shape/Data.hs 17;" f -_torqueAfter src/Dodge/Data/Item/Use.hs 81;" f -_torqueAfter src/Dodge/Data/Item/Use.hs 92;" f +_torqueAfter src/Dodge/Data/Item/Use.hs 80;" f +_torqueAfter src/Dodge/Data/Item/Use.hs 91;" f _tractorBeams src/Dodge/Data/LWorld.hs 121;" f _trieChildren src/SimpleTrie.hs 11;" f _trieMVal src/SimpleTrie.hs 10;" f @@ -3212,12 +3210,12 @@ _tuFireTime src/Dodge/Data/Machine.hs 60;" f _tuTurnSpeed src/Dodge/Data/Machine.hs 59;" f _tuWeapon src/Dodge/Data/Machine.hs 58;" f _turnToPoint src/Dodge/Data/ActionPlan.hs 92;" f -_uInt src/Dodge/Data/Item/Use.hs 43;" f -_uScope src/Dodge/Data/Item/Use.hs 46;" f -_uValue src/Dodge/Data/Item/Use.hs 45;" f -_uaParams src/Dodge/Data/Item/Use.hs 42;" f -_ubMod src/Dodge/Data/Item/Use.hs 47;" f -_uequipEffect src/Dodge/Data/Item/Use.hs 41;" f +_uInt src/Dodge/Data/Item/Use.hs 42;" f +_uScope src/Dodge/Data/Item/Use.hs 45;" f +_uValue src/Dodge/Data/Item/Use.hs 44;" f +_uaParams src/Dodge/Data/Item/Use.hs 41;" f +_ubMod src/Dodge/Data/Item/Use.hs 46;" f +_uequipEffect src/Dodge/Data/Item/Use.hs 40;" f _unCombEdge src/Dodge/Combine/Graph.hs 31;" f _unCombNode src/Dodge/Combine/Graph.hs 24;" f _unFBO src/Shader/Data.hs 57;" f @@ -3232,14 +3230,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 150;" f -_useMapperLines src/Dodge/Data/Item/Use.hs 50;" f -_useMapperPoints src/Dodge/Data/Item/Use.hs 51;" f +_useExactly src/Dodge/Data/Item/Use.hs 145;" f +_useMapperLines src/Dodge/Data/Item/Use.hs 49;" f +_useMapperPoints src/Dodge/Data/Item/Use.hs 50;" 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 48;" f -_useUpTo src/Dodge/Data/Item/Use.hs 151;" f +_useToggle src/Dodge/Data/Item/Use.hs 47;" f +_useUpTo src/Dodge/Data/Item/Use.hs 146;" f _uvCanContinue src/Dodge/Data/Universe.hs 39;" f _uvConfig src/Dodge/Data/Universe.hs 37;" f _uvDebug src/Dodge/Data/Universe.hs 44;" f @@ -3294,10 +3292,10 @@ _wanPos src/Dodge/Data/LWorld.hs 162;" f _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 84;" f -_weaponInvLock src/Dodge/Data/Item/Use.hs 98;" f -_weaponRepeat src/Dodge/Data/Item/Use.hs 85;" f -_weaponRepeat src/Dodge/Data/Item/Use.hs 99;" f +_weaponInvLock src/Dodge/Data/Item/Use.hs 83;" f +_weaponInvLock src/Dodge/Data/Item/Use.hs 97;" f +_weaponRepeat src/Dodge/Data/Item/Use.hs 84;" f +_weaponRepeat src/Dodge/Data/Item/Use.hs 98;" 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 @@ -3388,7 +3386,7 @@ advanceStepCounter src/Dodge/Creature/Impulse/Movement.hs 44;" f aimDelaySweep src/Dodge/Render/Picture.hs 264;" f aimStanceHandlePos src/Dodge/Item/HeldOffset.hs 64;" f aimStanceInfo src/Dodge/Item/Info.hs 240;" f -aimTurn src/Dodge/Creature/YourControl.hs 161;" f +aimTurn src/Dodge/Creature/YourControl.hs 162;" f aimingWeaponZeroPos src/Dodge/Item/HeldOffset.hs 60;" f airlock src/Dodge/Room/Airlock.hs 19;" f airlock0 src/Dodge/Room/Airlock.hs 25;" f @@ -3398,13 +3396,13 @@ airlockDoor src/Dodge/Room/Airlock.hs 51;" f airlockDoubleDoor src/Dodge/Room/Airlock.hs 54;" f airlockSimple src/Dodge/Room/Airlock.hs 66;" f airlockZ src/Dodge/Room/Airlock.hs 91;" f -allInvLocs src/Dodge/Item/Grammar.hs 311;" f +allInvLocs src/Dodge/Item/Grammar.hs 313;" f allVisibleWalls src/Dodge/Base/Collide.hs 131;" f alongSegBy src/Geometry.hs 40;" f -alteRifle src/Dodge/Item/Held/Cane.hs 59;" f +alteRifle src/Dodge/Item/Held/Cane.hs 57;" f ammoMagInfo src/Dodge/Item/Info.hs 46;" f ammoMagSPic src/Dodge/Item/Draw/SPic.hs 124;" f -amr src/Dodge/Item/Held/Rod.hs 41;" f +amr src/Dodge/Item/Held/Rod.hs 40;" f analyser src/Dodge/Placement/Instance/Analyser.hs 12;" f analyserByDoor src/Dodge/Room/LasTurret.hs 77;" f andOrRegex src/Dodge/DisplayInventory.hs 78;" f @@ -3414,24 +3412,24 @@ angleVV3 src/Geometry/Vector3D.hs 122;" f annoToRoomTree src/Dodge/Annotation.hs 17;" f anyUnusedSpot src/Dodge/PlacementSpot.hs 66;" f anythingHitCirc src/Dodge/Base/Collide.hs 246;" f -applyCME src/Dodge/HeldUse.hs 164;" f +applyCME src/Dodge/HeldUse.hs 166;" f applyCreatureDamage src/Dodge/Creature/Damage.hs 14;" f applyDamageEffect src/Dodge/Creature/Damage.hs 31;" f applyEventIO src/Loop.hs 89;" f applyGravityPU src/Dodge/Projectile/Update.hs 56;" f applyIndividualDamage src/Dodge/Creature/Damage.hs 49;" f applyIndividualDamage' src/Dodge/Creature/Damage.hs 52;" f -applyInvLock src/Dodge/HeldUse.hs 179;" f +applyInvLock src/Dodge/HeldUse.hs 181;" f applyMagnetsToBul src/Dodge/Bullet.hs 28;" f applyNoDamage src/Dodge/Creature/Damage.hs 11;" f applyPastDamages src/Dodge/Creature/State.hs 142;" f applyPiercingDamage src/Dodge/Creature/Damage.hs 57;" f applyPosition src/Sound.hs 111;" f -applyRecoil src/Dodge/HeldUse.hs 199;" f +applyRecoil src/Dodge/HeldUse.hs 201;" f applyResFactor src/Dodge/Data/Config.hs 110;" f applySetTerminalString src/Dodge/Debug/Terminal.hs 81;" f -applySidePush src/Dodge/HeldUse.hs 298;" f -applySoundCME src/Dodge/HeldUse.hs 189;" f +applySidePush src/Dodge/HeldUse.hs 300;" f +applySoundCME src/Dodge/HeldUse.hs 191;" f applyTerminalCommand src/Dodge/Debug/Terminal.hs 28;" f applyTerminalCommandArguments src/Dodge/Debug/Terminal.hs 42;" f applyTerminalString src/Dodge/Debug/Terminal.hs 22;" f @@ -3439,7 +3437,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 309;" f +applyTorqueCME src/Dodge/HeldUse.hs 311;" f applyWorldConfig src/Dodge/Config/Update.hs 38;" f aquamarine src/Color.hs 23;" f arHUD src/Dodge/Item/Scope.hs 135;" f @@ -3474,14 +3472,14 @@ attachOnward' src/Dodge/Tree/Compose.hs 98;" f attachTree src/Dodge/Tree/Compose.hs 38;" f attentionViewPoint src/Dodge/Creature/ReaderUpdate.hs 66;" f attribSize src/Shader/Compile.hs 306;" f -autoAmr src/Dodge/Item/Held/Rod.hs 46;" f +autoAmr src/Dodge/Item/Held/Rod.hs 45;" f autoBS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 374;" f autoCrit src/Dodge/Creature/AutoCrit.hs 12;" f autoDetector src/Dodge/Item/Weapon/Radar.hs 11;" f autoEffect src/Dodge/Item/Weapon/ExtraEffect.hs 18;" f autoGunS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 532;" f autoPistol src/Dodge/Item/Held/Stick.hs 58;" f -autoRifle src/Dodge/Item/Held/Cane.hs 71;" f +autoRifle src/Dodge/Item/Held/Cane.hs 69;" f awakeLevelPerception src/Dodge/Creature/Perception.hs 162;" f axisInt src/Geometry/Intersect.hs 227;" f azure src/Color.hs 22;" f @@ -3500,7 +3498,7 @@ barPP src/Dodge/Room/Foreground.hs 236;" f barrel src/Dodge/Creature/Inanimate.hs 17;" f baseAMRShape src/Dodge/Item/Draw/SPic.hs 399;" f baseBlockPane src/Dodge/Placement/Instance/Wall.hs 86;" f -baseCI src/Dodge/Item/Grammar.hs 186;" f +baseCI src/Dodge/Item/Grammar.hs 188;" f baseCaneShape src/Dodge/Item/Draw/SPic.hs 306;" f baseDebris src/Dodge/Block/Debris.hs 122;" f baseFloorTileSize src/Tile.hs 45;" f @@ -3511,7 +3509,7 @@ baseShoulder src/Dodge/Creature/Picture.hs 131;" f baseStickShape src/Dodge/Item/Draw/SPic.hs 283;" f baseStickShapeX src/Dodge/Item/Draw/SPic.hs 278;" f baseStickSpread src/Dodge/Item/Held/Stick.hs 39;" f -baseTriggerType src/Dodge/BaseTriggerType.hs 9;" f +baseTriggerType src/Dodge/BaseTriggerType.hs 12;" f baseTriggerType src/Dodge/Item/TriggerType.hs 5;" f basicAttentionUpdate src/Dodge/Creature/Perception.hs 127;" f basicAwarenessUpdate src/Dodge/Creature/Perception.hs 37;" f @@ -3522,7 +3520,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 409;" f +basicMuzFlare src/Dodge/HeldUse.hs 411;" f basicTerminal src/Dodge/Terminal.hs 35;" f battery src/Dodge/Item/Ammo.hs 87;" f batteryPack src/Dodge/Item/Equipment.hs 55;" f @@ -3531,7 +3529,7 @@ beltMag src/Dodge/Item/Ammo.hs 47;" f bfsNodePoints src/Dodge/Path.hs 58;" f bfsThenReturn src/Dodge/Creature/ReaderUpdate.hs 216;" f bgateCalc src/Dodge/Inventory/SelectionList.hs 112;" f -bgunSound src/Dodge/HeldUse.hs 252;" f +bgunSound src/Dodge/HeldUse.hs 254;" f bindFBO src/Render.hs 244;" f bingate src/Dodge/Item/Scope.hs 110;" f black src/Color.hs 27;" f @@ -3541,7 +3539,7 @@ blinkActionFail src/Dodge/Creature/Action/Blink.hs 88;" f blinkActionMousePos src/Dodge/Creature/Action/Blink.hs 22;" f blinkDistortions src/Dodge/Creature/Action/Blink.hs 43;" f blinkShockwave src/Dodge/Creature/Action/Blink.hs 79;" f -blinker src/Dodge/Item/Held/Utility.hs 51;" f +blinker src/Dodge/Item/Held/Utility.hs 50;" f blinker src/Dodge/Item/Weapon/Utility.hs 14;" f blipAt src/Dodge/RadarSweep.hs 77;" f blockLine src/Dodge/Placement/Instance/Wall.hs 41;" f @@ -3557,7 +3555,7 @@ blood5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 404;" f blood6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 536;" f blood7S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 366;" f blood8S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 354;" f -blowTorch src/Dodge/Item/Held/SprayGuns.hs 50;" f +blowTorch src/Dodge/Item/Held/SprayGuns.hs 49;" f blue src/Color.hs 16;" f blunderbuss src/Dodge/Item/Held/Cone.hs 28;" f boosterGun src/Dodge/Item/Equipment/Booster.hs 9;" f @@ -3588,7 +3586,7 @@ bulletModule src/Dodge/Item/Scope.hs 118;" f bulletPayloadModule src/Dodge/Item/Scope.hs 132;" f bulletSynthesizer src/Dodge/Item/Ammo.hs 117;" f bulletWeapons src/Dodge/Combine/Combinations.hs 247;" f -burstRifle src/Dodge/Item/Held/Cane.hs 77;" f +burstRifle src/Dodge/Item/Held/Cane.hs 74;" f buzzS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 538;" f cFilledRect src/Dodge/CharacterEnums.hs 6;" f cWireRect src/Dodge/CharacterEnums.hs 10;" f @@ -3755,7 +3753,7 @@ crBlips src/Dodge/RadarSweep.hs 87;" f crCamouflage src/Dodge/Creature/Picture.hs 31;" f crCanSeeCr src/Dodge/Creature/Test.hs 48;" f crCrSpring src/Dodge/Update.hs 781;" f -crCurrentEquipment src/Dodge/Creature/Statistics.hs 26;" f +crCurrentEquipment src/Dodge/Creature/Statistics.hs 27;" f crDisplayAwareness src/Dodge/Creature/Picture/Awareness.hs 37;" f crDisplayVigilance src/Dodge/Creature/Picture/Awareness.hs 51;" f crHasTarget src/Dodge/Creature/Test.hs 61;" f @@ -3793,14 +3791,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 826;" f -createProjectileR src/Dodge/HeldUse.hs 791;" f +createProjectile src/Dodge/HeldUse.hs 828;" f +createProjectileR src/Dodge/HeldUse.hs 793;" f createShell src/Dodge/Projectile/Create.hs 22;" f createShieldWall src/Dodge/Euse.hs 107;" f createUnusedLinkPos src/Dodge/Tree/Shift.hs 117;" f createWall src/Dodge/Wall/Create.hs 8;" f creatureDisplayText src/Dodge/Creature/Picture/Awareness.hs 10;" f -creatureShootLaser src/Dodge/HeldUse.hs 526;" f +creatureShootLaser src/Dodge/HeldUse.hs 528;" 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 @@ -3988,11 +3986,11 @@ destroyMount src/Dodge/Block.hs 102;" f destroyMounts src/Dodge/Block.hs 99;" f destroyProjectile src/Dodge/Projectile/Update.hs 139;" f detV src/Geometry/Vector.hs 93;" f -detector src/Dodge/Item/Held/Utility.hs 39;" f +detector src/Dodge/Item/Held/Utility.hs 38;" 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 221;" f -determineProjectileTracking src/Dodge/HeldUse.hs 774;" f +determineProjectileTracking src/Dodge/HeldUse.hs 776;" f diagonalLinesRect src/Dodge/Room/Foreground.hs 52;" f did src/Dodge/Item/InvSize.hs 54;" f diffAngles src/Geometry.hs 204;" f @@ -4023,7 +4021,7 @@ divideLineExact src/Geometry.hs 275;" f divideLineOddNumPoints src/Geometry.hs 260;" f doAfterPlacement src/Dodge/Layout.hs 86;" f doAfterPlacements src/Dodge/Layout.hs 83;" f -doAimTwist src/Dodge/Creature/YourControl.hs 136;" f +doAimTwist src/Dodge/Creature/YourControl.hs 137;" f doAnyEquipmentEffect src/Dodge/Creature/State.hs 189;" f doArcStep src/Dodge/Tesla/Arc.hs 135;" f doBackspace src/Dodge/Update/Input/Text.hs 31;" f @@ -4057,9 +4055,9 @@ 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 713;" f +doGenFloat src/Dodge/HeldUse.hs 715;" f doGravityPU src/Dodge/Projectile/Update.hs 50;" f -doHeldUseEffect src/Dodge/HeldUse.hs 129;" f +doHeldUseEffect src/Dodge/HeldUse.hs 131;" f doInPlacements src/Dodge/Layout.hs 92;" f doIndividualPlacements src/Dodge/Layout.hs 117;" f doInputScreenInput src/Dodge/Update/Input/ScreenLayer.hs 28;" f @@ -4110,7 +4108,7 @@ doWdCrBl src/Dodge/CreatureEffect.hs 37;" f doWdCrCr src/Dodge/CreatureEffect.hs 12;" f doWdP2f src/Dodge/WdP2f.hs 12;" f doWdWd src/Dodge/WorldEffect.hs 28;" f -doWeaponRepetitions src/Dodge/HeldUse.hs 153;" f +doWeaponRepetitions src/Dodge/HeldUse.hs 155;" f doWorldEvents src/Dodge/Update.hs 425;" f doWorldPos src/Dodge/WorldPos.hs 7;" f door src/Dodge/Room/Door.hs 13;" f @@ -4253,7 +4251,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 904;" f +dropInventoryPath src/Dodge/HeldUse.hs 906;" 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 @@ -4273,7 +4271,7 @@ edgeToPic src/Dodge/Debug/Picture.hs 431;" f effectWhileAttached src/Dodge/ItEffect.hs 56;" f ejectS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 502;" f elecCrackleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 386;" f -elephantGun src/Dodge/Item/Held/Rod.hs 34;" f +elephantGun src/Dodge/Item/Held/Rod.hs 33;" f emptyCorridor src/Dodge/Room/BlinkAcross.hs 22;" f emptyTrie src/SimpleTrie.hs 16;" f encircle src/Dodge/Creature/Boid.hs 115;" f @@ -4293,7 +4291,7 @@ equipInfo src/Dodge/Item/Info.hs 138;" f equipItemSPic src/Dodge/Item/Draw/SPic.hs 144;" f equipPosition src/Dodge/Item/Draw.hs 28;" f equipSiteInfo src/Dodge/Item/Info.hs 250;" f -equipmentStrValue src/Dodge/Creature/Statistics.hs 20;" f +equipmentStrValue src/Dodge/Creature/Statistics.hs 21;" f errorAngleVV src/Geometry.hs 59;" f errorClosestPointOnLine src/Geometry.hs 71;" f errorClosestPointOnLineParam src/Geometry.hs 77;" f @@ -4318,8 +4316,8 @@ extTrigLitPos src/Dodge/Placement/Instance/Button.hs 84;" f extendAway src/Dodge/Placement/Instance/LightSource.hs 200;" f extendConeToScreenEdge src/Dodge/Debug/Picture.hs 82;" f extraPics src/Dodge/Render/ShapePicture.hs 82;" f -extraWeaponLinks src/Dodge/Item/Grammar.hs 119;" f -extraWeaponLinksBelow src/Dodge/Item/Grammar.hs 128;" f +extraWeaponLinks src/Dodge/Item/Grammar.hs 121;" f +extraWeaponLinksBelow src/Dodge/Item/Grammar.hs 130;" f extractRoomPos src/Dodge/RoomPos.hs 6;" f faceEdges src/Polyhedra.hs 65;" f facesToVF src/Polyhedra/Geodesic.hs 69;" f @@ -4353,11 +4351,11 @@ flDamageInArea src/Dodge/Flame.hs 109;" f flFlicker src/Dodge/Flame.hs 123;" f flameShield src/Dodge/Item/Equipment.hs 34;" f flameSpitter src/Dodge/Item/Held/SprayGuns.hs 29;" f -flameThrower src/Dodge/Item/Held/SprayGuns.hs 71;" f -flameTorrent src/Dodge/Item/Held/SprayGuns.hs 39;" f -flameWall src/Dodge/Item/Held/SprayGuns.hs 55;" f +flameThrower src/Dodge/Item/Held/SprayGuns.hs 70;" f +flameTorrent src/Dodge/Item/Held/SprayGuns.hs 38;" f +flameWall src/Dodge/Item/Held/SprayGuns.hs 54;" f flamerPic src/Dodge/Item/Draw/SPic.hs 379;" f -flareCircleAt src/Dodge/HeldUse.hs 390;" f +flareCircleAt src/Dodge/HeldUse.hs 392;" 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 @@ -4417,16 +4415,16 @@ fusePoint src/Dodge/LevelGen/StaticWalls.hs 158;" f fuseWall src/Dodge/LevelGen/StaticWalls.hs 165;" f fuseWallsWith src/Dodge/LevelGen/StaticWalls.hs 172;" f g src/ShortShow.hs 33;" f -gLauncher src/Dodge/Item/Held/Launcher.hs 31;" f +gLauncher src/Dodge/Item/Held/Launcher.hs 30;" f gRandify src/Dodge/Randify.hs 11;" f -gadgetEffect src/Dodge/HeldUse.hs 41;" f +gadgetEffect src/Dodge/HeldUse.hs 42;" f gameOverMenu src/Dodge/Menu.hs 187;" f gameRoomFromRoom src/Dodge/Layout.hs 161;" f 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 -gasCreate src/Dodge/HeldUse.hs 710;" f +gasCreate src/Dodge/HeldUse.hs 712;" f generateGenParams src/Dodge/LevelGen/LevelStructure.hs 22;" f generateGraphs src/Dodge/LevelGen.hs 39;" f generateLayout src/Dodge/Layout/Generate.hs 10;" f @@ -4438,33 +4436,33 @@ geometryTests test/Spec.hs 17;" f geometryUnitTests test/Spec.hs 22;" f geqConstr src/SameConstr.hs 21;" f getAimZoom src/Dodge/Update/Camera.hs 134;" f -getAmmoLinks src/Dodge/Item/Grammar.hs 135;" f +getAmmoLinks src/Dodge/Item/Grammar.hs 137;" f getArguments src/Dodge/Update/Scroll.hs 176;" f getArguments' src/Dodge/Update/Scroll.hs 164;" f -getAttachedSFLink src/Dodge/HeldUse.hs 460;" f -getAutoSpringLinks src/Dodge/Item/Grammar.hs 114;" f +getAttachedSFLink src/Dodge/HeldUse.hs 462;" f +getAutoSpringLinks src/Dodge/Item/Grammar.hs 116;" f getAvailableListLines src/Dodge/SelectionList.hs 10;" f -getBulletType src/Dodge/HeldUse.hs 595;" f +getBulletType src/Dodge/HeldUse.hs 597;" f getCloseObj src/Dodge/Update/Input/InGame.hs 515;" f getCommands src/Dodge/Terminal.hs 117;" f getCommandsHelp src/Dodge/Terminal.hs 75;" f -getCrDexterity src/Dodge/Creature/Statistics.hs 11;" f +getCrDexterity src/Dodge/Creature/Statistics.hs 12;" f getCrEquipment src/Dodge/Equipment.hs 7;" f -getCrMoveSpeed src/Dodge/Creature/Statistics.hs 14;" f +getCrMoveSpeed src/Dodge/Creature/Statistics.hs 15;" 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 819;" f +getGrenadeHitEffect src/Dodge/HeldUse.hs 821;" f getInventoryPath src/Dodge/Inventory/Path.hs 8;" f getItemValue src/Dodge/Inventory/SelectionList.hs 141;" f -getLaserColor src/Dodge/HeldUse.hs 406;" f -getLaserDamage src/Dodge/HeldUse.hs 403;" f -getLaserPhaseV src/Dodge/HeldUse.hs 400;" f +getLaserColor src/Dodge/HeldUse.hs 408;" f +getLaserDamage src/Dodge/HeldUse.hs 405;" f +getLaserPhaseV src/Dodge/HeldUse.hs 402;" f getLinksOfType src/Dodge/RoomLink.hs 39;" f getMaxLinesTM src/Dodge/Terminal/Type.hs 11;" f getMenuMouseContext src/Dodge/Update.hs 385;" f getNodePos src/Dodge/Path.hs 31;" f -getPJStabiliser src/Dodge/HeldUse.hs 811;" f +getPJStabiliser src/Dodge/HeldUse.hs 813;" f getPretty src/AesonHelp.hs 8;" f getPromptTM src/Dodge/Terminal/Type.hs 8;" f getRootItemBounds src/Dodge/Render/HUD.hs 94;" f @@ -4498,7 +4496,7 @@ goToPostStrat src/Dodge/Creature/Strategy.hs 10;" f goToTarget src/Dodge/Creature/ReaderUpdate.hs 136;" f grahamEliminate src/Geometry/Polygon.hs 125;" f grahamScan src/Geometry/Polygon.hs 116;" f -grapeCannon src/Dodge/Item/Held/Cone.hs 36;" f +grapeCannon src/Dodge/Item/Held/Cone.hs 34;" f graphToEdges src/Dodge/Graph.hs 35;" f graphToIncidence src/Dodge/Graph.hs 40;" f graphicsMenu src/Dodge/Menu.hs 165;" f @@ -4523,9 +4521,9 @@ hackOutline src/Dodge/Render/Outline.hs 5;" f halfHeight src/Dodge/Base/Window.hs 48;" f halfWidth src/Dodge/Base/Window.hs 48;" f haltSound src/Dodge/SoundLogic.hs 38;" f -hammerCheck src/Dodge/HeldUse.hs 80;" f +hammerCheck src/Dodge/HeldUse.hs 81;" f handleEvent src/Dodge/Event.hs 27;" f -handleHotkeys src/Dodge/Creature/YourControl.hs 41;" f +handleHotkeys src/Dodge/Creature/YourControl.hs 42;" f handleKeyboardEvent src/Dodge/Event/Input.hs 22;" f handleMouseButtonEvent src/Dodge/Event/Input.hs 63;" f handleMouseMotionEvent src/Dodge/Event/Input.hs 47;" f @@ -4553,17 +4551,19 @@ healthTest src/Dodge/Room/LasTurret.hs 95;" f heightWallPS src/Dodge/Placement/Instance/Wall.hs 13;" f heldAimStance src/Dodge/Item/AimStance.hs 17;" f heldAimZoom src/Dodge/Update/Camera.hs 139;" f -heldEffect src/Dodge/HeldUse.hs 61;" f -heldEffectMuzzles src/Dodge/HeldUse.hs 119;" f -heldEffectNoHammerCheck src/Dodge/HeldUse.hs 69;" f +heldEffect src/Dodge/HeldUse.hs 62;" f +heldEffectMuzzles src/Dodge/HeldUse.hs 121;" f +heldEffectNoHammerCheck src/Dodge/HeldUse.hs 70;" f heldHandlePos src/Dodge/Item/HeldOffset.hs 94;" f heldInfo src/Dodge/Item/Info.hs 88;" f +heldItemBulkiness src/Dodge/Creature/YourControl.hs 174;" f heldItemOffset src/Dodge/Item/HeldOffset.hs 71;" f heldItemOrient2D src/Dodge/Item/HeldOffset.hs 28;" f heldItemRelativeOrient src/Dodge/Item/HeldOffset.hs 33;" f heldItemSPic src/Dodge/Item/Draw/SPic.hs 220;" f +heldItemWeight src/Dodge/Creature/Statistics.hs 41;" f heldPositionInfo src/Dodge/Item/Info.hs 237;" f -heldTriggerType src/Dodge/BaseTriggerType.hs 14;" f +heldTriggerType src/Dodge/BaseTriggerType.hs 17;" f helpCommand src/Dodge/Terminal.hs 66;" f helpPoly3D src/Polyhedra.hs 125;" f heron src/Geometry.hs 217;" f @@ -4579,7 +4579,7 @@ holsterWeapon src/Dodge/Creature/Volition.hs 14;" f homingModule src/Dodge/Item/Scope.hs 48;" f horPipe src/Dodge/Placement/Instance/Pipe.hs 9;" f hotkeyToChar src/Dodge/Inventory/SelectionList.hs 182;" f -hotkeyToScancode src/Dodge/Creature/YourControl.hs 71;" f +hotkeyToScancode src/Dodge/Creature/YourControl.hs 72;" f hotkeyToString src/Dodge/Inventory/SelectionList.hs 179;" f humanoidAIList src/Dodge/Humanoid.hs 181;" f iShape src/Dodge/Placement/Instance/LightSource.hs 73;" f @@ -4652,16 +4652,16 @@ interweave src/Justify.hs 17;" f introScan src/Dodge/Item/Scope.hs 57;" f introScanValue src/Dodge/Inventory/SelectionList.hs 77;" f intsToPos src/Dodge/Room/Modify/Girder.hs 160;" f -invAdj src/Dodge/Item/Grammar.hs 292;" f +invAdj src/Dodge/Item/Grammar.hs 294;" f invCursorParams src/Dodge/ListDisplayParams.hs 36;" f invDP src/Dodge/ListDisplayParams.hs 30;" f invDimColor src/Dodge/DisplayInventory.hs 192;" f invHead src/Dodge/Render/HUD.hs 404;" f invItemLocUpdate src/Dodge/Creature/State.hs 178;" f -invLDT src/Dodge/Item/Grammar.hs 272;" f +invLDT src/Dodge/Item/Grammar.hs 274;" f invRootItemEffs src/Dodge/Creature/State.hs 171;" f -invRootMap src/Dodge/Item/Grammar.hs 281;" f -invRootTrees src/Dodge/Item/Grammar.hs 302;" f +invRootMap src/Dodge/Item/Grammar.hs 283;" f +invRootTrees src/Dodge/Item/Grammar.hs 304;" f invSelectionItem src/Dodge/Inventory/SelectionList.hs 30;" f invSetSelection src/Dodge/Inventory.hs 180;" f invSetSelectionPos src/Dodge/Inventory.hs 188;" f @@ -4679,7 +4679,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 416;" f +isAmmoIntLink src/Dodge/HeldUse.hs 418;" f isAnimate src/Dodge/Creature/Test.hs 140;" f isCognizant src/Dodge/Creature/Perception.hs 105;" f isConnected src/Dodge/Inventory/Swap.hs 74;" f @@ -4707,12 +4707,13 @@ isoMatrix src/MatrixHelper.hs 30;" f isotriBWH src/Geometry/Polygon.hs 20;" f itDim src/Dodge/Item/InvSize.hs 21;" f itInvHeight src/Dodge/Item/InvSize.hs 11;" f -itemBaseConnections src/Dodge/Item/Grammar.hs 189;" f +itemBaseConnections src/Dodge/Item/Grammar.hs 191;" f itemBaseName src/Dodge/Item/Display.hs 57;" f itemBlips src/Dodge/RadarSweep.hs 93;" f +itemBulkiness src/Dodge/Creature/YourControl.hs 169;" f itemCombinations src/Dodge/Combine/Combinations.hs 55;" f itemCombinationsEdges src/Dodge/Combine/Graph.hs 60;" f -itemDetectorEffect src/Dodge/HeldUse.hs 466;" f +itemDetectorEffect src/Dodge/HeldUse.hs 468;" 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 @@ -4732,9 +4733,10 @@ itemScroll src/Dodge/Update/Scroll.hs 50;" f itemScrollDisplay src/Dodge/Inventory/SelectionList.hs 118;" f itemScrollValue src/Dodge/Inventory/SelectionList.hs 145;" f itemString src/Dodge/Item/Display.hs 53;" f -itemToBreakLists src/Dodge/Item/Grammar.hs 61;" f -itemToFunction src/Dodge/Item/Grammar.hs 141;" f +itemToBreakLists src/Dodge/Item/Grammar.hs 63;" f +itemToFunction src/Dodge/Item/Grammar.hs 143;" f itemTreeSPic src/Dodge/Item/Draw/SPic.hs 22;" f +itemWeight src/Dodge/Creature/Statistics.hs 36;" f iterateUntil src/MonadHelp.hs 23;" f iterateWhile src/MonadHelp.hs 30;" f itmBaseInfo src/Dodge/Item/Info.hs 28;" f @@ -4743,7 +4745,7 @@ itmSpaceInfo src/Dodge/Item/Info.hs 23;" f itmUsageInfo src/Dodge/Item/Info.hs 227;" f jShape src/Dodge/Placement/Instance/LightSource.hs 85;" f jaggedShape src/Dodge/Block/Debris.hs 191;" f -joinItemsInList src/Dodge/Item/Grammar.hs 262;" f +joinItemsInList src/Dodge/Item/Grammar.hs 264;" f joystick src/Dodge/Item/Scope.hs 150;" f jps0' src/Dodge/LevelGen/PlacementHelper.hs 60;" f jps0PushPS src/Dodge/LevelGen/PlacementHelper.hs 63;" f @@ -4755,7 +4757,7 @@ jumpLegs src/Dodge/Item/Equipment.hs 155;" f justify src/Justify.hs 9;" f k src/ShortShow.hs 33;" f k' src/ShortShow.hs 33;" f -keyCard src/Dodge/Item/Held/Utility.hs 28;" f +keyCard src/Dodge/Item/Held/Utility.hs 27;" f keyCardAnalyserByDoor src/Dodge/Room/LasTurret.hs 71;" f keyCardRoomRunPast src/Dodge/Room/LasTurret.hs 59;" f keyCardRunPastRand src/Dodge/LockAndKey.hs 36;" f @@ -4776,8 +4778,8 @@ 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 43;" f -laserLinkTest src/Dodge/Item/Grammar.hs 195;" f +laser src/Dodge/Item/Held/BatteryGuns.hs 41;" f +laserLinkTest src/Dodge/Item/Grammar.hs 197;" f lastMap src/Dodge/DoubleTree.hs 174;" f launcherCrit src/Dodge/Creature/LauncherCrit.hs 12;" f layoutLevelFromSeed src/Dodge/LevelGen.hs 47;" f @@ -4792,9 +4794,9 @@ ldtToIM src/Dodge/DoubleTree.hs 143;" f ldtToIndentList src/Dodge/DoubleTree.hs 146;" f ldtToLoc src/Dodge/DoubleTree.hs 187;" f left src/DoubleStack.hs 16;" f -leftIsParentCombine src/Dodge/Item/Grammar.hs 234;" f +leftIsParentCombine src/Dodge/Item/Grammar.hs 236;" f leftPad src/Padding.hs 15;" f -leftRightCombine src/Dodge/Item/Grammar.hs 248;" f +leftRightCombine src/Dodge/Item/Grammar.hs 250;" f legsSPic src/Dodge/Item/Draw/SPic.hs 469;" f liShape src/Dodge/Placement/Instance/LightSource.hs 98;" f light src/Color.hs 104;" f @@ -4822,15 +4824,15 @@ listCursorChooseBorderScale src/Dodge/Render/List.hs 135;" f listGuard src/Dodge/Creature/ReaderUpdate.hs 188;" f listSelectionColorPicture src/Dodge/DisplayInventory.hs 308;" f litCorridor90 src/Dodge/Room/RoadBlock.hs 26;" f -llleft src/Dodge/Item/Grammar.hs 198;" f -llright src/Dodge/Item/Grammar.hs 204;" f +llleft src/Dodge/Item/Grammar.hs 200;" f +llright src/Dodge/Item/Grammar.hs 206;" f lmt src/MatrixHelper.hs 43;" f lnkBothAnd src/Dodge/Room/Procedural.hs 121;" f 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 27;" f -loadMuzzle src/Dodge/HeldUse.hs 326;" f +loadMuzzle src/Dodge/HeldUse.hs 328;" f loadSaveSlot src/Dodge/Save.hs 74;" f loadSeed src/Dodge/LoadSeed.hs 7;" f loadSound src/Dodge/SoundLogic/LoadSound.hs 11;" f @@ -4869,7 +4871,7 @@ lsPosRad src/Dodge/LightSource.hs 17;" f ltAutoCrit src/Dodge/Creature/LtAutoCrit.hs 12;" f m src/ShortShow.hs 33;" f machineAddSound src/Dodge/Machine.hs 49;" f -machinePistol src/Dodge/Item/Held/Stick.hs 65;" f +machinePistol src/Dodge/Item/Held/Stick.hs 61;" f machineUpdateDeathEff src/Dodge/Machine.hs 34;" f machineUpdateLiveDieEff src/Dodge/Machine.hs 16;" f magShield src/Dodge/Item/Equipment.hs 27;" f @@ -4885,8 +4887,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 661;" f -makeBullet' src/Dodge/HeldUse.hs 647;" f +makeBullet src/Dodge/HeldUse.hs 663;" f +makeBullet' src/Dodge/HeldUse.hs 649;" f makeButton src/Dodge/LevelGen/Switch.hs 16;" f makeByteStringShaderUsingVAO src/Shader/Compile.hs 128;" f makeCloudAt src/Dodge/WorldEvent/Cloud.hs 18;" f @@ -4912,7 +4914,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 348;" f +makeMuzzleFlare src/Dodge/HeldUse.hs 350;" f makeParagraph src/Justify.hs 6;" f makePathBetween src/Dodge/Path.hs 35;" f makePathBetweenPs src/Dodge/Path.hs 54;" f @@ -4968,11 +4970,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 745;" f -mcShootLaser src/Dodge/HeldUse.hs 737;" f +mcShootAuto src/Dodge/HeldUse.hs 747;" f +mcShootLaser src/Dodge/HeldUse.hs 739;" f mcTriggerVal src/Dodge/Machine/Update.hs 93;" f mcTypeUpdate src/Dodge/Machine/Update.hs 27;" f -mcUseHeld src/Dodge/HeldUse.hs 680;" f +mcUseHeld src/Dodge/HeldUse.hs 682;" 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 @@ -5013,7 +5015,7 @@ minCrIXOn src/Dodge/Zoning/Creature.hs 46;" f minOn src/FoldableHelp.hs 35;" f mini1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 346;" f miniGunCrit src/Dodge/Creature.hs 62;" f -miniGunX src/Dodge/Item/Held/Cane.hs 90;" f +miniGunX src/Dodge/Item/Held/Cane.hs 87;" f miniGunXPict src/Dodge/Item/Draw/SPic.hs 357;" f miniGunXPictItem src/Dodge/Item/Draw/SPic.hs 352;" f miniS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 548;" f @@ -5065,7 +5067,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 376;" f +muzFlareAt src/Dodge/HeldUse.hs 378;" 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 @@ -5411,7 +5413,7 @@ quarterRoomSquare src/Dodge/Room/Procedural.hs 213;" f quarterRoomTri src/Dodge/Room/Procedural.hs 177;" f quitCommand src/Dodge/Terminal.hs 57;" f rLauncher src/Dodge/Item/Held/Launcher.hs 14;" f -rLauncherX src/Dodge/Item/Held/Launcher.hs 37;" f +rLauncherX src/Dodge/Item/Held/Launcher.hs 36;" f rToOnward src/Dodge/Cleat.hs 21;" f radBounds src/Dodge/Room/Foreground.hs 154;" f radToDeg src/Geometry/Vector.hs 122;" f @@ -5454,7 +5456,7 @@ randsOnCirc src/RandomHelp.hs 127;" f randsSpread src/RandomHelp.hs 120;" f ratIntersectLineLine src/Geometry/Intersect.hs 195;" f readSaveSlot src/Dodge/Save.hs 45;" f -recoilAmount src/Dodge/HeldUse.hs 204;" f +recoilAmount src/Dodge/HeldUse.hs 206;" f rectNSWE src/Geometry/Polygon.hs 13;" f rectVV src/Geometry/Polygon.hs 38;" f rectWH src/Geometry/Polygon.hs 17;" f @@ -5480,8 +5482,8 @@ reloadS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 452;" f 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 143;" f -removeAmmoFromMag src/Dodge/HeldUse.hs 582;" f +removeAimPosture src/Dodge/Creature/YourControl.hs 144;" f +removeAmmoFromMag src/Dodge/HeldUse.hs 584;" f removeDot src/ShortShow.hs 29;" f removeInverseWalls src/Dodge/LevelGen/StaticWalls.hs 25;" f removeShieldWall src/Dodge/Euse.hs 125;" f @@ -5510,7 +5512,7 @@ retreatActionsPistol src/Dodge/Humanoid.hs 248;" f retreatFireLauncher src/Dodge/Humanoid.hs 269;" f retreatPointForFrom src/Dodge/Creature/Impulse/Flee.hs 7;" f reversePair src/Dodge/LevelGen.hs 82;" f -rewinder src/Dodge/Item/Held/Utility.hs 71;" f +rewinder src/Dodge/Item/Held/Utility.hs 70;" f rewinder src/Dodge/Item/Weapon/Utility.hs 34;" f rezBox src/Dodge/Room/RezBox.hs 23;" f rezBox' src/Dodge/Room/RezBox.hs 31;" f @@ -5523,9 +5525,9 @@ rezInvBox src/Dodge/Room/RezBox.hs 134;" f rezText src/Dodge/Story.hs 4;" f rezText' src/Dodge/Story.hs 17;" f rhombus src/Polyhedra.hs 72;" f -rifle src/Dodge/Item/Held/Cane.hs 51;" f +rifle src/Dodge/Item/Held/Cane.hs 50;" f right src/DoubleStack.hs 16;" f -rightIsParentCombine src/Dodge/Item/Grammar.hs 241;" f +rightIsParentCombine src/Dodge/Item/Grammar.hs 243;" f rightPad src/Padding.hs 19;" f rightPadNoSquash src/Padding.hs 23;" f rlPosDir src/Dodge/RoomLink.hs 94;" f @@ -5615,7 +5617,7 @@ scaleMat src/MatrixHelper.hs 59;" f scaleMatrix src/MatrixHelper.hs 56;" f scaleSH src/Shape.hs 268;" f scalp src/Dodge/Creature/Picture.hs 96;" f -scancodeToHotkey src/Dodge/Creature/YourControl.hs 91;" f +scancodeToHotkey src/Dodge/Creature/YourControl.hs 92;" f scodeToChar src/Dodge/ScodeToChar.hs 6;" f scorchSPic src/Dodge/Creature/State.hs 118;" f screenBox src/Dodge/Base/Window.hs 53;" f @@ -5669,7 +5671,7 @@ sensorSPic src/Dodge/Machine/Draw.hs 70;" f sentinelAI src/Dodge/Creature/SentinelAI.hs 20;" f sentinelExtraWatchUpdate src/Dodge/Creature/SentinelAI.hs 83;" f sentinelFireType src/Dodge/Creature/SentinelAI.hs 50;" f -setAimPosture src/Dodge/Creature/YourControl.hs 133;" f +setAimPosture src/Dodge/Creature/YourControl.hs 134;" f setChannelPos src/Sound.hs 150;" f setClickWorldPos src/Dodge/Update.hs 99;" f setClusterID src/Dodge/Combine/Graph.hs 115;" f @@ -5760,14 +5762,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 637;" f +shootBullet src/Dodge/HeldUse.hs 639;" f shootFirstMiss src/Dodge/Creature/Volition.hs 33;" f -shootLaser src/Dodge/HeldUse.hs 551;" f +shootLaser src/Dodge/HeldUse.hs 553;" f shootOutPassage src/Dodge/Room/RezBox.hs 74;" f shootShatter src/Dodge/Item/Weapon/Shatter.hs 11;" f -shootTeslaArc src/Dodge/HeldUse.hs 762;" f +shootTeslaArc src/Dodge/HeldUse.hs 764;" f shootTillEmpty src/Dodge/Creature/Volition.hs 18;" f -shootTractorBeam src/Dodge/HeldUse.hs 503;" f +shootTractorBeam src/Dodge/HeldUse.hs 505;" 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 @@ -5823,11 +5825,11 @@ smallGlass3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 396;" f smallGlass4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 358;" f smallPillar src/Dodge/Room/Pillar.hs 37;" f smallRoom src/Dodge/Room/RunPast.hs 31;" f -smg src/Dodge/Item/Held/Stick.hs 72;" f +smg src/Dodge/Item/Held/Stick.hs 68;" f smokeCloudAt src/Dodge/WorldEvent/Cloud.hs 41;" f smokeReducer src/Dodge/Item/Scope.hs 163;" f sndV2 src/Geometry/Data.hs 52;" f -sniperRifle src/Dodge/Item/Held/Rod.hs 51;" f +sniperRifle src/Dodge/Item/Held/Rod.hs 50;" f someCrits src/Dodge/LockAndKey.hs 120;" f soundAngle src/Dodge/SoundLogic.hs 163;" f soundContinue src/Dodge/SoundLogic.hs 131;" f @@ -5874,7 +5876,7 @@ spreadCenter src/Dodge/Base.hs 187;" f spreadFromCenter src/Dodge/Base.hs 176;" f spreadGunCrit src/Dodge/Creature/SpreadGunCrit.hs 12;" f spreadOut src/Dodge/Creature/Boid.hs 157;" f -springLinkTest src/Dodge/Item/Grammar.hs 216;" f +springLinkTest src/Dodge/Item/Grammar.hs 218;" f sps src/Dodge/LevelGen/PlacementHelper.hs 30;" f sps0 src/Dodge/LevelGen/PlacementHelper.hs 42;" f square src/Geometry/Polygon.hs 46;" f @@ -5923,15 +5925,15 @@ stopAllSounds src/Sound.hs 125;" f stopBulletAt src/Dodge/Bullet.hs 190;" f stopPushing src/Dodge/Block.hs 107;" f stopSoundFrom src/Dodge/SoundLogic.hs 220;" f -strFromEquipment src/Dodge/Creature/Statistics.hs 17;" f -strFromHeldItem src/Dodge/Creature/Statistics.hs 29;" f +strFromEquipment src/Dodge/Creature/Statistics.hs 18;" f +strFromHeldItem src/Dodge/Creature/Statistics.hs 30;" f strengthFactor src/Dodge/Creature/Impulse/Movement.hs 35;" f strictify src/MaybeHelp.hs 37;" f strideRot src/Dodge/Item/HeldOffset.hs 77;" f stringToList src/Picture/Base.hs 313;" f stringToListGrad src/Picture/Text.hs 12;" f stripZ src/Geometry/Vector3D.hs 97;" f -structureToPotentialFunction src/Dodge/Item/Grammar.hs 176;" f +structureToPotentialFunction src/Dodge/Item/Grammar.hs 178;" f structureUseAtLoc src/Dodge/Creature/Impulse/UseItem.hs 78;" f subInvX src/Dodge/ListDisplayParams.hs 48;" f subMap src/TreeHelp.hs 118;" f @@ -5987,7 +5989,7 @@ terminalShape src/Dodge/Machine/Draw.hs 32;" f terminalWheelEvent src/Dodge/Update/Scroll.hs 122;" 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 34;" f +teslaParams src/Dodge/Item/Held/BatteryGuns.hs 32;" 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 @@ -6022,9 +6024,9 @@ tileTexCoords src/Tile.hs 11;" f tilesFromRooms src/Dodge/Layout.hs 205;" f tilesToLine src/Shader/AuxAddition.hs 66;" f timeFlowUpdate src/Dodge/Update.hs 170;" f -timeScroller src/Dodge/Item/Held/Utility.hs 84;" f +timeScroller src/Dodge/Item/Held/Utility.hs 83;" f timeScroller src/Dodge/Item/Weapon/Utility.hs 47;" f -timeStopper src/Dodge/Item/Held/Utility.hs 78;" f +timeStopper src/Dodge/Item/Held/Utility.hs 77;" f timeStopper src/Dodge/Item/Weapon/Utility.hs 41;" f timerTLS src/Dodge/LightSource/Update.hs 22;" f tinMag src/Dodge/Item/Ammo.hs 27;" f @@ -6038,7 +6040,7 @@ toClosestMultiple src/HelpNum.hs 3;" f toColor8 src/Color.hs 148;" f toFloatVAs src/Shader/Compile.hs 211;" f toLabel src/Dodge/Cleat.hs 16;" f -toLasgunUpdate src/Dodge/Item/Grammar.hs 209;" f +toLasgunUpdate src/Dodge/Item/Grammar.hs 211;" f toMultiset src/Multiset.hs 64;" f toOnward src/Dodge/Tree/Compose.hs 101;" f toTopLeft src/Dodge/Render/List.hs 219;" f @@ -6061,14 +6063,14 @@ topInvW src/Dodge/ListDisplayParams.hs 51;" f topPrismEdgeIndices src/Shader/Poke.hs 335;" f topPrismIndices src/Shader/Poke.hs 410;" f topTestPart src/Dodge/TestString.hs 62;" f -torch src/Dodge/Item/Held/Utility.hs 31;" f +torch src/Dodge/Item/Held/Utility.hs 30;" f torchShape src/Dodge/Item/Draw/SPic.hs 264;" f torqueCr src/Dodge/WorldEffect.hs 67;" f torso src/Dodge/Creature/Picture.hs 105;" f tractCr src/Dodge/TractorBeam/Update.hs 28;" f tractFlIt src/Dodge/TractorBeam/Update.hs 23;" f -tractorBeamAt src/Dodge/HeldUse.hs 515;" f -tractorGun src/Dodge/Item/Held/BatteryGuns.hs 65;" f +tractorBeamAt src/Dodge/HeldUse.hs 517;" f +tractorGun src/Dodge/Item/Held/BatteryGuns.hs 61;" f tractorGunPic src/Dodge/Item/Draw/SPic.hs 429;" f tractorPullPos src/Dodge/TractorBeam/Update.hs 33;" f tractorSPic src/Dodge/TractorBeam/Draw.hs 10;" f @@ -6120,8 +6122,8 @@ triggerSwitchSPicLight src/Dodge/Placement/Instance/Button.hs 31;" f truncFaces src/Polyhedra/Geodesic.hs 53;" f truncate src/Polyhedra/Geodesic.hs 38;" f trunkDepth src/TreeHelp.hs 161;" f -tryAttachItems src/Dodge/Item/Grammar.hs 24;" f -tryClickUse src/Dodge/Creature/YourControl.hs 168;" f +tryAttachItems src/Dodge/Item/Grammar.hs 26;" f +tryClickUse src/Dodge/Creature/YourControl.hs 217;" f tryCombine src/Dodge/Update/Input/InGame.hs 526;" f tryDropSelected src/Dodge/Update/Input/InGame.hs 125;" f tryGetChannel src/Sound.hs 97;" f @@ -6147,7 +6149,7 @@ twinSlowDoorRoom src/Dodge/Room/LongDoor.hs 28;" f twists src/Dodge/Creature/Test.hs 105;" f twoFlat src/Dodge/Creature/Test.hs 102;" f twoFlatHRot src/Dodge/Item/HeldOffset.hs 86;" f -twoHandTwistAmount src/Dodge/Creature/YourControl.hs 146;" f +twoHandTwistAmount src/Dodge/Creature/YourControl.hs 147;" f twoRoomPoss src/Dodge/PlacementSpot.hs 147;" f twoStep1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 412;" f twoStepS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 450;" f @@ -6162,7 +6164,7 @@ unitVectorAtAngle src/Geometry/Vector.hs 100;" f unlockInv src/Dodge/Inventory/Lock.hs 12;" f unpause src/Dodge/Menu.hs 195;" f unsafeBlinkAction src/Dodge/Creature/Action/Blink.hs 55;" f -unsafeBlinker src/Dodge/Item/Held/Utility.hs 63;" f +unsafeBlinker src/Dodge/Item/Held/Utility.hs 62;" f unsafeBlinker src/Dodge/Item/Weapon/Utility.hs 27;" f unsafeSwapKeys src/IntMapHelp.hs 74;" f unshadowBlock src/Dodge/Block.hs 43;" f @@ -6302,32 +6304,32 @@ upperPrismPolyST src/Shape.hs 107;" f upperPrismPolySU src/Shape.hs 113;" f upperPrismPolyTS src/Shape.hs 119;" f upperRounded src/Shape.hs 184;" f -useBreakL src/Dodge/Item/Grammar.hs 30;" f -useBreakListsLinkTest src/Dodge/Item/Grammar.hs 38;" f +useBreakL src/Dodge/Item/Grammar.hs 32;" f +useBreakListsLinkTest src/Dodge/Item/Grammar.hs 40;" f 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 685;" f -useHotkey src/Dodge/Creature/YourControl.hs 66;" f -useInventoryPath src/Dodge/HeldUse.hs 929;" f +useGasParams src/Dodge/HeldUse.hs 687;" f +useHotkey src/Dodge/Creature/YourControl.hs 67;" f +useInventoryPath src/Dodge/HeldUse.hs 931;" 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 420;" f +useLoadedAmmo src/Dodge/HeldUse.hs 422;" 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 895;" f +useRewindGun src/Dodge/HeldUse.hs 897;" 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 876;" f +useStopWatch src/Dodge/HeldUse.hs 878;" f useStopWatch src/Dodge/Luse.hs 21;" f -useTimeCheck src/Dodge/HeldUse.hs 95;" f +useTimeCheck src/Dodge/HeldUse.hs 97;" f useTimeCheck src/Dodge/Item/Weapon/TriggerType.hs 127;" f -useTimeScrollGun src/Dodge/HeldUse.hs 884;" f +useTimeScrollGun src/Dodge/HeldUse.hs 886;" f useTimeScrollGun src/Dodge/Luse.hs 29;" f useUnusedLnk src/Dodge/PlacementSpot.hs 169;" f usedRoomInLinkPoss src/Dodge/PlacementSpot.hs 196;" f @@ -6362,7 +6364,7 @@ vocalizationTest src/Dodge/Creature/Vocalization.hs 8;" f volleyGun src/Dodge/Item/Held/Cane.hs 30;" f volleyGunShape src/Dodge/Item/Draw/SPic.hs 340;" f waistSP src/Dodge/Creature/HandPos.hs 173;" f -walkNozzle src/Dodge/HeldUse.hs 481;" f +walkNozzle src/Dodge/HeldUse.hs 483;" f walkableNodeNear src/Dodge/Path.hs 48;" f wallBlips src/Dodge/RadarSweep.hs 98;" f wallBuffer src/Dodge/WallCreatureCollisions.hs 51;" f @@ -6371,11 +6373,11 @@ wallLine src/Dodge/Placement/Instance/Wall.hs 71;" f wallsFromRooms src/Dodge/Layout.hs 146;" f wallsToDraw src/Dodge/Render/Walls.hs 17;" f warningRooms src/Dodge/Room/Warning.hs 27;" f -wasdAim src/Dodge/Creature/YourControl.hs 122;" f +wasdAim src/Dodge/Creature/YourControl.hs 123;" f wasdDir src/Dodge/WASD.hs 17;" f wasdM src/Dodge/WASD.hs 9;" f -wasdMovement src/Dodge/Creature/YourControl.hs 149;" f -wasdWithAiming src/Dodge/Creature/YourControl.hs 115;" f +wasdMovement src/Dodge/Creature/YourControl.hs 150;" f +wasdWithAiming src/Dodge/Creature/YourControl.hs 116;" f watchCombinations src/Dodge/Combine/Combinations.hs 15;" f watchUpdateStrat src/Dodge/Creature/ReaderUpdate.hs 177;" f weakenMatS src/Dodge/Material/Sound.hs 18;" f @@ -6437,7 +6439,7 @@ yellow src/Color.hs 17;" f you src/Dodge/Base/You.hs 12;" f youDropItem src/Dodge/Creature/Action.hs 190;" f yourAugmentedItem src/Dodge/Render/HUD.hs 235;" f -yourControl src/Dodge/Creature/YourControl.hs 24;" f +yourControl src/Dodge/Creature/YourControl.hs 25;" f yourDefaultSpeed src/Dodge/Default/Creature.hs 129;" f yourDefaultStrideLength src/Dodge/Default/Creature.hs 132;" f yourInfo src/Dodge/Creature/Info.hs 8;" f