From 944b40cb5611afa8b5fb5e033a1f4e919cb411dc Mon Sep 17 00:00:00 2001 From: justin Date: Fri, 21 Jun 2024 23:24:26 +0100 Subject: [PATCH] Remove old ammo code, add magazines to some test loadouts --- ghcidOutput | 2 +- src/Dodge/Creature.hs | 11 + src/Dodge/Creature/ReaderUpdate.hs | 2 +- src/Dodge/Creature/Test.hs | 2 +- src/Dodge/Data/Item/Use.hs | 9 +- src/Dodge/Data/Item/Use/Consumption.hs | 5 - .../Data/Item/Use/Consumption/LoadAction.hs | 1 - src/Dodge/Item/Ammo.hs | 66 ++++-- src/Dodge/Item/Display.hs | 2 +- src/Dodge/Item/Weapon/TriggerType.hs | 12 +- src/Dodge/Reloading.hs | 12 +- tags | 223 +++++++++--------- 12 files changed, 182 insertions(+), 165 deletions(-) diff --git a/ghcidOutput b/ghcidOutput index 6ed120ffe..45c02412f 100644 --- a/ghcidOutput +++ b/ghcidOutput @@ -1 +1 @@ -All good (615 modules, at 14:45:15) +All good (615 modules, at 23:19:36) diff --git a/src/Dodge/Creature.hs b/src/Dodge/Creature.hs index 240c67bac..6f33fbc33 100644 --- a/src/Dodge/Creature.hs +++ b/src/Dodge/Creature.hs @@ -22,6 +22,7 @@ module Dodge.Creature ( module Dodge.Creature.YourControl, ) where +import Dodge.Item.Ammo import Dodge.Item.Scope import Control.Lens import Dodge.Creature.Action @@ -124,8 +125,11 @@ inventoryX c = case c of , wristArmour , wristArmour , autoRifle + , tinMag , smg + , tinMag , machinePistol + , tinMag , makeTypeCraftNum 4 MICROCHIP , makeTypeCraftNum 2 TIN , makeTypeCraftNum 2 HARDWARE @@ -174,7 +178,9 @@ inventoryX c = case c of ] 'G' -> [ autoPistol + , tinMag , pistol + , tinMag , makeTypeCraftNum 2 HARDWARE , makeTypeCraftNum 2 MAGNET , makeTypeCraftNum 5 (ENERGYBALLCRAFT IncBall) @@ -199,6 +205,7 @@ inventoryX c = case c of ] 'K' -> [ autoRifle + , tinMag , targetingHat TargetRBPress , makeTypeCraftNum 7 MICROCHIP , makeTypeCraftNum 4 HARDWARE @@ -246,16 +253,20 @@ testInventory = stackedInventory :: [Item] stackedInventory = [ burstRifle + , tinMag , pipe , scrollWatch , rewindWatch , stopWatch , tractorGun , autoPistol + , tinMag , pistol + , tinMag , teslaGun , blinkGun , miniGunX 3 + , beltMag , boosterGun , remoteLauncher , flatShield diff --git a/src/Dodge/Creature/ReaderUpdate.hs b/src/Dodge/Creature/ReaderUpdate.hs index e7f1712e2..7541609d1 100644 --- a/src/Dodge/Creature/ReaderUpdate.hs +++ b/src/Dodge/Creature/ReaderUpdate.hs @@ -174,7 +174,7 @@ reloadOverride :: Creature -> Creature reloadOverride cr = fromMaybe cr $ do guard $ cr ^. crStance . posture == Aiming itRef <- cr ^? crManipulation . manObject . inInventory . ispItem - guard $ cr ^? crInv . ix (itRef + 1) . itUse . attachParams . ammoAttachParams . iaLoaded == Just 0 + guard $ cr ^? crInv . ix (itRef + 1) . itUse . attachParams . ammoLoadStatus . iaLoaded == Just 0 return $ cr & crActionPlan . apStrategy .~ StrategyActions Reload reloadActions where reloadActions = diff --git a/src/Dodge/Creature/Test.hs b/src/Dodge/Creature/Test.hs index 657bb4fad..ab1a1e3d3 100644 --- a/src/Dodge/Creature/Test.hs +++ b/src/Dodge/Creature/Test.hs @@ -42,7 +42,7 @@ crIsReloading cr = case cr ^? crManipulation . manObject . inInventory . iselAct crWeaponReady :: Creature -> Bool crWeaponReady cr = fromMaybe False $ do i <- cr ^? crManipulation . manObject . inInventory . ispItem - x <- cr ^? crInv . ix (i + 1) . itUse . attachParams . ammoAttachParams . iaLoaded + x <- cr ^? crInv . ix (i + 1) . itUse . attachParams . ammoLoadStatus . iaLoaded return (x > 0) crCanSeeCr :: Creature -> (World, Creature) -> Bool diff --git a/src/Dodge/Data/Item/Use.hs b/src/Dodge/Data/Item/Use.hs index 0711e557e..c1d67aa77 100644 --- a/src/Dodge/Data/Item/Use.hs +++ b/src/Dodge/Data/Item/Use.hs @@ -58,9 +58,14 @@ data ItemUse data AttachParams = ScrollAttachParams {_scrollAttachParams :: ScrollAttachParams} - | AmmoAttachParams {_ammoAttachParams :: InternalAmmo} + | AmmoAttachParams + {_ammoLoadStatus :: InternalAmmo + ,_ammoParams :: AmmoParams + } | TargetAttachParams +data AmmoParams = DefaultAmmoParams + data ScrollAttachParams = ZoomScrollParams { -- | a camera offset @@ -123,6 +128,8 @@ makeLenses ''ItZoom makeLenses ''Muzzle makeLenses ''AttachParams makeLenses ''ScrollAttachParams +makeLenses ''AmmoParams +deriveJSON defaultOptions ''AmmoParams deriveJSON defaultOptions ''Muzzle deriveJSON defaultOptions ''AimStance deriveJSON defaultOptions ''ScrollAttachParams diff --git a/src/Dodge/Data/Item/Use/Consumption.hs b/src/Dodge/Data/Item/Use/Consumption.hs index e4a40bb77..cd0eda35d 100644 --- a/src/Dodge/Data/Item/Use/Consumption.hs +++ b/src/Dodge/Data/Item/Use/Consumption.hs @@ -32,11 +32,6 @@ data AmmoSource | EitherSource deriving (Eq, Show, Read) --Generic, Flat) -data ExternalSourceType = BulletClip - | BulletBelt - | ElectricPower - deriving (Eq, Show, Read) --Generic, Flat) - data InternalAmmo = InternalAmmo { _iaMax :: Int , _iaLoaded :: Int diff --git a/src/Dodge/Data/Item/Use/Consumption/LoadAction.hs b/src/Dodge/Data/Item/Use/Consumption/LoadAction.hs index 17d9fb028..ae4290a78 100644 --- a/src/Dodge/Data/Item/Use/Consumption/LoadAction.hs +++ b/src/Dodge/Data/Item/Use/Consumption/LoadAction.hs @@ -42,7 +42,6 @@ data InventoryManipulation data InvSelAction = NoInvSelAction - | AttachLoadSourceAction {_actionProgress :: Int} | ReloadAction {_actionProgress :: Int, _reloadAction :: LoadAction} deriving (Eq, Ord, Show, Read) --Generic, Flat) diff --git a/src/Dodge/Item/Ammo.hs b/src/Dodge/Item/Ammo.hs index bb9beadd9..b5653942c 100644 --- a/src/Dodge/Item/Ammo.hs +++ b/src/Dodge/Item/Ammo.hs @@ -1,38 +1,54 @@ module Dodge.Item.Ammo where -import Dodge.Reloading.Action import Control.Lens import Dodge.Data.World import Dodge.Default.Item +import Dodge.Reloading.Action revolveMag :: Item -revolveMag = defaultHeldItem & itType . iyBase .~ ATTACH (AMMOATTACH REVOLVEMAG) - & itUse .~ AttachUse {_attachParams = AmmoAttachParams {_ammoAttachParams = InternalAmmo - { _iaMax = 6 - , _iaLoaded = 6 - , _iaPrimed = True - , _iaCycle = [loadPartialInsert 10 1] - , _iaProgress = Nothing - } - } - } +revolveMag = + defaultHeldItem & itType . iyBase .~ ATTACH (AMMOATTACH REVOLVEMAG) + & itUse + .~ AttachUse + { _attachParams = + AmmoAttachParams + { _ammoParams = DefaultAmmoParams + , _ammoLoadStatus = + InternalAmmo + { _iaMax = 6 + , _iaLoaded = 6 + , _iaPrimed = True + , _iaCycle = [loadPartialInsert 10 1] + , _iaProgress = Nothing + } + } + } tinMag :: Item -tinMag = defaultHeldItem & itType . iyBase .~ ATTACH (AMMOATTACH TINMAG) - & itUse .~ AttachUse {_attachParams = AmmoAttachParams {_ammoAttachParams = InternalAmmo - { _iaMax = 15 - , _iaLoaded = 15 - , _iaPrimed = True - , _iaCycle = [loadEject 10, loadInsert 10, loadPrime 10] - , _iaProgress = Nothing - } - } - } +tinMag = + defaultHeldItem & itType . iyBase .~ ATTACH (AMMOATTACH TINMAG) + & itUse + .~ AttachUse + { _attachParams = + AmmoAttachParams + { _ammoParams = DefaultAmmoParams + , _ammoLoadStatus = + InternalAmmo + { _iaMax = 15 + , _iaLoaded = 15 + , _iaPrimed = True + , _iaCycle = [loadEject 10, loadInsert 10, loadPrime 10] + , _iaProgress = Nothing + } + } + } drumMag :: Item -drumMag = tinMag & itType . iyBase .~ ATTACH (AMMOATTACH DRUMMAG) - & itUse . attachParams . ammoAttachParams . iaMax .~ 30 +drumMag = + tinMag & itType . iyBase .~ ATTACH (AMMOATTACH DRUMMAG) + & itUse . attachParams . ammoLoadStatus . iaMax .~ 30 beltMag :: Item -beltMag = tinMag & itType . iyBase .~ ATTACH (AMMOATTACH BULLETBELT) - +beltMag = + tinMag & itType . iyBase .~ ATTACH (AMMOATTACH BULLETBELT) + & itUse . attachParams . ammoLoadStatus . iaMax .~ 2000 diff --git a/src/Dodge/Item/Display.hs b/src/Dodge/Item/Display.hs index 019382fe3..3089f660d 100644 --- a/src/Dodge/Item/Display.hs +++ b/src/Dodge/Item/Display.hs @@ -153,7 +153,7 @@ showEquipmentNumber _ itm = case _eeUse ee of showReloadProgress :: Creature -> Item -> String showReloadProgress _ itm = fromMaybe [] $ do - ia <- itm ^? itUse . attachParams . ammoAttachParams + ia <- itm ^? itUse . attachParams . ammoLoadStatus return $ case ia ^? iaProgress . _Just . ix 0 of Nothing -> maybe "" show $ ia ^? iaLoaded Just la -> showLoadActionType la ia diff --git a/src/Dodge/Item/Weapon/TriggerType.hs b/src/Dodge/Item/Weapon/TriggerType.hs index e15587ada..9cd83af83 100644 --- a/src/Dodge/Item/Weapon/TriggerType.hs +++ b/src/Dodge/Item/Weapon/TriggerType.hs @@ -142,7 +142,7 @@ withThickSmokeI eff item cr w = ammoCheckI :: ChainEffect ammoCheckI eff itm cr w = fromMaybe (failsound w) $ do invid <- itm ^? itLocation . ipInvID - x <- cr ^? crInv . ix (invid + 1) . itUse . attachParams . ammoAttachParams . iaLoaded + x <- cr ^? crInv . ix (invid + 1) . itUse . attachParams . ammoLoadStatus . iaLoaded guard $ x > 0 return $ eff itm cr $ w & cWorld . lWorld . creatures . ix (_crID cr) %~ crCancelReloading where @@ -340,13 +340,13 @@ useAllAmmo eff item cr = fromMaybe id $ do invid <- item ^? itLocation . ipInvID return $ eff item cr . (cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix (invid + 1) - . itUse . attachParams . ammoAttachParams . iaLoaded .~ 0) + . itUse . attachParams . ammoLoadStatus . iaLoaded .~ 0) useAmmoUpTo :: Int -> ChainEffect useAmmoUpTo amAmount eff itm cr = fromMaybe id $ do invid <- itm ^? itLocation . ipInvID return $ eff itm cr - . ( cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix (invid + 1) . itUse . attachParams . ammoAttachParams . iaLoaded + . ( cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix (invid + 1) . itUse . attachParams . ammoLoadStatus . iaLoaded %~ (max 0 . subtract amAmount) ) @@ -358,7 +358,7 @@ useAmmoAmount amAmount eff item cr = itref = cr ^?! crManipulation . manObject . inInventory . ispItem -- unsafe!! TODO change useAmmoAmount' :: Int -> Int -> IM.IntMap Item -> IM.IntMap Item -useAmmoAmount' itref x inv = inv & ix (itref + 1) . itUse . attachParams . ammoAttachParams . iaLoaded -~ x +useAmmoAmount' itref x inv = inv & ix (itref + 1) . itUse . attachParams . ammoLoadStatus . iaLoaded -~ x -- . crInv . ix itRef . itUse . heldConsumption . laSource @@ -659,7 +659,7 @@ duplicateLoaded eff it cr w = foldr f w (take numbul [1::Int .. ]) f _ = eff it cr numbul = fromMaybe 0 $ do i <- cr ^? crManipulation . manObject . inInventory . ispItem - cr ^? crInv . ix (i+1) . itUse . attachParams . ammoAttachParams . iaLoaded + cr ^? crInv . ix (i+1) . itUse . attachParams . ammoLoadStatus . iaLoaded duplicateNumBarrels :: Int -> ChainEffect duplicateNumBarrels n eff itm cr w = foldr f w (take n $ itm ^?! itUse . heldAim . aimMuzzles) @@ -681,7 +681,7 @@ duplicateLoadedBarrels eff itm cr = duplicateNumBarrels numbul eff itm cr numbul :: Int numbul = fromMaybe 0 $ do i <- cr ^? crManipulation . manObject . inInventory . ispItem - cr ^? crInv . ix (i+1) . itUse . attachParams . ammoAttachParams . iaLoaded + cr ^? crInv . ix (i+1) . itUse . attachParams . ammoLoadStatus . iaLoaded duplicateOffsetsFocus :: [Float] -> ChainEffect duplicateOffsetsFocus xs eff item cr w = foldr f w poss diff --git a/src/Dodge/Reloading.hs b/src/Dodge/Reloading.hs index f897b0ee3..46e8aafe2 100644 --- a/src/Dodge/Reloading.hs +++ b/src/Dodge/Reloading.hs @@ -17,7 +17,7 @@ crCancelReloading cr = updateProgress = fromMaybe id $ do InInventory (SelItem i _) <- cr ^? crManipulation . manObject return $ - crInv . ix (i + 1) . itUse . attachParams . ammoAttachParams . iaProgress + crInv . ix (i + 1) . itUse . attachParams . ammoLoadStatus . iaProgress %~ const Nothing stepReloading :: Creature -> Creature @@ -27,14 +27,14 @@ stepReloading cr = case cr ^? crManipulation . manObject . inInventory of cr & crManipulation . manObject . inInventory . iselAction . actionProgress -~ 1 | otherwise -> cr - & crInv . ix (i + 1) . itUse . attachParams . ammoAttachParams %~ doLoadAction la - & crInv . ix (i + 1) . itUse . attachParams . ammoAttachParams %~ rotateActionProgress + & crInv . ix (i + 1) . itUse . attachParams . ammoLoadStatus %~ doLoadAction la + & crInv . ix (i + 1) . itUse . attachParams . ammoLoadStatus %~ rotateActionProgress & tryNextLoadAction _ -> cr tryNextLoadAction :: Creature -> Creature tryNextLoadAction cr = case cr ^? crManipulation . manObject . inInventory of - Just (SelItem i _) -> case cr ^? crInv . ix (i + 1) . itUse . attachParams . ammoAttachParams . iaProgress . _Just . ix 0 of + Just (SelItem i _) -> case cr ^? crInv . ix (i + 1) . itUse . attachParams . ammoLoadStatus . iaProgress . _Just . ix 0 of Nothing -> cr & crManipulation . manObject . inInventory . iselAction .~ NoInvSelAction Just la -> cr & crManipulation . manObject . inInventory . iselAction . actionProgress .~ _actionTime la @@ -49,7 +49,7 @@ crReload cr = case cr ^? crManipulation . manObject . inInventory . iselAction o tryStartLoading :: Creature -> Creature tryStartLoading cr = fromMaybe cr $ do i <- cr ^? crManipulation . manObject . inInventory . ispItem - ia <- cr ^? crInv . ix (i + 1) . itUse . attachParams . ammoAttachParams + ia <- cr ^? crInv . ix (i + 1) . itUse . attachParams . ammoLoadStatus return $ startLoading ia cr -- case as of @@ -66,7 +66,7 @@ startLoading ic cr = case ic ^? iaProgress . _Just . ix 0 of i <- cr ^? crManipulation . manObject . inInventory . ispItem return $ cr & startLoadingStep la - & crInv . ix i . itUse . attachParams . ammoAttachParams . iaProgress ?~ (la : las) + & crInv . ix i . itUse . attachParams . ammoLoadStatus . iaProgress ?~ (la : las) startLoadingStep :: LoadAction -> Creature -> Creature startLoadingStep la cr = cr & crManipulation . manObject . inInventory . iselAction .~ ReloadAction (_actionTime la) la diff --git a/tags b/tags index 25f951bb3..0f8b80c7e 100644 --- a/tags +++ b/tags @@ -56,11 +56,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 86;" t +AimParams src/Dodge/Data/Item/Use.hs 91;" 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 104;" t +AimStance src/Dodge/Data/Item/Use.hs 109;" 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 @@ -78,6 +78,7 @@ AmmoAttachParams src/Dodge/Data/Item/Use.hs 61;" C AmmoAttachType src/Dodge/Data/Item/Combine.hs 109;" t AmmoCheckMod src/Dodge/Data/Item/HeldUse.hs 82;" C AmmoHammerTimeUseOneMod src/Dodge/Data/Item/HeldUse.hs 84;" C +AmmoParams src/Dodge/Data/Item/Use.hs 67;" 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 @@ -125,7 +126,6 @@ AttachFuse src/Dodge/Data/Item/Attachment.hs 12;" C AttachFuse src/Dodge/Item/Attachment/Data.hs 12;" C AttachInt src/Dodge/Data/Item/Attachment.hs 14;" C AttachInt src/Dodge/Item/Attachment/Data.hs 16;" C -AttachLoadSourceAction src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 45;" 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 @@ -153,7 +153,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 50;" C +AutoRecharging src/Dodge/Data/Item/Use/Consumption.hs 45;" 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 @@ -307,9 +307,7 @@ Bullet src/Dodge/Data/Bullet.hs 6;" m Bullet src/Dodge/Item/Weapon/Bullet.hs 1;" m BulletAmmo src/Dodge/Data/Ammo.hs 37;" C BulletAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 51;" C -BulletBelt src/Dodge/Data/Item/Use/Consumption.hs 36;" C BulletBeltAttachment src/Dodge/Data/Item.hs 52;" C -BulletClip src/Dodge/Data/Item/Use/Consumption.hs 35;" C BulletClipAttachment src/Dodge/Data/Item.hs 51;" C BulletEffect src/Dodge/Data/Bullet.hs 41;" t BulletGun src/Dodge/Item/Held/BulletGun.hs 1;" m @@ -390,12 +388,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 73;" C +CharScrollParams src/Dodge/Data/Item/Use.hs 78;" 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 56;" C +ChargeableAmmo src/Dodge/Data/Item/Use/Consumption.hs 51;" 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 @@ -476,7 +474,7 @@ Consumable src/Dodge/Item/Consumable.hs 1;" m ConsumableFamily src/Dodge/Item/Family.hs 7;" C ConsumableItemType src/Dodge/Data/Item/Combine.hs 117;" t ConsumeUse src/Dodge/Data/Item/Use.hs 45;" C -ConsumeUse' src/Dodge/Data/Item/Use.hs 84;" t +ConsumeUse' src/Dodge/Data/Item/Use.hs 89;" 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 @@ -670,6 +668,7 @@ DecorationShape src/Dodge/Data/GenParams.hs 20;" t Default src/Dodge/Default.hs 7;" m Default src/Dodge/Tesla/Arc/Default.hs 1;" m Default src/Preload/Default.hs 1;" m +DefaultAmmoParams src/Dodge/Data/Item/Use.hs 67;" C DefaultArcStep src/Dodge/Data/ArcStep.hs 23;" C DefaultCrGroupUpdate src/Dodge/Data/CrGroupParams.hs 22;" C DefaultDrawButton src/Dodge/Data/Button.hs 17;" C @@ -829,7 +828,6 @@ 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 -ElectricPower src/Dodge/Data/Item/Use/Consumption.hs 37;" C Electronics src/Dodge/Data/Material.hs 11;" C ElephantGunMod src/Dodge/Data/Item/HeldUse.hs 90;" C EllShad src/Picture/Data.hs 41;" C @@ -858,7 +856,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 49;" C -EquipUse' src/Dodge/Data/Item/Use.hs 83;" t +EquipUse' src/Dodge/Data/Item/Use.hs 88;" 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 @@ -881,7 +879,6 @@ Explosion src/Dodge/Data/SoundOrigin.hs 36;" C Explosion src/Dodge/WorldEvent/Explosion.hs 4;" m ExplosionPayload src/Dodge/Data/Payload.hs 11;" C ExplosiveBarrel src/Dodge/Data/Creature/Misc.hs 76;" C -ExternalSourceType src/Dodge/Data/Item/Use/Consumption.hs 35;" t ExternallyGeneratedSounds src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 2;" m ExtraEffect src/Dodge/Item/Weapon/ExtraEffect.hs 6;" m ExtraPrimitive src/Shader/ExtraPrimitive.hs 1;" m @@ -1144,7 +1141,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 82;" t +HeldUse' src/Dodge/Data/Item/Use.hs 87;" t HeldUseAmmoParams src/Dodge/Data/Item/HeldUse.hs 17;" C HelpNum src/HelpNum.hs 1;" m HelperParticle src/Dodge/WorldEvent/HelperParticle.hs 2;" m @@ -1246,7 +1243,7 @@ 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 40;" t +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 @@ -1270,7 +1267,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 62;" t +ItAmount src/Dodge/Data/Item/Use/Consumption.hs 57;" 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 @@ -1291,7 +1288,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 113;" t +ItZoom src/Dodge/Data/Item/Use.hs 118;" 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 @@ -1303,12 +1300,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 79;" C -ItemCraft src/Dodge/Data/Item/Use.hs 80;" C +ItemConsume src/Dodge/Data/Item/Use.hs 84;" C +ItemCraft src/Dodge/Data/Item/Use.hs 85;" C ItemDimension src/Dodge/Data/Item/Misc.hs 13;" t -ItemEquip src/Dodge/Data/Item/Use.hs 78;" C +ItemEquip src/Dodge/Data/Item/Use.hs 83;" C ItemFamily src/Dodge/Item/Family.hs 3;" t -ItemHeld src/Dodge/Data/Item/Use.hs 77;" C +ItemHeld src/Dodge/Data/Item/Use.hs 82;" 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 205;" t @@ -1321,7 +1318,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 76;" t +ItemUse' src/Dodge/Data/Item/Use.hs 81;" t JETPACK src/Dodge/Combine/Data.hs 116;" C JETPACK src/Dodge/Data/Item/Combine.hs 137;" C JGK src/Control/Foldl/JGK.hs 1;" m @@ -1417,7 +1414,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 49;" t +LeftConsumption src/Dodge/Data/Item/Use/Consumption.hs 44;" 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 @@ -1672,7 +1669,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 97;" t +Muzzle src/Dodge/Data/Item/Use.hs 102;" t MvForward src/Dodge/Data/ActionPlan.hs 35;" C MvPt src/Dodge/MvPt.hs 1;" m MvTurnToward src/Dodge/Data/ActionPlan.hs 34;" C @@ -1837,7 +1834,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 108;" C +OneHand src/Dodge/Data/Item/Use.hs 113;" 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 @@ -2151,7 +2148,7 @@ Regex src/Regex.hs 1;" m ReigonalGovernment src/Dodge/Data/Scenario.hs 50;" C 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 46;" C +ReloadAction src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 45;" C ReloadAction src/Dodge/Data/LoadAction.hs 26;" C Reloading src/Dodge/Reloading.hs 1;" m Remote src/Dodge/Item/Weapon/Remote.hs 1;" m @@ -2290,7 +2287,7 @@ 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 64;" t +ScrollAttachParams src/Dodge/Data/Item/Use.hs 69;" t ScrollAttachParams src/Dodge/Data/Item/Use.hs 60;" C ScrollAttachType src/Dodge/Data/Item/Combine.hs 105;" t ScrollValue src/Dodge/ScrollValue.hs 1;" m @@ -2563,7 +2560,7 @@ TUBE src/Dodge/Data/Item/Combine.hs 31;" C Tank src/Dodge/Placement/Instance/Tank.hs 1;" m Tanks src/Dodge/Room/Tanks.hs 1;" m Tap src/Dodge/Data/SoundOrigin.hs 37;" C -TargetAttachParams src/Dodge/Data/Item/Use.hs 62;" C +TargetAttachParams src/Dodge/Data/Item/Use.hs 65;" C TargetCursor src/Dodge/Data/Item/Targeting.hs 16;" C TargetCursorUpdate src/Dodge/Data/Targeting.hs 26;" C TargetDistanceDraw src/Dodge/Data/Targeting.hs 32;" C @@ -2724,9 +2721,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 107;" C -TwoHandOver src/Dodge/Data/Item/Use.hs 106;" C -TwoHandUnder src/Dodge/Data/Item/Use.hs 105;" C +TwoHandFlat src/Dodge/Data/Item/Use.hs 112;" C +TwoHandOver src/Dodge/Data/Item/Use.hs 111;" C +TwoHandUnder src/Dodge/Data/Item/Use.hs 110;" 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 @@ -2938,7 +2935,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 65;" C +ZoomScrollParams src/Dodge/Data/Item/Use.hs 70;" C __Just' src/MaybeHelp.hs 13;" f _actAction src/Dodge/Data/ActionPlan.hs 81;" f _actLabel src/Dodge/Data/ActionPlan.hs 80;" f @@ -2953,13 +2950,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 92;" f -_aimMuzzles src/Dodge/Data/Item/Use.hs 93;" f -_aimRange src/Dodge/Data/Item/Use.hs 89;" f -_aimStance src/Dodge/Data/Item/Use.hs 91;" f -_aimTurnSpeed src/Dodge/Data/Item/Use.hs 88;" f -_aimWeight src/Dodge/Data/Item/Use.hs 87;" f -_aimZoom src/Dodge/Data/Item/Use.hs 90;" f +_aimHandlePos src/Dodge/Data/Item/Use.hs 97;" f +_aimMuzzles src/Dodge/Data/Item/Use.hs 98;" f +_aimRange src/Dodge/Data/Item/Use.hs 94;" f +_aimStance src/Dodge/Data/Item/Use.hs 96;" f +_aimTurnSpeed src/Dodge/Data/Item/Use.hs 93;" f +_aimWeight src/Dodge/Data/Item/Use.hs 92;" f +_aimZoom src/Dodge/Data/Item/Use.hs 95;" 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 @@ -2990,7 +2987,8 @@ _amString src/Dodge/Data/Item/Use/Consumption/Ammo.hs 47;" f _amString src/Dodge/Data/Item/Use/Consumption/Ammo.hs 52;" f _amString src/Dodge/Data/Item/Use/Consumption/Ammo.hs 56;" f _ambushTarget src/Dodge/Data/ActionPlan.hs 178;" f -_ammoAttachParams src/Dodge/Data/Item/Use.hs 61;" f +_ammoLoadStatus src/Dodge/Data/Item/Use.hs 62;" f +_ammoParams src/Dodge/Data/Item/Use.hs 63;" 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 @@ -2998,13 +2996,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 51;" f +_arLoaded src/Dodge/Data/Item/Use/Consumption.hs 46;" f _arMax src/Dodge/Data/Item/Consumption.hs 25;" f -_arMax src/Dodge/Data/Item/Use/Consumption.hs 52;" f +_arMax src/Dodge/Data/Item/Use/Consumption.hs 47;" f _arProgress src/Dodge/Data/Item/Consumption.hs 27;" f -_arProgress src/Dodge/Data/Item/Use/Consumption.hs 54;" f +_arProgress src/Dodge/Data/Item/Use/Consumption.hs 49;" f _arTime src/Dodge/Data/Item/Consumption.hs 26;" f -_arTime src/Dodge/Data/Item/Use/Consumption.hs 53;" f +_arTime src/Dodge/Data/Item/Use/Consumption.hs 48;" f _arbitraryAction src/Dodge/Data/ActionPlan.hs 167;" f _arcNumber src/Dodge/Data/Item/Params.hs 64;" f _arcSize src/Dodge/Data/Item/Params.hs 63;" f @@ -3422,7 +3420,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 62;" f +_getItAmount src/Dodge/Data/Item/Use/Consumption.hs 57;" f _getSoundID src/Sound/Data.hs 32;" f _grBound src/Dodge/GameRoom.hs 18;" f _grDir src/Dodge/GameRoom.hs 20;" f @@ -3464,11 +3462,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 44;" f -_iaLoaded src/Dodge/Data/Item/Use/Consumption.hs 42;" f -_iaMax src/Dodge/Data/Item/Use/Consumption.hs 41;" f -_iaPrimed src/Dodge/Data/Item/Use/Consumption.hs 43;" f -_iaProgress src/Dodge/Data/Item/Use/Consumption.hs 45;" 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 _ibtAttach src/Dodge/Data/Item/Combine.hs 92;" f _ibtAttachTarget src/Dodge/Data/Item/Combine.hs 100;" f _ibtConsumable src/Dodge/Data/Item/Combine.hs 90;" f @@ -3546,9 +3544,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 116;" f -_izMax src/Dodge/Data/Item/Use.hs 114;" f -_izMin src/Dodge/Data/Item/Use.hs 115;" f +_izFac src/Dodge/Data/Item/Use.hs 121;" f +_izMax src/Dodge/Data/Item/Use.hs 119;" f +_izMin src/Dodge/Data/Item/Use.hs 120;" 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 @@ -3675,9 +3673,9 @@ _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 100;" f -_mzPos src/Dodge/Data/Item/Use.hs 98;" f -_mzRot src/Dodge/Data/Item/Use.hs 99;" f +_mzInaccuracy src/Dodge/Data/Item/Use.hs 105;" f +_mzPos src/Dodge/Data/Item/Use.hs 103;" f +_mzRot src/Dodge/Data/Item/Use.hs 104;" f _newArcStep src/Dodge/Data/Item/Params.hs 65;" f _newBeams src/Dodge/Data/LWorld.hs 114;" f _noClip src/Dodge/Debug/Flag/Data.hs 7;" f @@ -3701,9 +3699,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 71;" f -_opticPos src/Dodge/Data/Item/Use.hs 67;" f -_opticZoom src/Dodge/Data/Item/Use.hs 70;" f +_opticDefaultZoom src/Dodge/Data/Item/Use.hs 76;" f +_opticPos src/Dodge/Data/Item/Use.hs 72;" f +_opticZoom src/Dodge/Data/Item/Use.hs 75;" f _paramMID src/Dodge/Data/Item/Params.hs 68;" f _partialAction src/Dodge/Data/ActionPlan.hs 145;" f _pastWorlds src/Dodge/Data/World.hs 38;" f @@ -3879,7 +3877,7 @@ _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/Params.hs 51;" f -_reloadAction src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 46;" 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 _remoteZoom src/Dodge/Data/Item/Scope.hs 18;" f @@ -3976,7 +3974,7 @@ _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 60;" f -_scrollChar src/Dodge/Data/Item/Use.hs 74;" f +_scrollChar src/Dodge/Data/Item/Use.hs 79;" 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 @@ -4295,9 +4293,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 58;" f +_wpCharge src/Dodge/Data/Item/Use/Consumption.hs 53;" f _wpMaxCharge src/Dodge/Data/Item/Consumption.hs 30;" f -_wpMaxCharge src/Dodge/Data/Item/Use/Consumption.hs 57;" f +_wpMaxCharge src/Dodge/Data/Item/Use/Consumption.hs 52;" 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 @@ -4340,7 +4338,7 @@ aTreeStrut src/Dodge/Tree/GenerateStructure.hs 37;" f aWallPulse src/Dodge/Item/Weapon/UseEffect.hs 21;" f accessTerminal src/Dodge/WorldEffect.hs 48;" f activeTargetCursorPic src/Dodge/Targeting/Draw.hs 48;" f -addArmour src/Dodge/Creature.hs 82;" f +addArmour src/Dodge/Creature.hs 83;" f addBlock src/Dodge/LevelGen/Block.hs 20;" f addBoostShockwave src/Dodge/Item/Weapon/Booster.hs 56;" f addBoostShockwave src/Dodge/Luse.hs 119;" f @@ -4395,7 +4393,7 @@ advanceStepCounter src/Dodge/Creature/Action/Movement.hs 56;" f advanceStepCounter src/Dodge/Creature/Impulse/Movement.hs 45;" f afterRecoil src/Dodge/Item/Weapon/TriggerType.hs 287;" f aimDelaySweep src/Dodge/Render/ShapePicture.hs 44;" f -aimStanceInfo src/Dodge/Item/Info.hs 229;" f +aimStanceInfo src/Dodge/Item/Info.hs 230;" f aimTurn src/Dodge/Creature/YourControl.hs 188;" f aimingMuzzleLength src/Dodge/Creature/HandPos.hs 46;" f aimingMuzzlePos src/Dodge/Creature/HandPos.hs 41;" f @@ -4413,7 +4411,6 @@ allHotkeys src/Dodge/Creature/YourControl.hs 52;" f allVisibleWalls src/Dodge/Base/Collide.hs 131;" f alongSegBy src/Geometry.hs 43;" f ammoCheckI src/Dodge/Item/Weapon/TriggerType.hs 142;" f -ammoPosition src/Dodge/Item/Draw/SPic.hs 67;" f ammoTweakStrings src/Dodge/Render/HUD.hs 268;" f amr src/Dodge/Item/Held/Rod.hs 51;" f amr src/Dodge/Item/Weapon/BulletGun/Rod.hs 56;" f @@ -4528,12 +4525,11 @@ 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 -bangStickAmmoPos src/Dodge/Item/Draw/SPic.hs 118;" f bangStickSoundChoice src/Dodge/HeldUse.hs 492;" 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 434;" f +baseAMRShape src/Dodge/Item/Draw/SPic.hs 435;" 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 @@ -4541,7 +4537,7 @@ baseCaneShape src/Dodge/Item/Draw/SPic.hs 241;" 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 431;" f +baseRodShape src/Dodge/Item/Draw/SPic.hs 432;" f baseSMGShape src/Dodge/Item/Draw/SPic.hs 403;" f baseShoulder src/Dodge/Creature/Picture.hs 158;" f baseStickShape src/Dodge/Item/Draw/SPic.hs 218;" f @@ -4567,7 +4563,7 @@ basicMachineApplyDamage src/Dodge/Machine/Damage.hs 6;" f basicMachineUpdate src/Dodge/Machine.hs 13;" f basicPerceptionUpdateR src/Dodge/Creature/AlertLevel.hs 17;" f basicTerminal src/Dodge/Terminal.hs 32;" f -batteryGuns src/Dodge/Combine/Combinations.hs 221;" f +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 @@ -4646,12 +4642,9 @@ bulletBeltBracer src/Dodge/Item/Equipment.hs 82;" f bulletBeltPack src/Dodge/Item/Equipment.hs 74;" f bulletBodyCraft src/Dodge/Item/Craftable.hs 24;" f bulletCombinations src/Dodge/Combine/Graph.hs 35;" f -bulletEffectColor src/Dodge/Item/Draw/SPic.hs 336;" f -bulletPayloadColor src/Dodge/Item/Draw/SPic.hs 349;" f bulletSpawn src/Dodge/Bullet.hs 91;" f -bulletTrajColor src/Dodge/Item/Draw/SPic.hs 342;" f bulletTypes src/Dodge/TweakBullet.hs 26;" f -bulletWeapons src/Dodge/Combine/Combinations.hs 233;" f +bulletWeapons src/Dodge/Combine/Combinations.hs 232;" f burstRifle src/Dodge/Item/Held/Cane.hs 87;" f burstRifle src/Dodge/Item/Weapon/BulletGun/Cane.hs 105;" f buzzS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 502;" f @@ -4824,7 +4817,7 @@ connectionBlurb src/Dodge/Terminal.hs 100;" f connectionBlurbLines src/Dodge/Terminal.hs 45;" f constructEdges src/Polyhedra.hs 33;" f constructEdgesList src/Polyhedra.hs 42;" f -consumableInfo src/Dodge/Item/Info.hs 149;" f +consumableInfo src/Dodge/Item/Info.hs 150;" f contToIDCont src/Dodge/LevelGen/Data.hs 57;" f contToIDCont src/Dodge/LevelGen/PlacementHelper.hs 57;" f convexHull src/Geometry/Polygon.hs 91;" f @@ -4883,7 +4876,7 @@ crToBox' src/Dodge/Creature/ShadowBox.hs 10;" f crWeaponReady src/Dodge/Creature/Test.hs 42;" f crZoneOfPoint src/Dodge/Base/Zone.hs 54;" f crZoneSize src/Dodge/Zoning/Creature.hs 39;" f -craftInfo src/Dodge/Item/Info.hs 154;" f +craftInfo src/Dodge/Item/Info.hs 155;" f crankSlowS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 420;" f createAndSelectItem src/Dodge/Inventory/Add.hs 43;" f createArc src/Dodge/Tesla/Arc.hs 67;" f @@ -5149,9 +5142,9 @@ 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 493;" f +detectorColor src/Dodge/Item/Draw/SPic.hs 495;" f detectorEffect src/Dodge/Item/Weapon/Radar.hs 19;" f -detectorInfo src/Dodge/Item/Info.hs 209;" f +detectorInfo src/Dodge/Item/Info.hs 210;" f determineInvSelCursorWidth src/Dodge/ListDisplayParams.hs 54;" f diagonalLinesRect src/Dodge/Room/Foreground.hs 52;" f diffAngles src/Geometry.hs 196;" f @@ -5290,7 +5283,6 @@ drawBoostShockwave src/Dodge/Item/Weapon/Booster.hs 83;" f drawBoundingBox src/Dodge/Debug/Picture.hs 299;" f drawBul src/Dodge/Bullet/Draw.hs 9;" f drawBul src/Dodge/Particle/Bullet/Draw.hs 9;" f -drawBullet src/Dodge/Item/Draw/SPic.hs 258;" f drawButton src/Dodge/Button/Draw.hs 9;" f drawCPUShadows src/Dodge/Render/Shadow.hs 19;" f drawCarte src/Dodge/Render/HUD/Carte.hs 14;" f @@ -5399,7 +5391,7 @@ dropItem src/Dodge/Creature/Action.hs 183;" f dropItemKey src/Dodge/Config/KeyConfig.hs 24;" f drumMag src/Dodge/Item/Ammo.hs 32;" f dualBeam src/Dodge/Item/Held/BatteryGuns.hs 141;" f -dualBeamPic src/Dodge/Item/Draw/SPic.hs 460;" f +dualBeamPic src/Dodge/Item/Draw/SPic.hs 462;" 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 705;" f @@ -5422,17 +5414,16 @@ encircle src/Dodge/Creature/Boid.hs 115;" f encircleCloseP src/Dodge/Creature/Boid.hs 35;" f encircleDistP src/Dodge/Creature/Boid.hs 21;" f encircleP src/Dodge/Creature/Boid.hs 27;" f -energyBallColor src/Dodge/Item/Draw/SPic.hs 357;" f energyBallCraft src/Dodge/Item/Craftable.hs 18;" f enterCombineInv src/Dodge/DisplayInventory.hs 264;" f 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 120;" f +equipInfo src/Dodge/Item/Info.hs 121;" f equipItemSPic src/Dodge/Item/Draw/SPic.hs 28;" f equipPosition src/Dodge/Item/Draw.hs 26;" f equipPosition src/Dodge/Item/Equipment/Shape.hs 15;" f -equipSiteInfo src/Dodge/Item/Info.hs 241;" f +equipSiteInfo src/Dodge/Item/Info.hs 242;" f equipSiteToPositions src/Dodge/Inventory/RBList.hs 77;" f equipSpeed src/Dodge/Creature/Action/Movement.hs 106;" f equipSpeed src/Dodge/Creature/Impulse/Movement.hs 99;" f @@ -5518,7 +5509,7 @@ flameWall src/Dodge/Item/Weapon/SprayGuns.hs 54;" f flamerPic src/Dodge/Item/Draw/SPic.hs 406;" 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 477;" f +flatShieldEquipSPic src/Dodge/Item/Draw/SPic.hs 479;" f flatV2 src/Picture/Data.hs 65;" f flatV3 src/Picture/Data.hs 68;" f flatV4 src/Picture/Data.hs 71;" f @@ -5705,7 +5696,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 483;" f +headLampShape src/Dodge/Item/Draw/SPic.hs 485;" 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 @@ -5719,7 +5710,7 @@ 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 -heldPositionInfo src/Dodge/Item/Info.hs 226;" f +heldPositionInfo src/Dodge/Item/Info.hs 227;" f helpCommand src/Dodge/Terminal.hs 64;" f helpPoly3D src/Polyhedra.hs 124;" f heron src/Geometry.hs 221;" f @@ -5734,7 +5725,7 @@ hitSound src/Dodge/SoundLogic/Synonyms.hs 4;" f holdForm src/Dodge/Creature/Boid.hs 136;" f holsterWeapon src/Dodge/Creature/Volition.hs 14;" f holsterWeaponSound src/Dodge/SoundLogic/Synonyms.hs 4;" f -homingLaunchers src/Dodge/Combine/Combinations.hs 218;" f +homingLaunchers src/Dodge/Combine/Combinations.hs 217;" f horPipe src/Dodge/Placement/Instance/Pipe.hs 9;" f hotkeyToScancode src/Dodge/Creature/YourControl.hs 55;" f hotkeyToString src/Dodge/Inventory/SelectionList.hs 35;" f @@ -5836,7 +5827,7 @@ invSelectionItem src/Dodge/Inventory/SelectionList.hs 16;" f invShiftPointBy src/Dodge/ShiftPoint.hs 8;" f invSideEff src/Dodge/Creature/State.hs 233;" f invSize src/Dodge/Inventory/CheckSlots.hs 41;" f -inventoryX src/Dodge/Creature.hs 114;" f +inventoryX src/Dodge/Creature.hs 115;" f inverseShockwaveAt src/Dodge/WorldEvent/Shockwave.hs 43;" f invertEncircleDistP src/Dodge/Creature/Boid.hs 13;" f invertIntMap src/Multiset.hs 61;" f @@ -5878,7 +5869,7 @@ itUseCharge src/Dodge/Item/Weapon/TriggerType.hs 153;" f itemBaseName src/Dodge/Item/Display.hs 75;" f itemBlips src/Dodge/Item/Weapon/UseEffect.hs 38;" f itemBlips src/Dodge/RadarSweep.hs 74;" f -itemCombinations src/Dodge/Combine/Combinations.hs 48;" f +itemCombinations src/Dodge/Combine/Combinations.hs 47;" f itemCombinationsEdges src/Dodge/Combine/Graph.hs 55;" f itemDisplay src/Dodge/Item/Display.hs 47;" f itemDisplayOffset src/Dodge/Item/Display.hs 21;" f @@ -5888,10 +5879,10 @@ itemEffect src/Dodge/Creature/Impulse/UseItem.hs 35;" f itemEquipPict src/Dodge/Item/Draw.hs 17;" f itemFromAttachType src/Dodge/Item.hs 28;" f itemFromBase src/Dodge/Item.hs 19;" f -itemFromConsumableType src/Dodge/Item.hs 37;" f -itemFromEquipType src/Dodge/Item.hs 42;" f +itemFromConsumableType src/Dodge/Item.hs 38;" f +itemFromEquipType src/Dodge/Item.hs 43;" f itemFromHeldType src/Dodge/Item/Held.hs 25;" f -itemFromLeftType src/Dodge/Item.hs 64;" f +itemFromLeftType src/Dodge/Item.hs 65;" 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 @@ -5903,10 +5894,10 @@ itemUpdate src/Dodge/Creature/State.hs 258;" f iterateUntil src/MonadHelp.hs 23;" f iterateWhile src/MonadHelp.hs 30;" f itmBaseInfo src/Dodge/Item/Info.hs 21;" f -itmEquipSiteInfo src/Dodge/Item/Info.hs 238;" f -itmModuleInfo src/Dodge/Item/Info.hs 249;" f +itmEquipSiteInfo src/Dodge/Item/Info.hs 239;" f +itmModuleInfo src/Dodge/Item/Info.hs 250;" f itmSpaceInfo src/Dodge/Item/Info.hs 16;" f -itmUsageInfo src/Dodge/Item/Info.hs 215;" f +itmUsageInfo src/Dodge/Item/Info.hs 216;" f ixNZ src/Dodge/Base/Zone.hs 200;" f ixZone src/Dodge/Base/Zone.hs 197;" f jShape src/Dodge/Placement/Instance/LightSource.hs 86;" f @@ -5932,7 +5923,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 499;" f +keyPic src/Dodge/Item/Draw/SPic.hs 501;" 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 @@ -5952,7 +5943,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 447;" f +lasGunPic src/Dodge/Item/Draw/SPic.hs 448;" 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 @@ -5966,17 +5957,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 421;" f +launcherPic src/Dodge/Item/Draw/SPic.hs 422;" f launcherSound src/Dodge/SoundLogic/Synonyms.hs 4;" f launcherX src/Dodge/Item/Held/Launcher.hs 45;" 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 109;" f +leftInfo src/Dodge/Item/Info.hs 110;" f leftItemSPic src/Dodge/Item/Draw/SPic.hs 62;" f leftPad src/Padding.hs 14;" f -legsSPic src/Dodge/Item/Draw/SPic.hs 517;" f +legsSPic src/Dodge/Item/Draw/SPic.hs 519;" f liShape src/Dodge/Placement/Instance/LightSource.hs 99;" f liShape src/Dodge/Placements/LightSource.hs 55;" f light src/Color.hs 100;" f @@ -6036,7 +6027,7 @@ lockRoomMultiItems src/Dodge/LockAndKey.hs 14;" f lockedStart src/Dodge/Room/RunPast.hs 34;" f logistic src/Dodge/Base.hs 90;" f longBlockedCorridor src/Dodge/Room/RoadBlock.hs 58;" f -longCrit src/Dodge/Creature.hs 68;" f +longCrit src/Dodge/Creature.hs 69;" f longGunSound src/Dodge/SoundLogic/Synonyms.hs 4;" f longRoom src/Dodge/Room/LongRoom.hs 21;" f longRoomRunPast src/Dodge/Room/LongRoom.hs 47;" f @@ -6082,7 +6073,7 @@ makeByteStringShaderUsingVAO src/Shader/Compile.hs 137;" f makeCloudAt src/Dodge/WorldEvent/Cloud.hs 18;" f makeColorTermLine src/Dodge/Terminal.hs 127;" f makeColorTermPara src/Dodge/Terminal.hs 124;" f -makeCommaList src/Dodge/Item/Info.hs 266;" f +makeCommaList src/Dodge/Item/Info.hs 267;" f makeCorpse src/Dodge/Corpse/Make.hs 10;" f makeDebris src/Dodge/Block/Debris.hs 42;" f makeDebrisDirected src/Dodge/Block/Debris.hs 79;" f @@ -6212,7 +6203,7 @@ minCrIXOn src/Dodge/Zoning/Creature.hs 45;" f minOn src/FoldableHelp.hs 34;" f minStreamOn src/StreamingHelp.hs 14;" f mini1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 322;" f -miniGunCrit src/Dodge/Creature.hs 61;" f +miniGunCrit src/Dodge/Creature.hs 62;" f miniGunUse src/Dodge/Item/Held/Cane.hs 95;" f miniGunUse src/Dodge/Item/Weapon/BulletGun/Cane.hs 113;" f miniGunX src/Dodge/Item/Held/Cane.hs 106;" f @@ -6249,8 +6240,8 @@ modClock src/Dodge/Item/Weapon/TriggerType.hs 446;" f modTo src/Geometry/Zone.hs 10;" f modifierKey src/Dodge/Config/KeyConfig.hs 34;" f moduleAttachPosition src/Dodge/Item/Module.hs 6;" f -moduleCombinations src/Dodge/Combine/Combinations.hs 129;" f -moduleInfo src/Dodge/Item/Info.hs 272;" f +moduleCombinations src/Dodge/Combine/Combinations.hs 128;" f +moduleInfo src/Dodge/Item/Info.hs 273;" f moduleModification src/Dodge/Combine/Module.hs 10;" f moduleName src/Dodge/Module.hs 22;" f moduleSize src/Dodge/Module.hs 14;" f @@ -6301,12 +6292,11 @@ mtTopLabels src/Dodge/Tree/Compose.hs 49;" f mtUnderLabels src/Dodge/Tree/Compose.hs 52;" f muchWlDustAt src/Dodge/Wall/Dust.hs 15;" f muin src/Dodge/RoomLink.hs 132;" f -multGunCrit src/Dodge/Creature.hs 75;" f +multGunCrit src/Dodge/Creature.hs 76;" f multiArrow src/Picture/Composite.hs 11;" f multiGun src/Dodge/Item/Held/Cane.hs 50;" f multiLookupTrie src/SimpleTrie.hs 28;" f multiLookupTrieI src/SimpleTrie.hs 36;" f -multigunAmmoPos src/Dodge/Item/Draw/SPic.hs 131;" f muout src/Dodge/RoomLink.hs 129;" f muzFlareAt src/Dodge/WorldEvent/Flash.hs 26;" f mvBullet src/Dodge/Bullet.hs 31;" f @@ -7260,7 +7250,7 @@ spawnCrNextTo src/Dodge/Item/Weapon/Spawn.hs 20;" f spawnElectricalSparks src/Dodge/PosEvent.hs 20;" f spawnGun src/Dodge/Item/Weapon/Spawn.hs 12;" f spawnSmokeAtCursor src/Dodge/WorldEvent/Cloud.hs 73;" f -spawnerCrit src/Dodge/Creature.hs 54;" 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 68;" f @@ -7309,11 +7299,11 @@ ssfold src/FoldableHelp.hs 104;" f stackPicturesAt src/Dodge/Render/List.hs 81;" f stackPicturesAtOff src/Dodge/Render/List.hs 84;" f stackText src/Picture/Base.hs 188;" f -stackedInventory src/Dodge/Creature.hs 246;" f -startCr src/Dodge/Creature.hs 90;" f +stackedInventory src/Dodge/Creature.hs 253;" f +startCr src/Dodge/Creature.hs 91;" f startCrafts src/Dodge/Room/Start.hs 102;" f -startInvList src/Dodge/Creature.hs 108;" f -startInventory src/Dodge/Creature.hs 111;" f +startInvList src/Dodge/Creature.hs 109;" f +startInventory src/Dodge/Creature.hs 112;" f startLoading src/Dodge/Reloading.hs 59;" f startLoadingStep src/Dodge/Reloading.hs 71;" f startNewGameInSlot src/Dodge/StartNewGame.hs 15;" f @@ -7401,13 +7391,13 @@ targetYouLOS src/Dodge/Creature/ChooseTarget.hs 7;" f targetYouWhenCognizant src/Dodge/Creature/ReaderUpdate.hs 211;" f targetYouWhenCognizant src/Dodge/Creature/SetTarget.hs 9;" f targetingHat src/Dodge/Item/Equipment.hs 109;" f -targetingInfo src/Dodge/Item/Info.hs 141;" f +targetingInfo src/Dodge/Item/Info.hs 142;" f targetingScope src/Dodge/Item/Scope.hs 16;" f telRoomLev src/Dodge/Room/Teleport.hs 14;" f teleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 378;" f teleSound src/Dodge/SoundLogic/Synonyms.hs 4;" f teleportModule src/Dodge/Item/Craftable.hs 32;" f -teleportableWeapons src/Dodge/Combine/Combinations.hs 230;" f +teleportableWeapons src/Dodge/Combine/Combinations.hs 229;" f termButton src/Dodge/Placement/Instance/Terminal.hs 51;" f termSoundLine src/Dodge/Terminal.hs 109;" f termTextColor src/Dodge/Terminal.hs 112;" f @@ -7418,12 +7408,12 @@ 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 437;" f +teslaGunPic src/Dodge/Item/Draw/SPic.hs 438;" 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 testEventKey src/Dodge/Config/KeyConfig.hs 27;" f -testInventory src/Dodge/Creature.hs 223;" f +testInventory src/Dodge/Creature.hs 230;" f testPic src/Dodge/Render/ShapePicture.hs 153;" f testStringInit src/Dodge/TestString.hs 21;" f text src/Picture/Base.hs 192;" f @@ -7506,7 +7496,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 474;" f +tractorGunPic src/Dodge/Item/Draw/SPic.hs 476;" 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 @@ -7839,7 +7829,6 @@ vocalizationTest src/Dodge/Creature/Vocalization.hs 8;" f volleyGun src/Dodge/Item/Held/Cane.hs 38;" f volleyGun src/Dodge/Item/Weapon/BulletGun/Cane.hs 43;" f volleyGunShape src/Dodge/Item/Draw/SPic.hs 364;" f -volleygunAmmoPos src/Dodge/Item/Draw/SPic.hs 124;" 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