From 5b978d9f1c824fbb852c2b3ba5a0feff060f3b1a Mon Sep 17 00:00:00 2001 From: justin Date: Wed, 1 Jan 2025 21:14:38 +0000 Subject: [PATCH] Make examine inventory controlled by item, perhaps still buggy --- src/Dodge/Creature/Action.hs | 14 +- src/Dodge/Creature/Impulse/UseItem.hs | 41 +- src/Dodge/Creature/YourControl.hs | 7 +- src/Dodge/Data/ComposedItem.hs | 1 + src/Dodge/Data/HUD.hs | 6 - src/Dodge/Data/Item/Effect.hs | 10 +- src/Dodge/Data/Item/Use.hs | 1 + src/Dodge/Data/Item/Use/Consumption/Ammo.hs | 1 - src/Dodge/Data/Terminal.hs | 7 +- src/Dodge/DisplayInventory.hs | 2 +- src/Dodge/Inventory.hs | 26 +- src/Dodge/Inventory/SelectionList.hs | 7 +- src/Dodge/ItEffect.hs | 11 + src/Dodge/Item/Display.hs | 16 +- src/Dodge/Item/Grammar.hs | 1 + src/Dodge/Item/InventoryColor.hs | 1 + src/Dodge/Item/Scope.hs | 3 +- src/Dodge/ListDisplayParams.hs | 2 +- src/Dodge/Projectile/Create.hs | 79 ++- src/Dodge/Projectile/Update.hs | 53 +- src/Dodge/Room/Warning.hs | 2 - src/Dodge/Update/Input/InGame.hs | 13 +- src/Dodge/Update/Scroll.hs | 13 +- src/Dodge/WorldEffect.hs | 7 +- tags | 701 ++++++++++---------- 25 files changed, 523 insertions(+), 502 deletions(-) diff --git a/src/Dodge/Creature/Action.hs b/src/Dodge/Creature/Action.hs index 014214e44..dcd8b7833 100644 --- a/src/Dodge/Creature/Action.hs +++ b/src/Dodge/Creature/Action.hs @@ -3,9 +3,7 @@ -- | Actions performed by creatures within the world module Dodge.Creature.Action ( performActions, - -- stripNoItems, setMinInvSize, - -- dropUnselected, dropExcept, dropItem, blinkActionMousePos, @@ -13,12 +11,9 @@ module Dodge.Creature.Action ( unsafeBlinkAction, sizeSelf, youDropItem, --- pickUpItem, ) where import Control.Applicative ---import Data.List (findIndex) - import Control.Monad import Data.Bifunctor import Data.Maybe @@ -31,6 +26,7 @@ import Dodge.Default import Dodge.FloatFunction import Dodge.FloorItem import Dodge.Inventory +import Dodge.ItEffect --import Dodge.Inventory.Add import Dodge.Path import Dodge.SoundLogic @@ -176,11 +172,15 @@ dropExcept cr invid w = -- why not a cid (Int)? dropItem :: Creature -> Int -> World -> World dropItem cr invid = - maybeshiftseldown - . rmInvItem (_crID cr) invid + doanyitemdropeffect + . maybeshiftseldown + . rmInvItem (_crID cr) invid . copyItemToFloor (_crPos cr) itm -- . mayberemoveequip . soundStart (CrSound (_crID cr)) (_crPos cr) whiteNoiseFadeOutS Nothing where + doanyitemdropeffect = fromMaybe id $ do + rmf <- itm ^? itEffect . ieOnDrop + return $ doInvEffect rmf itm cr itm = fromMaybe (error "dropItem cannot find item") $ cr ^? crInv . ix invid maybeshiftseldown w = fromMaybe w $ do 3 <- w ^? hud . hudElement . diSelection . _Just . _1 diff --git a/src/Dodge/Creature/Impulse/UseItem.hs b/src/Dodge/Creature/Impulse/UseItem.hs index c67abaeb8..f722d16cb 100644 --- a/src/Dodge/Creature/Impulse/UseItem.hs +++ b/src/Dodge/Creature/Impulse/UseItem.hs @@ -4,8 +4,8 @@ module Dodge.Creature.Impulse.UseItem ( useItem, ) where +import Dodge.ToggleExamine import Control.Lens -import Control.Monad import Data.Maybe import Dodge.Data.ComposedItem import Dodge.Data.DoubleTree @@ -15,6 +15,7 @@ import Dodge.Euse import Dodge.HeldUse import Dodge.Inventory import Dodge.Item.Grammar +import Dodge.Item.Location import qualified IntMapHelp as IM useItem :: Int -> PressType -> World -> Maybe World @@ -30,27 +31,33 @@ useItemLoc :: PressType -> World -> Maybe World -useItemLoc cr loc pt w = case loc ^. locLDT . ldtValue . _2 of - HeldPlatformSF -> do - guard $ fromMaybe False $ loc ^? locLDT . ldtValue . _1 . itLocation . ilIsRoot - guard $ cr ^. crStance . posture == Aiming +useItemLoc cr loc pt w + | HeldPlatformSF <- sf + , fromMaybe False $ loc ^? locLDT . ldtValue . _1 . itLocation . ilIsRoot + , cr ^. crStance . posture == Aiming = return $ heldEffect pt (bimap _iatType (^. _1) ldt) cr w - GadgetPlatformSF -> - return $ - heldEffect pt (bimap _iatType (^. _1) ldt) cr w - UnderBarrelPlatformSF -> do - guard $ fromMaybe False $ loc ^? locLDT . ldtValue . _1 . itLocation . ilIsAttached - guard $ cr ^. crStance . posture == Aiming + | GadgetPlatformSF <- sf = return $ heldEffect pt (bimap _iatType (^. _1) ldt) cr w - RemoteDetonatorSF -> do - guard $ pt == InitialPress + | UnderBarrelPlatformSF <- sf + , fromMaybe False $ loc ^? locLDT . ldtValue . _1 . itLocation . ilIsAttached + , cr ^. crStance . posture == Aiming = + return $ heldEffect pt (bimap _iatType (^. _1) ldt) cr w + | RemoteDetonatorSF <- sf + , pt == InitialPress = return $ activateDetonator ldt w - _ | isJust $ itm ^? itUse . uequipEffect -> do - guard $ pt == InitialPress - invid' <- itm ^? itLocation . ilInvID + | ITEMSCANNER <- itm ^. itType + , pt == InitialPress = + return $ toggleExamineInv w + | Just b <- itm ^? itUse . useToggle + , pt == InitialPress = + return $ w & pointerToItem itm . itUse . useToggle .~ not b + | isJust $ itm ^? itUse . uequipEffect + , pt == InitialPress + , Just invid' <- itm ^? itLocation . ilInvID = return $ toggleEquipmentAt invid' cr w - _ -> Nothing + | otherwise = Nothing where + sf = loc ^. locLDT . ldtValue . _2 ldt = loc ^. locLDT itm = ldt ^. ldtValue . _1 diff --git a/src/Dodge/Creature/YourControl.hs b/src/Dodge/Creature/YourControl.hs index a650688ac..be12969fa 100644 --- a/src/Dodge/Creature/YourControl.hs +++ b/src/Dodge/Creature/YourControl.hs @@ -23,8 +23,8 @@ import qualified SDL yourControl :: Creature -> World -> World yourControl _ w | inTextInputFocus w = w - | Just NoSubInventory{} <- w ^? hud . hudElement . subInventory = - w + | Just x <- w ^? hud . hudElement . subInventory + , f x = w & cWorld . lWorld . creatures . ix 0 %~ (wasdWithAiming w . setCrPosture pkeys) & tryClickUse pkeys @@ -32,6 +32,9 @@ yourControl _ w | otherwise = w & cWorld . lWorld . creatures . ix 0 %~ wasdWithAiming w where + f NoSubInventory = True + f ExamineInventory = True + f _ = False pkeys = w ^. input . mouseButtons handleHotkeys :: World -> World diff --git a/src/Dodge/Data/ComposedItem.hs b/src/Dodge/Data/ComposedItem.hs index 70d36c3ea..679c1bb79 100644 --- a/src/Dodge/Data/ComposedItem.hs +++ b/src/Dodge/Data/ComposedItem.hs @@ -61,6 +61,7 @@ data ItemStructuralFunction | MakeAutoSF | ProjectileStabiliserSF | GrenadeHitEffectSF + | ToggleSF deriving (Eq, Ord, Show, Read) type ComposedItem = (Item, ItemStructuralFunction, LinkTest) diff --git a/src/Dodge/Data/HUD.hs b/src/Dodge/Data/HUD.hs index 39c534366..a111b8b5f 100644 --- a/src/Dodge/Data/HUD.hs +++ b/src/Dodge/Data/HUD.hs @@ -25,12 +25,6 @@ data HUDElement } | DisplayCarte ---data MouseInventorySelection --- = MouseInvSelect --- {_misSelStart :: (Int, Int), _misMaybeEnd :: Maybe (Int, Int)} --- | MouseInvDrag --- | MouseInvNothing - data SubInventory = NoSubInventory | ExamineInventory diff --git a/src/Dodge/Data/Item/Effect.hs b/src/Dodge/Data/Item/Effect.hs index e198c1710..a0a7c14d5 100644 --- a/src/Dodge/Data/Item/Effect.hs +++ b/src/Dodge/Data/Item/Effect.hs @@ -1,13 +1,17 @@ -{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DeriveAnyClass #-} +{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE StrictData #-} {-# LANGUAGE TemplateHaskell #-} -module Dodge.Data.Item.Effect where +module Dodge.Data.Item.Effect ( + module Dodge.Data.Item.Effect, + module Dodge.Data.BlBl, +) where import Control.Lens import Data.Aeson import Data.Aeson.TH +import Dodge.Data.BlBl data ItEffect = ItEffect { _ieInv :: ItInvEffect --Item -> Creature -> World -> World @@ -23,6 +27,8 @@ data ItInvEffect | RemoveShieldWall | EffectWhileRoot ItInvEffect | EffectWhileAttached ItInvEffect + | ItemUseToggle BlBl + | ItemCancelExamineInventory 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 45433f7ed..c1899a025 100644 --- a/src/Dodge/Data/Item/Use.hs +++ b/src/Dodge/Data/Item/Use.hs @@ -43,6 +43,7 @@ data ItemUse | UseNothing | UseScope { _uScope :: Scope } | UseBulletMod { _ubMod :: BulletMod } + | UseToggle {_useToggle :: Bool} deriving (Eq, Show, Read) data HeldUseEffect diff --git a/src/Dodge/Data/Item/Use/Consumption/Ammo.hs b/src/Dodge/Data/Item/Use/Consumption/Ammo.hs index dbd840a2e..6b3d9f3e8 100644 --- a/src/Dodge/Data/Item/Use/Consumption/Ammo.hs +++ b/src/Dodge/Data/Item/Use/Consumption/Ammo.hs @@ -19,7 +19,6 @@ data ProjectileUpdate = ThrustPU {_pjuStart :: Int, _pjuEnd :: Int} | StartSpinPU {_pjuTime :: Int, _pjuCID :: Int, _pjuSpinAmound :: Int} | RemoteDirectionPU {_pjuStart :: Int, _pjuEnd :: Int} --- | ApplyGravityPU deriving (Show, Eq, Ord, Read) --Generic, Flat) data AmmoType diff --git a/src/Dodge/Data/Terminal.hs b/src/Dodge/Data/Terminal.hs index 58d654891..79e2e7e77 100644 --- a/src/Dodge/Data/Terminal.hs +++ b/src/Dodge/Data/Terminal.hs @@ -11,6 +11,7 @@ import Data.Aeson import Data.Aeson.TH import qualified Data.Map.Strict as M import Dodge.Data.WorldEffect +import Dodge.Data.BlBl data TerminalStatus = TerminalOff | TerminalBusy | TerminalReady deriving Eq @@ -85,11 +86,6 @@ data TerminalToggle = TerminalToggle } --deriving (Eq, Ord, Show, Read) --Generic, Flat) -data BlBl - = BlNegate - | BlConst Bool - | BlId - --deriving (Eq, Ord, Show, Read) --Generic, Flat) data EffectArguments = NoArguments {_cmdEffect :: [TerminalLine]} @@ -135,7 +131,6 @@ concat <$> mapM (deriveJSON defaultOptions) , ''TmTm , ''TerminalLine , ''TerminalBootProgram - , ''BlBl , ''TerminalToggle , ''EffectArguments , ''TerminalCommandEffect diff --git a/src/Dodge/DisplayInventory.hs b/src/Dodge/DisplayInventory.hs index 51b8099c2..2ca64d535 100644 --- a/src/Dodge/DisplayInventory.hs +++ b/src/Dodge/DisplayInventory.hs @@ -179,7 +179,7 @@ updateDisplaySections w cfig = ( \(indent, x) -> invSelectionItem indent - (w ^. cWorld . lWorld) + w (x ^. locLDT . ldtValue) ) (fmap (first removeindentiffiltering) . allInvLocs $ _crInv cr) diff --git a/src/Dodge/Inventory.hs b/src/Dodge/Inventory.hs index b27a83ab1..9c2059a0d 100644 --- a/src/Dodge/Inventory.hs +++ b/src/Dodge/Inventory.hs @@ -1,6 +1,6 @@ --{-# LANGUAGE TupleSections #-} module Dodge.Inventory ( - rmInvItem, + rmInvItem, destroyInvItem, updateCloseObjects, changeSwapSel, @@ -14,9 +14,8 @@ module Dodge.Inventory ( swapItemWith, ) where -import qualified Data.IntSet as IS -import Dodge.Inventory.Swap import Data.Function +import qualified Data.IntSet as IS import Data.Maybe import Dodge.Base import Dodge.Data.SelectionList @@ -25,7 +24,7 @@ import Dodge.Euse import Dodge.Inventory.CheckSlots import Dodge.Inventory.Location import Dodge.Inventory.RBList -import Dodge.ItEffect +import Dodge.Inventory.Swap import Dodge.SelectionSections import Geometry import qualified IntMapHelp as IM @@ -43,8 +42,9 @@ destroyInvItem :: Int -> World -> World -destroyInvItem cid invid w = rmInvItem cid invid w & removeitloc - & removeithotkey +destroyInvItem cid invid w = + rmInvItem cid invid w & removeitloc + & removeithotkey where removeitloc = fromMaybe id $ do itid <- w ^? cWorld . lWorld . creatures . ix cid . crInv . ix invid . itID . unNInt @@ -54,7 +54,7 @@ destroyInvItem cid invid w = rmInvItem cid invid w & removeitloc hk <- w ^? cWorld . lWorld . imHotkeys . unNIntMap . ix itid return $ (cWorld . lWorld . imHotkeys . unNIntMap . at itid .~ Nothing) - . ( cWorld . lWorld . hotkeys . at hk .~ Nothing) + . (cWorld . lWorld . hotkeys . at hk .~ Nothing) -- | after this the item at the inventory position will no longer exist rmInvItem :: @@ -66,7 +66,6 @@ rmInvItem :: World rmInvItem cid invid w = w - & doanyitemeffect & dounequipfunction --the ordering of these is & pointcid . crInv %~ f -- important & removeAnySlotEquipment @@ -90,12 +89,13 @@ rmInvItem cid invid w = dounequipfunction = fromMaybe id $ do rmf <- itm ^? itUse . uequipEffect . eeOnRemove return $ doItmCrWdWd rmf itm cr - doanyitemeffect = fromMaybe id $ do - rmf <- itm ^? itEffect . ieOnDrop - return $ doInvEffect rmf itm cr removeAnySlotEquipment = fromMaybe id $ do - epos <- w ^? cWorld . lWorld . creatures . ix cid . crInv . ix invid - . itLocation . ilEquipSite . _Just + epos <- + w + ^? cWorld . lWorld . creatures . ix cid . crInv . ix invid + . itLocation + . ilEquipSite + . _Just return $ pointcid . crEquipment . at epos .~ Nothing maxk = fmap fst $ IM.lookupMax $ cr ^. crInv f inv = diff --git a/src/Dodge/Inventory/SelectionList.hs b/src/Dodge/Inventory/SelectionList.hs index df95fe23b..8d130ba90 100644 --- a/src/Dodge/Inventory/SelectionList.hs +++ b/src/Dodge/Inventory/SelectionList.hs @@ -19,8 +19,8 @@ import NewInt import Padding import Picture.Base -invSelectionItem :: Int -> LWorld -> ComposedItem -> SelectionItem () -invSelectionItem indent lw ci = +invSelectionItem :: Int -> World -> ComposedItem -> SelectionItem () +invSelectionItem indent w ci = SelectionItem { _siPictures = pics & ix 0 %~ (++ anyequippos ++ anyhotkey) , _siHeight = itInvHeight $ ci ^. _1 @@ -31,13 +31,14 @@ invSelectionItem indent lw ci = , _siPayload = () } where + lw = w ^. cWorld . lWorld cr = lw ^?! creatures . ix 0 itid = ci ^. _1 . itID . unNInt anyhotkey = maybe [] ((' ' :) . hotkeyToString) (lw ^? imHotkeys . unNIntMap . ix itid) anyequippos = maybe [] (rightPad 8 ' ' . (' ' :) . eqPosText) (ci ^? _1 . itLocation . ilEquipSite . _Just) col = itemInvColor ci - pics = itemDisplay cr ci + pics = itemDisplay w cr ci hotkeyToString :: Hotkey -> String hotkeyToString x = case x of diff --git a/src/Dodge/ItEffect.hs b/src/Dodge/ItEffect.hs index 81b211cbe..67d290dda 100644 --- a/src/Dodge/ItEffect.hs +++ b/src/Dodge/ItEffect.hs @@ -3,6 +3,8 @@ module Dodge.ItEffect ( doInvEffect, ) where +import Dodge.BlBl +import Dodge.Item.Location import Control.Lens import Dodge.Data.World import Dodge.Euse @@ -15,6 +17,15 @@ doInvEffect = \case RemoveShieldWall -> removeShieldWall EffectWhileRoot f -> rootNotrootEff f NoInvEffect EffectWhileAttached f -> effectWhileAttached f + ItemUseToggle f -> \itm _ + -> pointerToItemID (itm ^. itID) . itUse . useToggle %~ doBlBl f + ItemCancelExamineInventory -> \_ _ -> cancelExamineInventory + +cancelExamineInventory :: World -> World +cancelExamineInventory = hud . hudElement . subInventory %~ f + where + f ExamineInventory = NoSubInventory + f x = x rootNotrootEff :: ItInvEffect -> ItInvEffect -> Item -> Creature -> World -> World rootNotrootEff f g it diff --git a/src/Dodge/Item/Display.hs b/src/Dodge/Item/Display.hs index 92ec04c84..c40d1d3a3 100644 --- a/src/Dodge/Item/Display.hs +++ b/src/Dodge/Item/Display.hs @@ -6,9 +6,9 @@ module Dodge.Item.Display ( basicItemDisplay, ) where +import Dodge.Data.World import Data.Maybe import Dodge.Data.ComposedItem -import Dodge.Data.Creature import Dodge.Item.InvSize import LensHelp import Padding @@ -18,14 +18,14 @@ import ShortShow -- variety of factors but typically don't depend on functional quality, -- colour gives an indication of an item's function within a structure -itemDisplay :: Creature -> ComposedItem -> [String] -itemDisplay cr ci = +itemDisplay :: World -> Creature -> ComposedItem -> [String] +itemDisplay w cr ci = zipWithDefaults id (leftPad 15 ' ') itemDisplayPad (basicItemDisplay itm) - (itemNumberDisplay cr ci) + (itemNumberDisplay w cr ci) where itm = ci ^. _1 @@ -92,8 +92,12 @@ showEquipItem eit = case eit of -- this can change, but probably won't when (say) dropped and then picked up -- again -- that is to say, it should not change based on functional positioning -itemNumberDisplay :: Creature -> ComposedItem -> [String] -itemNumberDisplay cr ci +itemNumberDisplay :: World -> Creature -> ComposedItem -> [String] +itemNumberDisplay w cr ci + | Just x <- ci ^? _1 . itUse . useToggle = [show x] + | ITEMSCANNER <- ci ^. _1 . itType + , Just ExamineInventory <- w ^? hud . hudElement . subInventory + = ["ACTIVE"] | EQUIP WRIST_ECG <- ci ^. _1 . itType = [displayPulse $ cr ^?! crType . avatarPulse . pulseProgress] | HELD ALTERIFLE <- ci ^. _1 . itType = diff --git a/src/Dodge/Item/Grammar.hs b/src/Dodge/Item/Grammar.hs index 69a20969d..6367f13da 100644 --- a/src/Dodge/Item/Grammar.hs +++ b/src/Dodge/Item/Grammar.hs @@ -131,6 +131,7 @@ getAmmoLinks itm = itemToFunction :: Item -> ItemStructuralFunction itemToFunction itm = case itm ^. itType of + ITEMSCANNER -> ToggleSF INTROSCAN {} -> IntroScanSF HELD LASER -> WeaponTargetingSF HELD{} -> case itm ^? itUseCondition of diff --git a/src/Dodge/Item/InventoryColor.hs b/src/Dodge/Item/InventoryColor.hs index 331881ebf..516ce6fcf 100644 --- a/src/Dodge/Item/InventoryColor.hs +++ b/src/Dodge/Item/InventoryColor.hs @@ -10,6 +10,7 @@ itemInvColor :: ComposedItem -> Color itemInvColor ci = case ci ^. _2 of GrenadeHitEffectSF -> yellow IntroScanSF -> white + ToggleSF -> white UnloadedWeaponSF -> mixColorsLinear 0.5 0.5 red white HeldPlatformSF -> white MakeAutoSF -> white diff --git a/src/Dodge/Item/Scope.hs b/src/Dodge/Item/Scope.hs index 55b8b8fd5..be7a3fe24 100644 --- a/src/Dodge/Item/Scope.hs +++ b/src/Dodge/Item/Scope.hs @@ -19,6 +19,7 @@ module Dodge.Item.Scope ( introScan, ) where +--import Dodge.Data.BlBl import Dodge.Item.Attach import Control.Lens import Dodge.Data.Item @@ -59,7 +60,7 @@ itemScanner = defaultHeldItem & itType .~ ITEMSCANNER & itUse .~ UseNothing - + & itEffect . ieOnDrop .~ ItemCancelExamineInventory bulletModule :: BulletMod -> Item bulletModule bm = diff --git a/src/Dodge/ListDisplayParams.hs b/src/Dodge/ListDisplayParams.hs index db4e64cc7..063edd632 100644 --- a/src/Dodge/ListDisplayParams.hs +++ b/src/Dodge/ListDisplayParams.hs @@ -35,7 +35,7 @@ invDP = invCursorParams :: World -> CursorDisplay invCursorParams w = BoundaryCursor $ case w ^? hud . hudElement . subInventory of - Just ExamineInventory{} -> [North, South, East, West] +-- Just ExamineInventory{} -> [North, South, East, West] Just CombineInventory{} -> [] _ | ButtonRight `M.member` _mouseButtons (_input w) -> [North, South, East, West] _ -> [North, South, West] diff --git a/src/Dodge/Projectile/Create.hs b/src/Dodge/Projectile/Create.hs index bab1aa21a..419aeb7e9 100644 --- a/src/Dodge/Projectile/Create.hs +++ b/src/Dodge/Projectile/Create.hs @@ -3,49 +3,56 @@ module Dodge.Projectile.Create ( PJStabiliser (..), ) where -import NewInt --import Dodge.Data.ComposedItem --import Dodge.Data.DoubleTree -import Dodge.Item.Location + import Data.Maybe import Dodge.Data.World +import Dodge.Item.Location import Geometry import qualified IntMapHelp as IM import LensHelp +import NewInt data PJStabiliser = StabOrthReduce | StabSpinIncrease - -- assumes the mscreen is in your inventory -createShell ::Maybe (NewInt ItmInt) - -> Maybe (NewInt ItmInt) - -> Maybe PJStabiliser - -> ProjectileType - -> Payload -> Muzzle -> Creature -> World -> World -createShell mdetonator mscreen stab pjtype payload muz cr w = w - & updatescreen - & updatedetonator - & cWorld . lWorld . projectiles . at i - ?~ Shell - { _pjPos = pos - , _pjZ = 20 - , _pjZVel = 5 - , _pjVel = rotateV dir (V2 speed 0) + crvelcomponent - , _pjID = i - , _pjDir = dir - , _pjSpin = 0 - , _pjPayload = payload - , _pjTimer = lifespan - , _pjUpdates = - anyspin <> - [ RemoteDirectionPU (lifespan - thrustdelay) 0 - ] <> thrustorgrav - , _pjType = pjtype - , _pjDetonatorID = mdetonator - , _pjScreenID = mscreen - } +createShell :: + Maybe (NewInt ItmInt) -> + Maybe (NewInt ItmInt) -> + Maybe PJStabiliser -> + ProjectileType -> + Payload -> + Muzzle -> + Creature -> + World -> + World +createShell mdetonator mscreen stab pjtype payload muz cr w = + w + & updatescreen + & updatedetonator + & cWorld . lWorld . projectiles . at i + ?~ Shell + { _pjPos = pos + , _pjZ = 20 + , _pjZVel = 5 + , _pjVel = rotateV dir (V2 speed 0) + crvelcomponent + , _pjID = i + , _pjDir = dir + , _pjSpin = 0 + , _pjPayload = payload + , _pjTimer = lifespan + , _pjUpdates = + anyspin + <> [ RemoteDirectionPU (lifespan - thrustdelay) 0 + ] + <> thrustorgrav + , _pjType = pjtype + , _pjDetonatorID = mdetonator + , _pjScreenID = mscreen + } where crvelcomponent = case stab of Just StabOrthReduce -> projV (cr ^. crPos - cr ^. crOldPos) (unitVectorAtAngle dir) @@ -55,27 +62,27 @@ createShell mdetonator mscreen stab pjtype payload muz cr w = w Just StabSpinIncrease -> [StartSpinPU (lifespan - 15) (_crID cr) 4] _ -> [StartSpinPU (lifespan - 15) (_crID cr) 2] speed = case pjtype of - Grenade {} -> 4 + Grenade{} -> 4 Rocket{} -> 1 RetiredProjectile -> 0 lifespan = 350 thrustorgrav = case pjtype of - Grenade {}-> [] + Grenade{} -> [] Rocket{} -> [ThrustPU (lifespan - thrustdelay) 0] RetiredProjectile -> [] thrustdelay = 20 updatedetonator = fromMaybe id $ do screenid <- mdetonator - return $ pointerToItemID screenid . itUse . uaParams + return $ + pointerToItemID screenid . itUse . uaParams . apProjectiles .:~ i updatescreen = fromMaybe id $ do screenid <- mscreen - return $ pointerToItemID screenid . itUse . uaParams + return $ + pointerToItemID screenid . itUse . uaParams . apProjectiles .:~ i --- . apLinkedProjectile --- ?~ i i = IM.newKey $ w ^. cWorld . lWorld . projectiles dir = _crDir cr + _mzRot muz pos = _crPos cr +.+ rotateV dir (_mzPos muz) diff --git a/src/Dodge/Projectile/Update.hs b/src/Dodge/Projectile/Update.hs index 7b262bd2f..18a593e37 100644 --- a/src/Dodge/Projectile/Update.hs +++ b/src/Dodge/Projectile/Update.hs @@ -42,14 +42,15 @@ upProjectile pj pu = case pu of RemoteDirectionPU st et | act st et -> pjRemoteSetDirection (pj ^? pjType . rkHoming) pj | otherwise -> id --- ApplyGravityPU -> applyGravityPU pj where + -- ApplyGravityPU -> applyGravityPU pj + time = _pjTimer pj act st et = time <= st && time >= et doGravityPU :: Projectile -> World -> World doGravityPU pj - | Grenade GBounce {} <- pj ^. pjType = applyGravityPU pj + | Grenade GBounce{} <- pj ^. pjType = applyGravityPU pj | Grenade GStick <- pj ^. pjType = applyGravityPU pj | otherwise = id @@ -106,14 +107,16 @@ tryShellBounce :: (Point2, Either Creature Wall) -> Projectile -> World -> World tryShellBounce (p, Right wl) pj w | Just GStuckCreature{} <- pj ^? pjType . gnHitEffect = w | Just GStuckWall{} <- pj ^? pjType . gnHitEffect = w - | Just GStick <- pj ^? pjType . gnHitEffect = w - & cWorld . lWorld . projectiles . ix (_pjID pj) . pjType - .~ Grenade (GStuckWall (wl ^. wlStructure)) --- & cWorld . lWorld . projectiles . ix (_pjID pj) . pjUpdates %~ delete ApplyGravityPU - & soundOriginIDsAt (ShellSound (pj ^. pjID)) [slapS, slap1S] (pj ^. pjPos) + | Just GStick <- pj ^? pjType . gnHitEffect = + w + & cWorld . lWorld . projectiles . ix (_pjID pj) . pjType + .~ Grenade (GStuckWall (wl ^. wlStructure)) + -- & cWorld . lWorld . projectiles . ix (_pjID pj) . pjUpdates %~ delete ApplyGravityPU + & soundOriginIDsAt (ShellSound (pj ^. pjID)) [slapS, slap1S] (pj ^. pjPos) | Just x <- pj ^? pjType . gnHitEffect . bounceTolerance = if abs (dotV (pj ^. pjVel) (vNormal hitline)) < x - then w + then + w & cWorld . lWorld . projectiles . ix (_pjID pj) . pjVel %~ reflectIn hitline & cWorld . lWorld . projectiles . ix (_pjID pj) . pjPos .~ p @@ -124,16 +127,17 @@ tryShellBounce (p, Right wl) pj w tryShellBounce (p, Left cr) pj w | Just GStuckCreature{} <- pj ^? pjType . gnHitEffect = w | Just GStuckWall{} <- pj ^? pjType . gnHitEffect = w - | Just GStick <- pj ^? pjType . gnHitEffect = w - & cWorld . lWorld . projectiles . ix (_pjID pj) . pjType - .~ Grenade - (GStuckCreature - (cr ^. crID) - (rotateV (- cr ^. crDir) (p - cr ^. crPos)) - (pj ^. pjDir - cr ^. crDir) - ) --- & cWorld . lWorld . projectiles . ix (_pjID pj) . pjUpdates %~ delete ApplyGravityPU - & soundOriginIDsAt (ShellSound (pj ^. pjID)) [slapS, slap1S] (pj ^. pjPos) + | Just GStick <- pj ^? pjType . gnHitEffect = + w + & cWorld . lWorld . projectiles . ix (_pjID pj) . pjType + .~ Grenade + ( GStuckCreature + (cr ^. crID) + (rotateV (- cr ^. crDir) (p - cr ^. crPos)) + (pj ^. pjDir - cr ^. crDir) + ) + -- & cWorld . lWorld . projectiles . ix (_pjID pj) . pjUpdates %~ delete ApplyGravityPU + & soundOriginIDsAt (ShellSound (pj ^. pjID)) [slapS, slap1S] (pj ^. pjPos) tryShellBounce _ pj w = explodeShell pj w destroyProjectile :: Maybe (NewInt ItmInt) -> Int -> World -> World @@ -209,16 +213,17 @@ pjRemoteSetDirection ph pj w = case ph of pjMovement :: Projectile -> World -> World pjMovement pj w | Just GStuckWall{} <- pj ^? pjType . gnHitEffect = w - | Just (GStuckCreature crid p d) <- pj ^? pjType . gnHitEffect = fromMaybe - (w & cWorld . lWorld . projectiles . ix (pj ^. pjID) . pjType .~ Grenade GStick) + | Just (GStuckCreature crid p d) <- pj ^? pjType . gnHitEffect = fromMaybe + (w & cWorld . lWorld . projectiles . ix (pj ^. pjID) . pjType .~ Grenade GStick) $ do cpos <- w ^? cWorld . lWorld . creatures . ix crid . crPos cdir <- w ^? cWorld . lWorld . creatures . ix crid . crDir return $ - w & cWorld . lWorld . projectiles . ix (pj ^. pjID) . pjPos - .~ cpos + rotateV cdir p - & cWorld . lWorld . projectiles . ix (pj ^. pjID) . pjDir - .~ d + cdir + w + & cWorld . lWorld . projectiles . ix (pj ^. pjID) . pjPos + .~ cpos + rotateV cdir p + & cWorld . lWorld . projectiles . ix (pj ^. pjID) . pjDir + .~ d + cdir | otherwise = w & cWorld . lWorld . projectiles . ix (pj ^. pjID) . pjSpin *~ 0.99 diff --git a/src/Dodge/Room/Warning.hs b/src/Dodge/Room/Warning.hs index a089e1072..0e4460f13 100644 --- a/src/Dodge/Room/Warning.hs +++ b/src/Dodge/Room/Warning.hs @@ -2,8 +2,6 @@ module Dodge.Room.Warning where import Color ---import qualified Data.Set as S - import qualified Data.Map.Strict as M import Data.Maybe import Dodge.Cleat diff --git a/src/Dodge/Update/Input/InGame.hs b/src/Dodge/Update/Input/InGame.hs index b24227538..041772542 100644 --- a/src/Dodge/Update/Input/InGame.hs +++ b/src/Dodge/Update/Input/InGame.hs @@ -440,7 +440,6 @@ updateInitialPressInGame uv sc = case sc of ScancodeM -> toggleMap uv -- ScancodeR -> over (uvWorld . cWorld . lWorld . creatures . ix 0) crReloadToggle uv ScancodeT -> over uvWorld testEvent uv - ScancodeX -> uv & uvWorld %~ toggleTweakInv ScancodeC -> toggleCombineInv uv -- the following should be put in a more sensible place ScancodeSlash -> uv & uvWorld %~ updateEnterRegex @@ -470,8 +469,7 @@ doRegexInput inp i sss msel filts ) where endregex a b = - --( sss & ix i . ssItems .~ mempty - ( sss -- & ix i . ssItems .~ mempty + ( sss , msel & ssSetCursor (ssLookupDown a b) sss , Nothing ) @@ -596,15 +594,6 @@ toggleMap u = case u ^. uvWorld . hud . hudElement of } _ -> u & uvWorld . hud . hudElement .~ DisplayCarte -toggleTweakInv :: World -> World -toggleTweakInv w = case w ^? hud . hudElement . subInventory of - Just ExamineInventory{} -> - w - & thepointer .~ NoSubInventory --MouseInvNothing - _ -> w & thepointer .~ ExamineInventory -- mi - where - thepointer = hud . hudElement . subInventory - tryCombine :: (Int, Int) -> World -> World tryCombine (i, j) w = fromMaybe w $ do sss <- w ^? hud . hudElement . subInventory . ciSections diff --git a/src/Dodge/Update/Scroll.hs b/src/Dodge/Update/Scroll.hs index a9d8f7162..6c88b278f 100644 --- a/src/Dodge/Update/Scroll.hs +++ b/src/Dodge/Update/Scroll.hs @@ -27,10 +27,6 @@ updateWheelEvent yi w = case w ^. hud . hudElement of -- functions that modify the inventory should be centralised so that -- this lock can be sensibly applied, perhaps | w ^?! cWorld . lWorld . creatures . ix 0 . crInvLock -> w --- | rbDown -> case (yourScrollAttachment w, _rbOptions w) of --- (_,EquipOptions{}) -> w & rbOptions . opSel %~ scrollRBOption yi rbscrollmax --- (Nothing, _) -> w --- (Just (invid,hs), _) -> doHeldScroll invid hs y w | bdown ButtonRight -> case _rbOptions w of EquipOptions{} -> w & rbOptions . opSel %~ scrollRBOption yi rbscrollmax NoRightButtonOptions -> selectedItemScroll yi w @@ -38,12 +34,9 @@ updateWheelEvent yi w = case w ^. hud . hudElement of | invKeyDown -> changeSwapSel yi w | otherwise -> scrollAugInvSel yi w DisplayInventory{_subInventory = ExamineInventory} - | invKeyDown -> scrollAugInvSel yi w - | otherwise -> w --- | invKeyDown && rbDown -> w & moveTweakSel yi --- | invKeyDown -> scrollAugInvSel yi w --- | rbDown -> w & changeTweakParam mi yi --- | otherwise -> w & moveTweakSel yi +-- | invKeyDown + -> scrollAugInvSel yi w +-- | otherwise -> w DisplayInventory{_subInventory = CombineInventory{}} -> w & moveCombineSel yi DisplayInventory{_subInventory = DisplayTerminal tmid} -> terminalWheelEvent yi tmid w _ -> w diff --git a/src/Dodge/WorldEffect.hs b/src/Dodge/WorldEffect.hs index 76df65aeb..91ec7fe34 100644 --- a/src/Dodge/WorldEffect.hs +++ b/src/Dodge/WorldEffect.hs @@ -5,6 +5,7 @@ module Dodge.WorldEffect ( lineOutputTerminal, ) where +import Dodge.BlBl import Dodge.Data.Input import Dodge.HeldUse import Dodge.Data.ComposedItem @@ -88,12 +89,6 @@ doDeathTriggers tm = cWorld . lWorld . triggers %~ flip (foldl' $ flip doDeathTo doDeathToggle :: TerminalToggle -> IM.IntMap Bool -> IM.IntMap Bool doDeathToggle (TerminalToggle trid f) = ix trid %~ doBlBl f -doBlBl :: BlBl -> Bool -> Bool -doBlBl bb = case bb of - BlNegate -> not - BlConst bl -> const bl - BlId -> id - doTerminalBootProgram :: TerminalBootProgram -> Terminal -> World -> [TerminalLine] doTerminalBootProgram tbp = case tbp of TerminalBootMempty -> \_ _ -> [] diff --git a/tags b/tags index 7a9fa2693..facf3e81f 100644 --- a/tags +++ b/tags @@ -18,15 +18,15 @@ <$> src/Dodge/Data/Camera.hs 39;" o <$> src/Dodge/Data/Creature.hs 88;" o <$> src/Dodge/Data/LWorld.hs 159;" o -<$> src/Dodge/Data/Terminal.hs 131;" o +<$> src/Dodge/Data/Terminal.hs 127;" o AIUNIT src/Dodge/Data/Item/Combine.hs 58;" C ALTERIFLE src/Dodge/Data/Item/Combine.hs 138;" C AMMOMAG src/Dodge/Data/Item/Combine.hs 20;" C AMR src/Dodge/Data/Item/Combine.hs 143;" C ANTIMATTER src/Dodge/Data/Item/Combine.hs 52;" C -APInt src/Dodge/Data/Item/Use.hs 70;" C -APNothing src/Dodge/Data/Item/Use.hs 71;" C -APProjectiles src/Dodge/Data/Item/Use.hs 68;" C +APInt src/Dodge/Data/Item/Use.hs 71;" C +APNothing src/Dodge/Data/Item/Use.hs 72;" C +APProjectiles src/Dodge/Data/Item/Use.hs 69;" C AQUAMARINE src/Color/Data.hs 24;" C ATTACH src/Dodge/Data/Item/Combine.hs 19;" C AUGMENTEDHUD src/Dodge/Data/Item/Combine.hs 86;" C @@ -44,9 +44,9 @@ Add src/Dodge/Inventory/Add.hs 1;" m AddGoal src/Dodge/Data/ActionPlan.hs 45;" C AesonHelp src/AesonHelp.hs 1;" m AimAt src/Dodge/Data/ActionPlan.hs 84;" C -AimParams src/Dodge/Data/Item/Use.hs 114;" t +AimParams src/Dodge/Data/Item/Use.hs 115;" t AimParams src/Dodge/Default/Item/Use/AimParams.hs 1;" m -AimStance src/Dodge/Data/Item/Use.hs 183;" t +AimStance src/Dodge/Data/Item/Use.hs 184;" t Aiming src/Dodge/Data/Creature/Stance.hs 39;" C AirFiltrationSS src/Dodge/Data/Scenario.hs 95;" C Airlock src/Dodge/Room/Airlock.hs 4;" m @@ -63,13 +63,13 @@ AmmoMagSF src/Dodge/Data/ComposedItem.hs 50;" C AmmoMagType src/Dodge/Data/Item/Combine.hs 90;" t AmmoModLink src/Dodge/Data/ComposedItem.hs 19;" C AmmoModifierSF src/Dodge/Data/ComposedItem.hs 56;" C -AmmoParams src/Dodge/Data/Item/Use.hs 107;" t +AmmoParams src/Dodge/Data/Item/Use.hs 108;" t AmmoPayloadLink src/Dodge/Data/ComposedItem.hs 21;" C AmmoPayloadSF src/Dodge/Data/ComposedItem.hs 58;" C -AmmoPerShot src/Dodge/Data/Item/Use.hs 157;" t +AmmoPerShot src/Dodge/Data/Item/Use.hs 158;" t AmmoTargetingLink src/Dodge/Data/ComposedItem.hs 20;" C AmmoTargetingSF src/Dodge/Data/ComposedItem.hs 57;" C -AmmoType src/Dodge/Data/Item/Use/Consumption/Ammo.hs 25;" t +AmmoType src/Dodge/Data/Item/Use/Consumption/Ammo.hs 24;" t AnRoom src/Dodge/Annotation/Data.hs 18;" C AnTree src/Dodge/Annotation/Data.hs 19;" C Analyser src/Dodge/Placement/Instance/Analyser.hs 1;" m @@ -94,7 +94,7 @@ AsteroidStrike src/Dodge/Data/Scenario.hs 33;" C AtEase src/Dodge/Data/Creature/Stance.hs 40;" C AtomicWaste src/Dodge/Data/Scenario.hs 26;" C Attach src/Dodge/Item/Attach.hs 1;" m -AttachParams src/Dodge/Data/Item/Use.hs 67;" t +AttachParams src/Dodge/Data/Item/Use.hs 68;" t AttachType src/Dodge/Data/Item/Combine.hs 75;" t Attention src/Dodge/Data/Creature/Perception.hs 60;" t AttentiveTo src/Dodge/Data/Creature/Perception.hs 61;" C @@ -105,7 +105,7 @@ AutoAI src/Dodge/Data/Creature/Misc.hs 56;" C AutoCrit src/Dodge/Creature/AutoCrit.hs 1;" m AutoDoorObstacle src/Dodge/Data/PathGraph.hs 51;" C AutoRecharging src/Dodge/Data/Item/Use/Consumption.hs 27;" C -AutoTrigger src/Dodge/Data/Item/Use.hs 64;" C +AutoTrigger src/Dodge/Data/Item/Use.hs 65;" C AuxAddition src/Shader/AuxAddition.hs 1;" m Avatar src/Dodge/Data/Creature/Misc.hs 70;" C Awareness src/Dodge/Data/Creature/Perception.hs 65;" t @@ -145,7 +145,7 @@ Base src/Picture/Base.hs 4;" m BasicBeamDraw src/Dodge/Data/Beam.hs 34;" C BasicBulletTrajectory src/Dodge/Data/Bullet.hs 50;" C BasicBulletTrajectoryType src/Dodge/Data/Bullet.hs 57;" C -BasicFlare src/Dodge/Data/Item/Use.hs 127;" C +BasicFlare src/Dodge/Data/Item/Use.hs 128;" C BatteryGuns src/Dodge/Item/Held/BatteryGuns.hs 1;" m BatteryGuns src/Dodge/Item/Weapon/BatteryGuns.hs 1;" m Beam src/Dodge/Data/Beam.hs 18;" t @@ -155,20 +155,22 @@ 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 88;" C +BeamShooterParams src/Dodge/Data/Item/Use.hs 89;" C BeamSimple src/Dodge/Data/Beam.hs 50;" C BeamType src/Dodge/Data/Beam.hs 46;" t BecomePowerful src/Dodge/Data/Scenario.hs 9;" C -BeltBulletAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 28;" C +BeltBulletAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 27;" C Bezier src/Geometry/Bezier.hs 1;" m BezierTrajectory src/Dodge/Data/Bullet.hs 51;" C BezierTrajectoryType src/Dodge/Data/Bullet.hs 58;" C Bind src/Shader/Bind.hs 1;" m Biome src/Dodge/Data/Scenario.hs 71;" t -BlBl src/Dodge/Data/Terminal.hs 88;" t -BlConst src/Dodge/Data/Terminal.hs 90;" C -BlId src/Dodge/Data/Terminal.hs 91;" C -BlNegate src/Dodge/Data/Terminal.hs 89;" C +BlBl src/Dodge/Data/BlBl.hs 11;" t +BlBl src/Dodge/BlBl.hs 1;" m +BlBl src/Dodge/Data/BlBl.hs 6;" m +BlConst src/Dodge/Data/BlBl.hs 13;" C +BlId src/Dodge/Data/BlBl.hs 14;" C +BlNegate src/Dodge/Data/BlBl.hs 12;" C BlSh src/Dodge/Data/Block.hs 45;" t BlShConst src/Dodge/Data/Block.hs 47;" C BlShMempty src/Dodge/Data/Block.hs 46;" C @@ -219,16 +221,16 @@ Bullet src/Dodge/Data/Bullet.hs 17;" t Bullet src/Dodge/Bullet.hs 1;" m Bullet src/Dodge/Data/Bullet.hs 6;" m Bullet src/Dodge/Item/Weapon/Bullet.hs 1;" m -BulletAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 27;" C +BulletAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 26;" C BulletEffect src/Dodge/Data/Bullet.hs 35;" t BulletGun src/Dodge/Item/Held/BulletGun.hs 1;" m BulletMod src/Dodge/Data/Item/BulletMod.hs 10;" t BulletMod src/Dodge/Data/Item/BulletMod.hs 3;" m BulletModEffect src/Dodge/Data/Item/BulletMod.hs 12;" C BulletModPayload src/Dodge/Data/Item/BulletMod.hs 11;" C -BulletParams src/Dodge/Data/Item/Use.hs 108;" C +BulletParams src/Dodge/Data/Item/Use.hs 109;" C BulletPayload src/Dodge/Data/Bullet.hs 41;" t -BulletShooterParams src/Dodge/Data/Item/Use.hs 92;" C +BulletShooterParams src/Dodge/Data/Item/Use.hs 93;" C BulletTrajectory src/Dodge/Data/Bullet.hs 49;" t BulletTrajectoryType src/Dodge/Data/Bullet.hs 56;" t Button src/Dodge/Data/Button.hs 48;" t @@ -293,7 +295,7 @@ ChaseCritters src/Dodge/Data/Creature/State.hs 38;" C Check src/Framebuffer/Check.hs 1;" m CheckConsistency src/Dodge/Room/CheckConsistency.hs 1;" m CheckSlots src/Dodge/Inventory/CheckSlots.hs 1;" m -ChemFuel src/Dodge/Data/Item/Use/Consumption/Ammo.hs 39;" C +ChemFuel src/Dodge/Data/Item/Use/Consumption/Ammo.hs 38;" C ChooseMovementLtAuto src/Dodge/Data/CreatureEffect.hs 62;" C ChooseMovementSpreadGun src/Dodge/Data/CreatureEffect.hs 61;" C ChooseTarget src/Dodge/Creature/ChooseTarget.hs 1;" m @@ -332,13 +334,13 @@ Combinations src/Dodge/Combine/Combinations.hs 3;" m Combine src/Dodge/Combine.hs 2;" m Combine src/Dodge/Data/Combine.hs 2;" m Combine src/Dodge/Data/Item/Combine.hs 5;" m -CombineInventory src/Dodge/Data/HUD.hs 37;" C +CombineInventory src/Dodge/Data/HUD.hs 31;" C CombineInventoryChange src/Dodge/Data/World.hs 32;" C Common src/Dodge/Zoning/Common.hs 1;" m Compile src/Shader/Compile.hs 1;" m Compose src/Dodge/Tree/Compose.hs 4;" m ComposeLinkType src/Dodge/Data/ComposedItem.hs 16;" t -ComposedItem src/Dodge/Data/ComposedItem.hs 66;" t +ComposedItem src/Dodge/Data/ComposedItem.hs 67;" t ComposedItem src/Dodge/Data/ComposedItem.hs 6;" m Composite src/Picture/Composite.hs 1;" m ComsSS src/Dodge/Data/Scenario.hs 98;" C @@ -410,9 +412,9 @@ Craftable src/Dodge/Item/Craftable.hs 1;" m Create src/Dodge/Projectile/Create.hs 1;" m Create src/Dodge/Prop/Create.hs 1;" m Create src/Dodge/Wall/Create.hs 1;" m -CreateFlame src/Dodge/Data/Item/Use/Consumption/Ammo.hs 42;" C -CreatePoisonGas src/Dodge/Data/Item/Use/Consumption/Ammo.hs 42;" C -CreateShieldWall src/Dodge/Data/Item/Effect.hs 22;" C +CreateFlame src/Dodge/Data/Item/Use/Consumption/Ammo.hs 41;" C +CreatePoisonGas src/Dodge/Data/Item/Use/Consumption/Ammo.hs 41;" C +CreateShieldWall src/Dodge/Data/Item/Effect.hs 26;" C Creature src/Dodge/Data/Creature.hs 34;" t Creature src/Dodge/Creature.hs 1;" m Creature src/Dodge/Data/Creature.hs 7;" m @@ -490,11 +492,11 @@ 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 -DefaultForceField src/Dodge/Data/Item/Use/Consumption/Ammo.hs 36;" C -DefaultHeldParams src/Dodge/Data/Item/Use.hs 75;" C +DefaultForceField src/Dodge/Data/Item/Use/Consumption/Ammo.hs 35;" C +DefaultHeldParams src/Dodge/Data/Item/Use.hs 76;" C DefaultLightSourceDraw src/Dodge/Data/LightSource.hs 13;" C DefaultRoomType src/Dodge/Data/Room.hs 31;" C -DefaultTerminal src/Dodge/Data/Terminal.hs 54;" C +DefaultTerminal src/Dodge/Data/Terminal.hs 55;" C Delete src/Dodge/Wall/Delete.hs 1;" m Deprecated src/Dodge/LevelGen/StaticWalls/Deprecated.hs 1;" m Destroy src/Dodge/Machine/Destroy.hs 1;" m @@ -508,7 +510,7 @@ Display src/Dodge/Item/Display.hs 2;" m DisplayCarte src/Dodge/Data/HUD.hs 26;" C DisplayInventory src/Dodge/Data/HUD.hs 19;" C DisplayInventory src/Dodge/DisplayInventory.hs 4;" m -DisplayTerminal src/Dodge/Data/HUD.hs 43;" C +DisplayTerminal src/Dodge/Data/HUD.hs 37;" C Distortion src/Dodge/Data/Distortion.hs 12;" t Distortion src/Dodge/Data/Distortion.hs 6;" m Distortion src/Dodge/Distortion.hs 1;" m @@ -579,7 +581,7 @@ DrawForceField src/Dodge/Data/Wall.hs 47;" C DrawNoButton src/Dodge/Data/Button.hs 19;" C DrawnWall src/Dodge/Data/Wall.hs 43;" C Drone src/Dodge/Item/Weapon/Drone.hs 1;" m -DroneAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 30;" C +DroneAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 29;" C DropAll src/Dodge/Data/Creature/State.hs 24;" C DropAmount src/Dodge/Data/Creature/State.hs 25;" C DropItem src/Dodge/Data/ActionPlan.hs 39;" C @@ -603,13 +605,13 @@ East src/Dodge/Data/CardinalPoint.hs 5;" C East8 src/Dodge/Data/CardinalPoint.hs 13;" C EdgeObstacle src/Dodge/Data/PathGraph.hs 48;" t Effect src/Dodge/Data/Item/Effect.hs 6;" m -EffectArguments src/Dodge/Data/Terminal.hs 94;" t -EffectRootNotroot src/Dodge/Data/Item/Effect.hs 21;" C -EffectWhileAttached src/Dodge/Data/Item/Effect.hs 25;" C -EffectWhileRoot src/Dodge/Data/Item/Effect.hs 24;" C +EffectArguments src/Dodge/Data/Terminal.hs 90;" t +EffectRootNotroot src/Dodge/Data/Item/Effect.hs 25;" C +EffectWhileAttached src/Dodge/Data/Item/Effect.hs 29;" C +EffectWhileRoot src/Dodge/Data/Item/Effect.hs 28;" C EighthRes src/Dodge/Data/Config.hs 97;" C Eldritch src/Dodge/Data/Scenario.hs 34;" C -ElectricalAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 29;" C +ElectricalAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 28;" C Electronics src/Dodge/Data/Material.hs 11;" C EllShad src/Picture/Data.hs 39;" C Enable_debug src/Dodge/Data/Config.hs 68;" C @@ -644,13 +646,13 @@ Euse src/Dodge/Data/Item/HeldUse.hs 19;" t Euse src/Dodge/Euse.hs 1;" m Event src/Dodge/Button/Event.hs 1;" m Event src/Dodge/Event.hs 14;" m -ExamineInventory src/Dodge/Data/HUD.hs 36;" C +ExamineInventory src/Dodge/Data/HUD.hs 30;" C Explore src/Dodge/Data/Scenario.hs 4;" C Explosion src/Dodge/Data/SoundOrigin.hs 37;" C Explosion src/Dodge/WorldEvent/Explosion.hs 4;" m ExplosionPayload src/Dodge/Data/Payload.hs 11;" C ExplosiveBarrel src/Dodge/Data/Creature/Misc.hs 87;" C -ExplosivePutty src/Dodge/Data/Item/Use/Consumption/Ammo.hs 33;" C +ExplosivePutty src/Dodge/Data/Item/Use/Consumption/Ammo.hs 32;" C ExternallyGeneratedSounds src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 2;" m ExtraEffect src/Dodge/Item/Weapon/ExtraEffect.hs 6;" m Eyes src/Dodge/Data/Creature/Perception.hs 41;" C @@ -682,7 +684,7 @@ FlameBeamCombine src/Dodge/Data/Beam.hs 39;" C FlameSound src/Dodge/Data/SoundOrigin.hs 27;" C Flamer src/Dodge/Data/SoundOrigin.hs 25;" C Flank src/Dodge/Data/ActionPlan.hs 177;" C -FlareType src/Dodge/Data/Item/Use.hs 125;" t +FlareType src/Dodge/Data/Item/Use.hs 126;" t FlashBall src/Dodge/Data/Bullet.hs 32;" C FlatFaces src/Shape/Data.hs 17;" C FlatShieldParams src/Dodge/Data/Item/Params.hs 19;" C @@ -718,7 +720,7 @@ FootForward src/Dodge/Data/Creature/Stance.hs 31;" t FootstepSound src/Dodge/Data/SoundOrigin.hs 29;" C ForceField src/Dodge/ForceField.hs 1;" m ForceField src/Dodge/Wall/ForceField.hs 1;" m -ForceFieldType src/Dodge/Data/Item/Use/Consumption/Ammo.hs 36;" t +ForceFieldType src/Dodge/Data/Item/Use/Consumption/Ammo.hs 35;" t Foreground src/Dodge/Room/Foreground.hs 1;" m ForegroundShape src/Dodge/Data/ForegroundShape.hs 14;" t ForegroundShape src/Dodge/Data/ForegroundShape.hs 6;" m @@ -748,12 +750,12 @@ GameOverOptions src/Dodge/Data/Universe.hs 70;" C GameRoom src/Dodge/GameRoom.hs 15;" t GameRoom src/Dodge/GameRoom.hs 8;" m Gas src/Dodge/Gas.hs 1;" m -GasAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 31;" C +GasAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 30;" C GasCloud src/Dodge/Data/Cloud.hs 31;" C -GasCreate src/Dodge/Data/Item/Use/Consumption/Ammo.hs 42;" t -GasFuel src/Dodge/Data/Item/Use/Consumption/Ammo.hs 39;" t -GasParams src/Dodge/Data/Item/Use.hs 110;" C -GasSprayParams src/Dodge/Data/Item/Use.hs 76;" C +GasCreate src/Dodge/Data/Item/Use/Consumption/Ammo.hs 41;" t +GasFuel src/Dodge/Data/Item/Use/Consumption/Ammo.hs 38;" t +GasParams src/Dodge/Data/Item/Use.hs 111;" C +GasSprayParams src/Dodge/Data/Item/Use.hs 77;" C GenCr src/Dodge/Data/Creature/State.hs 31;" C GenFloat src/Dodge/Data/GenFloat.hs 11;" t GenFloat src/Dodge/Data/GenFloat.hs 5;" m @@ -805,7 +807,7 @@ HEATSENSOR src/Dodge/Data/Item/Combine.hs 66;" C HELD src/Dodge/Data/Item/Combine.hs 16;" C HOMINGMODULE src/Dodge/Data/Item/Combine.hs 85;" C HOSE src/Dodge/Data/Item/Combine.hs 38;" C -HUD src/Dodge/Data/HUD.hs 45;" t +HUD src/Dodge/Data/HUD.hs 39;" t HUD src/Dodge/Data/HUD.hs 6;" m HUD src/Dodge/Render/HUD.hs 3;" m HUDElement src/Dodge/Data/HUD.hs 18;" t @@ -815,23 +817,23 @@ 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 64;" C +HammerTrigger src/Dodge/Data/Item/Use.hs 65;" 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 68;" C HasHammer src/Dodge/Data/Hammer.hs 14;" C -HeavySmokeFlare src/Dodge/Data/Item/Use.hs 130;" C +HeavySmokeFlare src/Dodge/Data/Item/Use.hs 131;" C Held src/Dodge/Item/Held.hs 1;" m HeldDelay src/Dodge/Data/Item/HeldDelay.hs 6;" m HeldItemType src/Dodge/Data/Item/Combine.hs 123;" t HeldOffset src/Dodge/Item/HeldOffset.hs 1;" m -HeldParams src/Dodge/Data/Item/Use.hs 74;" t +HeldParams src/Dodge/Data/Item/Use.hs 75;" t HeldPlatformSF src/Dodge/Data/ComposedItem.hs 40;" C HeldScroll src/Dodge/HeldScroll.hs 1;" m HeldUse src/Dodge/Data/Item/HeldUse.hs 6;" m HeldUse src/Dodge/HeldUse.hs 4;" m -HeldUseEffect src/Dodge/Data/Item/Use.hs 48;" t +HeldUseEffect src/Dodge/Data/Item/Use.hs 49;" t HelpNum src/HelpNum.hs 1;" m HiddenGoal src/Dodge/Data/Scenario.hs 14;" C HomeUsingRemoteScreen src/Dodge/Data/Projectile.hs 48;" C @@ -855,7 +857,7 @@ Huge src/Shape/Data.hs 28;" C Humanoid src/Dodge/Data/Creature/Misc.hs 76;" C Humanoid src/Dodge/Humanoid.hs 1;" m HumanoidAI src/Dodge/Data/Creature/Misc.hs 48;" t -ILink src/Dodge/Data/ComposedItem.hs 68;" C +ILink src/Dodge/Data/ComposedItem.hs 69;" C IMSS src/Dodge/Data/SelectionList.hs 36;" t INTROSCAN src/Dodge/Data/Item/Combine.hs 25;" C INVISIBILITYEQUIPMENT src/Dodge/Data/Item/Combine.hs 109;" C @@ -929,20 +931,21 @@ IsolationUnitSS src/Dodge/Data/Scenario.hs 101;" C ItAmount src/Dodge/Data/Item/Use/Consumption.hs 39;" t ItCrWdItemHeldEffect src/Dodge/Data/WorldEffect.hs 19;" C ItCrWdWd src/Dodge/Data/WorldEffect.hs 19;" t -ItDropEffect src/Dodge/Data/Item/Effect.hs 28;" t -ItEffect src/Dodge/Data/Item/Effect.hs 12;" t +ItDropEffect src/Dodge/Data/Item/Effect.hs 34;" t +ItEffect src/Dodge/Data/Item/Effect.hs 16;" t ItEffect src/Dodge/ItEffect.hs 2;" m ItID src/Dodge/Data/Item.hs 29;" t -ItInvEffect src/Dodge/Data/Item/Effect.hs 19;" t +ItInvEffect src/Dodge/Data/Item/Effect.hs 23;" t ItTargeting src/Dodge/Data/Item.hs 55;" C -ItZoom src/Dodge/Data/Item/Use.hs 190;" t +ItZoom src/Dodge/Data/Item/Use.hs 191;" t Item src/Dodge/Data/Item.hs 41;" t Item src/Dodge/Data/Item.hs 4;" m Item src/Dodge/Default/Item.hs 1;" m Item src/Dodge/Item.hs 3;" m +ItemCancelExamineInventory src/Dodge/Data/Item/Effect.hs 31;" C ItemClust src/Dodge/Combine/Graph.hs 20;" C ItemDimension src/Dodge/Data/Item/Misc.hs 13;" t -ItemLink src/Dodge/Data/ComposedItem.hs 68;" t +ItemLink src/Dodge/Data/ComposedItem.hs 69;" t ItemLocation src/Dodge/Data/Item/Location.hs 28;" t ItemParams src/Dodge/Data/Item/Params.hs 13;" t ItemParams src/Dodge/Tesla/ItemParams.hs 1;" m @@ -951,6 +954,7 @@ ItemStructuralFunction src/Dodge/Data/ComposedItem.hs 38;" t ItemTargeting src/Dodge/Data/Item.hs 54;" t ItemType src/Dodge/Data/Item/Combine.hs 15;" t ItemUse src/Dodge/Data/Item/Use.hs 32;" t +ItemUseToggle src/Dodge/Data/Item/Effect.hs 30;" C ItmCrWdWd src/Dodge/Data/Item/Use/Equipment.hs 28;" t ItmCrWdWdDoNothing src/Dodge/Data/Item/Use/Equipment.hs 29;" C ItmInt src/Dodge/Data/Item/Location.hs 25;" t @@ -969,7 +973,7 @@ LASER src/Dodge/Data/Item/Combine.hs 153;" C LASERING src/Dodge/Data/Damage/Type.hs 19;" C LDT src/Dodge/Data/DoubleTree.hs 40;" C LDTBottomNode src/Dodge/Data/DoubleTree.hs 28;" C -LDTComb src/Dodge/Item/Grammar.hs 218;" t +LDTComb src/Dodge/Item/Grammar.hs 219;" t LDTMidAboveNode src/Dodge/Data/DoubleTree.hs 26;" C LDTMidBelowNode src/Dodge/Data/DoubleTree.hs 27;" C LDTRootNode src/Dodge/Data/DoubleTree.hs 24;" C @@ -980,8 +984,8 @@ LIGHTER src/Dodge/Data/Item/Combine.hs 50;" C LIGHTSENSOR src/Dodge/Data/Item/Combine.hs 64;" C LS src/Dodge/Data/LightSource.hs 23;" C LSParam src/Dodge/Data/LightSource.hs 16;" t -LTest src/Dodge/Data/ComposedItem.hs 75;" C -LUpdate src/Dodge/Data/ComposedItem.hs 80;" C +LTest src/Dodge/Data/ComposedItem.hs 76;" C +LUpdate src/Dodge/Data/ComposedItem.hs 81;" C LWorld src/Dodge/Data/LWorld.hs 97;" t LWorld src/Dodge/Data/LWorld.hs 6;" m LabLink src/Dodge/Data/Room.hs 45;" C @@ -997,7 +1001,7 @@ Lampoid src/Dodge/Data/Creature/Misc.hs 83;" 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 131;" C +LasGunFlare src/Dodge/Data/Item/Use.hs 132;" C LasSound src/Dodge/Data/SoundOrigin.hs 28;" C LasTurret src/Dodge/Room/LasTurret.hs 1;" m Laser src/Dodge/Data/Laser.hs 30;" t @@ -1007,7 +1011,7 @@ LaserStart src/Dodge/Data/Laser.hs 21;" t LaserType src/Dodge/Data/Laser.hs 16;" t Launcher src/Dodge/Item/Held/Launcher.hs 1;" m LauncherAI src/Dodge/Data/Creature/Misc.hs 54;" C -LauncherAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 26;" C +LauncherAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 25;" C LauncherCrit src/Dodge/Creature/LauncherCrit.hs 1;" m LaundrySS src/Dodge/Data/Scenario.hs 115;" C Layer src/Picture/Data.hs 22;" t @@ -1038,8 +1042,8 @@ LimitedWater src/Dodge/Data/Scenario.hs 40;" C LinearShockwave src/Dodge/Data/LinearShockwave.hs 13;" t LinearShockwave src/Dodge/Data/LinearShockwave.hs 6;" m Link src/Dodge/Room/Link.hs 6;" m -LinkTest src/Dodge/Data/ComposedItem.hs 75;" t -LinkUpdate src/Dodge/Data/ComposedItem.hs 80;" t +LinkTest src/Dodge/Data/ComposedItem.hs 76;" t +LinkUpdate src/Dodge/Data/ComposedItem.hs 81;" t List src/Dodge/Combine/List.hs 1;" m List src/Dodge/Render/List.hs 3;" m ListDisplayParams src/Dodge/Data/SelectionList.hs 13;" t @@ -1061,7 +1065,7 @@ Location src/Dodge/Item/Location.hs 1;" m LocationLDT src/Dodge/Data/DoubleTree.hs 67;" t Lock src/Dodge/Inventory/Lock.hs 1;" m LockAndKey src/Dodge/LockAndKey.hs 1;" m -LockedInventory src/Dodge/Data/HUD.hs 42;" C +LockedInventory src/Dodge/Data/HUD.hs 36;" C LoneWolf src/Dodge/Data/Creature/State.hs 46;" C LongAI src/Dodge/Data/Creature/Misc.hs 59;" C LongDoor src/Dodge/Room/LongDoor.hs 2;" m @@ -1168,7 +1172,7 @@ Metapysics src/Dodge/Data/Scenario.hs 17;" t Military src/Dodge/Data/Scenario.hs 45;" C Mine src/Dodge/Data/Scenario.hs 64;" C MiniGunAI src/Dodge/Data/Creature/Misc.hs 58;" C -MiniGunFlare src/Dodge/Data/Item/Use.hs 129;" C +MiniGunFlare src/Dodge/Data/Item/Use.hs 130;" 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 @@ -1201,23 +1205,23 @@ Multiset src/Multiset.hs 4;" m Music src/Music.hs 1;" m MusicData src/Music.hs 7;" t Mute src/Dodge/Data/Creature/Misc.hs 28;" C -Muzzle src/Dodge/Data/Item/Use.hs 162;" t -MuzzleBlink src/Dodge/Data/Item/Use.hs 150;" C -MuzzleDetector src/Dodge/Data/Item/Use.hs 149;" C -MuzzleEffect src/Dodge/Data/Item/Use.hs 135;" t +Muzzle src/Dodge/Data/Item/Use.hs 163;" t +MuzzleBlink src/Dodge/Data/Item/Use.hs 151;" C +MuzzleDetector src/Dodge/Data/Item/Use.hs 150;" C +MuzzleEffect src/Dodge/Data/Item/Use.hs 136;" t MuzzleEffect src/Dodge/Data/MuzzleEffect.hs 5;" m -MuzzleGLauncher src/Dodge/Data/Item/Use.hs 141;" C -MuzzleLaser src/Dodge/Data/Item/Use.hs 137;" C -MuzzleNozzle src/Dodge/Data/Item/Use.hs 142;" C -MuzzleRLauncher src/Dodge/Data/Item/Use.hs 140;" C -MuzzleRewind src/Dodge/Data/Item/Use.hs 152;" C -MuzzleScroller src/Dodge/Data/Item/Use.hs 154;" C -MuzzleShatter src/Dodge/Data/Item/Use.hs 148;" C -MuzzleShootBullet src/Dodge/Data/Item/Use.hs 136;" C -MuzzleStopper src/Dodge/Data/Item/Use.hs 153;" C -MuzzleTesla src/Dodge/Data/Item/Use.hs 138;" C -MuzzleTractor src/Dodge/Data/Item/Use.hs 139;" C -MuzzleUnsafeBlink src/Dodge/Data/Item/Use.hs 151;" C +MuzzleGLauncher src/Dodge/Data/Item/Use.hs 142;" C +MuzzleLaser src/Dodge/Data/Item/Use.hs 138;" C +MuzzleNozzle src/Dodge/Data/Item/Use.hs 143;" C +MuzzleRLauncher src/Dodge/Data/Item/Use.hs 141;" C +MuzzleRewind src/Dodge/Data/Item/Use.hs 153;" C +MuzzleScroller src/Dodge/Data/Item/Use.hs 155;" C +MuzzleShatter src/Dodge/Data/Item/Use.hs 149;" C +MuzzleShootBullet src/Dodge/Data/Item/Use.hs 137;" C +MuzzleStopper src/Dodge/Data/Item/Use.hs 154;" C +MuzzleTesla src/Dodge/Data/Item/Use.hs 139;" C +MuzzleTractor src/Dodge/Data/Item/Use.hs 140;" C +MuzzleUnsafeBlink src/Dodge/Data/Item/Use.hs 152;" C MvForward src/Dodge/Data/ActionPlan.hs 35;" C MvTurnToward src/Dodge/Data/ActionPlan.hs 34;" C MvWalking src/Dodge/Data/Creature/Misc.hs 39;" C @@ -1240,8 +1244,8 @@ NewSideEffect src/Dodge/Data/Universe.hs 63;" C NextArcStep src/Dodge/Data/ArcStep.hs 21;" t Ngon src/Dodge/Room/Ngon.hs 1;" m NoAction src/Dodge/Data/ActionPlan.hs 152;" C -NoAmmoParams src/Dodge/Data/Item/Use.hs 111;" C -NoArguments src/Dodge/Data/Terminal.hs 95;" C +NoAmmoParams src/Dodge/Data/Item/Use.hs 112;" C +NoArguments src/Dodge/Data/Terminal.hs 91;" C NoBeamCombine src/Dodge/Data/Beam.hs 43;" C NoConcurrentEffect src/Loop/Data.hs 7;" C NoConsumables src/Dodge/Data/Item.hs 33;" C @@ -1251,18 +1255,18 @@ NoCreatureEffect src/Dodge/Data/CreatureEffect.hs 11;" C NoDamageEffect src/Dodge/Data/Damage.hs 29;" C NoDebugInfo src/Dodge/Data/Universe.hs 56;" C NoDelay src/Dodge/Data/Item/HeldDelay.hs 14;" C -NoDropEffect src/Dodge/Data/Item/Effect.hs 28;" C +NoDropEffect src/Dodge/Data/Item/Effect.hs 34;" C NoEquipParams src/Dodge/Data/Item/Use/Equipment.hs 36;" C NoEscapeMenuOption src/Dodge/Data/Universe.hs 77;" C NoFaction src/Dodge/Data/Creature/State.hs 40;" C -NoFlare src/Dodge/Data/Item/Use.hs 126;" C +NoFlare src/Dodge/Data/Item/Use.hs 127;" C NoHammer src/Dodge/Data/Hammer.hs 13;" C -NoHeldUseEffect src/Dodge/Data/Item/Use.hs 49;" C +NoHeldUseEffect src/Dodge/Data/Item/Use.hs 50;" C NoHoming src/Dodge/Data/Projectile.hs 47;" C NoIntImp src/Dodge/Data/CreatureEffect.hs 20;" C -NoInvEffect src/Dodge/Data/Item/Effect.hs 20;" C +NoInvEffect src/Dodge/Data/Item/Effect.hs 24;" C NoItTargeting src/Dodge/Data/Item.hs 54;" C -NoLightFlare src/Dodge/Data/Item/Use.hs 128;" C +NoLightFlare src/Dodge/Data/Item/Use.hs 129;" C NoLighting src/Dodge/Data/Config.hs 104;" C NoMouseContext src/Dodge/Data/Input.hs 20;" C NoMvType src/Dodge/Data/Creature/Misc.hs 38;" C @@ -1276,7 +1280,7 @@ NoRoomClipBoundaries src/Dodge/Data/Config.hs 107;" C NoSF src/Dodge/Data/ComposedItem.hs 55;" C NoShadowFidelity src/Shape/Data.hs 25;" C NoShadows src/Dodge/Data/Config.hs 103;" C -NoSubInventory src/Dodge/Data/HUD.hs 35;" C +NoSubInventory src/Dodge/Data/HUD.hs 29;" C NoWorldEffect src/Dodge/Data/WorldEffect.hs 23;" C Noclip src/Dodge/Data/Config.hs 70;" C NodeMTree src/Dodge/Data/MetaTree.hs 14;" C @@ -1342,8 +1346,8 @@ OnRightWrist src/Dodge/Data/Equipment/Misc.hs 26;" C OnSpecial src/Dodge/Data/Equipment/Misc.hs 28;" C OnTurret src/Dodge/Data/Item/Location.hs 37;" C OnceSound src/Dodge/Data/SoundOrigin.hs 16;" C -OneArgument src/Dodge/Data/Terminal.hs 96;" C -OneHand src/Dodge/Data/Item/Use.hs 187;" C +OneArgument src/Dodge/Data/Terminal.hs 92;" C +OneHand src/Dodge/Data/Item/Use.hs 188;" C OnwardCluster src/Dodge/Data/RoomCluster.hs 14;" C OnwardList src/Dodge/Annotation/Data.hs 16;" C Opacity src/Dodge/Data/Wall.hs 40;" t @@ -1354,7 +1358,7 @@ OptionScreen src/Dodge/Data/Universe.hs 80;" C OptionScreenFlag src/Dodge/Data/Universe.hs 70;" t OptionType src/Dodge/Menu/OptionType.hs 2;" m Orientation src/Dodge/Item/Orientation.hs 1;" m -OutAction src/Dodge/Creature/Action.hs 50;" t +OutAction src/Dodge/Creature/Action.hs 46;" t OutLink src/Dodge/Data/Room.hs 43;" C OutPlacement src/Dodge/Data/GenWorld.hs 126;" t Outline src/Dodge/Render/Outline.hs 1;" m @@ -1378,7 +1382,7 @@ P2NoAction src/Dodge/Data/CreatureEffect.hs 53;" C PIERCING src/Dodge/Data/Damage/Type.hs 12;" C PIPE src/Dodge/Data/Item/Combine.hs 34;" C PISTOL src/Dodge/Data/Item/Combine.hs 128;" C -PJStabiliser src/Dodge/Projectile/Create.hs 16;" t +PJStabiliser src/Dodge/Projectile/Create.hs 17;" t PLANK src/Dodge/Data/Item/Combine.hs 43;" C PLATE src/Dodge/Data/Item/Combine.hs 53;" C PLUS src/Dodge/Data/GenParams.hs 20;" C @@ -1476,13 +1480,13 @@ PressPlateId src/Dodge/Data/PressPlate.hs 15;" C PressType src/Dodge/Data/Input.hs 13;" t PreviousArcEffect src/Dodge/Data/Item/Params.hs 34;" t PrimitiveMode src/Shader/Data.hs 99;" t -PrintMaterial src/Dodge/Data/Item/Use/Consumption/Ammo.hs 32;" C +PrintMaterial src/Dodge/Data/Item/Use/Consumption/Ammo.hs 31;" C Prison src/Dodge/Data/Scenario.hs 65;" C Procedural src/Dodge/Room/Procedural.hs 2;" m Projectile src/Dodge/Data/Projectile.hs 17;" t Projectile src/Dodge/Data/Projectile.hs 6;" m Projectile src/Dodge/Projectile.hs 1;" m -ProjectileParams src/Dodge/Data/Item/Use.hs 109;" C +ProjectileParams src/Dodge/Data/Item/Use.hs 110;" C ProjectileStabiliserLink src/Dodge/Data/ComposedItem.hs 32;" C ProjectileStabiliserSF src/Dodge/Data/ComposedItem.hs 62;" C ProjectileType src/Dodge/Data/Projectile.hs 35;" t @@ -1582,7 +1586,7 @@ RandomHelp src/RandomHelp.hs 3;" m RandomImpulse src/Dodge/Data/ActionPlan.hs 32;" C RandomPlacement src/Dodge/Data/GenWorld.hs 84;" C RandomTurn src/Dodge/Data/ActionPlan.hs 31;" C -RandomiseMuzzleFrames src/Dodge/Data/Item/Use.hs 50;" C +RandomiseMuzzleFrames src/Dodge/Data/Item/Use.hs 51;" C ReactorSS src/Dodge/Data/Scenario.hs 111;" C ReaderUpdate src/Dodge/Creature/ReaderUpdate.hs 1;" m RecRoomSS src/Dodge/Data/Scenario.hs 103;" C @@ -1598,7 +1602,7 @@ RemoteDirectionPU src/Dodge/Data/Item/Use/Consumption/Ammo.hs 21;" C RemoteScreenLink src/Dodge/Data/ComposedItem.hs 26;" C RemoteScreenSF src/Dodge/Data/ComposedItem.hs 51;" C RemoveEquipment src/Dodge/Data/RightButtonOptions.hs 36;" C -RemoveShieldWall src/Dodge/Data/Item/Effect.hs 23;" C +RemoveShieldWall src/Dodge/Data/Item/Effect.hs 27;" C Remove_LOS src/Dodge/Data/Config.hs 77;" C Render src/Data/Preload/Render.hs 5;" m Render src/Dodge/Render.hs 2;" m @@ -1821,8 +1825,8 @@ SplitBeamCombine src/Dodge/Data/Beam.hs 42;" C SprayGuns src/Dodge/Item/Held/SprayGuns.hs 1;" m SpreadGunAI src/Dodge/Data/Creature/Misc.hs 51;" C SpreadGunCrit src/Dodge/Creature/SpreadGunCrit.hs 1;" m -StabOrthReduce src/Dodge/Projectile/Create.hs 17;" C -StabSpinIncrease src/Dodge/Projectile/Create.hs 18;" C +StabOrthReduce src/Dodge/Projectile/Create.hs 18;" C +StabSpinIncrease src/Dodge/Projectile/Create.hs 19;" C Stance src/Dodge/Data/Creature/Stance.hs 13;" t Stance src/Dodge/Data/Creature/Stance.hs 6;" m StandaloneWall src/Dodge/Data/Wall/Structure.hs 13;" C @@ -1846,7 +1850,7 @@ StrategyActions src/Dodge/Data/ActionPlan.hs 188;" C StrictHelp src/StrictHelp.hs 1;" m StringHelp src/StringHelp.hs 1;" m Structure src/Dodge/Data/Wall/Structure.hs 6;" m -SubInventory src/Dodge/Data/HUD.hs 34;" t +SubInventory src/Dodge/Data/HUD.hs 28;" t Superfluous src/Shape/Data.hs 38;" C Surface src/Shape/Data.hs 41;" t Survive src/Dodge/Data/Scenario.hs 5;" C @@ -1858,7 +1862,7 @@ SwarmAI src/Dodge/Data/Creature/Misc.hs 55;" C SwarmCrit src/Dodge/Creature/SwarmCrit.hs 1;" m SwarmPlacement src/Dodge/LevelGen/SwarmPlacement.hs 1;" m Switch src/Dodge/LevelGen/Switch.hs 1;" m -SwitchAlteRifle src/Dodge/Data/Item/Use.hs 51;" C +SwitchAlteRifle src/Dodge/Data/Item/Use.hs 52;" C SwitchToItem src/Dodge/Data/ActionPlan.hs 38;" C TAPE src/Dodge/Data/Item/Combine.hs 39;" C TARGETING src/Dodge/Data/Item/Combine.hs 21;" C @@ -1896,41 +1900,41 @@ TargetingType src/Dodge/Data/Item/Targeting.hs 11;" t TeleSound src/Dodge/Data/SoundOrigin.hs 35;" C Teleport src/Dodge/Room/Teleport.hs 2;" m TermSignal src/Dodge/Data/Input.hs 59;" t -Terminal src/Dodge/Data/Terminal.hs 31;" t +Terminal src/Dodge/Data/Terminal.hs 32;" t Terminal src/Dodge/Data/Terminal.hs 6;" m Terminal src/Dodge/Debug/Terminal.hs 3;" m Terminal src/Dodge/Default/Terminal.hs 1;" m Terminal src/Dodge/Placement/Instance/Terminal.hs 1;" m Terminal src/Dodge/Terminal.hs 1;" m -TerminalBootLines src/Dodge/Data/Terminal.hs 27;" C -TerminalBootMempty src/Dodge/Data/Terminal.hs 26;" C -TerminalBootProgram src/Dodge/Data/Terminal.hs 25;" t -TerminalBusy src/Dodge/Data/Terminal.hs 15;" C -TerminalCommand src/Dodge/Data/Terminal.hs 116;" t -TerminalCommandArguments src/Dodge/Data/Terminal.hs 104;" C -TerminalCommandEffect src/Dodge/Data/Terminal.hs 103;" t +TerminalBootLines src/Dodge/Data/Terminal.hs 28;" C +TerminalBootMempty src/Dodge/Data/Terminal.hs 27;" C +TerminalBootProgram src/Dodge/Data/Terminal.hs 26;" t +TerminalBusy src/Dodge/Data/Terminal.hs 16;" C +TerminalCommand src/Dodge/Data/Terminal.hs 112;" t +TerminalCommandArguments src/Dodge/Data/Terminal.hs 100;" C +TerminalCommandEffect src/Dodge/Data/Terminal.hs 99;" t TerminalCommandEffect src/Dodge/TerminalCommandEffect.hs 1;" m -TerminalCommandEffectCommands src/Dodge/Data/Terminal.hs 110;" C -TerminalCommandEffectDamageCoding src/Dodge/Data/Terminal.hs 105;" C -TerminalCommandEffectHelp src/Dodge/Data/Terminal.hs 108;" C -TerminalCommandEffectLinkedObject src/Dodge/Data/Terminal.hs 107;" C -TerminalCommandEffectNoArgumentsStr src/Dodge/Data/Terminal.hs 109;" C -TerminalCommandEffectNone src/Dodge/Data/Terminal.hs 112;" C -TerminalCommandEffectSensorParameter src/Dodge/Data/Terminal.hs 106;" C -TerminalCommandEffectSingleCommand src/Dodge/Data/Terminal.hs 111;" C -TerminalInput src/Dodge/Data/Terminal.hs 19;" t -TerminalLine src/Dodge/Data/Terminal.hs 66;" t -TerminalLineConst src/Dodge/Data/Terminal.hs 56;" C -TerminalLineDisplay src/Dodge/Data/Terminal.hs 67;" C -TerminalLineEffect src/Dodge/Data/Terminal.hs 75;" C -TerminalLineString src/Dodge/Data/Terminal.hs 56;" t -TerminalLineTerminalEffect src/Dodge/Data/Terminal.hs 71;" C -TerminalOff src/Dodge/Data/Terminal.hs 15;" C -TerminalReady src/Dodge/Data/Terminal.hs 15;" C +TerminalCommandEffectCommands src/Dodge/Data/Terminal.hs 106;" C +TerminalCommandEffectDamageCoding src/Dodge/Data/Terminal.hs 101;" C +TerminalCommandEffectHelp src/Dodge/Data/Terminal.hs 104;" C +TerminalCommandEffectLinkedObject src/Dodge/Data/Terminal.hs 103;" C +TerminalCommandEffectNoArgumentsStr src/Dodge/Data/Terminal.hs 105;" C +TerminalCommandEffectNone src/Dodge/Data/Terminal.hs 108;" C +TerminalCommandEffectSensorParameter src/Dodge/Data/Terminal.hs 102;" C +TerminalCommandEffectSingleCommand src/Dodge/Data/Terminal.hs 107;" C +TerminalInput src/Dodge/Data/Terminal.hs 20;" t +TerminalLine src/Dodge/Data/Terminal.hs 67;" t +TerminalLineConst src/Dodge/Data/Terminal.hs 57;" C +TerminalLineDisplay src/Dodge/Data/Terminal.hs 68;" C +TerminalLineEffect src/Dodge/Data/Terminal.hs 76;" C +TerminalLineString src/Dodge/Data/Terminal.hs 57;" t +TerminalLineTerminalEffect src/Dodge/Data/Terminal.hs 72;" C +TerminalOff src/Dodge/Data/Terminal.hs 16;" C +TerminalReady src/Dodge/Data/Terminal.hs 16;" C TerminalSound src/Dodge/Data/SoundOrigin.hs 23;" C -TerminalStatus src/Dodge/Data/Terminal.hs 15;" t -TerminalToggle src/Dodge/Data/Terminal.hs 82;" t -TerminalType src/Dodge/Data/Terminal.hs 54;" t +TerminalStatus src/Dodge/Data/Terminal.hs 16;" t +TerminalToggle src/Dodge/Data/Terminal.hs 83;" t +TerminalType src/Dodge/Data/Terminal.hs 55;" t Terrestrial src/Dodge/Data/Scenario.hs 72;" C TerrestrialBiome src/Dodge/Data/Scenario.hs 76;" t Tesla src/Dodge/Tesla.hs 1;" m @@ -1938,7 +1942,7 @@ TeslaArc src/Dodge/Data/TeslaArc.hs 15;" t TeslaArc src/Dodge/Data/TeslaArc.hs 6;" m TeslaBall src/Dodge/Data/Bullet.hs 31;" C TeslaBeamCombine src/Dodge/Data/Beam.hs 41;" C -TeslaGunFlare src/Dodge/Data/Item/Use.hs 132;" C +TeslaGunFlare src/Dodge/Data/Item/Use.hs 133;" C Test src/Dodge/Creature/Test.hs 8;" m Test src/Dodge/Event/Test.hs 1;" m Test src/Picture/Test.hs 1;" m @@ -1957,12 +1961,12 @@ Tile src/Tile.hs 2;" m Tiled src/Data/Tile.hs 13;" C TimeFlowStatus src/Dodge/Data/World.hs 56;" t Tiny src/Shape/Data.hs 32;" C -TmId src/Dodge/Data/Terminal.hs 60;" C -TmTm src/Dodge/Data/Terminal.hs 59;" t +TmId src/Dodge/Data/Terminal.hs 61;" C +TmTm src/Dodge/Data/Terminal.hs 60;" t TmTm src/Dodge/TmTm.hs 1;" m -TmTmClearDisplayedLines src/Dodge/Data/Terminal.hs 61;" C -TmTmSetPartialCommand src/Dodge/Data/Terminal.hs 63;" C -TmTmSetStatus src/Dodge/Data/Terminal.hs 62;" C +TmTmClearDisplayedLines src/Dodge/Data/Terminal.hs 62;" C +TmTmSetPartialCommand src/Dodge/Data/Terminal.hs 64;" C +TmTmSetStatus src/Dodge/Data/Terminal.hs 63;" C TmWdId src/Dodge/Data/WorldEffect.hs 73;" C TmWdWd src/Dodge/Data/WorldEffect.hs 72;" t TmWdWd src/Dodge/TmWdWd.hs 1;" m @@ -1976,6 +1980,8 @@ ToStart src/Sound/Data.hs 27;" C ToStop src/Sound/Data.hs 29;" C Toggle src/Dodge/Data/Universe.hs 102;" C Toggle2 src/Dodge/Data/Universe.hs 106;" C +ToggleExamine src/Dodge/ToggleExamine.hs 1;" m +ToggleSF src/Dodge/Data/ComposedItem.hs 64;" C TopDecoration src/Dodge/Placement/TopDecoration.hs 1;" m TopEscapeMenuOption src/Dodge/Data/Universe.hs 76;" C TopLDT src/Dodge/Data/DoubleTree.hs 49;" C @@ -1995,7 +2001,7 @@ Trie src/SimpleTrie.hs 9;" t TriggerDoor src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 1;" m TriggerLink src/Dodge/Data/ComposedItem.hs 18;" C TriggerSF src/Dodge/Data/ComposedItem.hs 48;" C -TriggerType src/Dodge/Data/Item/Use.hs 64;" t +TriggerType src/Dodge/Data/Item/Use.hs 65;" t TriggerType src/Dodge/Item/Weapon/TriggerType.hs 6;" m TurbineBaySS src/Dodge/Data/Scenario.hs 110;" C Turn src/Dodge/Data/ActionPlan.hs 30;" C @@ -2008,9 +2014,9 @@ Turret src/Dodge/Data/Machine.hs 57;" t Turret src/Dodge/Placement/Instance/Turret.hs 1;" m TurretInt src/Dodge/Data/Item/Location.hs 21;" t TwistGoal src/Dodge/Data/Scenario.hs 15;" C -TwoHandFlat src/Dodge/Data/Item/Use.hs 186;" C -TwoHandOver src/Dodge/Data/Item/Use.hs 185;" C -TwoHandUnder src/Dodge/Data/Item/Use.hs 184;" C +TwoHandFlat src/Dodge/Data/Item/Use.hs 187;" C +TwoHandOver src/Dodge/Data/Item/Use.hs 186;" C +TwoHandUnder src/Dodge/Data/Item/Use.hs 185;" C Type src/Dodge/Data/Damage/Type.hs 6;" m Type src/Dodge/Terminal/Type.hs 1;" m Typical src/Shape/Data.hs 36;" C @@ -2048,13 +2054,13 @@ Use src/Dodge/Default/Item/Use.hs 1;" m UseAheadPos src/Dodge/Data/ActionPlan.hs 160;" C UseAttach src/Dodge/Data/Item/Use.hs 42;" C UseBulletMod src/Dodge/Data/Item/Use.hs 45;" C -UseCondition src/Dodge/Data/Item/Use.hs 59;" t +UseCondition src/Dodge/Data/Item/Use.hs 60;" t UseDelay src/Dodge/Data/Item/HeldDelay.hs 13;" t UseEquip src/Dodge/Data/Item/Use.hs 41;" C -UseExactly src/Dodge/Data/Item/Use.hs 158;" C -UseFocus src/Dodge/Data/Item/Use.hs 54;" t -UseFromLocation src/Dodge/Data/Item/Use.hs 56;" C -UseFromRoot src/Dodge/Data/Item/Use.hs 55;" C +UseExactly src/Dodge/Data/Item/Use.hs 159;" C +UseFocus src/Dodge/Data/Item/Use.hs 55;" t +UseFromLocation src/Dodge/Data/Item/Use.hs 57;" C +UseFromRoot src/Dodge/Data/Item/Use.hs 56;" C UseHeld src/Dodge/Data/Item/Use.hs 33;" C UseItem src/Dodge/Data/ActionPlan.hs 37;" C UseItem src/Dodge/Creature/Impulse/UseItem.hs 3;" m @@ -2064,9 +2070,10 @@ UseNothing src/Dodge/Data/Item/Use.hs 43;" C UseScope src/Dodge/Data/Item/Use.hs 44;" C UseSelf src/Dodge/Data/ActionPlan.hs 157;" C UseTarget src/Dodge/Data/ActionPlan.hs 154;" C -UseUpTo src/Dodge/Data/Item/Use.hs 159;" C -UseableAnytime src/Dodge/Data/Item/Use.hs 61;" C -UseableWhenAimed src/Dodge/Data/Item/Use.hs 60;" C +UseToggle src/Dodge/Data/Item/Use.hs 46;" C +UseUpTo src/Dodge/Data/Item/Use.hs 160;" C +UseableAnytime src/Dodge/Data/Item/Use.hs 62;" C +UseableWhenAimed src/Dodge/Data/Item/Use.hs 61;" C UsedInLink src/Dodge/Data/Room.hs 61;" C UsedOutLink src/Dodge/Data/Room.hs 56;" C Utility src/Dodge/Item/Held/Utility.hs 1;" m @@ -2187,13 +2194,13 @@ Zoning src/Dodge/Zoning.hs 1;" m __Just' src/MaybeHelp.hs 13;" f _actAction src/Dodge/Data/ActionPlan.hs 81;" f _actLabel src/Dodge/Data/ActionPlan.hs 80;" f -_aimHandlePos src/Dodge/Data/Item/Use.hs 120;" f -_aimMuzzles src/Dodge/Data/Item/Use.hs 121;" f -_aimRange src/Dodge/Data/Item/Use.hs 117;" f -_aimStance src/Dodge/Data/Item/Use.hs 119;" f -_aimTurnSpeed src/Dodge/Data/Item/Use.hs 116;" f -_aimWeight src/Dodge/Data/Item/Use.hs 115;" f -_aimZoom src/Dodge/Data/Item/Use.hs 118;" f +_aimHandlePos src/Dodge/Data/Item/Use.hs 121;" f +_aimMuzzles src/Dodge/Data/Item/Use.hs 122;" f +_aimRange src/Dodge/Data/Item/Use.hs 118;" f +_aimStance src/Dodge/Data/Item/Use.hs 120;" f +_aimTurnSpeed src/Dodge/Data/Item/Use.hs 117;" f +_aimWeight src/Dodge/Data/Item/Use.hs 116;" f +_aimZoom src/Dodge/Data/Item/Use.hs 119;" 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 @@ -2205,14 +2212,14 @@ _allocRemoveID src/Dodge/Data/RightButtonOptions.hs 34;" f _allocSwapID src/Dodge/Data/RightButtonOptions.hs 30;" f _alphaDivideShader src/Data/Preload/Render.hs 18;" f _ambushTarget src/Dodge/Data/ActionPlan.hs 178;" f -_ampBullet src/Dodge/Data/Item/Use.hs 108;" f -_ampCreateGas src/Dodge/Data/Item/Use.hs 110;" f -_ampPayload src/Dodge/Data/Item/Use.hs 109;" f +_ampBullet src/Dodge/Data/Item/Use.hs 109;" f +_ampCreateGas src/Dodge/Data/Item/Use.hs 111;" f +_ampPayload src/Dodge/Data/Item/Use.hs 110;" f _apAction src/Dodge/Data/ActionPlan.hs 20;" f _apGoal src/Dodge/Data/ActionPlan.hs 22;" f _apImpulse src/Dodge/Data/ActionPlan.hs 19;" f -_apInt src/Dodge/Data/Item/Use.hs 70;" f -_apProjectiles src/Dodge/Data/Item/Use.hs 69;" f +_apInt src/Dodge/Data/Item/Use.hs 71;" f +_apProjectiles src/Dodge/Data/Item/Use.hs 70;" f _apStrategy src/Dodge/Data/ActionPlan.hs 21;" f _arLoaded src/Dodge/Data/Item/Use/Consumption.hs 28;" f _arMax src/Dodge/Data/Item/Use/Consumption.hs 29;" f @@ -2221,8 +2228,8 @@ _arTime src/Dodge/Data/Item/Use/Consumption.hs 30;" f _arbitraryAction src/Dodge/Data/ActionPlan.hs 167;" f _arcNumber src/Dodge/Data/Item/Params.hs 24;" f _arcSize src/Dodge/Data/Item/Params.hs 23;" f -_argList src/Dodge/Data/Terminal.hs 98;" f -_argType src/Dodge/Data/Terminal.hs 97;" f +_argList src/Dodge/Data/Terminal.hs 94;" f +_argType src/Dodge/Data/Terminal.hs 93;" f _asDir src/Dodge/Data/ArcStep.hs 16;" f _asObject src/Dodge/Data/ArcStep.hs 17;" f _asPos src/Dodge/Data/ArcStep.hs 15;" f @@ -2287,9 +2294,9 @@ _buPayload src/Dodge/Data/Bullet.hs 19;" f _buPos src/Dodge/Data/Bullet.hs 23;" f _buVel src/Dodge/Data/Bullet.hs 21;" f _buWidth src/Dodge/Data/Bullet.hs 25;" f -_bulGunSound src/Dodge/Data/Item/Use.hs 82;" f -_bulGunSound src/Dodge/Data/Item/Use.hs 89;" f -_bulGunSound src/Dodge/Data/Item/Use.hs 99;" f +_bulGunSound src/Dodge/Data/Item/Use.hs 83;" f +_bulGunSound src/Dodge/Data/Item/Use.hs 90;" f +_bulGunSound src/Dodge/Data/Item/Use.hs 100;" f _bullets src/Dodge/Data/LWorld.hs 106;" f _buttons src/Dodge/Data/LWorld.hs 135;" f _cClock src/Dodge/Data/CWorld.hs 28;" f @@ -2305,16 +2312,16 @@ _camViewDistance src/Dodge/Data/Camera.hs 30;" f _camViewFrom src/Dodge/Data/Camera.hs 29;" f _camZoom src/Dodge/Data/Camera.hs 26;" f _carriage src/Dodge/Data/Creature/Stance.hs 14;" f -_carteCenter src/Dodge/Data/HUD.hs 47;" f -_carteRot src/Dodge/Data/HUD.hs 49;" f -_carteZoom src/Dodge/Data/HUD.hs 48;" f +_carteCenter src/Dodge/Data/HUD.hs 41;" f +_carteRot src/Dodge/Data/HUD.hs 43;" f +_carteZoom src/Dodge/Data/HUD.hs 42;" f _ceSideEffect src/Dodge/Data/Universe.hs 64;" f _ceString src/Dodge/Data/Universe.hs 65;" f -_ciFilter src/Dodge/Data/HUD.hs 40;" f +_ciFilter src/Dodge/Data/HUD.hs 34;" f _ciInvIDs src/Dodge/Data/Combine.hs 6;" f _ciItem src/Dodge/Data/Combine.hs 7;" f -_ciSections src/Dodge/Data/HUD.hs 38;" f -_ciSelection src/Dodge/Data/HUD.hs 39;" f +_ciSections src/Dodge/Data/HUD.hs 32;" f +_ciSelection src/Dodge/Data/HUD.hs 33;" f _cigType src/Dodge/Data/Camera.hs 19;" f _clAlt src/Dodge/Data/Cloud.hs 23;" f _clPict src/Dodge/Data/Cloud.hs 21;" f @@ -2338,13 +2345,13 @@ _cldtUp src/Dodge/Data/DoubleTree.hs 51;" f _cldtUp src/Dodge/Data/DoubleTree.hs 59;" f _clickPos src/Dodge/Data/Input.hs 50;" f _clickWorldPos src/Dodge/Data/Input.hs 52;" f -_closeButtons src/Dodge/Data/HUD.hs 51;" f -_closeItems src/Dodge/Data/HUD.hs 50;" f +_closeButtons src/Dodge/Data/HUD.hs 45;" f +_closeItems src/Dodge/Data/HUD.hs 44;" f _cloudEBO src/Data/Preload/Render.hs 49;" f _cloudShader src/Data/Preload/Render.hs 48;" f _cloudVBO src/Data/Preload/Render.hs 47;" f _clouds src/Dodge/Data/LWorld.hs 101;" f -_cmdEffect src/Dodge/Data/Terminal.hs 95;" f +_cmdEffect src/Dodge/Data/Terminal.hs 91;" f _cmeRecoil src/Dodge/Data/MuzzleEffect.hs 12;" f _cmeSound src/Dodge/Data/MuzzleEffect.hs 14;" f _cmeTorque src/Dodge/Data/MuzzleEffect.hs 13;" f @@ -2552,7 +2559,7 @@ _fullscreenShader src/Data/Preload/Render.hs 20;" f _futureWorlds src/Dodge/Data/World.hs 63;" f _futureWorlds src/Dodge/Data/World.hs 69;" f _gameplay_rotate_to_wall src/Dodge/Data/Config.hs 55;" f -_gasCreation src/Dodge/Data/Item/Use.hs 77;" f +_gasCreation src/Dodge/Data/Item/Use.hs 78;" f _genPlacements src/Dodge/Data/GenWorld.hs 25;" f _genRooms src/Dodge/Data/GenWorld.hs 26;" f _getAttentiveTo src/Dodge/Data/Creature/Perception.hs 61;" f @@ -2597,12 +2604,12 @@ _heldUseEffect src/Dodge/Data/Item/Use.hs 39;" f _heldWorldPos src/Dodge/Data/Input.hs 53;" f _hotkeys src/Dodge/Data/LWorld.hs 146;" f _hud src/Dodge/Data/World.hs 45;" f -_hudElement src/Dodge/Data/HUD.hs 46;" f +_hudElement src/Dodge/Data/HUD.hs 40;" f _humanoidAI src/Dodge/Data/Creature/Misc.hs 80;" f _iaLoaded src/Dodge/Data/Item/Use/Consumption.hs 22;" f _iaMax src/Dodge/Data/Item/Use/Consumption.hs 21;" f -_iatOrient src/Dodge/Data/ComposedItem.hs 70;" f -_iatType src/Dodge/Data/ComposedItem.hs 69;" f +_iatOrient src/Dodge/Data/ComposedItem.hs 71;" f +_iatType src/Dodge/Data/ComposedItem.hs 70;" f _ibtAmmoMag src/Dodge/Data/Item/Combine.hs 20;" f _ibtAttach src/Dodge/Data/Item/Combine.hs 19;" f _ibtBulletMod src/Dodge/Data/Item/Combine.hs 22;" f @@ -2611,9 +2618,9 @@ _ibtEquip src/Dodge/Data/Item/Combine.hs 17;" f _ibtHeld src/Dodge/Data/Item/Combine.hs 16;" f _ibtIntroScanType src/Dodge/Data/Item/Combine.hs 25;" f _ibtTargeting src/Dodge/Data/Item/Combine.hs 21;" f -_ieInv src/Dodge/Data/Item/Effect.hs 13;" f -_ieOnDrop src/Dodge/Data/Item/Effect.hs 15;" f -_ieOnInsert src/Dodge/Data/Item/Effect.hs 14;" f +_ieInv src/Dodge/Data/Item/Effect.hs 17;" f +_ieOnDrop src/Dodge/Data/Item/Effect.hs 19;" f +_ieOnInsert src/Dodge/Data/Item/Effect.hs 18;" f _ilCrID src/Dodge/Data/Item/Location.hs 30;" f _ilEquipSite src/Dodge/Data/Item/Location.hs 35;" f _ilFlID src/Dodge/Data/Item/Location.hs 38;" f @@ -2653,9 +2660,9 @@ _itType src/Dodge/Data/Item.hs 45;" f _itUse src/Dodge/Data/Item.hs 42;" f _itUseCondition src/Dodge/Data/Item.hs 43;" f _itemLocations src/Dodge/Data/LWorld.hs 100;" 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 +_izFac src/Dodge/Data/Item/Use.hs 194;" f +_izMax src/Dodge/Data/Item/Use.hs 192;" f +_izMin src/Dodge/Data/Item/Use.hs 193;" f _killTarget src/Dodge/Data/ActionPlan.hs 198;" f _lClock src/Dodge/Data/LWorld.hs 143;" f _lTestInt src/Dodge/Data/LWorld.hs 145;" f @@ -2699,9 +2706,9 @@ _lsID src/Dodge/Data/LightSource.hs 24;" f _lsParam src/Dodge/Data/LightSource.hs 25;" f _lsPos src/Dodge/Data/LightSource.hs 17;" f _lsRad src/Dodge/Data/LightSource.hs 18;" f -_luChildUpdate src/Dodge/Data/ComposedItem.hs 83;" f -_luLinkType src/Dodge/Data/ComposedItem.hs 81;" f -_luParentUpdate src/Dodge/Data/ComposedItem.hs 82;" f +_luChildUpdate src/Dodge/Data/ComposedItem.hs 84;" f +_luLinkType src/Dodge/Data/ComposedItem.hs 82;" f +_luParentUpdate src/Dodge/Data/ComposedItem.hs 83;" f _lwID src/Dodge/Data/LinearShockwave.hs 15;" f _lwPoints src/Dodge/Data/LinearShockwave.hs 16;" f _lwPos src/Dodge/Data/LinearShockwave.hs 14;" f @@ -2781,20 +2788,20 @@ _mtLabel src/Dodge/Tree/Compose/Data.hs 8;" f _mtTree src/Dodge/Data/MetaTree.hs 10;" f _mtTree src/Dodge/Tree/Compose/Data.hs 8;" f _musicData src/Data/Preload.hs 13;" f -_muzVel src/Dodge/Data/Item/Use.hs 93;" f +_muzVel src/Dodge/Data/Item/Use.hs 94;" 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 78;" f _mvTurnJit src/Dodge/Data/Creature/Misc.hs 43;" f _mvTurnRad src/Dodge/Data/Creature/Misc.hs 42;" f -_mzAmmoPerShot src/Dodge/Data/Item/Use.hs 169;" f -_mzAmmoSlot src/Dodge/Data/Item/Use.hs 166;" f -_mzEffect src/Dodge/Data/Item/Use.hs 168;" f -_mzFlareType src/Dodge/Data/Item/Use.hs 167;" f -_mzFrame src/Dodge/Data/Item/Use.hs 170;" 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 +_mzAmmoPerShot src/Dodge/Data/Item/Use.hs 170;" f +_mzAmmoSlot src/Dodge/Data/Item/Use.hs 167;" f +_mzEffect src/Dodge/Data/Item/Use.hs 169;" f +_mzFlareType src/Dodge/Data/Item/Use.hs 168;" f +_mzFrame src/Dodge/Data/Item/Use.hs 171;" f +_mzInaccuracy src/Dodge/Data/Item/Use.hs 166;" f +_mzPos src/Dodge/Data/Item/Use.hs 164;" f +_mzRot src/Dodge/Data/Item/Use.hs 165;" f _newArcStep src/Dodge/Data/Item/Params.hs 25;" f _nodeMetaTree src/Dodge/Data/MetaTree.hs 14;" f _nodeMetaTree src/Dodge/Tree/Compose/Data.hs 9;" f @@ -2804,10 +2811,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 145;" f -_nzMaxWalkAngle src/Dodge/Data/Item/Use.hs 144;" f -_nzPressure src/Dodge/Data/Item/Use.hs 143;" f -_nzWalkSpeed src/Dodge/Data/Item/Use.hs 146;" f +_nzCurrentWalkAngle src/Dodge/Data/Item/Use.hs 146;" f +_nzMaxWalkAngle src/Dodge/Data/Item/Use.hs 145;" f +_nzPressure src/Dodge/Data/Item/Use.hs 144;" f +_nzWalkSpeed src/Dodge/Data/Item/Use.hs 147;" f _offPathFromEdges src/Dodge/Data/Room.hs 74;" f _oldMagnets src/Dodge/Data/LWorld.hs 125;" f _onPathFromEdges src/Dodge/Data/Room.hs 73;" f @@ -2934,8 +2941,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 39;" f -_randomOffset src/Dodge/Data/Item/Use.hs 80;" f -_randomOffset src/Dodge/Data/Item/Use.hs 97;" f +_randomOffset src/Dodge/Data/Item/Use.hs 81;" f +_randomOffset src/Dodge/Data/Item/Use.hs 98;" f _rateMax src/Dodge/Data/Item/HeldDelay.hs 16;" f _rateTime src/Dodge/Data/Item/HeldDelay.hs 17;" f _rbColor src/Dodge/Data/RadarBlip.hs 15;" f @@ -2945,13 +2952,13 @@ _rbPos src/Dodge/Data/RadarBlip.hs 19;" f _rbRad src/Dodge/Data/RadarBlip.hs 18;" f _rbTime src/Dodge/Data/RadarBlip.hs 16;" f _rboBaseBloom src/Data/Preload/Render.hs 38;" f -_recoil src/Dodge/Data/Item/Use.hs 78;" f -_recoil src/Dodge/Data/Item/Use.hs 95;" f +_recoil src/Dodge/Data/Item/Use.hs 79;" f +_recoil src/Dodge/Data/Item/Use.hs 96;" f _renderData src/Data/Preload.hs 11;" f _reverseAmount src/Dodge/Data/World.hs 62;" f _reverseAmount src/Dodge/Data/World.hs 68;" f _reverseAmount src/Dodge/Data/World.hs 72;" f -_rifling src/Dodge/Data/Item/Use.hs 94;" f +_rifling src/Dodge/Data/Item/Use.hs 95;" f _rkHoming src/Dodge/Data/Projectile.hs 40;" f _rkSmoke src/Dodge/Data/Projectile.hs 41;" f _rlDir src/Dodge/Data/Room.hs 26;" f @@ -3060,8 +3067,8 @@ _siWidth src/Dodge/Data/SelectionList.hs 47;" f _siWidth src/Dodge/Data/SelectionList.hs 56;" f _sideEffect src/Loop/Data.hs 13;" f _sideImpulses src/Dodge/Data/ActionPlan.hs 170;" f -_sidePush src/Dodge/Data/Item/Use.hs 81;" f -_sidePush src/Dodge/Data/Item/Use.hs 98;" f +_sidePush src/Dodge/Data/Item/Use.hs 82;" f +_sidePush src/Dodge/Data/Item/Use.hs 99;" 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 @@ -3123,18 +3130,18 @@ _tbPos src/Dodge/Data/TractorBeam.hs 14;" f _tbStartPos src/Dodge/Data/TractorBeam.hs 15;" f _tbTime src/Dodge/Data/TractorBeam.hs 17;" f _tbVel src/Dodge/Data/TractorBeam.hs 16;" f -_tcAlias src/Dodge/Data/Terminal.hs 118;" f -_tcEffect src/Dodge/Data/Terminal.hs 120;" f -_tcHelp src/Dodge/Data/Terminal.hs 119;" f -_tcString src/Dodge/Data/Terminal.hs 117;" f -_termID src/Dodge/Data/HUD.hs 43;" f +_tcAlias src/Dodge/Data/Terminal.hs 114;" f +_tcEffect src/Dodge/Data/Terminal.hs 116;" f +_tcHelp src/Dodge/Data/Terminal.hs 115;" f +_tcString src/Dodge/Data/Terminal.hs 113;" f +_termID src/Dodge/Data/HUD.hs 37;" f _terminals src/Dodge/Data/LWorld.hs 124;" f _teslaArcs src/Dodge/Data/LWorld.hs 114;" f _testFloat src/Dodge/Data/World.hs 43;" f _textInput src/Dodge/Data/Input.hs 54;" f _textureObject src/Shader/Data.hs 95;" f -_tiSel src/Dodge/Data/Terminal.hs 21;" f -_tiText src/Dodge/Data/Terminal.hs 20;" f +_tiSel src/Dodge/Data/Terminal.hs 22;" f +_tiText src/Dodge/Data/Terminal.hs 21;" f _tileArrayZ src/Data/Tile.hs 21;" f _tilePoly src/Data/Tile.hs 15;" f _tileTangentPos src/Data/Tile.hs 17;" f @@ -3142,30 +3149,30 @@ _tileZero src/Data/Tile.hs 16;" f _tiles src/Data/Tile.hs 13;" f _timeFlow src/Dodge/Data/World.hs 38;" f _timeFlowCharge src/Dodge/Data/World.hs 76;" f -_tlEffect src/Dodge/Data/Terminal.hs 77;" f -_tlPause src/Dodge/Data/Terminal.hs 68;" f -_tlPause src/Dodge/Data/Terminal.hs 72;" f -_tlPause src/Dodge/Data/Terminal.hs 76;" f -_tlString src/Dodge/Data/Terminal.hs 69;" f -_tlTermEffect src/Dodge/Data/Terminal.hs 73;" f -_tmBootProgram src/Dodge/Data/Terminal.hs 33;" f -_tmButtonID src/Dodge/Data/Terminal.hs 34;" f -_tmCommandHistory src/Dodge/Data/Terminal.hs 46;" f -_tmDeathEffect src/Dodge/Data/Terminal.hs 44;" f -_tmDisplayedLines src/Dodge/Data/Terminal.hs 38;" f -_tmExternalColor src/Dodge/Data/Terminal.hs 37;" f -_tmFutureLines src/Dodge/Data/Terminal.hs 39;" f -_tmID src/Dodge/Data/Terminal.hs 32;" f -_tmInput src/Dodge/Data/Terminal.hs 41;" f -_tmMachineID src/Dodge/Data/Terminal.hs 35;" f -_tmName src/Dodge/Data/Terminal.hs 36;" f -_tmPartialCommand src/Dodge/Data/Terminal.hs 48;" f -_tmScrollCommands src/Dodge/Data/Terminal.hs 42;" f -_tmStatus src/Dodge/Data/Terminal.hs 45;" f -_tmTitle src/Dodge/Data/Terminal.hs 40;" f -_tmToggles src/Dodge/Data/Terminal.hs 47;" f -_tmType src/Dodge/Data/Terminal.hs 49;" f -_tmWriteCommands src/Dodge/Data/Terminal.hs 43;" f +_tlEffect src/Dodge/Data/Terminal.hs 78;" f +_tlPause src/Dodge/Data/Terminal.hs 69;" f +_tlPause src/Dodge/Data/Terminal.hs 73;" f +_tlPause src/Dodge/Data/Terminal.hs 77;" f +_tlString src/Dodge/Data/Terminal.hs 70;" f +_tlTermEffect src/Dodge/Data/Terminal.hs 74;" f +_tmBootProgram src/Dodge/Data/Terminal.hs 34;" f +_tmButtonID src/Dodge/Data/Terminal.hs 35;" f +_tmCommandHistory src/Dodge/Data/Terminal.hs 47;" f +_tmDeathEffect src/Dodge/Data/Terminal.hs 45;" f +_tmDisplayedLines src/Dodge/Data/Terminal.hs 39;" f +_tmExternalColor src/Dodge/Data/Terminal.hs 38;" f +_tmFutureLines src/Dodge/Data/Terminal.hs 40;" f +_tmID src/Dodge/Data/Terminal.hs 33;" f +_tmInput src/Dodge/Data/Terminal.hs 42;" f +_tmMachineID src/Dodge/Data/Terminal.hs 36;" f +_tmName src/Dodge/Data/Terminal.hs 37;" f +_tmPartialCommand src/Dodge/Data/Terminal.hs 49;" f +_tmScrollCommands src/Dodge/Data/Terminal.hs 43;" f +_tmStatus src/Dodge/Data/Terminal.hs 46;" f +_tmTitle src/Dodge/Data/Terminal.hs 41;" f +_tmToggles src/Dodge/Data/Terminal.hs 48;" f +_tmType src/Dodge/Data/Terminal.hs 50;" f +_tmWriteCommands src/Dodge/Data/Terminal.hs 44;" f _toPlaySoundChunkID src/Sound/Data.hs 45;" f _toPlaySoundPos src/Sound/Data.hs 42;" f _toPlaySoundStatus src/Sound/Data.hs 41;" f @@ -3174,16 +3181,16 @@ _toPlaySoundVolume src/Sound/Data.hs 43;" f _toPlaySoundVolumeFraction src/Sound/Data.hs 44;" f _toPlaySounds src/Dodge/Data/World.hs 40;" f _topBoxSize src/Shape/Data.hs 17;" f -_torqueAfter src/Dodge/Data/Item/Use.hs 79;" f -_torqueAfter src/Dodge/Data/Item/Use.hs 96;" f +_torqueAfter src/Dodge/Data/Item/Use.hs 80;" f +_torqueAfter src/Dodge/Data/Item/Use.hs 97;" f _tractorBeams src/Dodge/Data/LWorld.hs 119;" f _trieChildren src/SimpleTrie.hs 11;" f _trieMVal src/SimpleTrie.hs 10;" f _triggers src/Dodge/Data/LWorld.hs 129;" f -_tryLeftLink src/Dodge/Data/ComposedItem.hs 76;" f -_tryRightLink src/Dodge/Data/ComposedItem.hs 77;" f -_ttDeathEffect src/Dodge/Data/Terminal.hs 84;" f -_ttTriggerID src/Dodge/Data/Terminal.hs 83;" f +_tryLeftLink src/Dodge/Data/ComposedItem.hs 77;" f +_tryRightLink src/Dodge/Data/ComposedItem.hs 78;" f +_ttDeathEffect src/Dodge/Data/Terminal.hs 85;" f +_ttTriggerID src/Dodge/Data/Terminal.hs 84;" f _tuDir src/Dodge/Data/Machine.hs 61;" f _tuFireTime src/Dodge/Data/Machine.hs 60;" f _tuTurnSpeed src/Dodge/Data/Machine.hs 59;" f @@ -3206,11 +3213,12 @@ _unST src/Dodge/Tree/Compose/Data.hs 12;" f _unTO src/Shader/Data.hs 59;" f _unputTerminal src/Dodge/Data/GenWorld.hs 36;" f _useAheadPos src/Dodge/Data/ActionPlan.hs 161;" f -_useExactly src/Dodge/Data/Item/Use.hs 158;" f +_useExactly src/Dodge/Data/Item/Use.hs 159;" f _useMvTargetPos src/Dodge/Data/ActionPlan.hs 164;" f _useSelf src/Dodge/Data/ActionPlan.hs 158;" f _useTarget src/Dodge/Data/ActionPlan.hs 155;" f -_useUpTo src/Dodge/Data/Item/Use.hs 159;" f +_useToggle src/Dodge/Data/Item/Use.hs 46;" f +_useUpTo src/Dodge/Data/Item/Use.hs 160;" f _uvCanContinue src/Dodge/Data/Universe.hs 38;" f _uvConfig src/Dodge/Data/Universe.hs 36;" f _uvDebug src/Dodge/Data/Universe.hs 43;" f @@ -3262,10 +3270,10 @@ _walls src/Dodge/Data/LWorld.hs 120;" f _warmMax src/Dodge/Data/Item/HeldDelay.hs 27;" f _warmSound src/Dodge/Data/Item/HeldDelay.hs 28;" f _warmTime src/Dodge/Data/Item/HeldDelay.hs 26;" f -_weaponInvLock src/Dodge/Data/Item/Use.hs 85;" f -_weaponInvLock src/Dodge/Data/Item/Use.hs 102;" f -_weaponRepeat src/Dodge/Data/Item/Use.hs 86;" f -_weaponRepeat src/Dodge/Data/Item/Use.hs 103;" f +_weaponInvLock src/Dodge/Data/Item/Use.hs 86;" f +_weaponInvLock src/Dodge/Data/Item/Use.hs 103;" f +_weaponRepeat src/Dodge/Data/Item/Use.hs 87;" f +_weaponRepeat src/Dodge/Data/Item/Use.hs 104;" f _windowPosX src/Dodge/Data/Config.hs 53;" f _windowPosY src/Dodge/Data/Config.hs 54;" f _windowShader src/Data/Preload/Render.hs 19;" f @@ -3309,8 +3317,8 @@ aShape src/Dodge/Placement/Instance/LightSource.hs 107;" f aSound src/Dodge/SoundLogic.hs 68;" f aStaticBall src/Dodge/WorldEvent/SpawnParticle.hs 41;" f aTreeStrut src/Dodge/Tree/GenerateStructure.hs 42;" f -accessTerminal src/Dodge/WorldEffect.hs 49;" f -activateDetonator src/Dodge/Creature/Impulse/UseItem.hs 75;" f +accessTerminal src/Dodge/WorldEffect.hs 50;" f +activateDetonator src/Dodge/Creature/Impulse/UseItem.hs 81;" f activeTargetCursorPic src/Dodge/Targeting/Draw.hs 24;" f addArmour src/Dodge/Creature.hs 83;" f addBranchAt src/Dodge/Tree/GenerateStructure.hs 18;" f @@ -3346,7 +3354,7 @@ addSideEffect src/Dodge/Concurrent.hs 30;" f addSouthPillars src/Dodge/Room/LongDoor.hs 88;" f addTermSignal src/Dodge/Event/Input.hs 34;" f addToTrunk src/TreeHelp.hs 156;" f -addWarningTerminal src/Dodge/Room/Warning.hs 37;" f +addWarningTerminal src/Dodge/Room/Warning.hs 35;" f addZ src/Geometry/Vector3D.hs 89;" f adjustIMZone src/Dodge/Base.hs 77;" f advanceScrollAmount src/Dodge/Update.hs 418;" f @@ -3365,7 +3373,7 @@ airlockDoor src/Dodge/Room/Airlock.hs 51;" f airlockDoubleDoor src/Dodge/Room/Airlock.hs 54;" f airlockSimple src/Dodge/Room/Airlock.hs 66;" f airlockZ src/Dodge/Room/Airlock.hs 91;" f -allInvLocs src/Dodge/Item/Grammar.hs 297;" f +allInvLocs src/Dodge/Item/Grammar.hs 298;" f allVisibleWalls src/Dodge/Base/Collide.hs 131;" f alongSegBy src/Geometry.hs 43;" f alteRifle src/Dodge/Item/Held/Cane.hs 65;" f @@ -3384,7 +3392,7 @@ applyCME src/Dodge/HeldUse.hs 145;" 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 +applyGravityPU src/Dodge/Projectile/Update.hs 57;" f applyIndividualDamage src/Dodge/Creature/Damage.hs 49;" f applyIndividualDamage' src/Dodge/Creature/Damage.hs 52;" f applyInvLock src/Dodge/HeldUse.hs 160;" f @@ -3439,7 +3447,7 @@ attachTree src/Dodge/Tree/Compose.hs 38;" f attentionViewPoint src/Dodge/Creature/ReaderUpdate.hs 66;" f attribSize src/Shader/Compile.hs 306;" f augInvDirectSelect src/Dodge/Inventory.hs 179;" f -augmentedHUD src/Dodge/Item/Scope.hs 81;" f +augmentedHUD src/Dodge/Item/Scope.hs 82;" f autoAmr src/Dodge/Item/Held/Rod.hs 49;" f autoBS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 368;" f autoCrit src/Dodge/Creature/AutoCrit.hs 12;" f @@ -3466,7 +3474,7 @@ barPP src/Dodge/Room/Foreground.hs 236;" f barrel src/Dodge/Creature/Inanimate.hs 17;" f baseAMRShape src/Dodge/Item/Draw/SPic.hs 391;" f baseBlockPane src/Dodge/Placement/Instance/Wall.hs 86;" f -baseCI src/Dodge/Item/Grammar.hs 172;" f +baseCI src/Dodge/Item/Grammar.hs 173;" f baseCaneShape src/Dodge/Item/Draw/SPic.hs 298;" f baseDebris src/Dodge/Block/Debris.hs 122;" f baseFloorTileSize src/Tile.hs 45;" f @@ -3545,8 +3553,8 @@ bufferPokedVBO src/Shader/Bind.hs 19;" f bufferShaderLayers src/Shader/Bind.hs 36;" f bulletBeltBracer src/Dodge/Item/Equipment.hs 110;" f bulletBeltPack src/Dodge/Item/Equipment.hs 92;" f -bulletModule src/Dodge/Item/Scope.hs 64;" f -bulletPayloadModule src/Dodge/Item/Scope.hs 78;" f +bulletModule src/Dodge/Item/Scope.hs 65;" f +bulletPayloadModule src/Dodge/Item/Scope.hs 79;" f bulletSynthesizer src/Dodge/Item/Ammo.hs 122;" f bulletWeapons src/Dodge/Combine/Combinations.hs 247;" f burstRifle src/Dodge/Item/Held/Cane.hs 83;" f @@ -3557,6 +3565,7 @@ calcSmoothScroll src/Dodge/SmoothScroll.hs 7;" f calcTexCoord src/Tile.hs 19;" f canSee src/Dodge/Base/Collide.hs 232;" f canSeeIndirect src/Dodge/Base/Collide.hs 239;" f +cancelExamineInventory src/Dodge/ItEffect.hs 24;" f cardEightVec src/Dodge/Base/CardinalPoint.hs 16;" f cardList src/Dodge/Base/CardinalPoint.hs 6;" f cardVec src/Dodge/Base/CardinalPoint.hs 9;" f @@ -3940,7 +3949,7 @@ denormalEdges src/Polyhedra.hs 136;" f destroyAt src/Dodge/Bullet.hs 211;" f destroyBlock src/Dodge/Block.hs 56;" f destroyDoor src/Dodge/Block.hs 83;" f -destroyInvItem src/Dodge/Inventory.hs 40;" f +destroyInvItem src/Dodge/Inventory.hs 39;" f destroyLS src/Dodge/LightSource.hs 32;" f destroyLSFlashAt src/Dodge/LightSource.hs 42;" f destroyMachine src/Dodge/Machine/Destroy.hs 12;" f @@ -3948,7 +3957,7 @@ destroyMatS src/Dodge/Material/Sound.hs 7;" f destroyMcType src/Dodge/Machine/Destroy.hs 21;" f destroyMount src/Dodge/Block.hs 102;" f destroyMounts src/Dodge/Block.hs 99;" f -destroyProjectile src/Dodge/Projectile/Update.hs 139;" f +destroyProjectile src/Dodge/Projectile/Update.hs 143;" f detV src/Geometry/Vector.hs 93;" f detector src/Dodge/Item/Held/Utility.hs 41;" f detectorColor src/Dodge/Item/Draw/SPic.hs 437;" f @@ -3973,7 +3982,7 @@ displayControls src/Dodge/Menu.hs 206;" f displayFrameTicks src/Dodge/Render/Picture.hs 39;" f displayFreeSlots src/Dodge/DisplayInventory.hs 225;" f displayIndents src/Dodge/DisplayInventory.hs 123;" f -displayPulse src/Dodge/Item/Display.hs 118;" f +displayPulse src/Dodge/Item/Display.hs 119;" f displaySectionsSizes src/Dodge/DisplayInventory.hs 118;" f displayTerminalLineString src/Dodge/Update.hs 447;" f dist src/Geometry/Vector.hs 179;" f @@ -3990,7 +3999,7 @@ doAnyEquipmentEffect src/Dodge/Creature/State.hs 187;" f doArcStep src/Dodge/Tesla.hs 128;" f doArcStep src/Dodge/Tesla/Arc.hs 135;" f doBackspace src/Dodge/Update/Input/Text.hs 31;" f -doBlBl src/Dodge/WorldEffect.hs 91;" f +doBlBl src/Dodge/BlBl.hs 5;" f doBlSh src/Dodge/Block/Draw.hs 14;" f doBounce src/Dodge/Base/Collide.hs 69;" f doButtonEvent src/Dodge/Button/Event.hs 9;" f @@ -4005,8 +4014,8 @@ doCrWdImp src/Dodge/CreatureEffect.hs 16;" f doCrWdWd src/Dodge/CreatureEffect.hs 20;" f doDamage src/Dodge/Creature/State.hs 136;" f doDamagesFL src/Dodge/Flame.hs 57;" f -doDeathToggle src/Dodge/WorldEffect.hs 88;" f -doDeathTriggers src/Dodge/WorldEffect.hs 83;" f +doDeathToggle src/Dodge/WorldEffect.hs 89;" f +doDeathTriggers src/Dodge/WorldEffect.hs 84;" f doDebugTest src/Dodge/Update/Input/DebugTest.hs 22;" f doDebugTest2 src/Dodge/Update/Input/DebugTest.hs 37;" f doDebugTestF10 src/Dodge/Update/Input/DebugTest.hs 62;" f @@ -4021,14 +4030,14 @@ 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 560;" f -doGravityPU src/Dodge/Projectile/Update.hs 50;" f +doGravityPU src/Dodge/Projectile/Update.hs 51;" f doHeldUseEffect src/Dodge/HeldUse.hs 110;" f doInPlacements src/Dodge/Layout.hs 92;" f doIndividualPlacements src/Dodge/Layout.hs 117;" f doInputScreenInput src/Dodge/Update/Input/ScreenLayer.hs 26;" f doIntImp src/Dodge/CreatureEffect.hs 24;" f -doInvEffect src/Dodge/ItEffect.hs 10;" f -doItCrWdWd src/Dodge/WorldEffect.hs 45;" f +doInvEffect src/Dodge/ItEffect.hs 12;" f +doItCrWdWd src/Dodge/WorldEffect.hs 46;" f doItemTimeScroll src/Dodge/Update.hs 200;" f doItmCrWdWd src/Dodge/Euse.hs 27;" f doLoop src/Loop.hs 60;" f @@ -4053,26 +4062,26 @@ 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 90;" f +doScopeZoom src/Dodge/Update/Scroll.hs 83;" f doSectionSize src/Dodge/DisplayInventory.hs 247;" f doSideEffects appDodge/Main.hs 120;" f doStep src/Dodge/ArcStep.hs 9;" f doStrategyActions src/Dodge/Creature/ReaderUpdate.hs 164;" f -doTerminalBootProgram src/Dodge/WorldEffect.hs 97;" f +doTerminalBootProgram src/Dodge/WorldEffect.hs 92;" f doTerminalCommandEffect src/Dodge/Terminal.hs 135;" f doTestDrawing src/Dodge/Render.hs 42;" f doTextInputOver src/Dodge/Update/Input/Text.hs 15;" f doTextInputOverUniverse src/Dodge/Update/Input/Text.hs 12;" f -doThrust src/Dodge/Projectile/Update.hs 149;" f +doThrust src/Dodge/Projectile/Update.hs 153;" f doTimeScroll src/Dodge/Update.hs 205;" f doTmTm src/Dodge/TmTm.hs 6;" f -doTmWdWd src/Dodge/WorldEffect.hs 102;" f +doTmWdWd src/Dodge/WorldEffect.hs 97;" f doWallRotate src/Dodge/Update/Camera.hs 170;" f doWdBl src/Dodge/WorldBool.hs 10;" f 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 26;" f +doWdWd src/Dodge/WorldEffect.hs 27;" f doWeaponRepetitions src/Dodge/HeldUse.hs 134;" f doWorldEvents src/Dodge/Update.hs 429;" f doWorldPos src/Dodge/WorldPos.hs 7;" f @@ -4214,8 +4223,8 @@ drawZoneCol src/Dodge/Debug/Picture.hs 142;" f drawZoneNearPointCursor src/Dodge/Debug/Picture.hs 279;" f droneLauncher src/Dodge/Item/Weapon/Drone.hs 11;" f dropByState src/Dodge/Creature/State.hs 130;" f -dropExcept src/Dodge/Creature/Action.hs 171;" f -dropItem src/Dodge/Creature/Action.hs 177;" f +dropExcept src/Dodge/Creature/Action.hs 167;" f +dropItem src/Dodge/Creature/Action.hs 173;" f drumMag src/Dodge/Item/Ammo.hs 42;" f dtIL src/Dodge/DoubleTree.hs 75;" f dtToAdjRootParent src/Dodge/DoubleTree.hs 126;" f @@ -4230,7 +4239,7 @@ dummyMenuOption src/Dodge/Menu/Option.hs 75;" f ebFlicker src/Dodge/EnergyBall.hs 98;" f edgeFormatting src/Dodge/Combine/Graph.hs 130;" f edgeToPic src/Dodge/Debug/Picture.hs 431;" f -effectWhileAttached src/Dodge/ItEffect.hs 24;" f +effectWhileAttached src/Dodge/ItEffect.hs 35;" f ejectS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 496;" f elecCrackleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 380;" f elephantGun src/Dodge/Item/Held/Rod.hs 36;" f @@ -4270,7 +4279,7 @@ expandPolyCorners src/Dodge/LevelGen/StaticWalls.hs 103;" f expandToSquare src/Dodge/LevelGen/StaticWalls/Deprecated.hs 83;" f expireAndDamage src/Dodge/Bullet.hs 195;" f expireAndDamageFL src/Dodge/Flame.hs 47;" f -explodeShell src/Dodge/Projectile/Update.hs 226;" f +explodeShell src/Dodge/Projectile/Update.hs 233;" f explosionS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 416;" f explosiveBarrel src/Dodge/Creature/Inanimate.hs 29;" f extTrigLitPos src/Dodge/Placement/Instance/Button.hs 84;" f @@ -4396,8 +4405,8 @@ geometryTests test/Spec.hs 17;" f geometryUnitTests test/Spec.hs 22;" f geqConstr src/SameConstr.hs 21;" f getAmmoLinks src/Dodge/Item/Grammar.hs 126;" f -getArguments src/Dodge/Update/Scroll.hs 215;" f -getArguments' src/Dodge/Update/Scroll.hs 203;" f +getArguments src/Dodge/Update/Scroll.hs 208;" f +getArguments' src/Dodge/Update/Scroll.hs 196;" f getAutoSpringLinks src/Dodge/Item/Grammar.hs 106;" f getAvailableListLines src/Dodge/SelectionList.hs 10;" f getBulletType src/Dodge/HeldUse.hs 436;" f @@ -4428,7 +4437,7 @@ getTiles src/Dodge/Layout.hs 208;" f getViewpoints src/Dodge/Viewpoints.hs 29;" f getWallSPic src/Dodge/Render/Walls.hs 51;" f getWindowSize src/Dodge/WindowSize.hs 5;" f -gimbal src/Dodge/Item/Scope.hs 98;" f +gimbal src/Dodge/Item/Scope.hs 99;" f girder src/Dodge/Room/Foreground.hs 211;" f girderV src/Dodge/Room/Foreground.hs 182;" f girderV' src/Dodge/Room/Foreground.hs 157;" f @@ -4465,14 +4474,14 @@ gridPoints'' src/Grid.hs 74;" f gridPointsOff src/Grid.hs 62;" f groupSplitItemAmounts src/Dodge/Combine.hs 51;" f gruntS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 512;" f -guardDisconnectedID src/Dodge/Update/Scroll.hs 136;" f +guardDisconnectedID src/Dodge/Update/Scroll.hs 129;" f gut1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 546;" f gut2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 394;" f gut3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 374;" f gut4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 354;" f gut5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 518;" f gut6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 484;" f -gyroscope src/Dodge/Item/Scope.hs 101;" f +gyroscope src/Dodge/Item/Scope.hs 102;" f hackOutline src/Dodge/Render/Outline.hs 5;" f halfHeight src/Dodge/Base/Window.hs 48;" f halfWidth src/Dodge/Base/Window.hs 48;" f @@ -4525,7 +4534,7 @@ hitEffFromBul src/Dodge/Bullet.hs 158;" f hitS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 400;" f holdForm src/Dodge/Creature/Boid.hs 136;" f holsterWeapon src/Dodge/Creature/Volition.hs 14;" f -homingModule src/Dodge/Item/Scope.hs 42;" f +homingModule src/Dodge/Item/Scope.hs 43;" f horPipe src/Dodge/Placement/Instance/Pipe.hs 9;" f hotkeyToScancode src/Dodge/Creature/YourControl.hs 65;" f hotkeyToString src/Dodge/Inventory/SelectionList.hs 42;" f @@ -4597,19 +4606,19 @@ intersectSegSegTest src/Geometry/Intersect.hs 122;" f 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 51;" f -introScanDisplay src/Dodge/Item/Display.hs 113;" f +introScan src/Dodge/Item/Scope.hs 52;" f +introScanDisplay src/Dodge/Item/Display.hs 114;" f intsToPos src/Dodge/Room/Modify/Girder.hs 160;" f -invAdj src/Dodge/Item/Grammar.hs 278;" f +invAdj src/Dodge/Item/Grammar.hs 279;" f invCursorParams src/Dodge/ListDisplayParams.hs 36;" f invDP src/Dodge/ListDisplayParams.hs 30;" f invDimColor src/Dodge/DisplayInventory.hs 219;" f invHead src/Dodge/Render/HUD.hs 392;" f invItemLocUpdate src/Dodge/Creature/State.hs 176;" f -invLDT src/Dodge/Item/Grammar.hs 258;" f +invLDT src/Dodge/Item/Grammar.hs 259;" f invRootItemEffs src/Dodge/Creature/State.hs 169;" f -invRootMap src/Dodge/Item/Grammar.hs 267;" f -invRootTrees src/Dodge/Item/Grammar.hs 288;" f +invRootMap src/Dodge/Item/Grammar.hs 268;" f +invRootTrees src/Dodge/Item/Grammar.hs 289;" f invSelectionItem src/Dodge/Inventory/SelectionList.hs 22;" f invShiftPointBy src/Dodge/ShiftPoint.hs 8;" f invSideEff src/Dodge/Creature/State.hs 163;" f @@ -4653,7 +4662,7 @@ isoMatrix src/MatrixHelper.hs 30;" f 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 175;" f +itemBaseConnections src/Dodge/Item/Grammar.hs 176;" f itemBaseName src/Dodge/Item/Display.hs 56;" f itemBlips src/Dodge/RadarSweep.hs 75;" f itemCombinations src/Dodge/Combine/Combinations.hs 55;" f @@ -4673,8 +4682,8 @@ itemNumberDisplay src/Dodge/Item/Display.hs 95;" 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 -itemScanner src/Dodge/Item/Scope.hs 57;" f -itemScroll src/Dodge/Update/Scroll.hs 66;" f +itemScanner src/Dodge/Item/Scope.hs 58;" f +itemScroll src/Dodge/Update/Scroll.hs 59;" f itemString src/Dodge/Item/Display.hs 52;" f itemToBreakLists src/Dodge/Item/Grammar.hs 59;" f itemToFunction src/Dodge/Item/Grammar.hs 132;" f @@ -4688,8 +4697,8 @@ itmSpaceInfo src/Dodge/Item/Info.hs 18;" f itmUsageInfo src/Dodge/Item/Info.hs 186;" f jShape src/Dodge/Placement/Instance/LightSource.hs 85;" f jaggedShape src/Dodge/Block/Debris.hs 191;" f -joinItemsInList src/Dodge/Item/Grammar.hs 248;" f -joystick src/Dodge/Item/Scope.hs 94;" f +joinItemsInList src/Dodge/Item/Grammar.hs 249;" f +joystick src/Dodge/Item/Scope.hs 95;" f jps0' src/Dodge/LevelGen/PlacementHelper.hs 60;" f jps0PushPS src/Dodge/LevelGen/PlacementHelper.hs 63;" f jsps src/Dodge/LevelGen/PlacementHelper.hs 36;" f @@ -4723,7 +4732,7 @@ lasTunnel src/Dodge/Room/LasTurret.hs 125;" f lasTunnelRunPast src/Dodge/Room/LasTurret.hs 166;" f lasTurret src/Dodge/Placement/Instance/Turret.hs 38;" f laser src/Dodge/Item/Held/BatteryGuns.hs 48;" f -laserLinkTest src/Dodge/Item/Grammar.hs 181;" f +laserLinkTest src/Dodge/Item/Grammar.hs 182;" f lastMap src/Dodge/DoubleTree.hs 174;" f launcherCrit src/Dodge/Creature/LauncherCrit.hs 12;" f layoutLevelFromSeed src/Dodge/LevelGen.hs 47;" f @@ -4738,9 +4747,9 @@ ldtToIM src/Dodge/DoubleTree.hs 143;" f ldtToIndentList src/Dodge/DoubleTree.hs 146;" f ldtToLoc src/Dodge/DoubleTree.hs 187;" f left src/DoubleStack.hs 16;" f -leftIsParentCombine src/Dodge/Item/Grammar.hs 220;" f +leftIsParentCombine src/Dodge/Item/Grammar.hs 221;" f leftPad src/Padding.hs 14;" f -leftRightCombine src/Dodge/Item/Grammar.hs 234;" f +leftRightCombine src/Dodge/Item/Grammar.hs 235;" f legsSPic src/Dodge/Item/Draw/SPic.hs 461;" f liShape src/Dodge/Placement/Instance/LightSource.hs 98;" f light src/Color.hs 104;" f @@ -4755,7 +4764,7 @@ lineCol src/Picture/Base.hs 230;" f lineGeom src/Dodge/Base.hs 39;" f lineOnScreenCone src/Dodge/Debug/Picture.hs 60;" f lineOrth src/Dodge/Creature/Boid.hs 125;" f -lineOutputTerminal src/Dodge/WorldEffect.hs 71;" f +lineOutputTerminal src/Dodge/WorldEffect.hs 72;" f lineSplit src/Justify.hs 26;" f lineThick src/Picture/Base.hs 234;" f lineUp src/Dodge/Creature/Boid.hs 147;" f @@ -4768,8 +4777,8 @@ listCursorChooseBorderScale src/Dodge/Render/List.hs 135;" f listGuard src/Dodge/Creature/ReaderUpdate.hs 188;" f listSelectionColorPicture src/Dodge/DisplayInventory.hs 347;" f litCorridor90 src/Dodge/Room/RoadBlock.hs 26;" f -llleft src/Dodge/Item/Grammar.hs 184;" f -llright src/Dodge/Item/Grammar.hs 190;" f +llleft src/Dodge/Item/Grammar.hs 185;" f +llright src/Dodge/Item/Grammar.hs 191;" f lmt src/MatrixHelper.hs 43;" f lnkBothAnd src/Dodge/Room/Procedural.hs 121;" f lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 381;" f @@ -4901,11 +4910,11 @@ maybeClearPath src/Dodge/Block.hs 75;" f maybeClearPaths src/Dodge/Block.hs 72;" f maybeDestroyBlock src/Dodge/Wall/Damage.hs 26;" f maybeDestroyDoor src/Dodge/Wall/Damage.hs 31;" f -maybeExitCombine src/Dodge/Update/Input/InGame.hs 618;" f +maybeExitCombine src/Dodge/Update/Input/InGame.hs 609;" f maybeOpenTerminal src/Dodge/Update.hs 122;" f maybeReadFile src/Dodge/LoadSeed.hs 10;" f maybeTakeOne src/RandomHelp.hs 116;" f -maybeWarmupStatus src/Dodge/Item/Display.hs 124;" f +maybeWarmupStatus src/Dodge/Item/Display.hs 125;" 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 @@ -4989,14 +4998,14 @@ mouseClickOptionsList src/Dodge/Update/Input/ScreenLayer.hs 58;" 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 121;" f +moveCombineSel src/Dodge/Update/Scroll.hs 114;" 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 movePenBullet src/Dodge/Bullet.hs 221;" f moveRoomBy src/Dodge/Room/Link.hs 53;" f moveShockwave src/Dodge/Shockwave/Update.hs 17;" f -moveToSideFirstOutLink src/Dodge/Room/Warning.hs 56;" f +moveToSideFirstOutLink src/Dodge/Room/Warning.hs 54;" f moveWall src/Dodge/Wall/Move.hs 29;" f moveWallID src/Dodge/Wall/Move.hs 24;" f moveWallIDToward src/Dodge/Wall/Move.hs 47;" f @@ -5051,7 +5060,7 @@ normalizeAnglePi src/Dodge/Base.hs 132;" 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 206;" f +nullCommand src/Dodge/Update/Scroll.hs 199;" f numColor src/Color.hs 128;" f numDrawableVertices src/Shader/Parameters.hs 34;" f numGLushort src/Shader/Parameters.hs 29;" f @@ -5131,11 +5140,11 @@ pedestalRoom src/Dodge/Room/Containing.hs 50;" f penThing src/Dodge/Bullet.hs 233;" f perMat src/MatrixHelper.hs 49;" f perceptionUpdate src/Dodge/Creature/Perception.hs 22;" f -performAction src/Dodge/Creature/Action.hs 96;" f -performActions src/Dodge/Creature/Action.hs 42;" f -performAimAt src/Dodge/Creature/Action.hs 52;" f -performPathTo src/Dodge/Creature/Action.hs 65;" f -performTurnToA src/Dodge/Creature/Action.hs 83;" f +performAction src/Dodge/Creature/Action.hs 92;" f +performActions src/Dodge/Creature/Action.hs 38;" f +performAimAt src/Dodge/Creature/Action.hs 48;" f +performPathTo src/Dodge/Creature/Action.hs 61;" f +performTurnToA src/Dodge/Creature/Action.hs 79;" f perspectiveMatrixb src/MatrixHelper.hs 11;" f pesNearCirc src/Dodge/Zoning/Pathing.hs 43;" f pesNearPoint src/Dodge/Zoning/Pathing.hs 33;" f @@ -5156,8 +5165,8 @@ pipe src/Dodge/Item/Craftable.hs 32;" f pistol src/Dodge/Item/Held/Stick.hs 42;" f pistolCrit src/Dodge/Creature/PistolCrit.hs 12;" f pistolerRoom src/Dodge/Room/Room.hs 321;" f -pjMovement src/Dodge/Projectile/Update.hs 209;" f -pjRemoteSetDirection src/Dodge/Projectile/Update.hs 194;" f +pjMovement src/Dodge/Projectile/Update.hs 213;" f +pjRemoteSetDirection src/Dodge/Projectile/Update.hs 198;" f plBlock src/Dodge/Placement/PlaceSpot/Block.hs 18;" f plDoor src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 22;" f plLineBlock src/Dodge/Placement/PlaceSpot/Block.hs 50;" f @@ -5420,8 +5429,8 @@ reload1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 448;" f reloadLevelStart src/Dodge/Save.hs 71;" f reloadS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 446;" f rememberSounds src/Dodge/Creature/Perception.hs 177;" f -remoteDetonator src/Dodge/Item/Scope.hs 89;" f -remoteScreen src/Dodge/Item/Scope.hs 84;" f +remoteDetonator src/Dodge/Item/Scope.hs 90;" f +remoteScreen src/Dodge/Item/Scope.hs 85;" f removeAmmoFromMag src/Dodge/HeldUse.hs 423;" f removeDot src/ShortShow.hs 29;" f removeInverseWalls src/Dodge/LevelGen/StaticWalls.hs 25;" f @@ -5466,7 +5475,7 @@ rezText' src/Dodge/Story.hs 17;" f rhombus src/Polyhedra.hs 72;" f rifle src/Dodge/Item/Held/Cane.hs 55;" f right src/DoubleStack.hs 16;" f -rightIsParentCombine src/Dodge/Item/Grammar.hs 227;" f +rightIsParentCombine src/Dodge/Item/Grammar.hs 228;" f rightPad src/Padding.hs 22;" f rightPadNoSquash src/Padding.hs 26;" f rlPosDir src/Dodge/RoomLink.hs 94;" f @@ -5494,7 +5503,7 @@ roomShuriken src/Dodge/Room/Boss.hs 121;" f roomTwistCross src/Dodge/Room/Boss.hs 152;" f roomsContaining src/Dodge/Room/Containing.hs 20;" f roomsContaining' src/Dodge/Room/Containing.hs 25;" f -rootNotrootEff src/Dodge/ItEffect.hs 19;" f +rootNotrootEff src/Dodge/ItEffect.hs 30;" f rose src/Color.hs 20;" f rotD src/Padding.hs 47;" f rotListAt src/Padding.hs 52;" f @@ -5564,10 +5573,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 198;" f -scrollCommands src/Dodge/Update/Scroll.hs 195;" f +scrollCommandStrings src/Dodge/Update/Scroll.hs 191;" f +scrollCommands src/Dodge/Update/Scroll.hs 188;" f scrollDebugInfoInt src/Dodge/Debug.hs 71;" f -scrollRBOption src/Dodge/Update/Scroll.hs 172;" f +scrollRBOption src/Dodge/Update/Scroll.hs 165;" f scrollSelectionSections src/Dodge/SelectionSections.hs 26;" f scrollTimeBack src/Dodge/Update.hs 215;" f scrollTimeForward src/Dodge/Update.hs 237;" f @@ -5597,7 +5606,7 @@ selSecSelSize src/Dodge/SelectionSections.hs 180;" f selSecYint src/Dodge/SelectionSections.hs 189;" f selectCreatureDebugItem src/Dodge/Debug.hs 55;" f selectUse src/Dodge/SelectUse.hs 11;" f -selectedItemScroll src/Dodge/Update/Scroll.hs 60;" f +selectedItemScroll src/Dodge/Update/Scroll.hs 53;" f sensAboveDoor src/Dodge/Room/SensorDoor.hs 63;" f sensInsideDoor src/Dodge/Room/SensorDoor.hs 69;" f senseDamage src/Dodge/Machine/Update.hs 154;" f @@ -5624,7 +5633,7 @@ setInvPosFromSS src/Dodge/Inventory/Location.hs 82;" f setLayer src/Picture/Base.hs 139;" f setLinkType src/Dodge/RoomLink.hs 60;" f setLinkTypePD src/Dodge/RoomLink.hs 67;" f -setMinInvSize src/Dodge/Creature/Action.hs 149;" f +setMinInvSize src/Dodge/Creature/Action.hs 145;" f setMusicVolume src/Sound.hs 161;" f setMvPos src/Dodge/Creature/ReaderUpdate.hs 51;" f setOldPos src/Dodge/Update.hs 471;" f @@ -5672,9 +5681,9 @@ shardShape src/Dodge/Block/Debris.hs 181;" f shatterGun src/Dodge/Item/Held/Weapons.hs 8;" f shatterGunSPic src/Dodge/Item/Draw/SPic.hs 287;" f shatterWall src/Dodge/Item/Weapon/Shatter.hs 26;" f -shellCollisionCheck src/Dodge/Projectile/Update.hs 85;" f +shellCollisionCheck src/Dodge/Projectile/Update.hs 86;" f shellMag src/Dodge/Item/Ammo.hs 61;" f -shellModule src/Dodge/Item/Scope.hs 70;" f +shellModule src/Dodge/Item/Scope.hs 71;" f shellShape src/Dodge/Projectile/Draw.hs 34;" f shellTrailCloud src/Dodge/WorldEvent/Cloud.hs 65;" f shieldWall src/Dodge/Euse.hs 87;" f @@ -5764,7 +5773,7 @@ smallPillar src/Dodge/Room/Pillar.hs 32;" f smallRoom src/Dodge/Room/RunPast.hs 31;" f smg src/Dodge/Item/Held/Stick.hs 72;" f smokeCloudAt src/Dodge/WorldEvent/Cloud.hs 41;" f -smokeReducer src/Dodge/Item/Scope.hs 107;" f +smokeReducer src/Dodge/Item/Scope.hs 108;" f sndV2 src/Geometry/Data.hs 52;" f sniperRifle src/Dodge/Item/Held/Rod.hs 54;" f someCrits src/Dodge/LockAndKey.hs 120;" f @@ -5813,7 +5822,7 @@ spreadCenter src/Dodge/Base.hs 165;" f spreadFromCenter src/Dodge/Base.hs 154;" f spreadGunCrit src/Dodge/Creature/SpreadGunCrit.hs 12;" f spreadOut src/Dodge/Creature/Boid.hs 157;" f -springLinkTest src/Dodge/Item/Grammar.hs 202;" f +springLinkTest src/Dodge/Item/Grammar.hs 203;" f sps src/Dodge/LevelGen/PlacementHelper.hs 30;" f sps0 src/Dodge/LevelGen/PlacementHelper.hs 42;" f square src/Geometry/Polygon.hs 46;" f @@ -5850,7 +5859,7 @@ startRoom src/Dodge/Room/Start.hs 52;" f startSeedGame src/Dodge/StartNewGame.hs 20;" f startSeedGameConc src/Dodge/StartNewGame.hs 27;" f statsModifier src/Dodge/Creature/Info.hs 14;" f -stickyMod src/Dodge/Item/Scope.hs 45;" f +stickyMod src/Dodge/Item/Scope.hs 46;" f stone1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 404;" f stone2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 500;" f stone3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 428;" f @@ -5869,8 +5878,8 @@ strideRot src/Dodge/Item/HeldOffset.hs 84;" f stringToList src/Picture/Base.hs 313;" f stringToListGrad src/Picture/Text.hs 12;" f stripZ src/Geometry/Vector3D.hs 97;" f -structureToPotentialFunction src/Dodge/Item/Grammar.hs 162;" f -structureUseAtLoc src/Dodge/Creature/Impulse/UseItem.hs 69;" f +structureToPotentialFunction src/Dodge/Item/Grammar.hs 163;" f +structureUseAtLoc src/Dodge/Creature/Impulse/UseItem.hs 75;" f subInvX src/Dodge/ListDisplayParams.hs 48;" f subMap src/TreeHelp.hs 118;" f subZipWith src/Dodge/Placement/Instance/Wall.hs 115;" f @@ -5910,7 +5919,7 @@ targetYouCognizant src/Dodge/Creature/ChooseTarget.hs 13;" f targetYouLOS src/Dodge/Creature/ChooseTarget.hs 7;" f targetYouWhenCognizant src/Dodge/Creature/ReaderUpdate.hs 194;" f targetYouWhenCognizant src/Dodge/Creature/SetTarget.hs 9;" f -targetingScope src/Dodge/Item/Scope.hs 32;" f +targetingScope src/Dodge/Item/Scope.hs 33;" f telRoomLev src/Dodge/Room/Teleport.hs 14;" f teleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 396;" f termButton src/Dodge/Placement/Instance/Terminal.hs 51;" f @@ -5922,7 +5931,7 @@ 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 141;" f +terminalWheelEvent src/Dodge/Update/Scroll.hs 134;" f teslaGun src/Dodge/Item/Held/BatteryGuns.hs 21;" f teslaGunPic src/Dodge/Item/Draw/SPic.hs 394;" f teslaParams src/Dodge/Item/Held/BatteryGuns.hs 37;" f @@ -5974,7 +5983,7 @@ toClosestMultiple src/HelpNum.hs 3;" f toColor8 src/Color.hs 148;" f toFloatVAs src/Shader/Compile.hs 211;" f toLabel src/Dodge/Cleat.hs 16;" f -toLasgunUpdate src/Dodge/Item/Grammar.hs 195;" f +toLasgunUpdate src/Dodge/Item/Grammar.hs 196;" f toMultiset src/Multiset.hs 64;" f toOnward src/Dodge/Tree/Compose.hs 101;" f toTopLeft src/Dodge/Render/List.hs 219;" f @@ -5983,10 +5992,10 @@ toV3 src/Geometry/Data.hs 38;" f toV4 src/Geometry/Data.hs 40;" f toggleCombineInv src/Dodge/DisplayInventory.hs 35;" f toggleCommand src/Dodge/Terminal.hs 196;" f -toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 83;" f +toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 89;" f +toggleExamineInv src/Dodge/ToggleExamine.hs 5;" f toggleJust src/MaybeHelp.hs 41;" f toggleMap src/Dodge/Update/Input/InGame.hs 586;" f -toggleTweakInv src/Dodge/Update/Input/InGame.hs 599;" f togglesToEffects src/Dodge/Terminal.hs 248;" f tone440S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 482;" f tone440sawtoothS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 452;" f @@ -5997,7 +6006,7 @@ topPrismIndices src/Shader/Poke.hs 410;" f topTestPart src/Dodge/TestString.hs 72;" f torch src/Dodge/Item/Held/Utility.hs 33;" f torchShape src/Dodge/Item/Draw/SPic.hs 256;" f -torqueCr src/Dodge/WorldEffect.hs 64;" f +torqueCr src/Dodge/WorldEffect.hs 65;" 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 @@ -6056,7 +6065,7 @@ truncate src/Polyhedra/Geodesic.hs 38;" f trunkDepth src/TreeHelp.hs 161;" f tryAttachItems src/Dodge/Item/Grammar.hs 22;" f tryClickUse src/Dodge/Creature/YourControl.hs 162;" f -tryCombine src/Dodge/Update/Input/InGame.hs 608;" f +tryCombine src/Dodge/Update/Input/InGame.hs 599;" f tryDropSelected src/Dodge/Update/Input/InGame.hs 123;" f tryGetChannel src/Sound.hs 96;" f tryGetRootAttachedFromInvID src/Dodge/Inventory/Location.hs 20;" f @@ -6068,8 +6077,8 @@ tryPutFloorItemIDInInv src/Dodge/Inventory/Add.hs 26;" f tryPutItemInInv src/Dodge/Inventory/Add.hs 42;" f tryPutItemInInvAt src/Dodge/Inventory/Add.hs 32;" f trySeedFromClipboard src/Dodge/Menu.hs 88;" f -tryShellBounce src/Dodge/Projectile/Update.hs 105;" f -trySpinByCID src/Dodge/Projectile/Update.hs 176;" f +tryShellBounce src/Dodge/Projectile/Update.hs 106;" f +trySpinByCID src/Dodge/Projectile/Update.hs 180;" f trySynthBullet src/Dodge/Creature/State.hs 201;" f tryUseParent src/Dodge/Creature/State.hs 194;" f turnTo src/Dodge/Movement/Turn.hs 4;" f @@ -6088,7 +6097,7 @@ twoStepS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 444;" f twoStepSlowS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 436;" f ubyteSize src/Shader/Parameters.hs 13;" f uncurryV src/Geometry/Data.hs 46;" f -underBarrelSlot src/Dodge/Item/Scope.hs 104;" f +underBarrelSlot src/Dodge/Item/Scope.hs 105;" f unfoldrMID src/MonadHelp.hs 33;" f unitVectorAtAngle src/Geometry/Vector.hs 100;" f unlockInv src/Dodge/Inventory/Lock.hs 12;" f @@ -6187,8 +6196,8 @@ updateRadarSweeps src/Dodge/Update.hs 567;" 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 76;" f -updateScopeZoom' src/Dodge/Update/Scroll.hs 81;" f +updateScopeZoom src/Dodge/Update/Scroll.hs 69;" f +updateScopeZoom' src/Dodge/Update/Scroll.hs 74;" f updateScrollTestValue src/Dodge/ScrollValue.hs 6;" f updateSection src/Dodge/DisplayInventory.hs 300;" f updateSectionsPositioning src/Dodge/DisplayInventory.hs 273;" f @@ -6249,7 +6258,7 @@ 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 308;" f -useLocation src/Dodge/Creature/Impulse/UseItem.hs 57;" f +useLocation src/Dodge/Creature/Impulse/UseItem.hs 63;" f useMagShield src/Dodge/Euse.hs 46;" f useNormalCamera src/Dodge/Camera.hs 6;" f usePayload src/Dodge/Payload.hs 17;" f @@ -6305,7 +6314,7 @@ wallIsZeroLength src/Dodge/LevelGen/StaticWalls.hs 179;" f wallLine src/Dodge/Placement/Instance/Wall.hs 71;" f wallsFromRooms src/Dodge/Layout.hs 146;" f wallsToDraw src/Dodge/Render/Walls.hs 17;" f -warningRooms src/Dodge/Room/Warning.hs 29;" f +warningRooms src/Dodge/Room/Warning.hs 27;" f wasdAim src/Dodge/Creature/YourControl.hs 109;" f wasdDir src/Dodge/WASD.hs 17;" f wasdM src/Dodge/WASD.hs 9;" f @@ -6413,7 +6422,7 @@ zonesAroundPoint src/Dodge/Zoning/Base.hs 89;" f zonesExtract src/Dodge/Zoning/Base.hs 54;" f zoomFloatingCamera src/Dodge/Update/Camera.hs 68;" f zoomFromItem src/Dodge/Update/Camera.hs 181;" f -zoomInLongGun src/Dodge/Update/Scroll.hs 104;" f -zoomOutLongGun src/Dodge/Update/Scroll.hs 112;" f -zoomScope src/Dodge/Item/Scope.hs 27;" f -zoomSpeed src/Dodge/Update/Scroll.hs 101;" f +zoomInLongGun src/Dodge/Update/Scroll.hs 97;" f +zoomOutLongGun src/Dodge/Update/Scroll.hs 105;" f +zoomScope src/Dodge/Item/Scope.hs 28;" f +zoomSpeed src/Dodge/Update/Scroll.hs 94;" f