From adc0878a28547f6fe174af7546f018e8bc2d4d02 Mon Sep 17 00:00:00 2001 From: justin Date: Wed, 1 Jan 2025 21:58:07 +0000 Subject: [PATCH] Allow use of items while examine subinventory shows Still not sure what to do with right click scrolling, item swapping --- src/Dodge/Creature/Impulse/UseItem.hs | 8 +- src/Dodge/Creature/YourControl.hs | 31 +- src/Dodge/Data/Equipment/Misc.hs | 5 + src/Dodge/Data/HUD.hs | 2 +- src/Dodge/Data/Item/Combine.hs | 3 +- src/Dodge/Inventory/SelectionList.hs | 5 + src/Dodge/Item.hs | 3 +- src/Dodge/Item/Display.hs | 5 +- src/Dodge/Item/Draw/SPic.hs | 3 +- src/Dodge/Item/Grammar.hs | 2 +- src/Dodge/Item/Scope.hs | 15 +- src/Dodge/Render/HUD.hs | 4 +- src/Dodge/Update/Input/InGame.hs | 90 ++--- src/Dodge/Update/Scroll.hs | 10 +- tags | 468 +++++++++++++------------- 15 files changed, 343 insertions(+), 311 deletions(-) diff --git a/src/Dodge/Creature/Impulse/UseItem.hs b/src/Dodge/Creature/Impulse/UseItem.hs index cc38604e6..9fbf56098 100644 --- a/src/Dodge/Creature/Impulse/UseItem.hs +++ b/src/Dodge/Creature/Impulse/UseItem.hs @@ -44,7 +44,7 @@ useItemLoc cr loc pt w | RemoteDetonatorSF <- sf , pt == InitialPress = return $ activateDetonator ldt w - | ITEMSCANNER <- itm ^. itType + | ITEMSCAN <- itm ^. itType , pt == InitialPress = return $ toggleExamineInv w | Just b <- itm ^? itUse . useToggle @@ -126,7 +126,5 @@ toggleEquipmentAt invid cr w = case getEquipmentAllocation invid w of toggleExamineInv :: World -> World toggleExamineInv w = case w ^? hud . hudElement . subInventory of - Just ExamineInventory{} -> w & thepointer .~ NoSubInventory - _ -> w & thepointer .~ ExamineInventory - where - thepointer = hud . hudElement . subInventory + Just ExamineInventory{} -> w & hud . hudElement . subInventory .~ NoSubInventory + _ -> w & hud . hudElement . subInventory .~ ExamineInventory diff --git a/src/Dodge/Creature/YourControl.hs b/src/Dodge/Creature/YourControl.hs index be12969fa..219b28129 100644 --- a/src/Dodge/Creature/YourControl.hs +++ b/src/Dodge/Creature/YourControl.hs @@ -23,8 +23,9 @@ import qualified SDL yourControl :: Creature -> World -> World yourControl _ w | inTextInputFocus w = w - | Just x <- w ^? hud . hudElement . subInventory - , f x = w + | Just x <- w ^? hud . hudElement . subInventory + , f x = + w & cWorld . lWorld . creatures . ix 0 %~ (wasdWithAiming w . setCrPosture pkeys) & tryClickUse pkeys @@ -69,6 +70,11 @@ hotkeyToScancode :: Hotkey -> SDL.Scancode hotkeyToScancode x = case x of HotkeyQ -> SDL.ScancodeQ HotkeyE -> SDL.ScancodeE + HotkeyR -> SDL.ScancodeE + HotkeyZ -> SDL.ScancodeZ + HotkeyX -> SDL.ScancodeX + HotkeyC -> SDL.ScancodeC + HotkeyV -> SDL.ScancodeV Hotkey1 -> SDL.Scancode1 Hotkey2 -> SDL.Scancode2 Hotkey3 -> SDL.Scancode3 @@ -84,6 +90,11 @@ scancodeToHotkey :: SDL.Scancode -> Maybe Hotkey scancodeToHotkey x = case x of SDL.ScancodeQ -> Just HotkeyQ SDL.ScancodeE -> Just HotkeyE + SDL.ScancodeR -> Just HotkeyR + SDL.ScancodeZ -> Just HotkeyZ + SDL.ScancodeX -> Just HotkeyX + SDL.ScancodeC -> Just HotkeyC + SDL.ScancodeV -> Just HotkeyV SDL.Scancode1 -> Just Hotkey1 SDL.Scancode2 -> Just Hotkey2 SDL.Scancode3 -> Just Hotkey3 @@ -166,16 +177,14 @@ tryClickUse :: M.Map SDL.MouseButton Int -> World -> World tryClickUse pkeys w = fromMaybe w $ do ltime <- pkeys ^? ix SDL.ButtonLeft rtime <- pkeys ^? ix SDL.ButtonRight - guard $ ltime <= rtime && inTopInv - invid <- w - ^? cWorld . lWorld . creatures . ix 0 - . crManipulation - . manObject - . imSelectedItem + guard $ ltime <= rtime + invid <- + w + ^? cWorld . lWorld . creatures . ix 0 + . crManipulation + . manObject + . imSelectedItem useItem invid (f ltime) w where f 0 = InitialPress f _ = ShortPress - inTopInv = case w ^. hud . hudElement of - DisplayInventory{_subInventory = NoSubInventory{}} -> True - _ -> False diff --git a/src/Dodge/Data/Equipment/Misc.hs b/src/Dodge/Data/Equipment/Misc.hs index 011a8cec3..ac4fbca23 100644 --- a/src/Dodge/Data/Equipment/Misc.hs +++ b/src/Dodge/Data/Equipment/Misc.hs @@ -32,6 +32,11 @@ data EquipSite data Hotkey = HotkeyQ | HotkeyE + | HotkeyR + | HotkeyZ + | HotkeyX + | HotkeyC + | HotkeyV | Hotkey1 | Hotkey2 | Hotkey3 diff --git a/src/Dodge/Data/HUD.hs b/src/Dodge/Data/HUD.hs index a111b8b5f..383cad533 100644 --- a/src/Dodge/Data/HUD.hs +++ b/src/Dodge/Data/HUD.hs @@ -23,7 +23,7 @@ data HUDElement , _diInvFilter :: Maybe String , _diCloseFilter :: Maybe String } - | DisplayCarte +-- | DisplayCarte data SubInventory = NoSubInventory diff --git a/src/Dodge/Data/Item/Combine.hs b/src/Dodge/Data/Item/Combine.hs index bf0ada0cd..82c54b25e 100644 --- a/src/Dodge/Data/Item/Combine.hs +++ b/src/Dodge/Data/Item/Combine.hs @@ -21,7 +21,8 @@ data ItemType | TARGETING {_ibtTargeting :: TargetingType} | BULLETMOD {_ibtBulletMod :: BulletMod} | STICKYMOD - | ITEMSCANNER + | ITEMSCAN + | MAPPER | INTROSCAN {_ibtIntroScanType :: IntroScanType} deriving (Eq, Ord, Show, Read) diff --git a/src/Dodge/Inventory/SelectionList.hs b/src/Dodge/Inventory/SelectionList.hs index 8d130ba90..82919a892 100644 --- a/src/Dodge/Inventory/SelectionList.hs +++ b/src/Dodge/Inventory/SelectionList.hs @@ -44,6 +44,11 @@ hotkeyToString :: Hotkey -> String hotkeyToString x = case x of HotkeyQ -> "[Q]" HotkeyE -> "[E]" + HotkeyR -> "[R]" + HotkeyZ -> "[Z]" + HotkeyX -> "[X]" + HotkeyC -> "[C]" + HotkeyV -> "[V]" Hotkey1 -> "[1]" Hotkey2 -> "[2]" Hotkey3 -> "[3]" diff --git a/src/Dodge/Item.hs b/src/Dodge/Item.hs index e6c905337..f9c676f6a 100644 --- a/src/Dodge/Item.hs +++ b/src/Dodge/Item.hs @@ -25,8 +25,9 @@ itemFromBase = \case TARGETING tt -> targetingScope tt BULLETMOD bm -> bulletModule bm STICKYMOD -> stickyMod - ITEMSCANNER -> itemScanner + ITEMSCAN -> itemScan INTROSCAN t -> introScan t + MAPPER -> mapper itemFromAmmoMag :: AmmoMagType -> Item itemFromAmmoMag at = case at of diff --git a/src/Dodge/Item/Display.hs b/src/Dodge/Item/Display.hs index c40d1d3a3..1eade3ccd 100644 --- a/src/Dodge/Item/Display.hs +++ b/src/Dodge/Item/Display.hs @@ -66,8 +66,9 @@ itemBaseName = \case BULLETMOD (BulletModPayload btt) -> show btt BULLETMOD (BulletModEffect btt) -> show btt STICKYMOD -> "STICKYMOD" - ITEMSCANNER -> "ITEMSCANNER" + ITEMSCAN -> "ITEMSCAN" INTROSCAN t -> show t + MAPPER -> "MAPPER" showAttachItem :: AttachType -> String showAttachItem t = case t of @@ -95,7 +96,7 @@ showEquipItem eit = case eit of itemNumberDisplay :: World -> Creature -> ComposedItem -> [String] itemNumberDisplay w cr ci | Just x <- ci ^? _1 . itUse . useToggle = [show x] - | ITEMSCANNER <- ci ^. _1 . itType + | ITEMSCAN <- ci ^. _1 . itType , Just ExamineInventory <- w ^? hud . hudElement . subInventory = ["ACTIVE"] | EQUIP WRIST_ECG <- ci ^. _1 . itType = diff --git a/src/Dodge/Item/Draw/SPic.hs b/src/Dodge/Item/Draw/SPic.hs index 4add2f0ed..8a619015c 100644 --- a/src/Dodge/Item/Draw/SPic.hs +++ b/src/Dodge/Item/Draw/SPic.hs @@ -41,7 +41,8 @@ itemSPic it = case it ^. itType of TARGETING{} -> defSPic BULLETMOD{} -> defSPic STICKYMOD -> defSPic - ITEMSCANNER -> defSPic + ITEMSCAN -> defSPic + MAPPER -> defSPic INTROSCAN {} -> defSPic craftItemSPic :: CraftType -> Shape diff --git a/src/Dodge/Item/Grammar.hs b/src/Dodge/Item/Grammar.hs index 6367f13da..431676a74 100644 --- a/src/Dodge/Item/Grammar.hs +++ b/src/Dodge/Item/Grammar.hs @@ -131,7 +131,7 @@ getAmmoLinks itm = itemToFunction :: Item -> ItemStructuralFunction itemToFunction itm = case itm ^. itType of - ITEMSCANNER -> ToggleSF + ITEMSCAN -> ToggleSF INTROSCAN {} -> IntroScanSF HELD LASER -> WeaponTargetingSF HELD{} -> case itm ^? itUseCondition of diff --git a/src/Dodge/Item/Scope.hs b/src/Dodge/Item/Scope.hs index be7a3fe24..91d025ab8 100644 --- a/src/Dodge/Item/Scope.hs +++ b/src/Dodge/Item/Scope.hs @@ -15,8 +15,9 @@ module Dodge.Item.Scope ( bulletModule, bulletPayloadModule, smokeReducer, - itemScanner, + itemScan, introScan, + mapper, ) where --import Dodge.Data.BlBl @@ -55,13 +56,19 @@ introScan t = & itType .~ INTROSCAN t & itUse .~ UseNothing -itemScanner :: Item -itemScanner = +itemScan :: Item +itemScan = defaultHeldItem - & itType .~ ITEMSCANNER + & itType .~ ITEMSCAN & itUse .~ UseNothing & itEffect . ieOnDrop .~ ItemCancelExamineInventory +mapper :: Item +mapper = + defaultHeldItem + & itType .~ MAPPER + & itUse .~ UseNothing + bulletModule :: BulletMod -> Item bulletModule bm = defaultHeldItem diff --git a/src/Dodge/Render/HUD.hs b/src/Dodge/Render/HUD.hs index c0ab82a20..c40c16a5c 100644 --- a/src/Dodge/Render/HUD.hs +++ b/src/Dodge/Render/HUD.hs @@ -31,7 +31,7 @@ import Dodge.Item.Info import Dodge.Item.InvSize import Dodge.ListDisplayParams import Dodge.Render.Connectors -import Dodge.Render.HUD.Carte +--import Dodge.Render.HUD.Carte import Dodge.Render.List import Dodge.ScreenPos import Dodge.SelectionSections @@ -46,7 +46,7 @@ import SDL (MouseButton (..)) drawHUD :: Configuration -> World -> Picture drawHUD cfig w = case w ^. hud . hudElement of - DisplayCarte -> drawCarte cfig w +-- DisplayCarte -> drawCarte cfig w DisplayInventory{_diSections = sections, _subInventory = subinv} -> drawInventory sections w cfig <> drawSubInventory subinv cfig w diff --git a/src/Dodge/Update/Input/InGame.hs b/src/Dodge/Update/Input/InGame.hs index 2c1200ea3..ba5b05fb9 100644 --- a/src/Dodge/Update/Input/InGame.hs +++ b/src/Dodge/Update/Input/InGame.hs @@ -32,15 +32,15 @@ import Dodge.SoundLogic import Dodge.Terminal import Dodge.Update.Input.DebugTest import Dodge.Update.Input.Text -import Dodge.WorldPos -import Geometry +--import Dodge.WorldPos +--import Geometry import LensHelp import NewInt import SDL updateUseInputInGame :: Universe -> Universe updateUseInputInGame u = updateFunctionKeys $ case u ^. uvWorld . hud . hudElement of - DisplayCarte -> over uvWorld updatePressedButtonsCarte u +-- DisplayCarte -> over uvWorld updatePressedButtonsCarte u DisplayInventory{_subInventory = si, _diSelection = disel} -> case si of DisplayTerminal tmid -> updateKeysInTerminal tmid u CombineInventory{_ciSections = sss, _ciSelection = msel@(Just (-1, _, _))} -> @@ -389,30 +389,30 @@ updateFunctionKey uv ScancodeF3 _ = doDebugTest uv updateFunctionKey uv ScancodeF4 _ = doDebugTest2 uv updateFunctionKey uv _ _ = uv -updatePressedButtonsCarte :: World -> World -updatePressedButtonsCarte w = updatePressedButtonsCarte' (_mouseButtons (_input w)) w +--updatePressedButtonsCarte :: World -> World +--updatePressedButtonsCarte w = updatePressedButtonsCarte' (_mouseButtons (_input w)) w -updatePressedButtonsCarte' :: M.Map MouseButton Int -> World -> World -updatePressedButtonsCarte' pkeys w - | isDown ButtonRight = - w & hud . carteCenter %~ (-.- trans) - | isDown ButtonLeft = - w - & hud . carteRot -~ rot - & hud . carteZoom *~ czoom - | otherwise = w - where - isDown but = but `M.member` pkeys - mbutpos but = theinput ^. heldPos . at but - rot = maybe 0 (angleBetween (_mousePos (_input w))) $ mbutpos SDL.ButtonLeft - czoom = fromMaybe 1 $ do - p <- mbutpos SDL.ButtonLeft - return $ magV (_mousePos theinput) / magV p - theinput = w ^. input - trans = fromMaybe 0 $ do - p <- mbutpos SDL.ButtonRight - return . rotateV (w ^. hud . carteRot) $ - 1 / (w ^. hud . carteZoom) *.* (_mousePos (_input w) -.- p) +--updatePressedButtonsCarte' :: M.Map MouseButton Int -> World -> World +--updatePressedButtonsCarte' pkeys w +-- | isDown ButtonRight = +-- w & hud . carteCenter %~ (-.- trans) +-- | isDown ButtonLeft = +-- w +-- & hud . carteRot -~ rot +-- & hud . carteZoom *~ czoom +-- | otherwise = w +-- where +-- isDown but = but `M.member` pkeys +-- mbutpos but = theinput ^. heldPos . at but +-- rot = maybe 0 (angleBetween (_mousePos (_input w))) $ mbutpos SDL.ButtonLeft +-- czoom = fromMaybe 1 $ do +-- p <- mbutpos SDL.ButtonLeft +-- return $ magV (_mousePos theinput) / magV p +-- theinput = w ^. input +-- trans = fromMaybe 0 $ do +-- p <- mbutpos SDL.ButtonRight +-- return . rotateV (w ^. hud . carteRot) $ +-- 1 / (w ^. hud . carteZoom) *.* (_mousePos (_input w) -.- p) updateKeysInTerminal :: Int -> Universe -> Universe updateKeysInTerminal tmid u = @@ -437,7 +437,7 @@ updateInitialPressInGame uv sc = case sc of ScancodeSpace -> over uvWorld spaceAction uv ScancodeP -> pauseGame uv ScancodeF -> over uvWorld youDropItem uv - ScancodeM -> toggleMap uv +-- ScancodeM -> toggleMap uv ScancodeT -> over uvWorld testEvent uv ScancodeC -> toggleCombineInv uv -- the following should be put in a more sensible place @@ -538,7 +538,7 @@ pauseGame u = u & uvScreenLayers .~ [pauseMenu u] spaceAction :: World -> World spaceAction w = case w ^. hud . hudElement of - DisplayCarte -> w & hud . carteCenter .~ theLoc +-- DisplayCarte -> w & hud . carteCenter .~ theLoc DisplayInventory{_subInventory = NoSubInventory{}} -> fromMaybe w $ do cobj <- selCloseObj w return $ case cobj of @@ -553,11 +553,11 @@ spaceAction w = case w ^. hud . hudElement of & hud . hudElement . subInventory .~ NoSubInventory & worldEventFlags . at InventoryChange ?~ () _ -> w & hud . hudElement . subInventory .~ NoSubInventory - where - theLoc = - doWorldPos - (w ^?! cWorld . lWorld . seenLocations . ix (w ^. cWorld . lWorld . selLocation) . _1) - w +-- where +-- theLoc = +-- doWorldPos +-- (w ^?! cWorld . lWorld . seenLocations . ix (w ^. cWorld . lWorld . selLocation) . _1) +-- w selCloseObj :: World -> Maybe (Either FloorItem Button) selCloseObj w = selobj <|> firstcitem <|> firstcbut @@ -580,18 +580,18 @@ selCloseObj w = selobj <|> firstcitem <|> firstcbut k <- w ^? hud . closeButtons . ix 0 fmap Right $ w ^? cWorld . lWorld . buttons . ix k -toggleMap :: Universe -> Universe -toggleMap u = case u ^. uvWorld . hud . hudElement of - DisplayCarte -> - u & uvWorld . hud . hudElement - .~ DisplayInventory - { _subInventory = NoSubInventory - , _diSections = mempty - , _diSelection = Nothing - , _diInvFilter = mempty - , _diCloseFilter = mempty - } - _ -> u & uvWorld . hud . hudElement .~ DisplayCarte +--toggleMap :: Universe -> Universe +--toggleMap u = case u ^. uvWorld . hud . hudElement of +-- DisplayCarte -> +-- u & uvWorld . hud . hudElement +-- .~ DisplayInventory +-- { _subInventory = NoSubInventory +-- , _diSections = mempty +-- , _diSelection = Nothing +-- , _diInvFilter = mempty +-- , _diCloseFilter = mempty +-- } +-- _ -> u & uvWorld . hud . hudElement .~ DisplayCarte tryCombine :: (Int, Int) -> World -> World tryCombine (i, j) w = fromMaybe w $ do diff --git a/src/Dodge/Update/Scroll.hs b/src/Dodge/Update/Scroll.hs index 6c88b278f..3ca368b5e 100644 --- a/src/Dodge/Update/Scroll.hs +++ b/src/Dodge/Update/Scroll.hs @@ -14,15 +14,15 @@ import Dodge.SelectionSections --import Dodge.SoundLogic import Dodge.Terminal --import Dodge.Tweak -import qualified IntMapHelp as IM +--import qualified IntMapHelp as IM import LensHelp import SDL updateWheelEvent :: Int -> World -> World updateWheelEvent yi w = case w ^. hud . hudElement of - DisplayCarte - | bdown ButtonRight -> w & hud . carteZoom %~ min 0.75 . max 0.05 . ((1 + y * 0.1) *) - | otherwise -> w & cWorld . lWorld . selLocation %~ (`mod` numLocs) . (+ yi) +-- DisplayCarte +-- | bdown ButtonRight -> w & hud . carteZoom %~ min 0.75 . max 0.05 . ((1 + y * 0.1) *) +-- | otherwise -> w & cWorld . lWorld . selLocation %~ (`mod` numLocs) . (+ yi) DisplayInventory{_subInventory = NoSubInventory{}} -- functions that modify the inventory should be centralised so that -- this lock can be sensibly applied, perhaps @@ -46,7 +46,7 @@ updateWheelEvent yi w = case w ^. hud . hudElement of esite <- you w ^? crInv . ix invid . itUse . uequipEffect . eeType return $ length $ eqSiteToPositions esite y = fromIntegral yi - numLocs = (fst . IM.findMax $ (w ^. cWorld . lWorld . seenLocations)) + 1 +-- numLocs = (fst . IM.findMax $ (w ^. cWorld . lWorld . seenLocations)) + 1 bdown b = b `M.member` _mouseButtons (_input w) invKeyDown = ScancodeCapsLock `M.member` _pressedKeys (_input w) diff --git a/tags b/tags index facf3e81f..b6827cc38 100644 --- a/tags +++ b/tags @@ -19,20 +19,20 @@ <$> src/Dodge/Data/Creature.hs 88;" o <$> src/Dodge/Data/LWorld.hs 159;" 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 +AIUNIT src/Dodge/Data/Item/Combine.hs 59;" C +ALTERIFLE src/Dodge/Data/Item/Combine.hs 139;" 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 +AMR src/Dodge/Data/Item/Combine.hs 144;" C +ANTIMATTER src/Dodge/Data/Item/Combine.hs 53;" 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 -AUTOAMR src/Dodge/Data/Item/Combine.hs 144;" C -AUTOPISTOL src/Dodge/Data/Item/Combine.hs 130;" C -AUTORIFLE src/Dodge/Data/Item/Combine.hs 139;" C +AUGMENTEDHUD src/Dodge/Data/Item/Combine.hs 87;" C +AUTOAMR src/Dodge/Data/Item/Combine.hs 145;" C +AUTOPISTOL src/Dodge/Data/Item/Combine.hs 131;" C +AUTORIFLE src/Dodge/Data/Item/Combine.hs 140;" C AZURE src/Color/Data.hs 23;" C AccessTerminal src/Dodge/Data/WorldEffect.hs 27;" C Action src/Dodge/Data/ActionPlan.hs 78;" t @@ -60,7 +60,7 @@ AmmoEffectSF src/Dodge/Data/ComposedItem.hs 59;" C AmmoInLink src/Dodge/Data/ComposedItem.hs 17;" C AmmoMag src/Dodge/Data/Item.hs 34;" C AmmoMagSF src/Dodge/Data/ComposedItem.hs 50;" C -AmmoMagType src/Dodge/Data/Item/Combine.hs 90;" t +AmmoMagType src/Dodge/Data/Item/Combine.hs 91;" t AmmoModLink src/Dodge/Data/ComposedItem.hs 19;" C AmmoModifierSF src/Dodge/Data/ComposedItem.hs 56;" C AmmoParams src/Dodge/Data/Item/Use.hs 108;" t @@ -95,7 +95,7 @@ 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 68;" t -AttachType src/Dodge/Data/Item/Combine.hs 75;" t +AttachType src/Dodge/Data/Item/Combine.hs 76;" 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 @@ -110,26 +110,26 @@ 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 Awareness src/Dodge/Creature/Picture/Awareness.hs 1;" m -BANGCONE src/Dodge/Data/Item/Combine.hs 132;" C -BANGROD src/Dodge/Data/Item/Combine.hs 141;" C -BANGSTICK src/Dodge/Data/Item/Combine.hs 124;" C -BATTERY src/Dodge/Data/Item/Combine.hs 95;" C -BATTERYPACK src/Dodge/Data/Item/Combine.hs 119;" C -BELTMAG src/Dodge/Data/Item/Combine.hs 93;" C +BANGCONE src/Dodge/Data/Item/Combine.hs 133;" C +BANGROD src/Dodge/Data/Item/Combine.hs 142;" C +BANGSTICK src/Dodge/Data/Item/Combine.hs 125;" C +BATTERY src/Dodge/Data/Item/Combine.hs 96;" C +BATTERYPACK src/Dodge/Data/Item/Combine.hs 120;" C +BELTMAG src/Dodge/Data/Item/Combine.hs 94;" C BLACK src/Color/Data.hs 28;" C -BLINKER src/Dodge/Data/Item/Combine.hs 164;" C -BLINKERUNSAFE src/Dodge/Data/Item/Combine.hs 165;" C -BLOWTORCH src/Dodge/Data/Item/Combine.hs 150;" C +BLINKER src/Dodge/Data/Item/Combine.hs 165;" C +BLINKERUNSAFE src/Dodge/Data/Item/Combine.hs 166;" C +BLOWTORCH src/Dodge/Data/Item/Combine.hs 151;" C BLUE src/Color/Data.hs 17;" C -BLUNDERBUSS src/Dodge/Data/Item/Combine.hs 133;" C +BLUNDERBUSS src/Dodge/Data/Item/Combine.hs 134;" C BLUNT src/Dodge/Data/Damage/Type.hs 13;" C BQuad src/Geometry/Bezier.hs 9;" t -BRAINHAT src/Dodge/Data/Item/Combine.hs 110;" C -BULLETBELTBRACER src/Dodge/Data/Item/Combine.hs 118;" C -BULLETBELTPACK src/Dodge/Data/Item/Combine.hs 117;" C +BRAINHAT src/Dodge/Data/Item/Combine.hs 111;" C +BULLETBELTBRACER src/Dodge/Data/Item/Combine.hs 119;" C +BULLETBELTPACK src/Dodge/Data/Item/Combine.hs 118;" C BULLETMOD src/Dodge/Data/Item/Combine.hs 22;" C -BULLETSYNTH src/Dodge/Data/Item/Combine.hs 77;" C -BURSTRIFLE src/Dodge/Data/Item/Combine.hs 140;" C +BULLETSYNTH src/Dodge/Data/Item/Combine.hs 78;" C +BURSTRIFLE src/Dodge/Data/Item/Combine.hs 141;" C BackdropCursor src/Dodge/Data/SelectionList.hs 21;" C BackgroundSound src/Dodge/Data/SoundOrigin.hs 15;" C Ball src/Dodge/Tesla/Ball.hs 1;" m @@ -243,18 +243,18 @@ ButtonEvent src/Dodge/Data/Button.hs 22;" t ButtonPress src/Dodge/Data/Button.hs 24;" C ButtonSimpleSwith src/Dodge/Data/Button.hs 40;" C ButtonState src/Dodge/Data/Button.hs 63;" t -CAMERA src/Dodge/Data/Item/Combine.hs 59;" C -CAN src/Dodge/Data/Item/Combine.hs 40;" C +CAMERA src/Dodge/Data/Item/Combine.hs 60;" C +CAN src/Dodge/Data/Item/Combine.hs 41;" C CDoNothing src/Dodge/Data/Item/HeldUse.hs 15;" C CHARTREUSE src/Color/Data.hs 25;" C -CHEMFUELPOUCH src/Dodge/Data/Item/Combine.hs 96;" C +CHEMFUELPOUCH src/Dodge/Data/Item/Combine.hs 97;" C CHeal src/Dodge/Data/Item/HeldUse.hs 16;" C CIRCLE src/Dodge/Data/GenParams.hs 20;" C CME src/Dodge/Data/MuzzleEffect.hs 11;" C CONCUSSIVE src/Dodge/Data/Damage/Type.hs 22;" C CRAFT src/Dodge/Data/Item/Combine.hs 18;" C -CREATUREDETECTOR src/Dodge/Data/Item/Combine.hs 170;" C -CREATURESENSOR src/Dodge/Data/Item/Combine.hs 69;" C +CREATUREDETECTOR src/Dodge/Data/Item/Combine.hs 171;" C +CREATURESENSOR src/Dodge/Data/Item/Combine.hs 70;" C CRUSHING src/Dodge/Data/Damage/Type.hs 16;" C CUTTING src/Dodge/Data/Damage/Type.hs 14;" C CWGen src/Dodge/Data/CWorld.hs 35;" t @@ -354,7 +354,7 @@ Configuration src/Dodge/Data/Config.hs 38;" t Connectors src/Dodge/Render/Connectors.hs 3;" m ConstFloat src/Dodge/Data/GenFloat.hs 11;" C Consumable src/Dodge/Item/Consumable.hs 1;" m -ConsumableItemType src/Dodge/Data/Item/Combine.hs 99;" t +ConsumableItemType src/Dodge/Data/Item/Combine.hs 100;" t Consumables src/Dodge/Data/Item.hs 32;" t Consumption src/Dodge/Data/Item/Use/Consumption.hs 8;" m Consumption src/Dodge/Default/Item/Use/Consumption.hs 1;" m @@ -407,7 +407,7 @@ CrWlID src/Dodge/Data/CrWlID.hs 6;" m Cr_awareness src/Dodge/Data/Config.hs 72;" C Cr_status src/Dodge/Data/Config.hs 71;" C CraftClust src/Dodge/Combine/Graph.hs 19;" C -CraftType src/Dodge/Data/Item/Combine.hs 33;" t +CraftType src/Dodge/Data/Item/Combine.hs 34;" t Craftable src/Dodge/Item/Craftable.hs 1;" m Create src/Dodge/Projectile/Create.hs 1;" m Create src/Dodge/Prop/Create.hs 1;" m @@ -437,9 +437,9 @@ CursorDisplay src/Dodge/Data/SelectionList.hs 19;" t Cuse src/Dodge/Data/Item/HeldUse.hs 14;" t Cuse src/Dodge/Cuse.hs 1;" m Cylinder src/Shape/Data.hs 19;" C -DETECTOR src/Dodge/Data/Item/Combine.hs 163;" C +DETECTOR src/Dodge/Data/Item/Combine.hs 164;" C DPoint2 src/Geometry/Data.hs 34;" t -DRUMMAG src/Dodge/Data/Item/Combine.hs 92;" C +DRUMMAG src/Dodge/Data/Item/Combine.hs 93;" C DS src/DoubleStack.hs 3;" t DT src/Dodge/Data/DoubleTree.hs 30;" C DTBottomNode src/Dodge/Data/DoubleTree.hs 20;" C @@ -503,11 +503,10 @@ Destroy src/Dodge/Machine/Destroy.hs 1;" m DestroyBeing src/Dodge/Data/Scenario.hs 8;" C DestroyBullet src/Dodge/Data/Bullet.hs 36;" C DestroyItem src/Dodge/Data/Scenario.hs 7;" C -Detector src/Dodge/Data/Item/Combine.hs 168;" t +Detector src/Dodge/Data/Item/Combine.hs 169;" t Dirt src/Dodge/Data/Material.hs 11;" C DisasterType src/Dodge/Data/Scenario.hs 24;" t 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 37;" C @@ -593,13 +592,13 @@ EBO src/Shader/Data.hs 88;" t EDoNothing src/Dodge/Data/Item/HeldUse.hs 20;" C EHeadLamp src/Dodge/Data/Item/HeldUse.hs 23;" C ELECTRICAL src/Dodge/Data/Damage/Type.hs 20;" C -ELEPHANTGUN src/Dodge/Data/Item/Combine.hs 142;" C +ELEPHANTGUN src/Dodge/Data/Item/Combine.hs 143;" C EMagShield src/Dodge/Data/Item/HeldUse.hs 21;" C ENTERREMENT src/Dodge/Data/Damage/Type.hs 24;" C EQUIP src/Dodge/Data/Item/Combine.hs 17;" C EWristShield src/Dodge/Data/Item/HeldUse.hs 22;" C EXPLOSIVE src/Dodge/Data/Damage/Type.hs 21;" C -EXPLOSIVES src/Dodge/Data/Item/Combine.hs 101;" C +EXPLOSIVES src/Dodge/Data/Item/Combine.hs 102;" C Ears src/Dodge/Data/Creature/Perception.hs 47;" C East src/Dodge/Data/CardinalPoint.hs 5;" C East8 src/Dodge/Data/CardinalPoint.hs 13;" C @@ -628,7 +627,7 @@ EonWristShield src/Dodge/Data/Item/Use/Equipment.hs 31;" C EquipCounter src/Dodge/Data/Item/Use/Equipment.hs 38;" C EquipEffect src/Dodge/Data/Item/Use/Equipment.hs 17;" t EquipID src/Dodge/Data/Item/Use/Equipment.hs 37;" C -EquipItemType src/Dodge/Data/Item/Combine.hs 104;" t +EquipItemType src/Dodge/Data/Item/Combine.hs 105;" t EquipOptions src/Dodge/Data/RightButtonOptions.hs 15;" C EquipParams src/Dodge/Data/Item/Use/Equipment.hs 35;" t EquipSite src/Dodge/Data/Equipment/Misc.hs 21;" t @@ -657,16 +656,16 @@ ExternallyGeneratedSounds src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 2;" ExtraEffect src/Dodge/Item/Weapon/ExtraEffect.hs 6;" m Eyes src/Dodge/Data/Creature/Perception.hs 41;" C FBO src/Shader/Data.hs 57;" t -FLAMESHIELD src/Dodge/Data/Item/Combine.hs 106;" C -FLAMESPITTER src/Dodge/Data/Item/Combine.hs 146;" C -FLAMETHROWER src/Dodge/Data/Item/Combine.hs 147;" C -FLAMETORRENT src/Dodge/Data/Item/Combine.hs 148;" C -FLAMEWALL src/Dodge/Data/Item/Combine.hs 149;" C +FLAMESHIELD src/Dodge/Data/Item/Combine.hs 107;" C +FLAMESPITTER src/Dodge/Data/Item/Combine.hs 147;" C +FLAMETHROWER src/Dodge/Data/Item/Combine.hs 148;" C +FLAMETORRENT src/Dodge/Data/Item/Combine.hs 149;" C +FLAMEWALL src/Dodge/Data/Item/Combine.hs 150;" C FLAMING src/Dodge/Data/Damage/Type.hs 18;" C -FLATSHIELD src/Dodge/Data/Item/Combine.hs 161;" C -FRONTARMOUR src/Dodge/Data/Item/Combine.hs 107;" C -FUELCELL src/Dodge/Data/Item/Combine.hs 71;" C -FUELPACK src/Dodge/Data/Item/Combine.hs 116;" C +FLATSHIELD src/Dodge/Data/Item/Combine.hs 162;" C +FRONTARMOUR src/Dodge/Data/Item/Combine.hs 108;" C +FUELCELL src/Dodge/Data/Item/Combine.hs 72;" C +FUELPACK src/Dodge/Data/Item/Combine.hs 117;" C FacilityType src/Dodge/Data/Scenario.hs 55;" t Faction src/Dodge/Data/Creature/State.hs 34;" t Factory src/Dodge/Data/Scenario.hs 56;" C @@ -735,16 +734,16 @@ FunctionChangeLink src/Dodge/Data/ComposedItem.hs 30;" C FunctionChangeSF src/Dodge/Data/ComposedItem.hs 60;" C GBounce src/Dodge/Data/Projectile.hs 53;" C GEqC src/SameConstr.hs 20;" c -GIMBAL src/Dodge/Data/Item/Combine.hs 80;" C -GLASSSHARD src/Dodge/Data/Item/Combine.hs 44;" C -GLAUNCHER src/Dodge/Data/Item/Combine.hs 157;" C +GIMBAL src/Dodge/Data/Item/Combine.hs 81;" C +GLASSSHARD src/Dodge/Data/Item/Combine.hs 45;" C +GLAUNCHER src/Dodge/Data/Item/Combine.hs 158;" C GLHelp src/GLHelp.hs 1;" m -GRAPECANNON src/Dodge/Data/Item/Combine.hs 134;" C +GRAPECANNON src/Dodge/Data/Item/Combine.hs 135;" C GREEN src/Color/Data.hs 16;" C GStick src/Dodge/Data/Projectile.hs 54;" C GStuckCreature src/Dodge/Data/Projectile.hs 55;" C GStuckWall src/Dodge/Data/Projectile.hs 56;" C -GYROSCOPE src/Dodge/Data/Item/Combine.hs 81;" C +GYROSCOPE src/Dodge/Data/Item/Combine.hs 82;" C GadgetPlatformSF src/Dodge/Data/ComposedItem.hs 44;" C GameOverOptions src/Dodge/Data/Universe.hs 70;" C GameRoom src/Dodge/GameRoom.hs 15;" t @@ -798,15 +797,15 @@ Grid src/Grid.hs 1;" m Gust src/Dodge/Data/Gust.hs 13;" t Gust src/Dodge/Data/Gust.hs 6;" m GymSS src/Dodge/Data/Scenario.hs 104;" C -HARDDRIVE src/Dodge/Data/Item/Combine.hs 56;" C -HARDWARE src/Dodge/Data/Item/Combine.hs 36;" C -HAT src/Dodge/Data/Item/Combine.hs 111;" C -HEADLAMP src/Dodge/Data/Item/Combine.hs 112;" C -HEALTH src/Dodge/Data/Item/Combine.hs 29;" C -HEATSENSOR src/Dodge/Data/Item/Combine.hs 66;" C +HARDDRIVE src/Dodge/Data/Item/Combine.hs 57;" C +HARDWARE src/Dodge/Data/Item/Combine.hs 37;" C +HAT src/Dodge/Data/Item/Combine.hs 112;" C +HEADLAMP src/Dodge/Data/Item/Combine.hs 113;" C +HEALTH src/Dodge/Data/Item/Combine.hs 30;" C +HEATSENSOR src/Dodge/Data/Item/Combine.hs 67;" 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 +HOMINGMODULE src/Dodge/Data/Item/Combine.hs 86;" C +HOSE src/Dodge/Data/Item/Combine.hs 39;" C HUD src/Dodge/Data/HUD.hs 39;" t HUD src/Dodge/Data/HUD.hs 6;" m HUD src/Dodge/Render/HUD.hs 3;" m @@ -826,7 +825,7 @@ HasHammer src/Dodge/Data/Hammer.hs 14;" 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 +HeldItemType src/Dodge/Data/Item/Combine.hs 124;" t HeldOffset src/Dodge/Item/HeldOffset.hs 1;" m HeldParams src/Dodge/Data/Item/Use.hs 75;" t HeldPlatformSF src/Dodge/Data/ComposedItem.hs 40;" C @@ -841,29 +840,34 @@ HomeUsingTargeting src/Dodge/Data/Projectile.hs 49;" C Hospital src/Dodge/Data/Scenario.hs 69;" C Hotkey src/Dodge/Data/Equipment/Misc.hs 32;" t Hotkey src/Dodge/Hotkey.hs 1;" m -Hotkey0 src/Dodge/Data/Equipment/Misc.hs 44;" C -Hotkey1 src/Dodge/Data/Equipment/Misc.hs 35;" C -Hotkey2 src/Dodge/Data/Equipment/Misc.hs 36;" C -Hotkey3 src/Dodge/Data/Equipment/Misc.hs 37;" C -Hotkey4 src/Dodge/Data/Equipment/Misc.hs 38;" C -Hotkey5 src/Dodge/Data/Equipment/Misc.hs 39;" C -Hotkey6 src/Dodge/Data/Equipment/Misc.hs 40;" C -Hotkey7 src/Dodge/Data/Equipment/Misc.hs 41;" C -Hotkey8 src/Dodge/Data/Equipment/Misc.hs 42;" C -Hotkey9 src/Dodge/Data/Equipment/Misc.hs 43;" C +Hotkey0 src/Dodge/Data/Equipment/Misc.hs 49;" C +Hotkey1 src/Dodge/Data/Equipment/Misc.hs 40;" C +Hotkey2 src/Dodge/Data/Equipment/Misc.hs 41;" C +Hotkey3 src/Dodge/Data/Equipment/Misc.hs 42;" C +Hotkey4 src/Dodge/Data/Equipment/Misc.hs 43;" C +Hotkey5 src/Dodge/Data/Equipment/Misc.hs 44;" C +Hotkey6 src/Dodge/Data/Equipment/Misc.hs 45;" C +Hotkey7 src/Dodge/Data/Equipment/Misc.hs 46;" C +Hotkey8 src/Dodge/Data/Equipment/Misc.hs 47;" C +Hotkey9 src/Dodge/Data/Equipment/Misc.hs 48;" C +HotkeyC src/Dodge/Data/Equipment/Misc.hs 38;" C HotkeyE src/Dodge/Data/Equipment/Misc.hs 34;" C HotkeyQ src/Dodge/Data/Equipment/Misc.hs 33;" C +HotkeyR src/Dodge/Data/Equipment/Misc.hs 35;" C +HotkeyV src/Dodge/Data/Equipment/Misc.hs 39;" C +HotkeyX src/Dodge/Data/Equipment/Misc.hs 37;" C +HotkeyZ src/Dodge/Data/Equipment/Misc.hs 36;" C 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 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 -IRONBAR src/Dodge/Data/Item/Combine.hs 63;" C -ITEMDETECTOR src/Dodge/Data/Item/Combine.hs 169;" C -ITEMSCANNER src/Dodge/Data/Item/Combine.hs 24;" C +INTROSCAN src/Dodge/Data/Item/Combine.hs 26;" C +INVISIBILITYEQUIPMENT src/Dodge/Data/Item/Combine.hs 110;" C +IRONBAR src/Dodge/Data/Item/Combine.hs 64;" C +ITEMDETECTOR src/Dodge/Data/Item/Combine.hs 170;" C +ITEMSCAN src/Dodge/Data/Item/Combine.hs 24;" C ImmediateEffect src/Loop/Data.hs 8;" C Importance src/Shape/Data.hs 34;" t Important src/Shape/Data.hs 35;" C @@ -915,7 +919,7 @@ Intention src/Dodge/Creature/Intention.hs 1;" m Intersect src/Geometry/Intersect.hs 5;" m IntersectingRoomClipBoundaries src/Dodge/Data/Config.hs 107;" C IntroScanSF src/Dodge/Data/ComposedItem.hs 47;" C -IntroScanType src/Dodge/Data/Item/Combine.hs 28;" t +IntroScanType src/Dodge/Data/Item/Combine.hs 29;" t InvInt src/Dodge/Data/Item/Location.hs 19;" t InvSize src/Dodge/Item/InvSize.hs 2;" m Inventory src/Dodge/Inventory.hs 2;" m @@ -959,17 +963,17 @@ 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 JGK src/Control/Foldl/JGK.hs 1;" m -JOYSTICK src/Dodge/Data/Item/Combine.hs 79;" C -JUMPLEGS src/Dodge/Data/Item/Combine.hs 115;" C +JOYSTICK src/Dodge/Data/Item/Combine.hs 80;" C +JUMPLEGS src/Dodge/Data/Item/Combine.hs 116;" C JoinClust src/Dodge/Combine/Graph.hs 21;" C JoystickLink src/Dodge/Data/ComposedItem.hs 25;" C JoystickSF src/Dodge/Data/ComposedItem.hs 52;" C Just' src/MaybeHelp.hs 13;" C JustStartedPlaying src/Sound/Data.hs 25;" C Justify src/Justify.hs 1;" m -KEYCARD src/Dodge/Data/Item/Combine.hs 162;" C +KEYCARD src/Dodge/Data/Item/Combine.hs 163;" C Kill src/Dodge/Data/ActionPlan.hs 198;" C -LASER src/Dodge/Data/Item/Combine.hs 153;" C +LASER src/Dodge/Data/Item/Combine.hs 154;" 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 @@ -978,10 +982,10 @@ LDTMidAboveNode src/Dodge/Data/DoubleTree.hs 26;" C LDTMidBelowNode src/Dodge/Data/DoubleTree.hs 27;" C LDTRootNode src/Dodge/Data/DoubleTree.hs 24;" C LDTTopNode src/Dodge/Data/DoubleTree.hs 25;" C -LED src/Dodge/Data/Item/Combine.hs 61;" C +LED src/Dodge/Data/Item/Combine.hs 62;" C LHS src/Geometry/LHS.hs 1;" m -LIGHTER src/Dodge/Data/Item/Combine.hs 50;" C -LIGHTSENSOR src/Dodge/Data/Item/Combine.hs 64;" C +LIGHTER src/Dodge/Data/Item/Combine.hs 51;" C +LIGHTSENSOR src/Dodge/Data/Item/Combine.hs 65;" C LS src/Dodge/Data/LightSource.hs 23;" C LSParam src/Dodge/Data/LightSource.hs 16;" t LTest src/Dodge/Data/ComposedItem.hs 76;" C @@ -1078,24 +1082,25 @@ LtAutoAI src/Dodge/Data/Creature/Misc.hs 53;" C LtAutoCrit src/Dodge/Creature/LtAutoCrit.hs 1;" m Lure src/Dodge/Data/ActionPlan.hs 179;" C Luse src/Dodge/Luse.hs 2;" m -MACHINEPISTOL src/Dodge/Data/Item/Combine.hs 129;" C +MACHINEPISTOL src/Dodge/Data/Item/Combine.hs 130;" C MAGENTA src/Color/Data.hs 20;" C -MAGNET src/Dodge/Data/Item/Combine.hs 51;" C -MAGSHIELD src/Dodge/Data/Item/Combine.hs 105;" C -MAXHEALTH src/Dodge/Data/Item/Combine.hs 30;" C +MAGNET src/Dodge/Data/Item/Combine.hs 52;" C +MAGSHIELD src/Dodge/Data/Item/Combine.hs 106;" C +MAPPER src/Dodge/Data/Item/Combine.hs 25;" C +MAXHEALTH src/Dodge/Data/Item/Combine.hs 31;" C MBranch src/Dodge/Data/MetaTree.hs 16;" C MBranch src/Dodge/Tree/Compose/Data.hs 10;" C MCrAc src/Dodge/Data/CreatureEffect.hs 45;" t MCrNoAction src/Dodge/Data/CreatureEffect.hs 45;" C -MEDKIT src/Dodge/Data/Item/Combine.hs 100;" C -MICROCHIP src/Dodge/Data/Item/Combine.hs 55;" C -MICROPHONE src/Dodge/Data/Item/Combine.hs 67;" C -MINIDISPLAY src/Dodge/Data/Item/Combine.hs 60;" C -MINIGUNX src/Dodge/Data/Item/Combine.hs 135;" C +MEDKIT src/Dodge/Data/Item/Combine.hs 101;" C +MICROCHIP src/Dodge/Data/Item/Combine.hs 56;" C +MICROPHONE src/Dodge/Data/Item/Combine.hs 68;" C +MINIDISPLAY src/Dodge/Data/Item/Combine.hs 61;" C +MINIGUNX src/Dodge/Data/Item/Combine.hs 136;" C MODBlockedString src/Dodge/Data/Universe.hs 98;" C MODString src/Dodge/Data/Universe.hs 97;" C MODStringOption src/Dodge/Data/Universe.hs 99;" C -MOTOR src/Dodge/Data/Item/Combine.hs 47;" C +MOTOR src/Dodge/Data/Item/Combine.hs 48;" C MP2Ac src/Dodge/Data/CreatureEffect.hs 56;" t MP2NoAction src/Dodge/Data/CreatureEffect.hs 56;" C MTRS src/Dodge/Annotation/Data.hs 12;" t @@ -1225,7 +1230,7 @@ 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 -NAILBOX src/Dodge/Data/Item/Combine.hs 62;" C +NAILBOX src/Dodge/Data/Item/Combine.hs 63;" C NInt src/NewInt.hs 15;" C NIntMap src/NewInt.hs 18;" C NS src/Dodge/Data/CardinalPoint.hs 25;" C @@ -1380,24 +1385,24 @@ P2Imp src/Dodge/Data/CreatureEffect.hs 28;" t P2ImpNo src/Dodge/Data/CreatureEffect.hs 28;" C 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 +PIPE src/Dodge/Data/Item/Combine.hs 35;" C +PISTOL src/Dodge/Data/Item/Combine.hs 129;" C 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 +PLANK src/Dodge/Data/Item/Combine.hs 44;" C +PLATE src/Dodge/Data/Item/Combine.hs 54;" C PLUS src/Dodge/Data/GenParams.hs 20;" C POISONDAM src/Dodge/Data/Damage/Type.hs 23;" C -POISONSPRAYER src/Dodge/Data/Item/Combine.hs 158;" C -PORTABLEFUSION src/Dodge/Data/Item/Combine.hs 72;" C -POWERLEGS src/Dodge/Data/Item/Combine.hs 113;" C +POISONSPRAYER src/Dodge/Data/Item/Combine.hs 159;" C +PORTABLEFUSION src/Dodge/Data/Item/Combine.hs 73;" C +POWERLEGS src/Dodge/Data/Item/Combine.hs 114;" C PPLevelReset src/Dodge/Data/PressPlate.hs 16;" C -PRISM src/Dodge/Data/Item/Combine.hs 49;" C +PRISM src/Dodge/Data/Item/Combine.hs 50;" C PS src/Dodge/Data/GenWorld.hs 62;" C PSNoShiftCont src/Dodge/Data/GenWorld.hs 63;" C PSPos src/Dodge/Data/GenWorld.hs 64;" C PSRoomRand src/Dodge/Data/GenWorld.hs 69;" C PSType src/Dodge/Data/GenWorld.hs 30;" t -PUMP src/Dodge/Data/Item/Combine.hs 46;" C +PUMP src/Dodge/Data/Item/Combine.hs 47;" C Padding src/Padding.hs 2;" m Pair src/FoldlHelp.hs 10;" t PaletteColor src/Color/Data.hs 14;" t @@ -1553,16 +1558,16 @@ PutWorldUpdate src/Dodge/Data/GenWorld.hs 54;" C QuarterRes src/Dodge/Data/Config.hs 97;" C Quaternion src/Quaternion.hs 12;" m QuicksaveSlot src/Dodge/Data/SaveSlot.hs 10;" C -RAM src/Dodge/Data/Item/Combine.hs 57;" C +RAM src/Dodge/Data/Item/Combine.hs 58;" C RBList src/Dodge/Inventory/RBList.hs 1;" m RED src/Color/Data.hs 15;" C -REMOTEDETONATOR src/Dodge/Data/Item/Combine.hs 83;" C -REMOTESCREEN src/Dodge/Data/Item/Combine.hs 78;" C -REWINDER src/Dodge/Data/Item/Combine.hs 125;" C +REMOTEDETONATOR src/Dodge/Data/Item/Combine.hs 84;" C +REMOTESCREEN src/Dodge/Data/Item/Combine.hs 79;" C +REWINDER src/Dodge/Data/Item/Combine.hs 126;" C RGBA src/Color/Data.hs 31;" t -RIFLE src/Dodge/Data/Item/Combine.hs 137;" C -RLAUNCHER src/Dodge/Data/Item/Combine.hs 155;" C -RLAUNCHERX src/Dodge/Data/Item/Combine.hs 156;" C +RIFLE src/Dodge/Data/Item/Combine.hs 138;" C +RLAUNCHER src/Dodge/Data/Item/Combine.hs 156;" C +RLAUNCHERX src/Dodge/Data/Item/Combine.hs 157;" C ROSE src/Color/Data.hs 21;" C RPLinkStatus src/Dodge/Data/Room.hs 55;" t RProps src/Dodge/Layout/Generate.hs 13;" C @@ -1657,25 +1662,25 @@ RoomWire src/Dodge/Data/Room.hs 51;" t RoundedFaces src/Shape/Data.hs 18;" C RunPast src/Dodge/Room/RunPast.hs 1;" m RunningSideEffect src/Dodge/Data/Universe.hs 67;" C -SCRAPMETAL src/Dodge/Data/Item/Combine.hs 45;" C -SHATTERGUN src/Dodge/Data/Item/Combine.hs 159;" C +SCRAPMETAL src/Dodge/Data/Item/Combine.hs 46;" C +SHATTERGUN src/Dodge/Data/Item/Combine.hs 160;" C SHATTERING src/Dodge/Data/Damage/Type.hs 17;" C -SHELLMAG src/Dodge/Data/Item/Combine.hs 94;" C -SHELLPAYLOAD src/Dodge/Data/Item/Combine.hs 87;" C -SMG src/Dodge/Data/Item/Combine.hs 131;" C -SMOKEREDUCER src/Dodge/Data/Item/Combine.hs 84;" C -SNIPERRIFLE src/Dodge/Data/Item/Combine.hs 145;" C -SOUNDSENSOR src/Dodge/Data/Item/Combine.hs 65;" C -SPARKGUN src/Dodge/Data/Item/Combine.hs 151;" C +SHELLMAG src/Dodge/Data/Item/Combine.hs 95;" C +SHELLPAYLOAD src/Dodge/Data/Item/Combine.hs 88;" C +SMG src/Dodge/Data/Item/Combine.hs 132;" C +SMOKEREDUCER src/Dodge/Data/Item/Combine.hs 85;" C +SNIPERRIFLE src/Dodge/Data/Item/Combine.hs 146;" C +SOUNDSENSOR src/Dodge/Data/Item/Combine.hs 66;" C +SPARKGUN src/Dodge/Data/Item/Combine.hs 152;" C SPARKING src/Dodge/Data/Damage/Type.hs 15;" C -SPEEDLEGS src/Dodge/Data/Item/Combine.hs 114;" C -SPRING src/Dodge/Data/Item/Combine.hs 37;" C +SPEEDLEGS src/Dodge/Data/Item/Combine.hs 115;" C +SPRING src/Dodge/Data/Item/Combine.hs 38;" C SPic src/ShapePicture/Data.hs 7;" t SPic src/Dodge/Item/Draw/SPic.hs 3;" m SQUARE src/Dodge/Data/GenParams.hs 20;" C ST src/Dodge/Data/MetaTree.hs 18;" C ST src/Dodge/Tree/Compose/Data.hs 12;" C -STEELDRUM src/Dodge/Data/Item/Combine.hs 42;" C +STEELDRUM src/Dodge/Data/Item/Combine.hs 43;" C STICKYMOD src/Dodge/Data/Item/Combine.hs 23;" C SameConstr src/SameConstr.hs 5;" m Save src/Dodge/Save.hs 1;" m @@ -1864,20 +1869,20 @@ SwarmPlacement src/Dodge/LevelGen/SwarmPlacement.hs 1;" m Switch src/Dodge/LevelGen/Switch.hs 1;" m 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 +TAPE src/Dodge/Data/Item/Combine.hs 40;" C TARGETING src/Dodge/Data/Item/Combine.hs 21;" C -TESLAGUN src/Dodge/Data/Item/Combine.hs 152;" C -THERMOMETER src/Dodge/Data/Item/Combine.hs 68;" C +TESLAGUN src/Dodge/Data/Item/Combine.hs 153;" C +THERMOMETER src/Dodge/Data/Item/Combine.hs 69;" C THREELINES src/Dodge/Data/GenParams.hs 20;" C -TIMESCROLLER src/Dodge/Data/Item/Combine.hs 127;" C -TIMESTOPPER src/Dodge/Data/Item/Combine.hs 126;" C -TIN src/Dodge/Data/Item/Combine.hs 41;" C -TINMAG src/Dodge/Data/Item/Combine.hs 91;" C +TIMESCROLLER src/Dodge/Data/Item/Combine.hs 128;" C +TIMESTOPPER src/Dodge/Data/Item/Combine.hs 127;" C +TIN src/Dodge/Data/Item/Combine.hs 42;" C +TINMAG src/Dodge/Data/Item/Combine.hs 92;" C TO src/Shader/Data.hs 59;" t -TORCH src/Dodge/Data/Item/Combine.hs 160;" C -TRACTORGUN src/Dodge/Data/Item/Combine.hs 154;" C -TRANSFORMER src/Dodge/Data/Item/Combine.hs 48;" C -TRANSMITTER src/Dodge/Data/Item/Combine.hs 54;" C +TORCH src/Dodge/Data/Item/Combine.hs 161;" C +TRACTORGUN src/Dodge/Data/Item/Combine.hs 155;" C +TRANSFORMER src/Dodge/Data/Item/Combine.hs 49;" C +TRANSMITTER src/Dodge/Data/Item/Combine.hs 55;" C TSbackspace src/Dodge/Data/Input.hs 62;" C TSdelete src/Dodge/Data/Input.hs 63;" C TSdown src/Dodge/Data/Input.hs 68;" C @@ -1887,7 +1892,7 @@ TSreturn src/Dodge/Data/Input.hs 61;" C TSright src/Dodge/Data/Input.hs 66;" C TStab src/Dodge/Data/Input.hs 64;" C TSup src/Dodge/Data/Input.hs 67;" C -TUBE src/Dodge/Data/Item/Combine.hs 35;" C +TUBE src/Dodge/Data/Item/Combine.hs 36;" C Tank src/Dodge/Placement/Instance/Tank.hs 1;" m Tanks src/Dodge/Room/Tanks.hs 1;" m Tap src/Dodge/Data/SoundOrigin.hs 38;" C @@ -2020,7 +2025,7 @@ 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 -UNDERBARRELSLOT src/Dodge/Data/Item/Combine.hs 82;" C +UNDERBARRELSLOT src/Dodge/Data/Item/Combine.hs 83;" C UnderBarrelPlatformLink src/Dodge/Data/ComposedItem.hs 34;" C UnderBarrelPlatformSF src/Dodge/Data/ComposedItem.hs 42;" C UnderBarrelSlotLink src/Dodge/Data/ComposedItem.hs 33;" C @@ -2082,7 +2087,7 @@ VAO src/Shader/Data.hs 64;" t VBO src/Shader/Data.hs 81;" t VF src/Polyhedra/Data.hs 21;" t VIOLET src/Color/Data.hs 22;" C -VOLLEYGUN src/Dodge/Data/Item/Combine.hs 136;" C +VOLLEYGUN src/Dodge/Data/Item/Combine.hs 137;" C Vector src/Geometry/Vector.hs 3;" m Vector3D src/Geometry/Vector3D.hs 2;" m VertexAttribute src/Shader/Data.hs 68;" t @@ -2097,12 +2102,12 @@ Vision src/Dodge/Data/Creature/Perception.hs 41;" t Vocalization src/Dodge/Data/Creature/Misc.hs 27;" t Vocalization src/Dodge/Creature/Vocalization.hs 1;" m Volition src/Dodge/Creature/Volition.hs 2;" m -WALLDETECTOR src/Dodge/Data/Item/Combine.hs 171;" C +WALLDETECTOR src/Dodge/Data/Item/Combine.hs 172;" C WASD src/Dodge/WASD.hs 1;" m WHITE src/Color/Data.hs 27;" C -WIRE src/Dodge/Data/Item/Combine.hs 70;" C -WRISTARMOUR src/Dodge/Data/Item/Combine.hs 108;" C -WRIST_ECG src/Dodge/Data/Item/Combine.hs 120;" C +WIRE src/Dodge/Data/Item/Combine.hs 71;" C +WRISTARMOUR src/Dodge/Data/Item/Combine.hs 109;" C +WRIST_ECG src/Dodge/Data/Item/Combine.hs 121;" C WaitThen src/Dodge/Data/ActionPlan.hs 103;" C WalkCycle src/Dodge/Creature/State/WalkCycle.hs 1;" m Walking src/Dodge/Data/Creature/Stance.hs 21;" C @@ -2186,7 +2191,7 @@ WorldPos src/Dodge/WorldPos.hs 1;" m YELLOW src/Color/Data.hs 18;" C You src/Dodge/Base/You.hs 1;" m YourControl src/Dodge/Creature/YourControl.hs 1;" m -ZOOMSCOPE src/Dodge/Data/Item/Combine.hs 76;" C +ZOOMSCOPE src/Dodge/Data/Item/Combine.hs 77;" C ZombieFaction src/Dodge/Data/Creature/State.hs 36;" C Zone src/Dodge/Wall/Zone.hs 1;" m Zone src/Geometry/Zone.hs 1;" m @@ -2616,7 +2621,7 @@ _ibtBulletMod src/Dodge/Data/Item/Combine.hs 22;" f _ibtCraft src/Dodge/Data/Item/Combine.hs 18;" f _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 +_ibtIntroScanType src/Dodge/Data/Item/Combine.hs 26;" f _ibtTargeting src/Dodge/Data/Item/Combine.hs 21;" f _ieInv src/Dodge/Data/Item/Effect.hs 17;" f _ieOnDrop src/Dodge/Data/Item/Effect.hs 19;" f @@ -3049,7 +3054,7 @@ _shaderVAO src/Shader/Data.hs 54;" f _shapeEBO src/Data/Preload/Render.hs 26;" f _shapeHalfSize src/Shape/Data.hs 18;" f _shapeShader src/Data/Preload/Render.hs 25;" f -_shellPayload src/Dodge/Data/Item/Combine.hs 87;" f +_shellPayload src/Dodge/Data/Item/Combine.hs 88;" f _shockwaves src/Dodge/Data/LWorld.hs 115;" f _shrinkGunStatus src/Dodge/Data/Item/Params.hs 18;" f _siColor src/Dodge/Data/SelectionList.hs 49;" f @@ -3304,9 +3309,9 @@ _wpMaxCharge src/Dodge/Data/Item/Use/Consumption.hs 34;" f _wsBlock src/Dodge/Data/Wall/Structure.hs 16;" f _wsDoor src/Dodge/Data/Wall/Structure.hs 14;" f _wsMachine src/Dodge/Data/Wall/Structure.hs 15;" f -_xNum src/Dodge/Data/Item/Combine.hs 124;" f -_xNum src/Dodge/Data/Item/Combine.hs 134;" f -_xNum src/Dodge/Data/Item/Combine.hs 156;" f +_xNum src/Dodge/Data/Item/Combine.hs 125;" f +_xNum src/Dodge/Data/Item/Combine.hs 135;" f +_xNum src/Dodge/Data/Item/Combine.hs 157;" f aDroneWithItemParams src/Dodge/Item/Weapon/Drone.hs 30;" f aFlame src/Dodge/Gas.hs 18;" f aFlameParticle src/Dodge/Flame.hs 21;" f @@ -3362,7 +3367,7 @@ advanceSmoothScroll src/Dodge/SmoothScroll.hs 29;" f advanceStepCounter src/Dodge/Creature/Impulse/Movement.hs 45;" f aimDelaySweep src/Dodge/Render/Picture.hs 239;" f aimStanceInfo src/Dodge/Item/Info.hs 199;" f -aimTurn src/Dodge/Creature/YourControl.hs 147;" f +aimTurn src/Dodge/Creature/YourControl.hs 160;" f aimingWeaponHandlePos src/Dodge/Item/HeldOffset.hs 69;" f aimingWeaponZeroPos src/Dodge/Item/HeldOffset.hs 63;" f airlock src/Dodge/Room/Airlock.hs 19;" f @@ -3377,7 +3382,7 @@ 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 -ammoMagSPic src/Dodge/Item/Draw/SPic.hs 115;" f +ammoMagSPic src/Dodge/Item/Draw/SPic.hs 116;" 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 76;" f @@ -3447,7 +3452,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 82;" f +augmentedHUD src/Dodge/Item/Scope.hs 89;" 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 @@ -3462,28 +3467,28 @@ 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 26;" f -backpackShape src/Dodge/Item/Draw/SPic.hs 164;" f +backpackShape src/Dodge/Item/Draw/SPic.hs 165;" 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 278;" f +bangConeShape src/Dodge/Item/Draw/SPic.hs 279;" f bangEchoS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 388;" f bangRod src/Dodge/Item/Held/Rod.hs 18;" f bangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 504;" f bangStick src/Dodge/Item/Held/Stick.hs 16;" f 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 +baseAMRShape src/Dodge/Item/Draw/SPic.hs 392;" f baseBlockPane src/Dodge/Placement/Instance/Wall.hs 86;" f baseCI src/Dodge/Item/Grammar.hs 173;" f -baseCaneShape src/Dodge/Item/Draw/SPic.hs 298;" f +baseCaneShape src/Dodge/Item/Draw/SPic.hs 299;" f baseDebris src/Dodge/Block/Debris.hs 122;" f baseFloorTileSize src/Tile.hs 45;" f -baseRifleShape src/Dodge/Item/Draw/SPic.hs 301;" f -baseRodShape src/Dodge/Item/Draw/SPic.hs 388;" f -baseSMGShape src/Dodge/Item/Draw/SPic.hs 368;" f +baseRifleShape src/Dodge/Item/Draw/SPic.hs 302;" f +baseRodShape src/Dodge/Item/Draw/SPic.hs 389;" f +baseSMGShape src/Dodge/Item/Draw/SPic.hs 369;" f baseShoulder src/Dodge/Creature/Picture.hs 131;" f -baseStickShape src/Dodge/Item/Draw/SPic.hs 275;" f -baseStickShapeX src/Dodge/Item/Draw/SPic.hs 270;" f +baseStickShape src/Dodge/Item/Draw/SPic.hs 276;" f +baseStickShapeX src/Dodge/Item/Draw/SPic.hs 271;" f baseStickSpread src/Dodge/Item/Held/Stick.hs 39;" f basicAttentionUpdate src/Dodge/Creature/Perception.hs 127;" f basicAwarenessUpdate src/Dodge/Creature/Perception.hs 37;" f @@ -3553,8 +3558,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 65;" f -bulletPayloadModule src/Dodge/Item/Scope.hs 79;" f +bulletModule src/Dodge/Item/Scope.hs 72;" f +bulletPayloadModule src/Dodge/Item/Scope.hs 86;" 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 @@ -3640,9 +3645,9 @@ clickGetCreature src/Dodge/Debug.hs 107;" f clipV src/Geometry/Vector.hs 47;" f clipZoom src/Dodge/Update/Camera.hs 185;" f clockCycle src/Dodge/Clock.hs 9;" f -closeButtonToSelectionItem src/Dodge/Inventory/SelectionList.hs 72;" f -closeItemToSelectionItem src/Dodge/Inventory/SelectionList.hs 57;" f -closeItemToTextPictures src/Dodge/Inventory/SelectionList.hs 86;" f +closeButtonToSelectionItem src/Dodge/Inventory/SelectionList.hs 78;" f +closeItemToSelectionItem src/Dodge/Inventory/SelectionList.hs 63;" f +closeItemToTextPictures src/Dodge/Inventory/SelectionList.hs 92;" f closeObjectInfo src/Dodge/Render/HUD.hs 211;" f closestCreatureID src/Dodge/Debug.hs 116;" f closestPointOnLine src/Geometry/Intersect.hs 251;" f @@ -3747,7 +3752,7 @@ crUpdateInvidLocations src/Dodge/Inventory/Location.hs 61;" f crUpdateItemLocations src/Dodge/Inventory/Location.hs 42;" f crZoneSize src/Dodge/Zoning/Creature.hs 39;" f craftInfo src/Dodge/Item/Info.hs 125;" f -craftItemSPic src/Dodge/Item/Draw/SPic.hs 47;" f +craftItemSPic src/Dodge/Item/Draw/SPic.hs 48;" f crankSlowS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 440;" f createArc src/Dodge/Tesla/Arc.hs 81;" f createBarrelSpark src/Dodge/Spark.hs 44;" f @@ -3870,7 +3875,7 @@ dededumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 470;" f dedumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 334;" f defDamageMaterial src/Dodge/Material/Damage.hs 17;" f defLSPic src/Dodge/LightSource/Draw.hs 10;" f -defSPic src/Dodge/Item/Draw/SPic.hs 284;" f +defSPic src/Dodge/Item/Draw/SPic.hs 285;" f defaultAimMvType src/Dodge/Default/Creature.hs 117;" f defaultAimParams src/Dodge/Default/Item/Use/AimParams.hs 9;" f defaultAimingCrit src/Dodge/Default/Creature.hs 126;" f @@ -3960,7 +3965,7 @@ destroyMounts src/Dodge/Block.hs 99;" 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 +detectorColor src/Dodge/Item/Draw/SPic.hs 438;" f detectorEffect src/Dodge/Item/Weapon/Radar.hs 20;" f detectorInfo src/Dodge/Item/Info.hs 180;" f determineProjectileTracking src/Dodge/HeldUse.hs 626;" f @@ -3982,7 +3987,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 119;" f +displayPulse src/Dodge/Item/Display.hs 123;" f displaySectionsSizes src/Dodge/DisplayInventory.hs 118;" f displayTerminalLineString src/Dodge/Update.hs 447;" f dist src/Geometry/Vector.hs 179;" f @@ -4057,7 +4062,7 @@ doPropUpdates src/Dodge/Prop/Update.hs 36;" f doQuickload src/Dodge/Save.hs 82;" f doQuicksave src/Dodge/Save.hs 77;" f doRandImpulse src/Dodge/RandImpulse.hs 7;" f -doRegexInput src/Dodge/Update/Input/InGame.hs 456;" f +doRegexInput src/Dodge/Update/Input/InGame.hs 454;" f doRoomInPlacements src/Dodge/Layout.hs 97;" f doRoomOutPlacements src/Dodge/Layout.hs 107;" f doRoomPlacements src/Dodge/Layout.hs 122;" f @@ -4257,7 +4262,7 @@ eqPosText src/Dodge/Equipment/Text.hs 5;" f eqSiteToPositions src/Dodge/Inventory/RBList.hs 75;" f equipAllocString src/Dodge/Render/HUD.hs 295;" f equipInfo src/Dodge/Item/Info.hs 98;" f -equipItemSPic src/Dodge/Item/Draw/SPic.hs 135;" f +equipItemSPic src/Dodge/Item/Draw/SPic.hs 136;" f equipPosition src/Dodge/Item/Draw.hs 28;" f equipSiteInfo src/Dodge/Item/Info.hs 209;" f equipSpeed src/Dodge/Creature/Impulse/Movement.hs 99;" f @@ -4324,12 +4329,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 371;" f +flamerPic src/Dodge/Item/Draw/SPic.hs 372;" f flareCircleAt src/Dodge/HeldUse.hs 278;" f flatItemCombinations src/Dodge/Combine/Combinations.hs 50;" f flatLookupItems src/Dodge/Combine.hs 38;" f flatShield src/Dodge/Item/Held/Utility.hs 20;" f -flatShieldEquipSPic src/Dodge/Item/Draw/SPic.hs 424;" f +flatShieldEquipSPic src/Dodge/Item/Draw/SPic.hs 425;" 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 @@ -4366,7 +4371,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 128;" f +fractionLoadedAmmo src/Dodge/Item/Draw/SPic.hs 129;" f frag src/Shader/Data.hs 102;" f freeShaderPointers' src/Shader.hs 37;" f fridgeHumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 376;" f @@ -4437,7 +4442,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 99;" f +gimbal src/Dodge/Item/Scope.hs 106;" 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 @@ -4453,7 +4458,7 @@ glassShat4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 458;" f glassSwitchBack src/Dodge/Room/Room.hs 70;" f glassSwitchBackCrits src/Dodge/Room/Room.hs 99;" f glassWallDamage src/Dodge/Wall/DamageEffect.hs 48;" f -glauncherPic src/Dodge/Item/Draw/SPic.hs 377;" f +glauncherPic src/Dodge/Item/Draw/SPic.hs 378;" f glushortSize src/Shader/Parameters.hs 25;" f goToPostStrat src/Dodge/Creature/Strategy.hs 10;" f goToTarget src/Dodge/Creature/ReaderUpdate.hs 136;" f @@ -4481,14 +4486,14 @@ 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 102;" f +gyroscope src/Dodge/Item/Scope.hs 109;" 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 haltSound src/Dodge/SoundLogic.hs 37;" f hammerCheck src/Dodge/HeldUse.hs 57;" f handleEvent src/Dodge/Event.hs 27;" f -handleHotkeys src/Dodge/Creature/YourControl.hs 37;" f +handleHotkeys src/Dodge/Creature/YourControl.hs 40;" f handleKeyboardEvent src/Dodge/Event/Input.hs 22;" f handleMouseButtonEvent src/Dodge/Event/Input.hs 63;" f handleMouseMotionEvent src/Dodge/Event/Input.hs 47;" f @@ -4505,7 +4510,7 @@ hasLOSIndirect src/Dodge/Base/Collide.hs 218;" f hat src/Dodge/Item/Equipment.hs 134;" f head src/DoubleStack.hs 14;" f headLamp src/Dodge/Item/Equipment.hs 140;" f -headLampShape src/Dodge/Item/Draw/SPic.hs 427;" f +headLampShape src/Dodge/Item/Draw/SPic.hs 428;" f headMap src/Dodge/DoubleTree.hs 170;" f heal src/Dodge/Item/Consumable.hs 17;" f heal25 src/Dodge/Item/Consumable.hs 14;" f @@ -4520,7 +4525,7 @@ heldInfo src/Dodge/Item/Info.hs 47;" 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 211;" f +heldItemSPic src/Dodge/Item/Draw/SPic.hs 212;" f heldPositionInfo src/Dodge/Item/Info.hs 196;" f helpCommand src/Dodge/Terminal.hs 66;" f helpPoly3D src/Polyhedra.hs 125;" f @@ -4534,10 +4539,10 @@ 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 43;" f +homingModule src/Dodge/Item/Scope.hs 44;" 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 +hotkeyToScancode src/Dodge/Creature/YourControl.hs 68;" f +hotkeyToString src/Dodge/Inventory/SelectionList.hs 43;" f humanoidAIList src/Dodge/Humanoid.hs 181;" f iShape src/Dodge/Placement/Instance/LightSource.hs 73;" f icosahedronPoints src/Polyhedra/Geodesic.hs 12;" f @@ -4606,8 +4611,8 @@ 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 52;" f -introScanDisplay src/Dodge/Item/Display.hs 114;" f +introScan src/Dodge/Item/Scope.hs 53;" f +introScanDisplay src/Dodge/Item/Display.hs 118;" f intsToPos src/Dodge/Room/Modify/Girder.hs 160;" f invAdj src/Dodge/Item/Grammar.hs 279;" f invCursorParams src/Dodge/ListDisplayParams.hs 36;" f @@ -4671,18 +4676,18 @@ itemDetectorEffect src/Dodge/HeldUse.hs 342;" f itemDisplay src/Dodge/Item/Display.hs 21;" f itemDisplayPad src/Dodge/Item/Display.hs 39;" f itemEquipPict src/Dodge/Item/Draw.hs 16;" f -itemFromAmmoMag src/Dodge/Item.hs 31;" f -itemFromAttachType src/Dodge/Item.hs 40;" f +itemFromAmmoMag src/Dodge/Item.hs 32;" f +itemFromAttachType src/Dodge/Item.hs 41;" f itemFromBase src/Dodge/Item.hs 17;" f -itemFromEquipType src/Dodge/Item.hs 56;" f +itemFromEquipType src/Dodge/Item.hs 57;" f itemFromHeldType src/Dodge/Item/Held.hs 25;" f itemInfo src/Dodge/Item/Info.hs 13;" f itemInvColor src/Dodge/Item/InventoryColor.hs 9;" f -itemNumberDisplay src/Dodge/Item/Display.hs 95;" f +itemNumberDisplay src/Dodge/Item/Display.hs 96;" 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 58;" f +itemScan src/Dodge/Item/Scope.hs 59;" 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 @@ -4698,7 +4703,7 @@ 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 249;" f -joystick src/Dodge/Item/Scope.hs 95;" f +joystick src/Dodge/Item/Scope.hs 102;" 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 @@ -4713,7 +4718,7 @@ keyCard src/Dodge/Item/Held/Utility.hs 30;" f keyCardAnalyserByDoor src/Dodge/Room/LasTurret.hs 70;" f keyCardRoomRunPast src/Dodge/Room/LasTurret.hs 58;" f keyCardRunPastRand src/Dodge/LockAndKey.hs 36;" f -keyPic src/Dodge/Item/Draw/SPic.hs 443;" f +keyPic src/Dodge/Item/Draw/SPic.hs 444;" f keyholeCorridor src/Dodge/Room/Corridor.hs 39;" f knifeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 478;" f lConnect src/Dodge/Render/Connectors.hs 42;" f @@ -4725,7 +4730,7 @@ lampCoverWhen src/Dodge/Placement/Instance/LightSource/Cover.hs 19;" f lampCrSPic src/Dodge/Render/ShapePicture.hs 58;" f lasCenSensEdge src/Dodge/Room/LasTurret.hs 113;" f lasDronesPic src/Dodge/Item/Weapon/Drone.hs 22;" f -lasGunPic src/Dodge/Item/Draw/SPic.hs 397;" f +lasGunPic src/Dodge/Item/Draw/SPic.hs 398;" f lasRayAt src/Dodge/HeldUse.hs 413;" f lasSensorTurretTest src/Dodge/Room/LasTurret.hs 106;" f lasTunnel src/Dodge/Room/LasTurret.hs 125;" f @@ -4750,7 +4755,7 @@ left src/DoubleStack.hs 16;" f leftIsParentCombine src/Dodge/Item/Grammar.hs 221;" f leftPad src/Padding.hs 14;" f leftRightCombine src/Dodge/Item/Grammar.hs 235;" f -legsSPic src/Dodge/Item/Draw/SPic.hs 461;" f +legsSPic src/Dodge/Item/Draw/SPic.hs 462;" f liShape src/Dodge/Placement/Instance/LightSource.hs 98;" f light src/Color.hs 104;" f lightSensByDoor src/Dodge/Room/LasTurret.hs 45;" f @@ -4899,6 +4904,7 @@ makeTileFromPoly src/Tile.hs 34;" f makeTypeCraft src/Dodge/Item/Craftable.hs 18;" f makeTypeCraftNum src/Dodge/Item/Craftable.hs 12;" f mapOverlay src/Dodge/Render/HUD/Carte.hs 24;" f +mapper src/Dodge/Item/Scope.hs 66;" f markWallSeen src/Dodge/Update.hs 689;" f maxDamageType src/Dodge/Damage.hs 37;" f maxShowX src/Dodge/Combine/Graph.hs 49;" f @@ -4910,11 +4916,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 609;" f +maybeExitCombine src/Dodge/Update/Input/InGame.hs 606;" 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 125;" f +maybeWarmupStatus src/Dodge/Item/Display.hs 129;" 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 @@ -4969,8 +4975,8 @@ minOn src/FoldableHelp.hs 35;" f mini1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 340;" f miniGunCrit src/Dodge/Creature.hs 62;" f miniGunX src/Dodge/Item/Held/Cane.hs 96;" f -miniGunXPict src/Dodge/Item/Draw/SPic.hs 349;" f -miniGunXPictItem src/Dodge/Item/Draw/SPic.hs 344;" f +miniGunXPict src/Dodge/Item/Draw/SPic.hs 350;" f +miniGunXPictItem src/Dodge/Item/Draw/SPic.hs 345;" f miniS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 538;" f miniTree2 src/Dodge/Room/Room.hs 106;" f minimumOn src/FoldlHelp.hs 12;" f @@ -5130,7 +5136,7 @@ parseNum src/Dodge/Debug/Terminal.hs 73;" f pathConnected src/Dodge/Room/CheckConsistency.hs 14;" f pathEdgeObstructed src/Dodge/Path.hs 43;" f pauseAndFloatCam src/Dodge/Camera.hs 10;" f -pauseGame src/Dodge/Update/Input/InGame.hs 539;" f +pauseGame src/Dodge/Update/Input/InGame.hs 536;" f pauseMenu src/Dodge/Menu.hs 53;" f pauseMenuOptions src/Dodge/Menu.hs 58;" f pauseSound src/Dodge/SoundLogic.hs 41;" f @@ -5429,8 +5435,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 90;" f -remoteScreen src/Dodge/Item/Scope.hs 85;" f +remoteDetonator src/Dodge/Item/Scope.hs 97;" f +remoteScreen src/Dodge/Item/Scope.hs 92;" f removeAmmoFromMag src/Dodge/HeldUse.hs 423;" f removeDot src/ShortShow.hs 29;" f removeInverseWalls src/Dodge/LevelGen/StaticWalls.hs 25;" f @@ -5479,7 +5485,7 @@ 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 -rlauncherPic src/Dodge/Item/Draw/SPic.hs 374;" f +rlauncherPic src/Dodge/Item/Draw/SPic.hs 375;" f rmInLinks src/Dodge/RoomLink.hs 138;" f rmInvItem src/Dodge/Inventory.hs 60;" f rmLinksOfType src/Dodge/RoomLink.hs 135;" f @@ -5563,7 +5569,7 @@ scaleMat src/MatrixHelper.hs 59;" f scaleMatrix src/MatrixHelper.hs 56;" f scaleSH src/Shape.hs 268;" f scalp src/Dodge/Creature/Picture.hs 96;" f -scancodeToHotkey src/Dodge/Creature/YourControl.hs 80;" f +scancodeToHotkey src/Dodge/Creature/YourControl.hs 88;" f scodeToChar src/Dodge/ScodeToChar.hs 6;" f scorchSPic src/Dodge/Creature/State.hs 116;" f screenBox src/Dodge/Base/Window.hs 53;" f @@ -5596,7 +5602,7 @@ sectionsSizes src/Dodge/DisplayInventory.hs 236;" f 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 565;" f +selCloseObj src/Dodge/Update/Input/InGame.hs 562;" f selNumPos src/Dodge/Render/HUD.hs 441;" f selNumPosCardinal src/Dodge/Render/HUD.hs 464;" f selSecDrawCursor src/Dodge/Render/List.hs 126;" f @@ -5621,7 +5627,7 @@ sentinelFireType src/Dodge/Creature/SentinelAI.hs 50;" f setChannelPos src/Sound.hs 149;" f setClickWorldPos src/Dodge/Update.hs 97;" f setClusterID src/Dodge/Combine/Graph.hs 115;" f -setCrPosture src/Dodge/Creature/YourControl.hs 157;" f +setCrPosture src/Dodge/Creature/YourControl.hs 170;" f setDepth src/Picture/Base.hs 128;" f setDirPS src/Dodge/PlacementSpot.hs 49;" f setFallback src/Dodge/PlacementSpot.hs 127;" f @@ -5679,11 +5685,11 @@ 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 287;" f +shatterGunSPic src/Dodge/Item/Draw/SPic.hs 288;" f shatterWall src/Dodge/Item/Weapon/Shatter.hs 26;" f shellCollisionCheck src/Dodge/Projectile/Update.hs 86;" f shellMag src/Dodge/Item/Ammo.hs 61;" f -shellModule src/Dodge/Item/Scope.hs 71;" f +shellModule src/Dodge/Item/Scope.hs 78;" f shellShape src/Dodge/Projectile/Draw.hs 34;" f shellTrailCloud src/Dodge/WorldEvent/Cloud.hs 65;" f shieldWall src/Dodge/Euse.hs 87;" f @@ -5727,8 +5733,8 @@ shotgunS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 536;" f shoulderHeight src/Dodge/Item/HeldOffset.hs 81;" f shoulderSH src/Dodge/Creature/Picture.hs 139;" f shoulderSP src/Dodge/Creature/HandPos.hs 170;" f -showAttachItem src/Dodge/Item/Display.hs 72;" f -showEquipItem src/Dodge/Item/Display.hs 87;" f +showAttachItem src/Dodge/Item/Display.hs 73;" f +showEquipItem src/Dodge/Item/Display.hs 88;" f showInt src/Dodge/Item/Info.hs 30;" f showIntsString src/Dodge/Tree/Compose.hs 129;" f showManObj src/Dodge/TestString.hs 76;" f @@ -5773,7 +5779,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 108;" f +smokeReducer src/Dodge/Item/Scope.hs 115;" f sndV2 src/Geometry/Data.hs 52;" f sniperRifle src/Dodge/Item/Held/Rod.hs 54;" f someCrits src/Dodge/LockAndKey.hs 120;" f @@ -5794,7 +5800,7 @@ soundToVol src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 4;" f soundWithStatus src/Dodge/SoundLogic.hs 98;" f soundWithStatusVolume src/Dodge/SoundLogic.hs 48;" f southPillarsRoom src/Dodge/Room/LongDoor.hs 85;" f -spaceAction src/Dodge/Update/Input/InGame.hs 542;" f +spaceAction src/Dodge/Update/Input/InGame.hs 539;" f spanColLightBlackI src/Dodge/Placement/Instance/LightSource.hs 190;" f spanColLightI src/Dodge/Placement/Instance/LightSource.hs 183;" f spanLS src/Dodge/Placement/Instance/LightSource.hs 175;" f @@ -5859,7 +5865,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 46;" f +stickyMod src/Dodge/Item/Scope.hs 47;" 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 @@ -5919,7 +5925,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 33;" f +targetingScope src/Dodge/Item/Scope.hs 34;" 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 @@ -5933,7 +5939,7 @@ terminalScreenGlow src/Dodge/Machine/Update.hs 34;" f terminalShape src/Dodge/Machine/Draw.hs 32;" 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 +teslaGunPic src/Dodge/Item/Draw/SPic.hs 395;" f teslaParams src/Dodge/Item/Held/BatteryGuns.hs 37;" f teslaParams src/Dodge/Tesla/ItemParams.hs 6;" f testCrossWalls src/Dodge/Room/Path.hs 47;" f @@ -5993,9 +5999,9 @@ 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 89;" f +toggleExamineInv src/Dodge/Creature/Impulse/UseItem.hs 127;" f toggleExamineInv src/Dodge/ToggleExamine.hs 5;" f toggleJust src/MaybeHelp.hs 41;" f -toggleMap src/Dodge/Update/Input/InGame.hs 586;" f togglesToEffects src/Dodge/Terminal.hs 248;" f tone440S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 482;" f tone440sawtoothS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 452;" f @@ -6005,14 +6011,14 @@ topPrismEdgeIndices src/Shader/Poke.hs 335;" f 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 +torchShape src/Dodge/Item/Draw/SPic.hs 257;" 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 tractorBeamAt src/Dodge/HeldUse.hs 382;" f tractorGun src/Dodge/Item/Held/BatteryGuns.hs 70;" f -tractorGunPic src/Dodge/Item/Draw/SPic.hs 421;" f +tractorGunPic src/Dodge/Item/Draw/SPic.hs 422;" f tractorPullPos src/Dodge/TractorBeam/Update.hs 33;" f tractorSPic src/Dodge/TractorBeam/Draw.hs 10;" f tranRot src/Picture/Base.hs 124;" f @@ -6064,8 +6070,8 @@ truncFaces src/Polyhedra/Geodesic.hs 53;" f 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 599;" f +tryClickUse src/Dodge/Creature/YourControl.hs 175;" f +tryCombine src/Dodge/Update/Input/InGame.hs 596;" f tryDropSelected src/Dodge/Update/Input/InGame.hs 123;" f tryGetChannel src/Sound.hs 96;" f tryGetRootAttachedFromInvID src/Dodge/Inventory/Location.hs 20;" f @@ -6097,7 +6103,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 105;" f +underBarrelSlot src/Dodge/Item/Scope.hs 112;" f unfoldrMID src/MonadHelp.hs 33;" f unitVectorAtAngle src/Geometry/Vector.hs 100;" f unlockInv src/Dodge/Inventory/Lock.hs 12;" f @@ -6118,7 +6124,7 @@ updateAllNodes src/TreeHelp.hs 85;" f updateArc src/Dodge/Tesla.hs 91;" f updateArc src/Dodge/Tesla/Arc.hs 100;" f updateAttachedItems src/Dodge/Creature/State.hs 263;" f -updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 491;" f +updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 488;" f updateBarrel src/Dodge/Barreloid.hs 45;" f updateBarreloid src/Dodge/Barreloid.hs 13;" f updateBounds src/Dodge/Update/Camera.hs 215;" f @@ -6141,7 +6147,7 @@ updateDistortion src/Dodge/Distortion.hs 5;" f updateDistortions src/Dodge/Update.hs 538;" f updateEnergyBall src/Dodge/EnergyBall.hs 45;" f updateEnergyBalls src/Dodge/Update.hs 564;" f -updateEnterRegex src/Dodge/Update/Input/InGame.hs 518;" f +updateEnterRegex src/Dodge/Update/Input/InGame.hs 515;" f updateExpBarrel src/Dodge/Barreloid.hs 19;" f updateFBOTO src/Framebuffer/Update.hs 97;" f updateFBOTO3 src/Framebuffer/Update.hs 131;" f @@ -6167,7 +6173,7 @@ updateLampoid src/Dodge/Lampoid.hs 12;" f updateLaser src/Dodge/Laser/Update.hs 13;" f updateLasers src/Dodge/Update.hs 436;" f updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f -updateLongPressInGame src/Dodge/Update/Input/InGame.hs 450;" f +updateLongPressInGame src/Dodge/Update/Input/InGame.hs 448;" f updateMachine src/Dodge/Machine/Update.hs 19;" f updateMagnets src/Dodge/Update.hs 307;" f updateMouseClickInGame src/Dodge/Update/Input/InGame.hs 195;" f @@ -6183,8 +6189,6 @@ updatePastWorlds src/Dodge/Update.hs 424;" f updatePosEvent src/Dodge/PosEvent.hs 11;" f updatePosEvents src/Dodge/Update.hs 573;" f updatePreload src/Preload/Update.hs 20;" f -updatePressedButtonsCarte src/Dodge/Update/Input/InGame.hs 392;" f -updatePressedButtonsCarte' src/Dodge/Update/Input/InGame.hs 395;" f updateProjectile src/Dodge/Projectile/Update.hs 25;" f updateProp src/Dodge/Prop/Update.hs 11;" f updatePulse src/Dodge/Creature/Update.hs 22;" f @@ -6253,7 +6257,7 @@ useC src/Dodge/Cuse.hs 8;" f useC' src/Dodge/Cuse.hs 13;" f useE src/Dodge/Euse.hs 34;" f useGasParams src/Dodge/HeldUse.hs 532;" f -useHotkey src/Dodge/Creature/YourControl.hs 60;" f +useHotkey src/Dodge/Creature/YourControl.hs 63;" f useItem src/Dodge/Creature/Impulse/UseItem.hs 20;" f useItemLoc src/Dodge/Creature/Impulse/UseItem.hs 27;" f useLnkRoomPos src/Dodge/PlacementSpot.hs 244;" f @@ -6304,7 +6308,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 31;" f -volleyGunShape src/Dodge/Item/Draw/SPic.hs 332;" f +volleyGunShape src/Dodge/Item/Draw/SPic.hs 333;" f waistSP src/Dodge/Creature/HandPos.hs 173;" f walkNozzle src/Dodge/HeldUse.hs 350;" f walkableNodeNear src/Dodge/Path.hs 48;" f @@ -6315,12 +6319,12 @@ 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 27;" f -wasdAim src/Dodge/Creature/YourControl.hs 109;" f +wasdAim src/Dodge/Creature/YourControl.hs 122;" f wasdDir src/Dodge/WASD.hs 17;" f wasdM src/Dodge/WASD.hs 9;" f -wasdMovement src/Dodge/Creature/YourControl.hs 135;" f -wasdTwist src/Dodge/Creature/YourControl.hs 117;" f -wasdWithAiming src/Dodge/Creature/YourControl.hs 99;" f +wasdMovement src/Dodge/Creature/YourControl.hs 148;" f +wasdTwist src/Dodge/Creature/YourControl.hs 130;" f +wasdWithAiming src/Dodge/Creature/YourControl.hs 112;" f watchCombinations src/Dodge/Combine/Combinations.hs 15;" f watchUpdateStrat src/Dodge/Creature/ReaderUpdate.hs 177;" f weakenMatS src/Dodge/Material/Sound.hs 18;" f @@ -6424,5 +6428,5 @@ zoomFloatingCamera src/Dodge/Update/Camera.hs 68;" f zoomFromItem src/Dodge/Update/Camera.hs 181;" 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 +zoomScope src/Dodge/Item/Scope.hs 29;" f zoomSpeed src/Dodge/Update/Scroll.hs 94;" f