diff --git a/src/Dodge/Combine.hs b/src/Dodge/Combine.hs index 5ea1d425d..f8ce197e1 100644 --- a/src/Dodge/Combine.hs +++ b/src/Dodge/Combine.hs @@ -30,6 +30,7 @@ combineList = map f . combineItemListYouX , _siColor = itemInvColor $ baseCI itm , _siOffX = 2 , _siPayload = Just $ CombItem is itm + , _siDisplayMod = NoSIDisplayMod } combineItemListYouX :: World -> [([Int], Item)] diff --git a/src/Dodge/Data/CWorld.hs b/src/Dodge/Data/CWorld.hs index 63a173026..859f60dec 100644 --- a/src/Dodge/Data/CWorld.hs +++ b/src/Dodge/Data/CWorld.hs @@ -32,6 +32,7 @@ data CWorld = CWorld , _numberFloorVerxs :: Int , _chasms :: [[Point2]] , _numberChasmVerxs :: Int + , _highlightItems :: IM.IntMap Int } data CWGen = CWGen diff --git a/src/Dodge/Data/SelectionList.hs b/src/Dodge/Data/SelectionList.hs index 3daf399fc..586e2c3d3 100644 --- a/src/Dodge/Data/SelectionList.hs +++ b/src/Dodge/Data/SelectionList.hs @@ -38,16 +38,20 @@ type IMSS a = IntMap (SelSection a) data SelectionWidth = FixedSelectionWidth Int | UseItemWidth -data SelectionItem a - = SelItem - { _siPictures :: [String] - , _siHeight :: Int - , _siWidth :: Int - , _siIsSelectable :: Bool - , _siColor :: Color - , _siOffX :: Int - , _siPayload :: Maybe a - } +data SelectionItem a = SelItem + { _siPictures :: [String] + , _siHeight :: Int + , _siWidth :: Int + , _siIsSelectable :: Bool + , _siColor :: Color + , _siOffX :: Int + , _siPayload :: Maybe a + , _siDisplayMod :: SIDisplayMod + } + +data SIDisplayMod + = NoSIDisplayMod + | HighlightSI makeLenses ''ListDisplayParams makeLenses ''SelectionItem diff --git a/src/Dodge/Data/Terminal.hs b/src/Dodge/Data/Terminal.hs index 03cbed27e..a77dc69b4 100644 --- a/src/Dodge/Data/Terminal.hs +++ b/src/Dodge/Data/Terminal.hs @@ -58,6 +58,7 @@ data TmWdWd | TmWdWdDoDeathTriggers | TmTmClearDisplayedLines | TmTmSetStatus TerminalStatus + | TmDistributeAmmo makeLenses ''Terminal makeLenses ''TerminalLine diff --git a/src/Dodge/Default/World.hs b/src/Dodge/Default/World.hs index cafdc3067..182063393 100644 --- a/src/Dodge/Default/World.hs +++ b/src/Dodge/Default/World.hs @@ -98,6 +98,7 @@ defaultCWorld = , _incGraph = mempty , _incNode = mempty , _incEdges = mempty + , _highlightItems = mempty } defaultLWorld :: LWorld diff --git a/src/Dodge/DisplayInventory.hs b/src/Dodge/DisplayInventory.hs index 3ecffa2f8..4421ac98f 100644 --- a/src/Dodge/DisplayInventory.hs +++ b/src/Dodge/DisplayInventory.hs @@ -65,7 +65,7 @@ updateCombineSections w cfig = sclose' | null sclose = IM.singleton 0 $ - SelItem ["NONE"] 1 25 False white 2 Nothing + SelItem ["NONE"] 1 25 False white 2 Nothing NoSIDisplayMod | otherwise = sclose regexCombs :: IM.IntMap Item -> SelectionItem CombItem -> String -> Bool @@ -124,7 +124,7 @@ updateDisplaySections w cfig = [ sfinv , sinv , IM.singleton 0 $ - SelItem [displayFreeSlots (crNumFreeSlots (w ^. cWorld . lWorld . items) cr)] 1 15 True invDimColor 2 Nothing + SelItem [displayFreeSlots (crNumFreeSlots (w ^. cWorld . lWorld . items) cr)] 1 15 True invDimColor 2 Nothing NoSIDisplayMod , sfclose , sclose , interfaceshead @@ -144,7 +144,7 @@ updateDisplaySections w cfig = btitems = IM.fromDistinctAscList . zip [0 ..] $ mapMaybe (closeButtonToSelectionItem w) (w ^. hud . closeButtons) - makehead str = IM.singleton 0 $ SelItem [str] 1 15 False white 0 Nothing + makehead str = IM.singleton 0 $ SelItem [str] 1 15 False white 0 Nothing NoSIDisplayMod cr = you w closeitms = IM.fromDistinctAscList . zip [0 ..] $ @@ -165,7 +165,7 @@ filterSectionsPair infocus filtfn itms s mfilt = (x, itms') where filtcurs = if infocus then cFilledRect else cWireRect x = IM.singleton 0 $ - fromMaybe (SelItem [s] 1 (length s) False white 0 Nothing) $ do + fromMaybe (SelItem [s] 1 (length s) False white 0 Nothing NoSIDisplayMod) $ do str <- mfilt return $ SelItem @@ -176,6 +176,7 @@ filterSectionsPair infocus filtfn itms s mfilt = (x, itms') white 0 Nothing + NoSIDisplayMod f y = y -- | null y = -- IM.singleton 0 $ SelItem ["(NONE)"] 1 (length s) True (greyN 0.5) 0 Nothing @@ -293,8 +294,7 @@ updateSection indent mcsel sis availablelines oldoffset = | otherwise = id tweaklast | aslength - offset > availablelines = - ix (availablelines - 1) - .~ color white (text . replicate 15 $ toEnum 31) + ix (availablelines - 1) .~ color white (text . replicate 15 $ toEnum 31) | otherwise = id (allstrings, Sum aslength) = foldMap listSelectionColorPicture sis shownstrings = drop offset allstrings @@ -302,7 +302,10 @@ updateSection indent mcsel sis availablelines oldoffset = listSelectionColorPicture :: SelectionItem a -> ([Picture], Sum Int) listSelectionColorPicture si = (g <$> _siPictures si, Sum $ _siHeight si) where - g = translate lindent 0 . color (_siColor si) . text + textf = case si ^. siDisplayMod of + NoSIDisplayMod -> text + HighlightSI -> hackBoldText + g = translate lindent 0 . color (_siColor si) . textf lindent = 100 * fromIntegral (_siOffX si) regexList :: String -> [String] -> Bool diff --git a/src/Dodge/Event/Test.hs b/src/Dodge/Event/Test.hs index c74eb99ae..80a564848 100644 --- a/src/Dodge/Event/Test.hs +++ b/src/Dodge/Event/Test.hs @@ -3,30 +3,29 @@ module Dodge.Event.Test (testEvent) where --import Dodge.Creature.State --import Dodge.Flame -import Data.Maybe +--import Data.Maybe import Dodge.Data.World import LensHelp -import Linear +--import Linear testEvent :: World -> World -testEvent w = fromMaybe w $ do +testEvent w = w & cWorld . highlightItems .~ + (w ^. cWorld . lWorld . items & each .~ 20) +--fromMaybe w $ do -- cpos <- w ^? cWorld . lWorld . creatures . ix 0 . crPos . _xy --- return $ w & makeFlame (cpos + 25) 1 ---testEvent w = fromMaybe w $ do - cpos <- w ^? cWorld . lWorld . creatures . ix 0 . crPos . _xy - let distR = 50 - t1 = V2 1 (-1) - t2 = V2 1 1 - t3 = V2 distR 0 - v3 = V3 t1 t2 t3 - distortionBulge = - RadialDistortion - cpos - (V2 distR 0) - (V2 0 distR) - v3 v3 v3 - 20 - return $ w & cWorld . lWorld . distortions .~ [distortionBulge - , distortionBulge & rdPos +~ 50 & rdTR . _1 +~ V2 (-1) 1 - , distortionBulge & rdPos +~ (-50) - ] +-- let distR = 50 +-- t1 = V2 1 (-1) +-- t2 = V2 1 1 +-- t3 = V2 distR 0 +-- v3 = V3 t1 t2 t3 +-- distortionBulge = +-- RadialDistortion +-- cpos +-- (V2 distR 0) +-- (V2 0 distR) +-- v3 v3 v3 +-- 20 +-- return $ w & cWorld . lWorld . distortions .~ [distortionBulge +-- , distortionBulge & rdPos +~ 50 & rdTR . _1 +~ V2 (-1) 1 +-- , distortionBulge & rdPos +~ (-50) +-- ] diff --git a/src/Dodge/Inventory/SelectionList.hs b/src/Dodge/Inventory/SelectionList.hs index f0e50667e..170cfbdb8 100644 --- a/src/Dodge/Inventory/SelectionList.hs +++ b/src/Dodge/Inventory/SelectionList.hs @@ -39,8 +39,11 @@ invSelectionItem w indent loc = , _siColor = itemInvColor ci , _siOffX = indent , _siPayload = Nothing + , _siDisplayMod = dmod } where + dmod = maybe NoSIDisplayMod (const HighlightSI) + $ w ^? cWorld . highlightItems . ix (a ^. itID . unNInt) ci = (a,b) (a,b,_) = loc ^. locDT . dtValue cr = w ^?! cWorld . lWorld . creatures . ix 0 @@ -218,6 +221,7 @@ closeItemToSelectionItem w i = do , _siColor = col , _siOffX = 0 , _siPayload = Nothing + , _siDisplayMod = NoSIDisplayMod } closeButtonToSelectionItem :: World -> Int -> Maybe (SelectionItem ()) @@ -232,6 +236,7 @@ closeButtonToSelectionItem w i = do , _siColor = yellow , _siOffX = 0 , _siPayload = Nothing + , _siDisplayMod = NoSIDisplayMod } btText :: Button -> String diff --git a/src/Dodge/ListDisplayParams.hs b/src/Dodge/ListDisplayParams.hs index cdc20afaa..114135efc 100644 --- a/src/Dodge/ListDisplayParams.hs +++ b/src/Dodge/ListDisplayParams.hs @@ -1,5 +1,6 @@ module Dodge.ListDisplayParams ( invDP, +-- secDP, invCursorParams, secondColumnLDP, subInvX, @@ -41,7 +42,8 @@ invCursorParams w = BoundaryCursor $ case w ^? hud . subInventory of _ -> [North, South, West] secondColumnLDP :: ListDisplayParams -secondColumnLDP = defaultListDisplayParams & ldpPos . spPixelOff .~ V2 subInvX (-20) +--secondColumnLDP = defaultListDisplayParams & ldpPos . spPixelOff .~ V2 subInvX (-20) +secondColumnLDP = defaultListDisplayParams & ldpPos . spPixelOff .~ V2 subInvX 0 subInvX :: Float subInvX = 10 * fromIntegral topInvW + 170 diff --git a/src/Dodge/Menu/Option.hs b/src/Dodge/Menu/Option.hs index 9263d9bb6..274cd3d6a 100644 --- a/src/Dodge/Menu/Option.hs +++ b/src/Dodge/Menu/Option.hs @@ -102,6 +102,7 @@ menuOptionToSelectionItem w padAmount mo = , _siColor = thecol , _siOffX = 0 , _siPayload = Just (f, g) + , _siDisplayMod = NoSIDisplayMod } where isselectable = case _moString mo w of diff --git a/src/Dodge/Render/HUD.hs b/src/Dodge/Render/HUD.hs index c7c1a4ea5..d344311a5 100644 --- a/src/Dodge/Render/HUD.hs +++ b/src/Dodge/Render/HUD.hs @@ -58,7 +58,7 @@ drawHUD cfig w = case w ^. hud of drawInventory :: IM.IntMap (SelSection ()) -> World -> Config -> SubInventory -> Picture drawInventory sss w cfig = \case - DisplayTerminal {} -> mempty +-- DisplayTerminal {} -> mempty _ -> drawSelectionSections sss invDP cfig <> drawSSCursor sss invDP curs cfig (f $ w ^? hud . diSelection . _Just) <> drawRootCursor w sss (f $ w ^? hud . diSelection . _Just) invDP cfig @@ -222,6 +222,7 @@ drawExamineInventory cfig w = , _siColor = white , _siOffX = 0 , _siPayload = Nothing + , _siDisplayMod = NoSIDisplayMod } closeObjectInfo :: Int -> Either Item Button -> String @@ -360,7 +361,7 @@ combineInventoryExtra sss msel cfig w = fold $ do drawTerminalDisplay :: LWorld -> Config -> Terminal -> Picture drawTerminalDisplay lw cfig tm = - drawSelectionList invDP cfig f + drawSelectionList secondColumnLDP cfig f -- <> invHead cfig ("TERMINAL-" ++ show tid) -- <> color -- (withAlpha 0.5 green) -- consider integrating termScreenColor somehow @@ -369,7 +370,7 @@ drawTerminalDisplay lw cfig tm = where tid = tm ^. tmID -- tsize = getMaxLinesTM + 1 - toselitm (str, col) = SelItem [str] 1 55 True col 0 Nothing + toselitm (str, col) = SelItem [str] 1 55 True col 0 Nothing NoSIDisplayMod -- not sure if the width (55) is correct here f = toselitm ("TERMINAL " ++ show tid,white) : (map (toselitm . (_1 %~ (" "<>))) . displayTermInput diff --git a/src/Dodge/Room/Room.hs b/src/Dodge/Room/Room.hs index a6ecc13a8..12f793026 100644 --- a/src/Dodge/Room/Room.hs +++ b/src/Dodge/Room/Room.hs @@ -428,8 +428,8 @@ distributerRoom atype aamount = do store = sps (unusedOffPathAwayFromLink 50) (PutMachine (reverse $ polyCirc 4 20) mcstore Nothing) & plExternalID ?~ i dst gw = let mj = gw ^? genPmnt . ix i . plMID . _Just - in sps (unusedOffPathAwayFromLink 50) - (PutMachine (reverse $ square 10) (mcdist mj) Nothing) + in putTerminal (mcdist mj) (defaultTerminal & tmBootLines .~ tmDistributeLines) + & plSpot .~ (unusedOffPathAwayFromLink 50) & plExternalID ?~ i1 thepipe gw = let p1 = gw ^?! genPmnt . ix i . plSpot . psPos @@ -446,5 +446,8 @@ distributerRoom atype aamount = do return $ r & rmPmnts .:~ store & rmInPmnt <>~ [(0,dst),(1,thepipe)] +tmDistributeLines :: [TerminalLine] +tmDistributeLines = [TLine 1 [TerminalLineConst "DISTRIBUTING AMMO" white] TmDistributeAmmo] + -- cor <- shuffleLinks corridor -- return $ tToBTree "corDoor" $ treePost [door,cor,cleatOnward door] diff --git a/src/Dodge/SelectionSections/Draw.hs b/src/Dodge/SelectionSections/Draw.hs index bb2fe2fba..a81b53599 100644 --- a/src/Dodge/SelectionSections/Draw.hs +++ b/src/Dodge/SelectionSections/Draw.hs @@ -13,11 +13,7 @@ import Dodge.ScreenPos import Dodge.SelectionSections import Picture.Base -drawSelectionSections :: - IM.IntMap (SelSection a) -> - ListDisplayParams -> - Config -> - Picture +drawSelectionSections :: IM.IntMap (SelSection a) -> ListDisplayParams -> Config -> Picture drawSelectionSections sss ldp cfig = translateScreenPos cfig (ldp ^. ldpPos) $ drawListYgapScaleYoff diff --git a/src/Dodge/TestString.hs b/src/Dodge/TestString.hs index 3cc98cb19..9b9324480 100644 --- a/src/Dodge/TestString.hs +++ b/src/Dodge/TestString.hs @@ -32,12 +32,13 @@ import Data.Foldable import Data.Monoid testStringInit :: Universe -> [String] -testStringInit u = map show - (u ^.. uvWorld . cWorld . lWorld . machines . traverse .mcType . _McDistributer) - <> - map f (u ^.. uvWorld . cWorld . lWorld . machines . traverse) - where - f mc = show (mc ^. mcID) <> shortShow (mc ^. mcType) +testStringInit _ = mempty +--testStringInit u = map show +-- (u ^.. uvWorld . cWorld . lWorld . machines . traverse .mcType . _McDistributer) +-- <> +-- map f (u ^.. uvWorld . cWorld . lWorld . machines . traverse) +-- where +-- f mc = show (mc ^. mcID) <> shortShow (mc ^. mcType) -- [show $ foldMap (foldMap (Sum . length . (^. seObstacles))) -- $ u ^. uvWorld . cWorld . incGraph] -- foldMap prettyShort $ u ^? uvWorld . cWorld . lWorld . machines . ix 0 . mcType . _McProxSensor diff --git a/src/Dodge/Update.hs b/src/Dodge/Update.hs index 968f5a49f..188b0e003 100644 --- a/src/Dodge/Update.hs +++ b/src/Dodge/Update.hs @@ -158,12 +158,18 @@ updateUniverseMid u = case _uvScreenLayers u of (sl : _) -> u & uvWorld . unpauseClock .~ 0 & updateUseInputOnScreen sl [] -> (uvWorld . unpauseClock +~ 1) + . (uvWorld . cWorld . highlightItems %~ IM.mapMaybe minusone) +-- . (uvWorld . cWorld . highlightItems . filteredBy . non 0 -~ 1) . timeFlowUpdate . updateUseInputInGame $ over uvWorld (updateMouseInGame (u ^. uvConfig) . updateCamera (u ^. uvConfig)) u + where + minusone x + | x > 0 = Just $ x - 1 + | otherwise = Nothing timeFlowUpdate :: Universe -> Universe timeFlowUpdate u = case u ^. uvWorld . timeFlow of diff --git a/src/Dodge/WorldEffect.hs b/src/Dodge/WorldEffect.hs index af14f9257..52cdb3462 100644 --- a/src/Dodge/WorldEffect.hs +++ b/src/Dodge/WorldEffect.hs @@ -1,4 +1,4 @@ ---{-# LANGUAGE LambdaCase #-} +{-# LANGUAGE LambdaCase #-} module Dodge.WorldEffect ( doWdWd, @@ -6,6 +6,7 @@ module Dodge.WorldEffect ( doTmWdWd, ) where +import Color import Dodge.Terminal import NewInt import Control.Monad @@ -26,7 +27,7 @@ import LensHelp import System.Random doWdWd :: WdWd -> World -> World -doWdWd we = case we of +doWdWd = \case NoWorldEffect -> id SetTrigger bool tid -> cWorld . lWorld . triggers . ix tid .~ bool SetLSCol col lsid -> cWorld . lWorld . lightSources . ix lsid . lsParam . lsCol .~ col @@ -93,7 +94,7 @@ doDeathToggle :: TerminalToggle -> IM.IntMap Bool -> IM.IntMap Bool doDeathToggle (TerminalToggle trid f) = ix trid %~ doBlBl f doTmWdWd :: TmWdWd -> Terminal -> World -> World -doTmWdWd tmwdwd = case tmwdwd of +doTmWdWd = \case TmTmClearDisplayedLines -> \tm -> cWorld . lWorld . terminals . ix (tm ^. tmID) . tmDisplayedLines .~ [] TmTmSetStatus x -> \tm -> cWorld . lWorld . terminals . ix (tm ^. tmID) . tmStatus .~ x @@ -106,6 +107,20 @@ doTmWdWd tmwdwd = case tmwdwd of return $ soundStart TerminalSound tpos sid Nothing w TmWdWdDoDeathTriggers -> doDeathTriggers TmWdWdfromWdWd f -> \_ -> doWdWd f + TmDistributeAmmo -> tmDistributeAmmo + +tmDistributeAmmo :: Terminal -> World -> World +tmDistributeAmmo tm w = fromMaybe w $ do + let mid = tm ^. tmMachineID + sid <- w ^? cWorld . lWorld . machines . ix mid + . mcType . mcdStorageMachine . _Just + McStorage atype aamount <- w ^? cWorld . lWorld . machines . ix sid . mcType + return $ w & cWorld . lWorld . terminals . ix (tm ^. tmID) . tmStatus + .~ TerminalPressTo "" + & cWorld . lWorld . terminals . ix (tm ^. tmID) . tmFutureLines .~ + [TLine 1 [TerminalLineConst "" yellow] (TmTmSetStatus (TerminalPressTo "RETRY")) + ,TLine 1 [TerminalLineConst "" white] TmWdWdPowerDownTerminal + ] resetTerminal :: TerminalStatus -> Terminal -> World -> World resetTerminal x tm = diff --git a/src/Picture/Base.hs b/src/Picture/Base.hs index abadabede..a51947840 100644 --- a/src/Picture/Base.hs +++ b/src/Picture/Base.hs @@ -25,6 +25,7 @@ module Picture.Base ( line, lineCol, text, + hackBoldText, textRight, textJustifyLeft, textJustifyRight, @@ -194,6 +195,9 @@ text :: String -> Picture {-# INLINE text #-} text = drawText 0 +hackBoldText :: String -> Picture +hackBoldText s = text s <> translate 10 0 (text s) + -- lines up the rightmost part of the last character with 0 textJustifyRight :: String -> Picture {-# INLINE textJustifyRight #-} diff --git a/tags b/tags index 193059e30..3e1569ca1 100644 --- a/tags +++ b/tags @@ -13,11 +13,11 @@ .+.+~ src/LensHelp.hs 23;" o .:~ src/LensHelp.hs 14;" o <$> src/Dodge/Data/ActionPlan.hs 156;" o -<$> src/Dodge/Data/CWorld.hs 50;" o +<$> src/Dodge/Data/CWorld.hs 51;" o <$> src/Dodge/Data/Camera.hs 38;" o <$> src/Dodge/Data/Creature.hs 89;" o <$> src/Dodge/Data/LWorld.hs 176;" o -<$> src/Dodge/Data/Terminal.hs 67;" o +<$> src/Dodge/Data/Terminal.hs 68;" o ABSOLUTE src/Dodge/Data/Item/Combine.hs 39;" C AIUNIT src/Dodge/Data/Item/Combine.hs 74;" C ALTERIFLE src/Dodge/Data/Item/Combine.hs 153;" C @@ -176,7 +176,7 @@ COPIER src/Dodge/Data/Item/Combine.hs 28;" C CRAFT src/Dodge/Data/Item/Combine.hs 18;" C CREATUREDETECTOR src/Dodge/Data/Item/Combine.hs 183;" C CREATURESENSOR src/Dodge/Data/Item/Combine.hs 84;" C -CWGen src/Dodge/Data/CWorld.hs 37;" t +CWGen src/Dodge/Data/CWorld.hs 38;" t CWorld src/Dodge/Data/CWorld.hs 23;" t CYAN src/Color/Data.hs 16;" C CamControl src/Dodge/Data/Camera.hs 17;" t @@ -838,6 +838,7 @@ NoParams src/Dodge/Data/Item/Params.hs 13;" C NoRightButtonState src/Dodge/Data/RightButtonOptions.hs 14;" C NoRoomClipBoundaries src/Dodge/Data/Config.hs 121;" C NoSF src/Dodge/Data/ComposedItem.hs 29;" C +NoSIDisplayMod src/Dodge/Data/SelectionList.hs 53;" C NoShadowFidelity src/Shape/Data.hs 20;" C NoShadows src/Dodge/Data/Config.hs 117;" C NoSoundFilter src/Dodge/Data/WorldEffect.hs 23;" C @@ -1126,6 +1127,7 @@ SCRAPMETAL src/Dodge/Data/Item/Combine.hs 61;" C SHATTERGUN src/Dodge/Data/Item/Combine.hs 173;" C SHELLMAG src/Dodge/Data/Item/Combine.hs 109;" C SHELLPAYLOAD src/Dodge/Data/Item/Combine.hs 101;" C +SIDisplayMod src/Dodge/Data/SelectionList.hs 53;" t SMG src/Dodge/Data/Item/Combine.hs 146;" C SMOKEREDUCER src/Dodge/Data/Item/Combine.hs 99;" C SNIPERRIFLE src/Dodge/Data/Item/Combine.hs 160;" C @@ -1323,6 +1325,7 @@ Tile src/Data/Tile.hs 16;" t Tiled src/Data/Tile.hs 14;" C TimeFlowStatus src/Dodge/Data/World.hs 63;" t Tiny src/Shape/Data.hs 27;" C +TmDistributeAmmo src/Dodge/Data/Terminal.hs 61;" C TmTmClearDisplayedLines src/Dodge/Data/Terminal.hs 59;" C TmTmSetStatus src/Dodge/Data/Terminal.hs 60;" C TmWdId src/Dodge/Data/Terminal.hs 52;" C @@ -1693,11 +1696,11 @@ _currentArc src/Dodge/Data/Item/Params.hs 15;" f _currentFoot src/Dodge/Data/Creature/Stance.hs 23;" f _cwGen src/Dodge/Data/CWorld.hs 25;" f _cwTiles src/Dodge/Data/CWorld.hs 27;" f -_cwgGameRooms src/Dodge/Data/CWorld.hs 40;" f -_cwgParams src/Dodge/Data/CWorld.hs 38;" f -_cwgRoomClipping src/Dodge/Data/CWorld.hs 41;" f -_cwgSeed src/Dodge/Data/CWorld.hs 42;" f -_cwgWorldBounds src/Dodge/Data/CWorld.hs 39;" f +_cwgGameRooms src/Dodge/Data/CWorld.hs 41;" f +_cwgParams src/Dodge/Data/CWorld.hs 39;" f +_cwgRoomClipping src/Dodge/Data/CWorld.hs 42;" f +_cwgSeed src/Dodge/Data/CWorld.hs 43;" f +_cwgWorldBounds src/Dodge/Data/CWorld.hs 40;" f _cylinderSize src/Shape/Data.hs 14;" f _dbPos src/Dodge/Data/Prop.hs 26;" f _dbRot src/Dodge/Data/Prop.hs 29;" f @@ -1856,6 +1859,7 @@ _gusts src/Dodge/Data/LWorld.hs 99;" f _gwWorld src/Dodge/Data/GenWorld.hs 24;" f _heldPos src/Dodge/Data/Input.hs 43;" f _heldWorldPos src/Dodge/Data/Input.hs 45;" f +_highlightItems src/Dodge/Data/CWorld.hs 35;" f _hotkeys src/Dodge/Data/LWorld.hs 142;" f _hud src/Dodge/Data/World.hs 46;" f _humanoidAI src/Dodge/Data/Creature/Misc.hs 79;" f @@ -2263,6 +2267,7 @@ _shapeShader src/Data/Preload/Render.hs 28;" f _shellPayload src/Dodge/Data/Item/Combine.hs 101;" f _shockwaves src/Dodge/Data/LWorld.hs 113;" f _siColor src/Dodge/Data/SelectionList.hs 47;" f +_siDisplayMod src/Dodge/Data/SelectionList.hs 50;" f _siHeight src/Dodge/Data/SelectionList.hs 44;" f _siIsSelectable src/Dodge/Data/SelectionList.hs 46;" f _siOffX src/Dodge/Data/SelectionList.hs 48;" f @@ -2498,7 +2503,7 @@ aRadarPulse src/Dodge/RadarSweep.hs 20;" f aShape src/Dodge/Placement/Instance/LightSource.hs 88;" f aSound src/Dodge/SoundLogic.hs 74;" f aTreeStrut src/Dodge/Tree/GenerateStructure.hs 42;" f -accessTerminal src/Dodge/WorldEffect.hs 60;" f +accessTerminal src/Dodge/WorldEffect.hs 61;" f activateDetonator src/Dodge/Creature/Impulse/UseItem.hs 62;" f activeTargetCursorPic src/Dodge/Targeting/Draw.hs 31;" f addArmour src/Dodge/Creature.hs 82;" f @@ -2536,7 +2541,7 @@ addToTrunk src/TreeHelp.hs 157;" f addWarningTerminal src/Dodge/Room/Warning.hs 61;" f addZ src/Geometry/Vector3D.hs 89;" f adjustIMZone src/Dodge/Base.hs 81;" f -advanceScrollAmount src/Dodge/Update.hs 415;" f +advanceScrollAmount src/Dodge/Update.hs 421;" f advanceSmoothScroll src/Dodge/SmoothScroll.hs 33;" f advanceStepCounter src/Dodge/Creature/Impulse/Movement.hs 60;" f aimDelaySweep src/Dodge/Render/Picture.hs 285;" f @@ -2556,11 +2561,9 @@ ammoMagInfo src/Dodge/Item/Info.hs 49;" f ammoMagSPic src/Dodge/Item/Draw/SPic.hs 128;" f amr src/Dodge/Item/Held/Rod.hs 34;" f anRoom src/Dodge/Floor.hs 117;" f -analyser src/Dodge/Placement/Instance/Analyser.hs 11;" f -analyserByDoor src/Dodge/Room/LasTurret.hs 134;" f +analyser src/Dodge/Placement/Instance/Analyser.hs 8;" f +analyserByDoor src/Dodge/Room/LasTurret.hs 108;" f analyserByNthLink src/Dodge/Room/LasTurret.hs 93;" f -analyserByNthLinkWithPrompt src/Dodge/Room/LasTurret.hs 112;" f -analyserWithPrompt src/Dodge/Placement/Instance/Analyser.hs 14;" f andOrRegex src/Dodge/DisplayInventory.hs 78;" f angleBetween src/Geometry.hs 158;" f angleVV src/Geometry/Vector.hs 58;" f @@ -2676,7 +2679,7 @@ batteryPack src/Dodge/Item/Equipment.hs 46;" f belowNumX src/Dodge/Combine/Graph.hs 84;" f beltMag src/Dodge/Item/Ammo.hs 39;" f bfsThenReturn src/Dodge/Creature/ReaderUpdate.hs 226;" f -bgateCalc src/Dodge/Inventory/SelectionList.hs 118;" f +bgateCalc src/Dodge/Inventory/SelectionList.hs 119;" f bgunSound src/Dodge/HeldUse.hs 514;" f bindFBO src/Render.hs 235;" f bingate src/Dodge/Item/Scope.hs 109;" f @@ -2733,9 +2736,9 @@ branchWith src/Dodge/Room/Room.hs 77;" f bright src/Color.hs 120;" f brightX src/Color.hs 116;" f btSPic src/Dodge/Render/ShapePicture.hs 131;" f -btText src/Dodge/Inventory/SelectionList.hs 237;" f +btText src/Dodge/Inventory/SelectionList.hs 240;" f bufferEBO src/Shader/Bind.hs 28;" f -bufferPerspectiveMatrixUBO src/Dodge/Render.hs 421;" f +bufferPerspectiveMatrixUBO src/Dodge/Render.hs 429;" f bufferPokedVBO src/Shader/Bind.hs 19;" f bufferShaderLayers src/Shader/Bind.hs 32;" f bulletBeltBracer src/Dodge/Item/Equipment.hs 67;" f @@ -2789,13 +2792,13 @@ checkCombineSelectionExists src/Dodge/DisplayInventory.hs 100;" f checkConnection src/Dodge/Inventory/Swap.hs 66;" f checkDeath src/Dodge/Creature/Update.hs 70;" f checkDeath' src/Dodge/Creature/Update.hs 73;" f -checkEndGame src/Dodge/Update.hs 768;" f +checkEndGame src/Dodge/Update.hs 774;" f checkErrorGL src/Shader/Compile.hs 86;" f checkFBO src/Framebuffer/Check.hs 6;" f checkGLError src/GLHelp.hs 17;" f checkInvSlotsYou src/Dodge/Inventory/CheckSlots.hs 18;" f checkInventorySelectionExists src/Dodge/DisplayInventory.hs 93;" f -checkTermDist src/Dodge/Update.hs 317;" f +checkTermDist src/Dodge/Update.hs 323;" f checkWallLeft src/Dodge/LevelGen/StaticWalls/Deprecated.hs 29;" f checkWallRight src/Dodge/LevelGen/StaticWalls.hs 54;" f checkWallRight src/Dodge/LevelGen/StaticWalls/Deprecated.hs 59;" f @@ -2836,10 +2839,10 @@ clicker src/Dodge/Item/Scope.hs 82;" f clipV src/Geometry/Vector.hs 48;" f clipZoom src/Dodge/Update/Camera.hs 237;" f clockCycle src/Dodge/Clock.hs 7;" f -closeButtonToSelectionItem src/Dodge/Inventory/SelectionList.hs 223;" f -closeItemToSelectionItem src/Dodge/Inventory/SelectionList.hs 208;" f -closeItemToTextPictures src/Dodge/Inventory/SelectionList.hs 243;" f -closeObjectInfo src/Dodge/Render/HUD.hs 227;" f +closeButtonToSelectionItem src/Dodge/Inventory/SelectionList.hs 225;" f +closeItemToSelectionItem src/Dodge/Inventory/SelectionList.hs 209;" f +closeItemToTextPictures src/Dodge/Inventory/SelectionList.hs 246;" f +closeObjectInfo src/Dodge/Render/HUD.hs 228;" f closestPointOnLine src/Geometry/Intersect.hs 272;" f closestPointOnLineParam src/Geometry/Intersect.hs 288;" f closestPointOnSeg src/Geometry/Intersect.hs 303;" f @@ -2873,11 +2876,11 @@ colorSH src/Shape.hs 233;" f combinationsDotGraph src/Dodge/Combine/Graph.hs 93;" f combinationsGraph src/Dodge/Combine/Graph.hs 72;" f combinationsOf src/Multiset.hs 46;" f -combinationsTrie src/Dodge/Combine.hs 43;" f +combinationsTrie src/Dodge/Combine.hs 44;" f combineAwareness src/Dodge/Creature/Perception.hs 109;" f combineFloors src/Dodge/Room/Procedural.hs 152;" f -combineInventoryExtra src/Dodge/Render/HUD.hs 338;" f -combineItemListYouX src/Dodge/Combine.hs 35;" f +combineInventoryExtra src/Dodge/Render/HUD.hs 339;" f +combineItemListYouX src/Dodge/Combine.hs 36;" f combineList src/Dodge/Combine.hs 21;" f combineRooms src/Dodge/Room/Procedural.hs 132;" f combineS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 504;" f @@ -2921,7 +2924,7 @@ crAwayFromPost src/Dodge/Creature/Test.hs 85;" f crBlips src/Dodge/RadarSweep.hs 88;" f crCamouflage src/Dodge/Creature/Picture.hs 33;" f crCanSeeCr src/Dodge/Creature/Test.hs 52;" f -crCrSpring src/Dodge/Update.hs 878;" f +crCrSpring src/Dodge/Update.hs 884;" f crCurrentEquipment src/Dodge/Creature/Statistics.hs 62;" f crDexterity src/Dodge/Creature/Statistics.hs 19;" f crDisplayAwareness src/Dodge/Creature/Picture/Awareness.hs 39;" f @@ -2952,7 +2955,7 @@ crRad src/Dodge/Creature/Radius.hs 7;" f crSafeDistFromTarg src/Dodge/Creature/Test.hs 74;" f crSetRoots src/Dodge/Inventory/Location.hs 55;" f crShape src/Dodge/Creature/Shape.hs 8;" f -crSpring src/Dodge/Update.hs 875;" f +crSpring src/Dodge/Update.hs 881;" f crStratConMatches src/Dodge/Creature/Test.hs 80;" f crStrength src/Dodge/Creature/Statistics.hs 29;" f crUpdate src/Dodge/Creature/Update.hs 63;" f @@ -3111,14 +3114,14 @@ defaultDrawButton src/Dodge/Button/Draw.hs 29;" f defaultEquipment src/Dodge/Default.hs 24;" f defaultFlIt src/Dodge/Default.hs 27;" f defaultForeground src/Dodge/Default/ForegroundShape.hs 5;" f -defaultHUD src/Dodge/Default/World.hs 168;" f +defaultHUD src/Dodge/Default/World.hs 169;" f defaultHeldItem src/Dodge/Default/Item.hs 9;" f defaultInanimate src/Dodge/Default/Creature.hs 62;" f defaultInput src/Dodge/Default/World.hs 12;" f defaultIntention src/Dodge/Default/Creature.hs 98;" f defaultInvSize src/Dodge/Default/Creature.hs 72;" f -defaultLWorld src/Dodge/Default/World.hs 103;" f -defaultListDisplayParams src/Dodge/ListDisplayParams.hs 18;" f +defaultLWorld src/Dodge/Default/World.hs 104;" f +defaultListDisplayParams src/Dodge/ListDisplayParams.hs 19;" f defaultMachine src/Dodge/Default.hs 30;" f defaultMachineWall src/Dodge/Default/Wall.hs 38;" f defaultPerceptionState src/Dodge/Default/Creature.hs 75;" f @@ -3164,10 +3167,10 @@ disconnectItemS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 688;" f displayConfig src/Dodge/Menu.hs 225;" f displayControls src/Dodge/Menu.hs 241;" f displayFrameTicks src/Dodge/Render/Picture.hs 50;" f -displayFreeSlots src/Dodge/DisplayInventory.hs 192;" f +displayFreeSlots src/Dodge/DisplayInventory.hs 193;" f displayIndents src/Dodge/DisplayInventory.hs 110;" f -displayPulse src/Dodge/Inventory/SelectionList.hs 179;" f -displayTerminalLineString src/Dodge/Update.hs 480;" f +displayPulse src/Dodge/Inventory/SelectionList.hs 180;" f +displayTerminalLineString src/Dodge/Update.hs 486;" f dist src/Geometry/Vector.hs 185;" f dist3 src/Geometry/Vector3D.hs 101;" f distributerRoom src/Dodge/Room/Room.hs 415;" f @@ -3193,8 +3196,8 @@ doCrGroupUpdate src/Dodge/CrGroupUpdate.hs 5;" f doCrImp src/Dodge/CreatureEffect.hs 13;" f doCrWdAc src/Dodge/CreatureEffect.hs 47;" f doDamage src/Dodge/Creature/State.hs 43;" f -doDeathToggle src/Dodge/WorldEffect.hs 92;" f -doDeathTriggers src/Dodge/WorldEffect.hs 85;" f +doDeathToggle src/Dodge/WorldEffect.hs 93;" f +doDeathTriggers src/Dodge/WorldEffect.hs 86;" f doDebugGet src/Dodge/Debug.hs 98;" f doDebugPut src/Dodge/Debug.hs 87;" f doDebugTest src/Dodge/Update/Input/DebugTest.hs 23;" f @@ -3217,7 +3220,7 @@ doHeldUseEffect src/Dodge/HeldUse.hs 351;" f doInPlacements src/Dodge/Layout.hs 87;" f doIndividualPlacements src/Dodge/Layout.hs 101;" f doInputScreenInput src/Dodge/Update/Input/ScreenLayer.hs 38;" f -doItemTimeScroll src/Dodge/Update.hs 193;" f +doItemTimeScroll src/Dodge/Update.hs 199;" f doLoop src/Loop.hs 60;" f doMagnetBuBu src/Dodge/Bullet.hs 35;" f doModificationEffect src/Dodge/ModificationEffect.hs 7;" f @@ -3229,21 +3232,21 @@ doRegexInput src/Dodge/Update/Input/InGame.hs 447;" f doRoomPlacements src/Dodge/Layout.hs 104;" f doRoomShift src/Dodge/Room/Link.hs 33;" f doScopeZoom src/Dodge/Update/Scroll.hs 91;" f -doSectionSize src/Dodge/DisplayInventory.hs 211;" f +doSectionSize src/Dodge/DisplayInventory.hs 212;" f doSideEffects appDodge/Main.hs 117;" f doStrategyActions src/Dodge/Creature/ReaderUpdate.hs 172;" f doTestDrawing src/Dodge/Render.hs 40;" f doTextInputOver src/Dodge/Update/Input/Text.hs 15;" f doTextInputOverUniverse src/Dodge/Update/Input/Text.hs 12;" f doThrust src/Dodge/Projectile/Update.hs 129;" f -doTimeScroll src/Dodge/Update.hs 198;" f -doTmWdWd src/Dodge/WorldEffect.hs 95;" f +doTimeScroll src/Dodge/Update.hs 204;" f +doTmWdWd src/Dodge/WorldEffect.hs 96;" f doWallRotate src/Dodge/Update/Camera.hs 227;" f doWdBl src/Dodge/WorldBool.hs 10;" f doWdCrBl src/Dodge/CreatureEffect.hs 18;" f doWdP2f src/Dodge/WdP2f.hs 10;" f -doWdWd src/Dodge/WorldEffect.hs 28;" f -doWorldEvents src/Dodge/Update.hs 424;" f +doWdWd src/Dodge/WorldEffect.hs 29;" f +doWorldEvents src/Dodge/Update.hs 430;" f doWorldPos src/Dodge/WorldPos.hs 10;" f door src/Dodge/Room/Door.hs 13;" f doorBetween src/Dodge/Placement/Instance/Door.hs 38;" f @@ -3313,8 +3316,8 @@ drawInputMenu src/Dodge/Render/MenuScreen.hs 33;" f drawInspectWall src/Dodge/Debug/Picture.hs 255;" f drawInspectWalls src/Dodge/Debug/Picture.hs 243;" f drawInventory src/Dodge/Render/HUD.hs 59;" f -drawItemChildrenConnect src/Dodge/Render/HUD.hs 330;" f -drawItemConnections src/Dodge/Render/HUD.hs 320;" f +drawItemChildrenConnect src/Dodge/Render/HUD.hs 331;" f +drawItemConnections src/Dodge/Render/HUD.hs 321;" f drawJumpDown src/Dodge/Render/Picture.hs 190;" f drawLabCrossCol src/Dodge/Render/Label.hs 8;" f drawLabelledList src/Dodge/Render/List.hs 212;" f @@ -3345,13 +3348,13 @@ drawPointLabel src/Dodge/Render/Label.hs 13;" f drawProjectile src/Dodge/Projectile/Draw.hs 13;" f drawPulseBall src/Dodge/Render/ShapePicture.hs 65;" f drawQuitTerminal src/Dodge/Render/Picture.hs 145;" f -drawRBOptions src/Dodge/Render/HUD.hs 252;" f +drawRBOptions src/Dodge/Render/HUD.hs 253;" f drawRadarSweep src/Dodge/RadarSweep/Draw.hs 14;" f drawRemoteShell src/Dodge/Projectile/Draw.hs 38;" f drawReturn src/Dodge/Render/Picture.hs 154;" f drawRootCursor src/Dodge/Render/HUD.hs 77;" f -drawSSCursor src/Dodge/SelectionSections/Draw.hs 35;" f -drawSSMultiCursor src/Dodge/SelectionSections/Draw.hs 46;" f +drawSSCursor src/Dodge/SelectionSections/Draw.hs 31;" f +drawSSMultiCursor src/Dodge/SelectionSections/Draw.hs 42;" f drawSelect src/Dodge/Render/Picture.hs 255;" f drawSelectionList src/Dodge/Render/List.hs 36;" f drawSelectionListBackground src/Dodge/Render/List.hs 52;" f @@ -3366,7 +3369,7 @@ drawSubInventory src/Dodge/Render/HUD.hs 164;" f drawSwitch src/Dodge/Button/Draw.hs 16;" f drawSwitchWire src/Dodge/LevelGen/Switch.hs 24;" f drawTargetingAR src/Dodge/Targeting/Draw.hs 20;" f -drawTerminalDisplay src/Dodge/Render/HUD.hs 361;" f +drawTerminalDisplay src/Dodge/Render/HUD.hs 362;" f drawTeslaArc src/Dodge/Tesla/Draw.hs 9;" f drawText src/Picture/Base.hs 220;" f drawTitle src/Dodge/Render/MenuScreen.hs 49;" f @@ -3432,13 +3435,13 @@ endArcPos src/Dodge/Tesla.hs 87;" f endCombineRegex src/Dodge/Update/Input/InGame.hs 271;" f endRegex src/Dodge/Update/Input/InGame.hs 265;" f energyReleaseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 624;" f -enterCombineInv src/Dodge/DisplayInventory.hs 317;" f +enterCombineInv src/Dodge/DisplayInventory.hs 318;" f enumOption src/Dodge/Menu/OptionType.hs 17;" f -epText src/Dodge/Inventory/SelectionList.hs 76;" f +epText src/Dodge/Inventory/SelectionList.hs 77;" f eqConstr src/SameConstr.hs 17;" f eqPosText src/Dodge/Equipment/Text.hs 5;" f eqTypeToSites src/Dodge/Inventory/RBList.hs 77;" f -equipAllocString src/Dodge/Render/HUD.hs 311;" f +equipAllocString src/Dodge/Render/HUD.hs 312;" f equipAttachPos src/Dodge/Item/Draw.hs 30;" f equipBackgroundEffect src/Dodge/Euse.hs 14;" f equipInfo src/Dodge/Item/Info.hs 141;" f @@ -3457,7 +3460,7 @@ errorIsLHS src/Geometry.hs 65;" f errorNormalizeV src/Geometry.hs 54;" f errorPointInPolygon src/Geometry.hs 46;" f evenOddSplit src/Dodge/Base.hs 160;" f -exitTerminalSubInv src/Dodge/WorldEffect.hs 122;" f +exitTerminalSubInv src/Dodge/WorldEffect.hs 137;" f expandLine src/Dodge/Picture.hs 30;" f expandPolyBy src/Dodge/LevelGen/StaticWalls.hs 91;" f expandPolyByFixed src/Dodge/LevelGen/StaticWalls.hs 97;" f @@ -3509,7 +3512,7 @@ flameWall src/Dodge/Item/Held/SprayGuns.hs 48;" f flamerPic src/Dodge/Item/Draw/SPic.hs 395;" f flareCircleAt src/Dodge/HeldUse.hs 691;" f flatItemCombinations src/Dodge/Combine/Combinations.hs 51;" f -flatLookupItems src/Dodge/Combine.hs 38;" f +flatLookupItems src/Dodge/Combine.hs 39;" f flatShield src/Dodge/Item/Held/Utility.hs 17;" f flatShieldEquipSPic src/Dodge/Item/Draw/SPic.hs 419;" f fleeFrom src/Dodge/CreatureEffect.hs 92;" f @@ -3520,7 +3523,7 @@ flockACC src/Dodge/Creature/ReaderUpdate.hs 96;" f flockArmourChaseCrit src/Dodge/Creature/ArmourChase.hs 14;" f flockChaseTarget src/Dodge/Creature/Boid.hs 188;" f flockPointTarget src/Dodge/Creature/Boid.hs 204;" f -floorItemPickupInfo src/Dodge/Render/HUD.hs 232;" f +floorItemPickupInfo src/Dodge/Render/HUD.hs 233;" f floorItemSPic src/Dodge/Render/ShapePicture.hs 124;" f floorTo src/Geometry/Zone.hs 12;" f floorWire src/Dodge/Wire.hs 13;" f @@ -3550,7 +3553,7 @@ fromV3 src/Geometry/Data.hs 63;" f frontArmour src/Dodge/Item/Equipment.hs 38;" f fstV2 src/Geometry/Data.hs 70;" f fuelPack src/Dodge/Item/Equipment.hs 53;" f -functionalUpdate src/Dodge/Update.hs 241;" f +functionalUpdate src/Dodge/Update.hs 247;" f fusePoint src/Dodge/LevelGen/StaticWalls.hs 158;" f fuseWall src/Dodge/LevelGen/StaticWalls.hs 165;" f fuseWallsWith src/Dodge/LevelGen/StaticWalls.hs 172;" f @@ -3564,7 +3567,7 @@ gameRoomViewpoints src/Dodge/Viewpoints.hs 35;" f gameRoomsFromRooms src/Dodge/Layout.hs 149;" f gameplayMenu src/Dodge/Menu.hs 154;" f gameplayMenuOptions src/Dodge/Menu.hs 157;" f -gasEffect src/Dodge/Update.hs 793;" f +gasEffect src/Dodge/Update.hs 799;" f gasType src/Dodge/HeldUse.hs 1115;" f gassesNearPoint src/Dodge/Zoning/Cloud.hs 12;" f generateGenParams src/Dodge/LevelGen/LevelStructure.hs 23;" f @@ -3588,25 +3591,25 @@ getCloseObj src/Dodge/Update/Input/InGame.hs 533;" f getCommand src/Dodge/Terminal.hs 52;" f getCommands src/Dodge/Terminal.hs 49;" f getCrMoveSpeed src/Dodge/Creature/Statistics.hs 50;" f -getCrsFromRooms src/Dodge/Room/Tutorial.hs 347;" f -getCrsFromRooms' src/Dodge/Room/Tutorial.hs 334;" f -getDebugMouseOver src/Dodge/Update.hs 375;" f -getDistortions src/Dodge/Render.hs 433;" f +getCrsFromRooms src/Dodge/Room/Tutorial.hs 345;" f +getCrsFromRooms' src/Dodge/Room/Tutorial.hs 332;" f +getDebugMouseOver src/Dodge/Update.hs 381;" f +getDistortions src/Dodge/Render.hs 441;" f getEdgesCrossing src/Dodge/Path.hs 37;" f getGrenadeHitEffect src/Dodge/HeldUse.hs 1264;" f getInventoryPath src/Dodge/Inventory/Path.hs 9;" f -getItemValue src/Dodge/Inventory/SelectionList.hs 147;" f +getItemValue src/Dodge/Inventory/SelectionList.hs 148;" f getLaserColor src/Dodge/HeldUse.hs 707;" f getLaserDamage src/Dodge/HeldUse.hs 704;" f getLaserPhaseV src/Dodge/HeldUse.hs 701;" f getLinksOfType src/Dodge/RoomLink.hs 41;" f getMaxLinesTM src/Dodge/Terminal/Type.hs 6;" f -getMenuMouseContext src/Dodge/Update.hs 387;" f +getMenuMouseContext src/Dodge/Update.hs 393;" f getNodePos src/Dodge/Path.hs 34;" f getPJStabiliser src/Dodge/HeldUse.hs 1251;" f getPretty src/AesonHelp.hs 8;" f getPromptTM src/Dodge/Terminal/Type.hs 3;" f -getRoomsFromInts src/Dodge/Room/Tutorial.hs 330;" f +getRoomsFromInts src/Dodge/Room/Tutorial.hs 328;" f getRootItemBounds src/Dodge/Render/HUD.hs 101;" f getRootItemInvID src/Dodge/Inventory/Location.hs 35;" f getSelectedCloseObj src/Dodge/SelectedClose.hs 14;" f @@ -3649,7 +3652,7 @@ gridInPolygon src/Grid.hs 10;" f gridPoints' src/Grid.hs 37;" f gridPointsOff src/Grid.hs 32;" f gridRoomPos src/Dodge/Room/Procedural.hs 90;" f -groupSplitItemAmounts src/Dodge/Combine.hs 51;" f +groupSplitItemAmounts src/Dodge/Combine.hs 52;" f gruntS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 718;" f gut1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 766;" f gut2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 550;" f @@ -3689,7 +3692,7 @@ headMap src/Dodge/DoubleTree.hs 249;" f headPQ src/Dodge/Creature/HandPos.hs 115;" f healS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 516;" f healthAnalyserByDoor src/Dodge/Room/LasTurret.hs 90;" f -healthTest src/Dodge/Room/LasTurret.hs 140;" f +healthTest src/Dodge/Room/LasTurret.hs 111;" f heightWallPS src/Dodge/Placement/Instance/Wall.hs 24;" f heldAimStance src/Dodge/Item/AimStance.hs 24;" f heldAimZoom src/Dodge/Update/Camera.hs 156;" f @@ -3722,9 +3725,9 @@ holdForm src/Dodge/Creature/Boid.hs 139;" f holsterWeapon src/Dodge/Creature/Volition.hs 15;" f homingModule src/Dodge/Item/Scope.hs 48;" f horPipe src/Dodge/Placement/Instance/Pipe.hs 9;" f -hotkeyToChar src/Dodge/Inventory/SelectionList.hs 188;" f +hotkeyToChar src/Dodge/Inventory/SelectionList.hs 189;" f hotkeyToScancode src/Dodge/Creature/YourControl.hs 82;" f -hotkeyToString src/Dodge/Inventory/SelectionList.hs 185;" f +hotkeyToString src/Dodge/Inventory/SelectionList.hs 186;" f iShape src/Dodge/Placement/Instance/LightSource.hs 51;" f icosahedronPoints src/Polyhedra/Geodesic.hs 12;" f icosohedronFaces src/Polyhedra/Geodesic.hs 19;" f @@ -3787,15 +3790,15 @@ intersectSegsSeg src/Geometry/Intersect.hs 253;" f intervalList src/Geometry.hs 312;" f interweave src/Justify.hs 17;" f introScan src/Dodge/Item/Scope.hs 57;" f -introScanValue src/Dodge/Inventory/SelectionList.hs 80;" f +introScanValue src/Dodge/Inventory/SelectionList.hs 81;" f intsToPos src/Dodge/Room/Modify/Girder.hs 160;" f invAdj src/Dodge/Item/Grammar.hs 235;" f -invCursorParams src/Dodge/ListDisplayParams.hs 36;" f -invDP src/Dodge/ListDisplayParams.hs 30;" f +invCursorParams src/Dodge/ListDisplayParams.hs 37;" f +invDP src/Dodge/ListDisplayParams.hs 31;" f invDT src/Dodge/Item/Grammar.hs 216;" f invDT' src/Dodge/Item/Grammar.hs 221;" f -invDimColor src/Dodge/DisplayInventory.hs 186;" f -invHead src/Dodge/Render/HUD.hs 399;" f +invDimColor src/Dodge/DisplayInventory.hs 187;" f +invHead src/Dodge/Render/HUD.hs 400;" f invIMDT src/Dodge/Item/Grammar.hs 245;" f invIndents src/Dodge/Item/Grammar.hs 252;" f invItemEffs src/Dodge/Creature/State.hs 63;" f @@ -3815,7 +3818,7 @@ invertEncircleDistP src/Dodge/Creature/Boid.hs 16;" f invertIntMap src/IntMapHelp.hs 100;" f invertIntMap src/Multiset.hs 67;" f invertIntMapUnique src/IntMapHelp.hs 103;" f -invertInventoryToMap src/Dodge/Combine.hs 56;" f +invertInventoryToMap src/Dodge/Combine.hs 57;" f invisibleChaseCrit src/Dodge/Creature/ChaseCrit.hs 21;" f invisibleWall src/Dodge/Placement/Instance/Wall.hs 27;" f isAmmoIntLink src/Dodge/HeldUse.hs 717;" f @@ -3836,7 +3839,7 @@ isNHS src/Geometry/Intersect.hs 53;" f isNothing' src/MaybeHelp.hs 31;" f isOnSeg src/Geometry.hs 237;" f isOutLnk src/Dodge/PlacementSpot.hs 166;" f -isOverTerminalScreen src/Dodge/Update.hs 395;" f +isOverTerminalScreen src/Dodge/Update.hs 401;" f isPulseLaser src/Dodge/IsPulseLaser.hs 10;" f isPutID src/Dodge/Placement/Instance/Wall.hs 108;" f isRHS src/Geometry/LHS.hs 32;" f @@ -3864,9 +3867,9 @@ itemBulkiness src/Dodge/Creature/YourControl.hs 188;" f itemCombinations src/Dodge/Combine/Combinations.hs 56;" f itemCombinationsEdges src/Dodge/Combine/Graph.hs 59;" f itemDetectorEffect src/Dodge/HeldUse.hs 794;" f -itemDisplay src/Dodge/Inventory/SelectionList.hs 50;" f +itemDisplay src/Dodge/Inventory/SelectionList.hs 51;" f itemEquipPict src/Dodge/Item/Draw.hs 18;" f -itemExternalValue src/Dodge/Inventory/SelectionList.hs 85;" f +itemExternalValue src/Dodge/Inventory/SelectionList.hs 86;" f itemFromAmmoMag src/Dodge/Item.hs 42;" f itemFromAttachType src/Dodge/Item.hs 51;" f itemFromBase src/Dodge/Item.hs 18;" f @@ -3882,8 +3885,8 @@ itemRotTreeSPic src/Dodge/Item/Draw/SPicTree.hs 16;" f itemSPic src/Dodge/Item/Draw/SPic.hs 17;" f itemScan src/Dodge/Item/Scope.hs 63;" f itemScroll src/Dodge/Update/Scroll.hs 57;" f -itemScrollDisplay src/Dodge/Inventory/SelectionList.hs 124;" f -itemScrollValue src/Dodge/Inventory/SelectionList.hs 151;" f +itemScrollDisplay src/Dodge/Inventory/SelectionList.hs 125;" f +itemScrollValue src/Dodge/Inventory/SelectionList.hs 152;" f itemShapeMax src/Dodge/Item/Orientation.hs 56;" f itemShapeMaxX src/Dodge/Item/Orientation.hs 47;" f itemShapeMaxY src/Dodge/Item/Orientation.hs 50;" f @@ -3927,12 +3930,12 @@ lConnectMulti src/Dodge/Render/Connectors.hs 46;" f lShape src/Dodge/Placement/Instance/LightSource.hs 54;" f lamp src/Dodge/Creature/Lamp.hs 18;" f lampCrSPic src/Dodge/Render/ShapePicture.hs 87;" f -lasCenSensEdge src/Dodge/Room/LasTurret.hs 159;" f +lasCenSensEdge src/Dodge/Room/LasTurret.hs 130;" f lasGunPic src/Dodge/Item/Draw/SPic.hs 413;" f lasPulseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 552;" f -lasSensorTurretTest src/Dodge/Room/LasTurret.hs 152;" f -lasTunnel src/Dodge/Room/LasTurret.hs 171;" f -lasTunnelRunPast src/Dodge/Room/LasTurret.hs 212;" f +lasSensorTurretTest src/Dodge/Room/LasTurret.hs 123;" f +lasTunnel src/Dodge/Room/LasTurret.hs 142;" f +lasTunnelRunPast src/Dodge/Room/LasTurret.hs 183;" f lasTurret src/Dodge/Placement/Instance/Turret.hs 35;" f laser src/Dodge/Item/Held/BatteryGuns.hs 34;" f lastMap src/Dodge/DoubleTree.hs 253;" f @@ -3951,7 +3954,7 @@ ldtToDT src/Dodge/DoubleTree.hs 16;" f ldtToIM src/Dodge/DoubleTree.hs 219;" f ldtToIndentList src/Dodge/DoubleTree.hs 222;" f ldtToLoc src/Dodge/DoubleTree.hs 268;" f -leaveResetQuitTerminal src/Dodge/WorldEffect.hs 116;" f +leaveResetQuitTerminal src/Dodge/WorldEffect.hs 131;" f led src/Dodge/Item/Held/Utility.hs 23;" f left src/DoubleStack.hs 16;" f leftChildList src/Dodge/Item/Grammar.hs 185;" f @@ -3986,10 +3989,10 @@ listConfig src/Dodge/Menu.hs 234;" f listControls src/Dodge/Menu.hs 246;" f listCursorChooseBorderScale src/Dodge/Render/List.hs 135;" f listGuard src/Dodge/Creature/ReaderUpdate.hs 196;" f -listSelectionColorPicture src/Dodge/DisplayInventory.hs 302;" f +listSelectionColorPicture src/Dodge/DisplayInventory.hs 303;" f litCorridor90 src/Dodge/Room/RoadBlock.hs 26;" f lmt src/MatrixHelper.hs 53;" f -lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 388;" f +lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 389;" f loadDodgeConfig src/Dodge/Config.hs 30;" f loadMusic src/Dodge/SoundLogic/LoadSound.hs 30;" f loadMuzzle src/Dodge/HeldUse.hs 630;" f @@ -4149,7 +4152,7 @@ memoCylinderIndices src/Shader/Poke.hs 323;" f memoFlatIndices src/Shader/Poke.hs 311;" f memoTopPrismEdgeIndices src/Shader/Poke.hs 329;" f memoTopPrismIndices src/Shader/Poke.hs 317;" f -menuLDP src/Dodge/ListDisplayParams.hs 52;" f +menuLDP src/Dodge/ListDisplayParams.hs 54;" f menuOptionToSelectionItem src/Dodge/Menu/Option.hs 91;" f merge src/ListHelp.hs 84;" f mergeBy src/ListHelp.hs 87;" f @@ -4233,7 +4236,7 @@ muzzleRandPos src/Dodge/HeldUse.hs 778;" f mvButton src/Dodge/Placement/PlaceSpot.hs 176;" f mvCr src/Dodge/Placement/PlaceSpot.hs 179;" f mvFS src/Dodge/Placement/PlaceSpot.hs 185;" f -mvGust src/Dodge/Update.hs 784;" f +mvGust src/Dodge/Update.hs 790;" f mvLS src/Dodge/Placement/PlaceSpot.hs 220;" f mvPointAlongAtSpeed src/Dodge/Base.hs 121;" f mvPointMeleeTarg src/Dodge/Creature/Boid.hs 327;" f @@ -4347,8 +4350,8 @@ pauseGame src/Dodge/Update/Input/InGame.hs 525;" f pauseMenu src/Dodge/Menu.hs 59;" f pauseMenuOptions src/Dodge/Menu.hs 66;" f pauseSound src/Dodge/SoundLogic.hs 42;" f -pauseTime src/Dodge/Update.hs 182;" f -pbFlicker src/Dodge/Update.hs 465;" f +pauseTime src/Dodge/Update.hs 188;" f +pbFlicker src/Dodge/Update.hs 471;" f pbsHit src/Dodge/WorldEvent/ThingsHit.hs 97;" f peZoneSize src/Dodge/Zoning/Pathing.hs 49;" f pedestalRoom src/Dodge/Room/Containing.hs 50;" f @@ -4392,7 +4395,7 @@ placeSpotID src/Dodge/Placement/PlaceSpot.hs 104;" f placeSpotRoomRand src/Dodge/Placement/PlaceSpot.hs 89;" f placeSpotUsingLink src/Dodge/Placement/PlaceSpot.hs 67;" f placeWallPoly src/Dodge/Placement/PlaceSpot.hs 163;" f -plainRegex src/Dodge/DisplayInventory.hs 189;" f +plainRegex src/Dodge/DisplayInventory.hs 190;" f playIfFree src/Sound.hs 138;" f playPositionalSoundQueue src/Sound.hs 146;" f playSoundAndUpdate src/Sound.hs 54;" f @@ -4530,17 +4533,17 @@ putBlockV src/Dodge/Placement/Instance/Wall.hs 114;" f putDoor src/Dodge/Room/Airlock.hs 114;" f putDoubleDoor src/Dodge/Placement/Instance/Door.hs 17;" f putDoubleDoorThen src/Dodge/Placement/Instance/Door.hs 21;" f -putImmediateMessageTerminal src/Dodge/Placement/Instance/Terminal.hs 62;" f +putImmediateMessageTerminal src/Dodge/Placement/Instance/Terminal.hs 61;" f putLamp src/Dodge/Placement/Instance/LightSource.hs 199;" f putLasTurret src/Dodge/Placement/Instance/Turret.hs 23;" f putLitButOnPos src/Dodge/Placement/Instance/Button.hs 65;" f putLitButOnPosExtTrig src/Dodge/Placement/Instance/Button.hs 103;" f putLitButOnPosExtTrig' src/Dodge/Placement/Instance/Button.hs 106;" f -putMessageTerminal src/Dodge/Placement/Instance/Terminal.hs 55;" f +putMessageTerminal src/Dodge/Placement/Instance/Terminal.hs 54;" f putShape src/Dodge/Room/Foreground.hs 134;" f putSlideDr src/Dodge/Door/PutSlideDoor.hs 12;" f putStrLnAppend src/Dodge/LevelGen.hs 82;" f -putTerminal src/Dodge/Placement/Instance/Terminal.hs 52;" f +putTerminal src/Dodge/Placement/Instance/Terminal.hs 51;" f putTerminalFull src/Dodge/Placement/Instance/Terminal.hs 20;" f putTerminalImediateAccess src/Dodge/Placement/Instance/Terminal.hs 15;" f putWireEnd src/Dodge/Wire.hs 29;" f @@ -4557,7 +4560,7 @@ rLauncher src/Dodge/Item/Held/Launcher.hs 14;" f rLauncherX src/Dodge/Item/Held/Launcher.hs 30;" f rToOnward src/Dodge/Cleat.hs 21;" f radToDeg src/Geometry/Vector.hs 123;" f -radiusSpring src/Dodge/Update.hs 864;" f +radiusSpring src/Dodge/Update.hs 870;" f randBlockBreakWeapon src/Dodge/Item/Random.hs 7;" f randC1 src/Dodge/Placement/Instance/Creature.hs 8;" f randDirPS src/Dodge/PlacementSpot.hs 56;" f @@ -4579,7 +4582,7 @@ randPeakedParam src/RandomHelp.hs 130;" f randProb src/RandomHelp.hs 68;" f randSpark src/Dodge/Spark.hs 69;" f randSparkExtraVel src/Dodge/Spark.hs 92;" f -randWallReflect src/Dodge/Update.hs 640;" f +randWallReflect src/Dodge/Update.hs 646;" f randomChallenges src/Dodge/Room/Start.hs 63;" f randomCompass src/Dodge/Layout.hs 60;" f randomFourCornerRoom src/Dodge/Room/Procedural.hs 246;" f @@ -4595,7 +4598,7 @@ randomTreeStructure src/Dodge/Layout/Generate.hs 18;" f randsOnCirc src/RandomHelp.hs 127;" f randsSpread src/RandomHelp.hs 120;" f ratIntersectLineLine src/Geometry/Intersect.hs 216;" f -rdToVec2s src/Dodge/Render.hs 416;" f +rdToVec2s src/Dodge/Render.hs 424;" f readSaveSlot src/Dodge/Save.hs 45;" f recoilAmount src/Dodge/HeldUse.hs 467;" f rectNSWE src/Geometry/Polygon.hs 15;" f @@ -4618,7 +4621,7 @@ reflectPulseLaserAlong src/Dodge/Item/Weapon/LaserPath.hs 65;" f refract src/Dodge/Item/Weapon/LaserPath.hs 39;" f refreshOptionsSelectionList src/Dodge/Menu/Option.hs 35;" f regexCombs src/Dodge/DisplayInventory.hs 71;" f -regexList src/Dodge/DisplayInventory.hs 308;" f +regexList src/Dodge/DisplayInventory.hs 309;" f reload1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 634;" f reloadLevelStart src/Dodge/Save.hs 71;" f reloadS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 632;" f @@ -4645,7 +4648,7 @@ replacePutID src/Dodge/Placement/Instance/Wall.hs 81;" f resetCrVocCoolDown src/Dodge/Creature/Vocalization.hs 47;" f resetPLUse src/Dodge/PlacementSpot.hs 92;" f resetStride src/Dodge/Creature/State/WalkCycle.hs 25;" f -resetTerminal src/Dodge/WorldEffect.hs 110;" f +resetTerminal src/Dodge/WorldEffect.hs 125;" f resizeFBOTO src/Framebuffer/Update.hs 185;" f resizeFBOTO' src/Framebuffer/Update.hs 202;" f resizeFBOTO2 src/Framebuffer/Update.hs 104;" f @@ -4779,8 +4782,8 @@ scrollAugInvSel src/Dodge/Inventory.hs 191;" f scrollAugNextInSection src/Dodge/Inventory.hs 204;" f scrollRBOption src/Dodge/Update/Scroll.hs 202;" f scrollSelectionSections src/Dodge/SelectionSections.hs 28;" f -scrollTimeBack src/Dodge/Update.hs 208;" f -scrollTimeForward src/Dodge/Update.hs 225;" f +scrollTimeBack src/Dodge/Update.hs 214;" f +scrollTimeForward src/Dodge/Update.hs 231;" f seagullBarkS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 600;" f seagullBarkTransformedS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 692;" f seagullChatter1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 706;" f @@ -4791,17 +4794,17 @@ seagullCryS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 620;" f seagullWhistle1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 526;" f seagullWhistleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 758;" f searchIfDamaged src/Dodge/Creature/ReaderUpdate.hs 213;" f -secondColumnLDP src/Dodge/ListDisplayParams.hs 43;" f -sectionsDesiredLines src/Dodge/DisplayInventory.hs 198;" f -sectionsSizes src/Dodge/DisplayInventory.hs 201;" f +secondColumnLDP src/Dodge/ListDisplayParams.hs 44;" f +sectionsDesiredLines src/Dodge/DisplayInventory.hs 199;" f +sectionsSizes src/Dodge/DisplayInventory.hs 202;" f seedStartMenu src/Dodge/Menu.hs 87;" f seedStartOptions src/Dodge/Menu.hs 90;" f segOnCirc src/Geometry.hs 113;" f -selNumPos src/Dodge/Render/HUD.hs 448;" f -selNumPosCardinal src/Dodge/Render/HUD.hs 471;" f +selNumPos src/Dodge/Render/HUD.hs 449;" f +selNumPosCardinal src/Dodge/Render/HUD.hs 472;" f selSecDrawCursor src/Dodge/Render/List.hs 126;" f selSecDrawCursorAt src/Dodge/Render/List.hs 105;" f -selSecSelCol src/Dodge/Render/HUD.hs 502;" f +selSecSelCol src/Dodge/Render/HUD.hs 503;" f selSecSelSize src/Dodge/SelectionSections.hs 143;" f selSecYint src/Dodge/SelectionSections.hs 152;" f selectedItemScroll src/Dodge/Update/Scroll.hs 51;" f @@ -4812,7 +4815,7 @@ sensorReqToString src/Dodge/Machine/Update.hs 199;" f sensorRoom src/Dodge/Room/SensorDoor.hs 26;" f sensorRoomRunPast src/Dodge/Room/SensorDoor.hs 46;" f sensorSPic src/Dodge/Machine/Draw.hs 97;" f -sensorTut src/Dodge/Room/Tutorial.hs 356;" f +sensorTut src/Dodge/Room/Tutorial.hs 354;" f sensorTypeDamages src/Dodge/Machine/Update.hs 236;" f sentinelAI src/Dodge/Creature/SentinelAI.hs 20;" f sentinelExtraWatchUpdate src/Dodge/Creature/SentinelAI.hs 82;" f @@ -4834,7 +4837,7 @@ setLinkType src/Dodge/RoomLink.hs 78;" f setLinkTypePD src/Dodge/RoomLink.hs 85;" f setMusicVolume src/Sound.hs 163;" f setMvPos src/Dodge/Creature/ReaderUpdate.hs 58;" f -setOldPos src/Dodge/Update.hs 499;" f +setOldPos src/Dodge/Update.hs 505;" f setOutLinks src/Dodge/RoomLink.hs 50;" f setOutLinksByType src/Dodge/RoomLink.hs 75;" f setOutLinksPD src/Dodge/RoomLink.hs 95;" f @@ -4851,7 +4854,7 @@ setTiles src/Dodge/Layout.hs 67;" f setTreeInts src/Dodge/Room/Tutorial.hs 89;" f setViewDistance src/Dodge/Update/Camera.hs 243;" f setViewPos src/Dodge/Creature/ReaderUpdate.hs 69;" f -setViewport src/Dodge/Render.hs 438;" f +setViewport src/Dodge/Render.hs 446;" f setVol src/Dodge/Config.hs 47;" f setWindowColor src/Dodge/Render/Walls.hs 32;" f setWristShieldPos src/Dodge/Equipment.hs 49;" f @@ -4924,9 +4927,9 @@ showEquipItem src/Dodge/Item/Display.hs 107;" f showInt src/Dodge/Item/Info.hs 75;" f showIntsString src/Dodge/Tree/Compose.hs 129;" f showInventoryPathing src/Dodge/Item/Display.hs 86;" f -showManObj src/Dodge/TestString.hs 53;" f +showManObj src/Dodge/TestString.hs 54;" f showTerminalError src/Dodge/Debug/Terminal.hs 80;" f -showTimeFlow src/Dodge/TestString.hs 76;" f +showTimeFlow src/Dodge/TestString.hs 77;" f shrinkPolyOnEdges src/Geometry/Polygon.hs 175;" f shrinkVert src/Geometry/Polygon.hs 179;" f shuffle src/RandomHelp.hs 49;" f @@ -4934,7 +4937,7 @@ shuffleLinks src/Dodge/Room/Link.hs 30;" f shuffleRoomPos src/Dodge/Layout.hs 82;" f shuffleTail src/RandomHelp.hs 59;" f sigmoid src/Dodge/Base.hs 151;" f -simpleCrSprings src/Dodge/Update.hs 869;" f +simpleCrSprings src/Dodge/Update.hs 875;" f simpleTermMessage src/Dodge/Terminal.hs 164;" f sineRaisePitchOneSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 720;" f sineRaisePitchTwoSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 496;" f @@ -5071,7 +5074,7 @@ strideRot src/Dodge/Item/HeldOffset.hs 71;" f stringToList src/Picture/Base.hs 313;" f stringToListGrad src/Picture/Text.hs 12;" f stripZ src/Geometry/Vector3D.hs 97;" f -subInvX src/Dodge/ListDisplayParams.hs 46;" f +subInvX src/Dodge/ListDisplayParams.hs 48;" f subMap src/TreeHelp.hs 119;" f subZipWith src/Dodge/Placement/Instance/Wall.hs 94;" f succB src/Dodge/Debug.hs 113;" f @@ -5159,7 +5162,7 @@ throwItem src/Dodge/Creature/Action.hs 191;" f tileTexCoords src/Tile.hs 11;" f tilesFromRooms src/Dodge/Layout.hs 196;" f tilesToLine src/Shader/AuxAddition.hs 66;" f -timeFlowUpdate src/Dodge/Update.hs 168;" f +timeFlowUpdate src/Dodge/Update.hs 174;" f timeScroller src/Dodge/Item/Held/Utility.hs 42;" f timeStopper src/Dodge/Item/Held/Utility.hs 39;" f tinMag src/Dodge/Item/Ammo.hs 28;" f @@ -5174,8 +5177,10 @@ titleOptionsMenu src/Dodge/Menu.hs 106;" f titleOptionsNoWrite src/Dodge/Menu.hs 109;" f tlDoEffect src/Dodge/Terminal.hs 102;" f tlSetStatus src/Dodge/Terminal.hs 99;" f -tmUpdate src/Dodge/Update.hs 483;" f -toBinary src/Dodge/Inventory/SelectionList.hs 141;" f +tmDistributeAmmo src/Dodge/WorldEffect.hs 112;" f +tmDistributeLines src/Dodge/Room/Room.hs 449;" f +tmUpdate src/Dodge/Update.hs 489;" f +toBinary src/Dodge/Inventory/SelectionList.hs 142;" f toBothLnk src/Dodge/RoomLink.hs 136;" f toClosestMultiple src/HelpNum.hs 3;" f toColor8 src/Color.hs 148;" f @@ -5187,7 +5192,7 @@ toTopLeft src/Dodge/Render/List.hs 226;" f toV2 src/Geometry/Data.hs 54;" f toV3 src/Geometry/Data.hs 57;" f toV4 src/Geometry/Data.hs 60;" f -toggleCombineInv src/Dodge/DisplayInventory.hs 311;" f +toggleCombineInv src/Dodge/DisplayInventory.hs 312;" f toggleCommands src/Dodge/Terminal.hs 77;" f toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 67;" f toggleExamineInv src/Dodge/Creature/Impulse/UseItem.hs 105;" f @@ -5197,13 +5202,13 @@ tone440S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 680;" f tone440raiseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 704;" f tone440sawtoothS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 640;" f tone440sawtoothquietS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 472;" f -topInvW src/Dodge/ListDisplayParams.hs 49;" f +topInvW src/Dodge/ListDisplayParams.hs 51;" f topPrismEdgeIndices src/Shader/Poke.hs 335;" f topPrismIndices src/Shader/Poke.hs 410;" f -topTestPart src/Dodge/TestString.hs 49;" f +topTestPart src/Dodge/TestString.hs 50;" f torchShape src/Dodge/Item/Draw/SPic.hs 277;" f torqueAmount src/Dodge/HeldUse.hs 581;" f -torqueCr src/Dodge/WorldEffect.hs 78;" f +torqueCr src/Dodge/WorldEffect.hs 79;" f torso src/Dodge/Creature/Picture.hs 103;" f tractCr src/Dodge/TractorBeam/Update.hs 28;" f tractFlIt src/Dodge/TractorBeam/Update.hs 23;" f @@ -5276,9 +5281,9 @@ tutAnoTree src/Dodge/Room/Tutorial.hs 47;" f tutDrop src/Dodge/Room/Tutorial.hs 94;" f tutHub src/Dodge/Room/Tutorial.hs 254;" f tutLight src/Dodge/Room/Tutorial.hs 219;" f -tutRezBox src/Dodge/Room/Tutorial.hs 367;" f +tutRezBox src/Dodge/Room/Tutorial.hs 365;" f tutRoomTree src/Dodge/Floor.hs 21;" f -tutorialMessage1 src/Dodge/Room/Tutorial.hs 390;" f +tutorialMessage1 src/Dodge/Room/Tutorial.hs 388;" f tweenAngles src/Geometry/Vector.hs 190;" f twinSlowDoorChasers src/Dodge/Room/LongDoor.hs 79;" f twinSlowDoorRoom src/Dodge/Room/LongDoor.hs 34;" f @@ -5291,7 +5296,7 @@ twoStep1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 570;" f twoStepS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 628;" f twoStepSlowS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 618;" f ubyteSize src/Shader/Parameters.hs 13;" f -ugateCalc src/Dodge/Inventory/SelectionList.hs 112;" f +ugateCalc src/Dodge/Inventory/SelectionList.hs 113;" f uncurryV src/Geometry/Data.hs 66;" f underBarrelSlot src/Dodge/Item/Scope.hs 159;" f unfoldrMID src/MonadHelp.hs 33;" f @@ -5309,7 +5314,7 @@ unusedOffPathAwayFromLink src/Dodge/PlacementSpot.hs 131;" f unusedSpotAwayFromInLink src/Dodge/PlacementSpot.hs 137;" f unusedSpotAwayFromLink src/Dodge/PlacementSpot.hs 119;" f unusedSpotNearInLink src/Dodge/PlacementSpot.hs 196;" f -updateAimPos src/Dodge/Update.hs 304;" f +updateAimPos src/Dodge/Update.hs 310;" f updateAllNodes src/TreeHelp.hs 86;" f updateArc src/Dodge/Tesla.hs 44;" f updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 478;" f @@ -5319,46 +5324,46 @@ updateBaseWheelEvent src/Dodge/Update/Scroll.hs 34;" f updateBounds src/Dodge/Update/Camera.hs 265;" f updateBulVel src/Dodge/Bullet.hs 57;" f updateBullet src/Dodge/Bullet.hs 22;" f -updateBullets src/Dodge/Update.hs 562;" f +updateBullets src/Dodge/Update.hs 568;" f updateCamera src/Dodge/Update/Camera.hs 31;" f updateCloseObjects src/Dodge/Inventory.hs 115;" f -updateCloud src/Dodge/Update.hs 797;" f -updateClouds src/Dodge/Update.hs 666;" f +updateCloud src/Dodge/Update.hs 803;" f +updateClouds src/Dodge/Update.hs 672;" f updateCombinePositioning src/Dodge/DisplayInventory.hs 40;" f updateCombineSections src/Dodge/DisplayInventory.hs 47;" f updateCreature src/Dodge/Creature/Update.hs 32;" f updateCreature' src/Dodge/Creature/Update.hs 41;" f -updateCreatureGroups src/Dodge/Update.hs 534;" f -updateCreatureSoundPositions src/Dodge/Update.hs 513;" f -updateDebris src/Dodge/Update.hs 569;" f +updateCreatureGroups src/Dodge/Update.hs 540;" f +updateCreatureSoundPositions src/Dodge/Update.hs 519;" f +updateDebris src/Dodge/Update.hs 575;" f updateDebrisChunk src/Dodge/Prop/Moving.hs 16;" f updateDebugMessageOffset src/Dodge/Update.hs 95;" f -updateDelayedEvents src/Dodge/Update.hs 898;" f +updateDelayedEvents src/Dodge/Update.hs 904;" f updateDisplaySections src/Dodge/DisplayInventory.hs 116;" f updateDistortion src/Dodge/Distortion.hs 8;" f -updateDistortions src/Dodge/Update.hs 555;" f +updateDistortions src/Dodge/Update.hs 561;" f updateDoor src/Dodge/Door.hs 22;" f -updateDoors src/Dodge/Update.hs 309;" f -updateDust src/Dodge/Update.hs 844;" f -updateDusts src/Dodge/Update.hs 672;" f +updateDoors src/Dodge/Update.hs 315;" f +updateDust src/Dodge/Update.hs 850;" f +updateDusts src/Dodge/Update.hs 678;" f updateEdge src/Dodge/Path.hs 43;" f updateEdgeWallObs src/Dodge/Update/WallDamage.hs 39;" f updateEdgesWall src/Dodge/Update/WallDamage.hs 23;" f updateEdgesWall' src/Dodge/Update/WallDamage.hs 36;" f updateEnergyBall src/Dodge/EnergyBall.hs 31;" f -updateEnergyBalls src/Dodge/Update.hs 657;" f +updateEnergyBalls src/Dodge/Update.hs 663;" f updateEnterRegex src/Dodge/Update/Input/InGame.hs 505;" f updateExpBarrel src/Dodge/Barreloid.hs 21;" f updateFlame src/Dodge/Flame.hs 19;" f -updateFlames src/Dodge/Update.hs 654;" f +updateFlames src/Dodge/Update.hs 660;" f updateFloatingCamera src/Dodge/Update/Camera.hs 36;" f updateFunctionKey src/Dodge/Update/Input/InGame.hs 363;" f updateFunctionKeys src/Dodge/Update/Input/InGame.hs 359;" f -updateGas src/Dodge/Update.hs 819;" f -updateGasses src/Dodge/Update.hs 669;" f -updateGusts src/Dodge/Update.hs 781;" f -updateIMl src/Dodge/Update.hs 528;" f -updateIMl' src/Dodge/Update.hs 531;" f +updateGas src/Dodge/Update.hs 825;" f +updateGasses src/Dodge/Update.hs 675;" f +updateGusts src/Dodge/Update.hs 787;" f +updateIMl src/Dodge/Update.hs 534;" f +updateIMl' src/Dodge/Update.hs 537;" f updateInGameCamera src/Dodge/Update/Camera.hs 84;" f updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 428;" f updateInt2Map src/Dodge/Zoning/Base.hs 94;" f @@ -5371,51 +5376,51 @@ updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 382;" f updateKeysTextInputTerminal src/Dodge/Update/Input/InGame.hs 405;" f updateLampoid src/Dodge/Lampoid.hs 13;" f updateLaser src/Dodge/Laser/Update.hs 11;" f -updateLasers src/Dodge/Update.hs 431;" f +updateLasers src/Dodge/Update.hs 437;" f updateLeftParentSF src/Dodge/Item/Grammar.hs 170;" f updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f updateLongPressInGame src/Dodge/Update/Input/InGame.hs 441;" f updateMachine src/Dodge/Machine/Update.hs 24;" f -updateMagnets src/Dodge/Update.hs 312;" f +updateMagnets src/Dodge/Update.hs 318;" f updateMouseClickInGame src/Dodge/Update/Input/InGame.hs 203;" f -updateMouseContext src/Dodge/Update.hs 325;" f -updateMouseContextGame src/Dodge/Update.hs 330;" f +updateMouseContext src/Dodge/Update.hs 331;" f +updateMouseContextGame src/Dodge/Update.hs 336;" f updateMouseHeldInGame src/Dodge/Update/Input/InGame.hs 96;" f updateMouseInGame src/Dodge/Update/Input/InGame.hs 86;" f updateMouseReleaseInGame src/Dodge/Update/Input/InGame.hs 166;" f -updateObjCatMaybes src/Dodge/Update.hs 546;" f -updateObjMapMaybe src/Dodge/Update.hs 539;" f -updatePastWorlds src/Dodge/Update.hs 420;" f +updateObjCatMaybes src/Dodge/Update.hs 552;" f +updateObjMapMaybe src/Dodge/Update.hs 545;" f +updatePastWorlds src/Dodge/Update.hs 426;" f updatePreload src/Preload/Update.hs 21;" f updateProjectile src/Dodge/Projectile/Update.hs 26;" f updatePulse src/Dodge/Creature/Update.hs 123;" f -updatePulseBall src/Dodge/Update.hs 445;" f -updatePulseLaser src/Dodge/Update.hs 609;" f -updatePulseLasers src/Dodge/Update.hs 440;" f +updatePulseBall src/Dodge/Update.hs 451;" f +updatePulseLaser src/Dodge/Update.hs 615;" f +updatePulseLasers src/Dodge/Update.hs 446;" f updateRBList src/Dodge/Inventory/RBList.hs 22;" f updateRadarBlip src/Dodge/RadarBlip.hs 11;" f -updateRadarBlips src/Dodge/Update.hs 558;" f +updateRadarBlips src/Dodge/Update.hs 564;" f updateRadarSweep src/Dodge/RadarSweep.hs 40;" f -updateRadarSweeps src/Dodge/Update.hs 660;" f +updateRadarSweeps src/Dodge/Update.hs 666;" f updateRandNode src/TreeHelp.hs 109;" f updateRenderSplit appDodge/Main.hs 104;" f updateRightParentSF src/Dodge/Item/Grammar.hs 181;" f updateRootItemID src/Dodge/Inventory/Location.hs 41;" f updateScopeZoom src/Dodge/Update/Scroll.hs 79;" f updateScrollTestValue src/Dodge/ScrollValue.hs 6;" f -updateSection src/Dodge/DisplayInventory.hs 258;" f -updateSectionsPositioning src/Dodge/DisplayInventory.hs 237;" f +updateSection src/Dodge/DisplayInventory.hs 259;" f +updateSectionsPositioning src/Dodge/DisplayInventory.hs 238;" f updateShockwave src/Dodge/Shockwave/Update.hs 8;" f -updateShockwaves src/Dodge/Update.hs 651;" f +updateShockwaves src/Dodge/Update.hs 657;" f updateSingleNodes src/TreeHelp.hs 98;" f updateSound src/Sound.hs 72;" f updateSounds src/Sound.hs 67;" f updateSpark src/Dodge/Spark.hs 19;" f -updateSparks src/Dodge/Update.hs 663;" f -updateTeslaArc src/Dodge/Update.hs 579;" f -updateTeslaArcs src/Dodge/Update.hs 576;" f +updateSparks src/Dodge/Update.hs 669;" f +updateTeslaArc src/Dodge/Update.hs 585;" f +updateTeslaArcs src/Dodge/Update.hs 582;" f updateTractorBeam src/Dodge/TractorBeam/Update.hs 9;" f -updateTractorBeams src/Dodge/Update.hs 648;" f +updateTractorBeams src/Dodge/Update.hs 654;" f updateTurret src/Dodge/Machine/Update.hs 51;" f updateUniverse src/Dodge/Update.hs 74;" f updateUniverseFirst src/Dodge/Update.hs 85;" f @@ -5426,7 +5431,7 @@ updateUseInputOnScreen src/Dodge/Update/Input/ScreenLayer.hs 24;" f updateWalkCycle src/Dodge/Creature/State/WalkCycle.hs 11;" f updateWallDamages src/Dodge/Update/WallDamage.hs 15;" f updateWheelEvent src/Dodge/Update/Scroll.hs 25;" f -updateWheelEvents src/Dodge/Update.hs 410;" f +updateWheelEvents src/Dodge/Update.hs 416;" f updateWorldEventFlag src/Dodge/Update.hs 120;" f updateWorldEventFlags src/Dodge/Update.hs 108;" f upperBody src/Dodge/Creature/Picture.hs 121;" f @@ -5586,7 +5591,7 @@ yV2 src/Geometry/Vector.hs 205;" f yellow src/Color.hs 17;" f you src/Dodge/Base/You.hs 13;" f youDropItem src/Dodge/Creature/Action.hs 177;" f -yourAugmentedItem src/Dodge/Render/HUD.hs 239;" f +yourAugmentedItem src/Dodge/Render/HUD.hs 240;" f yourControl src/Dodge/Creature/YourControl.hs 28;" f yourDefaultStrideLength src/Dodge/Default/Creature.hs 110;" f yourInfo src/Dodge/Creature/Info.hs 10;" f @@ -5602,11 +5607,11 @@ zeroZ src/Geometry/Vector.hs 9;" f zipArcs src/Dodge/Tesla.hs 52;" f zipCount src/Dodge/Tree/Shift.hs 136;" f zoneCloud src/Dodge/Zoning/Cloud.hs 33;" f -zoneClouds src/Dodge/Update.hs 472;" f +zoneClouds src/Dodge/Update.hs 478;" f zoneCreature src/Dodge/Zoning/Creature.hs 56;" f -zoneCreatures src/Dodge/Update.hs 509;" f +zoneCreatures src/Dodge/Update.hs 515;" f zoneDust src/Dodge/Zoning/Cloud.hs 57;" f -zoneDusts src/Dodge/Update.hs 477;" f +zoneDusts src/Dodge/Update.hs 483;" f zoneExtract src/Dodge/Zoning/Base.hs 58;" f zoneGas src/Dodge/Zoning/Cloud.hs 36;" f zoneIncPe src/Dodge/Zoning/Pathing.hs 66;" f