diff --git a/src/Dodge/Creature/Impulse/UseItem.hs b/src/Dodge/Creature/Impulse/UseItem.hs index 3ad2f3138..6ac97e8ee 100644 --- a/src/Dodge/Creature/Impulse/UseItem.hs +++ b/src/Dodge/Creature/Impulse/UseItem.hs @@ -1,7 +1,6 @@ module Dodge.Creature.Impulse.UseItem ( useRootItem, useItemLeftClick, - itemUseEffect, useItemHotkey, ) where @@ -51,26 +50,6 @@ useRootItem crid w = (worldEventFlags . at InventoryChange ?~ ()) . fromMaybe w -- UseScope{} -> w -- UseBulletMod{} -> w -itemUseEffect :: Creature -> LabelDoubleTree ComposeLinkType Item -> World -> World -itemUseEffect cr itmtree w = case itmtree ^. ldtValue . itUse of - UseHeld{} -> - heldEffect itmtree cr w - & pointerToItem itm . itUse . heldHammer .~ HammerDown - UseHotkey{} -> doequipmentchange - UseEquip{} -> doequipmentchange - (UseConsume eff) -> useC eff (_ldtValue itmtree) cr w - UseCraft{} -> w - UseAttach{} -> selectUse itmtree cr w - UseAmmoMag{} -> w - UseScope{} -> w - UseBulletMod{} -> w - where - itm = itmtree ^. ldtValue - doequipmentchange = fromMaybe w $ do - guard (_crHammerPosition cr == HammerUp) - invid <- itm ^? itLocation . ilInvID - return $ toggleEquipmentAt invid cr w - toggleEquipmentAt :: Int -> Creature -> World -> World toggleEquipmentAt invid cr w = case getEquipmentAllocation w of DoNotMoveEquipment -> w @@ -120,23 +99,22 @@ useItemLeftClick :: Creature -> World -> World useItemLeftClick cr w = fromMaybe w $ do guard . not $ _crInvLock cr invid <- cr ^? crManipulation . manObject . imSelectedItem + itm <- cr ^? crInv . ix invid ituse <- cr ^? crInv . ix invid . itUse case ituse of UseHeld{} -> return w - UseConsume{} -> return $ useItemLeftClick' cr w - UseEquip{} -> return $ useItemLeftClick' cr w - UseHotkey{} -> return $ useItemLeftClick' cr w + UseConsume eff -> return $ useC eff itm cr w + UseEquip{} -> return $ doequipmentchange invid + UseHotkey{} -> return $ doequipmentchange invid UseAmmoMag{} -> return w + UseAttach{} -> do + itmtree <- invTrees (_crInv cr) ^? ix invid + return $ selectUse itmtree cr w _ -> Nothing - -useItemLeftClick' :: Creature -> World -> World -useItemLeftClick' cr' w = fromMaybe w $ do - cr <- w ^? cWorld . lWorld . creatures . ix (_crID cr') - itRef <- cr ^? crManipulation . manObject . imSelectedItem - it <- invTrees (_crInv cr) ^? ix itRef - return $ - itemUseEffect cr it w - & worldEventFlags . at InventoryChange ?~ () + where + doequipmentchange invid = fromMaybe w $ do + guard (_crHammerPosition cr == HammerUp) + return $ toggleEquipmentAt invid cr w -- & f -- where diff --git a/src/Dodge/Creature/Picture.hs b/src/Dodge/Creature/Picture.hs index e16f98a11..736879483 100644 --- a/src/Dodge/Creature/Picture.hs +++ b/src/Dodge/Creature/Picture.hs @@ -138,6 +138,4 @@ shoulderSH = translateSHz 20 drawEquipment :: Creature -> SPic {-# INLINE drawEquipment #-} -drawEquipment cr = foldMap - (itemEquipPict cr) - (invLDT $ _crInv cr) +drawEquipment cr = foldMap (itemEquipPict cr) (invLDT $ _crInv cr) diff --git a/src/Dodge/Creature/State.hs b/src/Dodge/Creature/State.hs index 3c2fa449a..aa4b238ec 100644 --- a/src/Dodge/Creature/State.hs +++ b/src/Dodge/Creature/State.hs @@ -253,10 +253,9 @@ chainLinkOrientation :: ItemLink -> ComposedItem -> (Point3, Q.Quaternion Float) -chainLinkOrientation mo (par, _, _) (ILink lt f) (child, _, _) = +chainLinkOrientation (p,q) (par, _, _) (ILink lt f) (child, _, _) = (p + Q.rotate q p1, q * q1) where - (p, q) = mo (p1, q1) = f par lt child updateItemWithOrientation :: diff --git a/src/Dodge/Data/WorldEffect.hs b/src/Dodge/Data/WorldEffect.hs index fc8c62586..c5f8052d2 100644 --- a/src/Dodge/Data/WorldEffect.hs +++ b/src/Dodge/Data/WorldEffect.hs @@ -16,9 +16,7 @@ import Dodge.Data.SoundOrigin import Geometry.Data import Sound.Data -data ItCrWdWd - = ItCrWdId - | ItCrWdItemEffect +data ItCrWdWd = ItCrWdItemHeldEffect --deriving (Eq, Ord, Show, Read) --Generic, Flat) data WdWd @@ -32,7 +30,6 @@ data WdWd | MakeStartCloudAt Point3 | TorqueCr Float Int | WdWdNegateTrig Int - | WdWdFromItixCrixWdWd Int Int ItCrWdWd | WdWdFromItCrixWdWd (LabelDoubleTree ComposeLinkType Item) Int ItCrWdWd | MakeTempLight LSParam Int --deriving (Eq, Show, Read) --, Generic) diff --git a/src/Dodge/HeldUse.hs b/src/Dodge/HeldUse.hs index ff877138d..f4de05375 100644 --- a/src/Dodge/HeldUse.hs +++ b/src/Dodge/HeldUse.hs @@ -54,7 +54,7 @@ heldEffectMuzzles t cr w = -- need to be careful about inventory lock or item ids here doWeaponRepetitions :: LabelDoubleTree ComposeLinkType Item -> Creature -> World -> World doWeaponRepetitions itm cr = case itm ^? ldtValue . itUse . heldParams . weaponRepeat of - Just (x : xs) -> cWorld . lWorld . delayedEvents .++~ ((x : xs) <&> (,WdWdFromItCrixWdWd upitm (_crID cr) ItCrWdItemEffect)) + Just (x : xs) -> cWorld . lWorld . delayedEvents .++~ ((x : xs) <&> (,WdWdFromItCrixWdWd upitm (_crID cr) ItCrWdItemHeldEffect)) _ -> id where upitm = diff --git a/src/Dodge/Item/Grammar.hs b/src/Dodge/Item/Grammar.hs index f1bb7dd56..920729adb 100644 --- a/src/Dodge/Item/Grammar.hs +++ b/src/Dodge/Item/Grammar.hs @@ -72,8 +72,8 @@ itemToBreakLists itm itmf = case (itm ^. itType, itmf) of , [] ) (_, WeaponTargetingSF) -> (getAmmoLinks itm ++ [(AugmentedHUDSF, AugmentedHUDLink)], []) - (ATTACH BULLETSYNTH, _) - -> ([(AmmoMagSF ElectricalAmmo, AmmoInLink 0 ElectricalAmmo)],[]) + (ATTACH BULLETSYNTH, _) -> + ([(AmmoMagSF ElectricalAmmo, AmmoInLink 0 ElectricalAmmo)], []) _ -> ([], []) getAmmoLinks :: Item -> [(ItemStructuralFunction, ComposeLinkType)] @@ -186,7 +186,10 @@ invLDT = -- consider explicitly reseting the inventory ids (but this probably really -- should be done upstream anyway in the actually creature inventory) invRootMap :: IM.IntMap Item -> IM.IntMap (Maybe Int, DoubleTree Item) -invRootMap = foldMap (dtToIntMapWithRoot (^?! itLocation . ilInvID) . fmap (^. _1) . ldtToDT) . invLDT +invRootMap = + foldMap + (dtToIntMapWithRoot (^?! itLocation . ilInvID) . fmap (^. _1) . ldtToDT) + . invLDT -- this assumes the creature inventory is well formed, specifically the -- location ids @@ -208,7 +211,8 @@ invTrees = fmap (first _iatType) . invTrees' -- returns an intmap with trees for all items invTrees' :: IM.IntMap Item -> IM.IntMap (LabelDoubleTree ItemLink Item) -invTrees' = IM.unions . map (ldtToIM getindex . fmap (^. _1)) . map (fmap (\(x, y, _) -> (x, y))) . invLDT +--invTrees' = IM.unions . map (ldtToIM getindex . fmap (^. _1)) . map (fmap (\(x, y, _) -> (x, y))) . invLDT +invTrees' = IM.unions . map (ldtToIM getindex . fmap (^. _1)) . invLDT where getindex i = fromMaybe (error "in invTrees try to get non-inventory item tree") $ @@ -216,10 +220,11 @@ invTrees' = IM.unions . map (ldtToIM getindex . fmap (^. _1)) . map (fmap (\(x, -- returns an intmap with trees for (only!) root items, indexed by inventory position invRootTrees :: IM.IntMap Item -> IM.IntMap (LabelDoubleTree ItemLink ComposedItem) -invRootTrees = IM.fromDistinctAscList . reverse . map (getid) . invLDT +invRootTrees = IM.fromDistinctAscList . reverse . map getid . invLDT where - getid :: LabelDoubleTree ItemLink ComposedItem - -> (Int, LabelDoubleTree ItemLink ComposedItem) + getid :: + LabelDoubleTree ItemLink ComposedItem -> + (Int, LabelDoubleTree ItemLink ComposedItem) getid t = (t ^?! ldtValue . _1 . itLocation . ilInvID, t) -- returns an intmap with indents and locations for all items @@ -228,10 +233,17 @@ allInvLocs inv = foldMap (f . LocLDT TopLDT) (IM.elems (invRootTrees inv)) mempt where f t = cldtPropagateFold h h g 0 t id h x _ _ _ = x + 1 - g :: Int -> LocationLDT ItemLink ComposedItem - -> (IM.IntMap (Int, LocationLDT ItemLink ComposedItem) - -> IM.IntMap (Int, LocationLDT ItemLink ComposedItem)) - -> IM.IntMap (Int, LocationLDT ItemLink ComposedItem) - -> IM.IntMap (Int, LocationLDT ItemLink ComposedItem) - g x ldt = (.) (IM.insert (ldt ^?! locLDT . ldtValue . _1 . itLocation . ilInvID) - (x, ldt)) + g :: + Int -> + LocationLDT ItemLink ComposedItem -> + ( IM.IntMap (Int, LocationLDT ItemLink ComposedItem) -> + IM.IntMap (Int, LocationLDT ItemLink ComposedItem) + ) -> + IM.IntMap (Int, LocationLDT ItemLink ComposedItem) -> + IM.IntMap (Int, LocationLDT ItemLink ComposedItem) + g x ldt = + (.) + ( IM.insert + (ldt ^?! locLDT . ldtValue . _1 . itLocation . ilInvID) + (x, ldt) + ) diff --git a/src/Dodge/SelectUse.hs b/src/Dodge/SelectUse.hs index 9dd0d9c27..275030ce8 100644 --- a/src/Dodge/SelectUse.hs +++ b/src/Dodge/SelectUse.hs @@ -1,5 +1,7 @@ module Dodge.SelectUse (selectUse) where +import Control.Monad +import qualified SDL import Control.Lens import Data.Maybe import Dodge.Data.ComposedItem @@ -9,6 +11,8 @@ import Dodge.Payload selectUse :: LabelDoubleTree ComposeLinkType Item -> Creature -> World -> World selectUse ittree _ w = fromMaybe w $ do + lbtime <- w ^? input . mouseButtons . ix SDL.ButtonLeft + guard $ lbtime == 0 itid <- ittree ^? ldtValue . itID pjid <- ittree ^? ldtValue . itUse . uaParams . apLinkedProjectile . _Just thepj <- w ^? cWorld . lWorld . projectiles . ix pjid diff --git a/src/Dodge/WorldEffect.hs b/src/Dodge/WorldEffect.hs index e6382edfe..8648fc031 100644 --- a/src/Dodge/WorldEffect.hs +++ b/src/Dodge/WorldEffect.hs @@ -5,13 +5,12 @@ module Dodge.WorldEffect ( lineOutputTerminal, ) where -import Dodge.Item.Grammar +import Dodge.HeldUse import Dodge.Data.ComposedItem import Dodge.Data.DoubleTree import Data.Foldable import qualified Data.Map.Strict as M import Data.Maybe -import Dodge.Creature.Impulse.UseItem import Dodge.Data.World import Dodge.Default import Dodge.Inventory.Lock @@ -35,13 +34,6 @@ doWdWd we = case we of TorqueCr x cid -> torqueCr x cid SoundStart so p sid mi -> soundStart so p sid mi WdWdNegateTrig trid -> cWorld . lWorld . triggers . ix trid %~ not - --WdWdFromItixCrixWdWd itid crid f -> \w -> fromMaybe w $ do - WdWdFromItixCrixWdWd _ crid f -> \w -> fromMaybe w $ do - cr <- w ^? cWorld . lWorld . creatures . ix crid - --it <- getItem itid w - itRef <- cr ^? crManipulation . manObject . imSelectedItem - it <- invTrees (_crInv cr) ^? ix itRef -- note this probably doesn't always work, invTrees probably only returns rooted trees - return $ doItCrWdWd f it cr w WdWdFromItCrixWdWd it crid f -> \w -> fromMaybe w $ do cr <- w ^? cWorld . lWorld . creatures . ix crid return $ doItCrWdWd f it cr w @@ -51,8 +43,7 @@ doWdWd we = case we of doItCrWdWd :: ItCrWdWd -> LabelDoubleTree ComposeLinkType Item -> Creature -> World -> World doItCrWdWd icww = case icww of - ItCrWdId -> \_ _ -> id - ItCrWdItemEffect -> flip itemUseEffect + ItCrWdItemHeldEffect -> heldEffect accessTerminal :: Maybe Int -> World -> World accessTerminal mtmid w = fromMaybe w $ do diff --git a/tags b/tags index 9d311a316..a8b33c226 100644 --- a/tags +++ b/tags @@ -35,7 +35,7 @@ AUTODETECTOR src/Dodge/Data/Item/Combine.hs 116;" C AUTOPISTOL src/Dodge/Data/Item/Combine.hs 133;" C AUTORIFLE src/Dodge/Data/Item/Combine.hs 141;" C AZURE src/Color/Data.hs 23;" C -AccessTerminal src/Dodge/Data/WorldEffect.hs 29;" C +AccessTerminal src/Dodge/Data/WorldEffect.hs 27;" C Action src/Dodge/Data/ActionPlan.hs 78;" t Action src/Dodge/Creature/Action.hs 4;" m ActionNothing src/Dodge/Data/ActionPlan.hs 83;" C @@ -56,18 +56,18 @@ AllRoomClipBoundaries src/Dodge/Data/Config.hs 105;" C Ambush src/Dodge/Data/ActionPlan.hs 178;" C Ammo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 6;" m Ammo src/Dodge/Item/Ammo.hs 1;" m -AmmoEffectLink src/Dodge/Data/ComposedItem.hs 21;" C -AmmoEffectSF src/Dodge/Data/ComposedItem.hs 41;" C -AmmoInLink src/Dodge/Data/ComposedItem.hs 17;" C -AmmoMagSF src/Dodge/Data/ComposedItem.hs 35;" C +AmmoEffectLink src/Dodge/Data/ComposedItem.hs 20;" C +AmmoEffectSF src/Dodge/Data/ComposedItem.hs 40;" C +AmmoInLink src/Dodge/Data/ComposedItem.hs 16;" C +AmmoMagSF src/Dodge/Data/ComposedItem.hs 34;" C AmmoMagType src/Dodge/Data/Item/Combine.hs 86;" t -AmmoModLink src/Dodge/Data/ComposedItem.hs 18;" C -AmmoModifierSF src/Dodge/Data/ComposedItem.hs 38;" C +AmmoModLink src/Dodge/Data/ComposedItem.hs 17;" C +AmmoModifierSF src/Dodge/Data/ComposedItem.hs 37;" C AmmoParams src/Dodge/Data/Item/Use.hs 114;" t -AmmoPayloadLink src/Dodge/Data/ComposedItem.hs 20;" C -AmmoPayloadSF src/Dodge/Data/ComposedItem.hs 40;" C -AmmoTargetingLink src/Dodge/Data/ComposedItem.hs 19;" C -AmmoTargetingSF src/Dodge/Data/ComposedItem.hs 39;" C +AmmoPayloadLink src/Dodge/Data/ComposedItem.hs 19;" C +AmmoPayloadSF src/Dodge/Data/ComposedItem.hs 39;" C +AmmoTargetingLink src/Dodge/Data/ComposedItem.hs 18;" C +AmmoTargetingSF src/Dodge/Data/ComposedItem.hs 38;" C AmmoType src/Dodge/Data/Item/Use/Consumption/Ammo.hs 39;" t AnRoom src/Dodge/Annotation/Data.hs 17;" C AnTree src/Dodge/Annotation/Data.hs 18;" C @@ -98,8 +98,8 @@ AttachType src/Dodge/Data/Item/Combine.hs 78;" t Attention src/Dodge/Data/Creature/Perception.hs 60;" t AttentiveTo src/Dodge/Data/Creature/Perception.hs 61;" C Audition src/Dodge/Data/Creature/Perception.hs 47;" t -AugmentedHUDLink src/Dodge/Data/ComposedItem.hs 25;" C -AugmentedHUDSF src/Dodge/Data/ComposedItem.hs 34;" C +AugmentedHUDLink src/Dodge/Data/ComposedItem.hs 24;" C +AugmentedHUDSF src/Dodge/Data/ComposedItem.hs 33;" C AutoAI src/Dodge/Data/Creature/Misc.hs 57;" C AutoCrit src/Dodge/Creature/AutoCrit.hs 1;" m AutoDoorObstacle src/Dodge/Data/PathGraph.hs 51;" C @@ -247,7 +247,6 @@ CHARTREUSE src/Color/Data.hs 25;" C CHEMFUELPOUCH src/Dodge/Data/Item/Combine.hs 92;" C CHeal src/Dodge/Data/Item/HeldUse.hs 17;" C CIRCLE src/Dodge/Data/GenParams.hs 20;" C -CItem src/Dodge/Data/ComposedItem.hs 47;" C CME src/Dodge/Data/MuzzleEffect.hs 11;" C CONCUSSIVE src/Dodge/Data/Damage/Type.hs 22;" C CONSUMABLE src/Dodge/Data/Item/Combine.hs 19;" C @@ -339,8 +338,8 @@ CombineInventoryChange src/Dodge/Data/World.hs 34;" 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 47;" t +ComposeLinkType src/Dodge/Data/ComposedItem.hs 15;" t +ComposedItem src/Dodge/Data/ComposedItem.hs 44;" t ComposedItem src/Dodge/Data/ComposedItem.hs 6;" m Composite src/Picture/Composite.hs 1;" m ComsSS src/Dodge/Data/Scenario.hs 98;" C @@ -537,7 +536,7 @@ Door src/Dodge/Room/Door.hs 2;" m DoorClosed src/Dodge/Data/Door.hs 23;" C DoorHalfway src/Dodge/Data/Door.hs 23;" C DoorInt src/Dodge/Data/Door.hs 23;" C -DoorMechanism src/Dodge/Data/WorldEffect.hs 72;" C +DoorMechanism src/Dodge/Data/WorldEffect.hs 69;" C DoorObstacle src/Dodge/Data/PathGraph.hs 50;" C DoorOpen src/Dodge/Data/Door.hs 23;" C DoorPane src/Dodge/LevelGen/DoorPane.hs 1;" m @@ -549,10 +548,10 @@ DoubleTree src/Dodge/Data/DoubleTree.hs 29;" t DoubleTree src/Dodge/Data/DoubleTree.hs 5;" m DoubleTree src/Dodge/DoubleTree.hs 1;" m DoubleTreeNodeType src/Dodge/Data/DoubleTree.hs 14;" t -DrWdId src/Dodge/Data/WorldEffect.hs 69;" C -DrWdMakeDoorDebris src/Dodge/Data/WorldEffect.hs 70;" C -DrWdMechanismStepwise src/Dodge/Data/WorldEffect.hs 71;" C -DrWdWd src/Dodge/Data/WorldEffect.hs 68;" t +DrWdId src/Dodge/Data/WorldEffect.hs 66;" C +DrWdMakeDoorDebris src/Dodge/Data/WorldEffect.hs 67;" C +DrWdMechanismStepwise src/Dodge/Data/WorldEffect.hs 68;" C +DrWdWd src/Dodge/Data/WorldEffect.hs 65;" t DrWdWd src/Dodge/DrWdWd.hs 1;" m Draw src/Dodge/Beam/Draw.hs 1;" m Draw src/Dodge/Block/Draw.hs 1;" m @@ -647,7 +646,7 @@ Equipment src/Dodge/Default/Item/Use/Equipment.hs 1;" m Equipment src/Dodge/Equipment.hs 1;" m Equipment src/Dodge/Item/Equipment.hs 1;" m EquipmentAllocation src/Dodge/Data/RightButtonOptions.hs 18;" t -EquipmentPlatformSF src/Dodge/Data/ComposedItem.hs 31;" C +EquipmentPlatformSF src/Dodge/Data/ComposedItem.hs 30;" C Escape src/Dodge/Data/Scenario.hs 10;" C EscapeMenuOption src/Dodge/Data/Universe.hs 72;" t Essential src/Shape/Data.hs 34;" C @@ -743,8 +742,8 @@ FullRes src/Dodge/Data/Config.hs 95;" C FullShadowFidelity src/Shape/Data.hs 24;" C FullSize src/Dodge/Data/Item/Params.hs 31;" C FullyVisible src/Dodge/Data/CamouflageStatus.hs 12;" C -FunctionChangeLink src/Dodge/Data/ComposedItem.hs 26;" C -FunctionChangeSF src/Dodge/Data/ComposedItem.hs 42;" C +FunctionChangeLink src/Dodge/Data/ComposedItem.hs 25;" C +FunctionChangeSF src/Dodge/Data/ComposedItem.hs 41;" C GASINJECTOR src/Dodge/Data/Item/Combine.hs 69;" C GEqC src/SameConstr.hs 20;" c GLASSSHARD src/Dodge/Data/Item/Combine.hs 38;" C @@ -857,7 +856,7 @@ Huge src/Shape/Data.hs 28;" C Humanoid src/Dodge/Data/Creature/Misc.hs 65;" C Humanoid src/Dodge/Humanoid.hs 1;" m HumanoidAI src/Dodge/Data/Creature/Misc.hs 48;" t -ILink src/Dodge/Data/ComposedItem.hs 52;" C +ILink src/Dodge/Data/ComposedItem.hs 46;" C IMSS src/Dodge/Data/SelectionList.hs 36;" t INVISIBILITYEQUIPMENT src/Dodge/Data/Item/Combine.hs 105;" C IRONBAR src/Dodge/Data/Item/Combine.hs 57;" C @@ -925,8 +924,7 @@ InwardShockwave src/Dodge/Data/Shockwave.hs 14;" C IsClose src/Dodge/Data/Machine/Sensor.hs 39;" C IsolationUnitSS src/Dodge/Data/Scenario.hs 101;" C ItAmount src/Dodge/Data/Item/Use/Consumption.hs 39;" t -ItCrWdId src/Dodge/Data/WorldEffect.hs 20;" C -ItCrWdItemEffect src/Dodge/Data/WorldEffect.hs 21;" C +ItCrWdItemHeldEffect src/Dodge/Data/WorldEffect.hs 19;" C ItCrWdWd src/Dodge/Data/WorldEffect.hs 19;" t ItDropEffect src/Dodge/Data/Item/Effect.hs 31;" t ItEffect src/Dodge/Data/Item/Effect.hs 12;" t @@ -941,12 +939,12 @@ Item src/Dodge/Default/Item.hs 1;" m Item src/Dodge/Item.hs 3;" m ItemClust src/Dodge/Combine/Graph.hs 20;" C ItemDimension src/Dodge/Data/Item/Misc.hs 13;" t -ItemLink src/Dodge/Data/ComposedItem.hs 52;" t +ItemLink src/Dodge/Data/ComposedItem.hs 46;" t ItemLocation src/Dodge/Data/Item/Location.hs 27;" t ItemParams src/Dodge/Data/Item/Params.hs 13;" t ItemParams src/Dodge/Tesla/ItemParams.hs 1;" m ItemScrollTimeFlow src/Dodge/Data/World.hs 62;" C -ItemStructuralFunction src/Dodge/Data/ComposedItem.hs 29;" t +ItemStructuralFunction src/Dodge/Data/ComposedItem.hs 28;" t ItemTargeting src/Dodge/Data/Item.hs 42;" t ItemType src/Dodge/Data/Item/Combine.hs 15;" t ItemUse src/Dodge/Data/Item/Use.hs 35;" t @@ -967,7 +965,7 @@ LBlink src/Dodge/Data/Item/HeldUse.hs 43;" C LBoost src/Dodge/Data/Item/HeldUse.hs 45;" C LDT src/Dodge/Data/DoubleTree.hs 39;" C LDTBottomNode src/Dodge/Data/DoubleTree.hs 27;" C -LDTComb src/Dodge/Item/Grammar.hs 143;" t +LDTComb src/Dodge/Item/Grammar.hs 137;" t LDTMidAboveNode src/Dodge/Data/DoubleTree.hs 25;" C LDTMidBelowNode src/Dodge/Data/DoubleTree.hs 26;" C LDTRootNode src/Dodge/Data/DoubleTree.hs 23;" C @@ -981,11 +979,11 @@ LIGHTSENSOR src/Dodge/Data/Item/Combine.hs 58;" C LRewind src/Dodge/Data/Item/HeldUse.hs 40;" C LS src/Dodge/Data/LightSource.hs 23;" C LSParam src/Dodge/Data/LightSource.hs 16;" t -LTest src/Dodge/Data/ComposedItem.hs 57;" C +LTest src/Dodge/Data/ComposedItem.hs 51;" C LTimePause src/Dodge/Data/Item/HeldUse.hs 41;" C LTimeScroll src/Dodge/Data/Item/HeldUse.hs 42;" C LUnsafeBlink src/Dodge/Data/Item/HeldUse.hs 44;" C -LUpdate src/Dodge/Data/ComposedItem.hs 62;" C +LUpdate src/Dodge/Data/ComposedItem.hs 56;" C LWorld src/Dodge/Data/LWorld.hs 96;" t LWorld src/Dodge/Data/LWorld.hs 6;" m LabLink src/Dodge/Data/Room.hs 45;" C @@ -1042,8 +1040,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 57;" t -LinkUpdate src/Dodge/Data/ComposedItem.hs 62;" t +LinkTest src/Dodge/Data/ComposedItem.hs 51;" t +LinkUpdate src/Dodge/Data/ComposedItem.hs 56;" 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 @@ -1122,8 +1120,8 @@ Main appDodge/Main.hs 1;" m Make src/Dodge/Corpse/Make.hs 1;" m MakeDefaultCorpse src/Dodge/Data/Creature.hs 91;" C MakeSound src/Dodge/Data/ActionPlan.hs 43;" C -MakeStartCloudAt src/Dodge/Data/WorldEffect.hs 32;" C -MakeTempLight src/Dodge/Data/WorldEffect.hs 37;" C +MakeStartCloudAt src/Dodge/Data/WorldEffect.hs 30;" C +MakeTempLight src/Dodge/Data/WorldEffect.hs 34;" C ManipulatedObject src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 20;" t Manipulation src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 14;" t Manipulator src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 15;" C @@ -1138,11 +1136,11 @@ McSensor src/Dodge/Data/Machine.hs 52;" C McStatic src/Dodge/Data/Machine.hs 50;" C McTerminal src/Dodge/Data/Machine.hs 51;" C McTurret src/Dodge/Data/Machine.hs 53;" C -MdFlickerUpdate src/Dodge/Data/WorldEffect.hs 50;" C -MdSetLSCol src/Dodge/Data/WorldEffect.hs 49;" C -MdTrigIf src/Dodge/Data/WorldEffect.hs 48;" C -MdWdId src/Dodge/Data/WorldEffect.hs 47;" C -MdWdWd src/Dodge/Data/WorldEffect.hs 46;" t +MdFlickerUpdate src/Dodge/Data/WorldEffect.hs 47;" C +MdSetLSCol src/Dodge/Data/WorldEffect.hs 46;" C +MdTrigIf src/Dodge/Data/WorldEffect.hs 45;" C +MdWdId src/Dodge/Data/WorldEffect.hs 44;" C +MdWdWd src/Dodge/Data/WorldEffect.hs 43;" t MedBaySS src/Dodge/Data/Scenario.hs 100;" C Medium src/Shape/Data.hs 30;" C Melee src/Dodge/Data/ActionPlan.hs 41;" C @@ -1259,7 +1257,7 @@ NoRoomClipBoundaries src/Dodge/Data/Config.hs 105;" C NoShadowFidelity src/Shape/Data.hs 25;" C NoShadows src/Dodge/Data/Config.hs 101;" C NoSubInventory src/Dodge/Data/HUD.hs 35;" C -NoWorldEffect src/Dodge/Data/WorldEffect.hs 25;" C +NoWorldEffect src/Dodge/Data/WorldEffect.hs 23;" C Noclip src/Dodge/Data/Config.hs 70;" C NodeMTree src/Dodge/Tree/Compose/Data.hs 9;" C NodeTree src/Dodge/Tree/Compose/Data.hs 9;" C @@ -1380,7 +1378,6 @@ ParamMID src/Dodge/Data/Item/Params.hs 28;" C Parameters src/Shader/Parameters.hs 1;" m Parameters src/Shape/Parameters.hs 1;" m Params src/Dodge/Data/Item/Params.hs 6;" m -PartiallyComposedItem src/Dodge/Data/ComposedItem.hs 45;" t PassthroughLockKeyLists src/Dodge/Annotation/Data.hs 19;" C Path src/Dodge/Path.hs 2;" m Path src/Dodge/Room/Path.hs 1;" m @@ -1567,8 +1564,8 @@ Religion src/Dodge/Data/Scenario.hs 47;" C Reload src/Dodge/Data/ActionPlan.hs 190;" C ReloadStatus src/Dodge/Data/Item/Use/Consumption.hs 20;" t RemoteDirectionPU src/Dodge/Data/Item/Use/Consumption/Ammo.hs 32;" C -RemoteScreenLink src/Dodge/Data/ComposedItem.hs 24;" C -RemoteScreenSF src/Dodge/Data/ComposedItem.hs 36;" C +RemoteScreenLink src/Dodge/Data/ComposedItem.hs 23;" C +RemoteScreenSF src/Dodge/Data/ComposedItem.hs 35;" C RemoveEquipment src/Dodge/Data/RightButtonOptions.hs 36;" C RemoveShieldWall src/Dodge/Data/Item/Effect.hs 26;" C Remove_LOS src/Dodge/Data/Config.hs 77;" C @@ -1685,9 +1682,9 @@ SensorDoor src/Dodge/Room/SensorDoor.hs 2;" m SentinelAI src/Dodge/Creature/SentinelAI.hs 1;" m SentinelAt src/Dodge/Data/ActionPlan.hs 199;" C SetCharge src/Dodge/Data/Item/Effect.hs 23;" C -SetLSCol src/Dodge/Data/WorldEffect.hs 28;" C +SetLSCol src/Dodge/Data/WorldEffect.hs 26;" C SetTarget src/Dodge/Creature/SetTarget.hs 2;" m -SetTrigger src/Dodge/Data/WorldEffect.hs 26;" C +SetTrigger src/Dodge/Data/WorldEffect.hs 24;" C Setup src/Framebuffer/Setup.hs 2;" m ShadNum src/Picture/Data.hs 35;" t Shader src/Shader/Data.hs 51;" t @@ -1760,7 +1757,7 @@ SoundID src/Sound/Data.hs 32;" t SoundLogic src/Dodge/SoundLogic.hs 7;" m SoundOrigin src/Dodge/Data/SoundOrigin.hs 12;" t SoundOrigin src/Dodge/Data/SoundOrigin.hs 6;" m -SoundStart src/Dodge/Data/WorldEffect.hs 31;" C +SoundStart src/Dodge/Data/WorldEffect.hs 29;" C SoundStatus src/Sound/Data.hs 17;" t South src/Dodge/Data/CardinalPoint.hs 6;" C South8 src/Dodge/Data/CardinalPoint.hs 15;" C @@ -1924,13 +1921,13 @@ 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 -TmWdId src/Dodge/Data/WorldEffect.hs 76;" C -TmWdWd src/Dodge/Data/WorldEffect.hs 75;" t +TmWdId src/Dodge/Data/WorldEffect.hs 73;" C +TmWdWd src/Dodge/Data/WorldEffect.hs 72;" t TmWdWd src/Dodge/TmWdWd.hs 1;" m -TmWdWdDisconnectTerminal src/Dodge/Data/WorldEffect.hs 77;" C -TmWdWdDoDeathTriggers src/Dodge/Data/WorldEffect.hs 80;" C -TmWdWdTermSound src/Dodge/Data/WorldEffect.hs 79;" C -TmWdWdfromWdWd src/Dodge/Data/WorldEffect.hs 78;" C +TmWdWdDisconnectTerminal src/Dodge/Data/WorldEffect.hs 74;" C +TmWdWdDoDeathTriggers src/Dodge/Data/WorldEffect.hs 77;" C +TmWdWdTermSound src/Dodge/Data/WorldEffect.hs 76;" C +TmWdWdfromWdWd src/Dodge/Data/WorldEffect.hs 75;" C ToContinueStart src/Sound/Data.hs 28;" C ToPlaySound src/Sound/Data.hs 39;" t ToStart src/Sound/Data.hs 27;" C @@ -1941,7 +1938,7 @@ TopDecoration src/Dodge/Placement/TopDecoration.hs 1;" m TopEscapeMenuOption src/Dodge/Data/Universe.hs 74;" C TopLDT src/Dodge/Data/DoubleTree.hs 44;" C TorpedoBaySS src/Dodge/Data/Scenario.hs 99;" C -TorqueCr src/Dodge/Data/WorldEffect.hs 33;" C +TorqueCr src/Dodge/Data/WorldEffect.hs 31;" C TorqueDamage src/Dodge/Data/Damage.hs 27;" C TractorBeam src/Dodge/Data/TractorBeam.hs 13;" t TractorBeam src/Dodge/Data/TractorBeam.hs 6;" m @@ -1973,7 +1970,7 @@ TwoHandUnder src/Dodge/Data/Item/Use.hs 176;" 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 -UncomposableIsolateSF src/Dodge/Data/ComposedItem.hs 37;" C +UncomposableIsolateSF src/Dodge/Data/ComposedItem.hs 36;" C UnderGround src/Dodge/Data/Scenario.hs 78;" C UnderRoof src/Dodge/Data/Scenario.hs 79;" C UnderSea src/Dodge/Data/Scenario.hs 77;" C @@ -1981,7 +1978,7 @@ UniRandFloat src/Dodge/Data/GenFloat.hs 12;" C Unimportant src/Shape/Data.hs 37;" C Universe src/Dodge/Data/Universe.hs 30;" t Universe src/Dodge/Data/Universe.hs 6;" m -UnlockInv src/Dodge/Data/WorldEffect.hs 30;" C +UnlockInv src/Dodge/Data/WorldEffect.hs 28;" C UnusedLink src/Dodge/Data/Room.hs 65;" C Update src/Dodge/Config/Update.hs 4;" m Update src/Dodge/Creature/Update.hs 1;" m @@ -2072,13 +2069,13 @@ WarningCry src/Dodge/Data/ActionPlan.hs 185;" C WasLeftForward src/Dodge/Data/Creature/Stance.hs 34;" C WasRightForward src/Dodge/Data/Creature/Stance.hs 35;" C WatchAndWait src/Dodge/Data/ActionPlan.hs 183;" C -WdBl src/Dodge/Data/WorldEffect.hs 53;" t -WdBlBtNotOff src/Dodge/Data/WorldEffect.hs 60;" C -WdBlBtOn src/Dodge/Data/WorldEffect.hs 59;" C -WdBlConst src/Dodge/Data/WorldEffect.hs 56;" C -WdBlCrFilterNearPoint src/Dodge/Data/WorldEffect.hs 58;" C -WdBlDoorMoving src/Dodge/Data/WorldEffect.hs 55;" C -WdBlNegate src/Dodge/Data/WorldEffect.hs 57;" C +WdBl src/Dodge/Data/WorldEffect.hs 50;" t +WdBlBtNotOff src/Dodge/Data/WorldEffect.hs 57;" C +WdBlBtOn src/Dodge/Data/WorldEffect.hs 56;" C +WdBlConst src/Dodge/Data/WorldEffect.hs 53;" C +WdBlCrFilterNearPoint src/Dodge/Data/WorldEffect.hs 55;" C +WdBlDoorMoving src/Dodge/Data/WorldEffect.hs 52;" C +WdBlNegate src/Dodge/Data/WorldEffect.hs 54;" C WdCrBl src/Dodge/Data/CreatureEffect.hs 31;" t WdCrBlfromCrBl src/Dodge/Data/CreatureEffect.hs 33;" C WdCrCr src/Dodge/Data/CreatureEffect.hs 11;" t @@ -2086,25 +2083,24 @@ WdCrLOSTarget src/Dodge/Data/CreatureEffect.hs 35;" C WdCrNegate src/Dodge/Data/CreatureEffect.hs 34;" C WdCrSafeDistFromTarget src/Dodge/Data/CreatureEffect.hs 36;" C WdCrTrue src/Dodge/Data/CreatureEffect.hs 32;" C -WdP2 src/Dodge/Data/WorldEffect.hs 41;" t +WdP2 src/Dodge/Data/WorldEffect.hs 38;" t WdP2 src/Dodge/WdP2.hs 1;" m -WdP2Const src/Dodge/Data/WorldEffect.hs 42;" C -WdP2f src/Dodge/Data/WorldEffect.hs 63;" t +WdP2Const src/Dodge/Data/WorldEffect.hs 39;" C +WdP2f src/Dodge/Data/WorldEffect.hs 60;" t WdP2f src/Dodge/WdP2f.hs 2;" m -WdP2f0 src/Dodge/Data/WorldEffect.hs 64;" C -WdP2fDoorPosition src/Dodge/Data/WorldEffect.hs 65;" C -WdTrig src/Dodge/Data/WorldEffect.hs 54;" C -WdWd src/Dodge/Data/WorldEffect.hs 24;" t -WdWdFromItCrixWdWd src/Dodge/Data/WorldEffect.hs 36;" C -WdWdFromItixCrixWdWd src/Dodge/Data/WorldEffect.hs 35;" C -WdWdNegateTrig src/Dodge/Data/WorldEffect.hs 34;" C -WdYouPos src/Dodge/Data/WorldEffect.hs 43;" C +WdP2f0 src/Dodge/Data/WorldEffect.hs 61;" C +WdP2fDoorPosition src/Dodge/Data/WorldEffect.hs 62;" C +WdTrig src/Dodge/Data/WorldEffect.hs 51;" C +WdWd src/Dodge/Data/WorldEffect.hs 22;" t +WdWdFromItCrixWdWd src/Dodge/Data/WorldEffect.hs 33;" C +WdWdNegateTrig src/Dodge/Data/WorldEffect.hs 32;" C +WdYouPos src/Dodge/Data/WorldEffect.hs 40;" C Weapon src/Dodge/Item/Weapon.hs 2;" m -WeaponPlatformSF src/Dodge/Data/ComposedItem.hs 30;" C -WeaponScopeLink src/Dodge/Data/ComposedItem.hs 22;" C -WeaponScopeSF src/Dodge/Data/ComposedItem.hs 32;" C -WeaponTargetingLink src/Dodge/Data/ComposedItem.hs 23;" C -WeaponTargetingSF src/Dodge/Data/ComposedItem.hs 33;" C +WeaponPlatformSF src/Dodge/Data/ComposedItem.hs 29;" C +WeaponScopeLink src/Dodge/Data/ComposedItem.hs 21;" C +WeaponScopeSF src/Dodge/Data/ComposedItem.hs 31;" C +WeaponTargetingLink src/Dodge/Data/ComposedItem.hs 22;" C +WeaponTargetingSF src/Dodge/Data/ComposedItem.hs 32;" C Weapons src/Dodge/Item/Held/Weapons.hs 1;" m West src/Dodge/Data/CardinalPoint.hs 7;" C West8 src/Dodge/Data/CardinalPoint.hs 17;" C @@ -2120,7 +2116,7 @@ World src/Dodge/Zoning/World.hs 1;" m WorldBool src/Dodge/WorldBool.hs 1;" m WorldEffect src/Dodge/Data/WorldEffect.hs 6;" m WorldEffect src/Dodge/WorldEffect.hs 1;" m -WorldEffects src/Dodge/Data/WorldEffect.hs 27;" C +WorldEffects src/Dodge/Data/WorldEffect.hs 25;" C WorldEvent src/Dodge/WorldEvent.hs 1;" m WorldEventFlag src/Dodge/Data/World.hs 32;" t WorldGovernment src/Dodge/Data/Scenario.hs 52;" C @@ -2250,8 +2246,6 @@ _bulGunSound src/Dodge/Data/Item/Use.hs 106;" f _bullets src/Dodge/Data/LWorld.hs 105;" f _buttons src/Dodge/Data/LWorld.hs 133;" f _cClock src/Dodge/Data/CWorld.hs 28;" f -_cItem src/Dodge/Data/ComposedItem.hs 48;" f -_cItemFunction src/Dodge/Data/ComposedItem.hs 49;" f _cUse src/Dodge/Data/Item/Use.hs 51;" f _cWorld src/Dodge/Data/World.hs 38;" f _camBoundBox src/Dodge/Data/Camera.hs 31;" f @@ -2577,8 +2571,8 @@ _hudElement src/Dodge/Data/HUD.hs 46;" f _humanoidAI src/Dodge/Data/Creature/Misc.hs 69;" 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 54;" f -_iatType src/Dodge/Data/ComposedItem.hs 53;" f +_iatOrient src/Dodge/Data/ComposedItem.hs 48;" f +_iatType src/Dodge/Data/ComposedItem.hs 47;" f _ibtAmmoMag src/Dodge/Data/Item/Combine.hs 22;" f _ibtAttach src/Dodge/Data/Item/Combine.hs 21;" f _ibtBulletMod src/Dodge/Data/Item/Combine.hs 24;" f @@ -2677,9 +2671,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 65;" f -_luLinkType src/Dodge/Data/ComposedItem.hs 63;" f -_luParentUpdate src/Dodge/Data/ComposedItem.hs 64;" f +_luChildUpdate src/Dodge/Data/ComposedItem.hs 59;" f +_luLinkType src/Dodge/Data/ComposedItem.hs 57;" f +_luParentUpdate src/Dodge/Data/ComposedItem.hs 58;" 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 @@ -3137,8 +3131,8 @@ _tractorBeams src/Dodge/Data/LWorld.hs 118;" f _trieChildren src/SimpleTrie.hs 11;" f _trieMVal src/SimpleTrie.hs 10;" f _triggers src/Dodge/Data/LWorld.hs 127;" f -_tryLeftLink src/Dodge/Data/ComposedItem.hs 58;" f -_tryRightLink src/Dodge/Data/ComposedItem.hs 59;" f +_tryLeftLink src/Dodge/Data/ComposedItem.hs 52;" f +_tryRightLink src/Dodge/Data/ComposedItem.hs 53;" f _ttDeathEffect src/Dodge/Data/Terminal.hs 84;" f _ttTriggerID src/Dodge/Data/Terminal.hs 83;" f _tuDir src/Dodge/Data/Machine.hs 61;" f @@ -3263,7 +3257,7 @@ aSound src/Dodge/SoundLogic.hs 68;" f aStaticBall src/Dodge/WorldEvent/SpawnParticle.hs 41;" f aTeslaArcAt src/Dodge/Tesla/Arc.hs 20;" f aTreeStrut src/Dodge/Tree/GenerateStructure.hs 42;" f -accessTerminal src/Dodge/WorldEffect.hs 57;" f +accessTerminal src/Dodge/WorldEffect.hs 48;" f activeTargetCursorPic src/Dodge/Targeting/Draw.hs 24;" f addArmour src/Dodge/Creature.hs 83;" f addBranchAt src/Dodge/Tree/GenerateStructure.hs 18;" f @@ -3322,7 +3316,7 @@ allHotkeys src/Dodge/Creature/YourControl.hs 51;" f allInvLocs src/Dodge/Item/Grammar.hs 231;" f allVisibleWalls src/Dodge/Base/Collide.hs 131;" f alongSegBy src/Geometry.hs 43;" f -ammoMagSPic src/Dodge/Item/Draw/SPic.hs 45;" f +ammoMagSPic src/Dodge/Item/Draw/SPic.hs 46;" f amr src/Dodge/Item/Held/Rod.hs 44;" f analyser src/Dodge/Placement/Instance/Analyser.hs 12;" f analyserByDoor src/Dodge/Room/LasTurret.hs 75;" f @@ -3373,7 +3367,7 @@ argumentHelp src/Dodge/Terminal.hs 151;" f armourChaseCrit src/Dodge/Creature/ArmourChase.hs 38;" f armouredChasers src/Dodge/Room/Boss.hs 63;" f armouredCorridor src/Dodge/Room/RoadBlock.hs 20;" f -arms src/Dodge/Creature/Picture.hs 73;" f +arms src/Dodge/Creature/Picture.hs 72;" f arrow src/Picture/Composite.hs 19;" f arrowPath src/Picture/Composite.hs 8;" f assignHotkey src/Dodge/Hotkey.hs 26;" f @@ -3409,34 +3403,34 @@ azure src/Color.hs 22;" f bQuadToF src/Geometry/Bezier.hs 37;" f bQuadToLine src/Geometry/Bezier.hs 30;" f backpackCombinations src/Dodge/Combine/Combinations.hs 25;" f -backpackShape src/Dodge/Item/Draw/SPic.hs 94;" f +backpackShape src/Dodge/Item/Draw/SPic.hs 95;" f backspaceInputted src/Dodge/Update/Input/Text.hs 25;" f bangCone src/Dodge/Item/Held/Cone.hs 11;" f -bangConeShape src/Dodge/Item/Draw/SPic.hs 235;" f +bangConeShape src/Dodge/Item/Draw/SPic.hs 236;" f bangEchoS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 382;" f bangRod src/Dodge/Item/Held/Rod.hs 18;" f bangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 496;" f bangStick src/Dodge/Item/Held/Stick.hs 17;" f barPP src/Dodge/Room/Foreground.hs 236;" f barrel src/Dodge/Creature/Inanimate.hs 17;" f -baseAMRShape src/Dodge/Item/Draw/SPic.hs 345;" f +baseAMRShape src/Dodge/Item/Draw/SPic.hs 346;" f baseBlockPane src/Dodge/Placement/Instance/Wall.hs 86;" f -baseCaneShape src/Dodge/Item/Draw/SPic.hs 255;" f +baseCaneShape src/Dodge/Item/Draw/SPic.hs 256;" f baseDebris src/Dodge/Block/Debris.hs 122;" f baseFloorTileSize src/Tile.hs 45;" f -basePCI src/Dodge/Item/Grammar.hs 108;" f -baseRifleShape src/Dodge/Item/Draw/SPic.hs 258;" f -baseRodShape src/Dodge/Item/Draw/SPic.hs 342;" f -baseSMGShape src/Dodge/Item/Draw/SPic.hs 325;" f -baseShoulder src/Dodge/Creature/Picture.hs 129;" f -baseStickShape src/Dodge/Item/Draw/SPic.hs 232;" f -baseStickShapeX src/Dodge/Item/Draw/SPic.hs 227;" f +basePCI src/Dodge/Item/Grammar.hs 103;" f +baseRifleShape src/Dodge/Item/Draw/SPic.hs 259;" f +baseRodShape src/Dodge/Item/Draw/SPic.hs 343;" f +baseSMGShape src/Dodge/Item/Draw/SPic.hs 326;" f +baseShoulder src/Dodge/Creature/Picture.hs 128;" f +baseStickShape src/Dodge/Item/Draw/SPic.hs 233;" f +baseStickShapeX src/Dodge/Item/Draw/SPic.hs 228;" f baseStickSpread src/Dodge/Item/Held/Stick.hs 27;" f basicAttentionUpdate src/Dodge/Creature/Perception.hs 127;" f basicAwarenessUpdate src/Dodge/Creature/Perception.hs 37;" f basicBulDams src/Dodge/Item/Weapon/Bullet.hs 26;" f -basicCrPict src/Dodge/Creature/Picture.hs 27;" f -basicCrShape src/Dodge/Creature/Picture.hs 32;" f +basicCrPict src/Dodge/Creature/Picture.hs 26;" f +basicCrShape src/Dodge/Creature/Picture.hs 31;" f basicDrawBeam src/Dodge/Beam/Draw.hs 11;" f basicItemDisplay src/Dodge/Item/Display.hs 34;" f basicMachineApplyDamage src/Dodge/Machine/Damage.hs 6;" f @@ -3592,7 +3586,7 @@ clockCycle src/Dodge/Clock.hs 9;" f closeButtonToSelectionItem src/Dodge/Inventory/SelectionList.hs 69;" f closeItemToSelectionItem src/Dodge/Inventory/SelectionList.hs 54;" f closeItemToTextPictures src/Dodge/Inventory/SelectionList.hs 83;" f -closeObjectInfo src/Dodge/Render/HUD.hs 212;" f +closeObjectInfo src/Dodge/Render/HUD.hs 211;" f closestCreatureID src/Dodge/Debug.hs 92;" f closestPointOnLine src/Geometry/Intersect.hs 251;" f closestPointOnLineParam src/Geometry/Intersect.hs 267;" f @@ -3626,7 +3620,7 @@ combinationsOf src/Multiset.hs 46;" f combinationsTrie src/Dodge/Combine.hs 43;" f combineAwareness src/Dodge/Creature/Perception.hs 109;" f combineFloors src/Dodge/Room/Procedural.hs 172;" f -combineInventoryExtra src/Dodge/Render/HUD.hs 328;" f +combineInventoryExtra src/Dodge/Render/HUD.hs 327;" f combineItemListYouX src/Dodge/Combine.hs 35;" f combineList src/Dodge/Combine.hs 21;" f combineRooms src/Dodge/Room/Procedural.hs 152;" f @@ -3786,10 +3780,10 @@ dbArgChain src/Dodge/Base.hs 148;" f deZoneIX src/Dodge/Zoning/Base.hs 86;" f deZoneWall src/Dodge/Zoning/Wall.hs 70;" f deadEndRoom src/Dodge/Room/Room.hs 235;" f -deadFeet src/Dodge/Creature/Picture.hs 69;" f -deadRot src/Dodge/Creature/Picture.hs 85;" f -deadScalp src/Dodge/Creature/Picture.hs 82;" f -deadUpperBody src/Dodge/Creature/Picture.hs 126;" f +deadFeet src/Dodge/Creature/Picture.hs 68;" f +deadRot src/Dodge/Creature/Picture.hs 84;" f +deadScalp src/Dodge/Creature/Picture.hs 81;" f +deadUpperBody src/Dodge/Creature/Picture.hs 125;" f debrisSize src/Dodge/Block/Debris.hs 111;" f debugDraw src/Dodge/Debug/Picture.hs 124;" f debugDraw' src/Dodge/Debug/Picture.hs 135;" f @@ -3817,7 +3811,7 @@ dededumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 462;" f dedumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 328;" f defDamageMaterial src/Dodge/Material/Damage.hs 17;" f defLSPic src/Dodge/LightSource/Draw.hs 10;" f -defSPic src/Dodge/Item/Draw/SPic.hs 241;" f +defSPic src/Dodge/Item/Draw/SPic.hs 242;" f defaultAimMvType src/Dodge/Default/Creature.hs 122;" f defaultAimParams src/Dodge/Default/Item/Use/AimParams.hs 9;" f defaultAimingCrit src/Dodge/Default/Creature.hs 131;" f @@ -3908,7 +3902,7 @@ destroyMount src/Dodge/Block.hs 104;" f destroyMounts src/Dodge/Block.hs 101;" f destroyProjectile src/Dodge/Projectile/Update.hs 63;" f detV src/Geometry/Vector.hs 93;" f -detectorColor src/Dodge/Item/Draw/SPic.hs 391;" f +detectorColor src/Dodge/Item/Draw/SPic.hs 392;" f detectorEffect src/Dodge/Item/Weapon/Radar.hs 20;" f detectorInfo src/Dodge/Item/Info.hs 191;" f determineProjectileTracking src/Dodge/HeldUse.hs 497;" f @@ -3943,7 +3937,7 @@ divideLineOddNumPoints src/Geometry.hs 264;" f doAfterPlacement src/Dodge/Layout.hs 86;" f doAfterPlacements src/Dodge/Layout.hs 83;" f doBackspace src/Dodge/Update/Input/Text.hs 31;" f -doBlBl src/Dodge/WorldEffect.hs 99;" f +doBlBl src/Dodge/WorldEffect.hs 90;" f doBlSh src/Dodge/Block/Draw.hs 14;" f doBounce src/Dodge/Base/Collide.hs 68;" f doButtonEvent src/Dodge/Button/Event.hs 9;" f @@ -3958,8 +3952,8 @@ doCrWdImp src/Dodge/CreatureEffect.hs 16;" f doCrWdWd src/Dodge/CreatureEffect.hs 20;" f doDamage src/Dodge/Creature/State.hs 126;" f doDamagesFL src/Dodge/Flame.hs 57;" f -doDeathToggle src/Dodge/WorldEffect.hs 96;" f -doDeathTriggers src/Dodge/WorldEffect.hs 91;" f +doDeathToggle src/Dodge/WorldEffect.hs 87;" f +doDeathTriggers src/Dodge/WorldEffect.hs 82;" f doDrWdWd src/Dodge/DrWdWd.hs 16;" f doDrag src/Dodge/Update/Input/InGame.hs 98;" f doDrawing src/Dodge/Render.hs 35;" f @@ -3971,7 +3965,7 @@ 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 52;" f +doItCrWdWd src/Dodge/WorldEffect.hs 44;" f doItemTimeScroll src/Dodge/Update.hs 199;" f doLoop src/Loop.hs 60;" f doMCrAc src/Dodge/CreatureEffect.hs 57;" f @@ -3999,7 +3993,7 @@ doSectionSize src/Dodge/DisplayInventory.hs 247;" f doSideEffects appDodge/Main.hs 118;" f doStep src/Dodge/ArcStep.hs 9;" f doStrategyActions src/Dodge/Creature/ReaderUpdate.hs 164;" f -doTerminalBootProgram src/Dodge/WorldEffect.hs 105;" f +doTerminalBootProgram src/Dodge/WorldEffect.hs 96;" f doTerminalCommandEffect src/Dodge/Terminal.hs 135;" f doTestDrawing src/Dodge/Render.hs 42;" f doTextInputOver src/Dodge/Update/Input/Text.hs 15;" f @@ -4007,13 +4001,13 @@ doTextInputOverUniverse src/Dodge/Update/Input/Text.hs 12;" f doThrust src/Dodge/Projectile/Update.hs 74;" f doTimeScroll src/Dodge/Update.hs 204;" f doTmTm src/Dodge/TmTm.hs 6;" f -doTmWdWd src/Dodge/WorldEffect.hs 110;" f +doTmWdWd src/Dodge/WorldEffect.hs 101;" f doWallRotate src/Dodge/Update/Camera.hs 188;" 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 25;" f doWeaponRepetitions src/Dodge/HeldUse.hs 55;" f doWorldEvents src/Dodge/Update.hs 420;" f doWorldPos src/Dodge/WorldPos.hs 7;" f @@ -4042,7 +4036,7 @@ drawCPUShadows src/Dodge/Render/Shadow.hs 19;" f drawCarte src/Dodge/Render/HUD/Carte.hs 14;" f drawCollisionTest src/Dodge/Debug/Picture.hs 103;" f drawCombFilter src/Dodge/Render/Picture.hs 220;" f -drawCombineInventory src/Dodge/Render/HUD.hs 168;" f +drawCombineInventory src/Dodge/Render/HUD.hs 167;" f drawConcurrentMessage src/Dodge/Render/Picture.hs 62;" f drawCorpse src/Dodge/Corpse/Draw.hs 6;" f drawCrInfo src/Dodge/Debug/Picture.hs 342;" f @@ -4058,12 +4052,12 @@ drawDrag src/Dodge/Render/Picture.hs 170;" f drawDragDrop src/Dodge/Render/Picture.hs 181;" f drawDragPickup src/Dodge/Render/Picture.hs 190;" f drawDragSelect src/Dodge/Render/Picture.hs 167;" f -drawDragSelected src/Dodge/Render/HUD.hs 132;" f -drawDragSelecting src/Dodge/Render/HUD.hs 149;" f +drawDragSelected src/Dodge/Render/HUD.hs 131;" f +drawDragSelecting src/Dodge/Render/HUD.hs 148;" f drawEmptySet src/Dodge/Render/Picture.hs 117;" f drawEnergyBall src/Dodge/EnergyBall/Draw.hs 8;" f -drawEquipment src/Dodge/Creature/Picture.hs 140;" f -drawExamineInventory src/Dodge/Render/HUD.hs 184;" f +drawEquipment src/Dodge/Creature/Picture.hs 139;" f +drawExamineInventory src/Dodge/Render/HUD.hs 183;" f drawFarWallDetect src/Dodge/Debug/Picture.hs 234;" f drawFlame src/Dodge/Flame/Draw.hs 7;" f drawFlamelet src/Dodge/EnergyBall/Draw.hs 23;" f @@ -4071,13 +4065,13 @@ drawFooterText src/Dodge/Render/MenuScreen.hs 75;" f drawForceField src/Dodge/Wall/Draw.hs 11;" f drawGapPlus src/Dodge/Render/Picture.hs 230;" f drawGib src/Dodge/Prop/Draw.hs 28;" f -drawHUD src/Dodge/Render/HUD.hs 48;" f +drawHUD src/Dodge/Render/HUD.hs 47;" f drawInputMenu src/Dodge/Render/MenuScreen.hs 21;" f drawInspectWall src/Dodge/Debug/Picture.hs 209;" f drawInspectWalls src/Dodge/Debug/Picture.hs 197;" f -drawInventory src/Dodge/Render/HUD.hs 55;" f -drawItemChildrenConnect src/Dodge/Render/HUD.hs 315;" f -drawItemConnections src/Dodge/Render/HUD.hs 305;" f +drawInventory src/Dodge/Render/HUD.hs 54;" f +drawItemChildrenConnect src/Dodge/Render/HUD.hs 314;" f +drawItemConnections src/Dodge/Render/HUD.hs 304;" f drawJumpDown src/Dodge/Render/Picture.hs 163;" f drawLabCrossCol src/Dodge/Render/Label.hs 8;" f drawLampCover src/Dodge/Prop/Draw.hs 44;" f @@ -4095,7 +4089,7 @@ drawMenuCursor src/Dodge/Render/Picture.hs 150;" f drawMenuOrHUD src/Dodge/Render/Picture.hs 57;" f drawMenuScreen src/Dodge/Render/MenuScreen.hs 15;" f drawMouseCursor src/Dodge/Render/Picture.hs 73;" f -drawMouseOver src/Dodge/Render/HUD.hs 103;" f +drawMouseOver src/Dodge/Render/HUD.hs 102;" f drawMousePosition src/Dodge/Debug/Picture.hs 319;" f drawMovingShape src/Dodge/Prop/Draw.hs 67;" f drawMovingShapeCol src/Dodge/Prop/Draw.hs 73;" f @@ -4108,11 +4102,11 @@ drawPointLabel src/Dodge/Render/Label.hs 13;" f drawProjectile src/Dodge/Projectile/Draw.hs 13;" f drawProp src/Dodge/Prop/Draw.hs 15;" f drawProp' src/Dodge/Prop/Draw.hs 12;" f -drawRBOptions src/Dodge/Render/HUD.hs 238;" f +drawRBOptions src/Dodge/Render/HUD.hs 237;" f drawRadarSweep src/Dodge/RadarSweep/Draw.hs 7;" f drawRemoteShell src/Dodge/Projectile/Draw.hs 30;" f drawReturn src/Dodge/Render/Picture.hs 123;" f -drawRootCursor src/Dodge/Render/HUD.hs 71;" f +drawRootCursor src/Dodge/Render/HUD.hs 70;" f drawSSCursor src/Dodge/SelectionSections/Draw.hs 31;" f drawSSMultiCursor src/Dodge/SelectionSections/Draw.hs 42;" f drawSelect src/Dodge/Render/Picture.hs 209;" f @@ -4127,12 +4121,12 @@ drawShell src/Dodge/Projectile/Draw.hs 20;" f drawShockwave src/Dodge/Shockwave/Draw.hs 7;" f drawSpark src/Dodge/Spark/Draw.hs 6;" f drawStaticBall src/Dodge/EnergyBall/Draw.hs 14;" f -drawSubInventory src/Dodge/Render/HUD.hs 160;" f +drawSubInventory src/Dodge/Render/HUD.hs 159;" f drawSweep src/Dodge/Render/Picture.hs 246;" f drawSwitch src/Dodge/Button/Draw.hs 15;" f drawSwitchWire src/Dodge/LevelGen/Switch.hs 28;" f drawTargeting src/Dodge/Targeting/Draw.hs 13;" f -drawTerminalDisplay src/Dodge/Render/HUD.hs 352;" f +drawTerminalDisplay src/Dodge/Render/HUD.hs 351;" f drawTeslaArc src/Dodge/Tesla/Arc/Draw.hs 7;" f drawText src/Picture/Base.hs 220;" f drawTitle src/Dodge/Render/MenuScreen.hs 58;" f @@ -4179,12 +4173,12 @@ encircleDistP src/Dodge/Creature/Boid.hs 21;" f encircleP src/Dodge/Creature/Boid.hs 27;" f endCombineRegex src/Dodge/Update/Input/InGame.hs 245;" f endRegex src/Dodge/Update/Input/InGame.hs 234;" f -enterCombineInv src/Dodge/DisplayInventory.hs 359;" f +enterCombineInv src/Dodge/DisplayInventory.hs 353;" f eqConstr src/SameConstr.hs 17;" f eqPosText src/Dodge/Equipment/Text.hs 6;" f -equipAllocString src/Dodge/Render/HUD.hs 296;" f +equipAllocString src/Dodge/Render/HUD.hs 295;" f equipInfo src/Dodge/Item/Info.hs 104;" f -equipItemSPic src/Dodge/Item/Draw/SPic.hs 65;" f +equipItemSPic src/Dodge/Item/Draw/SPic.hs 66;" f equipPosition src/Dodge/Item/Draw.hs 30;" f equipSiteInfo src/Dodge/Item/Info.hs 221;" f equipSiteToPositions src/Dodge/Inventory/RBList.hs 77;" f @@ -4224,7 +4218,7 @@ fallSmallBounce' src/Dodge/Prop/Moving.hs 33;" f fallSmallBounceDamage src/Dodge/Prop/Moving.hs 11;" f farWallDistDirection src/Dodge/Update/Camera.hs 226;" f fdiv src/ShortShow.hs 27;" f -feet src/Dodge/Creature/Picture.hs 51;" f +feet src/Dodge/Creature/Picture.hs 50;" f ffoldM src/Framebuffer/Update.hs 79;" f filter3 src/FoldableHelp.hs 76;" f filterSectionsPair src/Dodge/DisplayInventory.hs 192;" f @@ -4251,12 +4245,12 @@ flameSpitter src/Dodge/Item/Held/SprayGuns.hs 29;" f flameThrower src/Dodge/Item/Held/SprayGuns.hs 72;" f flameTorrent src/Dodge/Item/Held/SprayGuns.hs 40;" f flameWall src/Dodge/Item/Held/SprayGuns.hs 56;" f -flamerPic src/Dodge/Item/Draw/SPic.hs 328;" f +flamerPic src/Dodge/Item/Draw/SPic.hs 329;" f flareCircleAt src/Dodge/HeldUse.hs 185;" f flatItemCombinations src/Dodge/Combine/Combinations.hs 49;" f flatLookupItems src/Dodge/Combine.hs 38;" f flatShield src/Dodge/Item/Held/Utility.hs 9;" f -flatShieldEquipSPic src/Dodge/Item/Draw/SPic.hs 378;" f +flatShieldEquipSPic src/Dodge/Item/Draw/SPic.hs 379;" f fleeFrom src/Dodge/CreatureEffect.hs 120;" f fleeFromTarget src/Dodge/CreatureEffect.hs 66;" f flickerMod src/Dodge/Placement/Instance/LightSource/Flicker.hs 10;" f @@ -4272,7 +4266,7 @@ flockPointTarget src/Dodge/Creature/Boid.hs 199;" f flockPointTargetR src/Dodge/Creature/Boid.hs 266;" f flockToPointUsing src/Dodge/Creature/Boid.hs 214;" f flockToPointUsing' src/Dodge/Creature/Boid.hs 227;" f -floorItemPickupInfo src/Dodge/Render/HUD.hs 217;" f +floorItemPickupInfo src/Dodge/Render/HUD.hs 216;" f floorItemSPic src/Dodge/Render/ShapePicture.hs 119;" f floorWire src/Dodge/Wire.hs 13;" f foamSprayFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 412;" f @@ -4293,7 +4287,7 @@ forceFoldable src/StrictHelp.hs 7;" f forceSpine src/StrictHelp.hs 4;" f fourEmbossDecoration src/Dodge/Placement/TopDecoration.hs 29;" f fpsText src/Dodge/Render/Picture.hs 47;" f -fractionLoadedAmmo src/Dodge/Item/Draw/SPic.hs 58;" f +fractionLoadedAmmo src/Dodge/Item/Draw/SPic.hs 59;" f frag src/Shader/Data.hs 102;" f freeShaderPointers' src/Shader.hs 37;" f fridgeHumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 370;" f @@ -4330,7 +4324,7 @@ geometryQuickCheckTests test/Spec.hs 55;" f geometryTests test/Spec.hs 17;" f geometryUnitTests test/Spec.hs 22;" f geqConstr src/SameConstr.hs 21;" f -getAmmoLinks src/Dodge/Item/Grammar.hs 81;" f +getAmmoLinks src/Dodge/Item/Grammar.hs 79;" f getArguments src/Dodge/Update/Scroll.hs 152;" f getArguments' src/Dodge/Update/Scroll.hs 140;" f getAvailableListLines src/Dodge/SelectionList.hs 10;" f @@ -4354,7 +4348,7 @@ getNodePos src/Dodge/Path.hs 31;" f getPretty src/AesonHelp.hs 7;" f getPrettyShort src/AesonHelp.hs 10;" f getPromptTM src/Dodge/Terminal/Type.hs 8;" f -getRootItemBounds src/Dodge/Render/HUD.hs 94;" f +getRootItemBounds src/Dodge/Render/HUD.hs 93;" f getSensor src/Dodge/Terminal.hs 189;" f getSmoothScrollValue src/Dodge/SmoothScroll.hs 17;" f getSplitString src/Dodge/Debug/Terminal.hs 123;" f @@ -4429,7 +4423,7 @@ hasLOSIndirect src/Dodge/Base/Collide.hs 215;" f hat src/Dodge/Item/Equipment.hs 94;" f head src/DoubleStack.hs 14;" f headLamp src/Dodge/Item/Equipment.hs 100;" f -headLampShape src/Dodge/Item/Draw/SPic.hs 381;" f +headLampShape src/Dodge/Item/Draw/SPic.hs 382;" f headMap src/Dodge/DoubleTree.hs 170;" f heal src/Dodge/Item/Consumable.hs 17;" f heal25 src/Dodge/Item/Consumable.hs 14;" f @@ -4444,7 +4438,7 @@ heldInfo src/Dodge/Item/Info.hs 49;" f heldItemOffset src/Dodge/Item/HeldOffset.hs 78;" f heldItemOrient2D src/Dodge/Item/HeldOffset.hs 26;" f heldItemRelativeOrient src/Dodge/Item/HeldOffset.hs 31;" f -heldItemSPic src/Dodge/Item/Draw/SPic.hs 173;" f +heldItemSPic src/Dodge/Item/Draw/SPic.hs 174;" f heldPositionInfo src/Dodge/Item/Info.hs 208;" f helpCommand src/Dodge/Terminal.hs 66;" f helpPoly3D src/Polyhedra.hs 125;" f @@ -4532,22 +4526,22 @@ intersectSegsSeg src/Geometry/Intersect.hs 232;" f intervalList src/Geometry.hs 315;" f interweave src/Justify.hs 17;" f intsToPos src/Dodge/Room/Modify/Girder.hs 160;" f -invAdj src/Dodge/Item/Grammar.hs 202;" f +invAdj src/Dodge/Item/Grammar.hs 199;" 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 +invHead src/Dodge/Render/HUD.hs 391;" f invItemLocUpdate src/Dodge/Creature/State.hs 177;" f -invLDT src/Dodge/Item/Grammar.hs 185;" f +invLDT src/Dodge/Item/Grammar.hs 179;" f invRootItemEffs src/Dodge/Creature/State.hs 170;" f -invRootMap src/Dodge/Item/Grammar.hs 194;" f -invRootTrees src/Dodge/Item/Grammar.hs 224;" f +invRootMap src/Dodge/Item/Grammar.hs 188;" f +invRootTrees src/Dodge/Item/Grammar.hs 222;" f invSelectionItem src/Dodge/Inventory/SelectionList.hs 22;" f invShiftPointBy src/Dodge/ShiftPoint.hs 8;" f invSideEff src/Dodge/Creature/State.hs 164;" f invSize src/Dodge/Inventory/CheckSlots.hs 31;" f -invTrees src/Dodge/Item/Grammar.hs 212;" f -invTrees' src/Dodge/Item/Grammar.hs 216;" f +invTrees src/Dodge/Item/Grammar.hs 209;" f +invTrees' src/Dodge/Item/Grammar.hs 213;" f inventoryX src/Dodge/Creature.hs 115;" f inverseSelNumPos src/Dodge/SelectionSections.hs 228;" f inverseSelSecYint src/Dodge/SelectionSections.hs 201;" f @@ -4564,7 +4558,7 @@ isAnimate src/Dodge/Creature/Test.hs 136;" f isCognizant src/Dodge/Creature/Perception.hs 105;" f isConnected src/Dodge/Inventory/Swap.hs 90;" f isElectrical src/Dodge/Data/Damage.hs 42;" f -isFrictionless src/Dodge/Creature/State.hs 427;" f +isFrictionless src/Dodge/Creature/State.hs 432;" f isGas src/Dodge/Euse.hs 63;" f isGroupSelectableSection src/Dodge/Update/Input/InGame.hs 169;" f isInLnk src/Dodge/PlacementSpot.hs 160;" f @@ -4589,7 +4583,7 @@ isotriBWH src/Geometry/Polygon.hs 20;" f itDim src/Dodge/Item/InvSize.hs 20;" f itInvHeight src/Dodge/Item/InvSize.hs 11;" f itUseCharge src/Dodge/Item/Weapon/TriggerType.hs 82;" f -itemBaseConnections src/Dodge/Item/Grammar.hs 112;" f +itemBaseConnections src/Dodge/Item/Grammar.hs 107;" f itemBaseName src/Dodge/Item/Display.hs 45;" f itemBlips src/Dodge/RadarSweep.hs 75;" f itemCombinations src/Dodge/Combine/Combinations.hs 54;" f @@ -4607,16 +4601,15 @@ itemFromHeldType src/Dodge/Item/Held.hs 25;" f itemFromLeftType src/Dodge/Item.hs 76;" f itemInfo src/Dodge/Item/Info.hs 13;" f itemInvColor src/Dodge/Item/InventoryColor.hs 11;" f -itemNumberDisplay src/Dodge/Item/Display.hs 95;" f +itemNumberDisplay src/Dodge/Item/Display.hs 96;" f itemRooms src/Dodge/LockAndKey.hs 40;" f itemRotTreeSPic src/Dodge/Item/Draw/SPic.hs 27;" f -itemSPic src/Dodge/Item/Draw/SPic.hs 33;" f +itemSPic src/Dodge/Item/Draw/SPic.hs 34;" f itemString src/Dodge/Item/Display.hs 42;" f -itemToBreakLists src/Dodge/Item/Grammar.hs 53;" f -itemToFunction src/Dodge/Item/Grammar.hs 87;" f +itemToBreakLists src/Dodge/Item/Grammar.hs 52;" f +itemToFunction src/Dodge/Item/Grammar.hs 85;" f itemTreeSPic src/Dodge/Item/Draw/SPic.hs 22;" f -itemUpdate src/Dodge/Creature/State.hs 399;" f -itemUseEffect src/Dodge/Creature/Impulse/UseItem.hs 52;" f +itemUpdate src/Dodge/Creature/State.hs 404;" f iterateUntil src/MonadHelp.hs 23;" f iterateWhile src/MonadHelp.hs 30;" f itmBaseInfo src/Dodge/Item/Info.hs 23;" f @@ -4625,7 +4618,7 @@ itmSpaceInfo src/Dodge/Item/Info.hs 18;" f itmUsageInfo src/Dodge/Item/Info.hs 197;" f jShape src/Dodge/Placement/Instance/LightSource.hs 85;" f jaggedShape src/Dodge/Block/Debris.hs 191;" f -joinItemsInList src/Dodge/Item/Grammar.hs 175;" f +joinItemsInList src/Dodge/Item/Grammar.hs 169;" 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 @@ -4639,11 +4632,11 @@ keyCard src/Dodge/Item/Held/Utility.hs 19;" f keyCardAnalyserByDoor src/Dodge/Room/LasTurret.hs 69;" f keyCardRoomRunPast src/Dodge/Room/LasTurret.hs 57;" f keyCardRunPastRand src/Dodge/LockAndKey.hs 37;" f -keyPic src/Dodge/Item/Draw/SPic.hs 397;" f +keyPic src/Dodge/Item/Draw/SPic.hs 398;" f keyholeCorridor src/Dodge/Room/Corridor.hs 39;" f knifeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 470;" f -lConnect src/Dodge/Render/Connectors.hs 45;" f -lConnectMulti src/Dodge/Render/Connectors.hs 54;" f +lConnect src/Dodge/Render/Connectors.hs 42;" f +lConnectMulti src/Dodge/Render/Connectors.hs 46;" f lShape src/Dodge/Placement/Instance/LightSource.hs 76;" f lamp src/Dodge/Creature/Lamp.hs 22;" f lampCover src/Dodge/Placement/Instance/LightSource/Cover.hs 8;" f @@ -4651,19 +4644,19 @@ lampCoverWhen src/Dodge/Placement/Instance/LightSource/Cover.hs 19;" f lampCrSPic src/Dodge/Render/ShapePicture.hs 57;" f lasCenSensEdge src/Dodge/Room/LasTurret.hs 112;" f lasDronesPic src/Dodge/Item/Weapon/Drone.hs 22;" f -lasGunPic src/Dodge/Item/Draw/SPic.hs 351;" f +lasGunPic src/Dodge/Item/Draw/SPic.hs 352;" f lasRayAt src/Dodge/HeldUse.hs 305;" f lasSensorTurretTest src/Dodge/Room/LasTurret.hs 105;" f lasTunnel src/Dodge/Room/LasTurret.hs 124;" f lasTunnelRunPast src/Dodge/Room/LasTurret.hs 165;" f lasTurret src/Dodge/Placement/Instance/Turret.hs 23;" f laser src/Dodge/Item/Held/BatteryGuns.hs 38;" f -laserLinkTest src/Dodge/Item/Grammar.hs 117;" f +laserLinkTest src/Dodge/Item/Grammar.hs 112;" f lastMap src/Dodge/DoubleTree.hs 174;" f latchkey src/Dodge/Item/Held/Utility.hs 22;" f launcher src/Dodge/Item/Held/Launcher.hs 12;" f launcherCrit src/Dodge/Creature/LauncherCrit.hs 12;" f -launcherPic src/Dodge/Item/Draw/SPic.hs 331;" f +launcherPic src/Dodge/Item/Draw/SPic.hs 332;" f launcherX src/Dodge/Item/Held/Launcher.hs 29;" f layoutLevelFromSeed src/Dodge/LevelGen.hs 47;" f ldpVerticalSelection src/Dodge/Update/Input/ScreenLayer.hs 72;" f @@ -4678,11 +4671,11 @@ ldtToIndentList src/Dodge/DoubleTree.hs 146;" f ldtToLoc src/Dodge/DoubleTree.hs 187;" f left src/DoubleStack.hs 16;" f leftInfo src/Dodge/Item/Info.hs 94;" f -leftIsParentCombine src/Dodge/Item/Grammar.hs 145;" f -leftItemSPic src/Dodge/Item/Draw/SPic.hs 97;" f +leftIsParentCombine src/Dodge/Item/Grammar.hs 139;" f +leftItemSPic src/Dodge/Item/Draw/SPic.hs 98;" f leftPad src/Padding.hs 14;" f -leftRightCombine src/Dodge/Item/Grammar.hs 159;" f -legsSPic src/Dodge/Item/Draw/SPic.hs 415;" f +leftRightCombine src/Dodge/Item/Grammar.hs 153;" f +legsSPic src/Dodge/Item/Draw/SPic.hs 416;" f liShape src/Dodge/Placement/Instance/LightSource.hs 98;" f light src/Color.hs 104;" f lightSensByDoor src/Dodge/Room/LasTurret.hs 44;" f @@ -4696,7 +4689,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 79;" f +lineOutputTerminal src/Dodge/WorldEffect.hs 70;" f lineSplit src/Justify.hs 26;" f lineThick src/Picture/Base.hs 234;" f lineUp src/Dodge/Creature/Boid.hs 147;" f @@ -4707,13 +4700,13 @@ listConfig src/Dodge/Menu.hs 199;" f listControls src/Dodge/Menu.hs 212;" f listCursorChooseBorderScale src/Dodge/Render/List.hs 135;" f listGuard src/Dodge/Creature/ReaderUpdate.hs 188;" f -listSelectionColorPicture src/Dodge/DisplayInventory.hs 351;" f +listSelectionColorPicture src/Dodge/DisplayInventory.hs 345;" f litCorridor90 src/Dodge/Room/RoadBlock.hs 26;" f -llleft src/Dodge/Item/Grammar.hs 120;" f -llright src/Dodge/Item/Grammar.hs 127;" f +llleft src/Dodge/Item/Grammar.hs 115;" f +llright src/Dodge/Item/Grammar.hs 121;" f lmt src/MatrixHelper.hs 43;" f lnkBothAnd src/Dodge/Room/Procedural.hs 121;" f -lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 381;" f +lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 380;" f lnkPosDir src/Dodge/RoomLink.hs 97;" f loadDodgeConfig src/Dodge/Config/Load.hs 9;" f loadMusic src/Dodge/SoundLogic/LoadSound.hs 21;" f @@ -4843,7 +4836,7 @@ maybeExitCombine src/Dodge/Update/Input/InGame.hs 583;" f maybeOpenTerminal src/Dodge/Update.hs 123;" f maybeReadFile src/Dodge/LoadSeed.hs 10;" f maybeTakeOne src/RandomHelp.hs 111;" f -maybeWarmupStatus src/Dodge/Item/Display.hs 121;" f +maybeWarmupStatus src/Dodge/Item/Display.hs 122;" 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 @@ -4896,8 +4889,8 @@ minOn src/FoldableHelp.hs 35;" f mini1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 334;" f miniGunCrit src/Dodge/Creature.hs 62;" f miniGunX src/Dodge/Item/Held/Cane.hs 80;" f -miniGunXPict src/Dodge/Item/Draw/SPic.hs 306;" f -miniGunXPictItem src/Dodge/Item/Draw/SPic.hs 301;" f +miniGunXPict src/Dodge/Item/Draw/SPic.hs 307;" f +miniGunXPictItem src/Dodge/Item/Draw/SPic.hs 302;" f miniS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 528;" f miniTree2 src/Dodge/Room/Room.hs 106;" f minimumOn src/FoldlHelp.hs 12;" f @@ -5068,7 +5061,6 @@ pauseMenu src/Dodge/Menu.hs 53;" f pauseMenuOptions src/Dodge/Menu.hs 58;" f pauseSound src/Dodge/SoundLogic.hs 41;" f pauseTime src/Dodge/Update.hs 190;" f -pciToCI src/Dodge/Item/Grammar.hs 105;" f peZoneSize src/Dodge/Zoning/Pathing.hs 46;" f pedestalRoom src/Dodge/Room/Containing.hs 50;" f penThing src/Dodge/Bullet.hs 220;" f @@ -5350,7 +5342,7 @@ reflectLaserAlong src/Dodge/Item/Weapon/LaserPath.hs 13;" f refract src/Dodge/Item/Weapon/LaserPath.hs 40;" f refreshOptionsSelectionList src/Dodge/Menu/Option.hs 39;" f regexCombs src/Dodge/DisplayInventory.hs 71;" f -regexList src/Dodge/DisplayInventory.hs 395;" f +regexList src/Dodge/DisplayInventory.hs 389;" f reload1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 442;" f reloadLevelStart src/Dodge/Save.hs 71;" f reloadS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 440;" f @@ -5401,7 +5393,7 @@ rezText' src/Dodge/Story.hs 17;" f rhombus src/Polyhedra.hs 72;" f rifle src/Dodge/Item/Held/Cane.hs 49;" f right src/DoubleStack.hs 16;" f -rightIsParentCombine src/Dodge/Item/Grammar.hs 152;" f +rightIsParentCombine src/Dodge/Item/Grammar.hs 146;" f rightPad src/Padding.hs 22;" f rightPadNoSquash src/Padding.hs 26;" f rlPosDir src/Dodge/RoomLink.hs 94;" f @@ -5488,7 +5480,7 @@ scale3 src/Picture/Base.hs 145;" f scaleMat src/MatrixHelper.hs 59;" f scaleMatrix src/MatrixHelper.hs 56;" f scaleSH src/Shape.hs 267;" f -scalp src/Dodge/Creature/Picture.hs 94;" f +scalp src/Dodge/Creature/Picture.hs 93;" f scancodeToHotkey src/Dodge/Creature/YourControl.hs 69;" f scodeToChar src/Dodge/ScodeToChar.hs 6;" f scorchSPic src/Dodge/Creature/State.hs 104;" f @@ -5524,15 +5516,15 @@ seedStartMenu src/Dodge/Menu.hs 79;" f seedStartOptions src/Dodge/Menu.hs 82;" f segOnCirc src/Geometry.hs 116;" f selCloseObj src/Dodge/Update/Input/InGame.hs 526;" f -selNumPos src/Dodge/Render/HUD.hs 441;" f -selNumPosCardinal src/Dodge/Render/HUD.hs 464;" f +selNumPos src/Dodge/Render/HUD.hs 440;" f +selNumPosCardinal src/Dodge/Render/HUD.hs 463;" f selSecDrawCursor src/Dodge/Render/List.hs 126;" f selSecDrawCursorAt src/Dodge/Render/List.hs 104;" f -selSecSelCol src/Dodge/Render/HUD.hs 493;" f +selSecSelCol src/Dodge/Render/HUD.hs 492;" f selSecSelSize src/Dodge/SelectionSections.hs 180;" f selSecYint src/Dodge/SelectionSections.hs 189;" f selectCreatureDebugItem src/Dodge/Debug.hs 39;" f -selectUse src/Dodge/SelectUse.hs 10;" f +selectUse src/Dodge/SelectUse.hs 12;" 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 @@ -5567,7 +5559,7 @@ setOldPos src/Dodge/Update.hs 462;" f setOutLinks src/Dodge/RoomLink.hs 48;" f setOutLinksByType src/Dodge/RoomLink.hs 57;" f setOutLinksPD src/Dodge/RoomLink.hs 77;" f -setRBCreatureTargeting src/Dodge/Creature/State.hs 378;" f +setRBCreatureTargeting src/Dodge/Creature/State.hs 383;" f setSelWhileDragging src/Dodge/Update/Input/InGame.hs 316;" f setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 85;" f setShaderSource src/Shader/Compile.hs 290;" f @@ -5606,7 +5598,7 @@ shapeVerxAttributes src/Shape/Parameters.hs 13;" f shapeVerxSize src/Shape/Parameters.hs 10;" f shardShape src/Dodge/Block/Debris.hs 181;" f shatterGun src/Dodge/Item/Held/Weapons.hs 8;" f -shatterGunSPic src/Dodge/Item/Draw/SPic.hs 244;" f +shatterGunSPic src/Dodge/Item/Draw/SPic.hs 245;" f shatterWall src/Dodge/Item/Weapon/Shatter.hs 26;" f shellCollisionCheck src/Dodge/Projectile/Update.hs 52;" f shellCollisionEffect src/Dodge/Projectile/Update.hs 48;" f @@ -5653,12 +5645,12 @@ shortPoint2 src/Dodge/ShortShow.hs 4;" f shortShow src/ShortShow.hs 10;" f shotgunS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 526;" f shoulderHeight src/Dodge/Item/HeldOffset.hs 81;" f -shoulderSH src/Dodge/Creature/Picture.hs 137;" f +shoulderSH src/Dodge/Creature/Picture.hs 136;" f shoulderSP src/Dodge/Creature/HandPos.hs 170;" f showAttachItem src/Dodge/Item/Display.hs 61;" f -showAutoRechargeProgress src/Dodge/Item/Display.hs 74;" f -showEquipItem src/Dodge/Item/Display.hs 69;" f -showEquipmentNumber src/Dodge/Item/Display.hs 112;" f +showAutoRechargeProgress src/Dodge/Item/Display.hs 75;" f +showEquipItem src/Dodge/Item/Display.hs 70;" f +showEquipmentNumber src/Dodge/Item/Display.hs 113;" f showInt src/Dodge/Item/Info.hs 32;" f showIntsString src/Dodge/Tree/Compose.hs 129;" f showManObj src/Dodge/TestString.hs 72;" f @@ -5857,7 +5849,7 @@ terminalScreenGlow src/Dodge/Machine/Update.hs 34;" f terminalShape src/Dodge/Machine/Draw.hs 32;" f terminalWheelEvent src/Dodge/Update/Scroll.hs 78;" f teslaGun src/Dodge/Item/Held/BatteryGuns.hs 21;" f -teslaGunPic src/Dodge/Item/Draw/SPic.hs 348;" f +teslaGunPic src/Dodge/Item/Draw/SPic.hs 349;" f teslaParams src/Dodge/Tesla/ItemParams.hs 6;" f testCrossWalls src/Dodge/Room/Path.hs 47;" f testEvent src/Dodge/Event/Test.hs 10;" f @@ -5903,7 +5895,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 132;" f +toLasgunUpdate src/Dodge/Item/Grammar.hs 126;" f toMultiset src/Multiset.hs 64;" f toOnward src/Dodge/Tree/Compose.hs 101;" f toTopLeft src/Dodge/Render/List.hs 219;" f @@ -5912,7 +5904,7 @@ 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 72;" f +toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 53;" f toggleJust src/MaybeHelp.hs 41;" f toggleMap src/Dodge/Update/Input/InGame.hs 547;" f toggleTweakInv src/Dodge/Update/Input/InGame.hs 560;" f @@ -5925,14 +5917,14 @@ topPrismEdgeIndices src/Shader/Poke.hs 327;" f topPrismIndices src/Shader/Poke.hs 402;" f topTestPart src/Dodge/TestString.hs 68;" f torch src/Dodge/Item/Held/Utility.hs 25;" f -torchShape src/Dodge/Item/Draw/SPic.hs 213;" f -torqueCr src/Dodge/WorldEffect.hs 72;" f -torso src/Dodge/Creature/Picture.hs 103;" f +torchShape src/Dodge/Item/Draw/SPic.hs 214;" f +torqueCr src/Dodge/WorldEffect.hs 63;" f +torso src/Dodge/Creature/Picture.hs 102;" f tractCr src/Dodge/TractorBeam/Update.hs 28;" f tractFlIt src/Dodge/TractorBeam/Update.hs 23;" f tractorBeamAt src/Dodge/HeldUse.hs 274;" f tractorGun src/Dodge/Item/Held/BatteryGuns.hs 60;" f -tractorGunPic src/Dodge/Item/Draw/SPic.hs 375;" f +tractorGunPic src/Dodge/Item/Draw/SPic.hs 376;" f tractorPullPos src/Dodge/TractorBeam/Update.hs 33;" f tractorSPic src/Dodge/TractorBeam/Draw.hs 10;" f tranRot src/Picture/Base.hs 124;" f @@ -5985,7 +5977,7 @@ truncate src/Polyhedra/Geodesic.hs 38;" f trunkDepth src/TreeHelp.hs 161;" f tryAssignHotkey src/Dodge/Creature/YourControl.hs 85;" f tryAttachBulletBelt src/Dodge/Euse.hs 39;" f -tryAttachItems src/Dodge/Item/Grammar.hs 24;" f +tryAttachItems src/Dodge/Item/Grammar.hs 23;" f tryChargeBattery src/Dodge/Euse.hs 42;" f tryCombine src/Dodge/Update/Input/InGame.hs 569;" f tryDropSelected src/Dodge/Update/Input/InGame.hs 114;" f @@ -6035,7 +6027,7 @@ upProjectile src/Dodge/Projectile/Update.hs 26;" f updateAllNodes src/TreeHelp.hs 85;" f updateArc src/Dodge/Tesla/Arc.hs 86;" f updateAttachedItems src/Dodge/Creature/State.hs 240;" f -updateAutoRecharge src/Dodge/Creature/State.hs 410;" f +updateAutoRecharge src/Dodge/Creature/State.hs 415;" f updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 455;" f updateBarrel src/Dodge/Barreloid.hs 45;" f updateBarreloid src/Dodge/Barreloid.hs 13;" f @@ -6078,8 +6070,8 @@ updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 399;" f updateInstantBullets src/Dodge/Update.hs 642;" f updateInv src/Dodge/Creature/State.hs 154;" f updateInventoryPositioning src/Dodge/DisplayInventory.hs 89;" f -updateItemTargeting src/Dodge/Creature/State.hs 347;" f -updateItemWithOrientation src/Dodge/Creature/State.hs 262;" f +updateItemTargeting src/Dodge/Creature/State.hs 352;" f +updateItemWithOrientation src/Dodge/Creature/State.hs 261;" f updateKeyInGame src/Dodge/Update/Input/InGame.hs 393;" f updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 381;" f updateLampoid src/Dodge/Lampoid.hs 12;" f @@ -6095,7 +6087,7 @@ updateMouseContextGame src/Dodge/Update.hs 315;" f updateMouseHeldInGame src/Dodge/Update/Input/InGame.hs 87;" f updateMouseInGame src/Dodge/Update/Input/InGame.hs 79;" f updateMouseReleaseInGame src/Dodge/Update/Input/InGame.hs 142;" f -updateMovement src/Dodge/Creature/State.hs 417;" f +updateMovement src/Dodge/Creature/State.hs 422;" f updateObjCatMaybes src/Dodge/Update.hs 520;" f updateObjMapMaybe src/Dodge/Update.hs 513;" f updatePastWorlds src/Dodge/Update.hs 415;" f @@ -6145,7 +6137,7 @@ updateWheelEvent src/Dodge/Update/Scroll.hs 19;" f updateWheelEvents src/Dodge/Update.hs 402;" f updateWorldEventFlag src/Dodge/Update.hs 117;" f updateWorldEventFlags src/Dodge/Update.hs 105;" f -upperBody src/Dodge/Creature/Picture.hs 133;" f +upperBody src/Dodge/Creature/Picture.hs 132;" f upperBox src/Shape.hs 154;" f upperBoxHalf src/Shape.hs 220;" f upperBoxMT src/Shape.hs 145;" f @@ -6163,8 +6155,8 @@ upperPrismPolyST src/Shape.hs 107;" f upperPrismPolySU src/Shape.hs 113;" f upperPrismPolyTS src/Shape.hs 119;" f upperRounded src/Shape.hs 183;" f -useBreakL src/Dodge/Item/Grammar.hs 30;" f -useBreakListsLinkTest src/Dodge/Item/Grammar.hs 38;" f +useBreakL src/Dodge/Item/Grammar.hs 29;" f +useBreakListsLinkTest src/Dodge/Item/Grammar.hs 37;" f useBulletPayload src/Dodge/Bullet.hs 101;" f useC src/Dodge/Cuse.hs 8;" f useC' src/Dodge/Cuse.hs 13;" f @@ -6172,9 +6164,9 @@ useE src/Dodge/Euse.hs 23;" f useEquipment src/Dodge/Creature/State.hs 148;" f useGasParams src/Dodge/HeldUse.hs 424;" f useHotKey src/Dodge/Creature/YourControl.hs 48;" f -useItemHotkey src/Dodge/Creature/Impulse/UseItem.hs 143;" f -useItemLeftClick src/Dodge/Creature/Impulse/UseItem.hs 117;" f -useItemLeftClick' src/Dodge/Creature/Impulse/UseItem.hs 130;" f +useItemHotkey src/Dodge/Creature/Impulse/UseItem.hs 132;" f +useItemLeftClick src/Dodge/Creature/Impulse/UseItem.hs 98;" f +useItemLeftClick' src/Dodge/Creature/Impulse/UseItem.hs 119;" f useL src/Dodge/Luse.hs 11;" f useLnkRoomPos src/Dodge/PlacementSpot.hs 244;" f useLoadedAmmo src/Dodge/HeldUse.hs 216;" f @@ -6184,12 +6176,12 @@ usePayload src/Dodge/Payload.hs 7;" f useRewindGun src/Dodge/Luse.hs 39;" f useRoomPosCond src/Dodge/PlacementSpot.hs 178;" f useRoomPosRoomCond src/Dodge/PlacementSpot.hs 181;" f -useRootItem src/Dodge/Creature/Impulse/UseItem.hs 25;" f +useRootItem src/Dodge/Creature/Impulse/UseItem.hs 24;" f useStopWatch src/Dodge/Luse.hs 21;" f useTimeCheck src/Dodge/Item/Weapon/TriggerType.hs 127;" f useTimeScrollGun src/Dodge/Luse.hs 29;" f useUnusedLnk src/Dodge/PlacementSpot.hs 169;" f -useUpdate src/Dodge/Creature/State.hs 402;" f +useUpdate src/Dodge/Creature/State.hs 407;" f usedRoomInLinkPoss src/Dodge/PlacementSpot.hs 196;" f usedRoomLinkPoss src/Dodge/PlacementSpot.hs 203;" f v2z src/Geometry/Vector3D.hs 93;" f @@ -6219,7 +6211,7 @@ visibleWalls src/Dodge/Base/Collide.hs 123;" f visionCheck src/Dodge/Creature/Perception.hs 152;" f vocalizationTest src/Dodge/Creature/Vocalization.hs 8;" f volleyGun src/Dodge/Item/Held/Cane.hs 30;" f -volleyGunShape src/Dodge/Item/Draw/SPic.hs 289;" f +volleyGunShape src/Dodge/Item/Draw/SPic.hs 290;" f waistSP src/Dodge/Creature/HandPos.hs 173;" f walkNozzle src/Dodge/HeldUse.hs 242;" f walkableNodeNear src/Dodge/Path.hs 48;" f @@ -6296,7 +6288,7 @@ yV2 src/Geometry/Vector.hs 203;" f yellow src/Color.hs 17;" f you src/Dodge/Base/You.hs 18;" f youDropItem src/Dodge/Creature/Action.hs 190;" f -yourAugmentedItem src/Dodge/Render/HUD.hs 224;" f +yourAugmentedItem src/Dodge/Render/HUD.hs 223;" f yourControl src/Dodge/Creature/YourControl.hs 22;" f yourDefaultSpeed src/Dodge/Default/Creature.hs 134;" f yourDefaultStrideLength src/Dodge/Default/Creature.hs 137;" f