diff --git a/ghcidOutput b/ghcidOutput index b0f5d3a4b..27b38dfbb 100644 --- a/ghcidOutput +++ b/ghcidOutput @@ -1 +1,20 @@ -All good (619 modules, at 13:53:46) +/home/justin/Haskell/loop/src/Dodge/Creature/State.hs:250:19-20: warning: [-Wunused-matches] + Defined but not used: ‘cr’ + | +250 | itemInvSideEffect cr it + | ^^ +/home/justin/Haskell/loop/src/Dodge/Creature/State.hs:250:22-23: warning: [-Wunused-matches] + Defined but not used: ‘it’ + | +250 | itemInvSideEffect cr it + | ^^ +/home/justin/Haskell/loop/src/Dodge/Creature/State.hs:257:1-17: warning: [-Wunused-top-binds] + Defined but not used: ‘createAttachLight’ + | +257 | createAttachLight cr it = createTorchLightOffset cr it attachoff + | ^^^^^^^^^^^^^^^^^ +/home/justin/Haskell/loop/src/Dodge/Inventory/Add.hs:70:1-12: warning: [-Wunused-top-binds] + Defined but not used: ‘pickUpItemID’ + | +70 | pickUpItemID cid flid w = pickUpItem cid (w ^?! cWorld . lWorld . floorItems . ix flid) w + | ^^^^^^^^^^^^ diff --git a/src/Dodge/Creature/Action.hs b/src/Dodge/Creature/Action.hs index c040c9fcc..504241095 100644 --- a/src/Dodge/Creature/Action.hs +++ b/src/Dodge/Creature/Action.hs @@ -15,7 +15,7 @@ module Dodge.Creature.Action ( copyInvItemToFloor, youDropItem, pickUpItem, - pickUpItemID, +-- pickUpItemID, ) where import Control.Applicative @@ -210,8 +210,6 @@ copyInvItemToFloor :: Creature -> Int -> World -> World copyInvItemToFloor cr i = copyItemToFloor (_crPos cr) $ _crInv cr IM.! i - & itIsSelected .~ False - & itIsRoot .~ False sizeSelf :: Float -> Creature -> World -> Maybe World sizeSelf x cr w @@ -236,11 +234,3 @@ sizeSelf x cr w cid = _crID cr cpos = _crPos cr -pickUpItemID :: Int -> Int -> World -> World -pickUpItemID cid flid w = pickUpItem cid (w ^?! cWorld . lWorld . floorItems . ix flid) w - --- | Pick up a specific item. -pickUpItem :: Int -> FloorItem -> World -> World -pickUpItem cid flit w = - maybe w (soundStart (CrSound cid) (_flItPos flit) pickUpS Nothing . snd) $ - tryPutItemInInv cid flit w diff --git a/src/Dodge/Creature/Impulse/UseItem.hs b/src/Dodge/Creature/Impulse/UseItem.hs index fa9143999..b094a79e9 100644 --- a/src/Dodge/Creature/Impulse/UseItem.hs +++ b/src/Dodge/Creature/Impulse/UseItem.hs @@ -47,7 +47,7 @@ itemEffect cr it w = case it ^. ldtValue . itUse of itm = it ^. ldtValue doequipmentchange = fromMaybe w $ do guard (_crHammerPosition cr == HammerUp) - invid <- itm ^? itLocation . ipInvID + invid <- itm ^? itLocation . ilInvID return $ toggleEquipmentAt invid cr w toggleEquipmentAt :: Int -> Creature -> World -> World diff --git a/src/Dodge/Creature/State.hs b/src/Dodge/Creature/State.hs index dafc6de61..4de5f19f8 100644 --- a/src/Dodge/Creature/State.hs +++ b/src/Dodge/Creature/State.hs @@ -248,10 +248,10 @@ invSideEff cr w = itemInvSideEffect :: Creature -> Item -> World -> World itemInvSideEffect cr it - | hastorchattach = createAttachLight cr it +-- | hastorchattach = createAttachLight cr it | otherwise = id where - hastorchattach = it ^? itType . iyModules . ix ModHeldAttach == Just ATTACHTORCH && _itIsRoot it +-- hastorchattach = it ^? itType . iyModules . ix ModHeldAttach == Just ATTACHTORCH && _itIsRoot it createAttachLight :: Creature -> Item -> World -> World createAttachLight cr it = createTorchLightOffset cr it attachoff @@ -262,9 +262,9 @@ itemUpdate :: Creature -> Int -> Item -> Item itemUpdate cr i = updateAutoRecharge . (itUse %~ useUpdate) - . (itLocation .~ InInv (_crID cr) i) - . (itIsRoot .~ itmisroot) - . (itIsSelected .~ itmisselected) + . (itLocation .~ InInv (_crID cr) i itmisselected itmisroot) +-- . (itIsRoot .~ itmisroot) +-- . (itIsSelected .~ itmisselected) where itmisroot = Just i == (cr ^? crManipulation . manObject . inInventory . imRootItem) itmisselected = Just i == (cr ^? crManipulation . manObject . inInventory . imSelectedItem) diff --git a/src/Dodge/Cuse.hs b/src/Dodge/Cuse.hs index 5bfabaa25..098727512 100644 --- a/src/Dodge/Cuse.hs +++ b/src/Dodge/Cuse.hs @@ -7,7 +7,7 @@ import Data.Maybe useC :: Cuse -> Item -> Creature -> World -> World useC cu itm cr = fromMaybe id $ do - i <- itm ^? itLocation . ipInvID + i <- itm ^? itLocation . ilInvID return $ rmInvItem (_crID cr) i . useC' cu itm cr useC' :: Cuse -> Item -> Creature -> World -> World diff --git a/src/Dodge/Data/Item.hs b/src/Dodge/Data/Item.hs index 9caac3e12..7db2bc03b 100644 --- a/src/Dodge/Data/Item.hs +++ b/src/Dodge/Data/Item.hs @@ -35,8 +35,8 @@ data Item = Item , _itType :: ItemType , _itID :: Int , _itLocation :: ItemLocation - , _itIsRoot :: Bool - , _itIsSelected :: Bool +-- , _itIsRoot :: Bool +-- , _itIsSelected :: Bool , _itEffect :: ItEffect , _itInvSize :: Float , _itDimension :: ItemDimension diff --git a/src/Dodge/Data/Item/Location.hs b/src/Dodge/Data/Item/Location.hs index 7f0070c3b..545025917 100644 --- a/src/Dodge/Data/Item/Location.hs +++ b/src/Dodge/Data/Item/Location.hs @@ -9,9 +9,9 @@ import Data.Aeson import Data.Aeson.TH data ItemLocation - = InInv {_ipCrID :: Int, _ipInvID :: Int} - | OnTurret {_ipTuID :: Int} - | OnFloor {_ipFlID :: Int} + = InInv {_ilCrID :: Int, _ilInvID :: Int, _ilIsRoot :: Bool, _ilIsSelected :: Bool} + | OnTurret {_ilTuID :: Int} + | OnFloor {_ilFlID :: Int} | InVoid deriving (Eq, Show, Ord, Read) --Generic, Flat) diff --git a/src/Dodge/Default/Item.hs b/src/Dodge/Default/Item.hs index cd6f23463..09050c4f3 100644 --- a/src/Dodge/Default/Item.hs +++ b/src/Dodge/Default/Item.hs @@ -25,8 +25,6 @@ defaultHeldItem = Item , _itType = ItemType (HELD PISTOL) mempty , _itEffect = defaultItEffect , _itID = 0 - , _itIsRoot = False - , _itIsSelected = False , _itInvSize = 1 , _itLocation = InVoid , _itDimension = defaultItemDimension diff --git a/src/Dodge/Euse.hs b/src/Dodge/Euse.hs index 63760d77e..653f35193 100644 --- a/src/Dodge/Euse.hs +++ b/src/Dodge/Euse.hs @@ -102,7 +102,7 @@ setWristShieldPos itm cr w = w & moveWallIDUnsafe i wlline where i = _eparamID $ _eeParams $ _equipEffect $ _itUse itm wlline = (f (V3 (-10) 7 0), f (V3 10 7 0)) - invid = _ipInvID (_itLocation itm) + invid = _ilInvID (_itLocation itm) handtrans = case cr ^? crInvEquipped . ix invid of Just OnLeftWrist -> \cr' -> translatePointToLeftHand cr' . g _ -> translatePointToRightHand diff --git a/src/Dodge/HeldUse.hs b/src/Dodge/HeldUse.hs index 9a8cfd1a5..0e3253e9f 100644 --- a/src/Dodge/HeldUse.hs +++ b/src/Dodge/HeldUse.hs @@ -138,7 +138,7 @@ loadMuzzle t@(LDT _ l _) mz = fromMaybe (t,(mz, 0,Nothing)) $ do availableammo <- mag ^? ldtValue . itUse . amagLoadStatus . iaLoaded let usedammo = min amamount availableammo return (t & ldtLeft . ix i . _2 . ldtValue . itUse . amagLoadStatus . iaLoaded -~ usedammo - , (mz, usedammo, mag ^? ldtValue . itLocation . ipInvID) + , (mz, usedammo, mag ^? ldtValue . itLocation . ilInvID) ) makeMuzzleFlare :: Muzzle -> Item -> Creature -> World -> World @@ -204,7 +204,7 @@ itemDetectorEffect itm cr w = fromMaybe w $ do walkNozzle :: Int -> Muzzle -> Item -> Creature -> World -> World walkNozzle mzid mz itm cr w = fromMaybe w $ do - invid <- itm ^? itLocation . ipInvID + invid <- itm ^? itLocation . ilInvID return $ w & cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix invid . itUse . heldAim . aimMuzzles . ix mzid . mzEffect . nzCurrentWalkAngle .~ wa @@ -488,7 +488,7 @@ useForceFieldGun itm cr w = fromMaybe w $ do return $ w & cWorld . lWorld . walls %~ IM.insertWith (\_ x -> x) i forceField{_wlID = i} - & cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix (_ipInvID (_itLocation itm)) . itParams . paramMID ?~ i + & cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix (_ilInvID (_itLocation itm)) . itParams . paramMID ?~ i & moveWallIDUnsafe i wlline where i = fromMaybe (IM.newKey (_walls (_lWorld (_cWorld w)))) $ itm ^? itParams . paramMID . _Just diff --git a/src/Dodge/Inventory/Add.hs b/src/Dodge/Inventory/Add.hs index 941483b93..4c6c6256c 100644 --- a/src/Dodge/Inventory/Add.hs +++ b/src/Dodge/Inventory/Add.hs @@ -2,8 +2,10 @@ module Dodge.Inventory.Add ( tryPutItemInInv, createPutItem, createAndSelectItem, + pickUpItem, ) where +import Dodge.SoundLogic import Dodge.Inventory.FindRoot --import Dodge.Item.Grammar import Control.Lens @@ -16,16 +18,21 @@ import Dodge.FloorItem import Dodge.Inventory.CheckSlots import qualified IntMapHelp as IM -putItemInInvID :: Int -> Int -> World -> (Maybe Int, World) -putItemInInvID cid flid w = fromMaybe (Nothing, w) $ do - flit <- w ^? cWorld . lWorld . floorItems . ix flid - (i, w') <- tryPutItemInInv cid flit w - return (Just i, w') +--putItemInInvID :: Int -> Int -> World -> (Maybe Int, World) +--putItemInInvID cid flid w = fromMaybe (Nothing, w) $ do +-- flit <- w ^? cWorld . lWorld . floorItems . ix flid +-- (i, w') <- tryPutItemInInv cid flit w +-- return (Just i, w') putItemInInvSlot :: Int -> Item -> IM.IntMap Item -> IM.IntMap Item putItemInInvSlot = IM.insert --putItemInInvSlot = IM.insertWith (const $ itUse . useAmount +~ 1) +tryPutItemIDInInv :: Int -> Int -> World -> Maybe (Int, World) +tryPutItemIDInInv cid flitid w = do + flit <- w ^? cWorld . lWorld . floorItems . ix flitid + tryPutItemInInv cid flit w + -- | Pick up a specific item. tryPutItemInInv :: Int -> FloorItem -> World -> Maybe (Int, World) tryPutItemInInv cid flit w = case maybeInvSlot of @@ -41,7 +48,8 @@ tryPutItemInInv cid flit w = case maybeInvSlot of where it = _flIt flit maybeInvSlot = checkInvSlotsYou it w - updateItLocation invid w' = w' & cWorld . lWorld . itemLocations . ix (_itID it) .~ InInv cid invid + updateItLocation invid w' = w' & cWorld . lWorld . itemLocations . ix (_itID it) + .~ InInv cid invid False False createAndSelectItem :: Item -> World -> World createAndSelectItem itm w = case createPutItem itm w of @@ -53,6 +61,16 @@ createAndSelectItem itm w = case createPutItem itm w of (Nothing, w') -> w' createPutItem :: Item -> World -> (Maybe Int, World) -createPutItem it w = - uncurry (putItemInInvID 0) $ +createPutItem it w = fromMaybe (Nothing,w) $ do + (i,w') <- uncurry (tryPutItemIDInInv 0) $ copyItemToFloorID (_crPos $ you w) (applyModules it) w + return (Just i, w') + +pickUpItemID :: Int -> Int -> World -> World +pickUpItemID cid flid w = pickUpItem cid (w ^?! cWorld . lWorld . floorItems . ix flid) w + +-- | Pick up a specific item. +pickUpItem :: Int -> FloorItem -> World -> World +pickUpItem cid flit w = + maybe w (soundStart (CrSound cid) (_flItPos flit) pickUpS Nothing . snd) $ + tryPutItemInInv cid flit w diff --git a/src/Dodge/ItEffect.hs b/src/Dodge/ItEffect.hs index 9347c71c8..c3de716b5 100644 --- a/src/Dodge/ItEffect.hs +++ b/src/Dodge/ItEffect.hs @@ -23,7 +23,7 @@ doFloorEffect NoFloorEffect = const id onOffEff :: ItInvEffect -> ItInvEffect -> Item -> Creature -> World -> World onOffEff f g it - | _itIsRoot it = doInvEffect f it + | it ^? itLocation . ilIsRoot == Just True = doInvEffect f it | otherwise = doInvEffect g it --timeScrollEffect :: Item -> Creature -> World -> World @@ -37,14 +37,14 @@ setItemCharge :: Int -> Item -> Creature -> World -> World setItemCharge i itm cr w = w & ptrWpCharge %~ const i where - invid = _ipInvID $ _itLocation itm + invid = _ilInvID $ _itLocation itm ptrWpCharge = cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix invid . itUse . leftConsumption . wpCharge chargeIfInInventory :: Item -> Creature -> World -> World chargeIfInInventory itm cr w = w & ptrWpCharge %~ (min maxcharge . (+ 1)) where - invid = _ipInvID $ _itLocation itm + invid = _ilInvID $ _itLocation itm ptrWpCharge = cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix invid . itUse . leftConsumption . wpCharge maxcharge = itm ^?! itUse . leftConsumption . wpMaxCharge @@ -54,7 +54,7 @@ chargeIfEquipped itm cr ptrWpCharge %~ (min maxcharge . (+ 1)) | otherwise = ptrWpCharge .~ 0 where - invid = _ipInvID $ _itLocation itm + invid = _ilInvID $ _itLocation itm ptrWpCharge = cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix invid . itUse . leftConsumption . wpCharge maxcharge = itm ^?! itUse . leftConsumption . wpMaxCharge diff --git a/src/Dodge/Item/Draw.hs b/src/Dodge/Item/Draw.hs index 8b55f9d65..034baa9c1 100644 --- a/src/Dodge/Item/Draw.hs +++ b/src/Dodge/Item/Draw.hs @@ -16,10 +16,11 @@ import ShapePicture itemEquipPict :: Creature -> Item -> SPic itemEquipPict cr it = case it ^. itUse of - HeldUse{} | _itIsRoot it -> overPosSP (heldItemOffset it cr) (itemSPic it) + HeldUse{} | it ^? itLocation . ilIsRoot == Just True + -> overPosSP (heldItemOffset it cr) (itemSPic it) ituse -> fromMaybe mempty $ do attachpos <- ituse ^? equipEffect . eeAttachPos - i <- it ^? itLocation . ipInvID + i <- it ^? itLocation . ilInvID epos <- cr ^? crInvEquipped . ix i return $ equipPosition epos cr attachpos (itemSPic it) diff --git a/src/Dodge/Item/Grammar.hs b/src/Dodge/Item/Grammar.hs index 50df00868..703d98917 100644 --- a/src/Dodge/Item/Grammar.hs +++ b/src/Dodge/Item/Grammar.hs @@ -96,7 +96,7 @@ invAdj :: IM.IntMap Item -> IM.IntMap (Maybe (Int,Int),[Int],[Int]) invAdj = IM.unions . fmap (dtToLRAdj getid . ldtToDT) . invLDT where getid (itm, _,_,_) = fromMaybe (error "invAdj attempt to find item not in inventory") $ - itm ^? itLocation . ipInvID + itm ^? itLocation . ilInvID invIndentIM :: IM.IntMap Item -> IM.IntMap (Item,Int, LabelDoubleTreeNodeType ComposeLinkType ) invIndentIM = IM.fromAscList . zip [0..] . reverse . map (over _1 cisToItem) . concatMap ldtToIndentList . invLDT @@ -106,7 +106,7 @@ invTrees = IM.unions . map (ldtToIM getindex) . map (fmap cisToItem) . invLDT where getindex :: Item -> Int getindex i = fromMaybe (error "in invTrees try to get non-inventory item tree") $ - i ^? itLocation . ipInvID + i ^? itLocation . ilInvID --indentInv :: IM.IntMap Item -> [String] --indentInv = concat . fmap (flattenDT . indentDoubleTreeWith (' ':) ('|':) ('+':) . fmap const "") diff --git a/src/Dodge/Item/HeldOffset.hs b/src/Dodge/Item/HeldOffset.hs index 5e70d65b8..8c0343227 100644 --- a/src/Dodge/Item/HeldOffset.hs +++ b/src/Dodge/Item/HeldOffset.hs @@ -44,7 +44,7 @@ heldItemOffset itm cr | otherwise = id where handD = 15 - isroot = _itIsRoot itm + isroot = _ilIsRoot $ _itLocation itm -- should make safe? handPos = case cr ^? crStance . carriage of Just (Walking x LeftForward) -> f x * 50 _ -> 0 diff --git a/src/Dodge/Item/Location.hs b/src/Dodge/Item/Location.hs index d88f2c721..233845471 100644 --- a/src/Dodge/Item/Location.hs +++ b/src/Dodge/Item/Location.hs @@ -15,7 +15,8 @@ getItem itid w = do itpos <- w ^? cWorld . lWorld . itemLocations . ix itid case itpos of OnFloor flitid -> w ^? cWorld . lWorld . floorItems . ix flitid . flIt - InInv cid invid -> w ^? cWorld . lWorld . creatures . ix cid . crInv . ix invid + InInv {_ilCrID = cid, _ilInvID = invid} + -> w ^? cWorld . lWorld . creatures . ix cid . crInv . ix invid OnTurret mcid -> w ^? cWorld . lWorld . machines . ix mcid . mcType . _McTurret . tuWeapon InVoid -> Nothing @@ -25,19 +26,20 @@ pointerToItemLocation :: (Item -> f Item) -> World -> f World -pointerToItemLocation (InInv cid invid) = cWorld . lWorld . creatures . ix cid . crInv . ix invid +pointerToItemLocation InInv {_ilCrID = cid, _ilInvID = invid} + = cWorld . lWorld . creatures . ix cid . crInv . ix invid pointerToItemLocation (OnFloor flid) = cWorld . lWorld . floorItems . ix flid . flIt pointerToItemLocation _ = const pure pointerYourSelectedItem :: Applicative a => (Item -> a Item) -> World -> a World pointerYourSelectedItem f w = fromMaybe (pure w) $ do itinvid <- w ^? cWorld . lWorld . creatures . ix 0 . crManipulation . manObject . inInventory . imSelectedItem - Just $ pointerToItemLocation (InInv 0 itinvid) f w + Just $ pointerToItemLocation (InInv 0 itinvid True True) f w pointerYourRootItem :: Applicative a => (Item -> a Item) -> World -> a World pointerYourRootItem f w = fromMaybe (pure w) $ do itinvid <- w ^? cWorld . lWorld . creatures . ix 0 . crManipulation . manObject . inInventory . imRootItem - Just $ pointerToItemLocation (InInv 0 itinvid) f w + Just $ pointerToItemLocation (InInv 0 itinvid True True) f w pointerToItem :: Applicative f => diff --git a/src/Dodge/Item/Location/Initialize.hs b/src/Dodge/Item/Location/Initialize.hs index d746902be..d6ebf7900 100644 --- a/src/Dodge/Item/Location/Initialize.hs +++ b/src/Dodge/Item/Location/Initialize.hs @@ -42,7 +42,7 @@ initCrItemLocation cr invid w it = (w & itemLocations . at locid ?~ loc & itLocation .~ loc) where locid = IM.newKey ( w ^. itemLocations) - loc = InInv (_crID cr) invid + loc = InInv (_crID cr) invid False False initFlItemLocation :: LWorld -> FloorItem -> (LWorld, FloorItem) diff --git a/src/Dodge/Item/Weapon/ExtraEffect.hs b/src/Dodge/Item/Weapon/ExtraEffect.hs index 22952150f..2fb7281b2 100644 --- a/src/Dodge/Item/Weapon/ExtraEffect.hs +++ b/src/Dodge/Item/Weapon/ExtraEffect.hs @@ -19,7 +19,7 @@ autoEffect :: (Item -> Creature -> World -> World) -> Int -> SoundID -> Item -> autoEffect eff t sid itm cr w | _eparamInt (_eeParams (_equipEffect $ _itUse itm)) < 1 = eff itm cr w - & cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix (_ipInvID $ _itLocation itm) + & cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix (_ilInvID $ _itLocation itm) . itUse . equipEffect . eeParams @@ -28,7 +28,7 @@ autoEffect eff t sid itm cr w & soundStart OnceSound (_crPos cr) sid Nothing | otherwise = w - & cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix (_ipInvID $ _itLocation itm) + & cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix (_ilInvID $ _itLocation itm) . itUse . equipEffect . eeParams diff --git a/src/Dodge/Item/Weapon/Remote.hs b/src/Dodge/Item/Weapon/Remote.hs index 6873cd111..59d7dd9ac 100644 --- a/src/Dodge/Item/Weapon/Remote.hs +++ b/src/Dodge/Item/Weapon/Remote.hs @@ -8,7 +8,7 @@ import Geometry setRemoteScope :: Int -> Point2 -> World -> World setRemoteScope itid pos w = case w ^? cWorld . lWorld . itemLocations . ix itid of - Just (InInv cid' invid) -> + Just (InInv cid' invid _ _) -> w & cWorld . lWorld . creatures . ix cid' . crInv . ix invid . itScope . remotePos diff --git a/src/Dodge/Item/Weapon/TriggerType.hs b/src/Dodge/Item/Weapon/TriggerType.hs index a8baae070..c073c4709 100644 --- a/src/Dodge/Item/Weapon/TriggerType.hs +++ b/src/Dodge/Item/Weapon/TriggerType.hs @@ -366,7 +366,7 @@ useAmmoAmount amAmount eff item cr = fromMaybe id $ do atype <- item ^? ldtValue . itUse . heldAmmoTypes . ix 0 leftitms <- item ^? ldtLeft mag <- lookup (AmmoInLink 0 atype) leftitms - magid <- mag ^? ldtValue . itLocation . ipInvID + magid <- mag ^? ldtValue . itLocation . ilInvID -- invid <- ams ^? ix 0 . itLocation . ipInvID return $ eff item cr . (cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix magid . itUse . amagLoadStatus . iaLoaded -~ amAmount) @@ -443,7 +443,7 @@ shootL f item cr w | otherwise = w where cid = _crID cr - invid = _ipInvID $ _itLocation item + invid = _ilInvID $ _itLocation item fireCondition = _rateTime (_leftDelay (_itUse item)) == 0 && _arLoaded (_leftConsumption (_itUse item)) > 0 diff --git a/src/Dodge/Luse.hs b/src/Dodge/Luse.hs index 88e29f3af..87d8d0680 100644 --- a/src/Dodge/Luse.hs +++ b/src/Dodge/Luse.hs @@ -63,7 +63,7 @@ useShrinkGun it cr w = case it ^? itParams . shrinkGunStatus of Just Shrunk -> tryResize 1 $ f FullSize Uncursed . setMinInvSize defaultInvSize cr Nothing -> error "useShrinkGun applied to item with incorrect ItParam" where - invid = _ipInvID $ _itLocation it + invid = _ilInvID $ _itLocation it tryResize x g = maybe w g $ sizeSelf x cr w f isInUse cstatus = cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix invid diff --git a/src/Dodge/Projectile/Create.hs b/src/Dodge/Projectile/Create.hs index 8dd917a1a..9a390feea 100644 --- a/src/Dodge/Projectile/Create.hs +++ b/src/Dodge/Projectile/Create.hs @@ -17,7 +17,7 @@ createProjectile mmagid muz itm cr = fromMaybe failsound $ do ammoitem <- cr ^? crInv . ix magid matype <- ammoitem ^? itUse . amagType guard $ matype == ProjectileAmmo - j <- ammoitem ^? itLocation . ipInvID + j <- ammoitem ^? itLocation . ilInvID pt <- ammoitem ^? itUse . amagParams . ampPjCreation return $ case pt of CreateShell -> fireShell ammoitem muz itm cr . extrafuncs j diff --git a/src/Dodge/Projectile/Update.hs b/src/Dodge/Projectile/Update.hs index 8d314e857..cfd844ccf 100644 --- a/src/Dodge/Projectile/Update.hs +++ b/src/Dodge/Projectile/Update.hs @@ -95,7 +95,7 @@ setRemoteDir cid itid pj w = w & cWorld . lWorld . projectiles . ix (_prjID pj) newdir | SDL.ButtonRight `M.member` _mouseButtons (_input w) && w ^? cWorld . lWorld . creatures . ix cid . crManipulation . manObject . inInventory . imSelectedItem - == w ^? cWorld . lWorld . itemLocations . ix itid . ipInvID + == w ^? cWorld . lWorld . itemLocations . ix itid . ilInvID = (w ^. wCam . camRot) + argV (_mousePos (_input w)) | otherwise = _prjDir pj diff --git a/src/Dodge/TestString.hs b/src/Dodge/TestString.hs index f789ca025..e475b8b1a 100644 --- a/src/Dodge/TestString.hs +++ b/src/Dodge/TestString.hs @@ -21,7 +21,7 @@ import qualified IntMapHelp as IM testStringInit :: Universe -> [String] testStringInit u = map show $ - (IM.toList . IM.filter (\itloc -> itloc ^? ipCrID == Just 0) $ (u ^. uvWorld . cWorld . lWorld . itemLocations)) <> IM.toList ( fmap _itLocation (u ^?! uvWorld . cWorld . lWorld . creatures . ix 0 . crInv)) + (IM.toList . IM.filter (\itloc -> itloc ^? ilCrID == Just 0) $ (u ^. uvWorld . cWorld . lWorld . itemLocations)) <> IM.toList ( fmap _itLocation (u ^?! uvWorld . cWorld . lWorld . creatures . ix 0 . crInv)) --testStringInit u = fromMaybe mempty $ do -- inv <- fmap invLDT $ u ^? uvWorld . cWorld . lWorld . creatures . ix 0 . crInv -- invitm <- inv ^? ix 1 diff --git a/tags b/tags index 2386cd01e..448f76a84 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 124;" t +AimParams src/Dodge/Data/Item/Use.hs 125;" 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 180;" t +AimStance src/Dodge/Data/Item/Use.hs 181;" 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 @@ -75,10 +75,10 @@ Ammo src/Dodge/Item/Ammo.hs 1;" m AmmoCI src/Dodge/Data/ComposedItem.hs 25;" C AmmoInLink src/Dodge/Data/ComposedItem.hs 14;" C AmmoMagType src/Dodge/Data/Item/Combine.hs 107;" t -AmmoMagUse src/Dodge/Data/Item/Use.hs 64;" C +AmmoMagUse src/Dodge/Data/Item/Use.hs 65;" C AmmoModLink src/Dodge/Data/ComposedItem.hs 15;" C AmmoModifierCI src/Dodge/Data/ComposedItem.hs 24;" C -AmmoParams src/Dodge/Data/Item/Use.hs 109;" t +AmmoParams src/Dodge/Data/Item/Use.hs 110;" 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 @@ -147,7 +147,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 72;" C +AutoTrigger src/Dodge/Data/Item/Use.hs 73;" 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 @@ -220,7 +220,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 90;" C +BeamShooterParams src/Dodge/Data/Item/Use.hs 91;" 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 @@ -302,8 +302,8 @@ BulletClipAttachment src/Dodge/Data/Item.hs 52;" 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 110;" C -BulletShooterParams src/Dodge/Data/Item/Use.hs 94;" C +BulletParams src/Dodge/Data/Item/Use.hs 111;" C +BulletShooterParams src/Dodge/Data/Item/Use.hs 95;" 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 @@ -667,9 +667,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 136;" C +DefaultFlareType src/Dodge/Data/Item/Use.hs 137;" C DefaultForceField src/Dodge/Data/Item/Use/Consumption/Ammo.hs 46;" C -DefaultHeldParams src/Dodge/Data/Item/Use.hs 77;" C +DefaultHeldParams src/Dodge/Data/Item/Use.hs 78;" 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 @@ -949,7 +949,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 135;" t +FlareType src/Dodge/Data/Item/Use.hs 136;" t Flash src/Dodge/WorldEvent/Flash.hs 11;" m FlashBall src/Dodge/Data/Bullet.hs 33;" C FlatFaces src/Shape/Data.hs 17;" C @@ -1025,8 +1025,8 @@ GasCloud src/Dodge/Data/Cloud.hs 31;" C GasCreate src/Dodge/Data/Gas.hs 6;" t GasCreate src/Dodge/Data/Item/Use/Consumption/Ammo.hs 52;" t GasFuel src/Dodge/Data/Item/Use/Consumption/Ammo.hs 49;" t -GasParams src/Dodge/Data/Item/Use.hs 116;" C -GasSprayParams src/Dodge/Data/Item/Use.hs 78;" C +GasParams src/Dodge/Data/Item/Use.hs 117;" C +GasSprayParams src/Dodge/Data/Item/Use.hs 79;" 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 @@ -1104,13 +1104,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 73;" C +HammerTrigger src/Dodge/Data/Item/Use.hs 74;" 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 139;" C +HeavySmokeFlare src/Dodge/Data/Item/Use.hs 140;" 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 @@ -1126,7 +1126,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 68;" t HeldOffset src/Dodge/Item/HeldOffset.hs 1;" m -HeldParams src/Dodge/Data/Item/Use.hs 76;" t +HeldParams src/Dodge/Data/Item/Use.hs 77;" 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 @@ -1281,7 +1281,7 @@ ItInvEffect src/Dodge/Data/ItEffect.hs 13;" C ItInvEffectDrop src/Dodge/Data/ItEffect.hs 29;" C ItInvEffectID src/Dodge/Data/ItEffect.hs 25;" C ItRewindEffect src/Dodge/Data/ItEffect.hs 17;" C -ItZoom src/Dodge/Data/Item/Use.hs 189;" t +ItZoom src/Dodge/Data/Item/Use.hs 190;" t Item src/Dodge/Data/Item.hs 33;" t Item src/Dodge/Base/Item.hs 1;" m Item src/Dodge/Data/Item.hs 6;" m @@ -1383,7 +1383,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 140;" C +LasGunFlare src/Dodge/Data/Item/Use.hs 141;" 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 @@ -1589,7 +1589,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 138;" C +MiniGunFlare src/Dodge/Data/Item/Use.hs 139;" 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 @@ -1649,18 +1649,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 161;" t -MuzzleDetector src/Dodge/Data/Item/Use.hs 158;" C -MuzzleEffect src/Dodge/Data/Item/Use.hs 144;" 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 145;" t MuzzleEffect src/Dodge/Data/MuzzleEffect.hs 5;" m -MuzzleForceField src/Dodge/Data/Item/Use.hs 157;" C -MuzzleLaser src/Dodge/Data/Item/Use.hs 146;" C -MuzzleLauncher src/Dodge/Data/Item/Use.hs 149;" C -MuzzleNozzle src/Dodge/Data/Item/Use.hs 150;" C -MuzzleShatter src/Dodge/Data/Item/Use.hs 156;" C -MuzzleShootBullet src/Dodge/Data/Item/Use.hs 145;" C -MuzzleTesla src/Dodge/Data/Item/Use.hs 147;" C -MuzzleTractor src/Dodge/Data/Item/Use.hs 148;" C +MuzzleForceField src/Dodge/Data/Item/Use.hs 158;" C +MuzzleLaser src/Dodge/Data/Item/Use.hs 147;" C +MuzzleLauncher src/Dodge/Data/Item/Use.hs 150;" C +MuzzleNozzle src/Dodge/Data/Item/Use.hs 151;" C +MuzzleShatter src/Dodge/Data/Item/Use.hs 157;" C +MuzzleShootBullet src/Dodge/Data/Item/Use.hs 146;" C +MuzzleTesla src/Dodge/Data/Item/Use.hs 148;" C +MuzzleTractor src/Dodge/Data/Item/Use.hs 149;" C MvForward src/Dodge/Data/ActionPlan.hs 35;" C MvPt src/Dodge/MvPt.hs 1;" m MvTurnToward src/Dodge/Data/ActionPlan.hs 34;" C @@ -1822,7 +1822,7 @@ OnSpecial src/Dodge/Equipment/Data.hs 24;" C OnTurret src/Dodge/Data/Item/Location.hs 13;" C OnceSound src/Dodge/Data/SoundOrigin.hs 15;" C OneArgument src/Dodge/Data/Terminal.hs 94;" C -OneHand src/Dodge/Data/Item/Use.hs 184;" C +OneHand src/Dodge/Data/Item/Use.hs 185;" 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 @@ -1944,7 +1944,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 137;" C +PistolFlare src/Dodge/Data/Item/Use.hs 138;" C PistolMod src/Dodge/Data/Item/HeldUse.hs 69;" C PlaceSpot src/Dodge/Placement/PlaceSpot.hs 4;" m Placement src/Dodge/Data/GenWorld.hs 77;" t @@ -2012,7 +2012,7 @@ ProjectileCreate src/Dodge/Data/Ammo.hs 17;" t ProjectileCreate src/Dodge/Data/Item/Use/Consumption/Ammo.hs 21;" t ProjectileDraw src/Dodge/Data/Ammo.hs 14;" t ProjectileDraw src/Dodge/Data/Item/Use/Consumption/Ammo.hs 18;" t -ProjectileParams src/Dodge/Data/Item/Use.hs 111;" C +ProjectileParams src/Dodge/Data/Item/Use.hs 112;" C ProjectileUpdate src/Dodge/Data/Ammo.hs 20;" t ProjectileUpdate src/Dodge/Data/Item/Use/Consumption/Ammo.hs 24;" t Prop src/Dodge/Data/Prop.hs 18;" t @@ -2285,6 +2285,7 @@ SeeAbove src/Dodge/Data/Wall.hs 40;" C SeeThrough src/Dodge/Data/Wall.hs 39;" C SelCloseObject src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 28;" C SelNothing src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 22;" C +SelectUse src/Dodge/SelectUse.hs 1;" m Select_creature src/Dodge/Data/Config.hs 92;" C SelectedItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 33;" C SelectionInfo src/Dodge/Data/SelectionList.hs 84;" C @@ -2616,7 +2617,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 141;" C +TeslaGunFlare src/Dodge/Data/Item/Use.hs 142;" C Test src/Dodge/Creature/Test.hs 8;" m Test src/Dodge/Event/Test.hs 1;" m Test src/Picture/Test.hs 1;" m @@ -2680,7 +2681,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 71;" t +TriggerType src/Dodge/Data/Item/Use.hs 72;" t TriggerType src/Dodge/Item/Weapon/TriggerType.hs 6;" m Tuple src/Tuple.hs 1;" m TurbineBaySS src/Dodge/Data/Scenario.hs 110;" C @@ -2706,9 +2707,9 @@ TweakTractionPower src/Dodge/Data/Item/Tweak.hs 22;" C TweakType src/Dodge/Data/Item/Tweak.hs 20;" t Tweakable src/Dodge/Data/Item/Tweak.hs 15;" C TwistGoal src/Dodge/Data/Scenario.hs 15;" C -TwoHandFlat src/Dodge/Data/Item/Use.hs 183;" C -TwoHandOver src/Dodge/Data/Item/Use.hs 182;" C -TwoHandUnder src/Dodge/Data/Item/Use.hs 181;" 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 UPtLayer src/Dodge/Picture/Layer/Data.hs 16;" C @@ -2933,13 +2934,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 130;" f -_aimMuzzles src/Dodge/Data/Item/Use.hs 131;" f -_aimRange src/Dodge/Data/Item/Use.hs 127;" f -_aimStance src/Dodge/Data/Item/Use.hs 129;" f -_aimTurnSpeed src/Dodge/Data/Item/Use.hs 126;" f -_aimWeight src/Dodge/Data/Item/Use.hs 125;" f -_aimZoom src/Dodge/Data/Item/Use.hs 128;" f +_aimHandlePos src/Dodge/Data/Item/Use.hs 131;" f +_aimMuzzles src/Dodge/Data/Item/Use.hs 132;" f +_aimRange src/Dodge/Data/Item/Use.hs 128;" f +_aimStance src/Dodge/Data/Item/Use.hs 130;" f +_aimTurnSpeed src/Dodge/Data/Item/Use.hs 127;" f +_aimWeight src/Dodge/Data/Item/Use.hs 126;" f +_aimZoom src/Dodge/Data/Item/Use.hs 129;" 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 @@ -2960,15 +2961,15 @@ _amPosDirs src/Dodge/Item/AmmoPosition.hs 10;" f _amString src/Dodge/Data/Ammo.hs 33;" f _amString src/Dodge/Data/Ammo.hs 38;" f _amString src/Dodge/Data/Ammo.hs 42;" f -_amagLoadStatus src/Dodge/Data/Item/Use.hs 65;" f -_amagParams src/Dodge/Data/Item/Use.hs 66;" f -_amagType src/Dodge/Data/Item/Use.hs 67;" f +_amagLoadStatus src/Dodge/Data/Item/Use.hs 66;" f +_amagParams src/Dodge/Data/Item/Use.hs 67;" f +_amagType src/Dodge/Data/Item/Use.hs 68;" f _ambushTarget src/Dodge/Data/ActionPlan.hs 178;" f -_ampBullet src/Dodge/Data/Item/Use.hs 110;" f -_ampCreateGas src/Dodge/Data/Item/Use.hs 116;" f -_ampPayload src/Dodge/Data/Item/Use.hs 112;" f -_ampPjCreation src/Dodge/Data/Item/Use.hs 114;" f -_ampPjDraw src/Dodge/Data/Item/Use.hs 113;" f +_ampBullet src/Dodge/Data/Item/Use.hs 111;" f +_ampCreateGas src/Dodge/Data/Item/Use.hs 117;" f +_ampPayload src/Dodge/Data/Item/Use.hs 113;" f +_ampPjCreation src/Dodge/Data/Item/Use.hs 115;" f +_ampPjDraw src/Dodge/Data/Item/Use.hs 114;" f _amposDir src/Dodge/Item/AmmoPosition.hs 9;" f _amposPos src/Dodge/Item/AmmoPosition.hs 9;" f _apAction src/Dodge/Data/ActionPlan.hs 20;" f @@ -3000,6 +3001,7 @@ _atFuseTime src/Dodge/Data/Item/Attachment.hs 12;" f _atFuseTime src/Dodge/Item/Attachment/Data.hs 12;" f _atInt src/Dodge/Data/Item/Attachment.hs 14;" f _atInt src/Dodge/Item/Attachment/Data.hs 16;" f +_atLinkedProjectile src/Dodge/Data/Item/Use.hs 63;" f _atMInt src/Dodge/Data/Item/Attachment.hs 15;" f _atMInt src/Dodge/Item/Attachment/Data.hs 17;" f _atMode src/Dodge/Item/Attachment/Data.hs 13;" f @@ -3073,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 84;" f -_bulGunSound src/Dodge/Data/Item/Use.hs 91;" f -_bulGunSound src/Dodge/Data/Item/Use.hs 101;" f +_bulGunSound src/Dodge/Data/Item/Use.hs 85;" f +_bulGunSound src/Dodge/Data/Item/Use.hs 92;" f +_bulGunSound src/Dodge/Data/Item/Use.hs 102;" f _bullets src/Dodge/Data/LWorld.hs 106;" f _buttons src/Dodge/Data/LWorld.hs 136;" f _cClock src/Dodge/Data/CWorld.hs 28;" f @@ -3395,7 +3397,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 79;" f +_gasCreation src/Dodge/Data/Item/Use.hs 80;" 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 @@ -3478,6 +3480,12 @@ _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 12;" f +_ilFlID src/Dodge/Data/Item/Location.hs 14;" f +_ilInvID src/Dodge/Data/Item/Location.hs 12;" f +_ilIsRoot src/Dodge/Data/Item/Location.hs 12;" f +_ilIsSelected src/Dodge/Data/Item/Location.hs 12;" f +_ilTuID src/Dodge/Data/Item/Location.hs 13;" f _imRootItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 33;" f _imSelectedItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 33;" f _immediateEffect src/Loop/Data.hs 9;" f @@ -3494,12 +3502,8 @@ _input src/Dodge/Data/World.hs 43;" f _insertMax src/Dodge/Data/LoadAction.hs 13;" f _instantBullets src/Dodge/Data/LWorld.hs 105;" f _intelligence src/Dodge/Data/Creature/Misc.hs 23;" f -_ipCrID src/Dodge/Data/Item/Location.hs 12;" f -_ipFlID src/Dodge/Data/Item/Location.hs 14;" f -_ipInvID src/Dodge/Data/Item/Location.hs 12;" f _ipPlacement src/Dodge/Data/GenWorld.hs 134;" f _ipPlacementID src/Dodge/Data/GenWorld.hs 135;" f -_ipTuID src/Dodge/Data/Item/Location.hs 13;" f _isLooping src/Sound/Data.hs 19;" f _iselAction src/Dodge/Data/Creature/Capability.hs 23;" f _iselAction src/Dodge/Data/Creature/InvSel.hs 15;" f @@ -3516,8 +3520,6 @@ _itDimension src/Dodge/Data/Item.hs 42;" f _itEffect src/Dodge/Data/Item.hs 40;" f _itID src/Dodge/Data/Item.hs 36;" f _itInvSize src/Dodge/Data/Item.hs 41;" f -_itIsRoot src/Dodge/Data/Item.hs 38;" f -_itIsSelected src/Dodge/Data/Item.hs 39;" f _itLocation src/Dodge/Data/Item.hs 37;" f _itParams src/Dodge/Data/Item.hs 46;" f _itScope src/Dodge/Data/Item.hs 45;" f @@ -3531,9 +3533,9 @@ _iyBase src/Dodge/Data/Item/Combine.hs 17;" f _iyModules src/Dodge/Combine/Data.hs 14;" f _iyModules src/Dodge/Data/Item/Combine.hs 18;" f _iyStack src/Dodge/Combine/Data.hs 15;" f -_izFac src/Dodge/Data/Item/Use.hs 192;" f -_izMax src/Dodge/Data/Item/Use.hs 190;" f -_izMin src/Dodge/Data/Item/Use.hs 191;" f +_izFac src/Dodge/Data/Item/Use.hs 193;" f +_izMax src/Dodge/Data/Item/Use.hs 191;" f +_izMin src/Dodge/Data/Item/Use.hs 192;" f _killTarget src/Dodge/Data/ActionPlan.hs 198;" f _lClock src/Dodge/Data/LWorld.hs 145;" f _lTestInt src/Dodge/Data/LWorld.hs 147;" f @@ -3656,19 +3658,19 @@ _mtBranches src/Dodge/Tree/Compose/Data.hs 8;" f _mtLabel src/Dodge/Tree/Compose/Data.hs 8;" f _mtTree src/Dodge/Tree/Compose/Data.hs 8;" f _musicData src/Data/Preload.hs 13;" f -_muzVel src/Dodge/Data/Item/Use.hs 95;" f +_muzVel src/Dodge/Data/Item/Use.hs 96;" 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 165;" f -_mzChargeRequirement src/Dodge/Data/Item/Use.hs 168;" f -_mzEffect src/Dodge/Data/Item/Use.hs 167;" f -_mzFlareType src/Dodge/Data/Item/Use.hs 166;" f -_mzInaccuracy src/Dodge/Data/Item/Use.hs 164;" f -_mzPos src/Dodge/Data/Item/Use.hs 162;" f -_mzRot src/Dodge/Data/Item/Use.hs 163;" f +_mzAmmoSlot src/Dodge/Data/Item/Use.hs 166;" f +_mzChargeRequirement src/Dodge/Data/Item/Use.hs 169;" 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 51;" f _newBeams src/Dodge/Data/LWorld.hs 114;" f _noClip src/Dodge/Debug/Flag/Data.hs 7;" f @@ -3679,10 +3681,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 153;" f -_nzMaxWalkAngle src/Dodge/Data/Item/Use.hs 152;" f -_nzPressure src/Dodge/Data/Item/Use.hs 151;" f -_nzWalkSpeed src/Dodge/Data/Item/Use.hs 154;" f +_nzCurrentWalkAngle src/Dodge/Data/Item/Use.hs 154;" f +_nzMaxWalkAngle src/Dodge/Data/Item/Use.hs 153;" f +_nzPressure src/Dodge/Data/Item/Use.hs 152;" f +_nzWalkSpeed src/Dodge/Data/Item/Use.hs 155;" 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 @@ -3841,8 +3843,8 @@ _pyFaces src/Polyhedra/Data.hs 14;" f _radarBlips src/Dodge/Data/LWorld.hs 112;" f _radarSweeps src/Dodge/Data/LWorld.hs 107;" f _randGen src/Dodge/Data/World.hs 40;" f -_randomOffset src/Dodge/Data/Item/Use.hs 82;" f -_randomOffset src/Dodge/Data/Item/Use.hs 99;" f +_randomOffset src/Dodge/Data/Item/Use.hs 83;" f +_randomOffset src/Dodge/Data/Item/Use.hs 100;" 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 @@ -3864,8 +3866,8 @@ _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 80;" f -_recoil src/Dodge/Data/Item/Use.hs 97;" f +_recoil src/Dodge/Data/Item/Use.hs 81;" f +_recoil src/Dodge/Data/Item/Use.hs 98;" f _reloadAction src/Dodge/Data/LoadAction.hs 26;" f _remotePos src/Dodge/Data/Item/Scope.hs 25;" f _remoteZoom src/Dodge/Data/Item/Scope.hs 26;" f @@ -3873,7 +3875,7 @@ _renderData src/Data/Preload.hs 11;" f _reverseAmount src/Dodge/Data/World.hs 63;" f _reverseAmount src/Dodge/Data/World.hs 69;" f _reverseAmount src/Dodge/Data/World.hs 73;" f -_rifling src/Dodge/Data/Item/Use.hs 96;" f +_rifling src/Dodge/Data/Item/Use.hs 97;" 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 @@ -4016,8 +4018,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 83;" f -_sidePush src/Dodge/Data/Item/Use.hs 100;" f +_sidePush src/Dodge/Data/Item/Use.hs 84;" f +_sidePush src/Dodge/Data/Item/Use.hs 101;" 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 @@ -4156,8 +4158,8 @@ _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 81;" f -_torqueAfter src/Dodge/Data/Item/Use.hs 98;" f +_torqueAfter src/Dodge/Data/Item/Use.hs 82;" f +_torqueAfter src/Dodge/Data/Item/Use.hs 99;" f _tractorBeams src/Dodge/Data/LWorld.hs 121;" f _trieChildren src/SimpleTrie.hs 7;" f _trieMVal src/SimpleTrie.hs 6;" f @@ -4247,10 +4249,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 87;" f -_weaponInvLock src/Dodge/Data/Item/Use.hs 104;" f -_weaponRepeat src/Dodge/Data/Item/Use.hs 88;" f -_weaponRepeat src/Dodge/Data/Item/Use.hs 105;" f +_weaponInvLock src/Dodge/Data/Item/Use.hs 88;" f +_weaponInvLock src/Dodge/Data/Item/Use.hs 105;" f +_weaponRepeat src/Dodge/Data/Item/Use.hs 89;" f +_weaponRepeat src/Dodge/Data/Item/Use.hs 106;" 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 @@ -4666,10 +4668,10 @@ chain src/Dodge/LightSources/Lamp.hs 119;" f chainCreatureUpdates src/Dodge/Creature/ChainUpdates.hs 6;" f chainPairs src/Geometry.hs 363;" f changeFuse src/Dodge/Item/Attachment.hs 25;" f -changeSwapClose src/Dodge/Inventory.hs 210;" f -changeSwapInv src/Dodge/Inventory.hs 226;" f -changeSwapSel src/Dodge/Inventory.hs 202;" f -changeSwapWith src/Dodge/Inventory.hs 262;" f +changeSwapClose src/Dodge/Inventory.hs 220;" f +changeSwapInv src/Dodge/Inventory.hs 236;" f +changeSwapSel src/Dodge/Inventory.hs 212;" f +changeSwapWith src/Dodge/Inventory.hs 272;" f changeTweakParam src/Dodge/Update/Scroll.hs 118;" f changeZonedWall src/Dodge/LevelGen/MoveDoor.hs 33;" f charFiringStratI src/Dodge/Item/Attachment.hs 15;" f @@ -4868,7 +4870,7 @@ crZoneOfPoint src/Dodge/Base/Zone.hs 54;" f crZoneSize src/Dodge/Zoning/Creature.hs 39;" f craftInfo src/Dodge/Item/Info.hs 154;" f crankSlowS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 420;" f -createAndSelectItem src/Dodge/Inventory/Add.hs 46;" f +createAndSelectItem src/Dodge/Inventory/Add.hs 48;" f createArc src/Dodge/Tesla/Arc.hs 67;" f createAttachLight src/Dodge/Creature/State.hs 256;" f createBarrelSpark src/Dodge/Particle/Spark.hs 21;" f @@ -4882,7 +4884,7 @@ createLightMap src/Render.hs 26;" f createNewArc src/Dodge/Tesla/Arc.hs 76;" f createPathGrid src/Dodge/Room/Path.hs 21;" f createProjectile src/Dodge/Projectile/Create.hs 14;" f -createPutItem src/Dodge/Inventory/Add.hs 55;" f +createPutItem src/Dodge/Inventory/Add.hs 57;" f createShieldWall src/Dodge/Euse.hs 134;" f createTorchLightOffset src/Dodge/LightSource/Torch.hs 9;" f createUnusedLinkPos src/Dodge/Tree/Shift.hs 117;" f @@ -5027,7 +5029,7 @@ defaultBounds src/Dodge/Data/Bounds.hs 20;" f defaultBullet src/Dodge/Item/Weapon/Bullet.hs 10;" f defaultBulletLoadable src/Dodge/Default/Item/Held/Consumption.hs 18;" f defaultBulletSelTweak src/Dodge/TweakBullet.hs 7;" f -defaultBulletWeapon src/Dodge/Default/Item.hs 49;" f +defaultBulletWeapon src/Dodge/Default/Item.hs 47;" f defaultButton src/Dodge/Default.hs 51;" f defaultCOSection src/Dodge/Default/World.hs 203;" f defaultCWCam src/Dodge/Default/World.hs 64;" f @@ -5037,9 +5039,9 @@ defaultChaseMvType src/Dodge/Default/Creature.hs 113;" f defaultClusterStatus src/Dodge/Default/Room.hs 38;" f defaultConfig src/Dodge/Config/Data.hs 83;" f defaultConfig src/Dodge/Data/Config.hs 125;" f -defaultConsumable src/Dodge/Default/Item.hs 70;" f +defaultConsumable src/Dodge/Default/Item.hs 68;" f defaultCorpse src/Dodge/Corpse/Make.hs 29;" f -defaultCraftItem src/Dodge/Default/Item.hs 43;" f +defaultCraftItem src/Dodge/Default/Item.hs 41;" f defaultCreature src/Dodge/Default/Creature.hs 12;" f defaultCreatureMemory src/Dodge/Default/Creature.hs 72;" f defaultCreatureSkin src/Dodge/Default/Creature.hs 66;" f @@ -5076,7 +5078,7 @@ defaultItemDimension src/Dodge/Default/Item.hs 15;" f defaultKeyConfigSDL src/Dodge/Config/KeyConfig.hs 38;" f defaultLS src/Dodge/Default/LightSource.hs 6;" f defaultLWorld src/Dodge/Default/World.hs 91;" f -defaultLeftItem src/Dodge/Default/Item.hs 40;" f +defaultLeftItem src/Dodge/Default/Item.hs 38;" f defaultLeftLoadable src/Dodge/Default/Item/Use/Consumption.hs 8;" f defaultLeftUse src/Dodge/Default/Item/Use.hs 14;" f defaultListDisplayParams src/Dodge/ListDisplayParams.hs 18;" f @@ -5104,7 +5106,7 @@ defaultTerminal src/Dodge/Default/Terminal.hs 8;" f defaultTerminalInput src/Dodge/Default/Terminal.hs 30;" f defaultVision src/Dodge/Default/Creature.hs 92;" f defaultWall src/Dodge/Default/Wall.hs 10;" f -defaultWeapon src/Dodge/Default/Item.hs 60;" f +defaultWeapon src/Dodge/Default/Item.hs 58;" f defaultWindow src/Dodge/Default/Wall.hs 74;" f defaultWorld src/Dodge/Default/World.hs 31;" f defaultWorldHammers src/Dodge/Default/Input.hs 28;" f @@ -5413,7 +5415,7 @@ eqPosText src/Dodge/Equipment/Text.hs 6;" f equipAimSpeed src/Dodge/Creature/Action/Movement.hs 109;" f equipInfo src/Dodge/Item/Info.hs 120;" f equipItemSPic src/Dodge/Item/Draw/SPic.hs 38;" f -equipPosition src/Dodge/Item/Draw.hs 26;" f +equipPosition src/Dodge/Item/Draw.hs 27;" f equipPosition src/Dodge/Item/Equipment/Shape.hs 15;" f equipSiteInfo src/Dodge/Item/Info.hs 241;" f equipSiteToPositions src/Dodge/Inventory/RBList.hs 77;" f @@ -5885,7 +5887,7 @@ itemDetectorEffect src/Dodge/HeldUse.hs 200;" 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 -itemEffect src/Dodge/Creature/Impulse/UseItem.hs 34;" f +itemEffect src/Dodge/Creature/Impulse/UseItem.hs 35;" f itemEquipPict src/Dodge/Item/Draw.hs 17;" f itemFromAmmoMag src/Dodge/Item.hs 29;" f itemFromAttachType src/Dodge/Item.hs 39;" f @@ -6476,8 +6478,8 @@ pesNearSeg src/Dodge/Zoning/Pathing.hs 37;" f picAtCrPos1 src/Dodge/Render/ShapePicture.hs 99;" f picFormat src/Polyhedra.hs 22;" f picMap src/Picture/Base.hs 67;" f -pickUpItem src/Dodge/Creature/Action.hs 243;" f -pickUpItemID src/Dodge/Creature/Action.hs 239;" f +pickUpItem src/Dodge/Inventory/Add.hs 66;" f +pickUpItemID src/Dodge/Inventory/Add.hs 62;" f pickUpS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 444;" f pickUpSound src/Dodge/SoundLogic/Synonyms.hs 4;" f picsToSelectable src/Dodge/Render/HUD.hs 346;" f @@ -6552,10 +6554,10 @@ pointInPolygon src/Geometry/Polygon.hs 59;" f pointIsInCone src/Geometry.hs 378;" f pointIsOnScreen src/Dodge/Base/Window.hs 59;" f pointTowardsImpulse src/Dodge/Path.hs 63;" f -pointerToItem src/Dodge/Item/Location.hs 42;" f -pointerToItemLocation src/Dodge/Item/Location.hs 22;" f -pointerYourRootItem src/Dodge/Item/Location.hs 37;" f -pointerYourSelectedItem src/Dodge/Item/Location.hs 32;" f +pointerToItem src/Dodge/Item/Location.hs 44;" f +pointerToItemLocation src/Dodge/Item/Location.hs 23;" f +pointerYourRootItem src/Dodge/Item/Location.hs 39;" f +pointerYourSelectedItem src/Dodge/Item/Location.hs 34;" f pointsToPoly src/Geometry/ConvexPoly.hs 39;" f poisonSPic src/Dodge/Creature/State.hs 124;" f poisonSprayer src/Dodge/Item/Held/SprayGuns.hs 17;" f @@ -6714,9 +6716,8 @@ putDoubleDoorThen src/Dodge/Placement/Instance/Door.hs 21;" f putDoubleDoorThen src/Dodge/Placements/Door.hs 17;" f putDownSound src/Dodge/SoundLogic/Synonyms.hs 4;" f putItemInInv src/Dodge/Inventory/PickUp.hs 13;" f -putItemInInvID src/Dodge/Inventory/Add.hs 19;" f putItemInInvID src/Dodge/Inventory/PickUp.hs 8;" f -putItemInInvSlot src/Dodge/Inventory/Add.hs 25;" f +putItemInInvSlot src/Dodge/Inventory/Add.hs 26;" f putLamp src/Dodge/Placement/Instance/LightSource.hs 202;" f putLamp src/Dodge/Placements/LightSource.hs 119;" f putLamp src/Dodge/Room/Placement.hs 20;" f @@ -6888,7 +6889,7 @@ rmInLinks src/Dodge/RoomLink.hs 138;" f rmInvItem src/Dodge/Inventory.hs 39;" f rmLinksOfType src/Dodge/RoomLink.hs 135;" f rmOutLinks src/Dodge/RoomLink.hs 138;" f -rmSelectedInvItem src/Dodge/Inventory.hs 162;" f +rmSelectedInvItem src/Dodge/Inventory.hs 172;" f rocketHomer src/Dodge/Item/Ammo.hs 109;" f rocketRemoteScreen src/Dodge/Item/Scope.hs 24;" f roomC src/Dodge/Room/Room.hs 39;" f @@ -6988,7 +6989,7 @@ screenPolygon src/Dodge/Base/Window.hs 17;" f screenPolygonBord src/Dodge/Base/Window.hs 27;" f screenPosAbs src/Dodge/ScreenPos.hs 15;" f screenToWorldPos src/Dodge/Base/Coordinate.hs 53;" f -scrollAugInvSel src/Dodge/Inventory.hs 268;" f +scrollAugInvSel src/Dodge/Inventory.hs 278;" f scrollCommandStrings src/Dodge/Update/Scroll.hs 133;" f scrollCommands src/Dodge/Update/Scroll.hs 130;" f scrollDebugInfoInt src/Dodge/Debug.hs 46;" f @@ -7016,7 +7017,8 @@ selSecSelCol src/Dodge/Render/HUD.hs 377;" f selSecSelSize src/Dodge/SelectionSections.hs 124;" f selSecYint src/Dodge/SelectionSections.hs 127;" f selectCreatureDebugItem src/Dodge/Debug.hs 38;" f -selectedCloseObject src/Dodge/Inventory.hs 295;" f +selectUse src/Dodge/SelectUse.hs 11;" f +selectedCloseObject src/Dodge/Inventory.hs 305;" f sensAboveDoor src/Dodge/Room/SensorDoor.hs 63;" f sensInsideDoor src/Dodge/Room/SensorDoor.hs 69;" f senseDamage src/Dodge/Machine/Update.hs 134;" f @@ -7046,7 +7048,7 @@ setHotkey src/Dodge/Hotkey.hs 38;" f setInLinks src/Dodge/RoomLink.hs 51;" f setInLinksByType src/Dodge/RoomLink.hs 54;" f setInLinksPD src/Dodge/RoomLink.hs 74;" f -setInvPosFromSS src/Dodge/Inventory.hs 276;" f +setInvPosFromSS src/Dodge/Inventory.hs 286;" f setItemCharge src/Dodge/ItEffect.hs 36;" f setLayer src/Picture/Base.hs 139;" f setLinkType src/Dodge/RoomLink.hs 60;" f @@ -7183,7 +7185,7 @@ showIntsString src/Dodge/Tree/Compose.hs 129;" f showLoadedAmount src/Dodge/Item/Display.hs 147;" f showPhaseV src/Dodge/Tweak/Show.hs 16;" f showTerminalError src/Dodge/Debug/Terminal.hs 75;" f -showTimeFlow src/Dodge/TestString.hs 63;" f +showTimeFlow src/Dodge/TestString.hs 64;" f showTractionPower src/Dodge/Tweak/Show.hs 22;" f showTweak src/Dodge/Tweak/Show.hs 5;" f shrinkGun src/Dodge/Item/Weapon/Utility.hs 44;" f @@ -7206,7 +7208,7 @@ sineRaisePitchOneSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 486;" f sineRaisePitchOneSecSound src/Dodge/SoundLogic/Synonyms.hs 31;" f sineRaisePitchTwoSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 340;" f sineRaisePitchTwoSecSound src/Dodge/SoundLogic/Synonyms.hs 33;" f -singleAmmo src/Dodge/Default/Item.hs 46;" f +singleAmmo src/Dodge/Default/Item.hs 44;" f singleBarrel src/Dodge/Item/Held/SingleBarrel.hs 6;" f singleBlock src/Dodge/Placement/Instance/Wall.hs 30;" f singleBlock src/Dodge/Placements/Wall.hs 11;" f @@ -7496,7 +7498,7 @@ toV3 src/Geometry/Data.hs 38;" f toV4 src/Geometry/Data.hs 40;" f toggleCombineInv src/Dodge/DisplayInventory.hs 32;" f toggleCommand src/Dodge/Terminal.hs 194;" f -toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 55;" f +toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 53;" f toggleJust src/MaybeHelp.hs 41;" f toggleMap src/Dodge/Update/Input/InGame.hs 237;" f toggleMapKey src/Dodge/Config/KeyConfig.hs 25;" f @@ -7599,7 +7601,7 @@ tryGetChannel src/Sound.hs 96;" f tryMeleeAttack src/Dodge/Creature/ReaderUpdate.hs 36;" f tryNextLoadAction src/Dodge/Reloading.hs 36;" f tryPlay src/Sound.hs 83;" f -tryPutItemInInv src/Dodge/Inventory/Add.hs 30;" f +tryPutItemInInv src/Dodge/Inventory/Add.hs 31;" f trySeedFromClipboard src/Dodge/Menu.hs 88;" f trySiphonFuel src/Dodge/Euse.hs 46;" f trySpinByCID src/Dodge/Projectile/Update.hs 123;" f @@ -7658,13 +7660,14 @@ updateBulVel src/Dodge/Bullet.hs 50;" f updateBullet src/Dodge/Bullet.hs 28;" f updateBullets src/Dodge/Update.hs 425;" f updateCamera src/Dodge/Update/Camera.hs 32;" f -updateCloseObjects src/Dodge/Inventory.hs 168;" f +updateCloseObjects src/Dodge/Inventory.hs 178;" f updateCloud src/Dodge/Update.hs 605;" f updateClouds src/Dodge/Update.hs 454;" f updateCombinePositioning src/Dodge/DisplayInventory.hs 37;" f updateCombineSections src/Dodge/DisplayInventory.hs 42;" f updateCreature src/Dodge/Creature/Update.hs 10;" f updateCreatureGroups src/Dodge/Update.hs 391;" f +updateCreatureItemLocations src/Dodge/Inventory.hs 98;" f updateCreatureSoundPositions src/Dodge/Update.hs 371;" f updateDebugMessageOffset src/Dodge/Update.hs 91;" f updateDelayedEvents src/Dodge/Update.hs 668;" f @@ -7693,6 +7696,7 @@ updateInstantBullets src/Dodge/Update.hs 531;" f updateInv src/Dodge/Creature/State.hs 228;" f updateInventoryPositioning src/Dodge/DisplayInventory.hs 87;" f updateInventorySectionItems src/Dodge/DisplayInventory.hs 144;" f +updateItemLocation src/Dodge/Inventory.hs 103;" f updateKeyInGame src/Dodge/Update/Input/InGame.hs 102;" f updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 91;" f updateLampoid src/Dodge/Lampoid.hs 13;" f @@ -7794,9 +7798,9 @@ useGasParams src/Dodge/HeldUse.hs 383;" f useHeld src/Dodge/HeldUse.hs 306;" 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 128;" f -useItemLeftClick src/Dodge/Creature/Impulse/UseItem.hs 100;" f -useItemLeftClick' src/Dodge/Creature/Impulse/UseItem.hs 115;" f +useItemHotkey src/Dodge/Creature/Impulse/UseItem.hs 126;" f +useItemLeftClick src/Dodge/Creature/Impulse/UseItem.hs 98;" f +useItemLeftClick' src/Dodge/Creature/Impulse/UseItem.hs 113;" f useL src/Dodge/Luse.hs 13;" f useLeftItem src/Dodge/Creature/Action/UseItem.hs 38;" f useLnkRoomPos src/Dodge/PlacementSpot.hs 244;" f @@ -7807,7 +7811,7 @@ usePayload src/Dodge/Payload.hs 7;" f useRewindGun src/Dodge/Luse.hs 41;" f useRoomPosCond src/Dodge/PlacementSpot.hs 178;" f useRoomPosRoomCond src/Dodge/PlacementSpot.hs 181;" f -useRootItem src/Dodge/Creature/Impulse/UseItem.hs 25;" f +useRootItem src/Dodge/Creature/Impulse/UseItem.hs 26;" f useShrinkGun src/Dodge/Luse.hs 59;" f useStopWatch src/Dodge/Luse.hs 24;" f useTargetPos src/Dodge/Item/Weapon/Targeting.hs 9;" f