From dc44d20baf91506b4d41efd02fcdde42c7fd0379 Mon Sep 17 00:00:00 2001 From: justin Date: Tue, 1 Oct 2024 01:50:15 +0100 Subject: [PATCH] Cleanup --- ghcidOutput | 2 +- src/Dodge/Creature/Impulse/UseItem.hs | 4 +- src/Dodge/Data/Item/Use.hs | 36 +-- src/Dodge/Default/Item.hs | 21 +- src/Dodge/HeldUse.hs | 1 - src/Dodge/Item/Display.hs | 2 +- src/Dodge/Item/Draw/SPic.hs | 112 +++---- tags | 434 +++++++++++++------------- 8 files changed, 268 insertions(+), 344 deletions(-) diff --git a/ghcidOutput b/ghcidOutput index 11eeed8fc..cce96ea59 100644 --- a/ghcidOutput +++ b/ghcidOutput @@ -1 +1 @@ -All good (605 modules, at 01:43:48) +All good (605 modules, at 01:50:02) diff --git a/src/Dodge/Creature/Impulse/UseItem.hs b/src/Dodge/Creature/Impulse/UseItem.hs index 24575998a..48cab31b2 100644 --- a/src/Dodge/Creature/Impulse/UseItem.hs +++ b/src/Dodge/Creature/Impulse/UseItem.hs @@ -38,7 +38,7 @@ itemUseEffect cr it w = case it ^. ldtValue . itUse of & pointerToItem itm . itUse . heldHammer .~ HammerDown UseHotkey{} -> doequipmentchange EquipUse{} -> doequipmentchange - (ConsumeUse eff) -> useC eff (_ldtValue it) cr w + (UseConsume eff) -> useC eff (_ldtValue it) cr w CraftUse{} -> w AttachUse{} -> selectUse it cr w TargetingUse {} -> w @@ -104,7 +104,7 @@ useItemLeftClick cr w = fromMaybe w $ do ituse <- cr ^? crInv . ix invid . itUse case ituse of UseHeld{} -> return w - ConsumeUse{} -> return $ useItemLeftClick' cr w + UseConsume{} -> return $ useItemLeftClick' cr w EquipUse{} -> return $ useItemLeftClick' cr w UseHotkey{} -> return $ useItemLeftClick' cr w UseAmmoMag{} -> return w diff --git a/src/Dodge/Data/Item/Use.hs b/src/Dodge/Data/Item/Use.hs index feec6c2a8..51fbfc3d5 100644 --- a/src/Dodge/Data/Item/Use.hs +++ b/src/Dodge/Data/Item/Use.hs @@ -49,28 +49,20 @@ data ItemUse , _equipEffect :: EquipEffect , _leftConsumption :: LeftConsumption } - | ConsumeUse - { _cUse :: Cuse - -- , _useAmount :: ItAmount - } + | UseConsume { _cUse :: Cuse } | EquipUse { _equipEffect :: EquipEffect , _equipTargeting :: Maybe TargetingType } | CraftUse - | -- {_useAmount :: ItAmount} - AttachUse + | AttachUse {_atLinkedProjectile :: Maybe Int} - | -- {_attachParams :: AttachParams} - UseAmmoMag + | UseAmmoMag { _amagLoadStatus :: ReloadStatus , _amagParams :: AmmoParams , _amagType :: AmmoType } - | ScopeUse - { -- | a camera offset - _scopeScope :: Scope - } + | ScopeUse { _scopeScope :: Scope } | TargetingUse { _tgPos :: Maybe Point2 , _tgID :: Maybe Int @@ -79,12 +71,10 @@ data ItemUse | BulletModUse { _buMod :: BulletMod } - deriving (Eq, Show, Read) --Generic, Flat) + deriving (Eq, Show, Read) -data TriggerType - = AutoTrigger - | HammerTrigger - deriving (Eq, Show, Read) --Generic, Flat) +data TriggerType = AutoTrigger | HammerTrigger + deriving (Eq, Show, Read) data HeldParams = DefaultHeldParams @@ -121,18 +111,10 @@ data HeldParams data AmmoParams = BulletParams {_ampBullet :: Bullet} - | ProjectileParams - { _ampPayload :: Payload --- , _ampPjDraw :: ProjectileDraw - } + | ProjectileParams { _ampPayload :: Payload } | GasParams {_ampCreateGas :: GasFuel} deriving (Eq, Show, Read) --Generic, Flat) ---data ScrollAttachParams --- = CharScrollParams --- { _scrollChar :: Seq.Seq Char} --- deriving (Eq, Show, Read) --Generic, Flat) - data AimParams = AimParams { _aimWeight :: Int , _aimTurnSpeed :: Float @@ -194,9 +176,7 @@ data AimStance | TwoHandOver | TwoHandFlat | OneHand - -- | LeaveHolstered deriving (Eq, Ord, Show, Read) --Generic, Flat) - --deriving (Eq, Show, Ord, Enum, Read) --Generic, Flat) data ItZoom = ItZoom { _izMax :: Float diff --git a/src/Dodge/Default/Item.hs b/src/Dodge/Default/Item.hs index 10b06cd88..725a485c2 100644 --- a/src/Dodge/Default/Item.hs +++ b/src/Dodge/Default/Item.hs @@ -6,7 +6,6 @@ module Dodge.Default.Item ( import qualified Data.IntMap.Strict as IM import Control.Lens ---import qualified Data.Map.Strict as M import Dodge.Data.Item import Dodge.Default.Item.Effect import Dodge.Default.Item.Use @@ -42,26 +41,10 @@ singleAmmo :: a -> IM.IntMap a singleAmmo x = IM.insert 0 x mempty defaultBulletWeapon :: Item -defaultBulletWeapon = - defaultHeldItem --- & itUse . heldMods .~ PistolMod +defaultBulletWeapon = defaultHeldItem & itUse . heldAmmoTypes .~ singleAmmo BulletAmmo --- & itUse . heldUse .~ HeldUseAmmoParams -- useAmmoParams --- & itType . iyModules . at ModBulletCollision ?~ EMPTYMODULE & itUse . heldAim . aimMuzzles .~ [Muzzle (V2 15 0) 0 0.01 0 PistolFlare MuzzleShootBullet] --- & itType . iyModules . at ModBulletPayload ?~ EMPTYMODULE --- & itType . iyModules . at ModBulletTrajectory ?~ EMPTYMODULE - ---defaultWeapon :: Item ---defaultWeapon = --- defaultHeldItem --- & itUse .~ defaultHeldUse --- & itType . iyModules --- .~ M.fromList --- [ (ModTarget, EMPTYMODULE) --- , (ModTeleport, EMPTYMODULE) --- ] defaultConsumable :: Item -defaultConsumable = defaultHeldItem & itUse .~ ConsumeUse CDoNothing +defaultConsumable = defaultHeldItem & itUse .~ UseConsume CDoNothing diff --git a/src/Dodge/HeldUse.hs b/src/Dodge/HeldUse.hs index 09482c51d..e1e7d0b80 100644 --- a/src/Dodge/HeldUse.hs +++ b/src/Dodge/HeldUse.hs @@ -463,7 +463,6 @@ createProjectile magtree muz itmtree cr = fromMaybe failsound $ do where -- the sound should be moved to the projectile firing startthesound = soundMultiFrom [CrWeaponSound (_crID cr) j | j <- [0..3]] (_crPos cr) tap4S Nothing --- failsound = soundContinue (CrWeaponSound (_crID cr) 0) (_crPos cr) click1S Nothing failsound w' = case w' ^? input . mouseButtons . ix SDL.ButtonLeft of Just 0 -> soundStart (CrWeaponSound (_crID cr) 0) (_crPos cr) click1S Nothing w' _ -> soundContinue (CrWeaponSound (_crID cr) 0) (_crPos cr) click1S Nothing w' diff --git a/src/Dodge/Item/Display.hs b/src/Dodge/Item/Display.hs index f51a4c5a0..501acc2ac 100644 --- a/src/Dodge/Item/Display.hs +++ b/src/Dodge/Item/Display.hs @@ -113,7 +113,7 @@ itemNumberDisplay cr itm = case iu of UseHotkey{} -> [showAutoRechargeProgress (_leftConsumption iu)] EquipUse{} -> showEquipmentNumber cr itm CraftUse -> [] - ConsumeUse {} -> [] + UseConsume {} -> [] AttachUse {} -> [] UseAmmoMag {} -> [maybe "" shortShow $ itm ^? itUse . amagLoadStatus . iaLoaded] ScopeUse OpticScope {_opticZoom = x} -> [shortShow x] diff --git a/src/Dodge/Item/Draw/SPic.hs b/src/Dodge/Item/Draw/SPic.hs index bc18ff486..52cd222bd 100644 --- a/src/Dodge/Item/Draw/SPic.hs +++ b/src/Dodge/Item/Draw/SPic.hs @@ -1,48 +1,36 @@ -{-# LANGUAGE LambdaCase #-} +{-# LANGUAGE LambdaCase #-} module Dodge.Item.Draw.SPic ( itemSPic, itemTreeSPic, ) where -import Data.Strict.Tuple +import Color import Data.Maybe -import qualified Linear.Quaternion as Q +import Data.Strict.Tuple import Dodge.Data.ComposedItem import Dodge.Data.DoubleTree -import Color ---import qualified Data.Map.Strict as M ---import Data.Maybe import Dodge.Data.Item ---import Dodge.Item.AmmoPosition ---import Dodge.Item.Weapon.FractionLoaded import Geometry import LensHelp +import qualified Linear.Quaternion as Q --import qualified Linear.Quaternion as Q import Picture import Shape import ShapePicture ---import Data.Maybe - ---itemHeldAmmoPic :: Item -> Item -> SPic ---itemHeldAmmoPic itm amit = itemSPic itm <> addAmmoClip itm amit - ---addAmmoClip :: Item -> Item -> SPic ---addAmmoClip itm amit = fromMaybe mempty $ do --- hit <- itm ^? itType . iyBase . ibtHeld --- return mempty itemTreeSPic :: LabelDoubleTree ItemLink ComposedItem -> SPic -itemTreeSPic (LDT (itm,_) l r) = itemSPic itm - <> foldMap (itemRotTreeSPic itm) (l <> r) +itemTreeSPic (LDT (itm, _) l r) = + itemSPic itm + <> foldMap (itemRotTreeSPic itm) (l <> r) -itemRotTreeSPic :: Item -> (ItemLink,LabelDoubleTree ItemLink ComposedItem) -> SPic -itemRotTreeSPic par (il,t) = fromMaybe mempty $ do - (p,q) <- _iatOrient il par (_iatType il) itm +itemRotTreeSPic :: Item -> (ItemLink, LabelDoubleTree ItemLink ComposedItem) -> SPic +itemRotTreeSPic par (il, t) = fromMaybe mempty $ do + (p, q) <- _iatOrient il par (_iatType il) itm return $ (translateSP p $ overPosSP (Q.rotate q) $ itemTreeSPic t) where itm = t ^. ldtValue . _1 - + itemSPic :: Item -> SPic itemSPic it = case it ^. itType of CRAFT _ -> defSPic @@ -50,28 +38,29 @@ itemSPic it = case it ^. itType of LEFT lt -> leftItemSPic lt it EQUIP et -> equipItemSPic et it CONSUMABLE{} -> defSPic - ATTACH {} -> defSPic + ATTACH{} -> defSPic AMMOMAG amt -> ammoMagSPic it amt - TARGETING {} -> defSPic - BULLETMOD {} -> defSPic + TARGETING{} -> defSPic + BULLETMOD{} -> defSPic ammoMagSPic :: Item -> AmmoMagType -> SPic ammoMagSPic it = \case TINMAG -> noPic $ upperPrismPolyTS 1 (reverse $ rectNSWE 0 (- y) (-1) 1) DRUMMAG -> noPic $ upperPrismPolyTS 1 (reverse $ rectNSWE 0 (- y) (-1) 1) CHEMFUELPOUCH -> noPic $ colorSH yellow (upperPrismPolyST 3 $ polyCirc 3 5) --- , setLayer MidLayer . color black $ translate3 (V3 0 0 4) $ circleSolid (5 * am) + -- , setLayer MidLayer . color black $ translate3 (V3 0 0 4) $ circleSolid (5 * am) _ -> noPic $ upperPrismPolyTS 1 (reverse $ rectNSWE 0 (- y) (-1) 1) where y = fromIntegral y' * 0.3 y' = fromMaybe 0 $ it ^? itUse . amagLoadStatus . iaLoaded + -- am = fractionLoadedAmmo (it ^?! itUse . amagLoadStatus) --fractionLoadedAmmo :: ReloadStatus -> Float --fractionLoadedAmmo rs = fromIntegral (_iaLoaded rs) / fromIntegral (_iaMax rs) -- --fractionLoadedAmmo2 :: ReloadStatus -> Float ---fractionLoadedAmmo2 rs = +--fractionLoadedAmmo2 rs = -- 1 - (1 - fromIntegral (_iaLoaded rs) / fromIntegral (_iaMax rs)) ** 2 equipItemSPic :: EquipItemType -> Item -> SPic @@ -79,13 +68,13 @@ equipItemSPic et _ = case et of MAGSHIELD -> defSPic FLAMESHIELD -> defSPic FRONTARMOUR -> defSPic --- ( mempty --- , setDepth 20 $ --- fold --- [ color yellow $ thickArc 0 (pi / 2) 10 5 --- , color yellow $ thickArc (3 * pi / 2) (2 * pi) 10 5 --- ] --- ) + -- ( mempty + -- , setDepth 20 $ + -- fold + -- [ color yellow $ thickArc 0 (pi / 2) 10 5 + -- , color yellow $ thickArc (3 * pi / 2) (2 * pi) 10 5 + -- ] + -- ) WRISTARMOUR -> defSPic INVISIBILITYEQUIPMENT _ -> noPic (colorSH chartreuse $ upperPrismPolySI 3 $ rectWH 2 2) BRAINHAT -> noPic (colorSH yellow $ upperPrismPolySU 3 $ rectWH 4 4) @@ -100,8 +89,8 @@ equipItemSPic et _ = case et of noPic $ colorSH yellow $ upperPrismPolyMT 10 $ polyCirc 3 5 BULLETBELTPACK -> noPic $ colorSH green backpackShape - BULLETBELTBRACER - -> noPic (colorSH green $ upperPrismPolySU 3 $ rectWH 2 2) + BULLETBELTBRACER -> + noPic (colorSH green $ upperPrismPolySU 3 $ rectWH 2 2) AUTODETECTOR dt -> noPic (colorSH (detectorColor dt) $ upperPrismPolySU 3 $ rectWH 2 2) backpackShape :: Shape @@ -166,7 +155,7 @@ leftItemSPic lt _ = case lt of --bangStickAmmoPos :: Int -> Item -> AmmoPosition --bangStickAmmoPos _ itm = -- Bullets --- [(rotate3z a (V3 5 0 3), Q.axisAngle (V3 0 0 1) a) +-- [(rotate3z a (V3 5 0 3), Q.axisAngle (V3 0 0 1) a) -- | a <- map _mzRot (itm ^?! itUse . heldAim . aimMuzzles)] --volleygunAmmoPos :: Int -> AmmoPosition @@ -183,14 +172,6 @@ leftItemSPic lt _ = case lt of -- where -- f n = fromIntegral n * 5 - ((fromIntegral i - 1) * 2.5) ---revolverAmmoPos :: AmmoPosition ---revolverAmmoPos = --- Bullets --- [(V3 5 0 1 + Q.rotate q (V3 0 0 2), q) | q <- qs] --- where --- qs = [Q.axisAngle (V3 1 0 0) (f i) | i <- [1 .. 6 :: Int]] --- f i = fromIntegral i * pi / 3 + pi / 6 - heldItemSPic :: HeldItemType -> Item -> SPic heldItemSPic ht it = case ht of FLATSHIELD -> flatShieldEquipSPic @@ -207,7 +188,6 @@ heldItemSPic ht it = case ht of MINIGUNX i -> miniGunXPictItem i it VOLLEYGUN i -> noPic $ volleyGunShape i -- <> addBullets it RIFLE -> noPic baseRifleShape -- <> addBullets it --- REPEATER -> noPic $ baseRifleShape <> addTinClip it AUTORIFLE -> noPic $ baseRifleShape BURSTRIFLE -> noPic $ baseRifleShape BANGROD -> noPic baseRodShape -- <> addBullets it @@ -215,7 +195,7 @@ heldItemSPic ht it = case ht of AMR -> noPic $ baseAMRShape AUTOAMR -> noPic $ baseAMRShape SNIPERRIFLE -> noPic baseAMRShape -- <> addBullets it --- MACHINEGUN -> noPic $ baseAMRShape <> addTinClip it + -- MACHINEGUN -> noPic $ baseAMRShape <> addTinClip it FLAMESPITTER -> flamerPic it FLAMETHROWER -> flamerPic it FLAMETORRENT -> flamerPic it @@ -224,14 +204,9 @@ heldItemSPic ht it = case ht of SPARKGUN -> teslaGunPic TESLAGUN -> teslaGunPic LASGUN -> lasGunPic it --- LASCIRCLE -> lasGunPic it --- DUALBEAM -> dualBeamPic it --- LASWIDE _ -> lasGunPic it - --SONICGUN -> noPic baseSonicShape TRACTORGUN -> tractorGunPic it LAUNCHER -> launcherPic it LAUNCHERX _ -> launcherPic it --- REMOTELAUNCHER -> launcherPic it POISONSPRAYER -> flamerPic it DRONELAUNCHER -> defSPic SHATTERGUN -> shatterGunSPic @@ -252,11 +227,6 @@ torchShape = bot = upperPrismPolySE 0.5 $ rectXH 9 2 back = upperPrismPolySE 3 $ rectXH 1 2 ---modulesSPic :: Item -> ModuleSlot -> ItemModuleType -> SPic ---modulesSPic it _ imt = case imt of --- ATTACHTORCH -> noPic (overPosSH (+.+.+ _dimAttachPos (_itDimension it)) torchShape) --- _ -> mempty - baseStickShapeX :: Item -> Int -> Shape baseStickShapeX it _ = foldMap f (it ^?! itUse . heldAim . aimMuzzles) where @@ -269,14 +239,14 @@ bangConeShape :: Float -> Shape bangConeShape x = colorSH cyan $ xCylinderST 3 x - <> upperPrismPolyST 6 ( rectNSWE 4 (-4) x (10 + x)) + <> upperPrismPolyST 6 (rectNSWE 4 (-4) x (10 + x)) defSPic :: SPic defSPic = noPic $ colorSH green $ upperPrismPolyST 3 $ square 4 shatterGunSPic :: SPic shatterGunSPic = --- TODO cylinderize + -- TODO cylinderize noPic $ colorSH blue $ upperPrismPolyST 5 (rectNESW xb 8 xa 0) @@ -332,16 +302,16 @@ volleyGunShape i = -- to get this rotating should probably add extra state to the minigun miniGunXPictItem :: Int -> Item -> SPic -miniGunXPictItem i it = miniGunXPict i spin +miniGunXPictItem i it = miniGunXPict i spin where - spin = (-10) -- * _iaLoaded (_laSource (_heldConsumption (_itUse it))) - + _warmTime (_heldDelay $ _itUse it) + spin = (-10) + _warmTime (_heldDelay $ _itUse it) miniGunXPict :: Int -> Int -> SPic -miniGunXPict i spin = noPic - ( colorSH red (rotateSHx a barrels) - <> baseRifleShape - ) +miniGunXPict i spin = + noPic + ( colorSH red (rotateSHx a barrels) + <> baseRifleShape + ) where aBarrel = translateSH (V3 15 2 2) baseCaneShape barrels = foldMap (\an -> aBarrel & rotateSHx (2 * pi * fromIntegral an / fromIntegral i)) [1 .. i] @@ -363,6 +333,7 @@ flamerPic _ = noPic . colorSH yellow $ xCylinderST 5 18 launcherPic :: Item -> SPic launcherPic _ = noPic . colorSH cyan $ xCylinderST 5 20 + --launcherPic _ = noPic . colorSH cyan $ xCylinder 4 5 20 -- ( colorSH cyan $ -- prismPoly @@ -392,8 +363,9 @@ lasGunPic _ = ( colorSH blue $ upperBoxST 4 (rectNESW 3 30 1 0) <> upperBoxSU 4 (rectNESW (-1) 30 (-3) 0) - <> upperBoxSU 1 (rectNESW 3 30 (-3) 0)) - :!: (setLayer BloomNoZWrite . color col . setDepth 1.1 . polygon $ rectNESW 1 30 (-1) 0) + <> upperBoxSU 1 (rectNESW 3 30 (-3) 0) + ) + :!: (setLayer BloomNoZWrite . color col . setDepth 1.1 . polygon $ rectNESW 1 30 (-1) 0) where --amFrac = fractionLoadedAmmo it amFrac = 0.5 @@ -455,5 +427,3 @@ keyPic = legsSPic :: Color -> SPic legsSPic col = noPic $ translateSH (V3 0 4 0) $ colorSH col $ upperPrismPolyST 3 $ rectWH 2 2 - - diff --git a/tags b/tags index d54cb7451..741798cd6 100644 --- a/tags +++ b/tags @@ -54,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 136;" t +AimParams src/Dodge/Data/Item/Use.hs 118;" 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 192;" t +AimStance src/Dodge/Data/Item/Use.hs 174;" 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 @@ -79,7 +79,7 @@ AmmoMagSF src/Dodge/Data/ComposedItem.hs 33;" C AmmoMagType src/Dodge/Data/Item/Combine.hs 89;" t AmmoModLink src/Dodge/Data/ComposedItem.hs 18;" C AmmoModifierSF src/Dodge/Data/ComposedItem.hs 36;" C -AmmoParams src/Dodge/Data/Item/Use.hs 122;" t +AmmoParams src/Dodge/Data/Item/Use.hs 112;" t AmmoParams src/Dodge/Item/Weapon/AmmoParams.hs 1;" m AmmoPayloadLink src/Dodge/Data/ComposedItem.hs 20;" C AmmoPayloadSF src/Dodge/Data/ComposedItem.hs 38;" C @@ -107,7 +107,7 @@ ArcShad src/Picture/Data.hs 37;" C ArcStep src/Dodge/Data/ArcStep.hs 14;" t ArcStep src/Dodge/ArcStep.hs 1;" m ArcStep src/Dodge/Data/ArcStep.hs 6;" m -Arcing src/Dodge/Data/Item/Params.hs 47;" C +Arcing src/Dodge/Data/Item/Params.hs 42;" C Arithmetic src/Dodge/Base/Arithmetic.hs 1;" m ArmourChase src/Dodge/Creature/ArmourChase.hs 1;" m ArmourySS src/Dodge/Data/Scenario.hs 112;" C @@ -133,7 +133,7 @@ AttachMode src/Dodge/Item/Attachment/Data.hs 13;" C 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 81;" t -AttachUse src/Dodge/Data/Item/Use.hs 62;" C +AttachUse src/Dodge/Data/Item/Use.hs 58;" C Attachment src/Dodge/Data/Item/Attachment.hs 4;" m Attachment src/Dodge/Item/Attachment.hs 1;" m Attention src/Dodge/Creature/Perception/Data.hs 65;" t @@ -142,7 +142,7 @@ AttentionDir src/Dodge/Creature/AlertLevel/Data.hs 21;" t AttentiveTo src/Dodge/Creature/AlertLevel/Data.hs 22;" C AttentiveTo src/Dodge/Creature/Perception/Data.hs 66;" C AttentiveTo src/Dodge/Data/Creature/Perception.hs 61;" C -Attracting src/Dodge/Data/Item/Params.hs 46;" C +Attracting src/Dodge/Data/Item/Params.hs 41;" C Audition src/Dodge/Creature/Perception/Data.hs 48;" t Audition src/Dodge/Data/Creature/Perception.hs 47;" t AugmentedHUDLink src/Dodge/Data/ComposedItem.hs 25;" C @@ -154,7 +154,7 @@ AutoDoorObstacle src/Dodge/Data/PathGraph.hs 51;" C AutoGun src/Dodge/Item/Weapon/AutoGun.hs 1;" m AutoRecharging src/Dodge/Data/Item/Consumption.hs 23;" C AutoRecharging src/Dodge/Data/Item/Use/Consumption.hs 27;" C -AutoTrigger src/Dodge/Data/Item/Use.hs 85;" C +AutoTrigger src/Dodge/Data/Item/Use.hs 76;" C AuxAddition src/Shader/AuxAddition.hs 1;" m AwakeLevel src/Dodge/Creature/AlertLevel/Data.hs 14;" t Awareness src/Dodge/Creature/Perception/Data.hs 72;" t @@ -224,7 +224,7 @@ BeamCombine src/Dodge/Data/Beam.hs 47;" C BeamCombineType src/Dodge/Data/Beam.hs 38;" t BeamDraw src/Dodge/Data/Beam.hs 33;" t BeamDrawColor src/Dodge/Data/Beam.hs 35;" C -BeamShooterParams src/Dodge/Data/Item/Use.hs 103;" C +BeamShooterParams src/Dodge/Data/Item/Use.hs 93;" 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 @@ -264,7 +264,7 @@ BlockedLink src/Dodge/Data/Room.hs 48;" C BloomLayer src/Picture/Data.hs 25;" C BloomNoZWrite src/Picture/Data.hs 26;" C Boid src/Dodge/Creature/Boid.hs 1;" m -BoostPropIX src/Dodge/Data/Item/Params.hs 55;" C +BoostPropIX src/Dodge/Data/Item/Params.hs 50;" C Booster src/Dodge/Item/Equipment/Booster.hs 1;" m Booster src/Dodge/Item/Weapon/Booster.hs 1;" m Boosting src/Dodge/Creature/Stance/Data.hs 28;" C @@ -273,7 +273,6 @@ BorderCursor src/Dodge/Data/SelectionList.hs 73;" C Boss src/Dodge/Room/Boss.hs 2;" m BossAno src/Dodge/Layout/Tree/Annotate.hs 24;" C BottomEscapeMenuOption src/Dodge/Data/Universe.hs 73;" C -BottomLayer src/Picture/Data.hs 23;" C BounceBullet src/Dodge/Data/Bullet.hs 38;" C Bound src/Bound.hs 1;" m Bound_box_screen src/Dodge/Config/Data.hs 45;" C @@ -309,10 +308,10 @@ BulletMod src/Dodge/Data/Item/BulletMod.hs 3;" m BulletModEffect src/Dodge/Data/Item/BulletMod.hs 13;" C BulletModPayload src/Dodge/Data/Item/BulletMod.hs 12;" C BulletModTrajectory src/Dodge/Data/Item/BulletMod.hs 11;" C -BulletModUse src/Dodge/Data/Item/Use.hs 79;" C -BulletParams src/Dodge/Data/Item/Use.hs 123;" C +BulletModUse src/Dodge/Data/Item/Use.hs 71;" C +BulletParams src/Dodge/Data/Item/Use.hs 113;" C BulletPayload src/Dodge/Data/Bullet.hs 42;" t -BulletShooterParams src/Dodge/Data/Item/Use.hs 107;" C +BulletShooterParams src/Dodge/Data/Item/Use.hs 97;" C BulletTrajectory src/Dodge/Data/Bullet.hs 50;" t BulletTrajectoryType src/Dodge/Data/Bullet.hs 57;" t BulletWeapon src/Dodge/HeldUse/BulletWeapon.hs 1;" m @@ -476,7 +475,6 @@ ConstantIntensity src/Dodge/Data/LightSource.hs 17;" C Consumable src/Dodge/Item/Consumable.hs 1;" m ConsumableFamily src/Dodge/Item/Family.hs 7;" C ConsumableItemType src/Dodge/Data/Item/Combine.hs 98;" t -ConsumeUse src/Dodge/Data/Item/Use.hs 52;" C 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 @@ -540,7 +538,7 @@ Cr_status src/Dodge/Data/Config.hs 71;" C CraftClust src/Dodge/Combine/Graph.hs 16;" C CraftType src/Dodge/Combine/Data.hs 26;" t CraftType src/Dodge/Data/Item/Combine.hs 27;" t -CraftUse src/Dodge/Data/Item/Use.hs 60;" C +CraftUse src/Dodge/Data/Item/Use.hs 57;" C Craftable src/Dodge/Item/Craftable.hs 1;" m CraftingFamily src/Dodge/Item/Family.hs 4;" C Create src/Dodge/Projectile/Create.hs 1;" m @@ -677,9 +675,9 @@ 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 -DefaultFlareType src/Dodge/Data/Item/Use.hs 148;" C +DefaultFlareType src/Dodge/Data/Item/Use.hs 130;" C DefaultForceField src/Dodge/Data/Item/Use/Consumption/Ammo.hs 48;" C -DefaultHeldParams src/Dodge/Data/Item/Use.hs 90;" C +DefaultHeldParams src/Dodge/Data/Item/Use.hs 80;" 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 @@ -795,7 +793,7 @@ DropAmount src/Dodge/Data/Creature/State.hs 25;" C DropItem src/Dodge/Data/ActionPlan.hs 39;" C DropSpecific src/Dodge/Creature/State/Data.hs 17;" C DropSpecific src/Dodge/Data/Creature/State.hs 26;" C -DualBeam src/Dodge/Data/Item/Params.hs 36;" C +DualBeam src/Dodge/Data/Item/Params.hs 31;" C DudPayload src/Dodge/Data/Payload.hs 11;" C Dungeon src/Dodge/Data/Scenario.hs 66;" C Dust src/Dodge/Wall/Dust.hs 1;" m @@ -862,7 +860,7 @@ EquipPosition src/Dodge/Data/Equipment/Misc.hs 20;" t 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 56;" C +EquipUse src/Dodge/Data/Item/Use.hs 53;" C 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 @@ -955,7 +953,7 @@ Flank src/Dodge/Data/ActionPlan.hs 177;" C Flare src/Dodge/Data/Flare.hs 14;" t Flare src/Dodge/Data/Flare.hs 6;" m Flare src/Dodge/Flare.hs 1;" m -FlareType src/Dodge/Data/Item/Use.hs 147;" t +FlareType src/Dodge/Data/Item/Use.hs 129;" t Flash src/Dodge/WorldEvent/Flash.hs 11;" m FlashBall src/Dodge/Data/Bullet.hs 33;" C FlatFaces src/Shape/Data.hs 17;" C @@ -1008,7 +1006,7 @@ FromEdge src/Dodge/Data/Room.hs 47;" C FullRes src/Dodge/Config/Data.hs 54;" C FullRes src/Dodge/Data/Config.hs 95;" C FullShadowFidelity src/Shape/Data.hs 24;" C -FullSize src/Dodge/Data/Item/Params.hs 58;" C +FullSize src/Dodge/Data/Item/Params.hs 52;" C FullyVisible src/Dodge/Data/CamouflageStatus.hs 12;" C Furniture src/Dodge/Room/Furniture.hs 1;" m GASINJECTOR src/Dodge/Data/Item/Combine.hs 69;" C @@ -1032,8 +1030,8 @@ 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 54;" t GasFuel src/Dodge/Data/Item/Use/Consumption/Ammo.hs 51;" t -GasParams src/Dodge/Data/Item/Use.hs 128;" C -GasSprayParams src/Dodge/Data/Item/Use.hs 91;" C +GasParams src/Dodge/Data/Item/Use.hs 115;" C +GasSprayParams src/Dodge/Data/Item/Use.hs 81;" C GenCr src/Dodge/Creature/State/Data.hs 24;" C GenCr src/Dodge/Data/Creature/State.hs 31;" C GenFloat src/Dodge/Data/GenFloat.hs 11;" t @@ -1112,13 +1110,13 @@ Hammer src/Dodge/Hammer.hs 1;" m HammerDown src/Dodge/Data/Hammer.hs 18;" C HammerPosition src/Dodge/Data/Hammer.hs 17;" t HammerReleased src/Dodge/Data/Hammer.hs 19;" C -HammerTrigger src/Dodge/Data/Item/Use.hs 86;" C +HammerTrigger src/Dodge/Data/Item/Use.hs 76;" C HammerType src/Dodge/Data/Hammer.hs 12;" t HammerUp src/Dodge/Data/Hammer.hs 20;" C HandPos src/Dodge/Creature/HandPos.hs 1;" m HardQuit src/Dodge/Data/Universe.hs 66;" C HasHammer src/Dodge/Data/Hammer.hs 14;" C -HeavySmokeFlare src/Dodge/Data/Item/Use.hs 151;" C +HeavySmokeFlare src/Dodge/Data/Item/Use.hs 133;" C Held src/Dodge/Default/Held.hs 1;" m Held src/Dodge/Default/Item/Held.hs 1;" m Held src/Dodge/Item/Held.hs 1;" m @@ -1128,7 +1126,7 @@ HeldFamily src/Dodge/Item/Family.hs 3;" C HeldItemType src/Dodge/Combine/Data.hs 133;" t HeldItemType src/Dodge/Data/Item/Combine.hs 134;" t HeldOffset src/Dodge/Item/HeldOffset.hs 1;" m -HeldParams src/Dodge/Data/Item/Use.hs 89;" t +HeldParams src/Dodge/Data/Item/Use.hs 79;" 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 @@ -1279,7 +1277,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 201;" t +ItZoom src/Dodge/Data/Item/Use.hs 181;" t Item src/Dodge/Data/Item.hs 31;" t Item src/Dodge/Base/Item.hs 1;" m Item src/Dodge/Data/Item.hs 4;" m @@ -1337,7 +1335,7 @@ LBoost src/Dodge/Data/Item/HeldUse.hs 55;" C LBranches src/TreeExtra.hs 24;" C LDT src/Dodge/Data/DoubleTree.hs 39;" C LDTBottomNode src/Dodge/Data/DoubleTree.hs 27;" C -LDTComb src/Dodge/Item/Grammar.hs 85;" t +LDTComb src/Dodge/Item/Grammar.hs 83;" t LDTMidAboveNode src/Dodge/Data/DoubleTree.hs 25;" C LDTMidBelowNode src/Dodge/Data/DoubleTree.hs 26;" C LDTRootNode src/Dodge/Data/DoubleTree.hs 23;" C @@ -1382,7 +1380,7 @@ Lampoid src/Dodge/Data/Creature/Misc.hs 72;" C Lampoid src/Dodge/Lampoid.hs 1;" m Large src/Shape/Data.hs 29;" C LasBeamCombine src/Dodge/Data/Beam.hs 40;" C -LasGunFlare src/Dodge/Data/Item/Use.hs 152;" C +LasGunFlare src/Dodge/Data/Item/Use.hs 134;" C LasSound src/Dodge/Data/SoundOrigin.hs 26;" C LasTurret src/Dodge/Room/LasTurret.hs 1;" m Laser src/Dodge/Data/Laser.hs 30;" t @@ -1585,11 +1583,10 @@ MetaNode src/Dodge/Tree/Compose/Data.hs 9;" t MetaTree src/Dodge/Tree/Compose/Data.hs 8;" t Metal src/Dodge/Data/Material.hs 11;" C Metapysics src/Dodge/Data/Scenario.hs 17;" t -MidLayer src/Picture/Data.hs 24;" C Military src/Dodge/Data/Scenario.hs 45;" C Mine src/Dodge/Data/Scenario.hs 64;" C MiniGunAI src/Dodge/Data/Creature/Misc.hs 59;" C -MiniGunFlare src/Dodge/Data/Item/Use.hs 150;" C +MiniGunFlare src/Dodge/Data/Item/Use.hs 132;" C Misc src/Dodge/Data/Creature/Misc.hs 6;" m Misc src/Dodge/Data/Equipment/Misc.hs 6;" m Misc src/Dodge/Data/Item/Misc.hs 6;" m @@ -1637,18 +1634,18 @@ 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 173;" t -MuzzleDetector src/Dodge/Data/Item/Use.hs 170;" C -MuzzleEffect src/Dodge/Data/Item/Use.hs 156;" t +Muzzle src/Dodge/Data/Item/Use.hs 155;" t +MuzzleDetector src/Dodge/Data/Item/Use.hs 152;" C +MuzzleEffect src/Dodge/Data/Item/Use.hs 138;" t MuzzleEffect src/Dodge/Data/MuzzleEffect.hs 5;" m -MuzzleForceField src/Dodge/Data/Item/Use.hs 169;" C -MuzzleLaser src/Dodge/Data/Item/Use.hs 158;" C -MuzzleLauncher src/Dodge/Data/Item/Use.hs 161;" C -MuzzleNozzle src/Dodge/Data/Item/Use.hs 162;" C -MuzzleShatter src/Dodge/Data/Item/Use.hs 168;" C -MuzzleShootBullet src/Dodge/Data/Item/Use.hs 157;" C -MuzzleTesla src/Dodge/Data/Item/Use.hs 159;" C -MuzzleTractor src/Dodge/Data/Item/Use.hs 160;" C +MuzzleForceField src/Dodge/Data/Item/Use.hs 151;" C +MuzzleLaser src/Dodge/Data/Item/Use.hs 140;" C +MuzzleLauncher src/Dodge/Data/Item/Use.hs 143;" C +MuzzleNozzle src/Dodge/Data/Item/Use.hs 144;" C +MuzzleShatter src/Dodge/Data/Item/Use.hs 150;" C +MuzzleShootBullet src/Dodge/Data/Item/Use.hs 139;" C +MuzzleTesla src/Dodge/Data/Item/Use.hs 141;" C +MuzzleTractor src/Dodge/Data/Item/Use.hs 142;" C MvForward src/Dodge/Data/ActionPlan.hs 35;" C MvPt src/Dodge/MvPt.hs 1;" m MvTurnToward src/Dodge/Data/ActionPlan.hs 34;" C @@ -1711,7 +1708,7 @@ NoMvType src/Dodge/Data/Creature/Misc.hs 38;" C NoNeedWeapon src/Dodge/Room/NoNeedWeapon.hs 2;" m NoObjShads src/Dodge/Data/Config.hs 100;" C NoParams src/Dodge/Data/Item/Params.hs 17;" C -NoPreviousArcEffect src/Dodge/Data/Item/Params.hs 61;" C +NoPreviousArcEffect src/Dodge/Data/Item/Params.hs 55;" C NoResurrection src/Dodge/Data/Corpse.hs 14;" C NoRightButtonOptions src/Dodge/Data/RightButtonOptions.hs 14;" C NoRoomClipBoundaries src/Dodge/Config/Data.hs 59;" C @@ -1813,7 +1810,7 @@ OnSpecial src/Dodge/Equipment/Data.hs 24;" C OnTurret src/Dodge/Data/Item/Location.hs 35;" C OnceSound src/Dodge/Data/SoundOrigin.hs 15;" C OneArgument src/Dodge/Data/Terminal.hs 94;" C -OneHand src/Dodge/Data/Item/Use.hs 196;" C +OneHand src/Dodge/Data/Item/Use.hs 178;" 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 @@ -1883,7 +1880,7 @@ PackAnimal src/Dodge/Data/Creature/Capability.hs 20;" C Padding src/Padding.hs 2;" m Pair src/FoldlHelp.hs 10;" t PaletteColor src/Color/Data.hs 14;" t -ParamMID src/Dodge/Data/Item/Params.hs 54;" C +ParamMID src/Dodge/Data/Item/Params.hs 49;" C Parameters src/Shader/Parameters.hs 1;" m Parameters src/Shape/Parameters.hs 1;" m Params src/Dodge/Data/Item/Params.hs 6;" m @@ -1912,7 +1909,7 @@ Perception src/Dodge/Creature/Perception/Data.hs 29;" t Perception src/Dodge/Data/Creature/Perception.hs 32;" t Perception src/Dodge/Creature/Perception.hs 2;" m Perception src/Dodge/Data/Creature/Perception.hs 6;" m -PerturbTillBreakPreviousArc src/Dodge/Data/Item/Params.hs 61;" C +PerturbTillBreakPreviousArc src/Dodge/Data/Item/Params.hs 55;" C Pic2d src/PolyPic.hs 17;" t PickOnePlacement src/Dodge/Data/GenWorld.hs 87;" C PickUp src/Dodge/Inventory/PickUp.hs 1;" m @@ -1926,7 +1923,7 @@ Pillar src/Dodge/Room/Pillar.hs 1;" m Pipe src/Dodge/Placement/Instance/Pipe.hs 1;" m PistolAI src/Dodge/Data/Creature/Misc.hs 53;" C PistolCrit src/Dodge/Creature/PistolCrit.hs 1;" m -PistolFlare src/Dodge/Data/Item/Use.hs 149;" C +PistolFlare src/Dodge/Data/Item/Use.hs 131;" C PlaceSpot src/Dodge/Placement/PlaceSpot.hs 4;" m Placement src/Dodge/Data/GenWorld.hs 77;" t Placement src/Dodge/Placement.hs 1;" m @@ -1979,7 +1976,7 @@ PressPlateEvent src/Dodge/Data/PressPlate.hs 14;" t PressPlateId src/Dodge/Data/PressPlate.hs 15;" C PressPlateLayer src/Dodge/Picture/Layer/Data.hs 14;" C PressType src/Dodge/Data/Input.hs 13;" t -PreviousArcEffect src/Dodge/Data/Item/Params.hs 61;" t +PreviousArcEffect src/Dodge/Data/Item/Params.hs 55;" t PrimitiveMode src/Shader/Data.hs 99;" t Prison src/Dodge/Data/Scenario.hs 65;" C Procedural src/Dodge/Room/Procedural.hs 2;" m @@ -1992,7 +1989,7 @@ ProjectileCreate src/Dodge/Data/Ammo.hs 17;" t ProjectileDraw src/Dodge/Data/Ammo.hs 14;" t ProjectileDraw src/Dodge/Data/Item/Use/Consumption/Ammo.hs 20;" t ProjectileHoming src/Dodge/Data/Item/Use/Consumption/Ammo.hs 23;" t -ProjectileParams src/Dodge/Data/Item/Use.hs 124;" C +ProjectileParams src/Dodge/Data/Item/Use.hs 114;" C ProjectileUpdate src/Dodge/Data/Ammo.hs 20;" t ProjectileUpdate src/Dodge/Data/Item/Use/Consumption/Ammo.hs 29;" t Prop src/Dodge/Data/Prop.hs 18;" t @@ -2112,7 +2109,7 @@ RecRoomSS src/Dodge/Data/Scenario.hs 103;" C RectRoomType src/Dodge/Data/Room.hs 32;" C ReduceSpinPU src/Dodge/Data/Item/Use/Consumption/Ammo.hs 33;" C Reflect src/Dodge/Wall/Reflect.hs 1;" m -Refracting src/Dodge/Data/Item/Params.hs 29;" C +Refracting src/Dodge/Data/Item/Params.hs 24;" C Regex src/Regex.hs 1;" m ReigonalGovernment src/Dodge/Data/Scenario.hs 50;" C Religion src/Dodge/Data/Scenario.hs 47;" C @@ -2224,7 +2221,7 @@ SPEEDLEGS src/Dodge/Data/Item/Combine.hs 113;" C SPLITLAS src/Dodge/Combine/Data.hs 214;" C SPRING src/Dodge/Combine/Data.hs 30;" C SPRING src/Dodge/Data/Item/Combine.hs 31;" C -SPic src/ShapePicture/Data.hs 4;" t +SPic src/ShapePicture/Data.hs 7;" t SPic src/Dodge/Item/Draw/SPic.hs 3;" m SQUARE src/Dodge/Data/GenParams.hs 20;" C SSSExtra src/Dodge/Data/SelectionList.hs 44;" t @@ -2247,7 +2244,7 @@ Scope src/Dodge/Data/Item/Scope.hs 13;" t Scope src/Dodge/Item/Attachment/Data.hs 25;" t Scope src/Dodge/Data/Item/Scope.hs 6;" m Scope src/Dodge/Item/Scope.hs 1;" m -ScopeUse src/Dodge/Data/Item/Use.hs 70;" C +ScopeUse src/Dodge/Data/Item/Use.hs 65;" C ScreenLayer src/Dodge/Data/Universe.hs 77;" t ScreenLayer src/Dodge/Update/Input/ScreenLayer.hs 1;" m ScreenPos src/Dodge/Data/ScreenPos.hs 9;" t @@ -2316,7 +2313,6 @@ Shatter src/Dodge/Item/Weapon/Shatter.hs 1;" m Shell src/Dodge/Data/Projectile.hs 15;" C Shell src/Dodge/Default/Shell.hs 1;" m Shell src/Dodge/Item/Weapon/Shell.hs 1;" m -ShellLauncher src/Dodge/Data/Item/Params.hs 24;" C ShellSound src/Dodge/Data/SoundOrigin.hs 24;" C ShieldGroup src/Dodge/Creature/State/Data.hs 49;" C ShieldGroup src/Dodge/Data/Creature/State.hs 52;" C @@ -2356,8 +2352,8 @@ Show_walls_near_point_cursor src/Dodge/Data/Config.hs 86;" C Show_walls_near_point_you src/Dodge/Data/Config.hs 87;" C Show_zone_near_point_cursor src/Dodge/Data/Config.hs 88;" C ShrinkGunParams src/Dodge/Data/Item/Params.hs 20;" C -ShrinkGunStatus src/Dodge/Data/Item/Params.hs 58;" t -Shrunk src/Dodge/Data/Item/Params.hs 58;" C +ShrinkGunStatus src/Dodge/Data/Item/Params.hs 52;" t +Shrunk src/Dodge/Data/Item/Params.hs 52;" C SideCluster src/Dodge/Data/RoomCluster.hs 14;" C SideCluster src/Dodge/RoomCluster/Data.hs 12;" C SideEffect src/Dodge/Data/Universe.hs 60;" t @@ -2537,7 +2533,7 @@ Targeting src/Dodge/Item/Weapon/Targeting.hs 1;" m Targeting src/Dodge/Targeting.hs 1;" m TargetingLaser src/Dodge/Data/Laser.hs 18;" C TargetingType src/Dodge/Data/Item/Targeting.hs 11;" t -TargetingUse src/Dodge/Data/Item/Use.hs 74;" C +TargetingUse src/Dodge/Data/Item/Use.hs 66;" C TeleSound src/Dodge/Data/SoundOrigin.hs 33;" C Teleport src/Dodge/Room/Teleport.hs 2;" m TelsaArc src/Dodge/Data/TelsaArc.hs 3;" m @@ -2589,7 +2585,7 @@ TeslaArc src/Dodge/Data/TeslaArc.hs 6;" m TeslaArc src/Dodge/Particle/TeslaArc.hs 1;" m TeslaBall src/Dodge/Data/Bullet.hs 32;" C TeslaBeamCombine src/Dodge/Data/Beam.hs 41;" C -TeslaGunFlare src/Dodge/Data/Item/Use.hs 153;" C +TeslaGunFlare src/Dodge/Data/Item/Use.hs 135;" C Test src/Dodge/Creature/Test.hs 8;" m Test src/Dodge/Event/Test.hs 1;" m Test src/Picture/Test.hs 1;" m @@ -2655,7 +2651,7 @@ Trie src/SimpleTrie.hs 5;" t Trie src/Dodge/Combine/Trie.hs 1;" m TriggerDoor src/Dodge/LevelGen/TriggerDoor.hs 2;" m TriggerDoor src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 1;" m -TriggerType src/Dodge/Data/Item/Use.hs 84;" t +TriggerType src/Dodge/Data/Item/Use.hs 76;" t TriggerType src/Dodge/Item/Weapon/TriggerType.hs 6;" m Tuple src/Tuple.hs 1;" m TurbineBaySS src/Dodge/Data/Scenario.hs 110;" C @@ -2682,9 +2678,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 195;" C -TwoHandOver src/Dodge/Data/Item/Use.hs 194;" C -TwoHandUnder src/Dodge/Data/Item/Use.hs 193;" C +TwoHandFlat src/Dodge/Data/Item/Use.hs 177;" C +TwoHandOver src/Dodge/Data/Item/Use.hs 176;" C +TwoHandUnder src/Dodge/Data/Item/Use.hs 175;" 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 @@ -2726,7 +2722,8 @@ Use src/Dodge/Data/Item/Use.hs 6;" m Use src/Dodge/Default/Item/Use.hs 1;" m UseAheadPos src/Dodge/Data/ActionPlan.hs 160;" C UseAll src/Dodge/UseAll.hs 2;" m -UseAmmoMag src/Dodge/Data/Item/Use.hs 65;" C +UseAmmoMag src/Dodge/Data/Item/Use.hs 60;" C +UseConsume src/Dodge/Data/Item/Use.hs 52;" C UseDelay src/Dodge/Data/Item/HeldDelay.hs 13;" t UseDelay src/Dodge/Data/Item/Use/Delay.hs 10;" t UseDelay src/Dodge/Data/Item/UseDelay.hs 10;" t @@ -2912,13 +2909,13 @@ _actionSound src/Dodge/Data/LoadAction.hs 11;" f _actionSound src/Dodge/Data/LoadAction.hs 14;" f _actionTime src/Dodge/Data/LoadAction.hs 11;" f _actionTime src/Dodge/Data/LoadAction.hs 14;" f -_aimHandlePos src/Dodge/Data/Item/Use.hs 142;" f -_aimMuzzles src/Dodge/Data/Item/Use.hs 143;" f -_aimRange src/Dodge/Data/Item/Use.hs 139;" f -_aimStance src/Dodge/Data/Item/Use.hs 141;" f -_aimTurnSpeed src/Dodge/Data/Item/Use.hs 138;" f -_aimWeight src/Dodge/Data/Item/Use.hs 137;" f -_aimZoom src/Dodge/Data/Item/Use.hs 140;" f +_aimHandlePos src/Dodge/Data/Item/Use.hs 124;" f +_aimMuzzles src/Dodge/Data/Item/Use.hs 125;" f +_aimRange src/Dodge/Data/Item/Use.hs 121;" f +_aimStance src/Dodge/Data/Item/Use.hs 123;" f +_aimTurnSpeed src/Dodge/Data/Item/Use.hs 120;" f +_aimWeight src/Dodge/Data/Item/Use.hs 119;" f +_aimZoom src/Dodge/Data/Item/Use.hs 122;" f _allocNewPos src/Dodge/Data/RightButtonOptions.hs 21;" f _allocNewPos src/Dodge/Data/RightButtonOptions.hs 24;" f _allocNewPos src/Dodge/Data/RightButtonOptions.hs 28;" f @@ -2939,13 +2936,13 @@ _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 66;" f -_amagParams src/Dodge/Data/Item/Use.hs 67;" f -_amagType src/Dodge/Data/Item/Use.hs 68;" f +_amagLoadStatus src/Dodge/Data/Item/Use.hs 61;" f +_amagParams src/Dodge/Data/Item/Use.hs 62;" f +_amagType src/Dodge/Data/Item/Use.hs 63;" f _ambushTarget src/Dodge/Data/ActionPlan.hs 178;" f -_ampBullet src/Dodge/Data/Item/Use.hs 123;" f -_ampCreateGas src/Dodge/Data/Item/Use.hs 128;" f -_ampPayload src/Dodge/Data/Item/Use.hs 125;" f +_ampBullet src/Dodge/Data/Item/Use.hs 113;" f +_ampCreateGas src/Dodge/Data/Item/Use.hs 115;" f +_ampPayload src/Dodge/Data/Item/Use.hs 114;" 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 @@ -2961,8 +2958,8 @@ _arProgress src/Dodge/Data/Item/Use/Consumption.hs 31;" f _arTime src/Dodge/Data/Item/Consumption.hs 26;" f _arTime src/Dodge/Data/Item/Use/Consumption.hs 30;" f _arbitraryAction src/Dodge/Data/ActionPlan.hs 167;" f -_arcNumber src/Dodge/Data/Item/Params.hs 50;" f -_arcSize src/Dodge/Data/Item/Params.hs 49;" f +_arcNumber src/Dodge/Data/Item/Params.hs 45;" f +_arcSize src/Dodge/Data/Item/Params.hs 44;" f _argList src/Dodge/Data/Terminal.hs 96;" f _argType src/Dodge/Data/Terminal.hs 95;" f _asDir src/Dodge/Data/ArcStep.hs 16;" f @@ -2977,13 +2974,13 @@ _atFuseTime src/Dodge/Data/Item/Attachment.hs 12;" f _atFuseTime src/Dodge/Item/Attachment/Data.hs 12;" f _atInt src/Dodge/Data/Item/Attachment.hs 14;" f _atInt src/Dodge/Item/Attachment/Data.hs 16;" f -_atLinkedProjectile src/Dodge/Data/Item/Use.hs 63;" f +_atLinkedProjectile src/Dodge/Data/Item/Use.hs 59;" f _atMInt src/Dodge/Data/Item/Attachment.hs 15;" f _atMInt src/Dodge/Item/Attachment/Data.hs 17;" f _atMode src/Dodge/Item/Attachment/Data.hs 13;" f _atTargetPos src/Dodge/Data/Item/Attachment.hs 13;" f _atTargetPos src/Dodge/Item/Attachment/Data.hs 15;" f -_attractionPower src/Dodge/Data/Item/Params.hs 46;" f +_attractionPower src/Dodge/Data/Item/Params.hs 41;" f _auDist src/Dodge/Creature/Perception/Data.hs 49;" f _auDist src/Dodge/Data/Creature/Perception.hs 48;" f _barrelShader src/Data/Preload/Render.hs 23;" f @@ -3028,7 +3025,7 @@ _bmTrajectory src/Dodge/Data/Item/BulletMod.hs 11;" f _bmType src/Dodge/Data/Beam.hs 29;" f _boffEff src/Dodge/Data/Button.hs 42;" f _bonEff src/Dodge/Data/Button.hs 41;" f -_boostPropIX src/Dodge/Data/Item/Params.hs 55;" f +_boostPropIX src/Dodge/Data/Item/Params.hs 50;" f _bpEff src/Dodge/Data/Button.hs 28;" f _bpEvent src/Dodge/Data/Button.hs 26;" f _bpSound src/Dodge/Data/Button.hs 27;" f @@ -3047,7 +3044,7 @@ _buDamages src/Dodge/Data/Bullet.hs 28;" f _buDelayFraction src/Dodge/Data/Bullet.hs 18;" f _buDrag src/Dodge/Data/Bullet.hs 23;" f _buEffect src/Dodge/Data/Bullet.hs 19;" f -_buMod src/Dodge/Data/Item/Use.hs 80;" f +_buMod src/Dodge/Data/Item/Use.hs 72;" f _buOldPos src/Dodge/Data/Bullet.hs 25;" f _buPayload src/Dodge/Data/Bullet.hs 20;" f _buPos src/Dodge/Data/Bullet.hs 24;" f @@ -3055,13 +3052,13 @@ _buTimer src/Dodge/Data/Bullet.hs 27;" f _buTrajectory src/Dodge/Data/Bullet.hs 21;" f _buVel src/Dodge/Data/Bullet.hs 22;" f _buWidth src/Dodge/Data/Bullet.hs 26;" f -_bulGunSound src/Dodge/Data/Item/Use.hs 97;" f +_bulGunSound src/Dodge/Data/Item/Use.hs 87;" f +_bulGunSound src/Dodge/Data/Item/Use.hs 94;" f _bulGunSound src/Dodge/Data/Item/Use.hs 104;" f -_bulGunSound src/Dodge/Data/Item/Use.hs 114;" f _bullets src/Dodge/Data/LWorld.hs 107;" f _buttons src/Dodge/Data/LWorld.hs 137;" f _cClock src/Dodge/Data/CWorld.hs 28;" f -_cUse src/Dodge/Data/Item/Use.hs 53;" f +_cUse src/Dodge/Data/Item/Use.hs 52;" f _cWorld src/Dodge/Data/World.hs 38;" f _camBoundBox src/Dodge/Data/CamPos.hs 20;" f _camBoundBox src/Dodge/Data/Camera.hs 31;" f @@ -3195,7 +3192,7 @@ _ctActive src/Dodge/Data/Creature.hs 89;" f _ctID src/Dodge/Data/Creature.hs 88;" f _ctPos src/Dodge/Data/Creature.hs 86;" f _ctType src/Dodge/Data/Creature.hs 87;" f -_currentArc src/Dodge/Data/Item/Params.hs 48;" f +_currentArc src/Dodge/Data/Item/Params.hs 43;" f _currentFoot src/Dodge/Creature/Stance/Data.hs 23;" f _currentFoot src/Dodge/Data/Creature/Stance.hs 23;" f _cwGen src/Dodge/Data/CWorld.hs 27;" f @@ -3206,7 +3203,7 @@ _cwgRoomClipping src/Dodge/Data/CWorld.hs 39;" f _cwgSeed src/Dodge/Data/CWorld.hs 40;" f _cwgWorldBounds src/Dodge/Data/CWorld.hs 37;" f _cylinderSize src/Shape/Data.hs 19;" f -_dbGap src/Dodge/Data/Item/Params.hs 44;" f +_dbGap src/Dodge/Data/Item/Params.hs 39;" f _dePush src/Dodge/Data/Damage.hs 23;" f _dePush src/Dodge/Data/DamageType.hs 29;" f _dePushBack src/Dodge/Data/Damage.hs 28;" f @@ -3320,8 +3317,8 @@ _eqSite src/Dodge/Data/Equipment.hs 16;" f _eqUse src/Dodge/Data/Equipment.hs 13;" f _eqViewDist src/Dodge/Data/Equipment.hs 18;" f _equipEffect src/Dodge/Data/Item/Use.hs 49;" f -_equipEffect src/Dodge/Data/Item/Use.hs 57;" f -_equipTargeting src/Dodge/Data/Item/Use.hs 58;" f +_equipEffect src/Dodge/Data/Item/Use.hs 54;" f +_equipTargeting src/Dodge/Data/Item/Use.hs 55;" f _euseAmmoAmount src/Dodge/Data/Item/HeldUse.hs 41;" f _euseAmmoLink src/Dodge/Data/Item/HeldUse.hs 43;" f _euseAmmoMax src/Dodge/Data/Item/HeldUse.hs 42;" f @@ -3377,7 +3374,7 @@ _futureWorlds src/Dodge/Data/World.hs 65;" f _futureWorlds src/Dodge/Data/World.hs 71;" f _gameplay_rotate_to_wall src/Dodge/Config/Data.hs 25;" f _gameplay_rotate_to_wall src/Dodge/Data/Config.hs 55;" f -_gasCreation src/Dodge/Data/Item/Use.hs 92;" f +_gasCreation src/Dodge/Data/Item/Use.hs 82;" f _genPlacements src/Dodge/Data/GenWorld.hs 26;" f _genRooms src/Dodge/Data/GenWorld.hs 27;" f _getAttentiveTo src/Dodge/Creature/AlertLevel/Data.hs 22;" f @@ -3507,9 +3504,9 @@ _itemLocations src/Dodge/Data/LWorld.hs 101;" f _iyBase src/Dodge/Combine/Data.hs 13;" f _iyModules src/Dodge/Combine/Data.hs 14;" f _iyStack src/Dodge/Combine/Data.hs 15;" f -_izFac src/Dodge/Data/Item/Use.hs 204;" f -_izMax src/Dodge/Data/Item/Use.hs 202;" f -_izMin src/Dodge/Data/Item/Use.hs 203;" f +_izFac src/Dodge/Data/Item/Use.hs 184;" f +_izMax src/Dodge/Data/Item/Use.hs 182;" f +_izMin src/Dodge/Data/Item/Use.hs 183;" f _killTarget src/Dodge/Data/ActionPlan.hs 198;" f _lClock src/Dodge/Data/LWorld.hs 146;" f _lTestInt src/Dodge/Data/LWorld.hs 148;" f @@ -3524,15 +3521,15 @@ _laProgress src/Dodge/Data/Item/Consumption.hs 21;" f _lampColor src/Dodge/Data/Creature/Misc.hs 72;" f _lampHeight src/Dodge/Data/Creature/Misc.hs 72;" f _lampLSID src/Dodge/Data/Creature/Misc.hs 72;" f -_lasBeam src/Dodge/Data/Item/Params.hs 42;" f -_lasColor src/Dodge/Data/Item/Params.hs 31;" f -_lasColor src/Dodge/Data/Item/Params.hs 38;" f -_lasColor2 src/Dodge/Data/Item/Params.hs 32;" f -_lasColor2 src/Dodge/Data/Item/Params.hs 39;" f -_lasCycle src/Dodge/Data/Item/Params.hs 33;" f -_lasCycle src/Dodge/Data/Item/Params.hs 40;" f -_lasDamage src/Dodge/Data/Item/Params.hs 34;" f -_lasDamage src/Dodge/Data/Item/Params.hs 41;" f +_lasBeam src/Dodge/Data/Item/Params.hs 37;" f +_lasColor src/Dodge/Data/Item/Params.hs 26;" f +_lasColor src/Dodge/Data/Item/Params.hs 33;" f +_lasColor2 src/Dodge/Data/Item/Params.hs 27;" f +_lasColor2 src/Dodge/Data/Item/Params.hs 34;" f +_lasCycle src/Dodge/Data/Item/Params.hs 28;" f +_lasCycle src/Dodge/Data/Item/Params.hs 35;" f +_lasDamage src/Dodge/Data/Item/Params.hs 29;" f +_lasDamage src/Dodge/Data/Item/Params.hs 36;" f _laserEmmiter src/Dodge/Data/Laser.hs 18;" f _laserTypeDamage src/Dodge/Data/Laser.hs 17;" f _lasers src/Dodge/Data/LWorld.hs 119;" f @@ -3636,19 +3633,19 @@ _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 108;" f +_muzVel src/Dodge/Data/Item/Use.hs 98;" 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 -_mzAmmoSlot src/Dodge/Data/Item/Use.hs 177;" f -_mzEffect src/Dodge/Data/Item/Use.hs 179;" f -_mzFlareType src/Dodge/Data/Item/Use.hs 178;" f -_mzInaccuracy src/Dodge/Data/Item/Use.hs 176;" f -_mzPos src/Dodge/Data/Item/Use.hs 174;" f -_mzRot src/Dodge/Data/Item/Use.hs 175;" f -_newArcStep src/Dodge/Data/Item/Params.hs 51;" f +_mzAmmoSlot src/Dodge/Data/Item/Use.hs 159;" f +_mzEffect src/Dodge/Data/Item/Use.hs 161;" f +_mzFlareType src/Dodge/Data/Item/Use.hs 160;" f +_mzInaccuracy src/Dodge/Data/Item/Use.hs 158;" f +_mzPos src/Dodge/Data/Item/Use.hs 156;" f +_mzRot src/Dodge/Data/Item/Use.hs 157;" f +_newArcStep src/Dodge/Data/Item/Params.hs 46;" f _newBeams src/Dodge/Data/LWorld.hs 115;" f _noClip src/Dodge/Debug/Flag/Data.hs 7;" f _nodeMetaTree src/Dodge/Tree/Compose/Data.hs 9;" f @@ -3658,10 +3655,10 @@ _nodesSearched src/Dodge/Data/Creature/Memory.hs 15;" f _numLinkEW src/Dodge/Data/Room.hs 33;" f _numLinkNS src/Dodge/Data/Room.hs 34;" f _numberFloorVerxs src/Dodge/Data/CWorld.hs 32;" f -_nzCurrentWalkAngle src/Dodge/Data/Item/Use.hs 165;" f -_nzMaxWalkAngle src/Dodge/Data/Item/Use.hs 164;" f -_nzPressure src/Dodge/Data/Item/Use.hs 163;" f -_nzWalkSpeed src/Dodge/Data/Item/Use.hs 166;" f +_nzCurrentWalkAngle src/Dodge/Data/Item/Use.hs 147;" f +_nzMaxWalkAngle src/Dodge/Data/Item/Use.hs 146;" f +_nzPressure src/Dodge/Data/Item/Use.hs 145;" f +_nzWalkSpeed src/Dodge/Data/Item/Use.hs 148;" f _offPathFromEdges src/Dodge/Data/Room.hs 74;" f _onPathFromEdges src/Dodge/Data/Room.hs 73;" f _opDraw src/Dodge/Data/Wall.hs 41;" f @@ -3672,7 +3669,7 @@ _opTexture src/Dodge/Data/Wall.hs 42;" f _opticDefaultZoom src/Dodge/Data/Item/Scope.hs 21;" f _opticPos src/Dodge/Data/Item/Scope.hs 17;" f _opticZoom src/Dodge/Data/Item/Scope.hs 20;" f -_paramMID src/Dodge/Data/Item/Params.hs 54;" f +_paramMID src/Dodge/Data/Item/Params.hs 49;" f _partialAction src/Dodge/Data/ActionPlan.hs 145;" f _pastWorlds src/Dodge/Data/World.hs 39;" f _pathGraph src/Dodge/Data/CWorld.hs 31;" f @@ -3687,8 +3684,8 @@ _penPathEdge src/Dodge/Data/PathGraph.hs 36;" f _penStart src/Dodge/Data/PathGraph.hs 34;" f _phRemoteID src/Dodge/Data/Item/Use/Consumption/Ammo.hs 25;" f _phTargetingID src/Dodge/Data/Item/Use/Consumption/Ammo.hs 26;" f -_phaseV src/Dodge/Data/Item/Params.hs 30;" f -_phaseV src/Dodge/Data/Item/Params.hs 37;" f +_phaseV src/Dodge/Data/Item/Params.hs 25;" f +_phaseV src/Dodge/Data/Item/Params.hs 32;" f _pickUpLevel src/Dodge/Layout/Generate.hs 14;" f _pickUps src/Dodge/Layout/Generate.hs 15;" f _pictureShaders src/Data/Preload/Render.hs 28;" f @@ -3759,7 +3756,7 @@ _prVelZ src/Dodge/Data/Prop.hs 27;" f _preloadData src/Dodge/Data/Universe.hs 32;" f _pressPlates src/Dodge/Data/LWorld.hs 136;" f _pressedKeys src/Dodge/Data/Input.hs 22;" f -_previousArcEffect src/Dodge/Data/Item/Params.hs 52;" f +_previousArcEffect src/Dodge/Data/Item/Params.hs 47;" f _prjAcc src/Dodge/Data/Projectile.hs 19;" f _prjDir src/Dodge/Data/Projectile.hs 20;" f _prjDraw src/Dodge/Data/Projectile.hs 22;" f @@ -3813,8 +3810,8 @@ _pyFaces src/Polyhedra/Data.hs 14;" f _radarBlips src/Dodge/Data/LWorld.hs 113;" f _radarSweeps src/Dodge/Data/LWorld.hs 108;" f _randGen src/Dodge/Data/World.hs 41;" f -_randomOffset src/Dodge/Data/Item/Use.hs 95;" f -_randomOffset src/Dodge/Data/Item/Use.hs 112;" f +_randomOffset src/Dodge/Data/Item/Use.hs 85;" f +_randomOffset src/Dodge/Data/Item/Use.hs 102;" f _rateMax src/Dodge/Data/Item/HeldDelay.hs 16;" f _rateMax src/Dodge/Data/Item/Use/Delay.hs 13;" f _rateMax src/Dodge/Data/Item/Use/Delay.hs 17;" f @@ -3836,14 +3833,14 @@ _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 93;" f -_recoil src/Dodge/Data/Item/Use.hs 110;" f +_recoil src/Dodge/Data/Item/Use.hs 83;" f +_recoil src/Dodge/Data/Item/Use.hs 100;" f _reloadAction src/Dodge/Data/LoadAction.hs 26;" f _renderData src/Data/Preload.hs 11;" f _reverseAmount src/Dodge/Data/World.hs 64;" f _reverseAmount src/Dodge/Data/World.hs 70;" f _reverseAmount src/Dodge/Data/World.hs 74;" f -_rifling src/Dodge/Data/Item/Use.hs 109;" f +_rifling src/Dodge/Data/Item/Use.hs 99;" 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 @@ -3923,7 +3920,7 @@ _scopePos src/Dodge/Data/Item/Attachment.hs 25;" f _scopePos src/Dodge/Data/Item/Attachment.hs 32;" f _scopePos src/Dodge/Item/Attachment/Data.hs 27;" f _scopePos src/Dodge/Item/Attachment/Data.hs 32;" f -_scopeScope src/Dodge/Data/Item/Use.hs 72;" f +_scopeScope src/Dodge/Data/Item/Use.hs 65;" f _scopeZoom src/Dodge/Data/Item/Attachment.hs 26;" f _scopeZoom src/Dodge/Data/Item/Attachment.hs 34;" f _scopeZoom src/Dodge/Item/Attachment/Data.hs 28;" f @@ -3969,9 +3966,6 @@ _shaderVAO src/Shader/Data.hs 54;" f _shapeEBO src/Data/Preload/Render.hs 26;" f _shapeHalfSize src/Shape/Data.hs 18;" f _shapeShader src/Data/Preload/Render.hs 25;" f -_shellSpinAmount src/Dodge/Data/Item/Params.hs 26;" f -_shellSpinDrag src/Dodge/Data/Item/Params.hs 25;" f -_shellThrustDelay src/Dodge/Data/Item/Params.hs 27;" f _shockwaves src/Dodge/Data/LWorld.hs 118;" f _shrinkGunStatus src/Dodge/Data/Item/Params.hs 21;" f _siColor src/Dodge/Data/SelectionList.hs 80;" f @@ -3987,8 +3981,8 @@ _siPictures src/Dodge/Data/SelectionList.hs 77;" f _siPictures src/Dodge/Data/SelectionList.hs 85;" f _sideEffect src/Loop/Data.hs 13;" f _sideImpulses src/Dodge/Data/ActionPlan.hs 170;" f -_sidePush src/Dodge/Data/Item/Use.hs 96;" f -_sidePush src/Dodge/Data/Item/Use.hs 113;" f +_sidePush src/Dodge/Data/Item/Use.hs 86;" f +_sidePush src/Dodge/Data/Item/Use.hs 103;" f _silhouetteEBO src/Data/Preload/Render.hs 27;" f _skColor src/Dodge/Data/Spark.hs 17;" f _skDamageType src/Dodge/Data/Spark.hs 21;" f @@ -4037,7 +4031,7 @@ _strideAmount src/Dodge/Data/Creature/Stance.hs 22;" f _strideLength src/Dodge/Creature/Stance/Data.hs 14;" f _strideLength src/Dodge/Data/Creature/Stance.hs 16;" f _subInventory src/Dodge/Data/HUD.hs 18;" f -_subParams src/Dodge/Data/Item/Params.hs 43;" f +_subParams src/Dodge/Data/Item/Params.hs 38;" f _swColor src/Dodge/Data/Shockwave.hs 18;" f _swDam src/Dodge/Data/Shockwave.hs 23;" f _swDirection src/Dodge/Data/Shockwave.hs 19;" f @@ -4075,12 +4069,12 @@ _teslaArcs src/Dodge/Data/LWorld.hs 117;" f _testFloat src/Dodge/Data/World.hs 45;" f _textInput src/Dodge/Data/Input.hs 30;" f _textureObject src/Shader/Data.hs 95;" f -_tgActive src/Dodge/Data/Item/Use.hs 77;" f +_tgActive src/Dodge/Data/Item/Use.hs 69;" f _tgActive src/Dodge/Data/Targeting.hs 16;" f _tgDraw src/Dodge/Data/Targeting.hs 14;" f -_tgID src/Dodge/Data/Item/Use.hs 76;" f +_tgID src/Dodge/Data/Item/Use.hs 68;" f _tgID src/Dodge/Data/Targeting.hs 15;" f -_tgPos src/Dodge/Data/Item/Use.hs 75;" f +_tgPos src/Dodge/Data/Item/Use.hs 67;" f _tgPos src/Dodge/Data/Targeting.hs 12;" f _tgUpdate src/Dodge/Data/Targeting.hs 13;" f _tiFocus src/Dodge/Data/Terminal.hs 21;" f @@ -4129,8 +4123,8 @@ _toPlaySoundVolume src/Sound/Data.hs 43;" f _toPlaySoundVolumeFraction src/Sound/Data.hs 44;" f _toPlaySounds src/Dodge/Data/World.hs 42;" f _topBoxSize src/Shape/Data.hs 17;" f -_torqueAfter src/Dodge/Data/Item/Use.hs 94;" f -_torqueAfter src/Dodge/Data/Item/Use.hs 111;" f +_torqueAfter src/Dodge/Data/Item/Use.hs 84;" f +_torqueAfter src/Dodge/Data/Item/Use.hs 101;" f _tractorBeams src/Dodge/Data/LWorld.hs 122;" f _trieChildren src/SimpleTrie.hs 7;" f _trieMVal src/SimpleTrie.hs 6;" f @@ -4223,10 +4217,10 @@ _warmSound src/Dodge/Data/Item/HeldDelay.hs 28;" f _warmTime src/Dodge/Data/Item/HeldDelay.hs 26;" f _warmTime src/Dodge/Data/Item/Use/Delay.hs 23;" f _warmTime src/Dodge/Data/Item/UseDelay.hs 23;" f -_weaponInvLock src/Dodge/Data/Item/Use.hs 100;" f -_weaponInvLock src/Dodge/Data/Item/Use.hs 117;" f -_weaponRepeat src/Dodge/Data/Item/Use.hs 101;" f -_weaponRepeat src/Dodge/Data/Item/Use.hs 118;" f +_weaponInvLock src/Dodge/Data/Item/Use.hs 90;" f +_weaponInvLock src/Dodge/Data/Item/Use.hs 107;" f +_weaponRepeat src/Dodge/Data/Item/Use.hs 91;" f +_weaponRepeat src/Dodge/Data/Item/Use.hs 108;" f _windowPosX src/Dodge/Config/Data.hs 23;" f _windowPosX src/Dodge/Data/Config.hs 53;" f _windowPosY src/Dodge/Config/Data.hs 24;" f @@ -4280,7 +4274,7 @@ _znObjects src/Dodge/Zone/Data.hs 9;" f _znSize src/Dodge/Base/Zone.hs 23;" f _znSize src/Dodge/Data/Zoning.hs 14;" f aBulAt src/Dodge/Particle/Bullet/Spawn.hs 12;" f -aDroneWithItemParams src/Dodge/Item/Weapon/Drone.hs 31;" f +aDroneWithItemParams src/Dodge/Item/Weapon/Drone.hs 30;" f aFlame src/Dodge/Gas.hs 18;" f aFlameParticle src/Dodge/Flame.hs 22;" f aGasCloud src/Dodge/Gas.hs 13;" f @@ -4341,7 +4335,6 @@ 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 335;" f addToTrunk src/Dodge/Layout/Tree/Polymorphic.hs 116;" f addToTrunk src/Dodge/Tree/Polymorphic.hs 129;" f addToTrunk src/TreeHelp.hs 156;" f @@ -4352,7 +4345,7 @@ advanceScrollAmount src/Dodge/Update.hs 299;" f advanceSmoothScroll src/Dodge/SmoothScroll.hs 29;" f advanceStepCounter src/Dodge/Creature/Action/Movement.hs 56;" f advanceStepCounter src/Dodge/Creature/Impulse/Movement.hs 45;" f -aimDelaySweep src/Dodge/Render/ShapePicture.hs 49;" f +aimDelaySweep src/Dodge/Render/ShapePicture.hs 50;" f aimStanceInfo src/Dodge/Item/Info.hs 215;" f aimTurn src/Dodge/Creature/YourControl.hs 189;" f aimingMuzzleLength src/Dodge/Creature/HandPos.hs 46;" f @@ -4370,8 +4363,8 @@ airlockZ src/Dodge/Room/Airlock.hs 91;" f allHotkeys src/Dodge/Creature/YourControl.hs 52;" f allVisibleWalls src/Dodge/Base/Collide.hs 131;" f alongSegBy src/Geometry.hs 43;" f -ammoComposedItem' src/Dodge/Item/Grammar.hs 68;" f -ammoMagSPic src/Dodge/Item/Draw/SPic.hs 57;" f +ammoComposedItem' src/Dodge/Item/Grammar.hs 66;" f +ammoMagSPic src/Dodge/Item/Draw/SPic.hs 58;" f amr src/Dodge/Item/Held/Rod.hs 46;" f amr src/Dodge/Item/Weapon/BulletGun/Rod.hs 56;" f anItemFindPulse src/Dodge/Item/Weapon/UseEffect.hs 25;" f @@ -4383,7 +4376,7 @@ angleVV src/Geometry/Vector.hs 57;" f angleVV3 src/Geometry/Vector3D.hs 122;" f annoToRoomTree src/Dodge/Annotation.hs 17;" f anoToRoomTree src/Dodge/Layout/Tree/Annotate.hs 52;" f -anyTargeting src/Dodge/Render/ShapePicture.hs 77;" f +anyTargeting src/Dodge/Render/ShapePicture.hs 78;" f anyUnusedSpot src/Dodge/PlacementSpot.hs 66;" f anythingHitCirc src/Dodge/Base/Collide.hs 242;" f appendEitherTree src/Dodge/Layout/Tree/Either.hs 29;" f @@ -4480,10 +4473,10 @@ 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 25;" f -backpackShape src/Dodge/Item/Draw/SPic.hs 104;" f +backpackShape src/Dodge/Item/Draw/SPic.hs 107;" f backspaceInputted src/Dodge/Update/Input/Text.hs 26;" f bangCone src/Dodge/Item/Held/Cone.hs 11;" f -bangConeShape src/Dodge/Item/Draw/SPic.hs 265;" f +bangConeShape src/Dodge/Item/Draw/SPic.hs 268;" f bangEchoS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 370;" f bangRod src/Dodge/Item/Held/Rod.hs 18;" f bangRod src/Dodge/Item/Weapon/BulletGun/Rod.hs 18;" f @@ -4493,20 +4486,20 @@ bangStick src/Dodge/Item/Weapon/BulletGun/Stick.hs 17;" 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 481;" f +baseAMRShape src/Dodge/Item/Draw/SPic.hs 377;" 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 285;" f +baseCaneShape src/Dodge/Item/Draw/SPic.hs 288;" f baseDebris src/Dodge/Block/Debris.hs 122;" f baseFloorTileSize src/Tile.hs 38;" f basePartiallyComposedItem' src/Dodge/Item/Grammar.hs 39;" f -baseRifleShape src/Dodge/Item/Draw/SPic.hs 288;" f -baseRodShape src/Dodge/Item/Draw/SPic.hs 478;" f -baseSMGShape src/Dodge/Item/Draw/SPic.hs 447;" f +baseRifleShape src/Dodge/Item/Draw/SPic.hs 291;" f +baseRodShape src/Dodge/Item/Draw/SPic.hs 374;" f +baseSMGShape src/Dodge/Item/Draw/SPic.hs 358;" f baseShoulder src/Dodge/Creature/Picture.hs 159;" f -baseStickShape src/Dodge/Item/Draw/SPic.hs 262;" f -baseStickShapeX src/Dodge/Item/Draw/SPic.hs 257;" f +baseStickShape src/Dodge/Item/Draw/SPic.hs 265;" f +baseStickShapeX src/Dodge/Item/Draw/SPic.hs 260;" f baseStickSpread src/Dodge/Item/Held/Stick.hs 32;" f baseStickSpread src/Dodge/Item/Weapon/BulletGun/Stick.hs 46;" f baseWindowPane src/Dodge/Placements/Wall.hs 73;" f @@ -4593,9 +4586,9 @@ bright src/Color.hs 116;" f brightX src/Color.hs 112;" f btSPic src/Dodge/Render/ShapePicture.hs 175;" f btShape src/Dodge/Render/Shape.hs 25;" f -bufferEBO src/Shader/Bind.hs 27;" f -bufferPokedVBO src/Shader/Bind.hs 18;" f -bufferShaderLayers src/Shader/Bind.hs 35;" f +bufferEBO src/Shader/Bind.hs 28;" f +bufferPokedVBO src/Shader/Bind.hs 19;" f +bufferShaderLayers src/Shader/Bind.hs 36;" f bulDamageCr src/Dodge/Particle/Bullet/DestroyDamage.hs 21;" f bulDamageWall src/Dodge/Particle/Bullet/DestroyDamage.hs 30;" f bulSelTweak src/Dodge/TweakBullet.hs 15;" f @@ -4968,7 +4961,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 271;" f +defSPic src/Dodge/Item/Draw/SPic.hs 274;" 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 @@ -4985,7 +4978,7 @@ defaultBounds src/Dodge/Data/Bounds.hs 20;" f defaultBullet src/Dodge/Item/Weapon/Bullet.hs 10;" f defaultBulletLoadable src/Dodge/Default/Item/Held/Consumption.hs 18;" f defaultBulletSelTweak src/Dodge/TweakBullet.hs 7;" f -defaultBulletWeapon src/Dodge/Default/Item.hs 44;" f +defaultBulletWeapon src/Dodge/Default/Item.hs 43;" f defaultButton src/Dodge/Default.hs 51;" f defaultCOSection src/Dodge/Default/World.hs 204;" f defaultCWCam src/Dodge/Default/World.hs 65;" f @@ -4995,9 +4988,9 @@ defaultChaseMvType src/Dodge/Default/Creature.hs 113;" f defaultClusterStatus src/Dodge/Default/Room.hs 38;" f defaultConfig src/Dodge/Config/Data.hs 83;" f defaultConfig src/Dodge/Data/Config.hs 125;" f -defaultConsumable src/Dodge/Default/Item.hs 65;" f +defaultConsumable src/Dodge/Default/Item.hs 48;" f defaultCorpse src/Dodge/Corpse/Make.hs 29;" f -defaultCraftItem src/Dodge/Default/Item.hs 38;" f +defaultCraftItem src/Dodge/Default/Item.hs 37;" f defaultCreature src/Dodge/Default/Creature.hs 12;" f defaultCreatureMemory src/Dodge/Default/Creature.hs 72;" f defaultCreatureSkin src/Dodge/Default/Creature.hs 66;" f @@ -5008,7 +5001,7 @@ defaultDirtWall src/Dodge/Default/Wall.hs 61;" f defaultDisplayInventory src/Dodge/Default/World.hs 161;" f defaultDoor src/Dodge/Default/Door.hs 29;" f defaultDoorWall src/Dodge/Default/Wall.hs 32;" f -defaultDrawButton src/Dodge/Button/Draw.hs 30;" f +defaultDrawButton src/Dodge/Button/Draw.hs 29;" f defaultEquip src/Dodge/Default/Item/Use/Equipment.hs 6;" f defaultEquipUse src/Dodge/Default/Item/Use.hs 23;" f defaultEquipment src/Dodge/Default.hs 27;" f @@ -5017,7 +5010,7 @@ defaultFlIt src/Dodge/Default.hs 30;" f defaultForeground src/Dodge/Default/Foreground.hs 4;" f defaultForeground src/Dodge/Default/ForegroundShape.hs 5;" f defaultHUD src/Dodge/Default/World.hs 151;" f -defaultHeldItem src/Dodge/Default/Item.hs 22;" f +defaultHeldItem src/Dodge/Default/Item.hs 21;" f defaultHeldUse src/Dodge/Default/Item/Held.hs 12;" f defaultHeldUse src/Dodge/Default/Item/Use.hs 29;" f defaultImpulsive src/Dodge/Humanoid.hs 190;" f @@ -5030,11 +5023,11 @@ defaultInvSections src/Dodge/Default/World.hs 175;" f defaultInvSize src/Dodge/Default/Creature.hs 79;" f defaultItEffect src/Dodge/Default/Item/Effect.hs 5;" f defaultItZoom src/Dodge/Default/Item/Use/AimParams.hs 27;" f -defaultItemDimension src/Dodge/Default/Item.hs 15;" f +defaultItemDimension src/Dodge/Default/Item.hs 14;" f defaultKeyConfigSDL src/Dodge/Config/KeyConfig.hs 38;" f defaultLS src/Dodge/Default/LightSource.hs 6;" f defaultLWorld src/Dodge/Default/World.hs 92;" f -defaultLeftItem src/Dodge/Default/Item.hs 35;" f +defaultLeftItem src/Dodge/Default/Item.hs 34;" f defaultLeftLoadable src/Dodge/Default/Item/Use/Consumption.hs 8;" f defaultLeftUse src/Dodge/Default/Item/Use.hs 14;" f defaultListDisplayParams src/Dodge/ListDisplayParams.hs 18;" f @@ -5087,7 +5080,7 @@ destroyMount src/Dodge/Block.hs 98;" f destroyMounts src/Dodge/Block.hs 95;" f destroyProjectile src/Dodge/Projectile/Update.hs 62;" f detV src/Geometry/Vector.hs 93;" f -detectorColor src/Dodge/Item/Draw/SPic.hs 541;" f +detectorColor src/Dodge/Item/Draw/SPic.hs 432;" f detectorEffect src/Dodge/Item/Weapon/Radar.hs 19;" f detectorInfo src/Dodge/Item/Info.hs 195;" f determineInvSelCursorWidth src/Dodge/ListDisplayParams.hs 54;" f @@ -5242,7 +5235,7 @@ drawCombineInventory src/Dodge/Render/HUD.hs 77;" f drawConcurrentMessage src/Dodge/Render/Picture.hs 58;" f drawCorpse src/Dodge/Corpse/Draw.hs 6;" f drawCrInfo src/Dodge/Debug/Picture.hs 341;" f -drawCreature src/Dodge/Render/ShapePicture.hs 87;" f +drawCreature src/Dodge/Render/ShapePicture.hs 88;" f drawCreatureDisplayTexts src/Dodge/Debug/Picture.hs 163;" f drawCross src/Dodge/Render/Label.hs 24;" f drawCrossCol src/Dodge/Render/Label.hs 21;" f @@ -5250,7 +5243,7 @@ drawCursorAt src/Dodge/Render/List.hs 55;" f drawDDATest src/Dodge/Debug/Picture.hs 254;" f drawDoorPaths src/Dodge/Debug/Picture.hs 215;" f drawDoubleLampCover src/Dodge/LightSources/Lamp.hs 139;" f -drawDoubleLampCover src/Dodge/Prop/Draw.hs 86;" f +drawDoubleLampCover src/Dodge/Prop/Draw.hs 83;" f drawEnergyBall src/Dodge/EnergyBall/Draw.hs 8;" f drawEquipment src/Dodge/Creature/Picture.hs 174;" f drawExamineInventory src/Dodge/Render/HUD.hs 112;" f @@ -5282,8 +5275,8 @@ drawMapWall src/Dodge/Render/HUD/Carte.hs 33;" f drawMenuOrHUD src/Dodge/Render/Picture.hs 53;" f drawMenuScreen src/Dodge/Render/MenuScreen.hs 12;" f drawMousePosition src/Dodge/Debug/Picture.hs 317;" f -drawMovingShape src/Dodge/Prop/Draw.hs 71;" f -drawMovingShapeCol src/Dodge/Prop/Draw.hs 78;" f +drawMovingShape src/Dodge/Prop/Draw.hs 69;" f +drawMovingShapeCol src/Dodge/Prop/Draw.hs 75;" f drawMuzFlare src/Dodge/Flare.hs 17;" f drawOptions src/Dodge/Render/MenuScreen.hs 32;" f drawPathBetween src/Dodge/Debug/Picture.hs 166;" f @@ -5291,12 +5284,12 @@ drawPathEdge src/Dodge/Debug/Picture.hs 220;" f drawPathing src/Dodge/Debug/Picture.hs 383;" f drawPlus src/Dodge/Render/Picture.hs 89;" f drawPointLabel src/Dodge/Render/Label.hs 13;" f -drawProjectile src/Dodge/Projectile/Draw.hs 12;" f +drawProjectile src/Dodge/Projectile/Draw.hs 13;" f drawProp src/Dodge/Prop/Draw.hs 15;" f drawProp' src/Dodge/Prop/Draw.hs 12;" f drawRBOptions src/Dodge/Render/HUD.hs 161;" f drawRadarSweep src/Dodge/RadarSweep/Draw.hs 7;" f -drawRemoteShell src/Dodge/Projectile/Draw.hs 29;" f +drawRemoteShell src/Dodge/Projectile/Draw.hs 30;" f drawSelectionCursor src/Dodge/Render/List.hs 40;" f drawSelectionList src/Dodge/Render/List.hs 28;" f drawSelectionSections src/Dodge/SelectionSections/Draw.hs 10;" f @@ -5304,12 +5297,12 @@ drawSensor src/Dodge/Machine/Draw.hs 21;" f drawShader src/Shader.hs 27;" f drawShaderLay src/Shader.hs 16;" f drawShadowsByImportance src/Dodge/Shadows.hs 8;" f -drawShell src/Dodge/Projectile/Draw.hs 19;" f +drawShell src/Dodge/Projectile/Draw.hs 20;" f drawShockwave src/Dodge/Shockwave/Draw.hs 7;" f drawSpark src/Dodge/Spark/Draw.hs 6;" f drawStaticBall src/Dodge/EnergyBall/Draw.hs 14;" f drawSubInventory src/Dodge/Render/HUD.hs 68;" f -drawSweep src/Dodge/Render/ShapePicture.hs 56;" f +drawSweep src/Dodge/Render/ShapePicture.hs 57;" f drawSwitch src/Dodge/Button/Draw.hs 15;" f drawSwitchWire src/Dodge/LevelGen/Switch.hs 28;" f drawTargetLaser src/Dodge/Particle/Draw.hs 6;" f @@ -5321,7 +5314,7 @@ drawTractorBeam src/Dodge/TractorBeam/Draw.hs 7;" f drawTurret src/Dodge/Machine/Draw.hs 60;" f drawTurret src/Dodge/Placements/Turret.hs 82;" f drawVerticalLampCover src/Dodge/LightSources/Lamp.hs 154;" f -drawVerticalLampCover src/Dodge/Prop/Draw.hs 61;" f +drawVerticalLampCover src/Dodge/Prop/Draw.hs 60;" f drawWall src/Dodge/Wall/Draw.hs 7;" f drawWallFace src/Dodge/Debug/Picture.hs 73;" f drawWallSearchRays src/Dodge/Debug/Picture.hs 263;" f @@ -5366,7 +5359,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 107;" f -equipItemSPic src/Dodge/Item/Draw/SPic.hs 74;" f +equipItemSPic src/Dodge/Item/Draw/SPic.hs 77;" f equipPosition src/Dodge/Item/Draw.hs 32;" f equipPosition src/Dodge/Item/Equipment/Shape.hs 15;" f equipSiteInfo src/Dodge/Item/Info.hs 225;" f @@ -5451,12 +5444,12 @@ flameTorrent src/Dodge/Item/Held/SprayGuns.hs 40;" f flameTorrent src/Dodge/Item/Weapon/SprayGuns.hs 38;" f flameWall src/Dodge/Item/Held/SprayGuns.hs 56;" f flameWall src/Dodge/Item/Weapon/SprayGuns.hs 54;" f -flamerPic src/Dodge/Item/Draw/SPic.hs 450;" f +flamerPic src/Dodge/Item/Draw/SPic.hs 361;" f flareCircleAt src/Dodge/WorldEvent/Flash.hs 46;" f flatItemCombinations src/Dodge/Combine/Combinations.hs 49;" f flatLookupItems src/Dodge/Combine.hs 29;" f flatShield src/Dodge/Item/Held/Utility.hs 9;" f -flatShieldEquipSPic src/Dodge/Item/Draw/SPic.hs 525;" f +flatShieldEquipSPic src/Dodge/Item/Draw/SPic.hs 419;" f flattenIMIMIM src/Dodge/Base/Zone.hs 246;" f fleeFrom src/Dodge/CreatureEffect.hs 120;" f fleeFromTarget src/Dodge/CreatureEffect.hs 66;" f @@ -5504,7 +5497,6 @@ forceSpine src/StrictHelp.hs 4;" f fourEmbossDecoration src/Dodge/Placement/TopDecoration.hs 29;" f fpsText src/Dodge/Render/Picture.hs 43;" f fractionLoadedAmmo src/Dodge/Item/Weapon/AmmoParams.hs 53;" f -fractionLoadedAmmo2 src/Dodge/Item/Draw/SPic.hs 70;" f fractionLoadedAmmo2 src/Dodge/Item/Weapon/AmmoParams.hs 58;" f frag src/Shader/Data.hs 102;" f freeShaderPointers' src/Shader.hs 37;" f @@ -5553,7 +5545,7 @@ getCrDexterity src/Dodge/Creature/Statistics.hs 13;" f getCrEquipment src/Dodge/Equipment.hs 7;" f getCrStrength src/Dodge/Creature/Statistics.hs 16;" f getDamageCoding src/Dodge/Terminal.hs 175;" f -getDistortions src/Dodge/Render.hs 380;" f +getDistortions src/Dodge/Render.hs 382;" f getEquipmentAllocation src/Dodge/Inventory/RBList.hs 47;" f getItem src/Dodge/Item/Location.hs 15;" f getIthPos src/SelectionIntMap.hs 55;" f @@ -5575,7 +5567,7 @@ girder src/Dodge/Room/Foreground.hs 211;" f girderV src/Dodge/Room/Foreground.hs 182;" f girderV' src/Dodge/Room/Foreground.hs 157;" f girderZ src/Dodge/Room/Foreground.hs 108;" f -glNamedBufferSubDataH src/Shader/Bind.hs 51;" f +glNamedBufferSubDataH src/Shader/Bind.hs 53;" f glassDebris src/Dodge/Block/Debris.hs 169;" f glassLesson src/Dodge/Room/GlassLesson.hs 22;" f glassLessonRunPast src/Dodge/Room/GlassLesson.hs 67;" f @@ -5646,7 +5638,7 @@ hasLOSIndirect src/Dodge/Base/Collide.hs 214;" f hat src/Dodge/Item/Equipment.hs 104;" f head src/DoubleStack.hs 14;" f headLamp src/Dodge/Item/Equipment.hs 117;" f -headLampShape src/Dodge/Item/Draw/SPic.hs 531;" f +headLampShape src/Dodge/Item/Draw/SPic.hs 422;" f headMap src/Dodge/DoubleTree.hs 117;" f heal src/Dodge/Item/Consumable.hs 17;" f heal25 src/Dodge/Item/Consumable.hs 14;" f @@ -5661,7 +5653,7 @@ heldEffect src/Dodge/HeldUse.hs 45;" f heldEffectMuzzles src/Dodge/HeldUse.hs 48;" f heldInfo src/Dodge/Item/Info.hs 48;" f heldItemOffset src/Dodge/Item/HeldOffset.hs 24;" f -heldItemSPic src/Dodge/Item/Draw/SPic.hs 191;" f +heldItemSPic src/Dodge/Item/Draw/SPic.hs 194;" f heldPositionInfo src/Dodge/Item/Info.hs 212;" f helpCommand src/Dodge/Terminal.hs 64;" f helpPoly3D src/Polyhedra.hs 124;" f @@ -5771,21 +5763,21 @@ intersectSegsSeg src/Geometry/Intersect.hs 232;" f intervalList src/Geometry.hs 315;" f interweave src/Justify.hs 17;" f intsToPos src/Dodge/Room/Modify/Girder.hs 160;" f -invAdj src/Dodge/Item/Grammar.hs 147;" f +invAdj src/Dodge/Item/Grammar.hs 145;" f invDimColor src/Dodge/DisplayInventory.hs 139;" f invDimColor src/Dodge/Inventory/Color.hs 4;" f invDisplayParams src/Dodge/ListDisplayParams.hs 29;" f invHead src/Dodge/Render/HUD.hs 314;" f -invIndentIM src/Dodge/Item/Grammar.hs 159;" f -invLDT' src/Dodge/Item/Grammar.hs 129;" f -invLDT'' src/Dodge/Item/Grammar.hs 124;" f -invRootMap src/Dodge/Item/Grammar.hs 136;" f +invIndentIM src/Dodge/Item/Grammar.hs 157;" f +invLDT' src/Dodge/Item/Grammar.hs 127;" f +invLDT'' src/Dodge/Item/Grammar.hs 122;" f +invRootMap src/Dodge/Item/Grammar.hs 134;" f invSelectionItem src/Dodge/Inventory/SelectionList.hs 34;" f invSelectionItem' src/Dodge/Inventory/SelectionList.hs 16;" f invShiftPointBy src/Dodge/ShiftPoint.hs 8;" f invSideEff src/Dodge/Creature/State.hs 237;" f invSize src/Dodge/Inventory/CheckSlots.hs 41;" f -invTrees src/Dodge/Item/Grammar.hs 164;" f +invTrees src/Dodge/Item/Grammar.hs 162;" f inventoryExtra src/Dodge/Render/HUD.hs 218;" f inventoryExtraH src/Dodge/Render/HUD.hs 222;" f inventoryX src/Dodge/Creature.hs 115;" f @@ -5850,10 +5842,10 @@ itemInvColor src/Dodge/Item/InventoryColor.hs 9;" f itemInvSideEffect src/Dodge/Creature/State.hs 245;" f itemNumberDisplay src/Dodge/Item/Display.hs 110;" f itemRooms src/Dodge/LockAndKey.hs 39;" f -itemRotTreeSPic src/Dodge/Item/Draw/SPic.hs 38;" f -itemSPic src/Dodge/Item/Draw/SPic.hs 45;" f +itemRotTreeSPic src/Dodge/Item/Draw/SPic.hs 39;" f +itemSPic src/Dodge/Item/Draw/SPic.hs 46;" f itemString src/Dodge/Item/Display.hs 57;" f -itemTreeSPic src/Dodge/Item/Draw/SPic.hs 34;" f +itemTreeSPic src/Dodge/Item/Draw/SPic.hs 35;" f itemUpdate src/Dodge/Creature/State.hs 338;" f itemUseEffect src/Dodge/Creature/Impulse/UseItem.hs 35;" f iterateUntil src/MonadHelp.hs 23;" f @@ -5868,7 +5860,7 @@ jShape src/Dodge/Placement/Instance/LightSource.hs 86;" f jShape src/Dodge/Placements/LightSource.hs 43;" f jaggedShape src/Dodge/Block/Debris.hs 191;" f jetPack src/Dodge/Item/Equipment.hs 91;" f -joinItemsInList src/Dodge/Item/Grammar.hs 115;" f +joinItemsInList src/Dodge/Item/Grammar.hs 113;" f jps0' src/Dodge/LevelGen/Data.hs 60;" f jps0' src/Dodge/LevelGen/PlacementHelper.hs 60;" f jps0PushPS src/Dodge/LevelGen/Data.hs 63;" f @@ -5889,7 +5881,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 36;" f -keyPic src/Dodge/Item/Draw/SPic.hs 547;" f +keyPic src/Dodge/Item/Draw/SPic.hs 438;" 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 @@ -5904,12 +5896,12 @@ lampCover src/Dodge/LightSources/Lamp.hs 70;" f lampCover src/Dodge/Placement/Instance/LightSource/Cover.hs 8;" f lampCoverWhen src/Dodge/LightSources/Lamp.hs 79;" f lampCoverWhen src/Dodge/Placement/Instance/LightSource/Cover.hs 19;" f -lampCrSPic src/Dodge/Render/ShapePicture.hs 103;" f +lampCrSPic src/Dodge/Render/ShapePicture.hs 104;" f lasBeamCombine src/Dodge/Beam.hs 31;" f lasCenSensEdge src/Dodge/Room/LasTurret.hs 112;" f lasDronesPic src/Dodge/Item/Weapon/Drone.hs 22;" f lasGun src/Dodge/Item/Held/BatteryGuns.hs 46;" f -lasGunPic src/Dodge/Item/Draw/SPic.hs 494;" f +lasGunPic src/Dodge/Item/Draw/SPic.hs 390;" f lasRayAt src/Dodge/Beam.hs 62;" f lasSensorTurretTest src/Dodge/Room/LasTurret.hs 105;" f lasTunnel src/Dodge/Room/LasTurret.hs 124;" f @@ -5921,9 +5913,9 @@ latchkey src/Dodge/Item/Held/Utility.hs 23;" f latchkey src/Dodge/Item/PassKey.hs 14;" f launcher src/Dodge/Item/Held/Launcher.hs 12;" f launcherCrit src/Dodge/Creature/LauncherCrit.hs 12;" f -launcherPic src/Dodge/Item/Draw/SPic.hs 468;" f +launcherPic src/Dodge/Item/Draw/SPic.hs 364;" f launcherSound src/Dodge/SoundLogic/Synonyms.hs 4;" f -launcherX src/Dodge/Item/Held/Launcher.hs 38;" f +launcherX src/Dodge/Item/Held/Launcher.hs 32;" f layoutLevelFromSeed src/Dodge/LevelGen.hs 47;" f ldpVerticalSelection src/Dodge/Update/Input/ScreenLayer.hs 90;" f ldtIL src/Dodge/DoubleTree.hs 96;" f @@ -5932,11 +5924,11 @@ ldtToIM src/Dodge/DoubleTree.hs 90;" f ldtToIndentList src/Dodge/DoubleTree.hs 93;" f left src/DoubleStack.hs 16;" f leftInfo src/Dodge/Item/Info.hs 96;" f -leftIsParentCombine src/Dodge/Item/Grammar.hs 87;" f -leftItemSPic src/Dodge/Item/Draw/SPic.hs 107;" f +leftIsParentCombine src/Dodge/Item/Grammar.hs 85;" f +leftItemSPic src/Dodge/Item/Draw/SPic.hs 110;" f leftPad src/Padding.hs 14;" f -leftRightCombine src/Dodge/Item/Grammar.hs 99;" f -legsSPic src/Dodge/Item/Draw/SPic.hs 565;" f +leftRightCombine src/Dodge/Item/Grammar.hs 97;" f +legsSPic src/Dodge/Item/Draw/SPic.hs 456;" f liShape src/Dodge/Placement/Instance/LightSource.hs 99;" f liShape src/Dodge/Placements/LightSource.hs 55;" f light src/Color.hs 100;" f @@ -6180,8 +6172,8 @@ miniGunCrit src/Dodge/Creature.hs 62;" f miniGunUse src/Dodge/Item/Weapon/BulletGun/Cane.hs 113;" f miniGunX src/Dodge/Item/Held/Cane.hs 83;" f miniGunX src/Dodge/Item/Weapon/BulletGun/Cane.hs 120;" f -miniGunXPict src/Dodge/Item/Draw/SPic.hs 426;" f -miniGunXPictItem src/Dodge/Item/Draw/SPic.hs 420;" f +miniGunXPict src/Dodge/Item/Draw/SPic.hs 340;" f +miniGunXPictItem src/Dodge/Item/Draw/SPic.hs 334;" f miniS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 510;" f miniTree2 src/Dodge/Room/Room.hs 108;" f minimumOn src/FoldlHelp.hs 12;" f @@ -6306,8 +6298,8 @@ newKey src/IntMapHelp.hs 59;" f newMapKey src/Dodge/Config/KeyConfig.hs 33;" f newSounds src/Dodge/Creature/Perception.hs 170;" f newTextureFramebuffer src/Framebuffer/Setup.hs 16;" f -noPic src/ShapePicture.hs 25;" f -noShape src/ShapePicture.hs 29;" f +noPic src/ShapePicture.hs 26;" f +noShape src/ShapePicture.hs 30;" f noclipCheck src/Dodge/WallCreatureCollisions.hs 20;" f nodeFormatting src/Dodge/Combine/Graph.hs 133;" f normalGait src/Dodge/Creature/State/WalkCycle.hs 19;" f @@ -6370,7 +6362,7 @@ overLnkType src/Dodge/RoomLink.hs 87;" f overPos src/Picture/Base.hs 303;" f overPosObj src/Shape.hs 273;" f overPosSH src/Shape.hs 257;" f -overPosSP src/ShapePicture.hs 41;" f +overPosSP src/ShapePicture.hs 42;" f overlapCircWalls src/Dodge/Base/Collide.hs 137;" f overlapCircWallsClosest src/Dodge/Base/Collide.hs 168;" f overlapSegCrs src/Dodge/Base/Collide.hs 58;" f @@ -6764,7 +6756,7 @@ 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 remoteScreen src/Dodge/Item/Scope.hs 52;" f -remoteShellShape src/Dodge/Projectile/Draw.hs 41;" f +remoteShellShape src/Dodge/Projectile/Draw.hs 42;" f removeAmmoFromMag src/Dodge/HeldUse.hs 260;" f removeDot src/ShortShow.hs 30;" f removeEither src/Dodge/Layout/Tree/Either.hs 41;" f @@ -6821,7 +6813,7 @@ rhombus src/Polyhedra.hs 71;" f rifle src/Dodge/Item/Held/Cane.hs 51;" f rifle src/Dodge/Item/Weapon/BulletGun/Cane.hs 77;" f right src/DoubleStack.hs 16;" f -rightIsParentCombine src/Dodge/Item/Grammar.hs 93;" f +rightIsParentCombine src/Dodge/Item/Grammar.hs 91;" f rightPad src/Padding.hs 22;" f rightPadNoSquash src/Padding.hs 26;" f rlPosDir src/Dodge/RoomLink.hs 94;" f @@ -6874,7 +6866,7 @@ rotateProp src/Dodge/Prop/Update.hs 49;" f rotateSH src/Shape.hs 253;" f rotateSHq src/Shape.hs 162;" f rotateSHx src/Shape.hs 261;" f -rotateSP src/ShapePicture.hs 57;" f +rotateSP src/ShapePicture.hs 58;" f rotateTo src/Polyhedra/Geodesic.hs 63;" f rotateToOverlappingWall src/Dodge/Update/Camera.hs 179;" f rotateToZ src/Quaternion.hs 31;" f @@ -7014,7 +7006,7 @@ setToggle src/Dodge/LightSources/Lamp.hs 115;" f setToggle src/Dodge/Prop/Update.hs 46;" f setViewDistance src/Dodge/Update/Camera.hs 225;" f setViewPos src/Dodge/Creature/ReaderUpdate.hs 61;" f -setViewport src/Dodge/Render.hs 385;" f +setViewport src/Dodge/Render.hs 387;" f setVol src/Dodge/Config/Update.hs 30;" f setWristShieldPos src/Dodge/Euse.hs 100;" f setZoomScopeChange src/Dodge/Item/Weapon/ZoomScope.hs 7;" f @@ -7044,12 +7036,12 @@ 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 8;" f -shatterGunSPic src/Dodge/Item/Draw/SPic.hs 274;" f +shatterGunSPic src/Dodge/Item/Draw/SPic.hs 277;" f shatterWall src/Dodge/Item/Weapon/Shatter.hs 26;" f shellCollisionCheck src/Dodge/Projectile/Update.hs 51;" f shellCollisionEffect src/Dodge/Projectile/Update.hs 47;" f shellMag src/Dodge/Item/Ammo.hs 52;" f -shellShape src/Dodge/Projectile/Draw.hs 26;" f +shellShape src/Dodge/Projectile/Draw.hs 27;" f shellTrailCloud src/Dodge/WorldEvent/Cloud.hs 65;" f shieldWall src/Dodge/Euse.hs 114;" f shiftByV2 src/Dodge/PlacementSpot.hs 239;" f @@ -7144,7 +7136,7 @@ sineRaisePitchOneSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 486;" f sineRaisePitchOneSecSound src/Dodge/SoundLogic/Synonyms.hs 31;" f sineRaisePitchTwoSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 340;" f sineRaisePitchTwoSecSound src/Dodge/SoundLogic/Synonyms.hs 33;" f -singleAmmo src/Dodge/Default/Item.hs 41;" f +singleAmmo src/Dodge/Default/Item.hs 40;" f singleBarrel src/Dodge/Item/Held/SingleBarrel.hs 6;" f singleBlock src/Dodge/Placement/Instance/Wall.hs 30;" f singleBlock src/Dodge/Placements/Wall.hs 11;" f @@ -7357,7 +7349,7 @@ terminalShape src/Dodge/Machine/Draw.hs 29;" f terminalWheelEvent src/Dodge/Update/Scroll.hs 76;" f teslaBeamCombine src/Dodge/Beam.hs 48;" f teslaGun src/Dodge/Item/Held/BatteryGuns.hs 27;" f -teslaGunPic src/Dodge/Item/Draw/SPic.hs 484;" f +teslaGunPic src/Dodge/Item/Draw/SPic.hs 380;" 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 @@ -7432,14 +7424,14 @@ topPrismEdgeIndices src/Shader/Poke.hs 327;" f topPrismIndices src/Shader/Poke.hs 402;" f topTestPart src/Dodge/TestString.hs 34;" f torch src/Dodge/Item/Held/Utility.hs 26;" f -torchShape src/Dodge/Item/Draw/SPic.hs 238;" f +torchShape src/Dodge/Item/Draw/SPic.hs 241;" f torqueCr src/Dodge/WorldEffect.hs 70;" f torso src/Dodge/Creature/Picture.hs 133;" f tractCr src/Dodge/TractorBeam/Update.hs 28;" f tractFlIt src/Dodge/TractorBeam/Update.hs 23;" f tractorBeamAt src/Dodge/HeldUse.hs 232;" f tractorGun src/Dodge/Item/Held/BatteryGuns.hs 73;" f -tractorGunPic src/Dodge/Item/Draw/SPic.hs 522;" f +tractorGunPic src/Dodge/Item/Draw/SPic.hs 416;" f tractorPullPos src/Dodge/TractorBeam/Update.hs 33;" f tractorSPic src/Dodge/TractorBeam/Draw.hs 10;" f tranRot src/Picture/Base.hs 124;" f @@ -7458,9 +7450,9 @@ translatePointToRightHand' src/Dodge/Creature/HandPos.hs 55;" f translateSH src/Shape.hs 241;" f translateSHxy src/Shape.hs 245;" f translateSHz src/Shape.hs 249;" f -translateSP src/ShapePicture.hs 53;" f -translateSPxy src/ShapePicture.hs 45;" f -translateSPz src/ShapePicture.hs 49;" f +translateSP src/ShapePicture.hs 54;" f +translateSPxy src/ShapePicture.hs 46;" f +translateSPz src/ShapePicture.hs 50;" f translateScreenPos src/Dodge/ScreenPos.hs 12;" f translateToBack src/Dodge/Creature/HandPos.hs 190;" f translateToChest src/Dodge/Creature/HandPos.hs 183;" f @@ -7766,7 +7758,7 @@ visionCheck src/Dodge/Creature/Perception.hs 152;" f vocalizationTest src/Dodge/Creature/Vocalization.hs 8;" f volleyGun src/Dodge/Item/Held/Cane.hs 32;" f volleyGun src/Dodge/Item/Weapon/BulletGun/Cane.hs 43;" f -volleyGunShape src/Dodge/Item/Draw/SPic.hs 408;" f +volleyGunShape src/Dodge/Item/Draw/SPic.hs 322;" f waistSP src/Dodge/Creature/HandPos.hs 199;" f walkNozzle src/Dodge/HeldUse.hs 207;" f walkableNodeNear src/Dodge/Path.hs 48;" f @@ -7866,7 +7858,7 @@ wlsNearRect src/Dodge/Zoning/Wall.hs 46;" f wlsNearSeg src/Dodge/Zoning/Wall.hs 42;" f wordsBy src/ListHelp.hs 116;" f worldPosToScreen src/Dodge/Base/Coordinate.hs 28;" f -worldSPic src/Dodge/Render/ShapePicture.hs 29;" f +worldSPic src/Dodge/Render/ShapePicture.hs 30;" f worldShape src/Dodge/Render/Shape.hs 14;" f worldToGenWorld src/Dodge/LevelGen/LevelStructure.hs 14;" f wpAdd src/Dodge/Room/RezBox.hs 134;" f