From 25cecb8ea6b5d21af5a8fe003ffff77c7968d505 Mon Sep 17 00:00:00 2001 From: justin Date: Sat, 22 Jun 2024 15:36:58 +0100 Subject: [PATCH] Move shells to external magazines --- ghcidOutput | 2 +- src/Dodge/Combine/Module.hs | 3 +- src/Dodge/Creature.hs | 3 +- src/Dodge/Data/Item/Use.hs | 9 +- src/Dodge/Data/Item/Use/Consumption/Ammo.hs | 4 - src/Dodge/HeldUse.hs | 21 +- src/Dodge/Item/Ammo.hs | 25 ++ src/Dodge/Item/Held/Launcher.hs | 6 +- src/Dodge/Projectile/Create.hs | 29 +- tags | 319 ++++++++++---------- 10 files changed, 230 insertions(+), 191 deletions(-) diff --git a/ghcidOutput b/ghcidOutput index 2d15968f1..ebc3c3b2a 100644 --- a/ghcidOutput +++ b/ghcidOutput @@ -1 +1 @@ -All good (615 modules, at 12:12:25) +All good (615 modules, at 15:36:43) diff --git a/src/Dodge/Combine/Module.hs b/src/Dodge/Combine/Module.hs index 8c909c0a9..af8105e84 100644 --- a/src/Dodge/Combine/Module.hs +++ b/src/Dodge/Combine/Module.hs @@ -31,7 +31,8 @@ moduleModification imt = case imt of (itParams . lasBeam .~ BeamCombine TeslaBeamCombine) . (itParams . subParams ?~ teslaParams) WEPTELE -> makeDirectedTele - LAUNCHHOME -> itUse . heldConsumption . laAmmoType . amPjCreation .~ CreateTrackingShell + --LAUNCHHOME -> itUse . heldConsumption . laAmmoType . amPjCreation .~ CreateTrackingShell + LAUNCHHOME -> id ATTACHTORCH -> id where makeDirectedTele it = diff --git a/src/Dodge/Creature.hs b/src/Dodge/Creature.hs index 6f33fbc33..fb8e53290 100644 --- a/src/Dodge/Creature.hs +++ b/src/Dodge/Creature.hs @@ -254,6 +254,8 @@ stackedInventory :: [Item] stackedInventory = [ burstRifle , tinMag + , launcher + , shellMag , pipe , scrollWatch , rewindWatch @@ -275,7 +277,6 @@ stackedInventory = , lasWide 20 , flameThrower , poisonSprayer - , launcher , bulletBeltPack , bulletBeltBracer ] diff --git a/src/Dodge/Data/Item/Use.hs b/src/Dodge/Data/Item/Use.hs index c89c0a7e7..5990970b2 100644 --- a/src/Dodge/Data/Item/Use.hs +++ b/src/Dodge/Data/Item/Use.hs @@ -57,7 +57,9 @@ data ItemUse {_attachParams :: AttachParams} | AmmoMagUse { _amagLoadStatus :: ReloadStatus - , _amagParams :: AmmoParams } + , _amagParams :: AmmoParams + , _amagType :: AmmoType + } --deriving (Eq, Show, Read) --Generic, Flat) data HeldParams @@ -75,6 +77,11 @@ data AttachParams | TargetAttachParams data AmmoParams = BulletParams {_ampBullet :: Bullet} + | ProjectileParams + { _ampPayload :: Payload + , _ampPjDraw :: ProjectileDraw + , _ampPjCreation :: ProjectileCreate + } data ScrollAttachParams = ZoomScrollParams diff --git a/src/Dodge/Data/Item/Use/Consumption/Ammo.hs b/src/Dodge/Data/Item/Use/Consumption/Ammo.hs index 9a0a35f32..a99502b0d 100644 --- a/src/Dodge/Data/Item/Use/Consumption/Ammo.hs +++ b/src/Dodge/Data/Item/Use/Consumption/Ammo.hs @@ -43,10 +43,6 @@ data AmmoSourceType data AmmoType = ProjectileAmmo - { _amPayload :: Payload - , _amPjDraw :: ProjectileDraw - , _amPjCreation :: ProjectileCreate - } | SmallBulletAmmo | LargeBulletAmmo | DroneAmmo diff --git a/src/Dodge/HeldUse.hs b/src/Dodge/HeldUse.hs index 9fb540840..5e3cfb7e2 100644 --- a/src/Dodge/HeldUse.hs +++ b/src/Dodge/HeldUse.hs @@ -402,16 +402,24 @@ useHeld hu = case hu of HeldExplodeRemoteShell itid pjid -> const $ const $ explodeRemoteRocket itid pjid usePjCreation :: Item -> Creature -> World -> World -usePjCreation it = createProjectile (_amPjCreation (_laAmmoType (_heldConsumption (_itUse it)))) it +usePjCreation itm cr = createProjectile apm itm cr + where + apm = fromMaybe (error "cannot find shell ammo projectile") $ do + invid <- itm ^? itLocation . ipInvID + cr ^? crInv . ix (invid + 1) . itUse . amagParams + usePjCreationX :: Int -> Item -> Creature -> World -> World -usePjCreationX i it cr = +usePjCreationX i itm cr = foldr f - (createProjectile (_amPjCreation (_laAmmoType (_heldConsumption (_itUse it)))) it cr) + (createProjectile apm itm cr) [1 .. i -1] where - f n = (. createProjectile (_amPjCreation (_laAmmoType (_heldConsumption (_itUse it)))) it (cr & crDir +~ (2 * pi * fromIntegral n / fromIntegral i))) + apm = fromMaybe (error "cannot find shell ammo projectile") $ do + invid <- itm ^? itLocation . ipInvID + cr ^? crInv . ix (invid + 1) . itUse . amagParams + f n = (. createProjectile apm itm (cr & crDir +~ (2 * pi * fromIntegral n / fromIntegral i))) overNozzles :: (Nozzle -> Item -> Creature -> World -> World) -> @@ -473,8 +481,11 @@ fireRemoteShell it cr w = itid = _itID it i = IM.newKey $ w ^. cWorld . lWorld . props cid = _crID cr + apm = fromMaybe (error "cannot find shell ammo projectile") $ do + invid <- it ^? itLocation . ipInvID + cr ^? crInv . ix (invid + 1) . itUse . amagParams addRemRocket = - makeShell + makeShell apm it cr [ PJRemoteShellCollisionCheck diff --git a/src/Dodge/Item/Ammo.hs b/src/Dodge/Item/Ammo.hs index 6fc1727f3..e65df1e1b 100644 --- a/src/Dodge/Item/Ammo.hs +++ b/src/Dodge/Item/Ammo.hs @@ -14,6 +14,7 @@ tinMag = & itUse .~ AmmoMagUse { _amagParams = BulletParams defaultBullet + , _amagType = SmallBulletAmmo , _amagLoadStatus = ReloadStatus { _iaMax = 15 @@ -47,9 +48,33 @@ beltMag = shellMag :: Item shellMag = defaultHeldItem & itType . iyBase .~ AMMOMAG SHELLMAG + & itUse + .~ AmmoMagUse + { _amagParams = ProjectileParams + { _ampPayload = ExplosionPayload + , _ampPjDraw = DrawShell + , _ampPjCreation = CreateShell + } + , _amagLoadStatus = + ReloadStatus + { _iaMax = 15 + , _iaLoaded = 15 + , _iaPrimed = True + , _iaCycle = [loadEject 10, loadInsert 10, loadPrime 10] + , _iaProgress = Nothing + } + , _amagType = ProjectileAmmo + } + +smallBattery :: Item +smallBattery = + defaultHeldItem & itType . iyBase .~ AMMOMAG TINMAG + & itType . iyModules . at ModBulletPayload ?~ EMPTYMODULE + & itType . iyModules . at ModBulletTrajectory ?~ EMPTYMODULE & itUse .~ AmmoMagUse { _amagParams = BulletParams defaultBullet + , _amagType = SmallBulletAmmo , _amagLoadStatus = ReloadStatus { _iaMax = 15 diff --git a/src/Dodge/Item/Held/Launcher.hs b/src/Dodge/Item/Held/Launcher.hs index 3718fab88..c5a783871 100644 --- a/src/Dodge/Item/Held/Launcher.hs +++ b/src/Dodge/Item/Held/Launcher.hs @@ -34,10 +34,6 @@ launcher = & itUse . heldAim . aimMuzzles .~ [Muzzle (V2 20 0) 0 0] & itUse . heldConsumption . laAmmoType .~ ProjectileAmmo - { _amPayload = ExplosionPayload - , _amPjDraw = DrawShell - , _amPjCreation = CreateShell - } & itType . iyBase .~ HELD LAUNCHER & itType . iyModules . at ModLauncherHoming ?~ EMPTYMODULE @@ -54,7 +50,7 @@ remoteLauncher = & itType . iyBase .~ HELD REMOTELAUNCHER & itUse . heldUse .~ HeldFireRemoteShell --fireRemoteShell & itScope .~ RemoteScope (V2 0 0) 1 - & itUse . heldConsumption . laAmmoType . amPjDraw .~ DrawRemoteShell +-- & itUse . heldConsumption . laAmmoType . amPjDraw .~ DrawRemoteShell basicAmPjMoves :: IM.IntMap TweakParam basicAmPjMoves = diff --git a/src/Dodge/Projectile/Create.hs b/src/Dodge/Projectile/Create.hs index 81d06519d..635596007 100644 --- a/src/Dodge/Projectile/Create.hs +++ b/src/Dodge/Projectile/Create.hs @@ -4,15 +4,19 @@ import Dodge.Data.World import Geometry import qualified IntMapHelp as IM import LensHelp +--import Data.Maybe -createProjectile :: ProjectileCreate -> Item -> Creature -> World -> World -createProjectile pt = case pt of - CreateShell -> fireShell - CreateTrackingShell -> fireTrackingShell +createProjectile :: AmmoParams -> Item -> Creature -> World -> World +createProjectile apm itm cr = case pt of + CreateShell -> fireShell apm itm cr + CreateTrackingShell -> fireTrackingShell apm itm cr + where + pt = _ampPjCreation apm -fireShell :: Item -> Creature -> World -> World -fireShell it cr = +fireShell :: AmmoParams -> Item -> Creature -> World -> World +fireShell ap it cr = makeShell + ap it cr [ PJShellCollisionCheck @@ -27,8 +31,8 @@ fireShell it cr = spinamount = _shellSpinAmount params thrustdelay = _shellThrustDelay params -makeShell :: Item -> Creature -> [ProjectileUpdate] -> World -> World -makeShell it cr theupdate w = +makeShell :: AmmoParams -> Item -> Creature -> [ProjectileUpdate] -> World -> World +makeShell ap it cr theupdate w = w & cWorld . lWorld . projectiles . at i ?~ Shell { _prjPos = pos @@ -40,7 +44,7 @@ makeShell it cr theupdate w = , _prjAcc = rotateV dir (V2 3 0) , _prjDir = dir , _prjSpin = 0 - , _prjPayload = _amPayload $ _laAmmoType am + , _prjPayload = _ampPayload ap , _prjTimer = 350 , _prjUpdates = theupdate , _prjMITID = Just $ _itID it @@ -49,11 +53,12 @@ makeShell it cr theupdate w = i = IM.newKey $ w ^. cWorld . lWorld . props-- _props (_cWorld w) dir = _crDir cr pos = _crPos cr +.+ rotateV dir (V2 (_crRad cr + 1) 0) - am = _heldConsumption $ _itUse it + --am = _heldConsumption $ _itUse it -fireTrackingShell :: Item -> Creature -> World -> World -fireTrackingShell it cr = +fireTrackingShell :: AmmoParams -> Item -> Creature -> World -> World +fireTrackingShell ap it cr = makeShell + ap it cr [ PJRemoteShellCollisionCheck diff --git a/tags b/tags index 377d19050..e87bb15ff 100644 --- a/tags +++ b/tags @@ -41,7 +41,6 @@ AUTOPISTOL src/Dodge/Data/Item/Combine.hs 163;" C AUTORIFLE src/Dodge/Combine/Data.hs 151;" C AUTORIFLE src/Dodge/Data/Item/Combine.hs 173;" C AZURE src/Color/Data.hs 23;" C -AboveSource src/Dodge/Data/Item/Use/Consumption.hs 30;" C AccessTerminal src/Dodge/Data/WorldEffect.hs 26;" C Action src/Dodge/Data/ActionPlan.hs 78;" t Action src/Dodge/Creature/Action.hs 4;" m @@ -55,11 +54,11 @@ AddGoal src/Dodge/Data/ActionPlan.hs 45;" C AddTile src/Dodge/Room/AddTile.hs 1;" m AesonHelp src/AesonHelp.hs 1;" m AimAt src/Dodge/Data/ActionPlan.hs 84;" C -AimParams src/Dodge/Data/Item/Use.hs 103;" t +AimParams src/Dodge/Data/Item/Use.hs 108;" t AimParams src/Dodge/Default/AimParams.hs 1;" m AimParams src/Dodge/Default/Item/Held/AimParams.hs 1;" m AimParams src/Dodge/Default/Item/Use/AimParams.hs 1;" m -AimStance src/Dodge/Data/Item/Use.hs 121;" t +AimStance src/Dodge/Data/Item/Use.hs 126;" t Aiming src/Dodge/Creature/Stance/Data.hs 42;" C Aiming src/Dodge/Data/Creature/Stance.hs 39;" C AirFiltrationSS src/Dodge/Data/Scenario.hs 95;" C @@ -73,7 +72,6 @@ Ambush src/Dodge/Data/ActionPlan.hs 178;" C Ammo src/Dodge/Data/Ammo.hs 4;" m Ammo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 6;" m Ammo src/Dodge/Item/Ammo.hs 1;" m -AmmoAttachParams src/Dodge/Data/Item/Use.hs 73;" C AmmoCheckMod src/Dodge/Data/Item/HeldUse.hs 82;" C AmmoHammerTimeUseOneMod src/Dodge/Data/Item/HeldUse.hs 84;" C AmmoMagType src/Dodge/Data/Item/Combine.hs 109;" t @@ -82,7 +80,6 @@ AmmoParams src/Dodge/Data/Item/Use.hs 79;" t AmmoParams src/Dodge/Item/Weapon/AmmoParams.hs 1;" m AmmoPosition src/Dodge/Item/AmmoPosition.hs 8;" t AmmoPosition src/Dodge/Item/AmmoPosition.hs 2;" m -AmmoSource src/Dodge/Data/Item/Use/Consumption.hs 28;" t AmmoSourceType src/Dodge/Data/Item/Use/Consumption/Ammo.hs 37;" t AmmoType src/Dodge/Data/Ammo.hs 30;" t AmmoType src/Dodge/Data/Item/Use/Consumption/Ammo.hs 44;" t @@ -129,7 +126,7 @@ AttachInt src/Dodge/Item/Attachment/Data.hs 16;" C AttachMInt src/Dodge/Data/Item/Attachment.hs 15;" C AttachMInt src/Dodge/Item/Attachment/Data.hs 17;" C AttachMode src/Dodge/Item/Attachment/Data.hs 13;" C -AttachParams src/Dodge/Data/Item/Use.hs 71;" t +AttachParams src/Dodge/Data/Item/Use.hs 75;" t AttachTargetPos src/Dodge/Data/Item/Attachment.hs 13;" C AttachTargetPos src/Dodge/Item/Attachment/Data.hs 15;" C AttachType src/Dodge/Data/Item/Combine.hs 98;" t @@ -153,7 +150,7 @@ AutoDoorObstacle src/Dodge/Data/PathGraph.hs 51;" C AutoGun src/Dodge/Item/Weapon/AutoGun.hs 1;" m AutoPistolMod src/Dodge/Data/Item/HeldUse.hs 96;" C AutoRecharging src/Dodge/Data/Item/Consumption.hs 23;" C -AutoRecharging src/Dodge/Data/Item/Use/Consumption.hs 45;" C +AutoRecharging src/Dodge/Data/Item/Use/Consumption.hs 38;" C AutoRifleMod src/Dodge/Data/Item/HeldUse.hs 88;" C AuxAddition src/Shader/AuxAddition.hs 1;" m AwakeLevel src/Dodge/Creature/AlertLevel/Data.hs 14;" t @@ -172,6 +169,7 @@ BATTERY src/Dodge/Combine/Data.hs 59;" C BATTERY src/Dodge/Data/Item/Combine.hs 67;" C BATTERYPACK src/Dodge/Data/Item/Combine.hs 142;" C BELTMAG src/Dodge/Combine/Data.hs 200;" C +BELTMAG src/Dodge/Data/Item/Combine.hs 113;" C BEZIERTRAJ src/Dodge/Combine/Data.hs 212;" C BLACK src/Color/Data.hs 28;" C BLINKER src/Dodge/Combine/Data.hs 125;" C @@ -194,7 +192,6 @@ BRAINHAT src/Dodge/Combine/Data.hs 109;" C BRAINHAT src/Dodge/Data/Item/Combine.hs 131;" C BULBODY src/Dodge/Data/Item/Combine.hs 210;" C BULBODYCRAFT src/Dodge/Data/Item/Combine.hs 76;" C -BULLETBELT src/Dodge/Data/Item/Combine.hs 113;" C BULLETBELTBRACER src/Dodge/Data/Item/Combine.hs 141;" C BULLETBELTPACK src/Dodge/Data/Item/Combine.hs 140;" C BULPAY src/Dodge/Data/Item/Combine.hs 209;" C @@ -233,7 +230,6 @@ BeamDrawColor src/Dodge/Data/Beam.hs 35;" 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 -BelowSource src/Dodge/Data/Item/Use/Consumption.hs 31;" C Bezier src/Dodge/Item/Weapon/Bezier.hs 1;" m Bezier src/Geometry/Bezier.hs 1;" m BezierTrajectory src/Dodge/Data/Bullet.hs 52;" C @@ -312,7 +308,7 @@ BulletEffect src/Dodge/Data/Bullet.hs 36;" t BulletGun src/Dodge/Item/Held/BulletGun.hs 1;" m BulletGuns src/Dodge/Item/Weapon/BulletGuns.hs 1;" m BulletParams src/Dodge/Data/Item/Use.hs 79;" C -BulletShooterParams src/Dodge/Data/Item/Use.hs 63;" C +BulletShooterParams src/Dodge/Data/Item/Use.hs 67;" C BulletSource src/Dodge/Data/Item/Use/Consumption/Ammo.hs 38;" C BulletSpawn src/Dodge/Data/Bullet.hs 42;" t BulletTrajectory src/Dodge/Data/Bullet.hs 50;" t @@ -387,12 +383,12 @@ ChainEffect src/Dodge/ChainEffect.hs 1;" m ChainUpdates src/Dodge/Creature/ChainUpdates.hs 1;" m ChangePosture src/Dodge/Data/ActionPlan.hs 42;" C ChangeStrategy src/Dodge/Data/ActionPlan.hs 44;" C -CharScrollParams src/Dodge/Data/Item/Use.hs 90;" C +CharScrollParams src/Dodge/Data/Item/Use.hs 95;" C ChargeIfEquipped src/Dodge/Data/Item/Effect.hs 22;" C ChargeIfInInventory src/Dodge/Data/Item/Effect.hs 23;" C ChargeSource src/Dodge/Data/Item/Use/Consumption/Ammo.hs 39;" C ChargeableAmmo src/Dodge/Data/Item/Consumption.hs 29;" C -ChargeableAmmo src/Dodge/Data/Item/Use/Consumption.hs 51;" C +ChargeableAmmo src/Dodge/Data/Item/Use/Consumption.hs 44;" C ChaseAI src/Dodge/Data/Creature/Misc.hs 50;" C ChaseCrit src/Dodge/Creature/ChaseCrit.hs 1;" m ChaseCritters src/Dodge/Creature/State/Data.hs 33;" C @@ -473,7 +469,7 @@ Consumable src/Dodge/Item/Consumable.hs 1;" m ConsumableFamily src/Dodge/Item/Family.hs 7;" C ConsumableItemType src/Dodge/Data/Item/Combine.hs 118;" t ConsumeUse src/Dodge/Data/Item/Use.hs 46;" C -ConsumeUse' src/Dodge/Data/Item/Use.hs 101;" t +ConsumeUse' src/Dodge/Data/Item/Use.hs 106;" t Consumption src/Dodge/Data/Item/Consumption.hs 5;" m Consumption src/Dodge/Data/Item/Use/Consumption.hs 8;" m Consumption src/Dodge/Default/Item/Held/Consumption.hs 1;" m @@ -545,11 +541,11 @@ Create src/Dodge/Projectile/Create.hs 1;" m Create src/Dodge/Prop/Create.hs 1;" m Create src/Dodge/Wall/Create.hs 1;" m CreateFlame src/Dodge/Data/Gas.hs 6;" C -CreateFlame src/Dodge/Data/Item/Use/Consumption/Ammo.hs 65;" C +CreateFlame src/Dodge/Data/Item/Use/Consumption/Ammo.hs 61;" C CreateHeldLight src/Dodge/Data/ItEffect.hs 41;" C CreateHeldLight src/Dodge/Data/Item/Effect.hs 26;" C CreatePoisonGas src/Dodge/Data/Gas.hs 6;" C -CreatePoisonGas src/Dodge/Data/Item/Use/Consumption/Ammo.hs 65;" C +CreatePoisonGas src/Dodge/Data/Item/Use/Consumption/Ammo.hs 61;" C CreateShell src/Dodge/Data/Ammo.hs 17;" C CreateShell src/Dodge/Data/Item/Use/Consumption/Ammo.hs 21;" C CreateShieldWall src/Dodge/Data/ItEffect.hs 42;" C @@ -671,8 +667,8 @@ DefaultArcStep src/Dodge/Data/ArcStep.hs 23;" C 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 62;" C -DefaultHeldParams src/Dodge/Data/Item/Use.hs 62;" C +DefaultForceField src/Dodge/Data/Item/Use/Consumption/Ammo.hs 58;" C +DefaultHeldParams src/Dodge/Data/Item/Use.hs 66;" C DefaultLightSourceDraw src/Dodge/Data/LightSource.hs 13;" C DefaultRoomType src/Dodge/Data/Room.hs 31;" C Delete src/Dodge/Wall/Delete.hs 1;" m @@ -775,7 +771,7 @@ DrawShell src/Dodge/Data/Item/Use/Consumption/Ammo.hs 18;" C DrawnWall src/Dodge/Data/Wall.hs 41;" C Drone src/Dodge/Item/Weapon/Drone.hs 1;" m DroneAmmo src/Dodge/Data/Ammo.hs 41;" C -DroneAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 52;" C +DroneAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 48;" C DropAll src/Dodge/Creature/State/Data.hs 15;" C DropAll src/Dodge/Data/Creature/State.hs 24;" C DropAmount src/Dodge/Creature/State/Data.hs 16;" C @@ -825,7 +821,6 @@ EffectIfHeld src/Dodge/Data/Item/Effect.hs 25;" C EffectWhileHeld src/Dodge/Data/Item/Effect.hs 29;" C EighthRes src/Dodge/Data/Config.hs 95;" C Either src/Dodge/Layout/Tree/Either.hs 4;" m -EitherSource src/Dodge/Data/Item/Use/Consumption.hs 32;" C Eldritch src/Dodge/Data/Scenario.hs 34;" C Electronics src/Dodge/Data/Material.hs 11;" C ElephantGunMod src/Dodge/Data/Item/HeldUse.hs 90;" C @@ -855,7 +850,7 @@ EquipPosition src/Dodge/Equipment/Data.hs 17;" t EquipSite src/Dodge/Data/Equipment/Misc.hs 11;" t EquipSite src/Dodge/Equipment/Data.hs 6;" t EquipUse src/Dodge/Data/Item/Use.hs 50;" C -EquipUse' src/Dodge/Data/Item/Use.hs 100;" t +EquipUse' src/Dodge/Data/Item/Use.hs 105;" t Equipment src/Dodge/Data/Equipment.hs 12;" t Equipment src/Dodge/Data/Equipment.hs 3;" m Equipment src/Dodge/Data/Item/Use/Equipment.hs 5;" m @@ -990,8 +985,8 @@ FootstepSound src/Dodge/Data/SoundOrigin.hs 28;" C ForceField src/Dodge/ForceField.hs 1;" m ForceField src/Dodge/Wall/ForceField.hs 1;" m ForceFieldAmmo src/Dodge/Data/Ammo.hs 47;" C -ForceFieldAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 56;" C -ForceFieldType src/Dodge/Data/Item/Use/Consumption/Ammo.hs 62;" t +ForceFieldAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 52;" C +ForceFieldType src/Dodge/Data/Item/Use/Consumption/Ammo.hs 58;" t Foreground src/Dodge/Default/Foreground.hs 1;" m Foreground src/Dodge/Room/Foreground.hs 1;" m ForegroundShape src/Dodge/Data/ForegroundShape.hs 14;" t @@ -1021,10 +1016,10 @@ GameRoom src/Dodge/GameRoom.hs 8;" m Gas src/Dodge/Data/Gas.hs 3;" m Gas src/Dodge/Gas.hs 1;" m GasAmmo src/Dodge/Data/Ammo.hs 43;" C -GasAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 53;" C +GasAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 49;" C GasCloud src/Dodge/Data/Cloud.hs 31;" C GasCreate src/Dodge/Data/Gas.hs 6;" t -GasCreate src/Dodge/Data/Item/Use/Consumption/Ammo.hs 65;" t +GasCreate src/Dodge/Data/Item/Use/Consumption/Ammo.hs 61;" t GenCr src/Dodge/Creature/State/Data.hs 24;" C GenCr src/Dodge/Data/Creature/State.hs 31;" C GenParams src/Dodge/Data/GenParams.hs 15;" t @@ -1035,7 +1030,7 @@ Generate src/Dodge/Layout/Generate.hs 4;" m GenerateStructure src/Dodge/Layout/Tree/GenerateStructure.hs 6;" m GenerateStructure src/Dodge/Tree/GenerateStructure.hs 6;" m GenericAmmo src/Dodge/Data/Ammo.hs 50;" C -GenericAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 59;" C +GenericAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 55;" C GenericFaction src/Dodge/Creature/State/Data.hs 30;" C GenericFaction src/Dodge/Data/Creature/State.hs 35;" C GeoObjShads src/Dodge/Data/Config.hs 99;" C @@ -1128,7 +1123,7 @@ HeldOffset src/Dodge/Item/HeldOffset.hs 1;" m HeldOverNozzlesUseGasParams src/Dodge/Data/Item/HeldUse.hs 18;" C HeldPJCreation src/Dodge/Data/Item/HeldUse.hs 19;" C HeldPJCreationX src/Dodge/Data/Item/HeldUse.hs 20;" C -HeldParams src/Dodge/Data/Item/Use.hs 61;" t +HeldParams src/Dodge/Data/Item/Use.hs 65;" t HeldScroll src/Dodge/Data/Item/HeldScroll.hs 13;" t HeldScroll src/Dodge/Data/Item/HeldScroll.hs 6;" m HeldScroll src/Dodge/HeldScroll.hs 1;" m @@ -1141,7 +1136,7 @@ HeldTractor src/Dodge/Data/Item/HeldUse.hs 28;" C HeldUse src/Dodge/Data/Item/Use.hs 29;" C HeldUse src/Dodge/Data/Item/HeldUse.hs 6;" m HeldUse src/Dodge/HeldUse.hs 1;" m -HeldUse' src/Dodge/Data/Item/Use.hs 99;" t +HeldUse' src/Dodge/Data/Item/Use.hs 104;" t HeldUseAmmoParams src/Dodge/Data/Item/HeldUse.hs 17;" C HelpNum src/HelpNum.hs 1;" m HelperParticle src/Dodge/WorldEvent/HelperParticle.hs 2;" m @@ -1243,8 +1238,6 @@ IntSetHelp src/IntSetHelp.hs 6;" m IntensityTLS src/Dodge/Data/LightSource.hs 24;" C Intention src/Dodge/Data/Creature.hs 96;" t Intention src/Dodge/Creature/Intention.hs 1;" m -InternalAmmo src/Dodge/Data/Item/Use/Consumption.hs 35;" t -InternalSource src/Dodge/Data/Item/Use/Consumption.hs 29;" C Intersect src/Geometry/Intersect.hs 5;" m IntersectingRoomClipBoundaries src/Dodge/Config/Data.hs 59;" C IntersectingRoomClipBoundaries src/Dodge/Data/Config.hs 105;" C @@ -1267,7 +1260,7 @@ IsClose src/Dodge/Data/Machine/Sensor.hs 39;" C IsClose src/Dodge/Data/Sensor.hs 33;" C IsolationUnitSS src/Dodge/Data/Scenario.hs 101;" C ItAmount src/Dodge/Data/Item/Use/Amount.hs 9;" t -ItAmount src/Dodge/Data/Item/Use/Consumption.hs 57;" t +ItAmount src/Dodge/Data/Item/Use/Consumption.hs 50;" t ItAttachment src/Dodge/Data/Item/Attachment.hs 11;" t ItAttachment src/Dodge/Item/Attachment/Data.hs 11;" t ItCrWdId src/Dodge/Data/WorldEffect.hs 17;" C @@ -1288,7 +1281,7 @@ ItInvEffect src/Dodge/Data/ItEffect.hs 13;" C ItInvEffectDrop src/Dodge/Data/ItEffect.hs 29;" C ItInvEffectID src/Dodge/Data/ItEffect.hs 25;" C ItRewindEffect src/Dodge/Data/ItEffect.hs 17;" C -ItZoom src/Dodge/Data/Item/Use.hs 130;" t +ItZoom src/Dodge/Data/Item/Use.hs 135;" t Item src/Dodge/Data/Item.hs 33;" t Item src/Dodge/Base/Item.hs 1;" m Item src/Dodge/Data/Item.hs 6;" m @@ -1300,12 +1293,12 @@ ItemAttachment src/Dodge/Data/Item.hs 50;" t ItemBaseType src/Dodge/Combine/Data.hs 81;" t ItemBaseType src/Dodge/Data/Item/Combine.hs 86;" t ItemClust src/Dodge/Combine/Graph.hs 18;" C -ItemConsume src/Dodge/Data/Item/Use.hs 96;" C -ItemCraft src/Dodge/Data/Item/Use.hs 97;" C +ItemConsume src/Dodge/Data/Item/Use.hs 101;" C +ItemCraft src/Dodge/Data/Item/Use.hs 102;" C ItemDimension src/Dodge/Data/Item/Misc.hs 13;" t -ItemEquip src/Dodge/Data/Item/Use.hs 95;" C +ItemEquip src/Dodge/Data/Item/Use.hs 100;" C ItemFamily src/Dodge/Item/Family.hs 3;" t -ItemHeld src/Dodge/Data/Item/Use.hs 94;" C +ItemHeld src/Dodge/Data/Item/Use.hs 99;" C ItemLocation src/Dodge/Data/Item/Location.hs 11;" t ItemModuleType src/Dodge/Combine/Data.hs 197;" t ItemModuleType src/Dodge/Data/Item/Combine.hs 206;" t @@ -1318,7 +1311,7 @@ ItemType src/Dodge/Combine/Data.hs 12;" t ItemType src/Dodge/Data/Item/Combine.hs 16;" t ItemUnlocker src/Dodge/Lock/Data.hs 13;" C ItemUse src/Dodge/Data/Item/Use.hs 28;" t -ItemUse' src/Dodge/Data/Item/Use.hs 93;" t +ItemUse' src/Dodge/Data/Item/Use.hs 98;" t JETPACK src/Dodge/Combine/Data.hs 116;" C JETPACK src/Dodge/Data/Item/Combine.hs 138;" C JGK src/Control/Foldl/JGK.hs 1;" m @@ -1387,7 +1380,7 @@ Lamp src/Dodge/LightSources/Lamp.hs 1;" m Lampoid src/Dodge/Data/Creature/Misc.hs 72;" C Lampoid src/Dodge/Lampoid.hs 1;" m Large src/Shape/Data.hs 29;" C -LargeBulletAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 51;" C +LargeBulletAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 47;" C LasBeamCombine src/Dodge/Data/Beam.hs 40;" C LasMod src/Dodge/Data/Item/HeldUse.hs 79;" C LasSound src/Dodge/Data/SoundOrigin.hs 27;" C @@ -1415,7 +1408,7 @@ Left src/Dodge/Default/Item/Left.hs 1;" m Left src/Dodge/Item/Left.hs 1;" m LeftButton src/Dodge/Terminal/LeftButton.hs 1;" m LeftClickFamily src/Dodge/Item/Family.hs 6;" C -LeftConsumption src/Dodge/Data/Item/Use/Consumption.hs 44;" t +LeftConsumption src/Dodge/Data/Item/Use/Consumption.hs 37;" t LeftForward src/Dodge/Creature/Stance/Data.hs 34;" C LeftForward src/Dodge/Data/Creature/Stance.hs 32;" C LeftItemType src/Dodge/Combine/Data.hs 122;" t @@ -1670,7 +1663,7 @@ Music src/Music.hs 1;" m MusicData src/Music.hs 7;" t Mute src/Dodge/Data/Creature/Misc.hs 28;" C MuzFlare src/Dodge/Data/Flare.hs 15;" C -Muzzle src/Dodge/Data/Item/Use.hs 114;" t +Muzzle src/Dodge/Data/Item/Use.hs 119;" t MvForward src/Dodge/Data/ActionPlan.hs 35;" C MvPt src/Dodge/MvPt.hs 1;" m MvTurnToward src/Dodge/Data/ActionPlan.hs 34;" C @@ -1834,7 +1827,7 @@ OnSpecial src/Dodge/Equipment/Data.hs 24;" C OnTurret src/Dodge/Data/Item/Location.hs 13;" C OnceSound src/Dodge/Data/SoundOrigin.hs 15;" C OneArgument src/Dodge/Data/Terminal.hs 94;" C -OneHand src/Dodge/Data/Item/Use.hs 125;" C +OneHand src/Dodge/Data/Item/Use.hs 130;" C OnwardCluster src/Dodge/Data/RoomCluster.hs 14;" C OnwardCluster src/Dodge/RoomCluster/Data.hs 12;" C OnwardList src/Dodge/Annotation/Data.hs 15;" C @@ -2023,6 +2016,7 @@ ProjectileCreate src/Dodge/Data/Ammo.hs 17;" t ProjectileCreate src/Dodge/Data/Item/Use/Consumption/Ammo.hs 21;" t ProjectileDraw src/Dodge/Data/Ammo.hs 14;" t ProjectileDraw src/Dodge/Data/Item/Use/Consumption/Ammo.hs 18;" t +ProjectileParams src/Dodge/Data/Item/Use.hs 80;" C ProjectileUpdate src/Dodge/Data/Ammo.hs 20;" t ProjectileUpdate src/Dodge/Data/Item/Use/Consumption/Ammo.hs 24;" t Prop src/Dodge/Data/Prop.hs 18;" t @@ -2150,6 +2144,7 @@ Religion src/Dodge/Data/Scenario.hs 47;" C Reload src/Dodge/Data/ActionPlan.hs 190;" C ReloadAction src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 45;" C ReloadAction src/Dodge/Data/LoadAction.hs 26;" C +ReloadStatus src/Dodge/Data/Item/Use/Consumption.hs 28;" t Reloading src/Dodge/Reloading.hs 1;" m Remote src/Dodge/Item/Weapon/Remote.hs 1;" m RemoteScope src/Dodge/Data/Item/Attachment.hs 23;" C @@ -2288,8 +2283,8 @@ ScreenPos src/Dodge/Data/ScreenPos.hs 9;" t ScreenPos src/Dodge/Data/ScreenPos.hs 3;" m ScreenPos src/Dodge/ScreenPos.hs 1;" m Scroll src/Dodge/Update/Scroll.hs 1;" m -ScrollAttachParams src/Dodge/Data/Item/Use.hs 81;" t -ScrollAttachParams src/Dodge/Data/Item/Use.hs 72;" C +ScrollAttachParams src/Dodge/Data/Item/Use.hs 86;" t +ScrollAttachParams src/Dodge/Data/Item/Use.hs 76;" C ScrollAttachType src/Dodge/Data/Item/Combine.hs 105;" t ScrollValue src/Dodge/ScrollValue.hs 1;" m SecretCabal src/Dodge/Data/Scenario.hs 44;" C @@ -2410,7 +2405,7 @@ SkiffBaySS src/Dodge/Data/Scenario.hs 108;" C SleepingQuatersSS src/Dodge/Data/Scenario.hs 90;" C SlotsTaken src/Dodge/Item/SlotsTaken.hs 1;" m Small src/Shape/Data.hs 31;" C -SmallBulletAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 50;" C +SmallBulletAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 46;" C SmgMod src/Dodge/Data/Item/HeldUse.hs 101;" C SmokeCloud src/Dodge/Data/Cloud.hs 30;" C SmoothScroll src/Dodge/SmoothScroll.hs 1;" m @@ -2723,9 +2718,9 @@ TweakTractionPower src/Dodge/Data/Item/Tweak.hs 22;" C TweakType src/Dodge/Data/Item/Tweak.hs 20;" t Tweakable src/Dodge/Data/Item/Tweak.hs 15;" C TwistGoal src/Dodge/Data/Scenario.hs 15;" C -TwoHandFlat src/Dodge/Data/Item/Use.hs 124;" C -TwoHandOver src/Dodge/Data/Item/Use.hs 123;" C -TwoHandUnder src/Dodge/Data/Item/Use.hs 122;" C +TwoHandFlat src/Dodge/Data/Item/Use.hs 129;" C +TwoHandOver src/Dodge/Data/Item/Use.hs 128;" C +TwoHandUnder src/Dodge/Data/Item/Use.hs 127;" C Type src/Dodge/Data/Damage/Type.hs 6;" m Typical src/Shape/Data.hs 36;" C UPtLayer src/Dodge/Picture/Layer/Data.hs 16;" C @@ -2937,7 +2932,7 @@ Zoning src/Dodge/Zoning.hs 1;" m ZoomScope src/Dodge/Data/Item/Attachment.hs 30;" C ZoomScope src/Dodge/Item/Attachment/Data.hs 31;" C ZoomScope src/Dodge/Item/Weapon/ZoomScope.hs 1;" m -ZoomScrollParams src/Dodge/Data/Item/Use.hs 82;" C +ZoomScrollParams src/Dodge/Data/Item/Use.hs 87;" C __Just' src/MaybeHelp.hs 13;" f _actAction src/Dodge/Data/ActionPlan.hs 81;" f _actLabel src/Dodge/Data/ActionPlan.hs 80;" f @@ -2952,13 +2947,13 @@ _actionTime src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 14;" f _actionTime src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 17;" f _actionTime src/Dodge/Data/LoadAction.hs 11;" f _actionTime src/Dodge/Data/LoadAction.hs 14;" f -_aimHandlePos src/Dodge/Data/Item/Use.hs 109;" f -_aimMuzzles src/Dodge/Data/Item/Use.hs 110;" f -_aimRange src/Dodge/Data/Item/Use.hs 106;" f -_aimStance src/Dodge/Data/Item/Use.hs 108;" f -_aimTurnSpeed src/Dodge/Data/Item/Use.hs 105;" f -_aimWeight src/Dodge/Data/Item/Use.hs 104;" f -_aimZoom src/Dodge/Data/Item/Use.hs 107;" f +_aimHandlePos src/Dodge/Data/Item/Use.hs 114;" f +_aimMuzzles src/Dodge/Data/Item/Use.hs 115;" f +_aimRange src/Dodge/Data/Item/Use.hs 111;" f +_aimStance src/Dodge/Data/Item/Use.hs 113;" f +_aimTurnSpeed src/Dodge/Data/Item/Use.hs 110;" f +_aimWeight src/Dodge/Data/Item/Use.hs 109;" f +_aimZoom src/Dodge/Data/Item/Use.hs 112;" 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 @@ -2971,23 +2966,24 @@ _allocSwapID src/Dodge/Data/RightButtonOptions.hs 30;" f _alphaDivideShader src/Data/Preload/Render.hs 18;" f _amBullet src/Dodge/Data/Ammo.hs 39;" f _amCreateGas src/Dodge/Data/Ammo.hs 45;" f -_amCreateGas src/Dodge/Data/Item/Use/Consumption/Ammo.hs 54;" f +_amCreateGas src/Dodge/Data/Item/Use/Consumption/Ammo.hs 50;" f _amForceFieldType src/Dodge/Data/Ammo.hs 48;" f -_amForceFieldType src/Dodge/Data/Item/Use/Consumption/Ammo.hs 57;" f +_amForceFieldType src/Dodge/Data/Item/Use/Consumption/Ammo.hs 53;" f _amPayload src/Dodge/Data/Ammo.hs 32;" f -_amPayload src/Dodge/Data/Item/Use/Consumption/Ammo.hs 46;" f _amPjCreation src/Dodge/Data/Ammo.hs 35;" f -_amPjCreation src/Dodge/Data/Item/Use/Consumption/Ammo.hs 48;" f _amPjDraw src/Dodge/Data/Ammo.hs 34;" f -_amPjDraw src/Dodge/Data/Item/Use/Consumption/Ammo.hs 47;" f _amPosDirs src/Dodge/Item/AmmoPosition.hs 10;" f _amString src/Dodge/Data/Ammo.hs 33;" f _amString src/Dodge/Data/Ammo.hs 38;" f _amString src/Dodge/Data/Ammo.hs 42;" f +_amagLoadStatus src/Dodge/Data/Item/Use.hs 59;" f +_amagParams src/Dodge/Data/Item/Use.hs 60;" f +_amagType src/Dodge/Data/Item/Use.hs 61;" f _ambushTarget src/Dodge/Data/ActionPlan.hs 178;" f -_ammoLoadStatus src/Dodge/Data/Item/Use.hs 74;" f -_ammoParams src/Dodge/Data/Item/Use.hs 75;" f _ampBullet src/Dodge/Data/Item/Use.hs 79;" f +_ampPayload src/Dodge/Data/Item/Use.hs 81;" f +_ampPjCreation src/Dodge/Data/Item/Use.hs 83;" f +_ampPjDraw src/Dodge/Data/Item/Use.hs 82;" f _amposDir src/Dodge/Item/AmmoPosition.hs 9;" f _amposPos src/Dodge/Item/AmmoPosition.hs 9;" f _apAction src/Dodge/Data/ActionPlan.hs 20;" f @@ -2995,13 +2991,13 @@ _apGoal src/Dodge/Data/ActionPlan.hs 22;" f _apImpulse src/Dodge/Data/ActionPlan.hs 19;" f _apStrategy src/Dodge/Data/ActionPlan.hs 21;" f _arLoaded src/Dodge/Data/Item/Consumption.hs 24;" f -_arLoaded src/Dodge/Data/Item/Use/Consumption.hs 46;" f +_arLoaded src/Dodge/Data/Item/Use/Consumption.hs 39;" f _arMax src/Dodge/Data/Item/Consumption.hs 25;" f -_arMax src/Dodge/Data/Item/Use/Consumption.hs 47;" f +_arMax src/Dodge/Data/Item/Use/Consumption.hs 40;" f _arProgress src/Dodge/Data/Item/Consumption.hs 27;" f -_arProgress src/Dodge/Data/Item/Use/Consumption.hs 49;" f +_arProgress src/Dodge/Data/Item/Use/Consumption.hs 42;" f _arTime src/Dodge/Data/Item/Consumption.hs 26;" f -_arTime src/Dodge/Data/Item/Use/Consumption.hs 48;" f +_arTime src/Dodge/Data/Item/Use/Consumption.hs 41;" f _arbitraryAction src/Dodge/Data/ActionPlan.hs 167;" f _arcNumber src/Dodge/Data/Item/Params.hs 56;" f _arcSize src/Dodge/Data/Item/Params.hs 55;" f @@ -3417,7 +3413,7 @@ _getCrZoning src/Dodge/Data/Zoning.hs 19;" f _getFixated src/Dodge/Creature/AlertLevel/Data.hs 23;" f _getFixated src/Dodge/Creature/Perception/Data.hs 67;" f _getFixated src/Dodge/Data/Creature/Perception.hs 62;" f -_getItAmount src/Dodge/Data/Item/Use/Consumption.hs 57;" f +_getItAmount src/Dodge/Data/Item/Use/Consumption.hs 50;" f _getSoundID src/Sound/Data.hs 32;" f _grBound src/Dodge/GameRoom.hs 18;" f _grDir src/Dodge/GameRoom.hs 20;" f @@ -3460,11 +3456,11 @@ _hsCharMode src/Dodge/Data/Item/HeldScroll.hs 17;" f _hud src/Dodge/Data/World.hs 46;" f _hudElement src/Dodge/Data/HUD.hs 36;" f _humanoidAI src/Dodge/Data/Creature/Misc.hs 69;" f -_iaCycle src/Dodge/Data/Item/Use/Consumption.hs 39;" f -_iaLoaded src/Dodge/Data/Item/Use/Consumption.hs 37;" f -_iaMax src/Dodge/Data/Item/Use/Consumption.hs 36;" f -_iaPrimed src/Dodge/Data/Item/Use/Consumption.hs 38;" f -_iaProgress src/Dodge/Data/Item/Use/Consumption.hs 40;" f +_iaCycle src/Dodge/Data/Item/Use/Consumption.hs 32;" f +_iaLoaded src/Dodge/Data/Item/Use/Consumption.hs 30;" f +_iaMax src/Dodge/Data/Item/Use/Consumption.hs 29;" f +_iaPrimed src/Dodge/Data/Item/Use/Consumption.hs 31;" f +_iaProgress src/Dodge/Data/Item/Use/Consumption.hs 33;" f _ibtAmmoMag src/Dodge/Data/Item/Combine.hs 93;" f _ibtAttach src/Dodge/Data/Item/Combine.hs 92;" f _ibtAttachTarget src/Dodge/Data/Item/Combine.hs 100;" f @@ -3543,9 +3539,9 @@ _iyBase src/Dodge/Data/Item/Combine.hs 17;" f _iyModules src/Dodge/Combine/Data.hs 14;" f _iyModules src/Dodge/Data/Item/Combine.hs 18;" f _iyStack src/Dodge/Combine/Data.hs 15;" f -_izFac src/Dodge/Data/Item/Use.hs 133;" f -_izMax src/Dodge/Data/Item/Use.hs 131;" f -_izMin src/Dodge/Data/Item/Use.hs 132;" f +_izFac src/Dodge/Data/Item/Use.hs 138;" f +_izMax src/Dodge/Data/Item/Use.hs 136;" f +_izMin src/Dodge/Data/Item/Use.hs 137;" f _killTarget src/Dodge/Data/ActionPlan.hs 198;" f _lClock src/Dodge/Data/LWorld.hs 145;" f _lWorld src/Dodge/Data/CWorld.hs 26;" f @@ -3666,15 +3662,15 @@ _mtBranches src/Dodge/Tree/Compose/Data.hs 8;" f _mtLabel src/Dodge/Tree/Compose/Data.hs 8;" f _mtTree src/Dodge/Tree/Compose/Data.hs 8;" f _musicData src/Data/Preload.hs 13;" f -_muzVel src/Dodge/Data/Item/Use.hs 64;" f +_muzVel src/Dodge/Data/Item/Use.hs 68;" 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 98;" f _mvTurnJit src/Dodge/Data/Creature/Misc.hs 43;" f _mvTurnRad src/Dodge/Data/Creature/Misc.hs 42;" f -_mzInaccuracy src/Dodge/Data/Item/Use.hs 117;" f -_mzPos src/Dodge/Data/Item/Use.hs 115;" f -_mzRot src/Dodge/Data/Item/Use.hs 116;" f +_mzInaccuracy src/Dodge/Data/Item/Use.hs 122;" f +_mzPos src/Dodge/Data/Item/Use.hs 120;" f +_mzRot src/Dodge/Data/Item/Use.hs 121;" f _newArcStep src/Dodge/Data/Item/Params.hs 57;" f _newBeams src/Dodge/Data/LWorld.hs 114;" f _noClip src/Dodge/Debug/Flag/Data.hs 7;" f @@ -3698,9 +3694,9 @@ _opPlacement src/Dodge/Data/GenWorld.hs 129;" f _opPlacementID src/Dodge/Data/GenWorld.hs 130;" f _opSel src/Dodge/Data/RightButtonOptions.hs 15;" f _opTexture src/Dodge/Data/Wall.hs 42;" f -_opticDefaultZoom src/Dodge/Data/Item/Use.hs 88;" f -_opticPos src/Dodge/Data/Item/Use.hs 84;" f -_opticZoom src/Dodge/Data/Item/Use.hs 87;" f +_opticDefaultZoom src/Dodge/Data/Item/Use.hs 93;" f +_opticPos src/Dodge/Data/Item/Use.hs 89;" f +_opticZoom src/Dodge/Data/Item/Use.hs 92;" f _paramMID src/Dodge/Data/Item/Params.hs 60;" f _partialAction src/Dodge/Data/ActionPlan.hs 145;" f _pastWorlds src/Dodge/Data/World.hs 38;" f @@ -3849,7 +3845,7 @@ _pyFaces src/Polyhedra/Data.hs 14;" f _radarBlips src/Dodge/Data/LWorld.hs 112;" f _radarSweeps src/Dodge/Data/LWorld.hs 107;" f _randGen src/Dodge/Data/World.hs 40;" f -_randomOffset src/Dodge/Data/Item/Use.hs 68;" f +_randomOffset src/Dodge/Data/Item/Use.hs 72;" f _rateMax src/Dodge/Data/Item/HeldDelay.hs 15;" f _rateMax src/Dodge/Data/Item/HeldDelay.hs 19;" f _rateMax src/Dodge/Data/Item/Use/Delay.hs 13;" f @@ -3875,7 +3871,7 @@ _rbPos src/Dodge/Data/RadarBlip.hs 19;" f _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 66;" f +_recoil src/Dodge/Data/Item/Use.hs 70;" f _reloadAction src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 45;" f _reloadAction src/Dodge/Data/LoadAction.hs 26;" f _remotePos src/Dodge/Data/Item/Scope.hs 17;" f @@ -3884,7 +3880,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 65;" f +_rifling src/Dodge/Data/Item/Use.hs 69;" f _rlDir src/Dodge/Data/Room.hs 26;" f _rlPos src/Dodge/Data/Room.hs 25;" f _rlType src/Dodge/Data/Room.hs 24;" f @@ -3972,8 +3968,8 @@ _scopeZoomChange src/Dodge/Data/Item/Attachment.hs 33;" f _scopeZoomChange src/Dodge/Item/Attachment/Data.hs 33;" f _screenTextureVAO src/Data/Preload/Render.hs 50;" f _scrollAmount src/Dodge/Data/Input.hs 24;" f -_scrollAttachParams src/Dodge/Data/Item/Use.hs 72;" f -_scrollChar src/Dodge/Data/Item/Use.hs 91;" f +_scrollAttachParams src/Dodge/Data/Item/Use.hs 76;" f +_scrollChar src/Dodge/Data/Item/Use.hs 96;" f _scrollItemLocation src/Dodge/Data/World.hs 65;" f _scrollItemLocation src/Dodge/Data/World.hs 74;" f _scrollItemLocation src/Dodge/Data/World.hs 78;" f @@ -4170,7 +4166,7 @@ _toPlaySoundVolume src/Sound/Data.hs 43;" f _toPlaySoundVolumeFraction src/Sound/Data.hs 44;" f _toPlaySounds src/Dodge/Data/World.hs 41;" f _topBoxSize src/Shape/Data.hs 17;" f -_torqueAfter src/Dodge/Data/Item/Use.hs 67;" f +_torqueAfter src/Dodge/Data/Item/Use.hs 71;" f _tractorBeams src/Dodge/Data/LWorld.hs 121;" f _trieChildren src/SimpleTrie.hs 7;" f _trieMVal src/SimpleTrie.hs 6;" f @@ -4292,9 +4288,9 @@ _wlZoning src/Dodge/Data/World.hs 50;" f _worldEventFlags src/Dodge/Data/World.hs 47;" f _worldEvents src/Dodge/Data/LWorld.hs 133;" f _wpCharge src/Dodge/Data/Item/Consumption.hs 31;" f -_wpCharge src/Dodge/Data/Item/Use/Consumption.hs 53;" f +_wpCharge src/Dodge/Data/Item/Use/Consumption.hs 46;" f _wpMaxCharge src/Dodge/Data/Item/Consumption.hs 30;" f -_wpMaxCharge src/Dodge/Data/Item/Use/Consumption.hs 52;" f +_wpMaxCharge src/Dodge/Data/Item/Use/Consumption.hs 45;" f _wsBlock src/Dodge/Data/Wall.hs 52;" f _wsDoor src/Dodge/Data/Wall.hs 50;" f _wsMachine src/Dodge/Data/Wall.hs 51;" f @@ -4379,7 +4375,7 @@ addSideEffect src/Dodge/Concurrent.hs 32;" f addSouthPillars src/Dodge/Room/LongDoor.hs 87;" f addTermSignal src/Dodge/Event/Input.hs 34;" f addTile src/Dodge/Room/AddTile.hs 11;" f -addTinClip src/Dodge/Item/Draw/SPic.hs 291;" f +addTinClip src/Dodge/Item/Draw/SPic.hs 292;" f addToTrunk src/Dodge/Layout/Tree/Polymorphic.hs 116;" f addToTrunk src/Dodge/Tree/Polymorphic.hs 129;" f addToTrunk src/TreeHelp.hs 156;" f @@ -4432,7 +4428,7 @@ applyEventIO src/Loop.hs 89;" f applyIndividualDamage src/Dodge/Creature/Damage.hs 49;" f applyIndividualDamage' src/Dodge/Creature/Damage.hs 52;" f applyMagnetsToBul src/Dodge/Bullet.hs 44;" f -applyModules src/Dodge/Combine/Module.hs 52;" f +applyModules src/Dodge/Combine/Module.hs 53;" f applyNoDamage src/Dodge/Creature/Damage.hs 11;" f applyPastDamages src/Dodge/Creature/State.hs 170;" f applyPiercingDamage src/Dodge/Creature/Damage.hs 57;" f @@ -4514,38 +4510,38 @@ azure src/Color.hs 22;" f bQuadToF src/Geometry/Bezier.hs 37;" f bQuadToLine src/Geometry/Bezier.hs 30;" f backpackCombinations src/Dodge/Combine/Combinations.hs 23;" f -backpackShape src/Dodge/Item/Draw/SPic.hs 59;" f +backpackShape src/Dodge/Item/Draw/SPic.hs 60;" f backspaceInputted src/Dodge/Update/Input/Text.hs 26;" f bangCone src/Dodge/Item/Held/Cone.hs 10;" f -bangConeShape src/Dodge/Item/Draw/SPic.hs 221;" f +bangConeShape src/Dodge/Item/Draw/SPic.hs 222;" f bangEchoS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 370;" f bangRod src/Dodge/Item/Held/Rod.hs 17;" f bangRod src/Dodge/Item/Weapon/BulletGun/Rod.hs 18;" f bangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 478;" f bangStick src/Dodge/Item/Held/Stick.hs 16;" f bangStick src/Dodge/Item/Weapon/BulletGun/Stick.hs 17;" f -bangStickSoundChoice src/Dodge/HeldUse.hs 493;" f +bangStickSoundChoice src/Dodge/HeldUse.hs 498;" f bangStickSoundChoice src/Dodge/HeldUse/BulletWeapon.hs 226;" f barPP src/Dodge/Room/Foreground.hs 236;" f barrel src/Dodge/Creature/Inanimate.hs 17;" f -baseAMRShape src/Dodge/Item/Draw/SPic.hs 435;" f +baseAMRShape src/Dodge/Item/Draw/SPic.hs 436;" f baseBlockPane src/Dodge/Placement/Instance/Wall.hs 86;" f baseBlockPane src/Dodge/Placements/Wall.hs 63;" f baseBlockPane src/Dodge/Room/Placement.hs 93;" f -baseCaneShape src/Dodge/Item/Draw/SPic.hs 241;" f +baseCaneShape src/Dodge/Item/Draw/SPic.hs 242;" f baseDebris src/Dodge/Block/Debris.hs 122;" f baseFloorTileSize src/Tile.hs 38;" f -baseRifleShape src/Dodge/Item/Draw/SPic.hs 244;" f -baseRodShape src/Dodge/Item/Draw/SPic.hs 432;" f -baseSMGShape src/Dodge/Item/Draw/SPic.hs 403;" f +baseRifleShape src/Dodge/Item/Draw/SPic.hs 245;" f +baseRodShape src/Dodge/Item/Draw/SPic.hs 433;" f +baseSMGShape src/Dodge/Item/Draw/SPic.hs 404;" f baseShoulder src/Dodge/Creature/Picture.hs 158;" f -baseStickShape src/Dodge/Item/Draw/SPic.hs 218;" f -baseStickShapeX src/Dodge/Item/Draw/SPic.hs 213;" f +baseStickShape src/Dodge/Item/Draw/SPic.hs 219;" f +baseStickShapeX src/Dodge/Item/Draw/SPic.hs 214;" f baseStickSpread src/Dodge/Item/Held/Stick.hs 35;" f baseStickSpread src/Dodge/Item/Weapon/BulletGun/Stick.hs 46;" f baseWindowPane src/Dodge/Placements/Wall.hs 73;" f baseWindowPane src/Dodge/Room/Placement.hs 103;" f -basicAmPjMoves src/Dodge/Item/Held/Launcher.hs 59;" f +basicAmPjMoves src/Dodge/Item/Held/Launcher.hs 55;" f basicAttentionUpdate src/Dodge/Creature/AlertLevel.hs 50;" f basicAttentionUpdate src/Dodge/Creature/Perception.hs 127;" f basicAwarenessUpdate src/Dodge/Creature/AlertLevel.hs 25;" f @@ -4566,7 +4562,7 @@ batteryGuns src/Dodge/Combine/Combinations.hs 220;" f batteryModules src/Dodge/Item/Held/BatteryGuns.hs 116;" f batteryPack src/Dodge/Item/Equipment.hs 58;" f belowNumX src/Dodge/Combine/Graph.hs 77;" f -beltMag src/Dodge/Item/Ammo.hs 43;" f +beltMag src/Dodge/Item/Ammo.hs 42;" f bezierGun src/Dodge/Item/Weapon/Bezier.hs 24;" f bfsNodePoints src/Dodge/Path.hs 58;" f bfsThenReturn src/Dodge/Creature/ReaderUpdate.hs 233;" f @@ -4655,7 +4651,7 @@ canAttachTargeting src/Dodge/Item/Display.hs 33;" f canHeldScrollAttach src/Dodge/HeldScroll.hs 75;" f canSee src/Dodge/Base/Collide.hs 228;" f canSeeIndirect src/Dodge/Base/Collide.hs 235;" f -caneStickSoundChoice src/Dodge/HeldUse.hs 488;" f +caneStickSoundChoice src/Dodge/HeldUse.hs 493;" f cardList src/Dodge/Base/CardinalPoint.hs 6;" f cardVec src/Dodge/Base/CardinalPoint.hs 9;" f cardinalVectors src/Dodge/FloorItem.hs 38;" f @@ -4809,8 +4805,8 @@ composeTree src/Dodge/Tree/Compose.hs 46;" f computerBeepingS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 458;" f conEffects src/Dodge/Concurrent.hs 17;" f concBall src/Dodge/WorldEvent/SpawnParticle.hs 27;" f -coneRandItemParams src/Dodge/HeldUse.hs 502;" f -coneRandItemUpdate src/Dodge/HeldUse.hs 496;" f +coneRandItemParams src/Dodge/HeldUse.hs 507;" f +coneRandItemUpdate src/Dodge/HeldUse.hs 501;" f connectRoom src/Dodge/Layout/Tree/Either.hs 48;" f connectTrunk src/Dodge/Layout/Tree/Either.hs 54;" f connectionBlurb src/Dodge/Terminal.hs 100;" f @@ -4891,7 +4887,7 @@ createHeldLight src/Dodge/ItEffect.hs 70;" f createLightMap src/Render.hs 26;" f createNewArc src/Dodge/Tesla/Arc.hs 76;" f createPathGrid src/Dodge/Room/Path.hs 21;" f -createProjectile src/Dodge/Projectile/Create.hs 8;" f +createProjectile src/Dodge/Projectile/Create.hs 9;" f createPutItem src/Dodge/Inventory/Add.hs 52;" f createShieldWall src/Dodge/Euse.hs 134;" f createTorchLightOffset src/Dodge/LightSource/Torch.hs 9;" f @@ -5019,7 +5015,7 @@ dededumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 448;" f dedumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 316;" f defDamageMaterial src/Dodge/Material/Damage.hs 17;" f defLSPic src/Dodge/LightSource/Draw.hs 11;" f -defSPic src/Dodge/Item/Draw/SPic.hs 227;" f +defSPic src/Dodge/Item/Draw/SPic.hs 228;" f defaultAimMvType src/Dodge/Default/Creature.hs 122;" f defaultAimParams src/Dodge/Default/Item/Held/AimParams.hs 4;" f defaultAimParams src/Dodge/Default/Item/Use/AimParams.hs 6;" f @@ -5142,7 +5138,7 @@ destroyMcType src/Dodge/Machine/Destroy.hs 21;" f destroyMount src/Dodge/Block.hs 98;" f destroyMounts src/Dodge/Block.hs 95;" f detV src/Geometry/Vector.hs 93;" f -detectorColor src/Dodge/Item/Draw/SPic.hs 495;" f +detectorColor src/Dodge/Item/Draw/SPic.hs 496;" f detectorEffect src/Dodge/Item/Weapon/Radar.hs 19;" f detectorInfo src/Dodge/Item/Info.hs 210;" f determineInvSelCursorWidth src/Dodge/ListDisplayParams.hs 54;" f @@ -5389,9 +5385,9 @@ dropByState src/Dodge/Creature/State.hs 155;" f dropExcept src/Dodge/Creature/Action.hs 178;" f dropItem src/Dodge/Creature/Action.hs 183;" f dropItemKey src/Dodge/Config/KeyConfig.hs 24;" f -drumMag src/Dodge/Item/Ammo.hs 38;" f +drumMag src/Dodge/Item/Ammo.hs 36;" f dualBeam src/Dodge/Item/Held/BatteryGuns.hs 141;" f -dualBeamPic src/Dodge/Item/Draw/SPic.hs 462;" f +dualBeamPic src/Dodge/Item/Draw/SPic.hs 463;" f dualRayAt src/Dodge/Item/Weapon/BatteryGuns.hs 194;" f dummyMenuOption src/Dodge/Menu/Option.hs 81;" f duplicateItem src/Dodge/Item/Weapon/TriggerType.hs 711;" f @@ -5420,7 +5416,7 @@ eqConstr src/SameConstr.hs 17;" f eqPosText src/Dodge/Equipment/Text.hs 6;" f equipAimSpeed src/Dodge/Creature/Action/Movement.hs 109;" f equipInfo src/Dodge/Item/Info.hs 121;" f -equipItemSPic src/Dodge/Item/Draw/SPic.hs 28;" f +equipItemSPic src/Dodge/Item/Draw/SPic.hs 29;" f equipPosition src/Dodge/Item/Draw.hs 26;" f equipPosition src/Dodge/Item/Equipment/Shape.hs 15;" f equipSiteInfo src/Dodge/Item/Info.hs 242;" f @@ -5485,11 +5481,11 @@ findReverseEdgeList src/Polyhedra.hs 56;" f findWallFreeDropPoint src/Dodge/FloorItem.hs 46;" f findWallsInPolygon src/Dodge/LevelGen/StaticWalls/Deprecated.hs 78;" f fireLoudS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 504;" f -fireRemoteShell src/Dodge/HeldUse.hs 466;" f +fireRemoteShell src/Dodge/HeldUse.hs 471;" f fireS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 332;" f -fireShell src/Dodge/Projectile/Create.hs 13;" f +fireShell src/Dodge/Projectile/Create.hs 18;" f fireSound src/Dodge/SoundLogic/Synonyms.hs 4;" f -fireTrackingShell src/Dodge/Projectile/Create.hs 54;" f +fireTrackingShell src/Dodge/Projectile/Create.hs 60;" f firstBreather src/Dodge/Room/Breather.hs 9;" f firstWorldLoad appDodge/Main.hs 77;" f fixedCoordPictures src/Dodge/Render/Picture.hs 17;" f @@ -5506,10 +5502,10 @@ flameTorrent src/Dodge/Item/Held/SprayGuns.hs 35;" f flameTorrent src/Dodge/Item/Weapon/SprayGuns.hs 38;" f flameWall src/Dodge/Item/Held/SprayGuns.hs 51;" f flameWall src/Dodge/Item/Weapon/SprayGuns.hs 54;" f -flamerPic src/Dodge/Item/Draw/SPic.hs 406;" f +flamerPic src/Dodge/Item/Draw/SPic.hs 407;" f flareCircleAt src/Dodge/WorldEvent/Flash.hs 46;" f flatShield src/Dodge/Item/Held/Utility.hs 9;" f -flatShieldEquipSPic src/Dodge/Item/Draw/SPic.hs 479;" f +flatShieldEquipSPic src/Dodge/Item/Draw/SPic.hs 480;" f flatV2 src/Picture/Data.hs 65;" f flatV3 src/Picture/Data.hs 68;" f flatV4 src/Picture/Data.hs 71;" f @@ -5696,7 +5692,7 @@ hat src/Dodge/Item/Equipment.hs 103;" f hatCombinations src/Dodge/Combine/Combinations.hs 31;" f head src/DoubleStack.hs 14;" f headLamp src/Dodge/Item/Equipment.hs 116;" f -headLampShape src/Dodge/Item/Draw/SPic.hs 485;" f +headLampShape src/Dodge/Item/Draw/SPic.hs 486;" f heal src/Dodge/Item/Consumable.hs 17;" f heal25 src/Dodge/Item/Consumable.hs 14;" f healS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 354;" f @@ -5709,7 +5705,7 @@ heldAimEffects src/Dodge/Creature/State.hs 69;" f heldBounds src/Dodge/Item/Module.hs 27;" f heldInfo src/Dodge/Item/Info.hs 61;" f heldItemOffset src/Dodge/Item/HeldOffset.hs 24;" f -heldItemSPic src/Dodge/Item/Draw/SPic.hs 146;" f +heldItemSPic src/Dodge/Item/Draw/SPic.hs 147;" f heldPositionInfo src/Dodge/Item/Info.hs 227;" f helpCommand src/Dodge/Terminal.hs 64;" f helpPoly3D src/Polyhedra.hs 124;" f @@ -5877,12 +5873,13 @@ itemDisplayPad src/Dodge/Item/Display.hs 59;" f itemEffect src/Dodge/Creature/Action/UseItem.hs 28;" f itemEffect src/Dodge/Creature/Impulse/UseItem.hs 35;" f itemEquipPict src/Dodge/Item/Draw.hs 17;" f -itemFromAttachType src/Dodge/Item.hs 28;" f +itemFromAmmoMag src/Dodge/Item.hs 29;" f +itemFromAttachType src/Dodge/Item.hs 37;" f itemFromBase src/Dodge/Item.hs 19;" f -itemFromConsumableType src/Dodge/Item.hs 38;" f -itemFromEquipType src/Dodge/Item.hs 43;" f +itemFromConsumableType src/Dodge/Item.hs 43;" f +itemFromEquipType src/Dodge/Item.hs 48;" f itemFromHeldType src/Dodge/Item/Held.hs 25;" f -itemFromLeftType src/Dodge/Item.hs 65;" f +itemFromLeftType src/Dodge/Item.hs 70;" f itemInfo src/Dodge/Item/Info.hs 10;" f itemInvColor src/Dodge/Item/InventoryColor.hs 7;" f itemInvSideEffect src/Dodge/Creature/State.hs 246;" f @@ -5923,7 +5920,7 @@ keyCard src/Dodge/Item/PassKey.hs 8;" f keyCardAnalyserByDoor src/Dodge/Room/LasTurret.hs 69;" f keyCardRoomRunPast src/Dodge/Room/LasTurret.hs 57;" f keyCardRunPastRand src/Dodge/LockAndKey.hs 38;" f -keyPic src/Dodge/Item/Draw/SPic.hs 501;" f +keyPic src/Dodge/Item/Draw/SPic.hs 502;" f keyholeCorridor src/Dodge/Room/Corridor.hs 39;" f killBulletUpdate src/Dodge/WorldEvent/HitEffect.hs 30;" f killParticleUpdate src/Dodge/Particle/Update.hs 9;" f @@ -5943,7 +5940,7 @@ lasCenSensEdge src/Dodge/Room/LasTurret.hs 112;" f lasCircle src/Dodge/Item/Held/BatteryGuns.hs 128;" f lasDronesPic src/Dodge/Item/Weapon/Drone.hs 22;" f lasGun src/Dodge/Item/Held/BatteryGuns.hs 36;" f -lasGunPic src/Dodge/Item/Draw/SPic.hs 448;" f +lasGunPic src/Dodge/Item/Draw/SPic.hs 449;" f lasGunTweak src/Dodge/Item/Held/BatteryGuns.hs 67;" f lasRayAt src/Dodge/Beam.hs 62;" f lasSensorTurretTest src/Dodge/Room/LasTurret.hs 105;" f @@ -5957,17 +5954,17 @@ latchkey src/Dodge/Item/Held/Utility.hs 23;" f latchkey src/Dodge/Item/PassKey.hs 14;" f launcher src/Dodge/Item/Held/Launcher.hs 10;" f launcherCrit src/Dodge/Creature/LauncherCrit.hs 12;" f -launcherPic src/Dodge/Item/Draw/SPic.hs 422;" f +launcherPic src/Dodge/Item/Draw/SPic.hs 423;" f launcherSound src/Dodge/SoundLogic/Synonyms.hs 4;" f -launcherX src/Dodge/Item/Held/Launcher.hs 44;" f +launcherX src/Dodge/Item/Held/Launcher.hs 40;" f layerNum src/Picture/Data.hs 31;" f layoutLevelFromSeed src/Dodge/LevelGen.hs 47;" f ldpVerticalSelection src/Dodge/Update/Input/ScreenLayer.hs 90;" f left src/DoubleStack.hs 16;" f leftInfo src/Dodge/Item/Info.hs 110;" f -leftItemSPic src/Dodge/Item/Draw/SPic.hs 62;" f +leftItemSPic src/Dodge/Item/Draw/SPic.hs 63;" f leftPad src/Padding.hs 14;" f -legsSPic src/Dodge/Item/Draw/SPic.hs 519;" f +legsSPic src/Dodge/Item/Draw/SPic.hs 520;" f liShape src/Dodge/Placement/Instance/LightSource.hs 99;" f liShape src/Dodge/Placements/LightSource.hs 55;" f light src/Color.hs 100;" f @@ -6109,7 +6106,7 @@ makeShaderProgram src/Shader/Compile.hs 287;" f makeShaderUsingVAO src/Shader/Compile.hs 155;" f makeShaderUsingVBO src/Shader/Compile.hs 78;" f makeShaderVBO src/Shader/Compile.hs 38;" f -makeShell src/Dodge/Projectile/Create.hs 30;" f +makeShell src/Dodge/Projectile/Create.hs 36;" f makeShockwaveAt src/Dodge/WorldEvent/Shockwave.hs 12;" f makeSourcedShader src/Shader/Compile.hs 203;" f makeStartCloudAt src/Dodge/WorldEvent/Cloud.hs 60;" f @@ -6146,11 +6143,11 @@ maybeDestroyBlock src/Dodge/Wall/Damage.hs 26;" f maybeDestroyDoor src/Dodge/Wall/Damage.hs 31;" f maybeExitCombine src/Dodge/Update/Input/InGame.hs 259;" f maybeOpenTerminal src/Dodge/Update.hs 113;" f -maybeRateStatus src/Dodge/Item/Display.hs 192;" f +maybeRateStatus src/Dodge/Item/Display.hs 193;" f maybeReadFile src/Dodge/LoadSeed.hs 10;" f maybeTakeOne src/Dodge/RandomHelp.hs 96;" f maybeTakeOne src/RandomHelp.hs 107;" f -maybeWarmupStatus src/Dodge/Item/Display.hs 182;" f +maybeWarmupStatus src/Dodge/Item/Display.hs 183;" f mcApplyDamage src/Dodge/Machine/Update.hs 90;" f mcKillBut src/Dodge/Machine/Destroy.hs 34;" f mcKillTerm src/Dodge/Machine/Destroy.hs 26;" f @@ -6160,7 +6157,7 @@ mcProximitySensorUpdate src/Dodge/Machine/Update.hs 104;" f mcSPic src/Dodge/Render/ShapePicture.hs 169;" f mcSensorTriggerUpdate src/Dodge/Machine/Update.hs 69;" f mcSensorUpdate src/Dodge/Machine/Update.hs 99;" f -mcShootLaser src/Dodge/HeldUse.hs 510;" f +mcShootLaser src/Dodge/HeldUse.hs 515;" f mcTriggerVal src/Dodge/Machine/Update.hs 75;" f mcTypeUpdate src/Dodge/Machine/Update.hs 24;" f mcUseHeld src/Dodge/HeldUse.hs 380;" f @@ -6208,8 +6205,8 @@ miniGunUse src/Dodge/Item/Held/Cane.hs 94;" f miniGunUse src/Dodge/Item/Weapon/BulletGun/Cane.hs 113;" f miniGunX src/Dodge/Item/Held/Cane.hs 105;" f miniGunX src/Dodge/Item/Weapon/BulletGun/Cane.hs 120;" f -miniGunXPict src/Dodge/Item/Draw/SPic.hs 382;" f -miniGunXPictItem src/Dodge/Item/Draw/SPic.hs 376;" f +miniGunXPict src/Dodge/Item/Draw/SPic.hs 383;" f +miniGunXPictItem src/Dodge/Item/Draw/SPic.hs 377;" f miniS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 510;" f miniTree2 src/Dodge/Room/Room.hs 108;" f minimumOn src/FoldlHelp.hs 12;" f @@ -6247,7 +6244,7 @@ moduleName src/Dodge/Module.hs 22;" f moduleSize src/Dodge/Module.hs 14;" f moduleSizes src/Dodge/Module.hs 11;" f moduleStrings src/Dodge/Module.hs 19;" f -modulesSPic src/Dodge/Item/Draw/SPic.hs 208;" f +modulesSPic src/Dodge/Item/Draw/SPic.hs 209;" f mountColLightI src/Dodge/LightSources/Fitting.hs 56;" f mountLightA src/Dodge/LightSources/Fitting.hs 49;" f mountLightL src/Dodge/LightSources/Fitting.hs 15;" f @@ -6399,9 +6396,9 @@ overColObj src/Shape.hs 269;" f overColSH src/Shape.hs 237;" f overLnkPosDir src/Dodge/RoomLink.hs 100;" f overLnkType src/Dodge/RoomLink.hs 87;" f -overNozzle src/Dodge/HeldUse.hs 436;" f -overNozzles src/Dodge/HeldUse.hs 416;" f -overNozzles' src/Dodge/HeldUse.hs 424;" f +overNozzle src/Dodge/HeldUse.hs 441;" f +overNozzles src/Dodge/HeldUse.hs 421;" f +overNozzles' src/Dodge/HeldUse.hs 429;" f overPos src/Picture/Base.hs 302;" f overPosObj src/Shape.hs 273;" f overPosSH src/Shape.hs 257;" f @@ -6802,7 +6799,7 @@ reloadS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 426;" f reloadSound src/Dodge/SoundLogic/Synonyms.hs 4;" f rememberSounds src/Dodge/Creature/Perception.hs 177;" f remoteBombUnarmedPic src/Dodge/Item/Weapon/Grenade.hs 268;" f -remoteLauncher src/Dodge/Item/Held/Launcher.hs 51;" f +remoteLauncher src/Dodge/Item/Held/Launcher.hs 47;" f remoteShellCollisionCheck src/Dodge/Projectile/Update.hs 44;" f remoteShellShape src/Dodge/Projectile/Draw.hs 39;" f removeEither src/Dodge/Layout/Tree/Either.hs 41;" f @@ -6845,7 +6842,7 @@ retreatFireLauncher src/Dodge/Humanoid.hs 272;" f retreatPointForFrom src/Dodge/Creature/Action/Flee.hs 7;" f retreatPointForFrom src/Dodge/Creature/Impulse/Flee.hs 7;" f reversePair src/Dodge/LevelGen.hs 82;" f -revolveMag src/Dodge/Item/Ammo.hs 31;" f +revolveMag src/Dodge/Item/Ammo.hs 28;" f revolver src/Dodge/Item/Weapon/BulletGun/Stick.hs 49;" f revolverX src/Dodge/Item/Weapon/BulletGun/Stick.hs 104;" f rewindWatch src/Dodge/Item/Weapon/Utility.hs 37;" f @@ -7084,7 +7081,7 @@ shapeVerxAttributes src/Shape/Parameters.hs 13;" f shapeVerxSize src/Shape/Parameters.hs 10;" f shardShape src/Dodge/Block/Debris.hs 181;" f shatterGun src/Dodge/Item/Held/Weapons.hs 7;" f -shatterGunSPic src/Dodge/Item/Draw/SPic.hs 230;" f +shatterGunSPic src/Dodge/Item/Draw/SPic.hs 231;" f shatterWall src/Dodge/Item/Weapon/Shatter.hs 26;" f shellCollisionCheck src/Dodge/Projectile/Update.hs 32;" f shellMag src/Dodge/Item/Ammo.hs 48;" f @@ -7137,7 +7134,7 @@ shootRevolverXRepeat src/Dodge/HeldUse/BulletWeapon.hs 49;" f shootRifle src/Dodge/HeldUse/BulletWeapon.hs 140;" f shootShatter src/Dodge/Item/Weapon/Shatter.hs 12;" f shootSmgMod src/Dodge/HeldUse/BulletWeapon.hs 86;" f -shootTeslaArc src/Dodge/HeldUse.hs 519;" f +shootTeslaArc src/Dodge/HeldUse.hs 524;" f shootTillEmpty src/Dodge/Creature/Volition.hs 18;" f shootVolleyGun src/Dodge/HeldUse/BulletWeapon.hs 128;" f shootersRoom src/Dodge/Room/Room.hs 317;" f @@ -7151,17 +7148,17 @@ shotgunSound src/Dodge/SoundLogic/Synonyms.hs 4;" f shoulderHeight src/Dodge/Item/HeldOffset.hs 60;" f shoulderSH src/Dodge/Creature/Picture.hs 170;" f shoulderSP src/Dodge/Creature/HandPos.hs 196;" f -showAttachItem src/Dodge/Item/Display.hs 86;" f +showAttachItem src/Dodge/Item/Display.hs 87;" f showAutoRechargeProgress src/Dodge/Item/Display.hs 97;" f showEquipItem src/Dodge/Item/Display.hs 92;" f -showEquipmentNumber src/Dodge/Item/Display.hs 131;" f +showEquipmentNumber src/Dodge/Item/Display.hs 132;" f showInt src/Dodge/Item/Info.hs 30;" f showIntKMG src/Dodge/Item/Info.hs 47;" f showIntKMG' src/Dodge/Item/Info.hs 54;" f showIntsString src/Dodge/Tree/Compose.hs 129;" f -showLoadActionType src/Dodge/Item/Display.hs 173;" f +showLoadActionType src/Dodge/Item/Display.hs 174;" f showPhaseV src/Dodge/Tweak/Show.hs 16;" f -showReloadProgress src/Dodge/Item/Display.hs 154;" f +showReloadProgress src/Dodge/Item/Display.hs 155;" f showTerminalError src/Dodge/Debug/Terminal.hs 75;" f showTimeFlow src/Dodge/TestString.hs 56;" f showTractionPower src/Dodge/Tweak/Show.hs 22;" f @@ -7255,8 +7252,8 @@ spawnSmokeAtCursor src/Dodge/WorldEvent/Cloud.hs 73;" f spawnerCrit src/Dodge/Creature.hs 55;" f spawnerRoom src/Dodge/Room/Room.hs 362;" f speedLegs src/Dodge/Item/Equipment.hs 129;" f -spinDrag src/Dodge/Item/Held/Launcher.hs 67;" f -spinStart src/Dodge/Item/Held/Launcher.hs 75;" f +spinDrag src/Dodge/Item/Held/Launcher.hs 63;" f +spinStart src/Dodge/Item/Held/Launcher.hs 71;" f splashMenu src/Dodge/Menu.hs 27;" f splashMenuOptions src/Dodge/Menu.hs 32;" f splashScreen src/Dodge/Initialisation.hs 11;" f @@ -7410,7 +7407,7 @@ terminalShape src/Dodge/Machine/Draw.hs 27;" f terminalWheelEvent src/Dodge/Update/Scroll.hs 72;" f teslaBeamCombine src/Dodge/Beam.hs 48;" f teslaGun src/Dodge/Item/Held/BatteryGuns.hs 21;" f -teslaGunPic src/Dodge/Item/Draw/SPic.hs 438;" f +teslaGunPic src/Dodge/Item/Draw/SPic.hs 439;" 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 @@ -7444,14 +7441,14 @@ thingsHit src/Dodge/WorldEvent/ThingsHit.hs 29;" f thingsHitExceptCr src/Dodge/WorldEvent/ThingsHit.hs 73;" f threeLineDecoration src/Dodge/Placement/TopDecoration.hs 61;" f throwRemoteBomb src/Dodge/Item/Weapon/Grenade.hs 205;" f -thrustParam src/Dodge/Item/Held/Launcher.hs 83;" f +thrustParam src/Dodge/Item/Held/Launcher.hs 79;" f tileTexCoords src/Tile.hs 10;" f tilesFromRooms src/Dodge/Layout.hs 205;" f tilesToLine src/Shader/AuxAddition.hs 66;" f timeFlowUpdate src/Dodge/Update.hs 158;" f timeModule src/Dodge/Item/Craftable.hs 35;" f timerTLS src/Dodge/LightSource/Update.hs 22;" f -tinMag src/Dodge/Item/Ammo.hs 10;" f +tinMag src/Dodge/Item/Ammo.hs 9;" f tinitusS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 402;" f titleOptionsMenu src/Dodge/Menu.hs 99;" f titleOptionsNoWrite src/Dodge/Menu.hs 102;" f @@ -7475,7 +7472,7 @@ toV3 src/Geometry/Data.hs 38;" f toV4 src/Geometry/Data.hs 40;" f toggleCombineInv src/Dodge/DisplayInventory.hs 30;" f toggleCommand src/Dodge/Terminal.hs 194;" f -toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 54;" f +toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 55;" f toggleJust src/MaybeHelp.hs 41;" f toggleMap src/Dodge/Update/Input/InGame.hs 237;" f toggleMapKey src/Dodge/Config/KeyConfig.hs 25;" f @@ -7488,7 +7485,7 @@ topInvW src/Dodge/ListDisplayParams.hs 51;" f topPrismEdgeIndices src/Shader/Poke.hs 327;" f topPrismIndices src/Shader/Poke.hs 402;" f torch src/Dodge/Item/Held/Utility.hs 26;" f -torchShape src/Dodge/Item/Draw/SPic.hs 194;" f +torchShape src/Dodge/Item/Draw/SPic.hs 195;" f torqueBefore src/Dodge/Item/Weapon/TriggerType.hs 560;" f torqueBeforeAtLeast src/Dodge/Item/Weapon/TriggerType.hs 583;" f torqueCr src/Dodge/WorldEffect.hs 64;" f @@ -7498,7 +7495,7 @@ tractCr src/Dodge/TractorBeam/Update.hs 27;" f tractFlIt src/Dodge/TractorBeam/Update.hs 22;" f tractorBeamAt src/Dodge/Item/Weapon/BatteryGuns.hs 210;" f tractorGun src/Dodge/Item/Held/BatteryGuns.hs 75;" f -tractorGunPic src/Dodge/Item/Draw/SPic.hs 476;" f +tractorGunPic src/Dodge/Item/Draw/SPic.hs 477;" f tractorGunTweak src/Dodge/Item/Held/BatteryGuns.hs 94;" f tractorPullPos src/Dodge/TractorBeam/Update.hs 32;" f tractorSPic src/Dodge/TractorBeam/Draw.hs 10;" f @@ -7770,13 +7767,13 @@ useAmmoUpTo src/Dodge/Item/Weapon/TriggerType.hs 346;" f useC src/Dodge/Cuse.hs 6;" f useE src/Dodge/Euse.hs 24;" f useEquipment src/Dodge/Creature/State.hs 219;" f -useForceFieldGun src/Dodge/HeldUse.hs 532;" f -useGasParams src/Dodge/HeldUse.hs 454;" f +useForceFieldGun src/Dodge/HeldUse.hs 537;" f +useGasParams src/Dodge/HeldUse.hs 459;" f useHeld src/Dodge/HeldUse.hs 385;" f useHotKey src/Dodge/Creature/YourControl.hs 49;" f useItem src/Dodge/Creature/Action/UseItem.hs 14;" f -useItemHotkey src/Dodge/Creature/Impulse/UseItem.hs 114;" f -useItemLeftClick src/Dodge/Creature/Impulse/UseItem.hs 97;" f +useItemHotkey src/Dodge/Creature/Impulse/UseItem.hs 115;" f +useItemLeftClick src/Dodge/Creature/Impulse/UseItem.hs 98;" f useItemRightClick src/Dodge/Creature/Impulse/UseItem.hs 23;" f useL src/Dodge/Luse.hs 13;" f useLeftItem src/Dodge/Creature/Action/UseItem.hs 38;" f @@ -7786,7 +7783,7 @@ useMod src/Dodge/HeldUse.hs 28;" f useNormalCamera src/Dodge/Camera.hs 6;" f usePayload src/Dodge/Payload.hs 7;" f usePjCreation src/Dodge/HeldUse.hs 404;" f -usePjCreationX src/Dodge/HeldUse.hs 407;" f +usePjCreationX src/Dodge/HeldUse.hs 412;" f useRewindGun src/Dodge/Luse.hs 41;" f useRoomPosCond src/Dodge/PlacementSpot.hs 178;" f useRoomPosRoomCond src/Dodge/PlacementSpot.hs 181;" f @@ -7829,7 +7826,7 @@ visionCheck src/Dodge/Creature/Perception.hs 152;" f vocalizationTest src/Dodge/Creature/Vocalization.hs 8;" f volleyGun src/Dodge/Item/Held/Cane.hs 37;" f volleyGun src/Dodge/Item/Weapon/BulletGun/Cane.hs 43;" f -volleyGunShape src/Dodge/Item/Draw/SPic.hs 364;" f +volleyGunShape src/Dodge/Item/Draw/SPic.hs 365;" f waistSP src/Dodge/Creature/HandPos.hs 199;" f walkableNodeNear src/Dodge/Path.hs 48;" f wallBlips src/Dodge/Item/Weapon/UseEffect.hs 43;" f