From 7d72fa3c5dcb3b90993d4ae2d7854e38b7f9a6ec Mon Sep 17 00:00:00 2001 From: justin Date: Sat, 28 Sep 2024 23:34:32 +0100 Subject: [PATCH] Add newtype for item id int --- ghcidOutput | 12 +- src/Dodge/Data/Item.hs | 3 +- src/Dodge/Data/Item/Location.hs | 4 + src/Dodge/Data/Item/Use/Consumption/Ammo.hs | 8 +- src/Dodge/Data/World.hs | 7 +- src/Dodge/FloorItem.hs | 2 +- src/Dodge/Inventory.hs | 2 +- src/Dodge/Inventory/Add.hs | 4 +- src/Dodge/Inventory/Location.hs | 3 +- src/Dodge/Item/Location/Initialize.hs | 6 +- src/Dodge/Luse.hs | 6 +- src/Dodge/Projectile/Update.hs | 13 +- src/Dodge/Update.hs | 11 +- tags | 460 ++++++++++---------- 14 files changed, 274 insertions(+), 267 deletions(-) diff --git a/ghcidOutput b/ghcidOutput index a6f7b5561..0e63b5fc6 100644 --- a/ghcidOutput +++ b/ghcidOutput @@ -1,12 +1,12 @@ -/home/justin/Haskell/loop/src/Dodge/Item/Display.hs:(109,28)-(121,21): warning: [-Wincomplete-patterns] - Pattern match(es) are non-exhaustive - In a case alternative: Patterns not matched: TargetingUse _ _ _ - | -109 | itemNumberDisplay cr itm = case iu of - | ^^^^^^^^^^... /home/justin/Haskell/loop/src/Dodge/Creature/Impulse/UseItem.hs:(36,22)-(46,19): warning: [-Wincomplete-patterns] Pattern match(es) are non-exhaustive In a case alternative: Patterns not matched: TargetingUse _ _ _ | 36 | itemEffect cr it w = case it ^. ldtValue . itUse of | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^... +/home/justin/Haskell/loop/src/Dodge/Item/Display.hs:(109,28)-(121,21): warning: [-Wincomplete-patterns] + Pattern match(es) are non-exhaustive + In a case alternative: Patterns not matched: TargetingUse _ _ _ + | +109 | itemNumberDisplay cr itm = case iu of + | ^^^^^^^^^^... diff --git a/src/Dodge/Data/Item.hs b/src/Dodge/Data/Item.hs index 1a97bf434..a43091016 100644 --- a/src/Dodge/Data/Item.hs +++ b/src/Dodge/Data/Item.hs @@ -16,6 +16,7 @@ module Dodge.Data.Item ( module Dodge.Data.Item.Location, ) where +import NewInt import Control.Lens import Data.Aeson import Data.Aeson.TH @@ -36,7 +37,7 @@ data ItID = ItID data Item = Item { _itUse :: ItemUse , _itType :: ItemType - , _itID :: Int + , _itID :: NewInt ItmInt , _itLocation :: ItemLocation , _itEffect :: ItEffect , _itInvSize :: Float diff --git a/src/Dodge/Data/Item/Location.hs b/src/Dodge/Data/Item/Location.hs index 19c062f08..fce263e6e 100644 --- a/src/Dodge/Data/Item/Location.hs +++ b/src/Dodge/Data/Item/Location.hs @@ -21,6 +21,8 @@ data TurretInt deriving (Eq,Ord,Show,Read) data CrInt = CrInt deriving (Eq,Ord,Show,Read) +data ItmInt = ItmInt + deriving (Eq,Ord,Show,Read) data ItemLocation = InInv @@ -39,3 +41,5 @@ makeLenses ''ItemLocation deriveJSON defaultOptions ''InvInt deriveJSON defaultOptions ''FloorInt deriveJSON defaultOptions ''ItemLocation +deriveJSON defaultOptions ''ItmInt +deriveJSON defaultOptions ''CrInt diff --git a/src/Dodge/Data/Item/Use/Consumption/Ammo.hs b/src/Dodge/Data/Item/Use/Consumption/Ammo.hs index 3b84f80a8..663d9ec60 100644 --- a/src/Dodge/Data/Item/Use/Consumption/Ammo.hs +++ b/src/Dodge/Data/Item/Use/Consumption/Ammo.hs @@ -9,6 +9,8 @@ module Dodge.Data.Item.Use.Consumption.Ammo ( module Dodge.Data.Payload, ) where +import Dodge.Data.Item.Location +import NewInt import Control.Lens import Data.Aeson import Data.Aeson.TH @@ -21,11 +23,11 @@ data ProjectileDraw = DrawShell | DrawRemoteShell | DrawDrone | DrawBlankProject data ProjectileUpdate = ThrustPU {_pjuStart :: Int, _pjuEnd :: Int} | StartSpinPU {_pjuTime :: Int, _pjuCID :: Int, _pjuSpinAmound :: Int} - | RemoteDirectionPU {_pjuStart :: Int, _pjuEnd :: Int, _pjuControllerID :: Maybe Int} + | RemoteDirectionPU {_pjuStart :: Int, _pjuEnd :: Int, _pjuControllerID :: Maybe (NewInt ItmInt)} | ReduceSpinPU {_pjuReduceSpin :: Float} - | DestroyPU {_pjuScreenID :: Maybe Int, _pjuTimer :: Int} + | DestroyPU {_pjuScreenID :: Maybe (NewInt ItmInt), _pjuTimer :: Int} | TimePU - | CollisionEffectPU {_pjuScreenID :: Maybe Int} + | CollisionEffectPU {_pjuScreenID :: Maybe (NewInt ItmInt)} deriving (Show, Eq, Ord, Read) --Generic, Flat) data AmmoType diff --git a/src/Dodge/Data/World.hs b/src/Dodge/Data/World.hs index e74dfc470..dcbe321fb 100644 --- a/src/Dodge/Data/World.hs +++ b/src/Dodge/Data/World.hs @@ -13,6 +13,7 @@ module Dodge.Data.World ( module Dodge.Data.Input, ) where +import NewInt import Control.Lens import Data.IntMap.Strict (IntMap) import Data.IntSet (IntSet) @@ -62,7 +63,7 @@ data TimeFlowStatus { _scrollSmoothing :: Int , _reverseAmount :: Int , _futureWorlds :: [LWorld] - , _scrollItemLocation :: Int + , _scrollItemID :: NewInt ItmInt } | CameraScrollTimeFlow { _scrollSmoothing :: Int @@ -71,11 +72,11 @@ data TimeFlowStatus } | RewindLeftClick { _reverseAmount :: Int - , _scrollItemLocation :: Int + , _scrollItemID :: NewInt ItmInt } | PausedTimeFlow { _timeFlowCharge :: Int - , _scrollItemLocation :: Int + , _scrollItemID :: NewInt ItmInt } makeLenses ''TimeFlowStatus diff --git a/src/Dodge/FloorItem.hs b/src/Dodge/FloorItem.hs index 471f0bf6f..2eed88aa6 100644 --- a/src/Dodge/FloorItem.hs +++ b/src/Dodge/FloorItem.hs @@ -23,7 +23,7 @@ copyItemToFloorID pos it w = (,) (NInt flid) $ w' & cWorld . lWorld . floorItems . unNIntMap %~ IM.insert flid theflit - & cWorld . lWorld . itemLocations %~ IM.insert (_itID it) (OnFloor $ NInt flid) + & cWorld . lWorld . itemLocations %~ IM.insert (_unNInt $ _itID it) (OnFloor $ NInt flid) where (p', w') = findWallFreeDropPoint (_dimRad $ _itDimension it) pos w rot = fst . randomR (- pi, pi) $ _randGen w diff --git a/src/Dodge/Inventory.hs b/src/Dodge/Inventory.hs index 24b7a3bfd..9f0f9f947 100644 --- a/src/Dodge/Inventory.hs +++ b/src/Dodge/Inventory.hs @@ -47,7 +47,7 @@ destroyInvItem :: destroyInvItem cid invid w = rmInvItem cid invid w & removeitloc where removeitloc = fromMaybe id $ do - itid <- w ^? cWorld . lWorld . creatures . ix cid . crInv . ix invid . itID + itid <- w ^? cWorld . lWorld . creatures . ix cid . crInv . ix invid . itID . unNInt return $ cWorld . lWorld . itemLocations . at itid .~ Nothing -- | after this the item at the inventory position will no longer exist diff --git a/src/Dodge/Inventory/Add.hs b/src/Dodge/Inventory/Add.hs index fb7e34a33..eb3ea1161 100644 --- a/src/Dodge/Inventory/Add.hs +++ b/src/Dodge/Inventory/Add.hs @@ -48,7 +48,7 @@ tryPutItemInInv cid flit w = case maybeInvSlot of it = _flIt flit maybeInvSlot = checkInvSlotsYou it w -- not sure if the following is necessary - updateItLocation invid w' = w' & cWorld . lWorld . itemLocations . ix (_itID it) + updateItLocation invid w' = w' & cWorld . lWorld . itemLocations . ix (_unNInt $ _itID it) .~ InInv {_ilCrID = cid , _ilInvID = invid @@ -82,7 +82,7 @@ createItemYou itm w = fromMaybe (OnFloor flid, w') $ do where itid = IM.newKey $ w ^. cWorld . lWorld . itemLocations pos = w ^?! cWorld . lWorld . creatures . ix 0 . crPos - (flid,w') = copyItemToFloorID pos (itm & itID .~ itid) w + (flid,w') = copyItemToFloorID pos (itm & itID .~ NInt itid) w -- | Pick up a specific item. diff --git a/src/Dodge/Inventory/Location.hs b/src/Dodge/Inventory/Location.hs index f2e4e074f..9eae100e2 100644 --- a/src/Dodge/Inventory/Location.hs +++ b/src/Dodge/Inventory/Location.hs @@ -6,6 +6,7 @@ module Dodge.Inventory.Location ) where +import NewInt import qualified Data.IntSet as IS import Dodge.Base.You import Dodge.Data.SelectionList @@ -55,7 +56,7 @@ crUpdateInvidLocations mo crid lw invid itm = lw & creatures . ix crid . crInv . ix invid . itLocation .~ newloc & itemLocations %~ IM.insert itid newloc where - itid = itm ^. itID + itid = itm ^. itID . unNInt newloc = InInv { _ilCrID = crid , _ilInvID = invid diff --git a/src/Dodge/Item/Location/Initialize.hs b/src/Dodge/Item/Location/Initialize.hs index eb5278247..5d959c09a 100644 --- a/src/Dodge/Item/Location/Initialize.hs +++ b/src/Dodge/Item/Location/Initialize.hs @@ -40,7 +40,7 @@ initCrItemLocations w cr = (w', cr & crInv .~ newinv) -- does not worry about creature manipulation for now initCrItemLocation :: Creature -> Int -> LWorld -> Item -> (LWorld,Item) initCrItemLocation cr invid w it = (w & itemLocations . at locid ?~ loc - ,it & itID .~ locid + ,it & itID .~ NInt locid & itLocation .~ loc) where locid = IM.newKey ( w ^. itemLocations) @@ -55,7 +55,7 @@ initCrItemLocation cr invid w it = (w & itemLocations . at locid ?~ loc initFlItemLocation :: LWorld -> FloorItem -> (LWorld, FloorItem) initFlItemLocation w flit = (w & itemLocations . at locid ?~ loc - , flit & flIt . itID .~ locid + , flit & flIt . itID .~ NInt locid & flIt . itLocation .~ loc ) where @@ -69,6 +69,6 @@ initTuItemLocation w mc = case mc ^? mcType . _McTurret . tuWeapon of let locid = IM.newKey ( w ^. itemLocations) loc = OnTurret (_mcID mc) in ( w & itemLocations . at locid ?~ loc - , mc & mcType . _McTurret . tuWeapon . itID .~ locid + , mc & mcType . _McTurret . tuWeapon . itID .~ NInt locid & mcType . _McTurret . tuWeapon . itLocation .~ loc ) diff --git a/src/Dodge/Luse.hs b/src/Dodge/Luse.hs index 87d8d0680..4b63129ac 100644 --- a/src/Dodge/Luse.hs +++ b/src/Dodge/Luse.hs @@ -25,7 +25,7 @@ useStopWatch :: Item -> Creature -> World -> World useStopWatch itm _ w = w & timeFlow .~ PausedTimeFlow { _timeFlowCharge = itm ^?! itUse . leftConsumption . wpCharge - , _scrollItemLocation = _itID itm + , _scrollItemID = _itID itm } @@ -34,7 +34,7 @@ useTimeScrollGun itm _ w = w & timeFlow .~ ItemScrollTimeFlow { _scrollSmoothing = 0 , _reverseAmount = itm ^?! itUse . leftConsumption . wpCharge , _futureWorlds = [] - , _scrollItemLocation = _itID itm + , _scrollItemID = _itID itm } @@ -42,7 +42,7 @@ useRewindGun :: Item -> Creature -> World -> World useRewindGun itm _ w = w & timeFlow .~ RewindLeftClick { _reverseAmount = itm ^?! itUse . leftConsumption . wpCharge - , _scrollItemLocation = _itID itm + , _scrollItemID = _itID itm } --useRewindGun _ _ w = case w ^. cwTime . rewindWorlds of diff --git a/src/Dodge/Projectile/Update.hs b/src/Dodge/Projectile/Update.hs index dc1bcd2f3..7bd7edc54 100644 --- a/src/Dodge/Projectile/Update.hs +++ b/src/Dodge/Projectile/Update.hs @@ -3,6 +3,7 @@ module Dodge.Projectile.Update ( updateProjectile ) where +import NewInt import Dodge.Payload import Control.Lens import Data.Maybe @@ -42,7 +43,7 @@ upProjectile pu pj = case pu of time = _prjTimer pj act st et = time <= st && time >= et -shellCollisionEffect :: Maybe Int -> Projectile -> World -> World +shellCollisionEffect :: Maybe (NewInt ItmInt) -> Projectile -> World -> World shellCollisionEffect mscreenid = shellCollisionCheck $ \pj -> explodeShell mscreenid (_prjID pj) @@ -57,12 +58,12 @@ shellCollisionCheck f pj w oldPos = _prjPos pj newPos = oldPos +.+ _prjVel pj -destroyProjectile :: Maybe Int -> Int -> World -> World +destroyProjectile :: Maybe (NewInt ItmInt) -> Int -> World -> World destroyProjectile mitid pjid w = w & cWorld . lWorld . projectiles %~ IM.delete pjid & removelink where removelink = fromMaybe id $ do - itid <- mitid + itid <- fmap _unNInt mitid loc <- w ^? cWorld . lWorld . itemLocations . ix itid itm <- w ^? pointerToItemLocation loc . itUse . atLinkedProjectile . _Just guard $ itm == pjid @@ -107,9 +108,9 @@ trySpinByCID cid i pj w = w & cWorld . lWorld . projectiles . ix pjid . prjSpin spinFactor = 5 * (6 - fromIntegral i) -- note this only allows YOU to remotely track projectiles -pjRemoteSetDirection :: Maybe Int -> Projectile -> World -> World +pjRemoteSetDirection :: Maybe (NewInt ItmInt) -> Projectile -> World -> World pjRemoteSetDirection mscreenid pj w = fromMaybe w $ do - screenid <- mscreenid + screenid <- fmap _unNInt mscreenid let newdir | w ^? cWorld . lWorld . creatures . ix 0 . crManipulation . manObject . imSelectedItem == w ^? cWorld . lWorld . itemLocations . ix screenid . ilInvID @@ -133,7 +134,7 @@ decTimMvVel pj = vel = _prjVel pj pjid = _prjID pj -explodeShell :: Maybe Int -> Int -> World -> World +explodeShell :: Maybe (NewInt ItmInt) -> Int -> World -> World explodeShell mitid pjid w = w & cWorld . lWorld . projectiles . ix pjid . prjUpdates .~ [DestroyPU mitid 30] diff --git a/src/Dodge/Update.hs b/src/Dodge/Update.hs index 22b1b366d..c0ef8705e 100644 --- a/src/Dodge/Update.hs +++ b/src/Dodge/Update.hs @@ -6,6 +6,7 @@ Description : Simulation update -} module Dodge.Update (updateUniverse) where +import NewInt import Control.Monad import Dodge.Update.Input.InGame import Dodge.Update.Input.ScreenLayer @@ -168,14 +169,14 @@ timeFlowUpdate u = case u ^. uvWorld . timeFlow of DeathTime{} -> u PausedTimeFlow _ itmloc -> over uvWorld (pauseTime itmloc) u -pauseTime :: Int -> World -> World +pauseTime :: NewInt ItmInt -> World -> World pauseTime itmloc w | justPressedButtonLeft || outofcharge = w & timeFlow .~ NormalTimeFlow - | otherwise = w & pointerToItemLocation (w ^?! cWorld . lWorld . itemLocations . ix itmloc) . itUse . leftConsumption . wpCharge -~ 1 + | otherwise = w & pointerToItemLocation (w ^?! cWorld . lWorld . itemLocations . ix (_unNInt itmloc)) . itUse . leftConsumption . wpCharge -~ 1 where justPressedButtonLeft = w ^? input . mouseButtons . ix ButtonLeft == Just 0 outofcharge = maybe True (== 0) charge - charge = w ^? pointerToItemLocation (w ^?! cWorld . lWorld . itemLocations . ix itmloc) . itUse . leftConsumption . wpCharge + charge = w ^? pointerToItemLocation (w ^?! cWorld . lWorld . itemLocations . ix (_unNInt itmloc)) . itUse . leftConsumption . wpCharge doItemTimeScroll :: Int -> World -> World doItemTimeScroll smoothing w = case w ^? input . mouseButtons . ix ButtonLeft of @@ -206,7 +207,7 @@ scrollTimeBack w = case w ^? pastWorlds . _head of _ -> w where mupdateitem x = fromMaybe id $ do - i <- w ^? timeFlow . scrollItemLocation + i <- w ^? timeFlow . scrollItemID . unNInt let pointituse = pointerToItemLocation (w ^?! cWorld . lWorld . itemLocations . ix i) . itUse return $ (pointituse . leftConsumption . wpCharge .~ (x -1)) . ( pointituse . leftHammer .~ HammerDown) @@ -223,7 +224,7 @@ scrollTimeForward w = case w ^? timeFlow . futureWorlds . _head of where ramount = (w ^?! timeFlow . reverseAmount) + 1 mupdateitem = fromMaybe id $ do - i <- w ^? timeFlow . scrollItemLocation + i <- w ^? timeFlow . scrollItemID . unNInt return $ pointerToItemLocation (w ^?! cWorld . lWorld . itemLocations . ix i) . itUse . leftConsumption . wpCharge .~ ramount -- | The update step. diff --git a/tags b/tags index a7b75a467..988517e1f 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 130;" t +AimParams src/Dodge/Data/Item/Use.hs 135;" 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 186;" t +AimStance src/Dodge/Data/Item/Use.hs 191;" 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 @@ -72,20 +72,20 @@ Ambush src/Dodge/Data/ActionPlan.hs 178;" C Ammo src/Dodge/Data/Ammo.hs 4;" m Ammo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 6;" m Ammo src/Dodge/Item/Ammo.hs 1;" m -AmmoCI src/Dodge/Data/ComposedItem.hs 37;" C AmmoInLink src/Dodge/Data/ComposedItem.hs 16;" C -AmmoMagSF src/Dodge/Data/ComposedItem.hs 27;" C +AmmoMagSF src/Dodge/Data/ComposedItem.hs 28;" C AmmoMagType src/Dodge/Data/Item/Combine.hs 107;" t AmmoMagUse src/Dodge/Data/Item/Use.hs 67;" C AmmoModLink src/Dodge/Data/ComposedItem.hs 17;" C -AmmoModifierCI src/Dodge/Data/ComposedItem.hs 36;" C -AmmoModifierSF src/Dodge/Data/ComposedItem.hs 30;" C -AmmoParams src/Dodge/Data/Item/Use.hs 116;" t +AmmoModifierSF src/Dodge/Data/ComposedItem.hs 31;" C +AmmoParams src/Dodge/Data/Item/Use.hs 121;" t AmmoParams src/Dodge/Item/Weapon/AmmoParams.hs 1;" m AmmoPosition src/Dodge/Item/AmmoPosition.hs 8;" t AmmoPosition src/Dodge/Item/AmmoPosition.hs 2;" m +AmmoTargetingLink src/Dodge/Data/ComposedItem.hs 18;" C +AmmoTargetingSF src/Dodge/Data/ComposedItem.hs 32;" C AmmoType src/Dodge/Data/Ammo.hs 30;" t -AmmoType src/Dodge/Data/Item/Use/Consumption/Ammo.hs 34;" t +AmmoType src/Dodge/Data/Item/Use/Consumption/Ammo.hs 32;" t Amount src/Dodge/Item/Amount.hs 1;" m AnRoom src/Dodge/Annotation/Data.hs 17;" C AnTree src/Dodge/Annotation/Data.hs 18;" C @@ -149,7 +149,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 28;" C -AutoTrigger src/Dodge/Data/Item/Use.hs 79;" C +AutoTrigger src/Dodge/Data/Item/Use.hs 84;" 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 @@ -222,11 +222,11 @@ 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 97;" C +BeamShooterParams src/Dodge/Data/Item/Use.hs 102;" 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 -BeltBulletAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 37;" C +BeltBulletAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 35;" C Bezier src/Dodge/Item/Weapon/Bezier.hs 1;" m Bezier src/Geometry/Bezier.hs 1;" m BezierTrajectory src/Dodge/Data/Bullet.hs 52;" C @@ -298,14 +298,14 @@ Bullet src/Dodge/Bullet.hs 1;" m Bullet src/Dodge/Data/Bullet.hs 6;" m Bullet src/Dodge/Item/Weapon/Bullet.hs 1;" m BulletAmmo src/Dodge/Data/Ammo.hs 37;" C -BulletAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 36;" C -BulletBeltAttachment src/Dodge/Data/Item.hs 54;" C -BulletClipAttachment src/Dodge/Data/Item.hs 53;" C +BulletAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 34;" C +BulletBeltAttachment src/Dodge/Data/Item.hs 55;" C +BulletClipAttachment src/Dodge/Data/Item.hs 54;" C BulletEffect src/Dodge/Data/Bullet.hs 36;" t BulletGun src/Dodge/Item/Held/BulletGun.hs 1;" m BulletGuns src/Dodge/Item/Weapon/BulletGuns.hs 1;" m -BulletParams src/Dodge/Data/Item/Use.hs 117;" C -BulletShooterParams src/Dodge/Data/Item/Use.hs 101;" C +BulletParams src/Dodge/Data/Item/Use.hs 122;" C +BulletShooterParams src/Dodge/Data/Item/Use.hs 106;" C BulletSpawn src/Dodge/Data/Bullet.hs 42;" t BulletTrajectory src/Dodge/Data/Bullet.hs 50;" t BulletTrajectoryType src/Dodge/Data/Bullet.hs 57;" t @@ -394,7 +394,7 @@ ChaseCritters src/Dodge/Data/Creature/State.hs 38;" C Check src/Framebuffer/Check.hs 1;" m CheckConsistency src/Dodge/Room/CheckConsistency.hs 1;" m CheckSlots src/Dodge/Inventory/CheckSlots.hs 1;" m -ChemFuel src/Dodge/Data/Item/Use/Consumption/Ammo.hs 46;" C +ChemFuel src/Dodge/Data/Item/Use/Consumption/Ammo.hs 44;" C ChooseMovementLtAuto src/Dodge/Data/CreatureEffect.hs 62;" C ChooseMovementSpreadGun src/Dodge/Data/CreatureEffect.hs 61;" C ChooseTarget src/Dodge/Creature/ChooseTarget.hs 1;" m @@ -426,7 +426,7 @@ Cognizant src/Dodge/Creature/AlertLevel/Data.hs 27;" C Cognizant src/Dodge/Creature/Perception/Data.hs 74;" C Cognizant src/Dodge/Data/Creature/Perception.hs 67;" C Collide src/Dodge/Base/Collide.hs 14;" m -CollisionEffectPU src/Dodge/Data/Item/Use/Consumption/Ammo.hs 31;" C +CollisionEffectPU src/Dodge/Data/Item/Use/Consumption/Ammo.hs 29;" C Collision_test src/Dodge/Data/Config.hs 84;" C Color src/Color/Data.hs 33;" t Color src/Color.hs 1;" m @@ -451,7 +451,6 @@ Common src/Dodge/Zoning/Common.hs 1;" m Compile src/Shader/Compile.hs 1;" m Compose src/Dodge/Tree/Compose.hs 4;" m ComposeLinkType src/Dodge/Data/ComposedItem.hs 15;" t -ComposedItem src/Dodge/Data/ComposedItem.hs 33;" t ComposedItem src/Dodge/Data/ComposedItem.hs 6;" m Composite src/Picture/Composite.hs 1;" m ComsSS src/Dodge/Data/Scenario.hs 98;" C @@ -541,17 +540,15 @@ Create src/Dodge/Projectile/Create.hs 1;" m Create src/Dodge/Prop/Create.hs 1;" m Create src/Dodge/Wall/Create.hs 1;" m CreateFlame src/Dodge/Data/Gas.hs 6;" C -CreateFlame src/Dodge/Data/Item/Use/Consumption/Ammo.hs 49;" C +CreateFlame src/Dodge/Data/Item/Use/Consumption/Ammo.hs 47;" C CreateHeldLight src/Dodge/Data/ItEffect.hs 41;" C CreateHeldLight src/Dodge/Data/Item/Effect.hs 25;" C CreatePoisonGas src/Dodge/Data/Gas.hs 6;" C -CreatePoisonGas src/Dodge/Data/Item/Use/Consumption/Ammo.hs 49;" C +CreatePoisonGas src/Dodge/Data/Item/Use/Consumption/Ammo.hs 47;" C CreateShell src/Dodge/Data/Ammo.hs 17;" C -CreateShell src/Dodge/Data/Item/Use/Consumption/Ammo.hs 21;" C CreateShieldWall src/Dodge/Data/ItEffect.hs 42;" C CreateShieldWall src/Dodge/Data/Item/Effect.hs 26;" C CreateTrackingShell src/Dodge/Data/Ammo.hs 17;" C -CreateTrackingShell src/Dodge/Data/Item/Use/Consumption/Ammo.hs 21;" C Creature src/Dodge/Data/Creature.hs 38;" t Creature src/Dodge/Creature.hs 1;" m Creature src/Dodge/Data/Creature.hs 7;" m @@ -673,9 +670,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 142;" C -DefaultForceField src/Dodge/Data/Item/Use/Consumption/Ammo.hs 43;" C -DefaultHeldParams src/Dodge/Data/Item/Use.hs 84;" C +DefaultFlareType src/Dodge/Data/Item/Use.hs 147;" C +DefaultForceField src/Dodge/Data/Item/Use/Consumption/Ammo.hs 41;" C +DefaultHeldParams src/Dodge/Data/Item/Use.hs 89;" 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 @@ -686,7 +683,7 @@ DestroyBeing src/Dodge/Data/Scenario.hs 8;" C DestroyBullet src/Dodge/Data/Bullet.hs 37;" C DestroyDamage src/Dodge/Particle/Bullet/DestroyDamage.hs 1;" m DestroyItem src/Dodge/Data/Scenario.hs 7;" C -DestroyPU src/Dodge/Data/Item/Use/Consumption/Ammo.hs 29;" C +DestroyPU src/Dodge/Data/Item/Use/Consumption/Ammo.hs 27;" C DestroyTLS src/Dodge/Data/LightSource.hs 22;" C Detector src/Dodge/Combine/Data.hs 224;" t Detector src/Dodge/Data/Item/Combine.hs 220;" t @@ -772,19 +769,19 @@ Draw src/Dodge/Tesla/Arc/Draw.hs 1;" m Draw src/Dodge/TractorBeam/Draw.hs 1;" m Draw src/Dodge/Wall/Draw.hs 1;" m DrawBlankProjectile src/Dodge/Data/Ammo.hs 14;" C -DrawBlankProjectile src/Dodge/Data/Item/Use/Consumption/Ammo.hs 18;" C +DrawBlankProjectile src/Dodge/Data/Item/Use/Consumption/Ammo.hs 19;" C DrawDrone src/Dodge/Data/Ammo.hs 14;" C -DrawDrone src/Dodge/Data/Item/Use/Consumption/Ammo.hs 18;" C +DrawDrone src/Dodge/Data/Item/Use/Consumption/Ammo.hs 19;" C DrawForceField src/Dodge/Data/Wall.hs 45;" C DrawNoButton src/Dodge/Data/Button.hs 19;" C DrawRemoteShell src/Dodge/Data/Ammo.hs 14;" C -DrawRemoteShell src/Dodge/Data/Item/Use/Consumption/Ammo.hs 18;" C +DrawRemoteShell src/Dodge/Data/Item/Use/Consumption/Ammo.hs 19;" C DrawShell src/Dodge/Data/Ammo.hs 14;" C -DrawShell src/Dodge/Data/Item/Use/Consumption/Ammo.hs 18;" C +DrawShell src/Dodge/Data/Item/Use/Consumption/Ammo.hs 19;" C DrawnWall src/Dodge/Data/Wall.hs 41;" C Drone src/Dodge/Item/Weapon/Drone.hs 1;" m DroneAmmo src/Dodge/Data/Ammo.hs 41;" C -DroneAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 39;" C +DroneAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 37;" C DropAll src/Dodge/Creature/State/Data.hs 15;" C DropAll src/Dodge/Data/Creature/State.hs 24;" C DropAmount src/Dodge/Creature/State/Data.hs 16;" C @@ -834,7 +831,7 @@ EffectWhileRoot src/Dodge/Data/Item/Effect.hs 28;" C EighthRes src/Dodge/Data/Config.hs 95;" C Either src/Dodge/Layout/Tree/Either.hs 4;" m Eldritch src/Dodge/Data/Scenario.hs 34;" C -ElectricalAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 38;" C +ElectricalAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 36;" C Electronics src/Dodge/Data/Material.hs 11;" C EllShad src/Picture/Data.hs 41;" C Enable_debug src/Dodge/Data/Config.hs 68;" C @@ -955,7 +952,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 141;" t +FlareType src/Dodge/Data/Item/Use.hs 146;" t Flash src/Dodge/WorldEvent/Flash.hs 11;" m FlashBall src/Dodge/Data/Bullet.hs 33;" C FlatFaces src/Shape/Data.hs 17;" C @@ -997,7 +994,7 @@ FootstepSound src/Dodge/Data/SoundOrigin.hs 27;" C ForceField src/Dodge/ForceField.hs 1;" m ForceField src/Dodge/Wall/ForceField.hs 1;" m ForceFieldAmmo src/Dodge/Data/Ammo.hs 47;" C -ForceFieldType src/Dodge/Data/Item/Use/Consumption/Ammo.hs 43;" t +ForceFieldType src/Dodge/Data/Item/Use/Consumption/Ammo.hs 41;" t Foreground src/Dodge/Default/Foreground.hs 1;" m Foreground src/Dodge/Room/Foreground.hs 1;" m ForegroundShape src/Dodge/Data/ForegroundShape.hs 14;" t @@ -1027,13 +1024,13 @@ GameRoom src/Dodge/GameRoom.hs 8;" m Gas src/Dodge/Data/Gas.hs 3;" m Gas src/Dodge/Gas.hs 1;" m GasAmmo src/Dodge/Data/Ammo.hs 43;" C -GasAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 40;" C +GasAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 38;" C GasCloud src/Dodge/Data/Cloud.hs 31;" C GasCreate src/Dodge/Data/Gas.hs 6;" t -GasCreate src/Dodge/Data/Item/Use/Consumption/Ammo.hs 49;" t -GasFuel src/Dodge/Data/Item/Use/Consumption/Ammo.hs 46;" t -GasParams src/Dodge/Data/Item/Use.hs 122;" C -GasSprayParams src/Dodge/Data/Item/Use.hs 85;" C +GasCreate src/Dodge/Data/Item/Use/Consumption/Ammo.hs 47;" t +GasFuel src/Dodge/Data/Item/Use/Consumption/Ammo.hs 44;" t +GasParams src/Dodge/Data/Item/Use.hs 127;" C +GasSprayParams src/Dodge/Data/Item/Use.hs 90;" 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 @@ -1098,6 +1095,7 @@ HELD src/Dodge/Combine/Data.hs 86;" C HELD src/Dodge/Data/Item/Combine.hs 86;" C HELDDETECTOR src/Dodge/Combine/Data.hs 190;" C HELDDETECTOR src/Dodge/Data/Item/Combine.hs 199;" C +HOMINGMODULE src/Dodge/Data/Item/Combine.hs 102;" C HOSE src/Dodge/Data/Item/Combine.hs 34;" C HPtLayer src/Dodge/Picture/Layer/Data.hs 17;" C HUD src/Dodge/Data/HUD.hs 35;" t @@ -1111,13 +1109,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 80;" C +HammerTrigger src/Dodge/Data/Item/Use.hs 85;" 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 145;" C +HeavySmokeFlare src/Dodge/Data/Item/Use.hs 150;" 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 @@ -1131,7 +1129,7 @@ HeldItemType src/Dodge/Combine/Data.hs 133;" t HeldItemType src/Dodge/Data/Item/Combine.hs 159;" t HeldMod src/Dodge/Data/Item/HeldUse.hs 59;" t HeldOffset src/Dodge/Item/HeldOffset.hs 1;" m -HeldParams src/Dodge/Data/Item/Use.hs 83;" t +HeldParams src/Dodge/Data/Item/Use.hs 88;" 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 @@ -1196,14 +1194,14 @@ ImpulsesList src/Dodge/Data/ActionPlan.hs 97;" C InDivineZone src/Dodge/Data/Scenario.hs 22;" C InDream src/Dodge/Data/Scenario.hs 19;" C InGame src/Dodge/Update/Input/InGame.hs 1;" m -InInv src/Dodge/Data/Item/Location.hs 26;" C +InInv src/Dodge/Data/Item/Location.hs 28;" C InLink src/Dodge/Data/Room.hs 44;" C InLink src/Dodge/Room/Data.hs 44;" C InParallelUniverse src/Dodge/Data/Scenario.hs 21;" C InPlacement src/Dodge/Data/GenWorld.hs 133;" t InRealWorld src/Dodge/Data/Scenario.hs 18;" C InSimulation src/Dodge/Data/Scenario.hs 20;" C -InVoid src/Dodge/Data/Item/Location.hs 35;" C +InVoid src/Dodge/Data/Item/Location.hs 37;" C Inanimate src/Dodge/Data/ActionPlan.hs 17;" C Inanimate src/Dodge/Creature/Inanimate.hs 5;" m InanimateAI src/Dodge/Data/Creature/Misc.hs 51;" C @@ -1275,40 +1273,41 @@ ItEffect src/Dodge/Data/ItEffect.hs 5;" m ItEffect src/Dodge/ItEffect.hs 1;" m ItFloorEffect src/Dodge/Data/ItEffect.hs 46;" t ItFloorEffect src/Dodge/Data/Item/Effect.hs 31;" t -ItID src/Dodge/Data/Item.hs 33;" t +ItID src/Dodge/Data/Item.hs 34;" t ItInvEffect src/Dodge/Data/ItEffect.hs 36;" t ItInvEffect src/Dodge/Data/Item/Effect.hs 19;" t 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 195;" t -Item src/Dodge/Data/Item.hs 36;" t +ItZoom src/Dodge/Data/Item/Use.hs 200;" t +Item src/Dodge/Data/Item.hs 37;" t Item src/Dodge/Base/Item.hs 1;" m Item src/Dodge/Data/Item.hs 6;" m Item src/Dodge/Default/Item.hs 1;" m Item src/Dodge/Item.hs 1;" m ItemAmount src/Dodge/Data/Item/Use/Amount.hs 4;" m ItemAmount src/Dodge/Data/ItemAmount.hs 4;" m -ItemAttachment src/Dodge/Data/Item.hs 52;" t +ItemAttachment src/Dodge/Data/Item.hs 53;" t ItemBaseType src/Dodge/Combine/Data.hs 81;" t ItemBaseType src/Dodge/Data/Item/Combine.hs 85;" t ItemClust src/Dodge/Combine/Graph.hs 18;" C ItemDimension src/Dodge/Data/Item/Misc.hs 13;" t ItemFamily src/Dodge/Item/Family.hs 3;" t -ItemLocation src/Dodge/Data/Item/Location.hs 25;" t +ItemLocation src/Dodge/Data/Item/Location.hs 27;" t ItemModuleType src/Dodge/Combine/Data.hs 197;" t ItemModuleType src/Dodge/Data/Item/Combine.hs 205;" t ItemParams src/Dodge/Data/Item/Params.hs 16;" t ItemParams src/Dodge/Tesla/ItemParams.hs 1;" m ItemScrollTimeFlow src/Dodge/Data/World.hs 61;" C ItemSpace src/Dodge/Inventory/ItemSpace.hs 1;" m -ItemStructuralFunction src/Dodge/Data/ComposedItem.hs 23;" t +ItemStructuralFunction src/Dodge/Data/ComposedItem.hs 24;" t ItemTweaks src/Dodge/Data/Item/Tweak.hs 13;" t ItemType src/Dodge/Combine/Data.hs 12;" t ItemType src/Dodge/Data/Item/Combine.hs 16;" t ItemUnlocker src/Dodge/Lock/Data.hs 13;" C ItemUse src/Dodge/Data/Item/Use.hs 34;" t +ItmInt src/Dodge/Data/Item/Location.hs 24;" t JETPACK src/Dodge/Combine/Data.hs 116;" C JETPACK src/Dodge/Data/Item/Combine.hs 138;" C JGK src/Control/Foldl/JGK.hs 1;" m @@ -1342,7 +1341,7 @@ LBoost src/Dodge/Data/Item/HeldUse.hs 56;" 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 59;" t +LDTComb src/Dodge/Item/Grammar.hs 60;" 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 @@ -1385,7 +1384,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 146;" C +LasGunFlare src/Dodge/Data/Item/Use.hs 151;" C LasSound src/Dodge/Data/SoundOrigin.hs 26;" C LasTurret src/Dodge/Room/LasTurret.hs 1;" m Laser src/Dodge/Data/Laser.hs 28;" t @@ -1442,8 +1441,8 @@ LinearShockwave src/Dodge/Data/LinearShockwave.hs 13;" t LinearShockwave src/Dodge/Data/LinearShockwave.hs 6;" m Link src/Dodge/Room/Link.hs 6;" m LinkDecoration src/Dodge/Debug/LinkDecoration.hs 1;" m -LinkTest src/Dodge/Data/ComposedItem.hs 44;" t -LinkUpdate src/Dodge/Data/ComposedItem.hs 49;" t +LinkTest src/Dodge/Data/ComposedItem.hs 37;" t +LinkUpdate src/Dodge/Data/ComposedItem.hs 42;" t List src/Dodge/Combine/List.hs 1;" m List src/Dodge/Render/List.hs 1;" m ListDisplayParams src/Dodge/Data/SelectionList.hs 18;" t @@ -1594,7 +1593,7 @@ 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 144;" C +MiniGunFlare src/Dodge/Data/Item/Use.hs 149;" 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 @@ -1654,18 +1653,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 167;" t -MuzzleDetector src/Dodge/Data/Item/Use.hs 164;" C -MuzzleEffect src/Dodge/Data/Item/Use.hs 150;" t +Muzzle src/Dodge/Data/Item/Use.hs 172;" t +MuzzleDetector src/Dodge/Data/Item/Use.hs 169;" C +MuzzleEffect src/Dodge/Data/Item/Use.hs 155;" t MuzzleEffect src/Dodge/Data/MuzzleEffect.hs 5;" m -MuzzleForceField src/Dodge/Data/Item/Use.hs 163;" C -MuzzleLaser src/Dodge/Data/Item/Use.hs 152;" C -MuzzleLauncher src/Dodge/Data/Item/Use.hs 155;" C -MuzzleNozzle src/Dodge/Data/Item/Use.hs 156;" C -MuzzleShatter src/Dodge/Data/Item/Use.hs 162;" C -MuzzleShootBullet src/Dodge/Data/Item/Use.hs 151;" C -MuzzleTesla src/Dodge/Data/Item/Use.hs 153;" C -MuzzleTractor src/Dodge/Data/Item/Use.hs 154;" C +MuzzleForceField src/Dodge/Data/Item/Use.hs 168;" C +MuzzleLaser src/Dodge/Data/Item/Use.hs 157;" C +MuzzleLauncher src/Dodge/Data/Item/Use.hs 160;" C +MuzzleNozzle src/Dodge/Data/Item/Use.hs 161;" C +MuzzleShatter src/Dodge/Data/Item/Use.hs 167;" C +MuzzleShootBullet src/Dodge/Data/Item/Use.hs 156;" C +MuzzleTesla src/Dodge/Data/Item/Use.hs 158;" C +MuzzleTractor src/Dodge/Data/Item/Use.hs 159;" C MvForward src/Dodge/Data/ActionPlan.hs 35;" C MvPt src/Dodge/MvPt.hs 1;" m MvTurnToward src/Dodge/Data/ActionPlan.hs 34;" C @@ -1815,7 +1814,7 @@ OnBack src/Dodge/Equipment/Data.hs 20;" C OnChest src/Dodge/Data/Equipment/Misc.hs 22;" C OnChest src/Dodge/Equipment/Data.hs 19;" C OnEdge src/Dodge/Data/Room.hs 46;" C -OnFloor src/Dodge/Data/Item/Location.hs 34;" C +OnFloor src/Dodge/Data/Item/Location.hs 36;" C OnHead src/Dodge/Data/Equipment/Misc.hs 21;" C OnHead src/Dodge/Equipment/Data.hs 18;" C OnLeftWrist src/Dodge/Data/Equipment/Misc.hs 24;" C @@ -1827,10 +1826,10 @@ OnRightWrist src/Dodge/Data/Equipment/Misc.hs 25;" C OnRightWrist src/Dodge/Equipment/Data.hs 22;" C OnSpecial src/Dodge/Data/Equipment/Misc.hs 27;" C OnSpecial src/Dodge/Equipment/Data.hs 24;" C -OnTurret src/Dodge/Data/Item/Location.hs 33;" 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 190;" C +OneHand src/Dodge/Data/Item/Use.hs 195;" 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 @@ -1903,7 +1902,7 @@ ParamMID src/Dodge/Data/Item/Params.hs 54;" C Parameters src/Shader/Parameters.hs 1;" m Parameters src/Shape/Parameters.hs 1;" m Params src/Dodge/Data/Item/Params.hs 6;" m -PartiallyComposedItem src/Dodge/Data/ComposedItem.hs 42;" t +PartiallyComposedItem src/Dodge/Data/ComposedItem.hs 35;" t PassKey src/Dodge/Item/PassKey.hs 1;" m PassthroughLockKeyLists src/Dodge/Annotation/Data.hs 19;" C Path src/Dodge/Path.hs 2;" m @@ -1943,7 +1942,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 143;" C +PistolFlare src/Dodge/Data/Item/Use.hs 148;" C PistolMod src/Dodge/Data/Item/HeldUse.hs 60;" C PlaceSpot src/Dodge/Placement/PlaceSpot.hs 4;" m Placement src/Dodge/Data/GenWorld.hs 77;" t @@ -1981,7 +1980,7 @@ PosPl src/Dodge/Room/Data.hs 45;" C PosRooms src/Dodge/Tree/Shift.hs 28;" t Posture src/Dodge/Creature/Stance/Data.hs 42;" t Posture src/Dodge/Data/Creature/Stance.hs 38;" t -PowerSourceAttachment src/Dodge/Data/Item.hs 56;" C +PowerSourceAttachment src/Dodge/Data/Item.hs 57;" C PrWdLsId src/Dodge/Data/Prop.hs 70;" C PrWdLsLs src/Dodge/Data/Prop.hs 69;" t PrWdLsLs src/Dodge/PrWdLsLs.hs 1;" m @@ -2006,14 +2005,13 @@ Projectile src/Dodge/Data/Projectile.hs 14;" t Projectile src/Dodge/Data/Projectile.hs 6;" m Projectile src/Dodge/Projectile.hs 1;" m ProjectileAmmo src/Dodge/Data/Ammo.hs 31;" C -ProjectileAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 35;" C +ProjectileAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 33;" C ProjectileCreate src/Dodge/Data/Ammo.hs 17;" t -ProjectileCreate src/Dodge/Data/Item/Use/Consumption/Ammo.hs 21;" t ProjectileDraw src/Dodge/Data/Ammo.hs 14;" t -ProjectileDraw src/Dodge/Data/Item/Use/Consumption/Ammo.hs 18;" t -ProjectileParams src/Dodge/Data/Item/Use.hs 118;" C +ProjectileDraw src/Dodge/Data/Item/Use/Consumption/Ammo.hs 19;" t +ProjectileParams src/Dodge/Data/Item/Use.hs 123;" C ProjectileUpdate src/Dodge/Data/Ammo.hs 20;" t -ProjectileUpdate src/Dodge/Data/Item/Use/Consumption/Ammo.hs 24;" t +ProjectileUpdate src/Dodge/Data/Item/Use/Consumption/Ammo.hs 22;" t Prop src/Dodge/Data/Prop.hs 18;" t Prop src/Dodge/Data/Prop.hs 6;" m Prop src/Dodge/Default/Prop.hs 1;" m @@ -2088,7 +2086,7 @@ RBList src/Dodge/Inventory/RBList.hs 1;" m RBranches src/TreeExtra.hs 48;" C RED src/Color/Data.hs 15;" C REMOTELAUNCHER src/Dodge/Combine/Data.hs 182;" C -REMOTESCREEN src/Dodge/Data/Item/Combine.hs 102;" C +REMOTESCREEN src/Dodge/Data/Item/Combine.hs 101;" C REPEATER src/Dodge/Combine/Data.hs 150;" C REVOLVEMAG src/Dodge/Data/Item/Combine.hs 108;" C REVOLVER src/Dodge/Combine/Data.hs 136;" C @@ -2099,7 +2097,6 @@ RGBA src/Color/Data.hs 31;" t RIFLE src/Dodge/Combine/Data.hs 149;" C RIFLE src/Dodge/Data/Item/Combine.hs 170;" C RLeaf src/TreeExtra.hs 49;" C -ROCKETHOMER src/Dodge/Data/Item/Combine.hs 101;" C ROSE src/Color/Data.hs 21;" C RPLinkStatus src/Dodge/Data/Room.hs 55;" t RProps src/Dodge/Layout/Generate.hs 13;" C @@ -2131,7 +2128,7 @@ ReactorSS src/Dodge/Data/Scenario.hs 111;" C ReaderUpdate src/Dodge/Creature/ReaderUpdate.hs 1;" m 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 28;" C +ReduceSpinPU src/Dodge/Data/Item/Use/Consumption/Ammo.hs 26;" C Reflect src/Dodge/Wall/Reflect.hs 1;" m Refracting src/Dodge/Data/Item/Params.hs 29;" C Regex src/Regex.hs 1;" m @@ -2142,11 +2139,11 @@ ReloadAction src/Dodge/Data/LoadAction.hs 26;" C ReloadStatus src/Dodge/Data/Item/Use/Consumption.hs 20;" t Reloading src/Dodge/Reloading.hs 1;" m Remote src/Dodge/Item/Weapon/Remote.hs 1;" m -RemoteDirectionPU src/Dodge/Data/Item/Use/Consumption/Ammo.hs 27;" C +RemoteDirectionPU src/Dodge/Data/Item/Use/Consumption/Ammo.hs 25;" C RemoteScope src/Dodge/Data/Item/Attachment.hs 23;" C RemoteScope src/Dodge/Item/Attachment/Data.hs 26;" C -RemoteScreenLink src/Dodge/Data/ComposedItem.hs 20;" C -RemoteScreenSF src/Dodge/Data/ComposedItem.hs 28;" C +RemoteScreenLink src/Dodge/Data/ComposedItem.hs 21;" C +RemoteScreenSF src/Dodge/Data/ComposedItem.hs 29;" C RemoveCreatureEndo src/Dodge/RemoveCreatureEndo.hs 3;" m RemoveEquipment src/Dodge/Data/RightButtonOptions.hs 36;" C RemoveShieldWall src/Dodge/Data/ItEffect.hs 43;" C @@ -2183,7 +2180,6 @@ RightButtonOptions src/Dodge/Data/RightButtonOptions.hs 6;" m RightForward src/Dodge/Creature/Stance/Data.hs 35;" C RightForward src/Dodge/Data/Creature/Stance.hs 33;" C RoadBlock src/Dodge/Room/RoadBlock.hs 2;" m -RocketRemoteScreenCI src/Dodge/Data/ComposedItem.hs 39;" C Rod src/Dodge/Item/Held/Rod.hs 1;" m Rod src/Dodge/Item/Weapon/BulletGun/Rod.hs 1;" m Room src/Dodge/Data/GenWorld.hs 96;" t @@ -2271,7 +2267,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 -ScopeAttachment src/Dodge/Data/Item.hs 52;" C +ScopeAttachment src/Dodge/Data/Item.hs 53;" C ScopeUse src/Dodge/Data/Item/Use.hs 72;" C ScreenLayer src/Dodge/Data/Universe.hs 77;" t ScreenLayer src/Dodge/Update/Input/ScreenLayer.hs 1;" m @@ -2448,7 +2444,7 @@ Stack src/Dodge/Data/Item/Combine.hs 24;" t Stance src/Dodge/Creature/Stance/Data.hs 11;" t Stance src/Dodge/Data/Creature/Stance.hs 13;" t Stance src/Dodge/Data/Creature/Stance.hs 6;" m -StandAttachment src/Dodge/Data/Item.hs 55;" C +StandAttachment src/Dodge/Data/Item.hs 56;" C StandaloneWall src/Dodge/Data/Wall.hs 49;" C Standing src/Dodge/Creature/Stance/Data.hs 25;" C Standing src/Dodge/Data/Creature/Stance.hs 25;" C @@ -2456,7 +2452,7 @@ Start src/Dodge/Room/Start.hs 3;" m StartNewGame src/Dodge/StartNewGame.hs 1;" m StartRoom src/Dodge/Layout/Tree/Annotate.hs 20;" C StartSentinelPost src/Dodge/Data/ActionPlan.hs 153;" C -StartSpinPU src/Dodge/Data/Item/Use/Consumption/Ammo.hs 26;" C +StartSpinPU src/Dodge/Data/Item/Use/Consumption/Ammo.hs 24;" C State src/Dodge/Creature/State.hs 1;" m State src/Dodge/Data/Creature/State.hs 6;" m StaticWalls src/Dodge/LevelGen/StaticWalls.hs 5;" m @@ -2568,6 +2564,7 @@ Targeting src/Dodge/Item/Targeting.hs 1;" m Targeting src/Dodge/Item/Weapon/Targeting.hs 1;" m Targeting src/Dodge/Targeting.hs 1;" m TargetingLaser src/Dodge/Data/Laser.hs 16;" C +TargetingUse src/Dodge/Data/Item/Use.hs 76;" 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 @@ -2619,7 +2616,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 147;" C +TeslaGunFlare src/Dodge/Data/Item/Use.hs 152;" C Test src/Dodge/Creature/Test.hs 8;" m Test src/Dodge/Event/Test.hs 1;" m Test src/Picture/Test.hs 1;" m @@ -2630,14 +2627,14 @@ Text src/Picture/Text.hs 1;" m TextShad src/Picture/Data.hs 39;" C ThingsHit src/Dodge/WorldEvent/ThingsHit.hs 6;" m ThirdPartyLens src/ThirdPartyLens.hs 2;" m -ThrustPU src/Dodge/Data/Item/Use/Consumption/Ammo.hs 25;" C +ThrustPU src/Dodge/Data/Item/Use/Consumption/Ammo.hs 23;" C Tile src/Data/Tile.hs 14;" t Tile src/Data/Tile.hs 3;" m Tile src/Dodge/Tile.hs 1;" m Tile src/Tile.hs 1;" m Tiled src/Data/Tile.hs 13;" C TimeFlowStatus src/Dodge/Data/World.hs 57;" t -TimePU src/Dodge/Data/Item/Use/Consumption/Ammo.hs 30;" C +TimePU src/Dodge/Data/Item/Use/Consumption/Ammo.hs 28;" C TimerTLS src/Dodge/Data/LightSource.hs 23;" C Tiny src/Shape/Data.hs 32;" C TmId src/Dodge/Data/Terminal.hs 58;" C @@ -2685,7 +2682,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 78;" t +TriggerType src/Dodge/Data/Item/Use.hs 83;" t TriggerType src/Dodge/Item/Weapon/TriggerType.hs 6;" m Tuple src/Tuple.hs 1;" m TurbineBaySS src/Dodge/Data/Scenario.hs 110;" C @@ -2712,14 +2709,13 @@ 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 189;" C -TwoHandOver src/Dodge/Data/Item/Use.hs 188;" C -TwoHandUnder src/Dodge/Data/Item/Use.hs 187;" C +TwoHandFlat src/Dodge/Data/Item/Use.hs 194;" C +TwoHandOver src/Dodge/Data/Item/Use.hs 193;" C +TwoHandUnder src/Dodge/Data/Item/Use.hs 192;" 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 -UncomposableCI src/Dodge/Data/ComposedItem.hs 38;" C -UncomposableIsolateSF src/Dodge/Data/ComposedItem.hs 29;" C +UncomposableIsolateSF src/Dodge/Data/ComposedItem.hs 30;" C Uncursed src/Dodge/Data/Item/CurseStatus.hs 12;" C Uncursed src/Dodge/Item/Data.hs 8;" C UnderGround src/Dodge/Data/Scenario.hs 78;" C @@ -2879,14 +2875,11 @@ WdWdNegateTrig src/Dodge/Data/WorldEffect.hs 33;" C WdYouPos src/Dodge/Data/WorldEffect.hs 41;" C Weapon src/Dodge/Default/Weapon.hs 1;" m Weapon src/Dodge/Item/Weapon.hs 2;" m -WeaponCI src/Dodge/Data/ComposedItem.hs 33;" C -WeaponPlatformSF src/Dodge/Data/ComposedItem.hs 24;" C -WeaponScopeCI src/Dodge/Data/ComposedItem.hs 34;" C -WeaponScopeLink src/Dodge/Data/ComposedItem.hs 18;" C -WeaponScopeSF src/Dodge/Data/ComposedItem.hs 25;" C -WeaponTargetingCI src/Dodge/Data/ComposedItem.hs 35;" C -WeaponTargetingLink src/Dodge/Data/ComposedItem.hs 19;" C -WeaponTargetingSF src/Dodge/Data/ComposedItem.hs 26;" C +WeaponPlatformSF src/Dodge/Data/ComposedItem.hs 25;" C +WeaponScopeLink src/Dodge/Data/ComposedItem.hs 19;" C +WeaponScopeSF src/Dodge/Data/ComposedItem.hs 26;" C +WeaponTargetingLink src/Dodge/Data/ComposedItem.hs 20;" C +WeaponTargetingSF src/Dodge/Data/ComposedItem.hs 27;" C Weapons src/Dodge/Item/Held/Weapons.hs 1;" m West src/Dodge/Data/CardinalPoint.hs 7;" C WinScale src/Dodge/Base/WinScale.hs 1;" m @@ -2943,13 +2936,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 136;" f -_aimMuzzles src/Dodge/Data/Item/Use.hs 137;" f -_aimRange src/Dodge/Data/Item/Use.hs 133;" f -_aimStance src/Dodge/Data/Item/Use.hs 135;" f -_aimTurnSpeed src/Dodge/Data/Item/Use.hs 132;" f -_aimWeight src/Dodge/Data/Item/Use.hs 131;" f -_aimZoom src/Dodge/Data/Item/Use.hs 134;" f +_aimHandlePos src/Dodge/Data/Item/Use.hs 141;" f +_aimMuzzles src/Dodge/Data/Item/Use.hs 142;" f +_aimRange src/Dodge/Data/Item/Use.hs 138;" f +_aimStance src/Dodge/Data/Item/Use.hs 140;" f +_aimTurnSpeed src/Dodge/Data/Item/Use.hs 137;" f +_aimWeight src/Dodge/Data/Item/Use.hs 136;" f +_aimZoom src/Dodge/Data/Item/Use.hs 139;" 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 @@ -2974,9 +2967,9 @@ _amagLoadStatus src/Dodge/Data/Item/Use.hs 68;" f _amagParams src/Dodge/Data/Item/Use.hs 69;" f _amagType src/Dodge/Data/Item/Use.hs 70;" f _ambushTarget src/Dodge/Data/ActionPlan.hs 178;" f -_ampBullet src/Dodge/Data/Item/Use.hs 117;" f -_ampCreateGas src/Dodge/Data/Item/Use.hs 122;" f -_ampPayload src/Dodge/Data/Item/Use.hs 119;" f +_ampBullet src/Dodge/Data/Item/Use.hs 122;" f +_ampCreateGas src/Dodge/Data/Item/Use.hs 127;" f +_ampPayload src/Dodge/Data/Item/Use.hs 124;" 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 @@ -3082,9 +3075,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 91;" f -_bulGunSound src/Dodge/Data/Item/Use.hs 98;" f -_bulGunSound src/Dodge/Data/Item/Use.hs 108;" f +_bulGunSound src/Dodge/Data/Item/Use.hs 96;" f +_bulGunSound src/Dodge/Data/Item/Use.hs 103;" f +_bulGunSound src/Dodge/Data/Item/Use.hs 113;" 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 @@ -3405,7 +3398,7 @@ _futureWorlds src/Dodge/Data/World.hs 64;" f _futureWorlds src/Dodge/Data/World.hs 70;" 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 86;" f +_gasCreation src/Dodge/Data/Item/Use.hs 91;" 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 @@ -3488,13 +3481,13 @@ _ieMID src/Dodge/Data/ItEffect.hs 27;" f _ieMID src/Dodge/Data/ItEffect.hs 32;" f _ieOnDrop src/Dodge/Data/Item/Effect.hs 15;" f _ieOnInsert src/Dodge/Data/Item/Effect.hs 14;" f -_ilCrID src/Dodge/Data/Item/Location.hs 27;" f -_ilFlID src/Dodge/Data/Item/Location.hs 34;" f -_ilInvID src/Dodge/Data/Item/Location.hs 28;" f -_ilIsAttached src/Dodge/Data/Item/Location.hs 31;" f -_ilIsRoot src/Dodge/Data/Item/Location.hs 29;" f -_ilIsSelected src/Dodge/Data/Item/Location.hs 30;" f -_ilTuID src/Dodge/Data/Item/Location.hs 33;" f +_ilCrID src/Dodge/Data/Item/Location.hs 29;" f +_ilFlID src/Dodge/Data/Item/Location.hs 36;" f +_ilInvID src/Dodge/Data/Item/Location.hs 30;" f +_ilIsAttached src/Dodge/Data/Item/Location.hs 33;" f +_ilIsRoot src/Dodge/Data/Item/Location.hs 31;" f +_ilIsSelected src/Dodge/Data/Item/Location.hs 32;" f +_ilTuID src/Dodge/Data/Item/Location.hs 35;" f _imAttachedItems src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 26;" f _imRootItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 25;" f _imSelectedItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 24;" f @@ -3522,27 +3515,27 @@ _iselPos src/Dodge/Data/Creature/Capability.hs 22;" f _iselPos src/Dodge/Data/Creature/InvSel.hs 14;" f _iselPos src/Dodge/Data/LoadAction.hs 19;" f _ispCloseObject src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 30;" f -_itAttachments src/Dodge/Data/Item.hs 48;" f -_itCurseStatus src/Dodge/Data/Item.hs 44;" f -_itDimension src/Dodge/Data/Item.hs 43;" f -_itEffect src/Dodge/Data/Item.hs 41;" f -_itID src/Dodge/Data/Item.hs 39;" f -_itInvSize src/Dodge/Data/Item.hs 42;" f -_itLocation src/Dodge/Data/Item.hs 40;" f -_itParams src/Dodge/Data/Item.hs 47;" f -_itTweaks src/Dodge/Data/Item.hs 45;" f -_itType src/Dodge/Data/Item.hs 38;" f -_itUse src/Dodge/Data/Item.hs 37;" f -_itUseAimStance src/Dodge/Data/Item.hs 59;" f +_itAttachments src/Dodge/Data/Item.hs 49;" f +_itCurseStatus src/Dodge/Data/Item.hs 45;" f +_itDimension src/Dodge/Data/Item.hs 44;" f +_itEffect src/Dodge/Data/Item.hs 42;" f +_itID src/Dodge/Data/Item.hs 40;" f +_itInvSize src/Dodge/Data/Item.hs 43;" f +_itLocation src/Dodge/Data/Item.hs 41;" f +_itParams src/Dodge/Data/Item.hs 48;" f +_itTweaks src/Dodge/Data/Item.hs 46;" f +_itType src/Dodge/Data/Item.hs 39;" f +_itUse src/Dodge/Data/Item.hs 38;" f +_itUseAimStance src/Dodge/Data/Item.hs 60;" f _itemLocations src/Dodge/Data/LWorld.hs 101;" f _iyBase src/Dodge/Combine/Data.hs 13;" f _iyBase src/Dodge/Data/Item/Combine.hs 17;" f _iyModules src/Dodge/Combine/Data.hs 14;" f _iyModules src/Dodge/Data/Item/Combine.hs 18;" f _iyStack src/Dodge/Combine/Data.hs 15;" f -_izFac src/Dodge/Data/Item/Use.hs 198;" f -_izMax src/Dodge/Data/Item/Use.hs 196;" f -_izMin src/Dodge/Data/Item/Use.hs 197;" f +_izFac src/Dodge/Data/Item/Use.hs 203;" f +_izMax src/Dodge/Data/Item/Use.hs 201;" f +_izMin src/Dodge/Data/Item/Use.hs 202;" 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 @@ -3607,9 +3600,9 @@ _lsParam src/Dodge/Data/LightSource.hs 36;" f _lsPict src/Dodge/Data/LightSource.hs 38;" f _lsPos src/Dodge/Data/LightSource.hs 28;" f _lsRad src/Dodge/Data/LightSource.hs 29;" f -_luChildUpdate src/Dodge/Data/ComposedItem.hs 52;" f -_luLinkType src/Dodge/Data/ComposedItem.hs 50;" f -_luParentUpdate src/Dodge/Data/ComposedItem.hs 51;" f +_luChildUpdate src/Dodge/Data/ComposedItem.hs 45;" f +_luLinkType src/Dodge/Data/ComposedItem.hs 43;" f +_luParentUpdate src/Dodge/Data/ComposedItem.hs 44;" f _lwID src/Dodge/Data/LinearShockwave.hs 15;" f _lwPoints src/Dodge/Data/LinearShockwave.hs 16;" f _lwPos src/Dodge/Data/LinearShockwave.hs 14;" f @@ -3668,18 +3661,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 102;" f +_muzVel src/Dodge/Data/Item/Use.hs 107;" 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 171;" f -_mzEffect src/Dodge/Data/Item/Use.hs 173;" f -_mzFlareType src/Dodge/Data/Item/Use.hs 172;" f -_mzInaccuracy src/Dodge/Data/Item/Use.hs 170;" f -_mzPos src/Dodge/Data/Item/Use.hs 168;" f -_mzRot src/Dodge/Data/Item/Use.hs 169;" f +_mzAmmoSlot src/Dodge/Data/Item/Use.hs 176;" f +_mzEffect src/Dodge/Data/Item/Use.hs 178;" f +_mzFlareType src/Dodge/Data/Item/Use.hs 177;" f +_mzInaccuracy src/Dodge/Data/Item/Use.hs 175;" f +_mzPos src/Dodge/Data/Item/Use.hs 173;" f +_mzRot src/Dodge/Data/Item/Use.hs 174;" f _newArcStep src/Dodge/Data/Item/Params.hs 51;" f _newBeams src/Dodge/Data/LWorld.hs 115;" f _noClip src/Dodge/Debug/Flag/Data.hs 7;" f @@ -3690,10 +3683,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 159;" f -_nzMaxWalkAngle src/Dodge/Data/Item/Use.hs 158;" f -_nzPressure src/Dodge/Data/Item/Use.hs 157;" f -_nzWalkSpeed src/Dodge/Data/Item/Use.hs 160;" f +_nzCurrentWalkAngle src/Dodge/Data/Item/Use.hs 164;" f +_nzMaxWalkAngle src/Dodge/Data/Item/Use.hs 163;" f +_nzPressure src/Dodge/Data/Item/Use.hs 162;" f +_nzWalkSpeed src/Dodge/Data/Item/Use.hs 165;" 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 @@ -3730,26 +3723,26 @@ _piercedPoints src/Dodge/Creature/State/Data.hs 23;" f _piercedPoints src/Dodge/Data/Creature/State.hs 30;" f _pjuCID src/Dodge/Data/Ammo.hs 22;" f _pjuCID src/Dodge/Data/Ammo.hs 25;" f -_pjuCID src/Dodge/Data/Item/Use/Consumption/Ammo.hs 26;" f -_pjuControllerID src/Dodge/Data/Item/Use/Consumption/Ammo.hs 27;" f +_pjuCID src/Dodge/Data/Item/Use/Consumption/Ammo.hs 24;" f +_pjuControllerID src/Dodge/Data/Item/Use/Consumption/Ammo.hs 25;" f _pjuEnd src/Dodge/Data/Ammo.hs 21;" f _pjuEnd src/Dodge/Data/Ammo.hs 25;" f -_pjuEnd src/Dodge/Data/Item/Use/Consumption/Ammo.hs 25;" f +_pjuEnd src/Dodge/Data/Item/Use/Consumption/Ammo.hs 23;" f _pjuITID src/Dodge/Data/Ammo.hs 23;" f _pjuITID src/Dodge/Data/Ammo.hs 26;" f _pjuPJID src/Dodge/Data/Ammo.hs 27;" f _pjuReduceSpin src/Dodge/Data/Ammo.hs 24;" f -_pjuReduceSpin src/Dodge/Data/Item/Use/Consumption/Ammo.hs 28;" f -_pjuScreenID src/Dodge/Data/Item/Use/Consumption/Ammo.hs 29;" f +_pjuReduceSpin src/Dodge/Data/Item/Use/Consumption/Ammo.hs 26;" f +_pjuScreenID src/Dodge/Data/Item/Use/Consumption/Ammo.hs 27;" f _pjuSpinAmound src/Dodge/Data/Ammo.hs 22;" f -_pjuSpinAmound src/Dodge/Data/Item/Use/Consumption/Ammo.hs 26;" f +_pjuSpinAmound src/Dodge/Data/Item/Use/Consumption/Ammo.hs 24;" f _pjuStart src/Dodge/Data/Ammo.hs 21;" f _pjuStart src/Dodge/Data/Ammo.hs 25;" f -_pjuStart src/Dodge/Data/Item/Use/Consumption/Ammo.hs 25;" f +_pjuStart src/Dodge/Data/Item/Use/Consumption/Ammo.hs 23;" f _pjuTime src/Dodge/Data/Ammo.hs 22;" f -_pjuTime src/Dodge/Data/Item/Use/Consumption/Ammo.hs 26;" f +_pjuTime src/Dodge/Data/Item/Use/Consumption/Ammo.hs 24;" f _pjuTimer src/Dodge/Data/Ammo.hs 27;" f -_pjuTimer src/Dodge/Data/Item/Use/Consumption/Ammo.hs 29;" f +_pjuTimer src/Dodge/Data/Item/Use/Consumption/Ammo.hs 27;" f _plIDCont src/Dodge/Data/GenWorld.hs 83;" f _plMID src/Dodge/Data/GenWorld.hs 82;" f _plOrder src/Dodge/Data/GenWorld.hs 79;" f @@ -3847,8 +3840,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 40;" f -_randomOffset src/Dodge/Data/Item/Use.hs 89;" f -_randomOffset src/Dodge/Data/Item/Use.hs 106;" f +_randomOffset src/Dodge/Data/Item/Use.hs 94;" f +_randomOffset src/Dodge/Data/Item/Use.hs 111;" 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 @@ -3870,14 +3863,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 87;" f -_recoil src/Dodge/Data/Item/Use.hs 104;" f +_recoil src/Dodge/Data/Item/Use.hs 92;" f +_recoil src/Dodge/Data/Item/Use.hs 109;" f _reloadAction src/Dodge/Data/LoadAction.hs 26;" f _renderData src/Data/Preload.hs 11;" f _reverseAmount src/Dodge/Data/World.hs 63;" f _reverseAmount src/Dodge/Data/World.hs 69;" f _reverseAmount src/Dodge/Data/World.hs 73;" f -_rifling src/Dodge/Data/Item/Use.hs 103;" f +_rifling src/Dodge/Data/Item/Use.hs 108;" 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 @@ -4021,8 +4014,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 90;" f -_sidePush src/Dodge/Data/Item/Use.hs 107;" f +_sidePush src/Dodge/Data/Item/Use.hs 95;" f +_sidePush src/Dodge/Data/Item/Use.hs 112;" 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 @@ -4110,9 +4103,12 @@ _teslaArcs src/Dodge/Data/LWorld.hs 117;" f _testFloat src/Dodge/Data/World.hs 44;" f _textInput src/Dodge/Data/Input.hs 30;" f _textureObject src/Shader/Data.hs 95;" f +_tgActive src/Dodge/Data/Item/Use.hs 79;" f _tgActive src/Dodge/Data/Targeting.hs 16;" f _tgDraw src/Dodge/Data/Targeting.hs 14;" f +_tgID src/Dodge/Data/Item/Use.hs 78;" f _tgID src/Dodge/Data/Targeting.hs 15;" f +_tgPos src/Dodge/Data/Item/Use.hs 77;" 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 @@ -4161,14 +4157,14 @@ _toPlaySoundVolume src/Sound/Data.hs 43;" f _toPlaySoundVolumeFraction src/Sound/Data.hs 44;" f _toPlaySounds src/Dodge/Data/World.hs 41;" f _topBoxSize src/Shape/Data.hs 17;" f -_torqueAfter src/Dodge/Data/Item/Use.hs 88;" f -_torqueAfter src/Dodge/Data/Item/Use.hs 105;" f +_torqueAfter src/Dodge/Data/Item/Use.hs 93;" f +_torqueAfter src/Dodge/Data/Item/Use.hs 110;" f _tractorBeams src/Dodge/Data/LWorld.hs 122;" f _trieChildren src/SimpleTrie.hs 7;" f _trieMVal src/SimpleTrie.hs 6;" f _triggers src/Dodge/Data/LWorld.hs 131;" f -_tryLeftLink src/Dodge/Data/ComposedItem.hs 45;" f -_tryRightLink src/Dodge/Data/ComposedItem.hs 46;" f +_tryLeftLink src/Dodge/Data/ComposedItem.hs 38;" f +_tryRightLink src/Dodge/Data/ComposedItem.hs 39;" f _ttDeathEffect src/Dodge/Data/Terminal.hs 82;" f _ttTriggerID src/Dodge/Data/Terminal.hs 81;" f _tuDir src/Dodge/Data/Machine.hs 61;" f @@ -4256,10 +4252,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 94;" f -_weaponInvLock src/Dodge/Data/Item/Use.hs 111;" f -_weaponRepeat src/Dodge/Data/Item/Use.hs 95;" f -_weaponRepeat src/Dodge/Data/Item/Use.hs 112;" f +_weaponInvLock src/Dodge/Data/Item/Use.hs 99;" f +_weaponInvLock src/Dodge/Data/Item/Use.hs 116;" f +_weaponRepeat src/Dodge/Data/Item/Use.hs 100;" f +_weaponRepeat src/Dodge/Data/Item/Use.hs 117;" 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 @@ -4523,7 +4519,7 @@ bangRod src/Dodge/Item/Weapon/BulletGun/Rod.hs 18;" f bangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 478;" f bangStick src/Dodge/Item/Held/Stick.hs 17;" f bangStick src/Dodge/Item/Weapon/BulletGun/Stick.hs 17;" f -bangStickSoundChoice src/Dodge/HeldUse.hs 448;" f +bangStickSoundChoice src/Dodge/HeldUse.hs 449;" 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 @@ -4558,7 +4554,7 @@ basicDrawBeam src/Dodge/Beam/Draw.hs 11;" f basicItemDisplay src/Dodge/Item/Display.hs 50;" f basicMachineApplyDamage src/Dodge/Machine/Damage.hs 6;" f basicMachineUpdate src/Dodge/Machine.hs 13;" f -basicMuzFlare src/Dodge/HeldUse.hs 161;" f +basicMuzFlare src/Dodge/HeldUse.hs 162;" f basicPerceptionUpdateR src/Dodge/Creature/AlertLevel.hs 17;" f basicTerminal src/Dodge/Terminal.hs 32;" f battery src/Dodge/Item/Ammo.hs 75;" f @@ -4656,7 +4652,7 @@ calcTexCoord src/Tile.hs 17;" f canAttachTargeting src/Dodge/Item/Display.hs 19;" f canSee src/Dodge/Base/Collide.hs 228;" f canSeeIndirect src/Dodge/Base/Collide.hs 235;" f -caneStickSoundChoice src/Dodge/HeldUse.hs 443;" f +caneStickSoundChoice src/Dodge/HeldUse.hs 444;" f cardList src/Dodge/Base/CardinalPoint.hs 6;" f cardVec src/Dodge/Base/CardinalPoint.hs 9;" f cardinalVectors src/Dodge/FloorItem.hs 39;" f @@ -4887,7 +4883,8 @@ 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 500;" f +createProjectile src/Dodge/HeldUse.hs 501;" f +createShell src/Dodge/Projectile/Create.hs 12;" f createShieldWall src/Dodge/Euse.hs 134;" f createTorchLightOffset src/Dodge/LightSource/Torch.hs 9;" f createUnusedLinkPos src/Dodge/Tree/Shift.hs 117;" f @@ -4998,7 +4995,7 @@ debugOn src/Dodge/Data/Config.hs 149;" f debugSelectCreatureList src/Dodge/Debug.hs 61;" f debugSelectCreatureMessage src/Dodge/Debug.hs 52;" f decTimMvVel src/Dodge/Item/Weapon/Shell.hs 9;" f -decTimMvVel src/Dodge/Projectile/Update.hs 125;" f +decTimMvVel src/Dodge/Projectile/Update.hs 124;" f decodedtmap src/Dodge/Terminal.hs 203;" f decomposeSelfTree src/Dodge/Tree/Compose.hs 60;" f decomposeTree src/Dodge/Tree/Compose.hs 57;" f @@ -5134,7 +5131,7 @@ destroyMatS src/Dodge/Material/Sound.hs 7;" f destroyMcType src/Dodge/Machine/Destroy.hs 21;" f destroyMount src/Dodge/Block.hs 98;" f destroyMounts src/Dodge/Block.hs 95;" f -destroyProjectile src/Dodge/Projectile/Update.hs 61;" f +destroyProjectile src/Dodge/Projectile/Update.hs 60;" f detV src/Geometry/Vector.hs 93;" f detectorColor src/Dodge/Item/Draw/SPic.hs 504;" f detectorEffect src/Dodge/Item/Weapon/Radar.hs 19;" f @@ -5197,7 +5194,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 411;" f +doGenFloat src/Dodge/HeldUse.hs 412;" f doInPlacements src/Dodge/Layout.hs 92;" f doIndividualPlacements src/Dodge/Layout.hs 117;" f doInputScreenInput src/Dodge/Update/Input/ScreenLayer.hs 25;" f @@ -5237,7 +5234,7 @@ doTerminalEffectLB src/Dodge/Terminal/LeftButton.hs 12;" f doTestDrawing src/Dodge/Render.hs 42;" f doTextInputOver src/Dodge/Update/Input/Text.hs 15;" f doTextInputOverUniverse src/Dodge/Update/Input/Text.hs 12;" f -doThrust src/Dodge/Projectile/Update.hs 72;" f +doThrust src/Dodge/Projectile/Update.hs 71;" f doTimeScroll src/Dodge/Update.hs 185;" f doTmTm src/Dodge/TmTm.hs 6;" f doTmWdWd src/Dodge/WorldEffect.hs 109;" f @@ -5448,7 +5445,7 @@ expireAndDamage src/Dodge/Bullet.hs 183;" f expireAndDamage src/Dodge/Particle/HitEffect/ExpireAndDamage.hs 11;" f expireAndDamageFL src/Dodge/Flame.hs 48;" f explodeRemoteRocket src/Dodge/Item/Weapon/Launcher.hs 11;" f -explodeShell src/Dodge/Projectile/Update.hs 137;" f +explodeShell src/Dodge/Projectile/Update.hs 136;" f explosionFlashAt src/Dodge/WorldEvent/Flash.hs 56;" f explosionS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 396;" f explosiveBarrel src/Dodge/Creature/Inanimate.hs 29;" f @@ -5485,7 +5482,6 @@ findWithIx src/ListHelp.hs 123;" f fireLoudS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 504;" f fireS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 332;" f fireSound src/Dodge/SoundLogic/Synonyms.hs 4;" f -fireTrackingShell src/Dodge/Projectile/Create.hs 12;" f firstBreather src/Dodge/Room/Breather.hs 9;" f firstWorldLoad appDodge/Main.hs 77;" f fixedCoordPictures src/Dodge/Render/Picture.hs 17;" f @@ -5584,7 +5580,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 407;" f +gasCreate src/Dodge/HeldUse.hs 408;" f generateGenParams src/Dodge/LevelGen/LevelStructure.hs 22;" f generateGraphs src/Dodge/LevelGen.hs 39;" f generateLayout src/Dodge/Layout/Generate.hs 10;" f @@ -5729,6 +5725,7 @@ holdForm src/Dodge/Creature/Boid.hs 136;" f holsterWeapon src/Dodge/Creature/Volition.hs 14;" f holsterWeaponSound src/Dodge/SoundLogic/Synonyms.hs 4;" f homingLaunchers src/Dodge/Combine/Combinations.hs 225;" f +homingModule src/Dodge/Item/Scope.hs 25;" f horPipe src/Dodge/Placement/Instance/Pipe.hs 9;" f hotkeyToScancode src/Dodge/Creature/YourControl.hs 55;" f hotkeyToString src/Dodge/Inventory/SelectionList.hs 51;" f @@ -5822,20 +5819,20 @@ 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 127;" f +invAdj src/Dodge/Item/Grammar.hs 128;" f invDimColor src/Dodge/DisplayInventory.hs 140;" f invDimColor src/Dodge/Inventory/Color.hs 4;" f invDisplayParams src/Dodge/ListDisplayParams.hs 29;" f invHead src/Dodge/Render/HUD.hs 296;" f -invIndentIM src/Dodge/Item/Grammar.hs 139;" f -invLDT src/Dodge/Item/Grammar.hs 98;" f -invRootMap src/Dodge/Item/Grammar.hs 116;" f +invIndentIM src/Dodge/Item/Grammar.hs 140;" f +invLDT src/Dodge/Item/Grammar.hs 99;" f +invRootMap src/Dodge/Item/Grammar.hs 117;" f invSelectionItem src/Dodge/Inventory/SelectionList.hs 35;" f invSelectionItem' src/Dodge/Inventory/SelectionList.hs 17;" f invShiftPointBy src/Dodge/ShiftPoint.hs 8;" f invSideEff src/Dodge/Creature/State.hs 236;" f invSize src/Dodge/Inventory/CheckSlots.hs 40;" f -invTrees src/Dodge/Item/Grammar.hs 143;" f +invTrees src/Dodge/Item/Grammar.hs 144;" f inventoryExtra src/Dodge/Render/HUD.hs 189;" f inventoryExtraH src/Dodge/Render/HUD.hs 193;" f inventoryX src/Dodge/Creature.hs 115;" f @@ -5845,7 +5842,7 @@ invertIntMap src/Multiset.hs 61;" f invertInventoryToMap src/Dodge/Combine.hs 25;" f invisibleChaseCrit src/Dodge/Creature/ChaseCrit.hs 25;" f invisibleWall src/Dodge/Placement/Instance/Wall.hs 16;" f -isAmmoIntLink src/Dodge/HeldUse.hs 182;" f +isAmmoIntLink src/Dodge/HeldUse.hs 183;" f isAnimate src/Dodge/Creature/Test.hs 138;" f isCognizant src/Dodge/Creature/Perception.hs 105;" f isElectrical src/Dodge/Data/Damage.hs 42;" f @@ -5883,7 +5880,7 @@ itemBlips src/Dodge/Item/Weapon/UseEffect.hs 38;" f itemBlips src/Dodge/RadarSweep.hs 75;" f itemCombinations src/Dodge/Combine/Combinations.hs 54;" f itemCombinationsEdges src/Dodge/Combine/Graph.hs 55;" f -itemDetectorEffect src/Dodge/HeldUse.hs 204;" f +itemDetectorEffect src/Dodge/HeldUse.hs 205;" f itemDisplay src/Dodge/Item/Display.hs 33;" f itemDisplayPad src/Dodge/Item/Display.hs 45;" f itemEffect src/Dodge/Creature/Action/UseItem.hs 28;" f @@ -5892,10 +5889,10 @@ itemEquipPict src/Dodge/Item/Draw.hs 17;" f itemFromAmmoMag src/Dodge/Item.hs 29;" f itemFromAttachType src/Dodge/Item.hs 39;" f itemFromBase src/Dodge/Item.hs 19;" f -itemFromConsumableType src/Dodge/Item.hs 48;" f -itemFromEquipType src/Dodge/Item.hs 53;" f +itemFromConsumableType src/Dodge/Item.hs 49;" f +itemFromEquipType src/Dodge/Item.hs 54;" f itemFromHeldType src/Dodge/Item/Held.hs 25;" f -itemFromLeftType src/Dodge/Item.hs 75;" f +itemFromLeftType src/Dodge/Item.hs 76;" f itemInfo src/Dodge/Item/Info.hs 10;" f itemInvColor src/Dodge/Item/InventoryColor.hs 7;" f itemInvSideEffect src/Dodge/Creature/State.hs 249;" f @@ -5917,7 +5914,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 92;" f -joinItemsInList src/Dodge/Item/Grammar.hs 89;" f +joinItemsInList src/Dodge/Item/Grammar.hs 90;" 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 @@ -5982,10 +5979,10 @@ 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 109;" f -leftIsParentCombine src/Dodge/Item/Grammar.hs 61;" f +leftIsParentCombine src/Dodge/Item/Grammar.hs 62;" f leftItemSPic src/Dodge/Item/Draw/SPic.hs 72;" f leftPad src/Padding.hs 14;" f -leftRightCombine src/Dodge/Item/Grammar.hs 73;" f +leftRightCombine src/Dodge/Item/Grammar.hs 74;" f legsSPic src/Dodge/Item/Draw/SPic.hs 528;" f liShape src/Dodge/Placement/Instance/LightSource.hs 99;" f liShape src/Dodge/Placements/LightSource.hs 55;" f @@ -6087,7 +6084,7 @@ makeArc src/Picture/Base.hs 157;" 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 279;" f +makeBullet src/Dodge/HeldUse.hs 280;" f makeButton src/Dodge/LevelGen/Switch.hs 16;" f makeByteStringShaderUsingVAO src/Shader/Compile.hs 137;" f makeCloudAt src/Dodge/WorldEvent/Cloud.hs 18;" f @@ -6117,7 +6114,7 @@ makeGrid src/Grid.hs 46;" f makeIntInterval src/Dodge/Zoning/Base.hs 33;" f makeLaserAt src/Dodge/Item/Weapon/Laser.hs 42;" f makeLaserScope src/Dodge/Item/Weapon/Decoration.hs 12;" f -makeMuzzleFlare src/Dodge/HeldUse.hs 145;" f +makeMuzzleFlare src/Dodge/HeldUse.hs 146;" f makeOptionsSelectionList src/Dodge/Menu/Option.hs 46;" f makeParagraph src/Justify.hs 6;" f makePathBetween src/Dodge/Path.hs 35;" f @@ -6179,10 +6176,10 @@ mcProximitySensorUpdate src/Dodge/Machine/Update.hs 104;" f mcSPic src/Dodge/Render/ShapePicture.hs 170;" f mcSensorTriggerUpdate src/Dodge/Machine/Update.hs 69;" f mcSensorUpdate src/Dodge/Machine/Update.hs 99;" f -mcShootLaser src/Dodge/HeldUse.hs 463;" f +mcShootLaser src/Dodge/HeldUse.hs 464;" f mcTriggerVal src/Dodge/Machine/Update.hs 75;" f mcTypeUpdate src/Dodge/Machine/Update.hs 24;" f -mcUseHeld src/Dodge/HeldUse.hs 304;" f +mcUseHeld src/Dodge/HeldUse.hs 305;" f mcUseItem src/Dodge/Machine/Update.hs 61;" f medkit src/Dodge/Item/Consumable.hs 8;" f megaBattery src/Dodge/Item/Ammo.hs 70;" f @@ -6491,7 +6488,7 @@ pistol src/Dodge/Item/Held/Stick.hs 35;" f pistol src/Dodge/Item/Weapon/BulletGun/Stick.hs 59;" f pistolCrit src/Dodge/Creature/PistolCrit.hs 13;" f pistolerRoom src/Dodge/Room/Room.hs 323;" f -pjRemoteSetDirection src/Dodge/Projectile/Update.hs 111;" f +pjRemoteSetDirection src/Dodge/Projectile/Update.hs 110;" f plBlock src/Dodge/Placement/PlaceSpot/Block.hs 18;" f plDoor src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 22;" f plLineBlock src/Dodge/Placement/PlaceSpot/Block.hs 50;" f @@ -6791,7 +6788,7 @@ rectXH src/Geometry/Polygon.hs 36;" f rectXY src/Geometry/Polygon.hs 39;" f rectanglePairs src/Dodge/LevelGen/DoorPane.hs 7;" f red src/Color.hs 14;" f -reduceSpinBy src/Dodge/Projectile/Update.hs 122;" f +reduceSpinBy src/Dodge/Projectile/Update.hs 121;" f reflDirWall src/Dodge/Base/Wall.hs 16;" f reflDirWall src/Dodge/Wall/Reflect.hs 6;" f reflVelWall src/Dodge/Base/Wall.hs 24;" f @@ -6815,9 +6812,9 @@ reloadS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 426;" f reloadSound src/Dodge/SoundLogic/Synonyms.hs 4;" f rememberSounds src/Dodge/Creature/Perception.hs 177;" f remoteBombUnarmedPic src/Dodge/Item/Weapon/Grenade.hs 268;" f -remoteScreen src/Dodge/Item/Scope.hs 24;" f +remoteScreen src/Dodge/Item/Scope.hs 31;" f remoteShellShape src/Dodge/Projectile/Draw.hs 41;" f -removeAmmoFromMag src/Dodge/HeldUse.hs 262;" f +removeAmmoFromMag src/Dodge/HeldUse.hs 263;" f removeEither src/Dodge/Layout/Tree/Either.hs 41;" f removeHotkey src/Dodge/Hotkey.hs 41;" f removeInverseWalls src/Dodge/LevelGen/StaticWalls.hs 25;" f @@ -6873,7 +6870,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 67;" f +rightIsParentCombine src/Dodge/Item/Grammar.hs 68;" f rightPad src/Padding.hs 22;" f rightPadNoSquash src/Padding.hs 26;" f rlPosDir src/Dodge/RoomLink.hs 94;" f @@ -6882,7 +6879,6 @@ rmInvItem src/Dodge/Inventory.hs 54;" f rmLinksOfType src/Dodge/RoomLink.hs 135;" f rmOutLinks src/Dodge/RoomLink.hs 138;" f rmSelectedInvItem src/Dodge/Inventory.hs 187;" f -rocketHomer src/Dodge/Item/Ammo.hs 108;" f roomC src/Dodge/Room/Room.hs 39;" f roomCCrits src/Dodge/Room/Room.hs 262;" f roomCenterPillar src/Dodge/Room/Room.hs 121;" f @@ -7098,8 +7094,8 @@ shardShape src/Dodge/Block/Debris.hs 181;" f shatterGun src/Dodge/Item/Held/Weapons.hs 8;" f shatterGunSPic src/Dodge/Item/Draw/SPic.hs 239;" f shatterWall src/Dodge/Item/Weapon/Shatter.hs 26;" f -shellCollisionCheck src/Dodge/Projectile/Update.hs 50;" f -shellCollisionEffect src/Dodge/Projectile/Update.hs 46;" f +shellCollisionCheck src/Dodge/Projectile/Update.hs 49;" f +shellCollisionEffect src/Dodge/Projectile/Update.hs 45;" f shellMag src/Dodge/Item/Ammo.hs 54;" f shellShape src/Dodge/Projectile/Draw.hs 26;" f shellTrailCloud src/Dodge/WorldEvent/Cloud.hs 65;" f @@ -7129,7 +7125,7 @@ shootBangCone src/Dodge/HeldUse/BulletWeapon.hs 98;" f shootBangRod src/Dodge/HeldUse/BulletWeapon.hs 185;" f shootBangstick src/Dodge/HeldUse/BulletWeapon.hs 9;" f shootBezier src/Dodge/Item/Weapon/Bezier.hs 51;" f -shootBullet src/Dodge/HeldUse.hs 267;" f +shootBullet src/Dodge/HeldUse.hs 268;" f shootBurstRifle src/Dodge/HeldUse/BulletWeapon.hs 164;" f shootBurstRifleRepeat src/Dodge/HeldUse/BulletWeapon.hs 176;" f shootElephantGun src/Dodge/HeldUse/BulletWeapon.hs 196;" f @@ -7139,7 +7135,7 @@ shootFlameSpitterRepeat src/Dodge/HeldUse/SprayWeapon.hs 19;" f shootFlameThrower src/Dodge/HeldUse/SprayWeapon.hs 26;" f shootL src/Dodge/Item/Weapon/TriggerType.hs 298;" f shootLaser src/Dodge/Item/Weapon/BatteryGuns.hs 77;" f -shootLaser' src/Dodge/HeldUse.hs 245;" f +shootLaser' src/Dodge/HeldUse.hs 246;" f shootMachineGun src/Dodge/HeldUse/BulletWeapon.hs 218;" f shootMachinePistol src/Dodge/HeldUse/BulletWeapon.hs 62;" f shootMiniGun src/Dodge/HeldUse/BulletWeapon.hs 113;" f @@ -7150,9 +7146,9 @@ shootRevolverXRepeat src/Dodge/HeldUse/BulletWeapon.hs 49;" f shootRifle src/Dodge/HeldUse/BulletWeapon.hs 140;" f shootShatter src/Dodge/Item/Weapon/Shatter.hs 12;" f shootSmgMod src/Dodge/HeldUse/BulletWeapon.hs 86;" f -shootTeslaArc src/Dodge/HeldUse.hs 472;" f +shootTeslaArc src/Dodge/HeldUse.hs 473;" f shootTillEmpty src/Dodge/Creature/Volition.hs 18;" f -shootTractorBeam src/Dodge/HeldUse.hs 224;" f +shootTractorBeam src/Dodge/HeldUse.hs 225;" f shootVolleyGun src/Dodge/HeldUse/BulletWeapon.hs 128;" f shootersRoom src/Dodge/Room/Room.hs 317;" f shootersRoom' src/Dodge/Room/Room.hs 282;" f @@ -7316,7 +7312,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 269;" f +stackedInventory src/Dodge/Creature.hs 275;" f startCr src/Dodge/Creature.hs 91;" f startCrafts src/Dodge/Room/Start.hs 102;" f startInvList src/Dodge/Creature.hs 109;" f @@ -7409,7 +7405,7 @@ targetYouWhenCognizant src/Dodge/Creature/ReaderUpdate.hs 194;" f targetYouWhenCognizant src/Dodge/Creature/SetTarget.hs 9;" f targetingHat src/Dodge/Item/Equipment.hs 111;" f targetingInfo src/Dodge/Item/Info.hs 141;" f -targetingScope src/Dodge/Item/Scope.hs 18;" f +targetingScope src/Dodge/Item/Scope.hs 19;" f telRoomLev src/Dodge/Room/Teleport.hs 14;" f teleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 378;" f teleSound src/Dodge/SoundLogic/Synonyms.hs 4;" f @@ -7429,7 +7425,7 @@ teslaParams src/Dodge/Tesla/ItemParams.hs 6;" f testCrossWalls src/Dodge/Room/Path.hs 47;" f testEvent src/Dodge/Event/Test.hs 10;" f testEventKey src/Dodge/Config/KeyConfig.hs 27;" f -testInventory src/Dodge/Creature.hs 245;" f +testInventory src/Dodge/Creature.hs 251;" f testPic src/Dodge/Render/ShapePicture.hs 154;" f testStringInit src/Dodge/TestString.hs 22;" f text src/Picture/Base.hs 193;" f @@ -7508,7 +7504,7 @@ torqueCr src/Dodge/WorldEffect.hs 70;" f torso src/Dodge/Creature/Picture.hs 132;" f tractCr src/Dodge/TractorBeam/Update.hs 28;" f tractFlIt src/Dodge/TractorBeam/Update.hs 23;" f -tractorBeamAt src/Dodge/HeldUse.hs 234;" f +tractorBeamAt src/Dodge/HeldUse.hs 235;" f tractorGun src/Dodge/Item/Held/BatteryGuns.hs 86;" f tractorGunPic src/Dodge/Item/Draw/SPic.hs 485;" f tractorGunTweak src/Dodge/Item/Held/BatteryGuns.hs 104;" f @@ -7599,7 +7595,7 @@ tryPutFloorItemIDInInv src/Dodge/Inventory/Add.hs 23;" f tryPutItemInInv src/Dodge/Inventory/Add.hs 29;" f trySeedFromClipboard src/Dodge/Menu.hs 88;" f trySiphonFuel src/Dodge/Euse.hs 46;" f -trySpinByCID src/Dodge/Projectile/Update.hs 93;" f +trySpinByCID src/Dodge/Projectile/Update.hs 92;" f tryStartLoadMagazine src/Dodge/Reloading.hs 57;" f tryStartLoading src/Dodge/Reloading.hs 50;" f tryUseItem src/Dodge/Creature/Action/UseItem.hs 20;" f @@ -7642,7 +7638,7 @@ unusedSpotAwayFromLink src/Dodge/PlacementSpot.hs 122;" f unusedSpotNearInLink src/Dodge/PlacementSpot.hs 191;" f upCT src/Dodge/Targeting.hs 34;" f upHammer src/Dodge/Default.hs 77;" f -upProjectile src/Dodge/Projectile/Update.hs 24;" f +upProjectile src/Dodge/Projectile/Update.hs 23;" f updateAllNodes src/TreeHelp.hs 85;" f updateArc src/Dodge/Tesla/Arc.hs 86;" f updateAutoRecharge src/Dodge/Creature/State.hs 271;" f @@ -7713,7 +7709,7 @@ updatePreload src/Dodge/PreloadData.hs 12;" f updatePreload src/Preload/Update.hs 20;" f updatePressedButtonsCarte src/Dodge/Update/Input/InGame.hs 66;" f updatePressedButtonsCarte' src/Dodge/Update/Input/InGame.hs 69;" f -updateProjectile src/Dodge/Projectile/Update.hs 21;" f +updateProjectile src/Dodge/Projectile/Update.hs 20;" f updateProp src/Dodge/Prop/Update.hs 11;" f updateRBList src/Dodge/Inventory/RBList.hs 16;" f updateRadarBlip src/Dodge/RadarBlip.hs 8;" f @@ -7785,9 +7781,9 @@ 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 486;" f -useGasParams src/Dodge/HeldUse.hs 386;" f -useHeld src/Dodge/HeldUse.hs 309;" f +useForceFieldGun src/Dodge/HeldUse.hs 487;" f +useGasParams src/Dodge/HeldUse.hs 387;" f +useHeld src/Dodge/HeldUse.hs 310;" f useHotKey src/Dodge/Creature/YourControl.hs 49;" f useItem src/Dodge/Creature/Action/UseItem.hs 14;" f useItemHotkey src/Dodge/Creature/Impulse/UseItem.hs 127;" f @@ -7796,7 +7792,7 @@ useItemLeftClick' src/Dodge/Creature/Impulse/UseItem.hs 114;" f useL src/Dodge/Luse.hs 13;" f useLeftItem src/Dodge/Creature/Action/UseItem.hs 38;" f useLnkRoomPos src/Dodge/PlacementSpot.hs 244;" f -useLoadedAmmo src/Dodge/HeldUse.hs 186;" f +useLoadedAmmo src/Dodge/HeldUse.hs 187;" f useMagShield src/Dodge/Euse.hs 69;" f useNormalCamera src/Dodge/Camera.hs 6;" f usePayload src/Dodge/Payload.hs 7;" f @@ -7845,7 +7841,7 @@ 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 373;" f waistSP src/Dodge/Creature/HandPos.hs 199;" f -walkNozzle src/Dodge/HeldUse.hs 209;" f +walkNozzle src/Dodge/HeldUse.hs 210;" f walkableNodeNear src/Dodge/Path.hs 48;" f wallBlips src/Dodge/Item/Weapon/UseEffect.hs 43;" f wallBlips src/Dodge/RadarSweep.hs 80;" f @@ -8024,5 +8020,5 @@ zoomInKey src/Dodge/Config/KeyConfig.hs 31;" f zoomInLongGun src/Dodge/Update/Camera.hs 157;" f zoomOutKey src/Dodge/Config/KeyConfig.hs 32;" f zoomOutLongGun src/Dodge/Update/Camera.hs 165;" f -zoomScope src/Dodge/Item/Scope.hs 11;" f +zoomScope src/Dodge/Item/Scope.hs 12;" f zoomSpeed src/Dodge/Update/Camera.hs 154;" f