From 21b7b863c781800225dc803b883de7b140251026 Mon Sep 17 00:00:00 2001 From: justin Date: Wed, 8 Jan 2025 14:29:25 +0000 Subject: [PATCH] Implement copier, an item that copies the value displayed by other items --- src/Dodge/Creature.hs | 1 + src/Dodge/Creature/State.hs | 14 +- src/Dodge/Data/Item/Combine.hs | 2 +- src/Dodge/Data/Item/Effect.hs | 1 + src/Dodge/Data/Item/Use.hs | 1 + src/Dodge/HeldUse.hs | 30 +++-- src/Dodge/Inventory/SelectionList.hs | 59 +++++---- src/Dodge/ItEffect.hs | 23 +++- src/Dodge/Item/Display.hs | 3 +- src/Dodge/Item/Scope.hs | 3 +- src/Dodge/Update/Scroll.hs | 5 +- tags | 184 +++++++++++++-------------- 12 files changed, 184 insertions(+), 142 deletions(-) diff --git a/src/Dodge/Creature.hs b/src/Dodge/Creature.hs index c32f8763d..7de11dd4e 100644 --- a/src/Dodge/Creature.hs +++ b/src/Dodge/Creature.hs @@ -120,6 +120,7 @@ inventoryX c = case c of [ flameThrower , fuelPack , chemFuelPouch + , copier ABSOLUTE ] 'B' -> [ wristArmour diff --git a/src/Dodge/Creature/State.hs b/src/Dodge/Creature/State.hs index d6e0b8b58..04c9aca79 100644 --- a/src/Dodge/Creature/State.hs +++ b/src/Dodge/Creature/State.hs @@ -3,6 +3,8 @@ module Dodge.Creature.State ( doDamage, ) where +--import Dodge.Inventory.SelectionList +--import Dodge.Item.Location import Control.Applicative import Dodge.HeldUse import Control.Monad @@ -288,13 +290,13 @@ updateItemWithOrientation :: LocationLDT ItemLink ComposedItem -> World -> World -updateItemWithOrientation cr m loc@(LocLDT _ itmtree) = +updateItemWithOrientation cr m loc@(LocLDT _ itmtree) w = case (ci ^. _1 . itType, ci ^. _2) of - (HELD TORCH, _) -> shineTorch cr itmtree m - (HELD LASER, WeaponTargetingSF) -> shineTargetLaser cr itmtree m - (TARGETING tt, _) -> updateItemTargeting tt cr itm - (ARHUD, _) -> drawARHUD loc - _ -> id + (HELD TORCH, _) -> shineTorch cr itmtree m w + (HELD LASER, WeaponTargetingSF) -> shineTargetLaser cr itmtree m w + (TARGETING tt, _) -> updateItemTargeting tt cr itm w + (ARHUD, _) -> drawARHUD loc w + _ -> w where ci = itmtree ^. ldtValue itm = ci ^. _1 diff --git a/src/Dodge/Data/Item/Combine.hs b/src/Dodge/Data/Item/Combine.hs index 42a63c2f3..32de64250 100644 --- a/src/Dodge/Data/Item/Combine.hs +++ b/src/Dodge/Data/Item/Combine.hs @@ -25,7 +25,7 @@ data ItemType | MAPPER | DROPPER InventoryPathing | CLICKER InventoryPathing - | COPIER InventoryPathing + | COPIER {_ibtPathing :: InventoryPathing} | UGATE | BGATE | INTROSCAN {_ibtIntroScanType :: IntroScanType} diff --git a/src/Dodge/Data/Item/Effect.hs b/src/Dodge/Data/Item/Effect.hs index a0a7c14d5..83ec23b03 100644 --- a/src/Dodge/Data/Item/Effect.hs +++ b/src/Dodge/Data/Item/Effect.hs @@ -29,6 +29,7 @@ data ItInvEffect | EffectWhileAttached ItInvEffect | ItemUseToggle BlBl | ItemCancelExamineInventory + | ItemCopierUpdate deriving (Eq, Ord, Show, Read) --Generic, Flat) data ItDropEffect = NoDropEffect diff --git a/src/Dodge/Data/Item/Use.hs b/src/Dodge/Data/Item/Use.hs index 79f858908..63312df01 100644 --- a/src/Dodge/Data/Item/Use.hs +++ b/src/Dodge/Data/Item/Use.hs @@ -43,6 +43,7 @@ data ItemUse | UseAttach {_uaParams :: AttachParams} | UseInt {_uInt :: Int} | UseNothing + | UseValue {_uValue :: Either Int String} | UseScope {_uScope :: Scope} | UseBulletMod {_ubMod :: BulletMod} | UseToggle {_useToggle :: Bool} diff --git a/src/Dodge/HeldUse.hs b/src/Dodge/HeldUse.hs index 08971ee52..a184d6823 100644 --- a/src/Dodge/HeldUse.hs +++ b/src/Dodge/HeldUse.hs @@ -8,6 +8,7 @@ module Dodge.HeldUse ( mcUseHeld, ) where +import Dodge.Inventory.Path import Color import Control.Applicative import Control.Monad @@ -790,18 +791,23 @@ dropInventoryPath :: Creature -> World -> World -dropInventoryPath i ip loc cr w = case ip of - ABSOLUTE -> fromMaybe w $ do - guard $ i `IM.member` (cr ^. crInv) - return $ dropItem cr i w - RELCURS -> fromMaybe w $ do - j <- cr ^? crManipulation . manObject . imSelectedItem - guard $ (i + j) `IM.member` (cr ^. crInv) - return $ dropItem cr (i + j) w - RELITEM -> fromMaybe w $ do - j <- loc ^? locLDT . ldtValue . _1 . itLocation . ilInvID - guard $ (i + j) `IM.member` (cr ^. crInv) - return $ dropItem cr (i + j) w +dropInventoryPath i ip loc cr = fromMaybe id $ do + invid <- loc ^? locLDT . ldtValue . _1 . itLocation . ilInvID + j <- getInventoryPath i ip invid cr + return $ dropItem cr j + +--dropInventoryPath i ip loc cr w = case ip of +-- ABSOLUTE -> fromMaybe w $ do +-- guard $ i `IM.member` (cr ^. crInv) +-- return $ dropItem cr i w +-- RELCURS -> fromMaybe w $ do +-- j <- cr ^? crManipulation . manObject . imSelectedItem +-- guard $ (i + j) `IM.member` (cr ^. crInv) +-- return $ dropItem cr (i + j) w +-- RELITEM -> fromMaybe w $ do +-- j <- loc ^? locLDT . ldtValue . _1 . itLocation . ilInvID +-- guard $ (i + j) `IM.member` (cr ^. crInv) +-- return $ dropItem cr (i + j) w useInventoryPath :: PressType -> diff --git a/src/Dodge/Inventory/SelectionList.hs b/src/Dodge/Inventory/SelectionList.hs index 731aa1e5b..614583952 100644 --- a/src/Dodge/Inventory/SelectionList.hs +++ b/src/Dodge/Inventory/SelectionList.hs @@ -4,8 +4,12 @@ module Dodge.Inventory.SelectionList ( invSelectionItem, closeItemToSelectionItem, closeButtonToSelectionItem, + getInventoryPath, + getItemValue, ) where +import Dodge.Inventory.Path +import Control.Applicative import ShortShow import Data.Maybe import Dodge.Data.DoubleTree @@ -48,8 +52,7 @@ itemDisplay w cr ci = -- f itm = ci ^. _1 NInt itid = itm ^. itID --f (x:xs) (y:_) = itemDisplayPad x y : xs - f (x:xs) (y:_) = (x ++ ' ': y) : xs - f xs _ = xs + --f xs _ = xs --g (x:xs) (y:_) = (rightPad 15 ' ' x ++ y) : xs g (x:xs) (y:_) = (x ++ y) : xs g xs _ = xs @@ -83,6 +86,11 @@ itemExternalValue itm w cr | ITEMSCAN <- itm ^. itType , Just ExamineInventory <- w ^? hud . hudElement . subInventory = Just (Right "ON") +-- , Just x <- itm ^? itScroll . itsInt +-- , Just invid <- itm ^? itLocation . ilInvID +-- , Just i <- getInventoryPath x ip invid cr +-- , Just itm' <- cr ^? crInv . ix i +-- = getItemValue itm' w cr | otherwise = mempty itemScrollDisplay :: Item -> Maybe String @@ -96,30 +104,33 @@ itemScrollDisplay itm | ItemScrollIntRange _ i <- itm ^. itScroll = Just $ show i | otherwise = Nothing -itemDisplayPad :: [Char] -> String -> [Char] -itemDisplayPad ls rs - | rs == "" = ls - | otherwise = midPadL 15 ' ' ls (' ' : rs) +getItemValue :: Item -> World -> Creature -> Maybe (Either Int String) +getItemValue itm w cr = itemInternalValue itm <|> itemExternalValue itm w cr -itemNumberDisplay :: World -> Creature -> ComposedItem -> [String] -itemNumberDisplay w cr ci - | Just x <- ci ^? _1 . itUse . uInt = [show x] - | Just x <- ci ^? _1 . itUse . useToggle = [show x] - | ITEMSCAN <- ci ^. _1 . itType - , Just ExamineInventory <- w ^? hud . hudElement . subInventory = ["ACTIVE"] - | EQUIP WRIST_ECG <- ci ^. _1 . itType = - [displayPulse $ cr ^?! crType . avatarPulse . pulseProgress] - | isJust $ ci ^? _1 . itTargeting . itTgPos . _Just = ["!TARG!"] - | Just x <- ci ^? _1 . itConsumables . magLoadStatus . iaLoaded = [shortShow x] - | Just i <- ci ^? _1 . itUse . uaParams . apInt = [show i] - | Just x <- ci ^? _1 . itUse . uaParams . apProjectiles = [show x] - | Just t <- ci ^? _1 . itType . ibtIntroScanType = [introScanDisplay cr t] - | otherwise = mempty +--itemDisplayPad :: [Char] -> String -> [Char] +--itemDisplayPad ls rs +-- | rs == "" = ls +-- | otherwise = midPadL 15 ' ' ls (' ' : rs) -introScanDisplay :: Creature -> IntroScanType -> String -introScanDisplay cr = \case - HEALTH -> shortShow (cr ^. crHP) - MAXHEALTH -> shortShow (cr ^. crMaxHP) +--itemNumberDisplay :: World -> Creature -> ComposedItem -> [String] +--itemNumberDisplay w cr ci +-- | Just x <- ci ^? _1 . itUse . uInt = [show x] +-- | Just x <- ci ^? _1 . itUse . useToggle = [show x] +-- | ITEMSCAN <- ci ^. _1 . itType +-- , Just ExamineInventory <- w ^? hud . hudElement . subInventory = ["ACTIVE"] +-- | EQUIP WRIST_ECG <- ci ^. _1 . itType = +-- [displayPulse $ cr ^?! crType . avatarPulse . pulseProgress] +-- | isJust $ ci ^? _1 . itTargeting . itTgPos . _Just = ["!TARG!"] +-- | Just x <- ci ^? _1 . itConsumables . magLoadStatus . iaLoaded = [shortShow x] +-- | Just i <- ci ^? _1 . itUse . uaParams . apInt = [show i] +-- | Just x <- ci ^? _1 . itUse . uaParams . apProjectiles = [show x] +-- | Just t <- ci ^? _1 . itType . ibtIntroScanType = [introScanDisplay cr t] +-- | otherwise = mempty + +--introScanDisplay :: Creature -> IntroScanType -> String +--introScanDisplay cr = \case +-- HEALTH -> shortShow (cr ^. crHP) +-- MAXHEALTH -> shortShow (cr ^. crMaxHP) displayPulse :: Int -> String displayPulse 0 = "*****" diff --git a/src/Dodge/ItEffect.hs b/src/Dodge/ItEffect.hs index 67d290dda..99a46bd4f 100644 --- a/src/Dodge/ItEffect.hs +++ b/src/Dodge/ItEffect.hs @@ -1,13 +1,17 @@ {-# LANGUAGE LambdaCase #-} + module Dodge.ItEffect ( doInvEffect, ) where -import Dodge.BlBl -import Dodge.Item.Location import Control.Lens +import Data.Maybe +import Dodge.BlBl import Dodge.Data.World import Dodge.Euse +import Dodge.Inventory.Path +import Dodge.Inventory.SelectionList +import Dodge.Item.Location doInvEffect :: ItInvEffect -> Item -> Creature -> World -> World doInvEffect = \case @@ -17,9 +21,20 @@ doInvEffect = \case RemoveShieldWall -> removeShieldWall EffectWhileRoot f -> rootNotrootEff f NoInvEffect EffectWhileAttached f -> effectWhileAttached f - ItemUseToggle f -> \itm _ - -> pointerToItemID (itm ^. itID) . itUse . useToggle %~ doBlBl f + ItemUseToggle f -> \itm _ -> + pointerToItemID (itm ^. itID) . itUse . useToggle %~ doBlBl f ItemCancelExamineInventory -> \_ _ -> cancelExamineInventory + ItemCopierUpdate -> copierItemUpdate + +copierItemUpdate :: Item -> Creature -> World -> World +copierItemUpdate itm cr w = fromMaybe w $ do + x <- itm ^? itScroll . itsInt + invid <- itm ^? itLocation . ilInvID + ip <- itm ^? itType . ibtPathing + i <- getInventoryPath x ip invid cr + itm' <- cr ^? crInv . ix i + v <- getItemValue itm' w cr + return $ w & pointerToItem itm . itUse . uValue .~ v cancelExamineInventory :: World -> World cancelExamineInventory = hud . hudElement . subInventory %~ f diff --git a/src/Dodge/Item/Display.hs b/src/Dodge/Item/Display.hs index 6eab03a9d..e71983fc7 100644 --- a/src/Dodge/Item/Display.hs +++ b/src/Dodge/Item/Display.hs @@ -4,6 +4,7 @@ module Dodge.Item.Display ( itemBaseName, itemString, basicItemDisplay, + itemInternalValue, ) where import ShortShow @@ -36,7 +37,7 @@ itemInternalValue itm | Just x <- itm ^? itConsumables . magLoadStatus . iaLoaded = Just $ Left x | UseAttach (APInt i) <- itm ^. itUse = Just $ Left i | UseAttach (APProjectiles x) <- itm ^. itUse = Just . Right $ show x - | otherwise = mempty + | v <- itm ^? itUse . uValue = v maybeWarmupStatus :: Item -> Maybe String diff --git a/src/Dodge/Item/Scope.hs b/src/Dodge/Item/Scope.hs index 67c50ace5..286d7333d 100644 --- a/src/Dodge/Item/Scope.hs +++ b/src/Dodge/Item/Scope.hs @@ -88,8 +88,9 @@ copier :: InventoryPathing -> Item copier x = defaultHeldItem & itType .~ COPIER x - & itUse .~ UseInt 0 + & itUse .~ UseValue (Left 0) & itScroll .~ ItemScrollInt 0 + & itEffect . ieInv .~ ItemCopierUpdate bgate :: Item bgate = diff --git a/src/Dodge/Update/Scroll.hs b/src/Dodge/Update/Scroll.hs index 845e0c160..90bb5ce99 100644 --- a/src/Dodge/Update/Scroll.hs +++ b/src/Dodge/Update/Scroll.hs @@ -49,7 +49,7 @@ selectedItemScroll yi w = do itemScroll :: Int -> Int -> Item -> World -> World itemScroll yi invid itm w - | isJust $ itm ^? itUse . uInt = w & itmlens . itUse . uInt +~ yi +-- | isJust $ itm ^? itUse . uInt = w & itmlens . itUse . uInt +~ yi | Just xs <- itm ^? itUse . uaParams . apProjectiles = w & itmlens . itUse . uaParams . apProjectiles .~ rotateList yi xs | ATTACH ZOOMSCOPE <- itm ^. itType = updateScopeZoom invid w @@ -58,6 +58,9 @@ itemScroll yi invid itm w w & itmlens . itUse . heldAim . aimMuzzles . ix 0 . mzAmmoSlot %~ ((`mod` 2) . (+ 1)) + | isJust $ itm ^? itScroll . itsInt = w & itmlens . itScroll . itsInt +~ yi + | Just y <- itm ^? itScroll . itsMax = w & itmlens . itScroll . itsRangeInt + %~ ((`mod` y) . (+ yi)) | otherwise = w where itmlens = cWorld . lWorld . creatures . ix 0 . crInv . ix invid diff --git a/tags b/tags index 48fde87da..240faeef4 100644 --- a/tags +++ b/tags @@ -284,7 +284,7 @@ CardinalPoint src/Dodge/Base/CardinalPoint.hs 1;" m CardinalPoint src/Dodge/Data/CardinalPoint.hs 1;" m Carriage src/Dodge/Data/Creature/Stance.hs 20;" t Carte src/Dodge/Render/HUD/Carte.hs 1;" m -ChainEffect src/Dodge/HeldUse.hs 71;" t +ChainEffect src/Dodge/HeldUse.hs 72;" t ChainEffect src/Dodge/Item/Weapon/TriggerType.hs 43;" t ChainUpdates src/Dodge/Creature/ChainUpdates.hs 1;" m ChangePosture src/Dodge/Data/ActionPlan.hs 42;" C @@ -1417,6 +1417,7 @@ Parameters src/Shader/Parameters.hs 1;" m Parameters src/Shape/Parameters.hs 1;" m Params src/Dodge/Data/Item/Params.hs 6;" m PassthroughLockKeyLists src/Dodge/Annotation/Data.hs 20;" C +Path src/Dodge/Inventory/Path.hs 1;" m Path src/Dodge/Path.hs 2;" m Path src/Dodge/Room/Path.hs 1;" m PathEdge src/Dodge/Data/PathGraph.hs 40;" t @@ -3413,24 +3414,24 @@ angleVV3 src/Geometry/Vector3D.hs 122;" f annoToRoomTree src/Dodge/Annotation.hs 17;" f anyUnusedSpot src/Dodge/PlacementSpot.hs 66;" f anythingHitCirc src/Dodge/Base/Collide.hs 246;" f -applyCME src/Dodge/HeldUse.hs 161;" f +applyCME src/Dodge/HeldUse.hs 162;" f applyCreatureDamage src/Dodge/Creature/Damage.hs 14;" f applyDamageEffect src/Dodge/Creature/Damage.hs 31;" f applyEventIO src/Loop.hs 89;" f applyGravityPU src/Dodge/Projectile/Update.hs 56;" f applyIndividualDamage src/Dodge/Creature/Damage.hs 49;" f applyIndividualDamage' src/Dodge/Creature/Damage.hs 52;" f -applyInvLock src/Dodge/HeldUse.hs 176;" f +applyInvLock src/Dodge/HeldUse.hs 177;" f applyMagnetsToBul src/Dodge/Bullet.hs 36;" f applyNoDamage src/Dodge/Creature/Damage.hs 11;" f applyPastDamages src/Dodge/Creature/State.hs 143;" f applyPiercingDamage src/Dodge/Creature/Damage.hs 57;" f applyPosition src/Sound.hs 110;" f -applyRecoil src/Dodge/HeldUse.hs 195;" f +applyRecoil src/Dodge/HeldUse.hs 196;" f applyResFactor src/Dodge/Data/Config.hs 110;" f applySetTerminalString src/Dodge/Debug/Terminal.hs 81;" f -applySidePush src/Dodge/HeldUse.hs 202;" f -applySoundCME src/Dodge/HeldUse.hs 186;" f +applySidePush src/Dodge/HeldUse.hs 203;" f +applySoundCME src/Dodge/HeldUse.hs 187;" f applyTerminalCommand src/Dodge/Debug/Terminal.hs 28;" f applyTerminalCommandArguments src/Dodge/Debug/Terminal.hs 42;" f applyTerminalString src/Dodge/Debug/Terminal.hs 22;" f @@ -3438,7 +3439,7 @@ applyToNode src/TreeHelp.hs 64;" f applyToRandomNode src/TreeHelp.hs 150;" f applyToSubforest src/TreeHelp.hs 77;" f applyToSubtree src/TreeHelp.hs 70;" f -applyTorqueCME src/Dodge/HeldUse.hs 213;" f +applyTorqueCME src/Dodge/HeldUse.hs 214;" f applyWorldConfig src/Dodge/Config/Update.hs 38;" f aquamarine src/Color.hs 23;" f arHUD src/Dodge/Item/Scope.hs 125;" f @@ -3517,10 +3518,10 @@ basicBulDams src/Dodge/Item/Weapon/Bullet.hs 23;" f basicCrPict src/Dodge/Creature/Picture.hs 26;" f basicCrShape src/Dodge/Creature/Picture.hs 34;" f basicDrawBeam src/Dodge/Beam/Draw.hs 11;" f -basicItemDisplay src/Dodge/Item/Display.hs 20;" f +basicItemDisplay src/Dodge/Item/Display.hs 21;" f basicMachineApplyDamage src/Dodge/Machine/Damage.hs 6;" f basicMachineUpdate src/Dodge/Machine.hs 13;" f -basicMuzFlare src/Dodge/HeldUse.hs 313;" f +basicMuzFlare src/Dodge/HeldUse.hs 314;" f basicTerminal src/Dodge/Terminal.hs 35;" f battery src/Dodge/Item/Ammo.hs 92;" f batteryPack src/Dodge/Item/Equipment.hs 55;" f @@ -3668,9 +3669,9 @@ clicker src/Dodge/Item/Scope.hs 81;" f clipV src/Geometry/Vector.hs 47;" f clipZoom src/Dodge/Update/Camera.hs 185;" f clockCycle src/Dodge/Clock.hs 9;" f -closeButtonToSelectionItem src/Dodge/Inventory/SelectionList.hs 167;" f -closeItemToSelectionItem src/Dodge/Inventory/SelectionList.hs 152;" f -closeItemToTextPictures src/Dodge/Inventory/SelectionList.hs 181;" f +closeButtonToSelectionItem src/Dodge/Inventory/SelectionList.hs 179;" f +closeItemToSelectionItem src/Dodge/Inventory/SelectionList.hs 164;" f +closeItemToTextPictures src/Dodge/Inventory/SelectionList.hs 193;" f closeObjectInfo src/Dodge/Render/HUD.hs 223;" f closestCreatureID src/Dodge/Debug.hs 116;" f closestPointOnLine src/Geometry/Intersect.hs 251;" f @@ -3789,8 +3790,8 @@ createLightMap src/Render.hs 26;" f createNewArc src/Dodge/Tesla.hs 81;" f createNewArc src/Dodge/Tesla/Arc.hs 90;" f createPathGrid src/Dodge/Room/Path.hs 21;" f -createProjectile src/Dodge/HeldUse.hs 708;" f -createProjectileR src/Dodge/HeldUse.hs 673;" f +createProjectile src/Dodge/HeldUse.hs 709;" f +createProjectileR src/Dodge/HeldUse.hs 674;" f createShell src/Dodge/Projectile/Create.hs 22;" f createShieldWall src/Dodge/Euse.hs 107;" f createUnusedLinkPos src/Dodge/Tree/Shift.hs 117;" f @@ -3992,7 +3993,7 @@ detector src/Dodge/Item/Held/Utility.hs 41;" f detectorColor src/Dodge/Item/Draw/SPic.hs 444;" f detectorEffect src/Dodge/Item/Weapon/Radar.hs 20;" f detectorInfo src/Dodge/Item/Info.hs 216;" f -determineProjectileTracking src/Dodge/HeldUse.hs 656;" f +determineProjectileTracking src/Dodge/HeldUse.hs 657;" f diagonalLinesRect src/Dodge/Room/Foreground.hs 52;" f did src/Dodge/Item/InvSize.hs 54;" f diffAngles src/Geometry.hs 210;" f @@ -4011,7 +4012,7 @@ displayControls src/Dodge/Menu.hs 206;" f displayFrameTicks src/Dodge/Render/Picture.hs 39;" f displayFreeSlots src/Dodge/DisplayInventory.hs 198;" f displayIndents src/Dodge/DisplayInventory.hs 110;" f -displayPulse src/Dodge/Inventory/SelectionList.hs 123;" f +displayPulse src/Dodge/Inventory/SelectionList.hs 135;" f displayTerminalLineString src/Dodge/Update.hs 426;" f dist src/Geometry/Vector.hs 179;" f dist3 src/Geometry/Vector3D.hs 101;" f @@ -4057,9 +4058,9 @@ doDrag src/Dodge/Update/Input/InGame.hs 105;" f doDrawing src/Dodge/Render.hs 35;" f doDrawing' src/Dodge/Render.hs 46;" f doFloatFloat src/Dodge/FloatFunction.hs 5;" f -doGenFloat src/Dodge/HeldUse.hs 595;" f +doGenFloat src/Dodge/HeldUse.hs 596;" f doGravityPU src/Dodge/Projectile/Update.hs 50;" f -doHeldUseEffect src/Dodge/HeldUse.hs 126;" f +doHeldUseEffect src/Dodge/HeldUse.hs 127;" f doInPlacements src/Dodge/Layout.hs 92;" f doIndividualPlacements src/Dodge/Layout.hs 117;" f doInputScreenInput src/Dodge/Update/Input/ScreenLayer.hs 27;" f @@ -4090,7 +4091,7 @@ doRoomInPlacements src/Dodge/Layout.hs 97;" f doRoomOutPlacements src/Dodge/Layout.hs 107;" f doRoomPlacements src/Dodge/Layout.hs 122;" f doRoomShift src/Dodge/Room/Link.hs 33;" f -doScopeZoom src/Dodge/Update/Scroll.hs 79;" f +doScopeZoom src/Dodge/Update/Scroll.hs 82;" f doSectionSize src/Dodge/DisplayInventory.hs 217;" f doSideEffects appDodge/Main.hs 120;" f doStep src/Dodge/ArcStep.hs 9;" f @@ -4110,7 +4111,7 @@ doWdCrBl src/Dodge/CreatureEffect.hs 37;" f doWdCrCr src/Dodge/CreatureEffect.hs 12;" f doWdP2f src/Dodge/WdP2f.hs 12;" f doWdWd src/Dodge/WorldEffect.hs 28;" f -doWeaponRepetitions src/Dodge/HeldUse.hs 150;" f +doWeaponRepetitions src/Dodge/HeldUse.hs 151;" f doWorldEvents src/Dodge/Update.hs 409;" f doWorldPos src/Dodge/WorldPos.hs 7;" f door src/Dodge/Room/Door.hs 13;" f @@ -4253,7 +4254,7 @@ drawZoneNearPointCursor src/Dodge/Debug/Picture.hs 279;" f droneLauncher src/Dodge/Item/Weapon/Drone.hs 11;" f dropByState src/Dodge/Creature/State.hs 131;" f dropExcept src/Dodge/Creature/Action.hs 167;" f -dropInventoryPath src/Dodge/HeldUse.hs 786;" f +dropInventoryPath src/Dodge/HeldUse.hs 787;" f dropItem src/Dodge/Creature/Action.hs 173;" f dropper src/Dodge/Item/Scope.hs 75;" f drumMag src/Dodge/Item/Ammo.hs 42;" f @@ -4283,7 +4284,7 @@ encircleP src/Dodge/Creature/Boid.hs 27;" f endCombineRegex src/Dodge/Update/Input/InGame.hs 265;" f endRegex src/Dodge/Update/Input/InGame.hs 252;" f enterCombineInv src/Dodge/DisplayInventory.hs 323;" f -epText src/Dodge/Inventory/SelectionList.hs 68;" f +epText src/Dodge/Inventory/SelectionList.hs 71;" f eqConstr src/SameConstr.hs 17;" f eqPosText src/Dodge/Equipment/Text.hs 5;" f eqSiteToPositions src/Dodge/Inventory/RBList.hs 75;" f @@ -4357,7 +4358,7 @@ flameThrower src/Dodge/Item/Held/SprayGuns.hs 72;" f flameTorrent src/Dodge/Item/Held/SprayGuns.hs 40;" f flameWall src/Dodge/Item/Held/SprayGuns.hs 56;" f flamerPic src/Dodge/Item/Draw/SPic.hs 378;" f -flareCircleAt src/Dodge/HeldUse.hs 294;" f +flareCircleAt src/Dodge/HeldUse.hs 295;" f flatItemCombinations src/Dodge/Combine/Combinations.hs 50;" f flatLookupItems src/Dodge/Combine.hs 38;" f flatShield src/Dodge/Item/Held/Utility.hs 20;" f @@ -4419,14 +4420,14 @@ fuseWallsWith src/Dodge/LevelGen/StaticWalls.hs 172;" f g src/ShortShow.hs 33;" f gLauncher src/Dodge/Item/Held/Launcher.hs 30;" f gRandify src/Dodge/Randify.hs 8;" f -gadgetEffect src/Dodge/HeldUse.hs 39;" f +gadgetEffect src/Dodge/HeldUse.hs 40;" f gameOverMenu src/Dodge/Menu.hs 184;" f gameRoomFromRoom src/Dodge/Layout.hs 161;" f 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 592;" f +gasCreate src/Dodge/HeldUse.hs 593;" f generateGenParams src/Dodge/LevelGen/LevelStructure.hs 22;" f generateGraphs src/Dodge/LevelGen.hs 39;" f generateLayout src/Dodge/Layout/Generate.hs 10;" f @@ -4438,12 +4439,12 @@ geometryTests test/Spec.hs 17;" f geometryUnitTests test/Spec.hs 22;" f geqConstr src/SameConstr.hs 21;" f getAmmoLinks src/Dodge/Item/Grammar.hs 132;" f -getArguments src/Dodge/Update/Scroll.hs 173;" f -getArguments' src/Dodge/Update/Scroll.hs 161;" f -getAttachedSFLink src/Dodge/HeldUse.hs 364;" f +getArguments src/Dodge/Update/Scroll.hs 176;" f +getArguments' src/Dodge/Update/Scroll.hs 164;" f +getAttachedSFLink src/Dodge/HeldUse.hs 365;" f getAutoSpringLinks src/Dodge/Item/Grammar.hs 112;" f getAvailableListLines src/Dodge/SelectionList.hs 10;" f -getBulletType src/Dodge/HeldUse.hs 471;" f +getBulletType src/Dodge/HeldUse.hs 472;" f getCloseObj src/Dodge/Update/Input/InGame.hs 512;" f getCommands src/Dodge/Terminal.hs 117;" f getCommandsHelp src/Dodge/Terminal.hs 75;" f @@ -4453,15 +4454,17 @@ getCrMoveSpeed src/Dodge/Creature/Statistics.hs 14;" f getDamageCoding src/Dodge/Terminal.hs 177;" f getDistortions src/Dodge/Render.hs 383;" f getEquipmentAllocation src/Dodge/Inventory/RBList.hs 45;" f -getGrenadeHitEffect src/Dodge/HeldUse.hs 701;" f -getLaserColor src/Dodge/HeldUse.hs 310;" f -getLaserDamage src/Dodge/HeldUse.hs 307;" f -getLaserPhaseV src/Dodge/HeldUse.hs 304;" f +getGrenadeHitEffect src/Dodge/HeldUse.hs 702;" f +getInventoryPath src/Dodge/Inventory/Path.hs 8;" f +getItemValue src/Dodge/Inventory/SelectionList.hs 107;" f +getLaserColor src/Dodge/HeldUse.hs 311;" f +getLaserDamage src/Dodge/HeldUse.hs 308;" f +getLaserPhaseV src/Dodge/HeldUse.hs 305;" f getLinksOfType src/Dodge/RoomLink.hs 39;" f getMaxLinesTM src/Dodge/Terminal/Type.hs 11;" f getMenuMouseContext src/Dodge/Update.hs 369;" f getNodePos src/Dodge/Path.hs 31;" f -getPJStabiliser src/Dodge/HeldUse.hs 693;" f +getPJStabiliser src/Dodge/HeldUse.hs 694;" f getPretty src/AesonHelp.hs 8;" f getPromptTM src/Dodge/Terminal/Type.hs 8;" f getRootItemBounds src/Dodge/Render/HUD.hs 94;" f @@ -4520,7 +4523,7 @@ hackOutline src/Dodge/Render/Outline.hs 5;" f halfHeight src/Dodge/Base/Window.hs 48;" f halfWidth src/Dodge/Base/Window.hs 48;" f haltSound src/Dodge/SoundLogic.hs 37;" f -hammerCheck src/Dodge/HeldUse.hs 78;" f +hammerCheck src/Dodge/HeldUse.hs 79;" f handleEvent src/Dodge/Event.hs 27;" f handleHotkeys src/Dodge/Creature/YourControl.hs 42;" f handleKeyboardEvent src/Dodge/Event/Input.hs 22;" f @@ -4547,9 +4550,9 @@ healS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 372;" f healthAnalyserByDoor src/Dodge/Room/LasTurret.hs 73;" f healthTest src/Dodge/Room/LasTurret.hs 94;" f heightWallPS src/Dodge/Placement/Instance/Wall.hs 13;" f -heldEffect src/Dodge/HeldUse.hs 59;" f -heldEffectMuzzles src/Dodge/HeldUse.hs 116;" f -heldEffectNoHammerCheck src/Dodge/HeldUse.hs 67;" f +heldEffect src/Dodge/HeldUse.hs 60;" f +heldEffectMuzzles src/Dodge/HeldUse.hs 117;" f +heldEffectNoHammerCheck src/Dodge/HeldUse.hs 68;" f heldInfo src/Dodge/Item/Info.hs 84;" f heldItemOffset src/Dodge/Item/HeldOffset.hs 78;" f heldItemOrient2D src/Dodge/Item/HeldOffset.hs 26;" f @@ -4570,9 +4573,9 @@ holdForm src/Dodge/Creature/Boid.hs 136;" f holsterWeapon src/Dodge/Creature/Volition.hs 14;" f homingModule src/Dodge/Item/Scope.hs 47;" f horPipe src/Dodge/Placement/Instance/Pipe.hs 9;" f -hotkeyToChar src/Dodge/Inventory/SelectionList.hs 132;" f +hotkeyToChar src/Dodge/Inventory/SelectionList.hs 144;" f hotkeyToScancode src/Dodge/Creature/YourControl.hs 70;" f -hotkeyToString src/Dodge/Inventory/SelectionList.hs 129;" f +hotkeyToString src/Dodge/Inventory/SelectionList.hs 141;" f humanoidAIList src/Dodge/Humanoid.hs 181;" f iShape src/Dodge/Placement/Instance/LightSource.hs 73;" f icosahedronPoints src/Polyhedra/Geodesic.hs 12;" f @@ -4643,8 +4646,7 @@ intersectSegsSeg src/Geometry/Intersect.hs 232;" f intervalList src/Geometry.hs 329;" f interweave src/Justify.hs 17;" f introScan src/Dodge/Item/Scope.hs 56;" f -introScanDisplay src/Dodge/Inventory/SelectionList.hs 118;" f -introScanValue src/Dodge/Inventory/SelectionList.hs 72;" f +introScanValue src/Dodge/Inventory/SelectionList.hs 75;" f intsToPos src/Dodge/Room/Modify/Girder.hs 160;" f invAdj src/Dodge/Item/Grammar.hs 289;" f invCursorParams src/Dodge/ListDisplayParams.hs 36;" f @@ -4656,7 +4658,7 @@ invLDT src/Dodge/Item/Grammar.hs 269;" f invRootItemEffs src/Dodge/Creature/State.hs 171;" f invRootMap src/Dodge/Item/Grammar.hs 278;" f invRootTrees src/Dodge/Item/Grammar.hs 299;" f -invSelectionItem src/Dodge/Inventory/SelectionList.hs 25;" f +invSelectionItem src/Dodge/Inventory/SelectionList.hs 28;" f invShiftPointBy src/Dodge/ShiftPoint.hs 8;" f invSideEff src/Dodge/Creature/State.hs 165;" f invSize src/Dodge/Inventory/CheckSlots.hs 25;" f @@ -4671,7 +4673,7 @@ invertIntMap src/Multiset.hs 67;" f invertInventoryToMap src/Dodge/Combine.hs 56;" f invisibleChaseCrit src/Dodge/Creature/ChaseCrit.hs 23;" f invisibleWall src/Dodge/Placement/Instance/Wall.hs 16;" f -isAmmoIntLink src/Dodge/HeldUse.hs 320;" f +isAmmoIntLink src/Dodge/HeldUse.hs 321;" f isAnimate src/Dodge/Creature/Test.hs 136;" f isCognizant src/Dodge/Creature/Perception.hs 105;" f isConnected src/Dodge/Inventory/Swap.hs 74;" f @@ -4700,31 +4702,29 @@ isotriBWH src/Geometry/Polygon.hs 20;" f itDim src/Dodge/Item/InvSize.hs 21;" f itInvHeight src/Dodge/Item/InvSize.hs 11;" f itemBaseConnections src/Dodge/Item/Grammar.hs 186;" f -itemBaseName src/Dodge/Item/Display.hs 56;" f +itemBaseName src/Dodge/Item/Display.hs 57;" f itemBlips src/Dodge/RadarSweep.hs 93;" f itemCombinations src/Dodge/Combine/Combinations.hs 55;" f itemCombinationsEdges src/Dodge/Combine/Graph.hs 60;" f -itemDetectorEffect src/Dodge/HeldUse.hs 370;" f -itemDisplay src/Dodge/Inventory/SelectionList.hs 42;" f -itemDisplayPad src/Dodge/Inventory/SelectionList.hs 98;" f +itemDetectorEffect src/Dodge/HeldUse.hs 371;" f +itemDisplay src/Dodge/Inventory/SelectionList.hs 45;" f itemEquipPict src/Dodge/Item/Draw.hs 16;" f -itemExternalValue src/Dodge/Inventory/SelectionList.hs 77;" f +itemExternalValue src/Dodge/Inventory/SelectionList.hs 80;" f itemFromAmmoMag src/Dodge/Item.hs 39;" f itemFromAttachType src/Dodge/Item.hs 48;" f itemFromBase src/Dodge/Item.hs 17;" f itemFromEquipType src/Dodge/Item.hs 63;" f itemFromHeldType src/Dodge/Item/Held.hs 25;" f itemInfo src/Dodge/Item/Info.hs 14;" f -itemInternalValue src/Dodge/Item/Display.hs 31;" f +itemInternalValue src/Dodge/Item/Display.hs 32;" f itemInvColor src/Dodge/Item/InventoryColor.hs 9;" f -itemNumberDisplay src/Dodge/Inventory/SelectionList.hs 103;" f itemRooms src/Dodge/LockAndKey.hs 39;" f itemRotTreeSPic src/Dodge/Item/Draw/SPic.hs 27;" f itemSPic src/Dodge/Item/Draw/SPic.hs 34;" f itemScan src/Dodge/Item/Scope.hs 62;" f itemScroll src/Dodge/Update/Scroll.hs 50;" f -itemScrollDisplay src/Dodge/Inventory/SelectionList.hs 87;" f -itemString src/Dodge/Item/Display.hs 52;" f +itemScrollDisplay src/Dodge/Inventory/SelectionList.hs 96;" f +itemString src/Dodge/Item/Display.hs 53;" f itemToBreakLists src/Dodge/Item/Grammar.hs 59;" f itemToFunction src/Dodge/Item/Grammar.hs 138;" f itemTreeSPic src/Dodge/Item/Draw/SPic.hs 22;" f @@ -4765,7 +4765,7 @@ lampCrSPic src/Dodge/Render/ShapePicture.hs 58;" f lasCenSensEdge src/Dodge/Room/LasTurret.hs 113;" f lasDronesPic src/Dodge/Item/Weapon/Drone.hs 22;" f lasGunPic src/Dodge/Item/Draw/SPic.hs 404;" f -lasRayAt src/Dodge/HeldUse.hs 448;" f +lasRayAt src/Dodge/HeldUse.hs 449;" f lasSensorTurretTest src/Dodge/Room/LasTurret.hs 106;" f lasTunnel src/Dodge/Room/LasTurret.hs 125;" f lasTunnelRunPast src/Dodge/Room/LasTurret.hs 166;" f @@ -4824,7 +4824,7 @@ lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 393;" f lnkPosDir src/Dodge/RoomLink.hs 97;" f loadDodgeConfig src/Dodge/Config/Load.hs 9;" f loadMusic src/Dodge/SoundLogic/LoadSound.hs 21;" f -loadMuzzle src/Dodge/HeldUse.hs 230;" f +loadMuzzle src/Dodge/HeldUse.hs 231;" f loadSaveSlot src/Dodge/Save.hs 74;" f loadSeed src/Dodge/LoadSeed.hs 7;" f loadSound src/Dodge/SoundLogic/LoadSound.hs 11;" f @@ -4879,8 +4879,8 @@ makeAttach src/Dodge/Item/Attach.hs 10;" f makeBlip src/Dodge/RadarSweep.hs 69;" f makeBlockDebris src/Dodge/Block/Debris.hs 28;" f makeBoolOption src/Dodge/Menu/OptionType.hs 8;" f -makeBullet src/Dodge/HeldUse.hs 543;" f -makeBullet' src/Dodge/HeldUse.hs 529;" f +makeBullet src/Dodge/HeldUse.hs 544;" f +makeBullet' src/Dodge/HeldUse.hs 530;" f makeButton src/Dodge/LevelGen/Switch.hs 16;" f makeByteStringShaderUsingVAO src/Shader/Compile.hs 128;" f makeCloudAt src/Dodge/WorldEvent/Cloud.hs 18;" f @@ -4906,7 +4906,7 @@ makeFragBullets src/Dodge/Bullet.hs 129;" f makeGasCloud src/Dodge/WorldEvent/SpawnParticle.hs 80;" f makeGrid src/Grid.hs 46;" f makeIntInterval src/Dodge/Zoning/Base.hs 34;" f -makeMuzzleFlare src/Dodge/HeldUse.hs 252;" f +makeMuzzleFlare src/Dodge/HeldUse.hs 253;" f makeParagraph src/Justify.hs 6;" f makePathBetween src/Dodge/Path.hs 35;" f makePathBetweenPs src/Dodge/Path.hs 54;" f @@ -4952,7 +4952,7 @@ maybeExitCombine src/Dodge/Update/Input/InGame.hs 533;" f maybeOpenConsole src/Dodge/Update.hs 123;" f maybeReadFile src/Dodge/LoadSeed.hs 10;" f maybeTakeOne src/RandomHelp.hs 116;" f -maybeWarmupStatus src/Dodge/Item/Display.hs 42;" f +maybeWarmupStatus src/Dodge/Item/Display.hs 43;" f mcApplyDamage src/Dodge/Machine/Update.hs 108;" f mcKillBut src/Dodge/Machine/Destroy.hs 34;" f mcKillTerm src/Dodge/Machine/Destroy.hs 26;" f @@ -4962,11 +4962,11 @@ mcProximitySensorUpdate src/Dodge/Machine/Update.hs 124;" f mcSPic src/Dodge/Render/ShapePicture.hs 132;" f mcSensorTriggerUpdate src/Dodge/Machine/Update.hs 87;" f mcSensorUpdate src/Dodge/Machine/Update.hs 119;" f -mcShootAuto src/Dodge/HeldUse.hs 627;" f -mcShootLaser src/Dodge/HeldUse.hs 619;" f +mcShootAuto src/Dodge/HeldUse.hs 628;" f +mcShootLaser src/Dodge/HeldUse.hs 620;" f mcTriggerVal src/Dodge/Machine/Update.hs 93;" f mcTypeUpdate src/Dodge/Machine/Update.hs 27;" f -mcUseHeld src/Dodge/HeldUse.hs 562;" f +mcUseHeld src/Dodge/HeldUse.hs 563;" f mcUseItem src/Dodge/Machine/Update.hs 79;" f medkit src/Dodge/Item/Consumable.hs 8;" f megaBattery src/Dodge/Item/Ammo.hs 80;" f @@ -5037,7 +5037,7 @@ mouseClickOptionsList src/Dodge/Update/Input/ScreenLayer.hs 59;" f mouseCursorType src/Dodge/Render/Picture.hs 80;" f mouseWorldPos src/Dodge/Base/Coordinate.hs 48;" f moveBullet src/Dodge/Bullet.hs 204;" f -moveCombineSel src/Dodge/Update/Scroll.hs 109;" f +moveCombineSel src/Dodge/Update/Scroll.hs 112;" f moveHammerUp src/Dodge/Hammer.hs 5;" f moveInverseShockwave src/Dodge/Shockwave/Update.hs 53;" f moveLSThen src/Dodge/Placement/Instance/LightSource.hs 30;" f @@ -5059,7 +5059,7 @@ multiArrow src/Picture/Composite.hs 11;" f multiLookupTrie src/SimpleTrie.hs 34;" f multiLookupTrieI src/SimpleTrie.hs 43;" f muout src/Dodge/RoomLink.hs 129;" f -muzFlareAt src/Dodge/HeldUse.hs 280;" f +muzFlareAt src/Dodge/HeldUse.hs 281;" f mvButton src/Dodge/Placement/PlaceSpot.hs 176;" f mvCr src/Dodge/Placement/PlaceSpot.hs 186;" f mvFS src/Dodge/Placement/PlaceSpot.hs 189;" f @@ -5099,7 +5099,7 @@ normalizeAnglePi src/Dodge/Base.hs 154;" f normalizeColor src/Color.hs 76;" f normalizeV src/Geometry/Vector.hs 43;" f normalizeV3 src/Geometry/Vector3D.hs 84;" f -nullCommand src/Dodge/Update/Scroll.hs 164;" f +nullCommand src/Dodge/Update/Scroll.hs 167;" f numColor src/Color.hs 128;" f numDrawableVertices src/Shader/Parameters.hs 34;" f numGLushort src/Shader/Parameters.hs 29;" f @@ -5469,7 +5469,7 @@ reloadS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 446;" f rememberSounds src/Dodge/Creature/Perception.hs 177;" f remoteDetonator src/Dodge/Item/Scope.hs 135;" f remoteScreen src/Dodge/Item/Scope.hs 130;" f -removeAmmoFromMag src/Dodge/HeldUse.hs 458;" f +removeAmmoFromMag src/Dodge/HeldUse.hs 459;" f removeDot src/ShortShow.hs 29;" f removeInverseWalls src/Dodge/LevelGen/StaticWalls.hs 25;" f removeShieldWall src/Dodge/Euse.hs 125;" f @@ -5611,10 +5611,10 @@ screenPosAbs src/Dodge/ScreenPos.hs 15;" f screenToWorldPos src/Dodge/Base/Coordinate.hs 53;" f scrollAugInvSel src/Dodge/Inventory.hs 187;" f scrollAugNextInSection src/Dodge/Inventory.hs 200;" f -scrollCommandStrings src/Dodge/Update/Scroll.hs 156;" f -scrollCommands src/Dodge/Update/Scroll.hs 153;" f +scrollCommandStrings src/Dodge/Update/Scroll.hs 159;" f +scrollCommands src/Dodge/Update/Scroll.hs 156;" f scrollDebugInfoInt src/Dodge/Debug.hs 71;" f -scrollRBOption src/Dodge/Update/Scroll.hs 147;" f +scrollRBOption src/Dodge/Update/Scroll.hs 150;" f scrollSelectionSections src/Dodge/SelectionSections.hs 26;" f scrollTimeBack src/Dodge/Update.hs 207;" f scrollTimeForward src/Dodge/Update.hs 230;" f @@ -5746,14 +5746,14 @@ shiftRoomShiftToLink src/Dodge/Room/Link.hs 70;" f shiftedGrid src/Grid.hs 25;" f shineTargetLaser src/Dodge/Creature/State.hs 308;" f shineTorch src/Dodge/Creature/State.hs 350;" f -shootBullet src/Dodge/HeldUse.hs 518;" f +shootBullet src/Dodge/HeldUse.hs 519;" f shootFirstMiss src/Dodge/Creature/Volition.hs 33;" f -shootLaser src/Dodge/HeldUse.hs 428;" f +shootLaser src/Dodge/HeldUse.hs 429;" f shootOutPassage src/Dodge/Room/RezBox.hs 74;" f shootShatter src/Dodge/Item/Weapon/Shatter.hs 11;" f -shootTeslaArc src/Dodge/HeldUse.hs 644;" f +shootTeslaArc src/Dodge/HeldUse.hs 645;" f shootTillEmpty src/Dodge/Creature/Volition.hs 18;" f -shootTractorBeam src/Dodge/HeldUse.hs 407;" f +shootTractorBeam src/Dodge/HeldUse.hs 408;" f shootersRoom src/Dodge/Room/Room.hs 315;" f shootersRoom' src/Dodge/Room/Room.hs 280;" f shootersRoom1 src/Dodge/Room/Room.hs 305;" f @@ -5764,11 +5764,11 @@ shotgunS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 536;" f shoulderHeight src/Dodge/Item/HeldOffset.hs 81;" f shoulderSH src/Dodge/Creature/Picture.hs 139;" f shoulderSP src/Dodge/Creature/HandPos.hs 170;" f -showAttachItem src/Dodge/Item/Display.hs 86;" f -showEquipItem src/Dodge/Item/Display.hs 100;" f +showAttachItem src/Dodge/Item/Display.hs 87;" f +showEquipItem src/Dodge/Item/Display.hs 101;" f showInt src/Dodge/Item/Info.hs 67;" f showIntsString src/Dodge/Tree/Compose.hs 129;" f -showInventoryPathing src/Dodge/Item/Display.hs 80;" f +showInventoryPathing src/Dodge/Item/Display.hs 81;" f showManObj src/Dodge/TestString.hs 76;" f showTerminalError src/Dodge/Debug/Terminal.hs 78;" f showTimeFlow src/Dodge/TestString.hs 99;" f @@ -5886,7 +5886,7 @@ ssfold src/FoldableHelp.hs 105;" f stackPicturesAt src/Dodge/Render/List.hs 98;" f stackPicturesAtOff src/Dodge/Render/List.hs 101;" f stackText src/Picture/Base.hs 188;" f -stackedInventory src/Dodge/Creature.hs 304;" f +stackedInventory src/Dodge/Creature.hs 305;" f startCr src/Dodge/Creature.hs 91;" f startCrafts src/Dodge/Room/Start.hs 92;" f startDrag src/Dodge/Update/Input/InGame.hs 277;" f @@ -5969,14 +5969,14 @@ terminalReturnEffect src/Dodge/Terminal.hs 276;" f terminalSPic src/Dodge/Machine/Draw.hs 29;" f terminalScreenGlow src/Dodge/Machine/Update.hs 34;" f terminalShape src/Dodge/Machine/Draw.hs 32;" f -terminalWheelEvent src/Dodge/Update/Scroll.hs 119;" f +terminalWheelEvent src/Dodge/Update/Scroll.hs 122;" f teslaGun src/Dodge/Item/Held/BatteryGuns.hs 21;" f teslaGunPic src/Dodge/Item/Draw/SPic.hs 401;" f teslaParams src/Dodge/Item/Held/BatteryGuns.hs 37;" f teslaParams src/Dodge/Tesla/ItemParams.hs 6;" f testCrossWalls src/Dodge/Room/Path.hs 47;" f testEvent src/Dodge/Event/Test.hs 10;" f -testInventory src/Dodge/Creature.hs 285;" f +testInventory src/Dodge/Creature.hs 286;" f testStringInit src/Dodge/TestString.hs 28;" f text src/Picture/Base.hs 193;" f textGrad src/Picture/Text.hs 5;" f @@ -6049,7 +6049,7 @@ torqueCr src/Dodge/WorldEffect.hs 67;" f torso src/Dodge/Creature/Picture.hs 105;" f tractCr src/Dodge/TractorBeam/Update.hs 28;" f tractFlIt src/Dodge/TractorBeam/Update.hs 23;" f -tractorBeamAt src/Dodge/HeldUse.hs 417;" f +tractorBeamAt src/Dodge/HeldUse.hs 418;" f tractorGun src/Dodge/Item/Held/BatteryGuns.hs 70;" f tractorGunPic src/Dodge/Item/Draw/SPic.hs 428;" f tractorPullPos src/Dodge/TractorBeam/Update.hs 33;" f @@ -6235,7 +6235,7 @@ updateRadarSweeps src/Dodge/Update.hs 545;" f updateRandNode src/TreeHelp.hs 108;" f updateRenderSplit appDodge/Main.hs 108;" f updateRootItemID src/Dodge/Inventory/Location.hs 35;" f -updateScopeZoom src/Dodge/Update/Scroll.hs 67;" f +updateScopeZoom src/Dodge/Update/Scroll.hs 70;" f updateScrollTestValue src/Dodge/ScrollValue.hs 6;" f updateSection src/Dodge/DisplayInventory.hs 264;" f updateSectionsPositioning src/Dodge/DisplayInventory.hs 243;" f @@ -6289,26 +6289,26 @@ useBulletPayload src/Dodge/Bullet.hs 118;" f useC src/Dodge/Cuse.hs 8;" f useC' src/Dodge/Cuse.hs 13;" f useE src/Dodge/Euse.hs 34;" f -useGasParams src/Dodge/HeldUse.hs 567;" f +useGasParams src/Dodge/HeldUse.hs 568;" f useHotkey src/Dodge/Creature/YourControl.hs 65;" f -useInventoryPath src/Dodge/HeldUse.hs 806;" f +useInventoryPath src/Dodge/HeldUse.hs 812;" f useItem src/Dodge/Creature/Impulse/UseItem.hs 20;" f useItemLoc src/Dodge/Creature/Impulse/UseItem.hs 27;" f useLnkRoomPos src/Dodge/PlacementSpot.hs 244;" f -useLoadedAmmo src/Dodge/HeldUse.hs 324;" f +useLoadedAmmo src/Dodge/HeldUse.hs 325;" f useLocation src/Dodge/Creature/Impulse/UseItem.hs 66;" f useMagShield src/Dodge/Euse.hs 46;" f useNormalCamera src/Dodge/Camera.hs 6;" f usePayload src/Dodge/Payload.hs 18;" f -useRewindGun src/Dodge/HeldUse.hs 777;" f +useRewindGun src/Dodge/HeldUse.hs 778;" f useRewindGun src/Dodge/Luse.hs 40;" f useRoomPosCond src/Dodge/PlacementSpot.hs 178;" f useRoomPosRoomCond src/Dodge/PlacementSpot.hs 181;" f -useStopWatch src/Dodge/HeldUse.hs 758;" f +useStopWatch src/Dodge/HeldUse.hs 759;" f useStopWatch src/Dodge/Luse.hs 21;" f -useTimeCheck src/Dodge/HeldUse.hs 92;" f +useTimeCheck src/Dodge/HeldUse.hs 93;" f useTimeCheck src/Dodge/Item/Weapon/TriggerType.hs 127;" f -useTimeScrollGun src/Dodge/HeldUse.hs 766;" f +useTimeScrollGun src/Dodge/HeldUse.hs 767;" f useTimeScrollGun src/Dodge/Luse.hs 29;" f useUnusedLnk src/Dodge/PlacementSpot.hs 169;" f usedRoomInLinkPoss src/Dodge/PlacementSpot.hs 196;" f @@ -6343,7 +6343,7 @@ vocalizationTest src/Dodge/Creature/Vocalization.hs 8;" f volleyGun src/Dodge/Item/Held/Cane.hs 31;" f volleyGunShape src/Dodge/Item/Draw/SPic.hs 339;" f waistSP src/Dodge/Creature/HandPos.hs 173;" f -walkNozzle src/Dodge/HeldUse.hs 385;" f +walkNozzle src/Dodge/HeldUse.hs 386;" f walkableNodeNear src/Dodge/Path.hs 48;" f wallBlips src/Dodge/RadarSweep.hs 98;" f wallBuffer src/Dodge/WallCreatureCollisions.hs 51;" f @@ -6458,7 +6458,7 @@ zonesAroundPoint src/Dodge/Zoning/Base.hs 90;" f zonesExtract src/Dodge/Zoning/Base.hs 55;" f zoomFloatingCamera src/Dodge/Update/Camera.hs 68;" f zoomFromItem src/Dodge/Update/Camera.hs 181;" f -zoomInLongGun src/Dodge/Update/Scroll.hs 93;" f -zoomOutLongGun src/Dodge/Update/Scroll.hs 101;" f +zoomInLongGun src/Dodge/Update/Scroll.hs 96;" f +zoomOutLongGun src/Dodge/Update/Scroll.hs 104;" f zoomScope src/Dodge/Item/Scope.hs 32;" f -zoomSpeed src/Dodge/Update/Scroll.hs 90;" f +zoomSpeed src/Dodge/Update/Scroll.hs 93;" f