diff --git a/ghcidOutput b/ghcidOutput index 3e12d3194..3f96cb445 100644 --- a/ghcidOutput +++ b/ghcidOutput @@ -1 +1,67 @@ -All good (604 modules, at 13:28:17) +/home/justin/Haskell/loop/src/Dodge/Item/HeldOffset.hs:26:1-22: warning: [-Wunused-top-binds] + Defined but not used: ‘heldItemRelativeOrient’ + | +26 | heldItemRelativeOrient itm cr (p,q) + | ^^^^^^^^^^^^^^^^^^^^^^ +/home/justin/Haskell/loop/src/Dodge/Item/HeldOffset.hs:44:5-9: warning: [-Wunused-local-binds] + Defined but not used: ‘handD’ + | +44 | handD = 15 + | ^^^^^ +/home/justin/Haskell/loop/src/Dodge/Item/HeldOffset.hs:44:13-14: warning: [-Wtype-defaults] + • Defaulting the following constraint to type ‘Integer’ + Num p0 arising from the literal ‘15’ + • In the expression: 15 + In an equation for ‘handD’: handD = 15 + In an equation for ‘heldItemRelativeOrient’: + heldItemRelativeOrient itm cr (p, q) + | _posture (_crStance cr) == Aiming = (p, q) + | isTwoHandFlat = (p, q) + | isOneHand = (p, q) + | otherwise = (p, q) + where + handD = 15 + handPos + = case cr ^? crStance . carriage of + Just (Walking x LeftForward) -> f x * 50 + _ -> 0 + isOneHand + = itm ^? itUseAimStance == Just OneHand + || isNothing (itm ^? itUseAimStance) + isTwoHandFlat = itm ^? itUseAimStance == Just TwoHandFlat + .... + | +44 | handD = 15 + | ^^ +/home/justin/Haskell/loop/src/Dodge/Item/HeldOffset.hs:45:5-11: warning: [-Wunused-local-binds] + Defined but not used: ‘handPos’ + | +45 | handPos = case cr ^? crStance . carriage of + | ^^^^^^^ +/home/justin/Haskell/loop/src/Dodge/Item/HeldOffset.hs:46:45: warning: [-Wtype-defaults] + • Defaulting the following constraints to type ‘Double’ + (Num a0) + arising from a use of ‘*’ + at /home/justin/Haskell/loop/src/Dodge/Item/HeldOffset.hs:46:45 + (Fractional a0) + arising from a use of ‘f’ + at /home/justin/Haskell/loop/src/Dodge/Item/HeldOffset.hs:46:41-43 + • In the expression: f x * 50 + In a case alternative: Just (Walking x LeftForward) -> f x * 50 + In the expression: + case cr ^? crStance . carriage of + Just (Walking x LeftForward) -> f x * 50 + _ -> 0 + | +46 | Just (Walking x LeftForward) -> f x * 50 + | ^ +/home/justin/Haskell/loop/src/Dodge/Item/HeldOffset.hs:53:5: warning: [-Wunused-local-binds] + Defined but not used: ‘f’ + | +53 | f i = 0.1 * fromIntegral (sLen - i) / fromIntegral sLen + | ^ +/home/justin/Haskell/loop/src/Dodge/Item/HeldOffset.hs:54:5-8: warning: [-Wunused-local-binds] + Defined but not used: ‘sLen’ + | +54 | sLen = _strideLength $ _crStance cr + | ^^^^ diff --git a/src/Dodge/Creature/Impulse/UseItem.hs b/src/Dodge/Creature/Impulse/UseItem.hs index 48cab31b2..1cdc3af0c 100644 --- a/src/Dodge/Creature/Impulse/UseItem.hs +++ b/src/Dodge/Creature/Impulse/UseItem.hs @@ -40,7 +40,7 @@ itemUseEffect cr it w = case it ^. ldtValue . itUse of EquipUse{} -> doequipmentchange (UseConsume eff) -> useC eff (_ldtValue it) cr w CraftUse{} -> w - AttachUse{} -> selectUse it cr w + UseAttach{} -> selectUse it cr w TargetingUse {} -> w UseAmmoMag{} -> w ScopeUse{} -> w diff --git a/src/Dodge/Creature/Picture.hs b/src/Dodge/Creature/Picture.hs index 3e52b28dd..775d7544a 100644 --- a/src/Dodge/Creature/Picture.hs +++ b/src/Dodge/Creature/Picture.hs @@ -9,26 +9,24 @@ module Dodge.Creature.Picture ( deadFeet, ) where -import Dodge.Item.Grammar -import Shape import Control.Lens import Dodge.Creature.HandPos (translateToLeftHand, translateToRightHand) import Dodge.Creature.Test import Dodge.Damage import Dodge.Data.Creature import Dodge.Item.Draw +import Dodge.Item.Grammar import Geometry import Picture import qualified Quaternion as Q +import Shape --import Shape import ShapePicture basicCrPict :: Creature -> SPic -basicCrPict cr = uncurryV translateSPxy (_crPos cr) (rotateSP (_crDir cr) $ drawEquipment cr) - <> noPic (basicCrShape cr) - ---testShape :: Shape ---testShape = translateSHz 10 . rotateSHx 1 . upperCylinder 20 $ polyCirc 2 10 +basicCrPict cr = + uncurryV translateSPxy (_crPos cr) (rotateSP (_crDir cr) $ drawEquipment cr) + <> noPic (basicCrShape cr) basicCrShape :: Creature -> @@ -53,22 +51,15 @@ feet :: Creature -> Shape {-# INLINE feet #-} feet cr = case cr ^? crStance . carriage of Just (Walking sa LeftForward) -> - mconcat - [ translateSHxy (f sa) off aFoot - , translateSHxy (- f sa) (- off) aFoot - ] + translateSHxy (f sa) off aFoot + <> translateSHxy (- f sa) (- off) aFoot Just (Walking sa RightForward) -> - mconcat - [ translateSHxy (- f sa) off aFoot - , translateSHxy (f sa) (- off) aFoot - ] + translateSHxy (- f sa) off aFoot + <> translateSHxy (f sa) (- off) aFoot _ -> - mconcat - [ translateSHxy 0 off aFoot - , translateSHxy 0 (- off) aFoot - ] + translateSHxy 0 off aFoot + <> translateSHxy 0 (- off) aFoot where - aFoot :: Shape aFoot = upperPrismPolyST 10 $ polyCirc 3 4 off = 5 sLen = _strideLength $ _crStance cr @@ -76,29 +67,7 @@ feet cr = case cr ^? crStance . carriage of deadFeet :: Creature -> Shape {-# INLINE deadFeet #-} -deadFeet = feet ---cr = case cr ^? crStance . carriage of --- Just (Walking sa LeftForward) -> --- mconcat --- [ translateSHxy (f sa) off aFoot --- , translateSHxy (- f sa) (- off) aFoot --- ] --- Just (Walking sa RightForward) -> --- mconcat --- [ translateSHxy (- f sa) off aFoot --- , translateSHxy (f sa) (- off) aFoot --- ] --- _ -> --- mconcat --- [ translateSHxy 0 off aFoot --- , translateSHxy 0 (- off) aFoot --- ] --- where --- aFoot :: Shape --- aFoot = upperPrismPolyT 3 $ polyCirc 3 4 --- off = 5 --- sLen = _strideLength $ _crStance cr --- f i = 6 * fromIntegral (sLen - i) / fromIntegral sLen +deadFeet = feet arms :: Creature -> Shape {-# INLINE arms #-} @@ -162,15 +131,11 @@ baseShoulder = translateSHz (-10) . scaleSH (V3 0.5 1 1) . upperPrismPolyHalfMI upperBody :: Creature -> Shape {-# INLINE upperBody #-} -upperBody cr = - mconcat - [ arms cr - , shoulderSH $ torso cr - ] +upperBody cr = arms cr <> shoulderSH (torso cr) shoulderSH :: Shape -> Shape shoulderSH = translateSHz 20 drawEquipment :: Creature -> SPic {-# INLINE drawEquipment #-} -drawEquipment cr = foldMap (itemEquipPict cr . fmap (\(a,b,_) -> (a,b))) (invLDT $ _crInv cr) +drawEquipment cr = foldMap (itemEquipPict cr . fmap (\(a, b, _) -> (a, b))) (invLDT $ _crInv cr) diff --git a/src/Dodge/Data/Item/Combine.hs b/src/Dodge/Data/Item/Combine.hs index 64229c6fb..84aa5e7b3 100644 --- a/src/Dodge/Data/Item/Combine.hs +++ b/src/Dodge/Data/Item/Combine.hs @@ -69,13 +69,10 @@ data CraftType | GASINJECTOR | FLAKCRAFT | FRAGCRAFT - | -- | ENERGYBALLCRAFT EnergyBallType - -- | BULBODYCRAFT BulletEffect - TELEPORTMODULE + | TELEPORTMODULE | TIMEMODULE | SIZEMODULE | GRAVITYMODULE - -- | TARGETMODULE TargetingType deriving (Eq, Ord, Show, Read) data AttachType diff --git a/src/Dodge/Data/Item/Use.hs b/src/Dodge/Data/Item/Use.hs index 0278c50f3..3787a1de9 100644 --- a/src/Dodge/Data/Item/Use.hs +++ b/src/Dodge/Data/Item/Use.hs @@ -16,6 +16,7 @@ module Dodge.Data.Item.Use ( module Dodge.Data.Item.BulletMod ) where +import Dodge.Data.Item.Effect import Dodge.Data.Item.BulletMod import Dodge.Data.Item.Scope import Control.Lens @@ -23,7 +24,6 @@ import Data.Aeson import Data.Aeson.TH import qualified Data.IntMap.Strict as IM import Dodge.Data.GenFloat ---import qualified Data.Sequence as Seq import Dodge.Data.Hammer import Dodge.Data.Item.HeldDelay import Dodge.Data.Item.HeldUse @@ -55,8 +55,8 @@ data ItemUse , _equipTargeting :: Maybe TargetingType } | CraftUse - | AttachUse - {_atLinkedProjectile :: Maybe Int} + | UseAttach + {_uaParams :: AttachParams} | UseAmmoMag { _amagLoadStatus :: ReloadStatus , _amagParams :: AmmoParams @@ -76,6 +76,14 @@ data ItemUse data TriggerType = AutoTrigger | HammerTrigger deriving (Eq, Show, Read) +data AttachParams + = APLinkProjectile + {_apLinkedProjectile :: Maybe Int} + | APItEffect + {_apItEffect :: ItEffect } + | APNothing + deriving (Eq, Show, Read) + data HeldParams = DefaultHeldParams | GasSprayParams @@ -189,9 +197,7 @@ makeLenses ''AimParams makeLenses ''ItZoom makeLenses ''Muzzle makeLenses ''HeldParams - ---makeLenses ''AttachParams ---makeLenses ''ScrollAttachParams +makeLenses ''AttachParams makeLenses ''AmmoParams makeLenses ''MuzzleEffect deriveJSON defaultOptions ''MuzzleEffect @@ -203,7 +209,7 @@ deriveJSON defaultOptions ''Muzzle deriveJSON defaultOptions ''AimStance --deriveJSON defaultOptions ''ScrollAttachParams ---deriveJSON defaultOptions ''AttachParams +deriveJSON defaultOptions ''AttachParams deriveJSON defaultOptions ''ItZoom deriveJSON defaultOptions ''AimParams deriveJSON defaultOptions ''ItemUse diff --git a/src/Dodge/Item/Ammo.hs b/src/Dodge/Item/Ammo.hs index aabb298e6..671a6bed8 100644 --- a/src/Dodge/Item/Ammo.hs +++ b/src/Dodge/Item/Ammo.hs @@ -1,5 +1,7 @@ -module Dodge.Item.Ammo where +module Dodge.Item.Ammo + where +import Dodge.Item.Attach import Control.Lens import Dodge.Data.World import Dodge.Default.Item @@ -98,6 +100,4 @@ chemFuelPouch = } bulletSynthesizer :: Item -bulletSynthesizer = defaultHeldItem - & itType .~ ATTACH BULLETSYNTHESIZER - & itUse .~ AttachUse Nothing +bulletSynthesizer = makeAttach BULLETSYNTHESIZER diff --git a/src/Dodge/Item/Display.hs b/src/Dodge/Item/Display.hs index b41d7b9b1..e03ffe11b 100644 --- a/src/Dodge/Item/Display.hs +++ b/src/Dodge/Item/Display.hs @@ -78,7 +78,7 @@ showAttachItem t itm = case t of ZOOMSCOPE -> "ZOOMSCOPE" -- TARGETATTACH x -> show x BULLETSYNTHESIZER -> "BSYNTH" - REMOTESCREEN -> "REMOTE SCREEN " ++ show (itm ^? itUse . atLinkedProjectile . _Just) + REMOTESCREEN -> "REMOTE SCREEN " ++ show (itm ^? itUse . uaParams . apLinkedProjectile . _Just) HOMINGMODULE -> "HOMING MOD" AUGMENTEDHUD -> "AUGMENTED HUD" @@ -115,7 +115,7 @@ itemNumberDisplay cr itm = case iu of EquipUse{} -> showEquipmentNumber cr itm CraftUse -> [] UseConsume {} -> [] - AttachUse {} -> [] + UseAttach {} -> [] UseAmmoMag {} -> [maybe "" shortShow $ itm ^? itUse . amagLoadStatus . iaLoaded] ScopeUse OpticScope {_opticZoom = x} -> [shortShow x] ScopeUse {} -> [] diff --git a/src/Dodge/Item/HeldOffset.hs b/src/Dodge/Item/HeldOffset.hs index c80717cdd..7e3a91fb8 100644 --- a/src/Dodge/Item/HeldOffset.hs +++ b/src/Dodge/Item/HeldOffset.hs @@ -4,6 +4,7 @@ module Dodge.Item.HeldOffset ( heldItemOffset, ) where +import qualified Linear.Quaternion as Q import Data.Maybe import Dodge.Creature.HandPos import Dodge.Data.Creature @@ -21,6 +22,37 @@ transToHandle itm = fromMaybe id $ do V2 x y <- itm ^? itUse . heldAim . aimHandlePos return (-.-.- V3 x y 0) +heldItemRelativeOrient :: Item -> Creature -> (Point3, Q.Quaternion Float) -> (Point3, Q.Quaternion Float) +heldItemRelativeOrient itm cr (p,q) + | _posture (_crStance cr) == Aiming = (p,q) + | isTwoHandFlat = (p,q) +-- (+.+.+ V3 (_crRad cr) 0 handD) +-- . rotate3 (twoFlatHRot cr) +-- . transToHandle itm + | isOneHand = (p,q) +-- (+.+.+ V3 0 0 handD) +-- . (+.+.+ V3 (_crRad cr * 0.7 + handPos) (_crRad cr * negate 0.7) 0) +-- . (+.+.+ V3 (-2) 0 0) +-- . transToHandle itm + | otherwise = (p,q) +-- (+.+.+ V3 0 0 handD) +-- . (+.+.+ V3 (_crRad cr) 0 0) +-- . rotate3 (strideRot cr + 1.2) +-- . (+.+.+ V3 (-8) 0 0) +-- . transToHandle itm + where + handD = 15 + handPos = case cr ^? crStance . carriage of + Just (Walking x LeftForward) -> f x * 50 + _ -> 0 + isOneHand = + itm ^? itUseAimStance == Just OneHand + || isNothing (itm ^? itUseAimStance) + isTwoHandFlat = itm ^? itUseAimStance == Just TwoHandFlat + itUseAimStance = itUse . heldAim . aimStance + f i = 0.1 * fromIntegral (sLen - i) / fromIntegral sLen + sLen = _strideLength $ _crStance cr + heldItemOffset :: Item -> Creature -> Point3 -> Point3 heldItemOffset itm cr | _posture (_crStance cr) == Aiming = @@ -39,7 +71,6 @@ heldItemOffset itm cr . (+.+.+ V3 (_crRad cr) 0 0) . rotate3 (strideRot cr + 1.2) . (+.+.+ V3 (-8) 0 0) - -- . (+.+.+ V3 (-5) 0 0) . transToHandle itm where handD = 15 diff --git a/src/Dodge/Item/Orientation.hs b/src/Dodge/Item/Orientation.hs index 4eb6ea328..4c42e830f 100644 --- a/src/Dodge/Item/Orientation.hs +++ b/src/Dodge/Item/Orientation.hs @@ -1,5 +1,6 @@ -module Dodge.Item.Orientation - where +module Dodge.Item.Orientation + ( orientAttachment + ) where import Dodge.Data.ComposedItem import Geometry.Data @@ -13,7 +14,6 @@ orientChild itm = case _itType itm of orientByLink :: Item -> ComposeLinkType -> (Point3, Q.Quaternion Float) orientByLink itm lt = case (_itType itm,lt) of - --(HELD FLAMETHROWER, AmmoInLink{}) -> undefined --(V3 4 (-6) 0,0) (HELD FLAMETHROWER, AmmoInLink{}) -> (V3 4 (-6) 0, Q.axisAngle (V3 1 0 0) 0) (HELD _,AmmoInLink{}) -> (V3 7 (-2) 0, Q.axisAngle (V3 1 0 0) 0) _ -> (0,Q.axisAngle (V3 1 0 0) 0) diff --git a/src/Dodge/Item/Scope.hs b/src/Dodge/Item/Scope.hs index c97222e34..f09bc6e7d 100644 --- a/src/Dodge/Item/Scope.hs +++ b/src/Dodge/Item/Scope.hs @@ -10,6 +10,7 @@ module Dodge.Item.Scope ( bulletPayloadModule, ) where +import Dodge.Item.Attach import Control.Lens import Dodge.Data.Item import Dodge.Default.Item @@ -25,9 +26,7 @@ targetingScope tt = defaultHeldItem & itUse .~ TargetingUse Nothing Nothing False homingModule :: Item -homingModule = defaultHeldItem - & itType .~ ATTACH HOMINGMODULE - & itUse .~ AttachUse Nothing +homingModule = makeAttach HOMINGMODULE fletchingModule :: Item fletchingModule = bulletTargetingModule FlechetteTrajectoryType @@ -45,12 +44,8 @@ bulletPayloadModule :: BulletPayload -> Item bulletPayloadModule = bulletModule . BulletModPayload augmentedHUD :: Item -augmentedHUD = defaultHeldItem - & itType .~ ATTACH AUGMENTEDHUD - & itUse .~ AttachUse Nothing +augmentedHUD = makeAttach AUGMENTEDHUD remoteScreen :: Item -remoteScreen = - defaultHeldItem - & itType .~ ATTACH REMOTESCREEN - & itUse .~ AttachUse Nothing +remoteScreen = makeAttach REMOTESCREEN + diff --git a/src/Dodge/Projectile/Create.hs b/src/Dodge/Projectile/Create.hs index 660b4ba11..f0ad50b36 100644 --- a/src/Dodge/Projectile/Create.hs +++ b/src/Dodge/Projectile/Create.hs @@ -47,8 +47,8 @@ createShell homing payload muz cr w = w thrustdelay = 20 updatescreen = fromMaybe id $ do screenid <- homing ^? phRemoteID - return $ pointerToItemID screenid . itUse - . atLinkedProjectile + return $ pointerToItemID screenid . itUse . uaParams + . apLinkedProjectile ?~ i i = IM.newKey $ w ^. cWorld . lWorld . projectiles dir = _crDir cr + _mzRot muz diff --git a/src/Dodge/Projectile/Update.hs b/src/Dodge/Projectile/Update.hs index 0f15d3af9..1779aac43 100644 --- a/src/Dodge/Projectile/Update.hs +++ b/src/Dodge/Projectile/Update.hs @@ -66,9 +66,9 @@ destroyProjectile mitid pjid w = w & cWorld . lWorld . projectiles %~ IM.delete removelink = fromMaybe id $ do itid <- fmap _unNInt mitid loc <- w ^? cWorld . lWorld . itemLocations . ix itid - itm <- w ^? pointerToItemLocation loc . itUse . atLinkedProjectile . _Just + itm <- w ^? pointerToItemLocation loc . itUse . uaParams . apLinkedProjectile . _Just guard $ itm == pjid - return $ pointerToItemLocation loc . itUse . atLinkedProjectile .~ Nothing + return $ pointerToItemLocation loc . itUse . uaParams . apLinkedProjectile .~ Nothing doThrust :: Projectile -> World -> World doThrust pj w = diff --git a/src/Dodge/SelectUse.hs b/src/Dodge/SelectUse.hs index 07165d80e..356d67077 100644 --- a/src/Dodge/SelectUse.hs +++ b/src/Dodge/SelectUse.hs @@ -11,7 +11,7 @@ import Control.Lens selectUse :: LabelDoubleTree ComposeLinkType Item -> Creature -> World -> World selectUse ittree _ w = fromMaybe w $ do itid <- ittree ^? ldtValue . itID - pjid <- ittree ^? ldtValue . itUse . atLinkedProjectile . _Just + pjid <- ittree ^? ldtValue . itUse . uaParams . apLinkedProjectile . _Just thepj <- w ^? cWorld . lWorld . projectiles . ix pjid return $ w & cWorld . lWorld . projectiles . ix pjid . prjUpdates .~ [DestroyPU (Just itid) 30] -- 69 is placeholder, should be removed diff --git a/src/Dodge/Update/Camera.hs b/src/Dodge/Update/Camera.hs index afe255605..07ffd1d06 100644 --- a/src/Dodge/Update/Camera.hs +++ b/src/Dodge/Update/Camera.hs @@ -88,7 +88,7 @@ moveZoomCamera cfig theinput cr w campos = where mremotepos = do i <- cr ^? crManipulation . manObject . imSelectedItem - j <- cr ^? crInv . ix i . itUse . atLinkedProjectile . _Just + j <- cr ^? crInv . ix i . itUse . uaParams . apLinkedProjectile . _Just w ^? cWorld . lWorld . projectiles . ix j . prjPos docamrot = rotateV (campos ^. camRot) offset = fromMaybe noscopeoffset $ do diff --git a/tags b/tags index 488b5f78f..adb79eb53 100644 --- a/tags +++ b/tags @@ -21,15 +21,18 @@ <$> src/Dodge/Data/Terminal.hs 129;" o AIUNIT src/Dodge/Data/Item/Combine.hs 52;" C AMMOMAG src/Dodge/Data/Item/Combine.hs 22;" C -AMR src/Dodge/Data/Item/Combine.hs 150;" C +AMR src/Dodge/Data/Item/Combine.hs 147;" C ANTIMATTER src/Dodge/Data/Item/Combine.hs 46;" C +APItEffect src/Dodge/Data/Item/Use.hs 82;" C +APLinkProjectile src/Dodge/Data/Item/Use.hs 80;" C +APNothing src/Dodge/Data/Item/Use.hs 84;" C AQUAMARINE src/Color/Data.hs 24;" C ATTACH src/Dodge/Data/Item/Combine.hs 21;" C -AUGMENTEDHUD src/Dodge/Data/Item/Combine.hs 86;" C -AUTOAMR src/Dodge/Data/Item/Combine.hs 151;" C -AUTODETECTOR src/Dodge/Data/Item/Combine.hs 120;" C -AUTOPISTOL src/Dodge/Data/Item/Combine.hs 138;" C -AUTORIFLE src/Dodge/Data/Item/Combine.hs 146;" C +AUGMENTEDHUD src/Dodge/Data/Item/Combine.hs 83;" C +AUTOAMR src/Dodge/Data/Item/Combine.hs 148;" C +AUTODETECTOR src/Dodge/Data/Item/Combine.hs 117;" C +AUTOPISTOL src/Dodge/Data/Item/Combine.hs 135;" C +AUTORIFLE src/Dodge/Data/Item/Combine.hs 143;" C AZURE src/Color/Data.hs 23;" C AccessTerminal src/Dodge/Data/WorldEffect.hs 28;" C Action src/Dodge/Data/ActionPlan.hs 78;" t @@ -41,9 +44,9 @@ Add src/Dodge/Inventory/Add.hs 1;" m AddGoal src/Dodge/Data/ActionPlan.hs 45;" C AesonHelp src/AesonHelp.hs 1;" m AimAt src/Dodge/Data/ActionPlan.hs 84;" C -AimParams src/Dodge/Data/Item/Use.hs 118;" t +AimParams src/Dodge/Data/Item/Use.hs 126;" t AimParams src/Dodge/Default/Item/Use/AimParams.hs 1;" m -AimStance src/Dodge/Data/Item/Use.hs 174;" t +AimStance src/Dodge/Data/Item/Use.hs 181;" t Aiming src/Dodge/Data/Creature/Stance.hs 39;" C AirFiltrationSS src/Dodge/Data/Scenario.hs 95;" C Airlock src/Dodge/Room/Airlock.hs 4;" m @@ -56,10 +59,10 @@ AmmoEffectLink src/Dodge/Data/ComposedItem.hs 21;" C AmmoEffectSF src/Dodge/Data/ComposedItem.hs 39;" C AmmoInLink src/Dodge/Data/ComposedItem.hs 17;" C AmmoMagSF src/Dodge/Data/ComposedItem.hs 33;" C -AmmoMagType src/Dodge/Data/Item/Combine.hs 89;" t +AmmoMagType src/Dodge/Data/Item/Combine.hs 86;" t AmmoModLink src/Dodge/Data/ComposedItem.hs 18;" C AmmoModifierSF src/Dodge/Data/ComposedItem.hs 36;" C -AmmoParams src/Dodge/Data/Item/Use.hs 112;" t +AmmoParams src/Dodge/Data/Item/Use.hs 120;" t AmmoPayloadLink src/Dodge/Data/ComposedItem.hs 20;" C AmmoPayloadSF src/Dodge/Data/ComposedItem.hs 38;" C AmmoTargetingLink src/Dodge/Data/ComposedItem.hs 19;" C @@ -88,8 +91,9 @@ Asleep src/Dodge/Data/Creature/Perception.hs 54;" C AsteroidStrike src/Dodge/Data/Scenario.hs 33;" C AtEase src/Dodge/Data/Creature/Stance.hs 40;" C AtomicWaste src/Dodge/Data/Scenario.hs 26;" C -AttachType src/Dodge/Data/Item/Combine.hs 81;" t -AttachUse src/Dodge/Data/Item/Use.hs 58;" C +Attach src/Dodge/Item/Attach.hs 1;" m +AttachParams src/Dodge/Data/Item/Use.hs 79;" t +AttachType src/Dodge/Data/Item/Combine.hs 78;" t Attention src/Dodge/Data/Creature/Perception.hs 60;" t AttentiveTo src/Dodge/Data/Creature/Perception.hs 61;" C Audition src/Dodge/Data/Creature/Perception.hs 47;" t @@ -103,27 +107,27 @@ AutoTrigger src/Dodge/Data/Item/Use.hs 76;" C AuxAddition src/Shader/AuxAddition.hs 1;" m Awareness src/Dodge/Data/Creature/Perception.hs 65;" t Awareness src/Dodge/Creature/Picture/Awareness.hs 1;" m -BANGCONE src/Dodge/Data/Item/Combine.hs 140;" C -BANGROD src/Dodge/Data/Item/Combine.hs 148;" C -BANGSTICK src/Dodge/Data/Item/Combine.hs 135;" C -BATTERY src/Dodge/Data/Item/Combine.hs 94;" C -BATTERYPACK src/Dodge/Data/Item/Combine.hs 119;" C -BELTMAG src/Dodge/Data/Item/Combine.hs 92;" C +BANGCONE src/Dodge/Data/Item/Combine.hs 137;" C +BANGROD src/Dodge/Data/Item/Combine.hs 145;" C +BANGSTICK src/Dodge/Data/Item/Combine.hs 132;" C +BATTERY src/Dodge/Data/Item/Combine.hs 91;" C +BATTERYPACK src/Dodge/Data/Item/Combine.hs 116;" C +BELTMAG src/Dodge/Data/Item/Combine.hs 89;" C BLACK src/Color/Data.hs 28;" C -BLINKER src/Dodge/Data/Item/Combine.hs 128;" C -BLINKERUNSAFE src/Dodge/Data/Item/Combine.hs 129;" C -BLOWTORCH src/Dodge/Data/Item/Combine.hs 157;" C +BLINKER src/Dodge/Data/Item/Combine.hs 125;" C +BLINKERUNSAFE src/Dodge/Data/Item/Combine.hs 126;" C +BLOWTORCH src/Dodge/Data/Item/Combine.hs 154;" C BLUE src/Color/Data.hs 17;" C -BLUNDERBUSS src/Dodge/Data/Item/Combine.hs 141;" C +BLUNDERBUSS src/Dodge/Data/Item/Combine.hs 138;" C BLUNT src/Dodge/Data/Damage/Type.hs 13;" C -BOOSTER src/Dodge/Data/Item/Combine.hs 124;" C +BOOSTER src/Dodge/Data/Item/Combine.hs 121;" C BQuad src/Geometry/Bezier.hs 9;" t -BRAINHAT src/Dodge/Data/Item/Combine.hs 109;" C -BULLETBELTBRACER src/Dodge/Data/Item/Combine.hs 118;" C -BULLETBELTPACK src/Dodge/Data/Item/Combine.hs 117;" C +BRAINHAT src/Dodge/Data/Item/Combine.hs 106;" C +BULLETBELTBRACER src/Dodge/Data/Item/Combine.hs 115;" C +BULLETBELTPACK src/Dodge/Data/Item/Combine.hs 114;" C BULLETMOD src/Dodge/Data/Item/Combine.hs 24;" C -BULLETSYNTHESIZER src/Dodge/Data/Item/Combine.hs 83;" C -BURSTRIFLE src/Dodge/Data/Item/Combine.hs 147;" C +BULLETSYNTHESIZER src/Dodge/Data/Item/Combine.hs 80;" C +BURSTRIFLE src/Dodge/Data/Item/Combine.hs 144;" C BackgroundSound src/Dodge/Data/SoundOrigin.hs 14;" C Ball src/Dodge/Tesla/Ball.hs 1;" m Bark src/Dodge/Data/ActionPlan.hs 40;" C @@ -147,7 +151,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 93;" C +BeamShooterParams src/Dodge/Data/Item/Use.hs 101;" 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 @@ -220,9 +224,9 @@ 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 71;" C -BulletParams src/Dodge/Data/Item/Use.hs 113;" C +BulletParams src/Dodge/Data/Item/Use.hs 121;" C BulletPayload src/Dodge/Data/Bullet.hs 42;" t -BulletShooterParams src/Dodge/Data/Item/Use.hs 97;" C +BulletShooterParams src/Dodge/Data/Item/Use.hs 105;" C BulletTrajectory src/Dodge/Data/Bullet.hs 50;" t BulletTrajectoryType src/Dodge/Data/Bullet.hs 57;" t Button src/Dodge/Data/Button.hs 48;" t @@ -239,14 +243,14 @@ CAMERA src/Dodge/Data/Item/Combine.hs 53;" C CAN src/Dodge/Data/Item/Combine.hs 34;" C CDoNothing src/Dodge/Data/Item/HeldUse.hs 25;" C CHARTREUSE src/Color/Data.hs 25;" C -CHEMFUELPOUCH src/Dodge/Data/Item/Combine.hs 95;" C +CHEMFUELPOUCH src/Dodge/Data/Item/Combine.hs 92;" C CHeal src/Dodge/Data/Item/HeldUse.hs 26;" C CIRCLE src/Dodge/Data/GenParams.hs 20;" C CME src/Dodge/Data/MuzzleEffect.hs 11;" C CONCUSSIVE src/Dodge/Data/Damage/Type.hs 22;" C CONSUMABLE src/Dodge/Data/Item/Combine.hs 19;" C CRAFT src/Dodge/Data/Item/Combine.hs 20;" C -CREATUREDETECTOR src/Dodge/Data/Item/Combine.hs 176;" C +CREATUREDETECTOR src/Dodge/Data/Item/Combine.hs 172;" C CREATURESENSOR src/Dodge/Data/Item/Combine.hs 63;" C CRUSHING src/Dodge/Data/Damage/Type.hs 16;" C CUTTING src/Dodge/Data/Damage/Type.hs 14;" C @@ -350,7 +354,7 @@ Connectors src/Dodge/Render/Connectors.hs 1;" m ConstFloat src/Dodge/Data/GenFloat.hs 11;" C ConstantIntensity src/Dodge/Data/LightSource.hs 17;" C Consumable src/Dodge/Item/Consumable.hs 1;" m -ConsumableItemType src/Dodge/Data/Item/Combine.hs 98;" t +ConsumableItemType src/Dodge/Data/Item/Combine.hs 95;" t Consumption src/Dodge/Data/Item/Use/Consumption.hs 8;" m Consumption src/Dodge/Default/Item/Use/Consumption.hs 1;" m Containing src/Dodge/Room/Containing.hs 2;" m @@ -436,8 +440,8 @@ Cuse src/Dodge/Data/Item/HeldUse.hs 24;" t Cuse src/Dodge/Cuse.hs 1;" m Cylinder src/Shape/Data.hs 19;" C DPoint2 src/Geometry/Data.hs 34;" t -DRONELAUNCHER src/Dodge/Data/Item/Combine.hs 165;" C -DRUMMAG src/Dodge/Data/Item/Combine.hs 91;" C +DRONELAUNCHER src/Dodge/Data/Item/Combine.hs 162;" C +DRUMMAG src/Dodge/Data/Item/Combine.hs 88;" C DS src/DoubleStack.hs 3;" t DT src/Dodge/Data/DoubleTree.hs 29;" C DTBottomNode src/Dodge/Data/DoubleTree.hs 19;" C @@ -489,9 +493,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 130;" C +DefaultFlareType src/Dodge/Data/Item/Use.hs 138;" C DefaultForceField src/Dodge/Data/Item/Use/Consumption/Ammo.hs 48;" C -DefaultHeldParams src/Dodge/Data/Item/Use.hs 80;" C +DefaultHeldParams src/Dodge/Data/Item/Use.hs 88;" 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 @@ -502,7 +506,7 @@ DestroyBullet src/Dodge/Data/Bullet.hs 37;" C DestroyItem src/Dodge/Data/Scenario.hs 7;" C DestroyPU src/Dodge/Data/Item/Use/Consumption/Ammo.hs 34;" C DestroyTLS src/Dodge/Data/LightSource.hs 22;" C -Detector src/Dodge/Data/Item/Combine.hs 174;" t +Detector src/Dodge/Data/Item/Combine.hs 170;" t Dirt src/Dodge/Data/Material.hs 11;" C DisasterType src/Dodge/Data/Scenario.hs 24;" t Display src/Dodge/Item/Display.hs 1;" m @@ -601,13 +605,13 @@ EDoNothing src/Dodge/Data/Item/HeldUse.hs 30;" C EFuelSource src/Dodge/Data/Item/HeldUse.hs 38;" C EHeadLamp src/Dodge/Data/Item/HeldUse.hs 34;" C ELECTRICAL src/Dodge/Data/Damage/Type.hs 20;" C -ELEPHANTGUN src/Dodge/Data/Item/Combine.hs 149;" C +ELEPHANTGUN src/Dodge/Data/Item/Combine.hs 146;" C EMagShield src/Dodge/Data/Item/HeldUse.hs 32;" C ENTERREMENT src/Dodge/Data/Damage/Type.hs 24;" C EQUIP src/Dodge/Data/Item/Combine.hs 18;" C EWristShield src/Dodge/Data/Item/HeldUse.hs 33;" C EXPLOSIVE src/Dodge/Data/Damage/Type.hs 21;" C -EXPLOSIVES src/Dodge/Data/Item/Combine.hs 100;" C +EXPLOSIVES src/Dodge/Data/Item/Combine.hs 97;" C Ears src/Dodge/Data/Creature/Perception.hs 47;" C East src/Dodge/Data/CardinalPoint.hs 5;" C EdgeObstacle src/Dodge/Data/PathGraph.hs 48;" t @@ -635,7 +639,7 @@ EonWristShield src/Dodge/Data/Item/HeldUse.hs 36;" C EquipCounter src/Dodge/Data/Item/Use/Equipment.hs 31;" C EquipEffect src/Dodge/Data/Item/Use/Equipment.hs 17;" t EquipID src/Dodge/Data/Item/Use/Equipment.hs 30;" C -EquipItemType src/Dodge/Data/Item/Combine.hs 103;" t +EquipItemType src/Dodge/Data/Item/Combine.hs 100;" t EquipOptions src/Dodge/Data/RightButtonOptions.hs 15;" C EquipParams src/Dodge/Data/Item/Use/Equipment.hs 28;" t EquipPosition src/Dodge/Data/Equipment/Misc.hs 20;" t @@ -664,20 +668,19 @@ ExtraEffect src/Dodge/Item/Weapon/ExtraEffect.hs 6;" m Eyes src/Dodge/Data/Creature/Perception.hs 41;" C FBO src/Shader/Data.hs 57;" t FLAKCRAFT src/Dodge/Data/Item/Combine.hs 70;" C -FLAMESHIELD src/Dodge/Data/Item/Combine.hs 105;" C -FLAMESPITTER src/Dodge/Data/Item/Combine.hs 153;" C -FLAMETHROWER src/Dodge/Data/Item/Combine.hs 154;" C -FLAMETORRENT src/Dodge/Data/Item/Combine.hs 155;" C -FLAMEWALL src/Dodge/Data/Item/Combine.hs 156;" C +FLAMESHIELD src/Dodge/Data/Item/Combine.hs 102;" C +FLAMESPITTER src/Dodge/Data/Item/Combine.hs 150;" C +FLAMETHROWER src/Dodge/Data/Item/Combine.hs 151;" C +FLAMETORRENT src/Dodge/Data/Item/Combine.hs 152;" C +FLAMEWALL src/Dodge/Data/Item/Combine.hs 153;" C FLAMING src/Dodge/Data/Damage/Type.hs 18;" C FLASHMODULE src/Dodge/Data/Item/Combine.hs 68;" C -FLATSHIELD src/Dodge/Data/Item/Combine.hs 170;" C -FORCEFIELDGUN src/Dodge/Data/Item/Combine.hs 167;" C +FLATSHIELD src/Dodge/Data/Item/Combine.hs 166;" C FRAGCRAFT src/Dodge/Data/Item/Combine.hs 71;" C FRAGMODULE src/Dodge/Data/Item/Combine.hs 67;" C -FRONTARMOUR src/Dodge/Data/Item/Combine.hs 106;" C +FRONTARMOUR src/Dodge/Data/Item/Combine.hs 103;" C FUELCELL src/Dodge/Data/Item/Combine.hs 65;" C -FUELPACK src/Dodge/Data/Item/Combine.hs 116;" C +FUELPACK src/Dodge/Data/Item/Combine.hs 113;" C FacilityType src/Dodge/Data/Scenario.hs 55;" t Faction src/Dodge/Data/Creature/State.hs 34;" t Factory src/Dodge/Data/Scenario.hs 56;" C @@ -698,7 +701,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 129;" t +FlareType src/Dodge/Data/Item/Use.hs 137;" t Flash src/Dodge/WorldEvent/Flash.hs 11;" m FlashBall src/Dodge/Data/Bullet.hs 33;" C FlatFaces src/Shape/Data.hs 17;" C @@ -750,8 +753,8 @@ GASINJECTOR src/Dodge/Data/Item/Combine.hs 69;" C GEqC src/SameConstr.hs 20;" c GLASSSHARD src/Dodge/Data/Item/Combine.hs 38;" C GLHelp src/GLHelp.hs 1;" m -GRAPECANNON src/Dodge/Data/Item/Combine.hs 142;" C -GRAVITYMODULE src/Dodge/Data/Item/Combine.hs 77;" C +GRAPECANNON src/Dodge/Data/Item/Combine.hs 139;" C +GRAVITYMODULE src/Dodge/Data/Item/Combine.hs 75;" C GREEN src/Color/Data.hs 16;" C GameOverOptions src/Dodge/Data/Universe.hs 68;" C GameRoom src/Dodge/GameRoom.hs 15;" t @@ -761,8 +764,8 @@ GasAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 45;" C GasCloud src/Dodge/Data/Cloud.hs 31;" C 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 115;" C -GasSprayParams src/Dodge/Data/Item/Use.hs 81;" C +GasParams src/Dodge/Data/Item/Use.hs 123;" C +GasSprayParams src/Dodge/Data/Item/Use.hs 89;" C GenCr src/Dodge/Data/Creature/State.hs 31;" C GenFloat src/Dodge/Data/GenFloat.hs 11;" t GenFloat src/Dodge/Data/GenFloat.hs 5;" m @@ -803,12 +806,12 @@ Gust src/Dodge/Data/Gust.hs 6;" m GymSS src/Dodge/Data/Scenario.hs 104;" C HARDDRIVE src/Dodge/Data/Item/Combine.hs 50;" C HARDWARE src/Dodge/Data/Item/Combine.hs 30;" C -HAT src/Dodge/Data/Item/Combine.hs 110;" C -HEADLAMP src/Dodge/Data/Item/Combine.hs 111;" C +HAT src/Dodge/Data/Item/Combine.hs 107;" C +HEADLAMP src/Dodge/Data/Item/Combine.hs 108;" C HEATSENSOR src/Dodge/Data/Item/Combine.hs 60;" C HELD src/Dodge/Data/Item/Combine.hs 16;" C -HELDDETECTOR src/Dodge/Data/Item/Combine.hs 168;" C -HOMINGMODULE src/Dodge/Data/Item/Combine.hs 85;" C +HELDDETECTOR src/Dodge/Data/Item/Combine.hs 164;" C +HOMINGMODULE src/Dodge/Data/Item/Combine.hs 82;" C HOSE src/Dodge/Data/Item/Combine.hs 32;" C HUD src/Dodge/Data/HUD.hs 35;" t HUD src/Dodge/Data/HUD.hs 6;" m @@ -826,12 +829,12 @@ 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 133;" C +HeavySmokeFlare src/Dodge/Data/Item/Use.hs 141;" C Held src/Dodge/Item/Held.hs 1;" m HeldDelay src/Dodge/Data/Item/HeldDelay.hs 6;" m -HeldItemType src/Dodge/Data/Item/Combine.hs 134;" t +HeldItemType src/Dodge/Data/Item/Combine.hs 131;" t HeldOffset src/Dodge/Item/HeldOffset.hs 1;" m -HeldParams src/Dodge/Data/Item/Use.hs 79;" t +HeldParams src/Dodge/Data/Item/Use.hs 87;" t HeldScroll src/Dodge/HeldScroll.hs 1;" m HeldUse src/Dodge/Data/Item/HeldUse.hs 6;" m HeldUse src/Dodge/HeldUse.hs 3;" m @@ -859,9 +862,9 @@ Humanoid src/Dodge/Data/Creature/Misc.hs 65;" C Humanoid src/Dodge/Humanoid.hs 1;" m HumanoidAI src/Dodge/Data/Creature/Misc.hs 48;" t ILink src/Dodge/Data/ComposedItem.hs 45;" C -INVISIBILITYEQUIPMENT src/Dodge/Data/Item/Combine.hs 108;" C +INVISIBILITYEQUIPMENT src/Dodge/Data/Item/Combine.hs 105;" C IRONBAR src/Dodge/Data/Item/Combine.hs 57;" C -ITEMDETECTOR src/Dodge/Data/Item/Combine.hs 175;" C +ITEMDETECTOR src/Dodge/Data/Item/Combine.hs 171;" C ImmediateEffect src/Loop/Data.hs 8;" C Importance src/Shape/Data.hs 34;" t Important src/Shape/Data.hs 35;" C @@ -933,7 +936,7 @@ ItEffect src/Dodge/ItEffect.hs 1;" m ItFloorEffect src/Dodge/Data/Item/Effect.hs 31;" t ItID src/Dodge/Data/Item.hs 29;" t ItInvEffect src/Dodge/Data/Item/Effect.hs 19;" t -ItZoom src/Dodge/Data/Item/Use.hs 181;" t +ItZoom src/Dodge/Data/Item/Use.hs 188;" t Item src/Dodge/Data/Item.hs 31;" t Item src/Dodge/Data/Item.hs 4;" m Item src/Dodge/Default/Item.hs 1;" m @@ -949,24 +952,24 @@ ItemStructuralFunction src/Dodge/Data/ComposedItem.hs 28;" t ItemType src/Dodge/Data/Item/Combine.hs 15;" t ItemUse src/Dodge/Data/Item/Use.hs 36;" t ItmInt src/Dodge/Data/Item/Location.hs 24;" t -JETPACK src/Dodge/Data/Item/Combine.hs 115;" C +JETPACK src/Dodge/Data/Item/Combine.hs 112;" C JGK src/Control/Foldl/JGK.hs 1;" m -JUMPLEGS src/Dodge/Data/Item/Combine.hs 114;" C +JUMPLEGS src/Dodge/Data/Item/Combine.hs 111;" C JoinClust src/Dodge/Combine/Graph.hs 18;" C Just' src/MaybeHelp.hs 13;" C JustStartedPlaying src/Sound/Data.hs 25;" C Justify src/Justify.hs 1;" m -KEYCARD src/Dodge/Data/Item/Combine.hs 171;" C +KEYCARD src/Dodge/Data/Item/Combine.hs 167;" C Kill src/Dodge/Data/ActionPlan.hs 198;" C LASERING src/Dodge/Data/Damage/Type.hs 19;" C -LASGUN src/Dodge/Data/Item/Combine.hs 160;" C -LAUNCHER src/Dodge/Data/Item/Combine.hs 162;" C -LAUNCHERX src/Dodge/Data/Item/Combine.hs 163;" C +LASGUN src/Dodge/Data/Item/Combine.hs 157;" C +LAUNCHER src/Dodge/Data/Item/Combine.hs 159;" C +LAUNCHERX src/Dodge/Data/Item/Combine.hs 160;" C LBlink src/Dodge/Data/Item/HeldUse.hs 53;" C LBoost src/Dodge/Data/Item/HeldUse.hs 55;" C LDT src/Dodge/Data/DoubleTree.hs 39;" C LDTBottomNode src/Dodge/Data/DoubleTree.hs 27;" C -LDTComb src/Dodge/Item/Grammar.hs 83;" t +LDTComb src/Dodge/Item/Grammar.hs 84;" 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 @@ -1001,7 +1004,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 134;" C +LasGunFlare src/Dodge/Data/Item/Use.hs 142;" 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 @@ -1020,7 +1023,7 @@ Left src/Dodge/Item/Left.hs 1;" m LeftButton src/Dodge/Terminal/LeftButton.hs 1;" m LeftConsumption src/Dodge/Data/Item/Use/Consumption.hs 26;" t LeftForward src/Dodge/Data/Creature/Stance.hs 32;" C -LeftItemType src/Dodge/Data/Item/Combine.hs 123;" t +LeftItemType src/Dodge/Data/Item/Combine.hs 120;" t LensHelp src/LensHelp.hs 1;" m Lethargic src/Dodge/Data/Creature/Perception.hs 55;" C LevelGen src/Dodge/LevelGen.hs 1;" m @@ -1078,18 +1081,18 @@ LtAutoCrit src/Dodge/Creature/LtAutoCrit.hs 1;" m Lure src/Dodge/Data/ActionPlan.hs 179;" C Luse src/Dodge/Data/Item/HeldUse.hs 47;" t Luse src/Dodge/Luse.hs 1;" m -MACHINEPISTOL src/Dodge/Data/Item/Combine.hs 137;" C +MACHINEPISTOL src/Dodge/Data/Item/Combine.hs 134;" C MAGENTA src/Color/Data.hs 20;" C MAGNET src/Dodge/Data/Item/Combine.hs 45;" C -MAGSHIELD src/Dodge/Data/Item/Combine.hs 104;" C +MAGSHIELD src/Dodge/Data/Item/Combine.hs 101;" C MBranch src/Dodge/Tree/Compose/Data.hs 10;" C MCrAc src/Dodge/Data/CreatureEffect.hs 45;" t MCrNoAction src/Dodge/Data/CreatureEffect.hs 45;" C -MEDKIT src/Dodge/Data/Item/Combine.hs 99;" C +MEDKIT src/Dodge/Data/Item/Combine.hs 96;" C MICROCHIP src/Dodge/Data/Item/Combine.hs 49;" C MICROPHONE src/Dodge/Data/Item/Combine.hs 61;" C MINIDISPLAY src/Dodge/Data/Item/Combine.hs 54;" C -MINIGUNX src/Dodge/Data/Item/Combine.hs 143;" C +MINIGUNX src/Dodge/Data/Item/Combine.hs 140;" C MODBlockedString src/Dodge/Data/Universe.hs 96;" C MODString src/Dodge/Data/Universe.hs 95;" C MODStringOption src/Dodge/Data/Universe.hs 97;" C @@ -1160,7 +1163,7 @@ Metapysics src/Dodge/Data/Scenario.hs 17;" t Military src/Dodge/Data/Scenario.hs 45;" C Mine src/Dodge/Data/Scenario.hs 64;" C MiniGunAI src/Dodge/Data/Creature/Misc.hs 59;" C -MiniGunFlare src/Dodge/Data/Item/Use.hs 132;" C +MiniGunFlare src/Dodge/Data/Item/Use.hs 140;" 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 @@ -1189,18 +1192,17 @@ 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 155;" t -MuzzleDetector src/Dodge/Data/Item/Use.hs 152;" C -MuzzleEffect src/Dodge/Data/Item/Use.hs 138;" t +Muzzle src/Dodge/Data/Item/Use.hs 162;" t +MuzzleDetector src/Dodge/Data/Item/Use.hs 159;" C +MuzzleEffect src/Dodge/Data/Item/Use.hs 146;" t MuzzleEffect src/Dodge/Data/MuzzleEffect.hs 5;" m -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 +MuzzleLaser src/Dodge/Data/Item/Use.hs 148;" C +MuzzleLauncher src/Dodge/Data/Item/Use.hs 151;" C +MuzzleNozzle src/Dodge/Data/Item/Use.hs 152;" C +MuzzleShatter src/Dodge/Data/Item/Use.hs 158;" C +MuzzleShootBullet src/Dodge/Data/Item/Use.hs 147;" C +MuzzleTesla src/Dodge/Data/Item/Use.hs 149;" C +MuzzleTractor src/Dodge/Data/Item/Use.hs 150;" C MvForward src/Dodge/Data/ActionPlan.hs 35;" C MvTurnToward src/Dodge/Data/ActionPlan.hs 34;" C MvWalking src/Dodge/Data/Creature/Misc.hs 39;" C @@ -1316,7 +1318,7 @@ OnSpecial src/Dodge/Data/Equipment/Misc.hs 27;" 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 178;" C +OneHand src/Dodge/Data/Item/Use.hs 185;" C OnwardCluster src/Dodge/Data/RoomCluster.hs 14;" C OnwardList src/Dodge/Annotation/Data.hs 15;" C Opacity src/Dodge/Data/Wall.hs 38;" t @@ -1340,14 +1342,14 @@ P2ImpNo src/Dodge/Data/CreatureEffect.hs 28;" C P2NoAction src/Dodge/Data/CreatureEffect.hs 53;" C PIERCING src/Dodge/Data/Damage/Type.hs 12;" C PIPE src/Dodge/Data/Item/Combine.hs 28;" C -PISTOL src/Dodge/Data/Item/Combine.hs 136;" C +PISTOL src/Dodge/Data/Item/Combine.hs 133;" C PLANK src/Dodge/Data/Item/Combine.hs 37;" C PLATE src/Dodge/Data/Item/Combine.hs 47;" C PLUS src/Dodge/Data/GenParams.hs 20;" C POISONDAM src/Dodge/Data/Damage/Type.hs 23;" C -POISONSPRAYER src/Dodge/Data/Item/Combine.hs 164;" C +POISONSPRAYER src/Dodge/Data/Item/Combine.hs 161;" C PORTABLEFUSION src/Dodge/Data/Item/Combine.hs 66;" C -POWERLEGS src/Dodge/Data/Item/Combine.hs 112;" C +POWERLEGS src/Dodge/Data/Item/Combine.hs 109;" C PPLevelReset src/Dodge/Data/PressPlate.hs 16;" C PRISM src/Dodge/Data/Item/Combine.hs 43;" C PS src/Dodge/Data/GenWorld.hs 64;" C @@ -1395,7 +1397,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 131;" C +PistolFlare src/Dodge/Data/Item/Use.hs 139;" C PlaceSpot src/Dodge/Placement/PlaceSpot.hs 4;" m Placement src/Dodge/Data/GenWorld.hs 77;" t Placement src/Dodge/Placement.hs 1;" m @@ -1448,7 +1450,7 @@ Projectile src/Dodge/Projectile.hs 1;" m ProjectileAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 40;" C 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 114;" C +ProjectileParams src/Dodge/Data/Item/Use.hs 122;" C ProjectileUpdate src/Dodge/Data/Item/Use/Consumption/Ammo.hs 29;" t Prop src/Dodge/Data/Prop.hs 18;" t Prop src/Dodge/Data/Prop.hs 6;" m @@ -1514,10 +1516,10 @@ QuicksaveSlot src/Dodge/Data/SaveSlot.hs 10;" C RAM src/Dodge/Data/Item/Combine.hs 51;" C RBList src/Dodge/Inventory/RBList.hs 1;" m RED src/Color/Data.hs 15;" C -REMOTESCREEN src/Dodge/Data/Item/Combine.hs 84;" C -REWINDWATCH src/Dodge/Data/Item/Combine.hs 126;" C +REMOTESCREEN src/Dodge/Data/Item/Combine.hs 81;" C +REWINDWATCH src/Dodge/Data/Item/Combine.hs 123;" C RGBA src/Color/Data.hs 31;" t -RIFLE src/Dodge/Data/Item/Combine.hs 145;" C +RIFLE src/Dodge/Data/Item/Combine.hs 142;" C ROSE src/Color/Data.hs 21;" C RPLinkStatus src/Dodge/Data/Room.hs 55;" t RProps src/Dodge/Layout/Generate.hs 13;" C @@ -1607,19 +1609,19 @@ RoundedFaces src/Shape/Data.hs 18;" C RunPast src/Dodge/Room/RunPast.hs 1;" m RunningSideEffect src/Dodge/Data/Universe.hs 65;" C SCRAPMETAL src/Dodge/Data/Item/Combine.hs 39;" C -SCROLLWATCH src/Dodge/Data/Item/Combine.hs 127;" C -SHATTERGUN src/Dodge/Data/Item/Combine.hs 166;" C +SCROLLWATCH src/Dodge/Data/Item/Combine.hs 124;" C +SHATTERGUN src/Dodge/Data/Item/Combine.hs 163;" C SHATTERING src/Dodge/Data/Damage/Type.hs 17;" C -SHELLMAG src/Dodge/Data/Item/Combine.hs 93;" C -SHRINKER src/Dodge/Data/Item/Combine.hs 130;" C -SIZEMODULE src/Dodge/Data/Item/Combine.hs 76;" C -SMG src/Dodge/Data/Item/Combine.hs 139;" C -SNIPERRIFLE src/Dodge/Data/Item/Combine.hs 152;" C +SHELLMAG src/Dodge/Data/Item/Combine.hs 90;" C +SHRINKER src/Dodge/Data/Item/Combine.hs 127;" C +SIZEMODULE src/Dodge/Data/Item/Combine.hs 74;" C +SMG src/Dodge/Data/Item/Combine.hs 136;" C +SNIPERRIFLE src/Dodge/Data/Item/Combine.hs 149;" C SOUNDSENSOR src/Dodge/Data/Item/Combine.hs 59;" C -SPARKGUN src/Dodge/Data/Item/Combine.hs 158;" C +SPARKGUN src/Dodge/Data/Item/Combine.hs 155;" C SPARKING src/Dodge/Data/Damage/Type.hs 15;" C -SPAWNER src/Dodge/Data/Item/Combine.hs 131;" C -SPEEDLEGS src/Dodge/Data/Item/Combine.hs 113;" C +SPAWNER src/Dodge/Data/Item/Combine.hs 128;" C +SPEEDLEGS src/Dodge/Data/Item/Combine.hs 110;" C SPRING src/Dodge/Data/Item/Combine.hs 31;" C SPic src/ShapePicture/Data.hs 7;" t SPic src/Dodge/Item/Draw/SPic.hs 3;" m @@ -1627,7 +1629,7 @@ SQUARE src/Dodge/Data/GenParams.hs 20;" C SSSExtra src/Dodge/Data/SelectionList.hs 44;" t ST src/Dodge/Tree/Compose/Data.hs 12;" C STEELDRUM src/Dodge/Data/Item/Combine.hs 36;" C -STOPWATCH src/Dodge/Data/Item/Combine.hs 125;" C +STOPWATCH src/Dodge/Data/Item/Combine.hs 122;" C SameConstr src/SameConstr.hs 5;" m Save src/Dodge/Save.hs 1;" m SaveSlot src/Dodge/Data/SaveSlot.hs 9;" t @@ -1809,20 +1811,20 @@ SwitchToItem src/Dodge/Data/ActionPlan.hs 38;" C TAPE src/Dodge/Data/Item/Combine.hs 33;" C TARGETING src/Dodge/Data/Item/Combine.hs 23;" C TARGETLASER src/Dodge/Data/Item/Targeting.hs 12;" C -TELEPORTMODULE src/Dodge/Data/Item/Combine.hs 74;" C -TESLAGUN src/Dodge/Data/Item/Combine.hs 159;" C +TELEPORTMODULE src/Dodge/Data/Item/Combine.hs 72;" C +TESLAGUN src/Dodge/Data/Item/Combine.hs 156;" C THERMOMETER src/Dodge/Data/Item/Combine.hs 62;" C THREELINES src/Dodge/Data/GenParams.hs 20;" C -TIMEMODULE src/Dodge/Data/Item/Combine.hs 75;" C +TIMEMODULE src/Dodge/Data/Item/Combine.hs 73;" C TIN src/Dodge/Data/Item/Combine.hs 35;" C -TINMAG src/Dodge/Data/Item/Combine.hs 90;" C +TINMAG src/Dodge/Data/Item/Combine.hs 87;" C TLS src/Dodge/Data/LightSource.hs 42;" C TLSFade src/Dodge/Data/LightSource.hs 18;" C TLSIntensity src/Dodge/Data/LightSource.hs 16;" t TLSUpdate src/Dodge/Data/LightSource.hs 21;" t TO src/Shader/Data.hs 59;" t -TORCH src/Dodge/Data/Item/Combine.hs 169;" C -TRACTORGUN src/Dodge/Data/Item/Combine.hs 161;" C +TORCH src/Dodge/Data/Item/Combine.hs 165;" C +TRACTORGUN src/Dodge/Data/Item/Combine.hs 158;" C TRANSFORMER src/Dodge/Data/Item/Combine.hs 42;" C TRANSMITTER src/Dodge/Data/Item/Combine.hs 48;" C TSbackspace src/Dodge/Data/Input.hs 38;" C @@ -1890,7 +1892,7 @@ TeslaArc src/Dodge/Data/TeslaArc.hs 15;" t TeslaArc src/Dodge/Data/TeslaArc.hs 6;" m TeslaBall src/Dodge/Data/Bullet.hs 32;" C TeslaBeamCombine src/Dodge/Data/Beam.hs 41;" C -TeslaGunFlare src/Dodge/Data/Item/Use.hs 135;" C +TeslaGunFlare src/Dodge/Data/Item/Use.hs 143;" C Test src/Dodge/Creature/Test.hs 8;" m Test src/Dodge/Event/Test.hs 1;" m Test src/Picture/Test.hs 1;" m @@ -1960,9 +1962,9 @@ Turret src/Dodge/Data/Machine.hs 57;" t Turret src/Dodge/Placement/Instance/Turret.hs 1;" m TurretInt src/Dodge/Data/Item/Location.hs 20;" t TwistGoal src/Dodge/Data/Scenario.hs 15;" 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 +TwoHandFlat src/Dodge/Data/Item/Use.hs 184;" C +TwoHandOver src/Dodge/Data/Item/Use.hs 183;" C +TwoHandUnder src/Dodge/Data/Item/Use.hs 182;" C Type src/Dodge/Data/Damage/Type.hs 6;" m Typical src/Shape/Data.hs 36;" C UncomposableIsolateSF src/Dodge/Data/ComposedItem.hs 35;" C @@ -1996,6 +1998,7 @@ 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 UseAmmoMag src/Dodge/Data/Item/Use.hs 60;" C +UseAttach src/Dodge/Data/Item/Use.hs 58;" C UseConsume src/Dodge/Data/Item/Use.hs 52;" C UseDelay src/Dodge/Data/Item/HeldDelay.hs 13;" t UseHeld src/Dodge/Data/Item/Use.hs 37;" C @@ -2014,7 +2017,7 @@ VAO src/Shader/Data.hs 64;" t VBO src/Shader/Data.hs 81;" t VF src/Polyhedra/Data.hs 21;" t VIOLET src/Color/Data.hs 22;" C -VOLLEYGUN src/Dodge/Data/Item/Combine.hs 144;" C +VOLLEYGUN src/Dodge/Data/Item/Combine.hs 141;" C VariableSelectionWidth src/Dodge/Data/SelectionList.hs 68;" C Vector src/Geometry/Vector.hs 3;" m Vector3D src/Geometry/Vector3D.hs 2;" m @@ -2030,11 +2033,11 @@ Vision src/Dodge/Data/Creature/Perception.hs 41;" t Vocalization src/Dodge/Data/Creature/Misc.hs 27;" t Vocalization src/Dodge/Creature/Vocalization.hs 1;" m Volition src/Dodge/Creature/Volition.hs 2;" m -WALLDETECTOR src/Dodge/Data/Item/Combine.hs 177;" C +WALLDETECTOR src/Dodge/Data/Item/Combine.hs 173;" C WASD src/Dodge/WASD.hs 1;" m WHITE src/Color/Data.hs 27;" C WIRE src/Dodge/Data/Item/Combine.hs 64;" C -WRISTARMOUR src/Dodge/Data/Item/Combine.hs 107;" C +WRISTARMOUR src/Dodge/Data/Item/Combine.hs 104;" C WaitThen src/Dodge/Data/ActionPlan.hs 103;" C WalkCycle src/Dodge/Creature/State/WalkCycle.hs 1;" m Walking src/Dodge/Data/Creature/Stance.hs 21;" C @@ -2120,7 +2123,7 @@ YELLOW src/Color/Data.hs 18;" C You src/Dodge/Base/You.hs 1;" m YourAI src/Dodge/Data/Creature/Misc.hs 49;" C YourControl src/Dodge/Creature/YourControl.hs 1;" m -ZOOMSCOPE src/Dodge/Data/Item/Combine.hs 82;" C +ZOOMSCOPE src/Dodge/Data/Item/Combine.hs 79;" C ZombieFaction src/Dodge/Data/Creature/State.hs 36;" C Zone src/Dodge/Wall/Zone.hs 1;" m Zone src/Geometry/Zone.hs 1;" m @@ -2128,13 +2131,13 @@ Zoning src/Dodge/Zoning.hs 1;" m __Just' src/MaybeHelp.hs 13;" f _actAction src/Dodge/Data/ActionPlan.hs 81;" f _actLabel src/Dodge/Data/ActionPlan.hs 80;" f -_aimHandlePos src/Dodge/Data/Item/Use.hs 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 +_aimHandlePos src/Dodge/Data/Item/Use.hs 132;" f +_aimMuzzles src/Dodge/Data/Item/Use.hs 133;" f +_aimRange src/Dodge/Data/Item/Use.hs 129;" f +_aimStance src/Dodge/Data/Item/Use.hs 131;" f +_aimTurnSpeed src/Dodge/Data/Item/Use.hs 128;" f +_aimWeight src/Dodge/Data/Item/Use.hs 127;" f +_aimZoom src/Dodge/Data/Item/Use.hs 130;" 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 @@ -2149,12 +2152,14 @@ _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 113;" f -_ampCreateGas src/Dodge/Data/Item/Use.hs 115;" f -_ampPayload src/Dodge/Data/Item/Use.hs 114;" f +_ampBullet src/Dodge/Data/Item/Use.hs 121;" f +_ampCreateGas src/Dodge/Data/Item/Use.hs 123;" f +_ampPayload src/Dodge/Data/Item/Use.hs 122;" f _apAction src/Dodge/Data/ActionPlan.hs 20;" f _apGoal src/Dodge/Data/ActionPlan.hs 22;" f _apImpulse src/Dodge/Data/ActionPlan.hs 19;" f +_apItEffect src/Dodge/Data/Item/Use.hs 83;" f +_apLinkedProjectile src/Dodge/Data/Item/Use.hs 81;" f _apStrategy src/Dodge/Data/ActionPlan.hs 21;" f _arLoaded src/Dodge/Data/Item/Use/Consumption.hs 28;" f _arMax src/Dodge/Data/Item/Use/Consumption.hs 29;" f @@ -2168,7 +2173,6 @@ _argType src/Dodge/Data/Terminal.hs 95;" f _asDir src/Dodge/Data/ArcStep.hs 16;" f _asObject src/Dodge/Data/ArcStep.hs 17;" f _asPos src/Dodge/Data/ArcStep.hs 15;" f -_atLinkedProjectile src/Dodge/Data/Item/Use.hs 59;" f _auDist src/Dodge/Data/Creature/Perception.hs 48;" f _barrelShader src/Data/Preload/Render.hs 23;" f _barrelType src/Dodge/Data/Creature/Misc.hs 71;" f @@ -2233,9 +2237,9 @@ _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 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 95;" f +_bulGunSound src/Dodge/Data/Item/Use.hs 102;" f +_bulGunSound src/Dodge/Data/Item/Use.hs 112;" 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 @@ -2513,7 +2517,7 @@ _fullscreenShader src/Data/Preload/Render.hs 20;" f _futureWorlds src/Dodge/Data/World.hs 65;" f _futureWorlds src/Dodge/Data/World.hs 71;" f _gameplay_rotate_to_wall src/Dodge/Data/Config.hs 55;" f -_gasCreation src/Dodge/Data/Item/Use.hs 82;" f +_gasCreation src/Dodge/Data/Item/Use.hs 90;" f _genPlacements src/Dodge/Data/GenWorld.hs 26;" f _genRooms src/Dodge/Data/GenWorld.hs 27;" f _getAttentiveTo src/Dodge/Data/Creature/Perception.hs 61;" f @@ -2607,9 +2611,9 @@ _itParams src/Dodge/Data/Item.hs 40;" f _itType src/Dodge/Data/Item.hs 33;" f _itUse src/Dodge/Data/Item.hs 32;" f _itemLocations src/Dodge/Data/LWorld.hs 101;" 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 +_izFac src/Dodge/Data/Item/Use.hs 191;" f +_izMax src/Dodge/Data/Item/Use.hs 189;" f +_izMin src/Dodge/Data/Item/Use.hs 190;" 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 @@ -2719,18 +2723,18 @@ _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 98;" f +_muzVel src/Dodge/Data/Item/Use.hs 106;" 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 97;" 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 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 +_mzAmmoSlot src/Dodge/Data/Item/Use.hs 166;" f +_mzEffect src/Dodge/Data/Item/Use.hs 168;" f +_mzFlareType src/Dodge/Data/Item/Use.hs 167;" f +_mzInaccuracy src/Dodge/Data/Item/Use.hs 165;" f +_mzPos src/Dodge/Data/Item/Use.hs 163;" f +_mzRot src/Dodge/Data/Item/Use.hs 164;" f _newArcStep src/Dodge/Data/Item/Params.hs 25;" f _nodeMetaTree src/Dodge/Tree/Compose/Data.hs 9;" f _nodeTree src/Dodge/Tree/Compose/Data.hs 9;" f @@ -2738,10 +2742,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 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 +_nzCurrentWalkAngle src/Dodge/Data/Item/Use.hs 155;" f +_nzMaxWalkAngle src/Dodge/Data/Item/Use.hs 154;" f +_nzPressure src/Dodge/Data/Item/Use.hs 153;" f +_nzWalkSpeed src/Dodge/Data/Item/Use.hs 156;" 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 @@ -2868,8 +2872,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 85;" f -_randomOffset src/Dodge/Data/Item/Use.hs 102;" f +_randomOffset src/Dodge/Data/Item/Use.hs 93;" f +_randomOffset src/Dodge/Data/Item/Use.hs 110;" f _rateMax src/Dodge/Data/Item/HeldDelay.hs 16;" f _rateTime src/Dodge/Data/Item/HeldDelay.hs 17;" f _rbColor src/Dodge/Data/RadarBlip.hs 15;" f @@ -2879,13 +2883,13 @@ _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 83;" f -_recoil src/Dodge/Data/Item/Use.hs 100;" f +_recoil src/Dodge/Data/Item/Use.hs 91;" f +_recoil src/Dodge/Data/Item/Use.hs 108;" 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 99;" f +_rifling src/Dodge/Data/Item/Use.hs 107;" 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 @@ -2990,8 +2994,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 86;" f -_sidePush src/Dodge/Data/Item/Use.hs 103;" f +_sidePush src/Dodge/Data/Item/Use.hs 94;" f +_sidePush src/Dodge/Data/Item/Use.hs 111;" 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 @@ -3116,8 +3120,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 84;" f -_torqueAfter src/Dodge/Data/Item/Use.hs 101;" f +_torqueAfter src/Dodge/Data/Item/Use.hs 92;" f +_torqueAfter src/Dodge/Data/Item/Use.hs 109;" f _tractorBeams src/Dodge/Data/LWorld.hs 122;" f _trieChildren src/SimpleTrie.hs 7;" f _trieMVal src/SimpleTrie.hs 6;" f @@ -3131,6 +3135,7 @@ _tuFireTime src/Dodge/Data/Machine.hs 60;" f _tuTurnSpeed src/Dodge/Data/Machine.hs 59;" f _tuWeapon src/Dodge/Data/Machine.hs 58;" f _turnToPoint src/Dodge/Data/ActionPlan.hs 92;" f +_uaParams src/Dodge/Data/Item/Use.hs 59;" f _unCombEdge src/Dodge/Combine/Graph.hs 28;" f _unCombNode src/Dodge/Combine/Graph.hs 21;" f _unFBO src/Shader/Data.hs 57;" f @@ -3195,10 +3200,10 @@ _walls src/Dodge/Data/LWorld.hs 123;" f _warmMax src/Dodge/Data/Item/HeldDelay.hs 27;" f _warmSound src/Dodge/Data/Item/HeldDelay.hs 28;" f _warmTime src/Dodge/Data/Item/HeldDelay.hs 26;" f -_weaponInvLock src/Dodge/Data/Item/Use.hs 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 +_weaponInvLock src/Dodge/Data/Item/Use.hs 98;" f +_weaponInvLock src/Dodge/Data/Item/Use.hs 115;" f +_weaponRepeat src/Dodge/Data/Item/Use.hs 99;" f +_weaponRepeat src/Dodge/Data/Item/Use.hs 116;" f _windowPosX src/Dodge/Data/Config.hs 53;" f _windowPosY src/Dodge/Data/Config.hs 54;" f _windowShader src/Data/Preload/Render.hs 19;" f @@ -3229,9 +3234,9 @@ _wpMaxCharge src/Dodge/Data/Item/Use/Consumption.hs 34;" 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 -_xNum src/Dodge/Data/Item/Combine.hs 135;" f -_xNum src/Dodge/Data/Item/Combine.hs 142;" f -_xNum src/Dodge/Data/Item/Combine.hs 163;" f +_xNum src/Dodge/Data/Item/Combine.hs 132;" f +_xNum src/Dodge/Data/Item/Combine.hs 139;" f +_xNum src/Dodge/Data/Item/Combine.hs 160;" f aDroneWithItemParams src/Dodge/Item/Weapon/Drone.hs 30;" f aFlame src/Dodge/Gas.hs 18;" f aFlameParticle src/Dodge/Flame.hs 22;" f @@ -3359,7 +3364,7 @@ argumentHelp src/Dodge/Terminal.hs 149;" f armourChaseCrit src/Dodge/Creature/ArmourChase.hs 38;" f armouredChasers src/Dodge/Room/Boss.hs 62;" f armouredCorridor src/Dodge/Room/RoadBlock.hs 20;" f -arms src/Dodge/Creature/Picture.hs 103;" f +arms src/Dodge/Creature/Picture.hs 72;" f arrow src/Picture/Composite.hs 19;" f arrowPath src/Picture/Composite.hs 8;" f assignHotkey src/Dodge/Hotkey.hs 26;" f @@ -3376,8 +3381,8 @@ attachOnward src/Dodge/Tree/Compose.hs 95;" f attachOnward' src/Dodge/Tree/Compose.hs 98;" f attachTree src/Dodge/Tree/Compose.hs 38;" f attentionViewPoint src/Dodge/Creature/ReaderUpdate.hs 66;" f -attribSize src/Shader/Compile.hs 353;" f -augmentedHUD src/Dodge/Item/Scope.hs 47;" f +attribSize src/Shader/Compile.hs 306;" f +augmentedHUD src/Dodge/Item/Scope.hs 45;" f autoAmr src/Dodge/Item/Held/Rod.hs 51;" f autoBS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 350;" f autoCrit src/Dodge/Creature/AutoCrit.hs 13;" f @@ -3397,31 +3402,31 @@ backpackCombinations src/Dodge/Combine/Combinations.hs 25;" f backpackShape src/Dodge/Item/Draw/SPic.hs 96;" 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 238;" f +bangConeShape src/Dodge/Item/Draw/SPic.hs 237;" f bangEchoS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 370;" f bangRod src/Dodge/Item/Held/Rod.hs 18;" f bangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 478;" f bangStick src/Dodge/Item/Held/Stick.hs 17;" f barPP src/Dodge/Room/Foreground.hs 236;" f barrel src/Dodge/Creature/Inanimate.hs 17;" f -baseAMRShape src/Dodge/Item/Draw/SPic.hs 348;" f +baseAMRShape src/Dodge/Item/Draw/SPic.hs 347;" f baseBlockPane src/Dodge/Placement/Instance/Wall.hs 86;" f -baseCaneShape src/Dodge/Item/Draw/SPic.hs 258;" f +baseCaneShape src/Dodge/Item/Draw/SPic.hs 257;" 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 261;" f -baseRodShape src/Dodge/Item/Draw/SPic.hs 345;" f -baseSMGShape src/Dodge/Item/Draw/SPic.hs 328;" f -baseShoulder src/Dodge/Creature/Picture.hs 159;" f -baseStickShape src/Dodge/Item/Draw/SPic.hs 235;" f -baseStickShapeX src/Dodge/Item/Draw/SPic.hs 230;" f +basePartiallyComposedItem' src/Dodge/Item/Grammar.hs 33;" f +baseRifleShape src/Dodge/Item/Draw/SPic.hs 260;" f +baseRodShape src/Dodge/Item/Draw/SPic.hs 344;" f +baseSMGShape src/Dodge/Item/Draw/SPic.hs 327;" f +baseShoulder src/Dodge/Creature/Picture.hs 128;" f +baseStickShape src/Dodge/Item/Draw/SPic.hs 234;" f +baseStickShapeX src/Dodge/Item/Draw/SPic.hs 229;" f baseStickSpread src/Dodge/Item/Held/Stick.hs 32;" f basicAttentionUpdate src/Dodge/Creature/Perception.hs 127;" f basicAwarenessUpdate src/Dodge/Creature/Perception.hs 37;" f basicBulDams src/Dodge/Item/Weapon/Bullet.hs 26;" f basicCrPict src/Dodge/Creature/Picture.hs 26;" f -basicCrShape src/Dodge/Creature/Picture.hs 33;" f +basicCrShape src/Dodge/Creature/Picture.hs 31;" f basicDrawBeam src/Dodge/Beam/Draw.hs 11;" f basicItemDisplay src/Dodge/Item/Display.hs 48;" f basicMachineApplyDamage src/Dodge/Machine/Damage.hs 6;" f @@ -3490,10 +3495,10 @@ bufferShaderLayers src/Shader/Bind.hs 36;" f bulletBeltBracer src/Dodge/Item/Equipment.hs 82;" f bulletBeltPack src/Dodge/Item/Equipment.hs 73;" f bulletCombinations src/Dodge/Combine/Graph.hs 34;" f -bulletModule src/Dodge/Item/Scope.hs 35;" f -bulletPayloadModule src/Dodge/Item/Scope.hs 44;" f +bulletModule src/Dodge/Item/Scope.hs 33;" f +bulletPayloadModule src/Dodge/Item/Scope.hs 42;" f bulletSynthesizer src/Dodge/Item/Ammo.hs 100;" f -bulletTargetingModule src/Dodge/Item/Scope.hs 41;" f +bulletTargetingModule src/Dodge/Item/Scope.hs 39;" f bulletWeapons src/Dodge/Combine/Combinations.hs 246;" f burstRifle src/Dodge/Item/Held/Cane.hs 74;" f buzzS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 502;" f @@ -3530,7 +3535,7 @@ chaseCritVocalization src/Dodge/Creature/ChaseCrit.hs 46;" f checkBlockHP src/Dodge/Block.hs 46;" f checkDeath src/Dodge/Creature/State.hs 79;" f checkEndGame src/Dodge/Update.hs 584;" f -checkErrorGL src/Shader/Compile.hs 302;" f +checkErrorGL src/Shader/Compile.hs 255;" f checkFBO src/Framebuffer/Check.hs 6;" f checkGLError src/GLHelp.hs 17;" f checkInvSlotsYou src/Dodge/Inventory/CheckSlots.hs 16;" f @@ -3567,7 +3572,7 @@ cleatLabel src/Dodge/Cleat.hs 30;" f cleatOnward src/Dodge/Cleat.hs 24;" f cleatSide src/Dodge/Cleat.hs 27;" f click1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 414;" f -clickDetector src/Dodge/Item/Held/Utility.hs 53;" f +clickDetector src/Dodge/Item/Held/Utility.hs 37;" f clickGetCreature src/Dodge/Debug.hs 82;" f clipV src/Geometry/Vector.hs 47;" f clipZoom src/Dodge/Update/Camera.hs 219;" f @@ -3623,7 +3628,7 @@ commonPrefix src/Dodge/Debug/Terminal.hs 142;" f compactDraw src/Dodge/LevelGen.hs 91;" f compactDraw' src/Dodge/LevelGen.hs 102;" f compactDrawTree src/Dodge/LevelGen.hs 85;" f -compileAndCheckShader src/Shader/Compile.hs 324;" f +compileAndCheckShader src/Shader/Compile.hs 277;" f composeNode src/Dodge/Tree/Compose.hs 76;" f composeTree src/Dodge/Tree/Compose.hs 46;" f computerBeepingS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 458;" f @@ -3644,7 +3649,7 @@ corDoor src/Dodge/Room/Room.hs 378;" f cornerList src/Preload/Render.hs 194;" f corpseOrGib src/Dodge/Creature/State.hs 99;" f corridor src/Dodge/Room/Corridor.hs 17;" f -corridorBoss src/Dodge/LockAndKey.hs 140;" f +corridorBoss src/Dodge/LockAndKey.hs 133;" f corridorN src/Dodge/Room/Corridor.hs 52;" f corridorWallN src/Dodge/Room/Corridor.hs 71;" f crAdd src/Dodge/Room/RezBox.hs 102;" f @@ -3689,7 +3694,7 @@ createItemYou src/Dodge/Inventory/Add.hs 77;" f createLightMap src/Render.hs 26;" f createNewArc src/Dodge/Tesla/Arc.hs 76;" f createPathGrid src/Dodge/Room/Path.hs 21;" f -createProjectile src/Dodge/HeldUse.hs 477;" f +createProjectile src/Dodge/HeldUse.hs 457;" f createShell src/Dodge/Projectile/Create.hs 19;" f createShieldWall src/Dodge/Euse.hs 134;" f createTorchLightOffset src/Dodge/LightSource/Torch.hs 9;" f @@ -3770,10 +3775,10 @@ dbArgChain src/Dodge/Base.hs 148;" f deZoneIX src/Dodge/Zoning/Base.hs 86;" f deZoneWall src/Dodge/Zoning/Wall.hs 70;" f deadEndRoom src/Dodge/Room/Room.hs 237;" f -deadFeet src/Dodge/Creature/Picture.hs 77;" f -deadRot src/Dodge/Creature/Picture.hs 115;" f -deadScalp src/Dodge/Creature/Picture.hs 112;" f -deadUpperBody src/Dodge/Creature/Picture.hs 156;" f +deadFeet src/Dodge/Creature/Picture.hs 68;" f +deadRot src/Dodge/Creature/Picture.hs 84;" f +deadScalp src/Dodge/Creature/Picture.hs 81;" f +deadUpperBody src/Dodge/Creature/Picture.hs 125;" f debrisSize src/Dodge/Block/Debris.hs 111;" f debugDraw src/Dodge/Debug/Picture.hs 122;" f debugDraw' src/Dodge/Debug/Picture.hs 133;" f @@ -3801,7 +3806,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 244;" f +defSPic src/Dodge/Item/Draw/SPic.hs 243;" f defaultAimMvType src/Dodge/Default/Creature.hs 122;" f defaultAimParams src/Dodge/Default/Item/Use/AimParams.hs 6;" f defaultAimingCrit src/Dodge/Default/Creature.hs 131;" f @@ -3903,11 +3908,11 @@ 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 405;" f +detectorColor src/Dodge/Item/Draw/SPic.hs 404;" 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 -determineProjectileTracking src/Dodge/HeldUse.hs 466;" f +determineProjectileTracking src/Dodge/HeldUse.hs 446;" f diagonalLinesRect src/Dodge/Room/Foreground.hs 52;" f diffAngles src/Geometry.hs 196;" f difference src/Geometry.hs 130;" f @@ -3958,7 +3963,7 @@ doDrawing src/Dodge/Render.hs 35;" f doDrawing' src/Dodge/Render.hs 46;" f doFloatFloat src/Dodge/FloatFunction.hs 5;" f doFloorEffect src/Dodge/ItEffect.hs 21;" f -doGenFloat src/Dodge/HeldUse.hs 403;" f +doGenFloat src/Dodge/HeldUse.hs 402;" f doInPlacements src/Dodge/Layout.hs 92;" f doIndividualPlacements src/Dodge/Layout.hs 117;" f doInputScreenInput src/Dodge/Update/Input/ScreenLayer.hs 25;" f @@ -4047,7 +4052,7 @@ drawDDATest src/Dodge/Debug/Picture.hs 254;" f drawDoorPaths src/Dodge/Debug/Picture.hs 215;" 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 +drawEquipment src/Dodge/Creature/Picture.hs 139;" f drawExamineInventory src/Dodge/Render/HUD.hs 84;" f drawFarWallDetect src/Dodge/Debug/Picture.hs 232;" f drawFlame src/Dodge/Flame/Draw.hs 7;" f @@ -4156,7 +4161,7 @@ eqPosText src/Dodge/Equipment/Text.hs 6;" f equipAllocString src/Dodge/Render/HUD.hs 175;" f equipInfo src/Dodge/Item/Info.hs 107;" f equipItemSPic src/Dodge/Item/Draw/SPic.hs 66;" f -equipPosition src/Dodge/Item/Draw.hs 32;" f +equipPosition src/Dodge/Item/Draw.hs 31;" f equipSiteInfo src/Dodge/Item/Info.hs 225;" f equipSiteToPositions src/Dodge/Inventory/RBList.hs 77;" f equipSpeed src/Dodge/Creature/Impulse/Movement.hs 99;" f @@ -4196,7 +4201,7 @@ fallSmallBounce' src/Dodge/Prop/Moving.hs 33;" f fallSmallBounceDamage src/Dodge/Prop/Moving.hs 11;" f farWallDistDirection src/Dodge/Update/Camera.hs 230;" f fdiv src/ShortShow.hs 27;" f -feet src/Dodge/Creature/Picture.hs 52;" f +feet src/Dodge/Creature/Picture.hs 50;" f ffoldM src/Framebuffer/Update.hs 79;" f filter3 src/FoldableHelp.hs 76;" f findBlips src/Dodge/RadarSweep.hs 44;" f @@ -4223,15 +4228,15 @@ flameSpitter src/Dodge/Item/Held/SprayGuns.hs 29;" f flameThrower src/Dodge/Item/Held/SprayGuns.hs 72;" f flameTorrent src/Dodge/Item/Held/SprayGuns.hs 40;" f flameWall src/Dodge/Item/Held/SprayGuns.hs 56;" f -flamerPic src/Dodge/Item/Draw/SPic.hs 331;" f +flamerPic src/Dodge/Item/Draw/SPic.hs 330;" f flareCircleAt src/Dodge/WorldEvent/Flash.hs 46;" f flatItemCombinations src/Dodge/Combine/Combinations.hs 49;" f flatLookupItems src/Dodge/Combine.hs 35;" f flatShield src/Dodge/Item/Held/Utility.hs 9;" f -flatShieldEquipSPic src/Dodge/Item/Draw/SPic.hs 392;" f +flatShieldEquipSPic src/Dodge/Item/Draw/SPic.hs 391;" f fleeFrom src/Dodge/CreatureEffect.hs 120;" f fleeFromTarget src/Dodge/CreatureEffect.hs 66;" f -fletchingModule src/Dodge/Item/Scope.hs 32;" f +fletchingModule src/Dodge/Item/Scope.hs 30;" f flickerMod src/Dodge/Placement/Instance/LightSource/Flicker.hs 10;" f flickerUpdate src/Dodge/Placement/Instance/LightSource/Flicker.hs 24;" f flipSwitch src/Dodge/Button/Event.hs 21;" f @@ -4262,7 +4267,6 @@ footstepSideEffect src/Dodge/Creature/State/WalkCycle.hs 25;" f forbidFlee src/Dodge/Creature/Boid.hs 42;" f forceElements src/StrictHelp.hs 10;" f forceField src/Dodge/Wall/ForceField.hs 7;" f -forceFieldGun src/Dodge/Item/Held/Utility.hs 34;" f forceFoldable src/StrictHelp.hs 7;" f forceSpine src/StrictHelp.hs 4;" f fourEmbossDecoration src/Dodge/Placement/TopDecoration.hs 29;" f @@ -4292,7 +4296,7 @@ gameRoomViewpoints src/Dodge/Viewpoints.hs 35;" f gameRoomsFromRooms src/Dodge/Layout.hs 158;" f gameplayMenu src/Dodge/Menu.hs 131;" f gameplayMenuOptions src/Dodge/Menu.hs 134;" f -gasCreate src/Dodge/HeldUse.hs 400;" f +gasCreate src/Dodge/HeldUse.hs 399;" f generateGenParams src/Dodge/LevelGen/LevelStructure.hs 22;" f generateGraphs src/Dodge/LevelGen.hs 39;" f generateLayout src/Dodge/Layout/Generate.hs 10;" f @@ -4306,8 +4310,8 @@ geqConstr src/SameConstr.hs 21;" f getArguments src/Dodge/Update/Scroll.hs 151;" f getArguments' src/Dodge/Update/Scroll.hs 139;" f getAvailableListLines src/Dodge/SelectionList.hs 11;" f -getBulletTrajectory src/Dodge/HeldUse.hs 309;" f -getBulletType src/Dodge/HeldUse.hs 283;" f +getBulletTrajectory src/Dodge/HeldUse.hs 308;" f +getBulletType src/Dodge/HeldUse.hs 282;" f getCommands src/Dodge/Terminal.hs 115;" f getCommandsHelp src/Dodge/Terminal.hs 73;" f getCrDexterity src/Dodge/Creature/Statistics.hs 13;" f @@ -4399,7 +4403,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 395;" f +headLampShape src/Dodge/Item/Draw/SPic.hs 394;" f headMap src/Dodge/DoubleTree.hs 117;" f heal src/Dodge/Item/Consumable.hs 17;" f heal25 src/Dodge/Item/Consumable.hs 14;" f @@ -4411,7 +4415,8 @@ heightWallPS src/Dodge/Placement/Instance/Wall.hs 13;" f heldEffect src/Dodge/HeldUse.hs 33;" f heldEffectMuzzles src/Dodge/HeldUse.hs 36;" f heldInfo src/Dodge/Item/Info.hs 48;" f -heldItemOffset src/Dodge/Item/HeldOffset.hs 24;" f +heldItemOffset src/Dodge/Item/HeldOffset.hs 56;" f +heldItemRelativeOrient src/Dodge/Item/HeldOffset.hs 25;" f heldItemSPic src/Dodge/Item/Draw/SPic.hs 175;" f heldPositionInfo src/Dodge/Item/Info.hs 212;" f helpCommand src/Dodge/Terminal.hs 64;" f @@ -4505,20 +4510,19 @@ 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 145;" f +invAdj src/Dodge/Item/Grammar.hs 141;" f invDimColor src/Dodge/DisplayInventory.hs 139;" f invDisplayParams src/Dodge/ListDisplayParams.hs 29;" f invHead src/Dodge/Render/HUD.hs 266;" 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 +invIndentIM src/Dodge/Item/Grammar.hs 153;" f +invLDT src/Dodge/Item/Grammar.hs 125;" 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 162;" f +invTrees src/Dodge/Item/Grammar.hs 161;" f inventoryExtra src/Dodge/Render/HUD.hs 184;" f inventoryExtraH src/Dodge/Render/HUD.hs 195;" f inventoryX src/Dodge/Creature.hs 115;" f @@ -4558,7 +4562,7 @@ itemBaseName src/Dodge/Item/Display.hs 60;" f itemBlips src/Dodge/RadarSweep.hs 75;" f itemCombinations src/Dodge/Combine/Combinations.hs 54;" f itemCombinationsEdges src/Dodge/Combine/Graph.hs 54;" f -itemDetectorEffect src/Dodge/HeldUse.hs 200;" f +itemDetectorEffect src/Dodge/HeldUse.hs 199;" f itemDisplay src/Dodge/Item/Display.hs 31;" f itemDisplayPad src/Dodge/Item/Display.hs 43;" f itemEquipPict src/Dodge/Item/Draw.hs 19;" f @@ -4589,7 +4593,7 @@ itmUsageInfo src/Dodge/Item/Info.hs 201;" f jShape src/Dodge/Placement/Instance/LightSource.hs 86;" f jaggedShape src/Dodge/Block/Debris.hs 191;" f jetPack src/Dodge/Item/Equipment.hs 91;" f -joinItemsInList src/Dodge/Item/Grammar.hs 113;" f +joinItemsInList src/Dodge/Item/Grammar.hs 116;" f jps0' src/Dodge/LevelGen/PlacementHelper.hs 60;" f jps0PushPS src/Dodge/LevelGen/PlacementHelper.hs 63;" f jsps src/Dodge/LevelGen/PlacementHelper.hs 36;" f @@ -4603,7 +4607,7 @@ keyCard src/Dodge/Item/Held/Utility.hs 20;" 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 411;" f +keyPic src/Dodge/Item/Draw/SPic.hs 410;" f keyholeCorridor src/Dodge/Room/Corridor.hs 39;" f knifeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 456;" f lConnect src/Dodge/Render/Connectors.hs 30;" f @@ -4616,8 +4620,8 @@ lampCrSPic src/Dodge/Render/ShapePicture.hs 104;" 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 40;" f -lasGunPic src/Dodge/Item/Draw/SPic.hs 361;" f -lasRayAt src/Dodge/HeldUse.hs 267;" f +lasGunPic src/Dodge/Item/Draw/SPic.hs 360;" f +lasRayAt src/Dodge/HeldUse.hs 266;" f lasSensorTurretTest src/Dodge/Room/LasTurret.hs 105;" f lasTunnel src/Dodge/Room/LasTurret.hs 124;" f lasTunnelRunPast src/Dodge/Room/LasTurret.hs 165;" f @@ -4626,7 +4630,7 @@ lastMap src/Dodge/DoubleTree.hs 121;" f latchkey src/Dodge/Item/Held/Utility.hs 23;" 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 334;" f +launcherPic src/Dodge/Item/Draw/SPic.hs 333;" 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 @@ -4636,11 +4640,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 85;" f +leftIsParentCombine src/Dodge/Item/Grammar.hs 86;" f leftItemSPic src/Dodge/Item/Draw/SPic.hs 99;" f leftPad src/Padding.hs 14;" f -leftRightCombine src/Dodge/Item/Grammar.hs 97;" f -legsSPic src/Dodge/Item/Draw/SPic.hs 429;" f +leftRightCombine src/Dodge/Item/Grammar.hs 100;" f +legsSPic src/Dodge/Item/Draw/SPic.hs 428;" f liShape src/Dodge/Placement/Instance/LightSource.hs 99;" f light src/Color.hs 100;" f lightSensByDoor src/Dodge/Room/LasTurret.hs 44;" f @@ -4719,12 +4723,13 @@ main bench/Bench.hs 15;" f main test/Spec.hs 12;" f mainListCursor src/Dodge/Render/HUD/Carte.hs 51;" f makeArc src/Picture/Base.hs 157;" f +makeAttach src/Dodge/Item/Attach.hs 5;" f makeBlip src/Dodge/RadarSweep.hs 51;" f makeBlockDebris src/Dodge/Block/Debris.hs 28;" f makeBoolOption src/Dodge/Menu/OptionType.hs 8;" f -makeBullet src/Dodge/HeldUse.hs 341;" f +makeBullet src/Dodge/HeldUse.hs 340;" f makeButton src/Dodge/LevelGen/Switch.hs 16;" f -makeByteStringShaderUsingVAO src/Shader/Compile.hs 138;" f +makeByteStringShaderUsingVAO src/Shader/Compile.hs 128;" f makeCloudAt src/Dodge/WorldEvent/Cloud.hs 18;" f makeColorTermLine src/Dodge/Terminal.hs 127;" f makeColorTermPara src/Dodge/Terminal.hs 124;" f @@ -4756,16 +4761,15 @@ makePathBetweenPs src/Dodge/Path.hs 54;" f makePoisonExplosionAt src/Dodge/WorldEvent/Explosion.hs 31;" f makeRect src/Grid.hs 82;" f makeSelectionListPictures src/Dodge/Render/List.hs 49;" f -makeShaderEBO src/Shader/Compile.hs 59;" f -makeShaderProgram src/Shader/Compile.hs 288;" f -makeShaderUsingVAO src/Shader/Compile.hs 156;" f -makeShaderUsingVBO src/Shader/Compile.hs 78;" f -makeShaderVBO src/Shader/Compile.hs 38;" f +makeShaderEBO src/Shader/Compile.hs 53;" f +makeShaderProgram src/Shader/Compile.hs 241;" f +makeShaderUsingVAO src/Shader/Compile.hs 146;" f +makeShaderUsingVBO src/Shader/Compile.hs 69;" f +makeShaderVBO src/Shader/Compile.hs 32;" f makeShockwaveAt src/Dodge/WorldEvent/Shockwave.hs 12;" f -makeSourcedShader src/Shader/Compile.hs 204;" f +makeSourcedShader src/Shader/Compile.hs 167;" f makeStartCloudAt src/Dodge/WorldEvent/Cloud.hs 60;" f makeStaticBall src/Dodge/WorldEvent/SpawnParticle.hs 22;" f -makeStaticShader src/Shader/Compile.hs 179;" f makeSubmenuOption src/Dodge/Menu/OptionType.hs 19;" f makeSwitch src/Dodge/LevelGen/Switch.hs 52;" f makeSwitchSPic src/Dodge/LevelGen/Switch.hs 40;" f @@ -4807,10 +4811,10 @@ mcProximitySensorUpdate src/Dodge/Machine/Update.hs 104;" f mcSPic src/Dodge/Render/ShapePicture.hs 180;" f mcSensorTriggerUpdate src/Dodge/Machine/Update.hs 69;" f mcSensorUpdate src/Dodge/Machine/Update.hs 99;" f -mcShootLaser src/Dodge/HeldUse.hs 427;" f +mcShootLaser src/Dodge/HeldUse.hs 426;" f mcTriggerVal src/Dodge/Machine/Update.hs 75;" f mcTypeUpdate src/Dodge/Machine/Update.hs 24;" f -mcUseHeld src/Dodge/HeldUse.hs 366;" f +mcUseHeld src/Dodge/HeldUse.hs 365;" f mcUseItem src/Dodge/Machine/Update.hs 61;" f medkit src/Dodge/Item/Consumable.hs 8;" f megaBattery src/Dodge/Item/Ammo.hs 67;" f @@ -4853,8 +4857,8 @@ minOn src/FoldableHelp.hs 35;" f mini1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 322;" f miniGunCrit src/Dodge/Creature.hs 62;" f miniGunX src/Dodge/Item/Held/Cane.hs 83;" f -miniGunXPict src/Dodge/Item/Draw/SPic.hs 309;" f -miniGunXPictItem src/Dodge/Item/Draw/SPic.hs 304;" f +miniGunXPict src/Dodge/Item/Draw/SPic.hs 308;" f +miniGunXPictItem src/Dodge/Item/Draw/SPic.hs 303;" f miniS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 510;" f miniTree2 src/Dodge/Room/Room.hs 108;" f minimumOn src/FoldlHelp.hs 12;" f @@ -4951,7 +4955,7 @@ normalizeV src/Geometry/Vector.hs 43;" f normalizeV3 src/Geometry/Vector3D.hs 84;" f nullCommand src/Dodge/Update/Scroll.hs 142;" f numColor src/Color.hs 124;" f -numDrawableVertices src/Shader/Parameters.hs 33;" f +numDrawableVertices src/Shader/Parameters.hs 34;" f numGLushort src/Shader/Parameters.hs 29;" f numLayers src/Picture/Data.hs 31;" f numMetaTree src/Dodge/Tree/Compose.hs 119;" f @@ -4959,7 +4963,7 @@ numMetaTree' src/Dodge/Tree/Compose.hs 122;" f numSelfTree src/Dodge/Tree/Compose.hs 107;" f numSelfTree' src/Dodge/Tree/Compose.hs 110;" f numShads src/Picture/Data.hs 42;" f -numSubElements src/Shader/Parameters.hs 37;" f +numSubElements src/Shader/Parameters.hs 39;" f numTraversable src/TreeHelp.hs 183;" f obstacleColor src/Dodge/Debug/Picture.hs 225;" f obstructPathsCrossing src/Dodge/Path.hs 138;" f @@ -4984,8 +4988,8 @@ orderAroundFirstReverse src/Geometry/Polygon.hs 70;" f orderPolygon src/Geometry/Polygon.hs 78;" f orderPolygonAround src/Geometry/Polygon.hs 63;" f orientAttachment src/Dodge/Item/Orientation.hs 21;" f -orientByLink src/Dodge/Item/Orientation.hs 14;" f -orientChild src/Dodge/Item/Orientation.hs 9;" f +orientByLink src/Dodge/Item/Orientation.hs 15;" f +orientChild src/Dodge/Item/Orientation.hs 10;" f originIDsAt src/Dodge/WorldEvent/Sound.hs 18;" f originsIDsAt src/Dodge/WorldEvent/Sound.hs 13;" f orthogonalPointOnSeg src/Geometry/Intersect.hs 291;" f @@ -5311,9 +5315,9 @@ reload1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 428;" f reloadLevelStart src/Dodge/Save.hs 71;" f reloadS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 426;" f rememberSounds src/Dodge/Creature/Perception.hs 177;" f -remoteScreen src/Dodge/Item/Scope.hs 52;" f +remoteScreen src/Dodge/Item/Scope.hs 48;" f remoteShellShape src/Dodge/Projectile/Draw.hs 42;" f -removeAmmoFromMag src/Dodge/HeldUse.hs 277;" f +removeAmmoFromMag src/Dodge/HeldUse.hs 276;" f removeDot src/ShortShow.hs 30;" f removeHotkey src/Dodge/Hotkey.hs 41;" f removeInverseWalls src/Dodge/LevelGen/StaticWalls.hs 25;" f @@ -5358,7 +5362,7 @@ rezText' src/Dodge/Story.hs 17;" f rhombus src/Polyhedra.hs 71;" f rifle src/Dodge/Item/Held/Cane.hs 51;" f right src/DoubleStack.hs 16;" f -rightIsParentCombine src/Dodge/Item/Grammar.hs 91;" f +rightIsParentCombine src/Dodge/Item/Grammar.hs 93;" f rightPad src/Padding.hs 22;" f rightPadNoSquash src/Padding.hs 26;" f rlPosDir src/Dodge/RoomLink.hs 94;" f @@ -5448,7 +5452,7 @@ scale3 src/Picture/Base.hs 145;" f scaleMat src/MatrixHelper.hs 59;" f scaleMatrix src/MatrixHelper.hs 56;" f scaleSH src/Shape.hs 265;" f -scalp src/Dodge/Creature/Picture.hs 124;" f +scalp src/Dodge/Creature/Picture.hs 93;" f scancodeToHotkey src/Dodge/Creature/YourControl.hs 70;" f scodeToChar src/Dodge/ScodeToChar.hs 6;" f scorchSPic src/Dodge/Creature/State.hs 119;" f @@ -5524,7 +5528,7 @@ setOutLinksByType src/Dodge/RoomLink.hs 57;" f setOutLinksPD src/Dodge/RoomLink.hs 77;" f setRBCreatureTargeting src/Dodge/Creature/State.hs 317;" f setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 121;" f -setShaderSource src/Shader/Compile.hs 337;" f +setShaderSource src/Shader/Compile.hs 290;" f setShadowLimits src/Dodge/Shadows.hs 11;" f setSoundVolume src/Sound.hs 156;" f setTargetMv src/Dodge/Creature/ReaderUpdate.hs 74;" f @@ -5538,30 +5542,29 @@ setVol src/Dodge/Config/Update.hs 30;" f setWristShieldPos src/Dodge/Euse.hs 100;" f setupConLoop src/Loop.hs 102;" f setupConLoop' src/Loop.hs 192;" f -setupEBO src/Shader/Compile.hs 235;" f +setupEBO src/Shader/Compile.hs 188;" f setupFramebuffer2GivenStencil src/Framebuffer/Setup.hs 46;" f setupFramebuffer3GivenStencil src/Framebuffer/Setup.hs 62;" f setupFramebufferGivenStencil src/Framebuffer/Setup.hs 31;" f setupLoop src/Loop.hs 30;" f setupShadowFramebuffer src/Framebuffer/Setup.hs 24;" f -setupStaticVBOVAO src/Shader/Compile.hs 108;" f -setupVAOUsingVBO src/Shader/Compile.hs 226;" f -setupVAOvbo src/Shader/Compile.hs 216;" f -setupVBO src/Shader/Compile.hs 92;" f -setupVBOStatic src/Shader/Compile.hs 126;" f -setupVBOVAO src/Shader/Compile.hs 247;" f -setupVertexAttribPointer src/Shader/Compile.hs 271;" f -setupVertexAttribs src/Shader/Compile.hs 265;" f +setupStaticVBOVAO src/Shader/Compile.hs 100;" f +setupVAOUsingVBO src/Shader/Compile.hs 179;" f +setupVBO src/Shader/Compile.hs 83;" f +setupVBOStatic src/Shader/Compile.hs 116;" f +setupVBOVAO src/Shader/Compile.hs 200;" f +setupVertexAttribPointer src/Shader/Compile.hs 224;" f +setupVertexAttribs src/Shader/Compile.hs 218;" f setupWorldBounds src/Dodge/Layout.hs 125;" f shadVBOptr src/Shader.hs 40;" f -shaderTypeExt src/Shader/Compile.hs 209;" f +shaderTypeExt src/Shader/Compile.hs 172;" f shapeBounds src/Dodge/Room/Foreground.hs 148;" f shapePoints src/Dodge/Room/Foreground.hs 145;" f 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 247;" f +shatterGunSPic src/Dodge/Item/Draw/SPic.hs 246;" 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 @@ -5587,15 +5590,15 @@ shiftRoomBy src/Dodge/Room/Link.hs 37;" f shiftRoomShiftBy src/Dodge/Room/Link.hs 81;" f shiftRoomShiftToLink src/Dodge/Room/Link.hs 70;" f shiftedGrid src/Grid.hs 25;" f -shootBullet src/Dodge/HeldUse.hs 328;" f +shootBullet src/Dodge/HeldUse.hs 327;" f shootFirstMiss src/Dodge/Creature/Volition.hs 33;" f shootL src/Dodge/Item/Weapon/TriggerType.hs 298;" f -shootLaser src/Dodge/HeldUse.hs 248;" f +shootLaser src/Dodge/HeldUse.hs 247;" f shootOutPassage src/Dodge/Room/RezBox.hs 72;" f shootShatter src/Dodge/Item/Weapon/Shatter.hs 12;" f -shootTeslaArc src/Dodge/HeldUse.hs 436;" f +shootTeslaArc src/Dodge/HeldUse.hs 435;" f shootTillEmpty src/Dodge/Creature/Volition.hs 18;" f -shootTractorBeam src/Dodge/HeldUse.hs 227;" f +shootTractorBeam src/Dodge/HeldUse.hs 226;" f shootersRoom src/Dodge/Room/Room.hs 317;" f shootersRoom' src/Dodge/Room/Room.hs 282;" f shootersRoom1 src/Dodge/Room/Room.hs 307;" f @@ -5603,8 +5606,8 @@ shootingRange src/Dodge/Room/Room.hs 334;" f shortPoint2 src/Dodge/ShortShow.hs 4;" f shortShow src/ShortShow.hs 10;" f shotgunS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 508;" f -shoulderHeight src/Dodge/Item/HeldOffset.hs 57;" f -shoulderSH src/Dodge/Creature/Picture.hs 171;" f +shoulderHeight src/Dodge/Item/HeldOffset.hs 88;" f +shoulderSH src/Dodge/Creature/Picture.hs 136;" f shoulderSP src/Dodge/Creature/HandPos.hs 196;" f showAttachItem src/Dodge/Item/Display.hs 76;" f showAutoRechargeProgress src/Dodge/Item/Display.hs 90;" f @@ -5655,7 +5658,7 @@ smg src/Dodge/Item/Held/Stick.hs 65;" f smokeCloudAt src/Dodge/WorldEvent/Cloud.hs 41;" f sndV2 src/Geometry/Data.hs 52;" f sniperRifle src/Dodge/Item/Held/Rod.hs 56;" f -someCrits src/Dodge/LockAndKey.hs 127;" f +someCrits src/Dodge/LockAndKey.hs 120;" f soundAngle src/Dodge/SoundLogic.hs 157;" f soundContinue src/Dodge/SoundLogic.hs 125;" f soundContinueVol src/Dodge/SoundLogic.hs 139;" f @@ -5722,7 +5725,7 @@ ssfold src/FoldableHelp.hs 105;" 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 281;" f +stackedInventory src/Dodge/Creature.hs 280;" f startCr src/Dodge/Creature.hs 91;" f startCrafts src/Dodge/Room/Start.hs 102;" f startInvList src/Dodge/Creature.hs 109;" f @@ -5748,7 +5751,7 @@ strFromEquipment src/Dodge/Creature/Statistics.hs 19;" f strFromHeldItem src/Dodge/Creature/Statistics.hs 37;" f strengthFactor src/Dodge/Creature/Impulse/Movement.hs 32;" f strictify src/MaybeHelp.hs 37;" f -strideRot src/Dodge/Item/HeldOffset.hs 60;" f +strideRot src/Dodge/Item/HeldOffset.hs 91;" f stringToList src/Picture/Base.hs 313;" f stringToListGrad src/Picture/Text.hs 12;" f stripZ src/Geometry/Vector3D.hs 97;" f @@ -5801,11 +5804,11 @@ terminalSPic src/Dodge/Machine/Draw.hs 26;" f terminalShape src/Dodge/Machine/Draw.hs 29;" f terminalWheelEvent src/Dodge/Update/Scroll.hs 76;" f teslaGun src/Dodge/Item/Held/BatteryGuns.hs 21;" f -teslaGunPic src/Dodge/Item/Draw/SPic.hs 351;" f +teslaGunPic src/Dodge/Item/Draw/SPic.hs 350;" 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 -testInventory src/Dodge/Creature.hs 257;" f +testInventory src/Dodge/Creature.hs 256;" f testPic src/Dodge/Render/ShapePicture.hs 163;" f testStringInit src/Dodge/TestString.hs 22;" f text src/Picture/Base.hs 193;" f @@ -5848,7 +5851,7 @@ toBothLnk src/Dodge/RoomLink.hs 121;" f toClosestMultiple src/HelpNum.hs 3;" f toColor8 src/Color.hs 144;" f toCombNodeLabel src/Dodge/Combine/Graph.hs 81;" f -toFloatVAs src/Shader/Compile.hs 258;" f +toFloatVAs src/Shader/Compile.hs 211;" f toLabel src/Dodge/Cleat.hs 16;" f toMultiset src/Multiset.hs 58;" f toOnward src/Dodge/Tree/Compose.hs 101;" f @@ -5871,19 +5874,19 @@ topPrismEdgeIndices src/Shader/Poke.hs 327;" f topPrismIndices src/Shader/Poke.hs 402;" f topTestPart src/Dodge/TestString.hs 35;" f torch src/Dodge/Item/Held/Utility.hs 26;" f -torchShape src/Dodge/Item/Draw/SPic.hs 216;" f +torchShape src/Dodge/Item/Draw/SPic.hs 215;" f torqueCr src/Dodge/WorldEffect.hs 70;" f -torso src/Dodge/Creature/Picture.hs 133;" f +torso src/Dodge/Creature/Picture.hs 102;" f tractCr src/Dodge/TractorBeam/Update.hs 28;" f tractFlIt src/Dodge/TractorBeam/Update.hs 23;" f -tractorBeamAt src/Dodge/HeldUse.hs 237;" f +tractorBeamAt src/Dodge/HeldUse.hs 236;" f tractorGun src/Dodge/Item/Held/BatteryGuns.hs 67;" f -tractorGunPic src/Dodge/Item/Draw/SPic.hs 389;" f +tractorGunPic src/Dodge/Item/Draw/SPic.hs 388;" f tractorPullPos src/Dodge/TractorBeam/Update.hs 33;" f tractorSPic src/Dodge/TractorBeam/Draw.hs 10;" f tranRot src/Picture/Base.hs 124;" f transMat src/MatrixHelper.hs 73;" f -transToHandle src/Dodge/Item/HeldOffset.hs 19;" f +transToHandle src/Dodge/Item/HeldOffset.hs 20;" f translate src/Picture/Base.hs 116;" f translate3 src/Picture/Base.hs 120;" f translateFloatingCamera src/Dodge/Update/Camera.hs 48;" f @@ -5946,13 +5949,13 @@ trySiphonFuel src/Dodge/Euse.hs 46;" f trySpinByCID src/Dodge/Projectile/Update.hs 94;" f turnTo src/Dodge/Movement/Turn.hs 4;" f turnToAmount src/Dodge/Movement/Turn.hs 15;" f -turretItemOffset src/Dodge/Item/HeldOffset.hs 14;" f +turretItemOffset src/Dodge/Item/HeldOffset.hs 15;" f tweenAngles src/Geometry/Vector.hs 184;" f twinSlowDoorChasers src/Dodge/Room/LongDoor.hs 78;" f twinSlowDoorRoom src/Dodge/Room/LongDoor.hs 27;" f twists src/Dodge/Creature/Test.hs 103;" f twoFlat src/Dodge/Creature/Test.hs 100;" f -twoFlatHRot src/Dodge/Item/HeldOffset.hs 69;" f +twoFlatHRot src/Dodge/Item/HeldOffset.hs 100;" f twoRoomPoss src/Dodge/PlacementSpot.hs 147;" f twoStep1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 388;" f twoStepS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 424;" f @@ -6081,7 +6084,7 @@ updateWheelEvent src/Dodge/Update/Scroll.hs 20;" f updateWheelEvents src/Dodge/Update.hs 292;" f updateWorldEventFlag src/Dodge/Update.hs 110;" f updateWorldEventFlags src/Dodge/Update.hs 104;" f -upperBody src/Dodge/Creature/Picture.hs 163;" f +upperBody src/Dodge/Creature/Picture.hs 132;" f upperBox src/Shape.hs 152;" f upperBoxHalf src/Shape.hs 218;" f upperBoxMT src/Shape.hs 143;" f @@ -6099,14 +6102,13 @@ upperPrismPolyST src/Shape.hs 106;" f upperPrismPolySU src/Shape.hs 112;" f upperPrismPolyTS src/Shape.hs 118;" f upperRounded src/Shape.hs 181;" f -useBreakListsLinkTest src/Dodge/Item/Grammar.hs 26;" f +useBreakListsLinkTest src/Dodge/Item/Grammar.hs 21;" f useBulletPayload src/Dodge/Bullet.hs 105;" f useC src/Dodge/Cuse.hs 8;" f useC' src/Dodge/Cuse.hs 13;" f useE src/Dodge/Euse.hs 24;" f useEquipment src/Dodge/Creature/State.hs 222;" f -useForceFieldGun src/Dodge/HeldUse.hs 450;" f -useGasParams src/Dodge/HeldUse.hs 377;" f +useGasParams src/Dodge/HeldUse.hs 376;" f useHotKey src/Dodge/Creature/YourControl.hs 49;" f useItemHotkey src/Dodge/Creature/Impulse/UseItem.hs 126;" f useItemLeftClick src/Dodge/Creature/Impulse/UseItem.hs 100;" f @@ -6138,7 +6140,7 @@ vShape src/Dodge/Placement/Instance/LightSource.hs 114;" f vToL src/MatrixHelper.hs 46;" f vToQuat src/Quaternion.hs 38;" f validTerminalCommands src/Dodge/Debug/Terminal.hs 130;" f -vasTightStride src/Shader/Compile.hs 344;" f +vasTightStride src/Shader/Compile.hs 297;" f vecBetweenSpeed src/Dodge/Base.hs 124;" f vecTurnTo src/Dodge/Movement/Turn.hs 26;" f vert src/Shader/Data.hs 102;" f @@ -6156,9 +6158,9 @@ visibleWalls src/Dodge/Base/Collide.hs 123;" f 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 -volleyGunShape src/Dodge/Item/Draw/SPic.hs 292;" f +volleyGunShape src/Dodge/Item/Draw/SPic.hs 291;" f waistSP src/Dodge/Creature/HandPos.hs 199;" f -walkNozzle src/Dodge/HeldUse.hs 205;" f +walkNozzle src/Dodge/HeldUse.hs 204;" f walkableNodeNear src/Dodge/Path.hs 48;" f wallBlips src/Dodge/RadarSweep.hs 80;" f wallBuffer src/Dodge/WallCreatureCollisions.hs 50;" f @@ -6194,7 +6196,7 @@ windowLineType src/Dodge/Placement/Instance/Wall.hs 83;" f windowXFloat src/Dodge/Data/Config.hs 61;" f windowYFloat src/Dodge/Data/Config.hs 63;" f withAlpha src/Color.hs 10;" f -withByteString src/Shader/Compile.hs 371;" f +withByteString src/Shader/Compile.hs 324;" f withCrPos src/Dodge/Item/Weapon/TriggerType.hs 381;" f withCrPosShift src/Dodge/Item/Weapon/TriggerType.hs 384;" f withFlare src/Dodge/Item/Weapon/TriggerType.hs 348;" f