diff --git a/src/Dodge/Base/CardinalPoint.hs b/src/Dodge/Base/CardinalPoint.hs index 64352469e..cbc6e0b11 100644 --- a/src/Dodge/Base/CardinalPoint.hs +++ b/src/Dodge/Base/CardinalPoint.hs @@ -14,8 +14,8 @@ cardVec cp = case cp of East -> V2 1 0 West -> V2 (-1) 0 -cardEightVec :: CardinalEightPoint -> Point2 -cardEightVec cp = case cp of +card8Vec :: Cardinal8 -> Point2 +card8Vec cp = case cp of North8 -> V2 0 1 NorthEast8 -> V2 1 1 East8 -> V2 1 0 diff --git a/src/Dodge/Data/CardinalPoint.hs b/src/Dodge/Data/CardinalPoint.hs index 8cfebfe24..fed1bd968 100644 --- a/src/Dodge/Data/CardinalPoint.hs +++ b/src/Dodge/Data/CardinalPoint.hs @@ -24,7 +24,7 @@ data CardinalPointBetween | NorthWest deriving (Eq, Ord, Show, Bounded, Enum) -data CardinalEightPoint +data Cardinal8 = North8 | NorthEast8 | East8 diff --git a/src/Dodge/Data/SelectionList.hs b/src/Dodge/Data/SelectionList.hs index 28714b27e..93aa7ee76 100644 --- a/src/Dodge/Data/SelectionList.hs +++ b/src/Dodge/Data/SelectionList.hs @@ -10,7 +10,7 @@ import Dodge.Data.CardinalPoint import Dodge.Data.ScreenPos import Picture.Data -data ListDisplayParams = ListDisplayParams +data LDParams = LDP -- List display parameters { _ldpPos :: ScreenPos , _ldpScale :: Float , _ldpVerticalGap :: Float @@ -54,7 +54,7 @@ data SIDisplayMod = NoSIDisplayMod | HighlightSI -makeLenses ''ListDisplayParams +makeLenses ''LDParams makeLenses ''SelectionItem makeLenses ''SelSection makeLenses ''SectionCursor diff --git a/src/Dodge/ListDisplayParams.hs b/src/Dodge/ListDisplayParams.hs index 7e48a71ca..2d956662e 100644 --- a/src/Dodge/ListDisplayParams.hs +++ b/src/Dodge/ListDisplayParams.hs @@ -16,9 +16,8 @@ import Dodge.Data.World import Linear import SDL (MouseButton (..)) -defaultLDP :: ListDisplayParams -defaultLDP = - ListDisplayParams +defaultLDP :: LDParams +defaultLDP = LDP { _ldpVerticalGap = 0 , _ldpScale = 1 , _ldpPos = @@ -29,7 +28,7 @@ defaultLDP = , _ldpBorder = Nothing } -invDP :: ListDisplayParams +invDP :: LDParams --invDP = defaultLDP & ldpPos . spPixelOff .~ V2 6 0 invDP = defaultLDP & ldpPos . spPixelOff .~ V2 16 (-20) @@ -40,7 +39,7 @@ invCursorParams w = BoundaryCursor $ case w ^? hud . subInventory of _ | ButtonRight `M.member` _mouseButtons (_input w) -> [North, South, East, West] _ -> [North, South, West] -secondColumnLDP :: ListDisplayParams +secondColumnLDP :: LDParams secondColumnLDP = defaultLDP & ldpPos . spPixelOff .~ V2 subInvX (-20) subInvX :: Float @@ -49,5 +48,5 @@ subInvX = 10 * fromIntegral topInvW + 170 topInvW :: Int topInvW = 15 -menuLDP :: ListDisplayParams +menuLDP :: LDParams menuLDP = defaultLDP & ldpPos . spPixelOff .~ V2 11 (-70) & ldpScale .~ 2 diff --git a/src/Dodge/Render/HUD.hs b/src/Dodge/Render/HUD.hs index 0ad0291bf..57b05e758 100644 --- a/src/Dodge/Render/HUD.hs +++ b/src/Dodge/Render/HUD.hs @@ -2,11 +2,11 @@ module Dodge.Render.HUD (drawHUD) where -import Data.List (elemIndex) import Control.Applicative import Control.Lens import Control.Monad import qualified Data.IntSet as IS +import Data.List (elemIndex) import qualified Data.Map.Strict as M import Data.Maybe import qualified Data.Vector as V @@ -57,9 +57,14 @@ drawHUD cfig w = case w ^. hud of drawInventory sections w cfig subinv <> drawSubInventory subinv cfig w -drawInventory :: IM.IntMap (SelSection ()) -> World -> Config -> SubInventory -> Picture +drawInventory :: IMSS () -> World -> Config -> SubInventory -> Picture drawInventory sss w cfig = \case - -- DisplayTerminal {} -> mempty + DisplayTerminal {} -> + drawSelectionSections sss invDP cfig +-- <> drawSSCursor sss invDP curs cfig (f $ w ^? hud . diSelection . _Just) +-- <> drawRootCursor w sss (f $ w ^? hud . diSelection . _Just) invDP cfig + <> itemconnections + <> drawMouseOver cfig w _ -> drawSelectionSections sss invDP cfig <> drawSSCursor sss invDP curs cfig (f $ w ^? hud . diSelection . _Just) @@ -77,12 +82,7 @@ drawInventory sss w cfig = \case _ -> return . drawItemConnections sss cfig $ invAdj inv drawRootCursor :: - World -> - IM.IntMap (SelSection ()) -> - Maybe (Int, Int) -> - ListDisplayParams -> - Config -> - Picture + World -> IMSS () -> Maybe (Int, Int) -> LDParams -> Config -> Picture drawRootCursor w sss msel ldp cfig = fromMaybe mempty $ do cr <- w ^? cWorld . lWorld . creatures . ix 0 guard $ crIsAiming cr @@ -169,7 +169,6 @@ drawDragSelecting cfig w = do drawSubInventory :: SubInventory -> Config -> World -> Picture drawSubInventory subinv cfig w = case subinv of - -- LockedInventory -> mempty -- topInvCursor col cursPos cfig w NoSubInventory{} -> drawRBOptions cfig w ExamineInventory -> drawExamineInventory cfig w DisplayTerminal tid -> (drawTerminalDisplay w cfig tid) @@ -185,7 +184,7 @@ drawMapperInventory itid w = fold $ do where f = worldPosToScreen (w ^. wCam) -drawCombineInventory :: Config -> IM.IntMap (SelSection CombItem) -> World -> Picture +drawCombineInventory :: Config -> IMSS CombItem -> World -> Picture drawCombineInventory cfig sss w = drawSelectionSections sss secondColumnLDP cfig <> drawSSCursor sss secondColumnLDP curs cfig msel @@ -319,16 +318,13 @@ equipAllocString = \case RemoveEquipment{} -> "TAKE OFF" drawItemConnections :: - IM.IntMap (SelSection ()) -> - Config -> - IM.IntMap (Maybe (Int, Int), [Int], [Int]) -> - Picture + IMSS () -> Config -> IM.IntMap (Maybe (Int, Int), [Int], [Int]) -> Picture drawItemConnections sss cfig = translate (negate 5) 0 . IM.foldMapWithKey (drawItemChildrenConnect sss cfig) . fmap (\(_, a, b) -> a <> b) -drawItemChildrenConnect :: IM.IntMap (SelSection ()) -> Config -> Int -> [Int] -> Picture +drawItemChildrenConnect :: IMSS () -> Config -> Int -> [Int] -> Picture drawItemChildrenConnect sss cfig i is = fromMaybe mempty $ do p <- snum i let ps = mapMaybe snum is @@ -337,7 +333,7 @@ drawItemChildrenConnect sss cfig i is = fromMaybe mempty $ do snum = selNumPos cfig invDP sss 0 combineInventoryExtra :: - IM.IntMap (SelSection CombItem) -> Maybe (Int, Int) -> Config -> World -> Picture + IMSS CombItem -> Maybe (Int, Int) -> Config -> World -> Picture combineInventoryExtra sss msel cfig w = fold $ do (i, j) <- msel si <- sss ^? ix i . ssItems . ix j @@ -345,13 +341,13 @@ combineInventoryExtra sss msel cfig w = fold $ do lnks <- si ^? siPayload . _Just . ciInvIDs return (lnkMidPosInvSelsCol cfig w j col lnks) <> Just (foldMap invcursor lnks) where - invcursor i = - translateScreenPos cfig (invDP ^. ldpPos) $ - selSecDrawCursor - invDP - (BoundaryCursor [North, South, East, West]) - (w ^. hud . diSections) - (Just (0, i)) + invcursor i = + translateScreenPos cfig (invDP ^. ldpPos) $ + selSecDrawCursor + invDP + (BoundaryCursor [North, South, East, West]) + (w ^. hud . diSections) + (Just (0, i)) drawTerminalDisplay :: World -> Config -> Int -> Picture drawTerminalDisplay w cfig tid = fold $ do @@ -370,8 +366,9 @@ drawTerminalDisplay w cfig tid = fold $ do TerminalLineRead -> (++ [(spincurs, termTextColor)]) TerminalTextInput s -> (++ [(getPromptTM ++ s ++ [cFilledRect], white)]) TerminalPressTo s -> (++ [(s, white)]) - return $ drawSelectionList (secondColumnLDP & ldpBorder ?~ (49, 16)) cfig f - <> drawTerminalCursorLink w cfig tm + return $ + drawSelectionList (secondColumnLDP & ldpBorder ?~ (49, 16)) cfig f + <> drawTerminalCursorLink w cfig tm where -- <> tm ^. tmButtonID @@ -389,15 +386,20 @@ drawTerminalDisplay w cfig tid = fold $ do drawTerminalCursorLink :: World -> Config -> Terminal -> Picture drawTerminalCursorLink w cfig tm = fold $ do j <- elemIndex (tm ^. tmButtonID) $ w ^. hud . closeButtons - lp <- selNumPos cfig invDP (w^. hud . diSections) 5 j + lp <- selNumPos cfig invDP (w ^. hud . diSections) 5 j let rp = screenPosAbs cfig (secondColumnLDP ^. ldpPos) - V2 5 10 lcol <- selSecSelCol 5 j (w ^. hud . diSections) - return $ translateScreenPos cfig (invDP ^. ldpPos) - (selSecDrawCursor invDP - (BoundaryCursor [North,South,East,West]) - (w ^. hud . diSections) - (Just (5,j))) - <> lConnectCol (lp + V2 155 0) rp lcol white white + return $ + translateScreenPos + cfig + (invDP ^. ldpPos) + ( selSecDrawCursor + invDP + (BoundaryCursor [North, South, East, West]) + (w ^. hud . diSections) + (Just (5, j)) + ) + <> lConnectCol (lp + V2 155 0) rp lcol white white lnkMidPosInvSelsCol :: Config -> World -> Int -> Color -> [Int] -> Picture lnkMidPosInvSelsCol cfig w i col = fromMaybe mempty . foldMap f @@ -459,13 +461,7 @@ invHead cfig = -- textSelItems = map (picsToSelectable . (: [])) -- would be nice to add parameter to orient this with NSEW, cf cursor -selNumPos :: - Config -> - ListDisplayParams -> - IMSS a -> - Int -> - Int -> - Maybe Point2 +selNumPos :: Config -> LDParams -> IMSS a -> Int -> Int -> Maybe Point2 selNumPos = selNumPosCardinal West8 -- selNumPos cfig ldp sss i j = do @@ -483,26 +479,15 @@ selNumPos = selNumPosCardinal West8 -- need to be able to determine a selection item's width for this selNumPosCardinal :: - CardinalEightPoint -> - Config -> - ListDisplayParams -> - IM.IntMap (SelSection a) -> - Int -> - Int -> - Maybe Point2 + Cardinal8 -> Config -> LDParams -> IMSS a -> Int -> Int -> Maybe Point2 selNumPosCardinal card cfig ldp sss i j = do ipos <- selSecYint i j sss - -- size <- selSecSelSize i j sss ysize <- fromIntegral <$> sss ^? ix i . ssItems . ix j . siHeight xsize <- fromIntegral <$> sss ^? ix i . ssItems . ix j . siWidth itmindent <- fromIntegral <$> sss ^? ix i . ssItems . ix j . siOffX sindent <- fromIntegral <$> sss ^? ix i . ssIndent let indent = itmindent + sindent - let offset = - cardEightVec card - * V2 - (xsize * 0.5 * 10 * s) - (ysize * 0.5 * 20 * s) + let offset = s *^ (card8Vec card * V2 (xsize * 5) (ysize * 10)) return $ screenPosAbs cfig (ldp ^. ldpPos) + offset @@ -513,5 +498,5 @@ selNumPosCardinal card cfig ldp sss i j = do s = _ldpScale ldp ygap = _ldpVerticalGap ldp -selSecSelCol :: Int -> Int -> IM.IntMap (SelSection a) -> Maybe Color +selSecSelCol :: Int -> Int -> IMSS a -> Maybe Color selSecSelCol i j = (^? ix i . ssItems . ix j . siColor) diff --git a/src/Dodge/Render/List.hs b/src/Dodge/Render/List.hs index d7b5e9e40..6d7b44386 100644 --- a/src/Dodge/Render/List.hs +++ b/src/Dodge/Render/List.hs @@ -33,7 +33,7 @@ import LensHelp import ListHelp import Picture -drawSelectionList :: ListDisplayParams -> Config -> [SelectionItem a] -> Picture +drawSelectionList :: LDParams -> Config -> [SelectionItem a] -> Picture drawSelectionList ldps cfig sl = translateScreenPos cfig (ldps ^. ldpPos) $ drawListYgapScaleYoff ygap sf 0 (makeSelectionListPictures sl) @@ -57,7 +57,7 @@ drawTitleBackground cfig = $ rectNSWE 70 0 0 560 drawSelectionListBackground :: - ListDisplayParams -> + LDParams -> Config -> Int -> -- list length Picture @@ -77,12 +77,7 @@ makeSelectionListPictures = concatMap f -- note this does not take into account any selectionsection indent drawCursorAt :: - Maybe Int -> - [SelectionItem a] -> - ListDisplayParams -> - Int -> - CursorDisplay -> - Picture + Maybe Int -> [SelectionItem a] -> LDParams -> Int -> CursorDisplay -> Picture drawCursorAt mi lis ldps width curs = fromMaybe mempty $ do i <- mi selit <- lis !? i @@ -110,11 +105,7 @@ stackPicturesAtOff :: Int -> [Picture] -> Picture stackPicturesAtOff i = mconcat . zipWith (drawListElement 10 1 0) [i, i - 1 ..] selSecDrawCursorAt :: - ListDisplayParams -> - CursorDisplay -> - IM.IntMap (SelSection a) -> - (Int, Int) -> - Picture + LDParams -> CursorDisplay -> IM.IntMap (SelSection a) -> (Int, Int) -> Picture selSecDrawCursorAt ldp curs sss (i, j) = fold $ do yint <- selSecYint i j sss sindent <- sss ^? ix i . ssIndent @@ -131,11 +122,7 @@ selSecDrawCursorAt ldp curs sss (i, j) = fold $ do (_siHeight si) selSecDrawCursor :: - ListDisplayParams -> - CursorDisplay -> - IM.IntMap (SelSection a) -> - Maybe (Int, Int) -> - Picture + LDParams -> CursorDisplay -> IM.IntMap (SelSection a) -> Maybe (Int, Int) -> Picture selSecDrawCursor ldp curs = maybe mempty . selSecDrawCursorAt ldp curs -- displays a cursor that should match up to list text pictures diff --git a/src/Dodge/SelectionList.hs b/src/Dodge/SelectionList.hs index ea9dcadfa..ccd600cd5 100644 --- a/src/Dodge/SelectionList.hs +++ b/src/Dodge/SelectionList.hs @@ -7,7 +7,7 @@ import Dodge.Data.Universe import LensHelp import Linear -getAvailableListLines :: ListDisplayParams -> Config -> Int +getAvailableListLines :: LDParams -> Config -> Int getAvailableListLines ldps cfig = floor ((dToBot - vgap) / itmHeight) where vgap = ldps ^. ldpVerticalGap diff --git a/src/Dodge/SelectionSections.hs b/src/Dodge/SelectionSections.hs index e6fdc2315..970cb1295 100644 --- a/src/Dodge/SelectionSections.hs +++ b/src/Dodge/SelectionSections.hs @@ -144,7 +144,7 @@ selSecSelSize :: Int -> Int -> IMSS a -> Maybe Int selSecSelSize i j = (^? ix i . ssItems . ix j . siHeight) -- need to check that the vertical gap is correctly put in here -posSelSecYint :: Config -> ListDisplayParams -> Float -> Int +posSelSecYint :: Config -> LDParams -> Float -> Int posSelSecYint cfig ldp y = floor $ (y0 - y) / (20 / ldp ^. ldpScale + ldp ^. ldpVerticalGap) where V2 _ y0 = screenPosAbs cfig (ldp ^. ldpPos) @@ -175,12 +175,7 @@ inverseSelSecYint yint sss return $ NonInf (i, j) inverseSelSecYintXPosCheck :: - Config -> - ListDisplayParams -> - Float -> - Int -> - IMSS a -> - Maybe (Int,Int) + Config -> LDParams -> Float -> Int -> IMSS a -> Maybe (Int,Int) inverseSelSecYintXPosCheck cfig ldp x yint sss = do (i,j) <- inverseSelSecYint yint sss ^? nonInf let V2 x0 _ = screenPosAbs cfig (ldp ^. ldpPos) @@ -190,6 +185,6 @@ inverseSelSecYintXPosCheck cfig ldp x yint sss = do guard $ x - x1 < 160 && x > x1 return (i,j) -inverseSelNumPos :: Config -> ListDisplayParams -> Point2 -> IMSS a -> Maybe (Int, Int) +inverseSelNumPos :: Config -> LDParams -> Point2 -> IMSS a -> Maybe (Int, Int) inverseSelNumPos cfig ldp (V2 x y) = inverseSelSecYintXPosCheck cfig ldp x (posSelSecYint cfig ldp y) diff --git a/src/Dodge/SelectionSections/Draw.hs b/src/Dodge/SelectionSections/Draw.hs index a81b53599..149a5aacf 100644 --- a/src/Dodge/SelectionSections/Draw.hs +++ b/src/Dodge/SelectionSections/Draw.hs @@ -13,7 +13,7 @@ import Dodge.ScreenPos import Dodge.SelectionSections import Picture.Base -drawSelectionSections :: IM.IntMap (SelSection a) -> ListDisplayParams -> Config -> Picture +drawSelectionSections :: IM.IntMap (SelSection a) -> LDParams -> Config -> Picture drawSelectionSections sss ldp cfig = translateScreenPos cfig (ldp ^. ldpPos) $ drawListYgapScaleYoff @@ -29,12 +29,7 @@ drawSelectionSections sss ldp cfig = ) drawSSCursor :: - IM.IntMap (SelSection a) -> - ListDisplayParams -> - CursorDisplay -> - Config -> - Maybe (Int, Int) -> - Picture + IM.IntMap (SelSection a) -> LDParams -> CursorDisplay -> Config -> Maybe (Int, Int) -> Picture drawSSCursor sss ldp curs cfig = translateScreenPos cfig (ldp ^. ldpPos) . selSecDrawCursor ldp curs sss @@ -43,7 +38,7 @@ drawSSMultiCursor :: IM.IntMap (SelSection a) -> Maybe (Int, Int) -> Maybe Int -> - ListDisplayParams -> + LDParams -> CursorDisplay -> Config -> Picture diff --git a/src/Dodge/Update/Input/ScreenLayer.hs b/src/Dodge/Update/Input/ScreenLayer.hs index 456b32043..a65758cc9 100644 --- a/src/Dodge/Update/Input/ScreenLayer.hs +++ b/src/Dodge/Update/Input/ScreenLayer.hs @@ -81,7 +81,7 @@ mouseClickOptionsList u = fromMaybe u $ do return $ f u & uvSoundQueue .:~ click1S _ -> Nothing -ldpSelection :: Config -> ListDisplayParams -> Point2 -> Maybe Int +ldpSelection :: Config -> LDParams -> Point2 -> Maybe Int ldpSelection cfig ldp (V2 _ y) | yupper == ylower = Just yupper | otherwise = Nothing diff --git a/tags b/tags index bac4c8d52..2907292a3 100644 --- a/tags +++ b/tags @@ -99,7 +99,7 @@ BULLETBELTPACK src/Dodge/Data/Item/Combine.hs 132;" C BULLETMOD src/Dodge/Data/Item/Combine.hs 22;" C BULLETSYNTH src/Dodge/Data/Item/Combine.hs 92;" C BURSTRIFLE src/Dodge/Data/Item/Combine.hs 155;" C -BackdropCursor src/Dodge/Data/SelectionList.hs 21;" C +BackdropCursor src/Dodge/Data/SelectionList.hs 22;" C BackgroundSound src/Dodge/Data/SoundOrigin.hs 13;" C Bark src/Dodge/Data/ActionPlan.hs 39;" C BarrelCrit src/Dodge/Data/Creature/Misc.hs 71;" C @@ -138,7 +138,7 @@ Boosting src/Dodge/Data/Creature/Stance.hs 27;" C BottomMenuOption src/Dodge/Data/Universe.hs 77;" C BounceBullet src/Dodge/Data/Bullet.hs 28;" C Bound_box_screen src/Dodge/Data/Config.hs 94;" C -BoundaryCursor src/Dodge/Data/SelectionList.hs 20;" C +BoundaryCursor src/Dodge/Data/SelectionList.hs 21;" C Bounds src/Dodge/Data/Bounds.hs 10;" t BrigSS src/Dodge/Data/Scenario.hs 102;" C Brute src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 16;" C @@ -192,8 +192,8 @@ CamouflageStatus src/Dodge/Data/CamouflageStatus.hs 5;" t CapacitorBelow src/Dodge/Data/Muzzle.hs 23;" C CapacitorSF src/Dodge/Data/ComposedItem.hs 42;" C CapacitorSelf src/Dodge/Data/Muzzle.hs 24;" C +Cardinal8 src/Dodge/Data/CardinalPoint.hs 27;" t CardinalCover src/Dodge/Data/CardinalPoint.hs 38;" t -CardinalEightPoint src/Dodge/Data/CardinalPoint.hs 27;" t CardinalPoint src/Dodge/Data/CardinalPoint.hs 6;" t CardinalPointBetween src/Dodge/Data/CardinalPoint.hs 20;" t Carriage src/Dodge/Data/Creature/Stance.hs 22;" t @@ -285,7 +285,7 @@ CryoReleaseCloud src/Dodge/Data/Cloud.hs 23;" C CryostatisSS src/Dodge/Data/Scenario.hs 91;" C Crystal src/Dodge/Data/Material.hs 16;" C Cull_more_lights src/Dodge/Data/Config.hs 91;" C -CursorDisplay src/Dodge/Data/SelectionList.hs 19;" t +CursorDisplay src/Dodge/Data/SelectionList.hs 20;" t Cylinder src/Shape/Data.hs 14;" C DETECTOR src/Dodge/Data/Item/Combine.hs 33;" C DROPPER src/Dodge/Data/Item/Combine.hs 26;" C @@ -416,7 +416,7 @@ FilterBySoundOrigin src/Dodge/Data/WorldEffect.hs 22;" C FireSpark src/Dodge/Data/Spark.hs 19;" C Fixated src/Dodge/Data/Creature/Perception.hs 60;" C FixedCoordLayer src/Picture/Data.hs 24;" C -FixedSelectionWidth src/Dodge/Data/SelectionList.hs 39;" C +FixedSelectionWidth src/Dodge/Data/SelectionList.hs 40;" C FlIt src/Dodge/Data/FloorItem.hs 11;" C Flame src/Dodge/Data/Flame.hs 11;" t FlameBeamCombine src/Dodge/Data/Beam.hs 37;" C @@ -520,7 +520,7 @@ HeavySmokeFlare src/Dodge/Data/Muzzle.hs 33;" C HeldItemType src/Dodge/Data/Item/Combine.hs 138;" t HeldPlatformSF src/Dodge/Data/ComposedItem.hs 14;" C HiddenGoal src/Dodge/Data/Scenario.hs 14;" C -HighlightSI src/Dodge/Data/SelectionList.hs 54;" C +HighlightSI src/Dodge/Data/SelectionList.hs 55;" C HomeUsingRemoteScreen src/Dodge/Data/Projectile.hs 41;" C HomeUsingTargeting src/Dodge/Data/Projectile.hs 42;" C Hospital src/Dodge/Data/Scenario.hs 69;" C @@ -545,7 +545,7 @@ HotkeyZ src/Dodge/Data/Equipment/Misc.hs 35;" C Huge src/Shape/Data.hs 23;" C Humanoid src/Dodge/Data/Creature/Misc.hs 75;" C HumanoidAI src/Dodge/Data/Creature/Misc.hs 37;" t -IMSS src/Dodge/Data/SelectionList.hs 37;" t +IMSS src/Dodge/Data/SelectionList.hs 38;" t INTROSCAN src/Dodge/Data/Item/Combine.hs 32;" C INVISIBILITYEQUIPMENT src/Dodge/Data/Item/Combine.hs 124;" C IRONBAR src/Dodge/Data/Item/Combine.hs 78;" C @@ -618,6 +618,8 @@ JustStartedPlaying src/Sound/Data.hs 22;" C KEYCARD src/Dodge/Data/Item/Combine.hs 176;" C Kill src/Dodge/Data/ActionPlan.hs 151;" C LASER src/Dodge/Data/Item/Combine.hs 35;" C +LDP src/Dodge/Data/SelectionList.hs 13;" C +LDParams src/Dodge/Data/SelectionList.hs 13;" t LDT src/Dodge/Data/DoubleTree.hs 32;" C LDTBottomNode src/Dodge/Data/DoubleTree.hs 27;" C LDTMidAboveNode src/Dodge/Data/DoubleTree.hs 25;" C @@ -666,7 +668,6 @@ LimitedBreathableAtmosphere src/Dodge/Data/Scenario.hs 38;" C LimitedFood src/Dodge/Data/Scenario.hs 39;" C LimitedWater src/Dodge/Data/Scenario.hs 40;" C LinearShockwave src/Dodge/Data/LinearShockwave.hs 11;" t -ListDisplayParams src/Dodge/Data/SelectionList.hs 13;" t LiveLongAndProsper src/Dodge/Data/ActionPlan.hs 150;" C LivingComplex src/Dodge/Data/Scenario.hs 68;" C LoadReady src/Dodge/Data/Universe.hs 101;" C @@ -839,7 +840,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 +NoSIDisplayMod src/Dodge/Data/SelectionList.hs 54;" C NoShadowFidelity src/Shape/Data.hs 20;" C NoShadows src/Dodge/Data/Config.hs 117;" C NoSoundFilter src/Dodge/Data/WorldEffect.hs 23;" C @@ -1128,7 +1129,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 52;" t +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 @@ -1150,19 +1151,19 @@ ScreenLayer src/Dodge/Data/Universe.hs 81;" t ScreenPos src/Dodge/Data/ScreenPos.hs 12;" t Search src/Dodge/Data/ActionPlan.hs 145;" C SecretCabal src/Dodge/Data/Scenario.hs 44;" C -SectionCursor src/Dodge/Data/SelectionList.hs 23;" t +SectionCursor src/Dodge/Data/SelectionList.hs 24;" t SeeAbove src/Dodge/Data/Wall.hs 32;" C SeeThrough src/Dodge/Data/Wall.hs 31;" C Sel src/Dodge/Data/HUD.hs 39;" C SelCloseButton src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 30;" C SelCloseItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 28;" C -SelItem src/Dodge/Data/SelectionList.hs 41;" C +SelItem src/Dodge/Data/SelectionList.hs 42;" C SelNothing src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 26;" C -SelSection src/Dodge/Data/SelectionList.hs 29;" t +SelSection src/Dodge/Data/SelectionList.hs 30;" t SelectedItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 21;" C Selection src/Dodge/Data/HUD.hs 39;" t -SelectionItem src/Dodge/Data/SelectionList.hs 41;" t -SelectionWidth src/Dodge/Data/SelectionList.hs 39;" t +SelectionItem src/Dodge/Data/SelectionList.hs 42;" t +SelectionWidth src/Dodge/Data/SelectionList.hs 40;" t SelfTree src/Dodge/Data/MetaTree.hs 20;" t SemiAutoTrigger src/Dodge/Data/TriggerType.hs 9;" C SensorType src/Dodge/Data/Machine/Sensor.hs 12;" t @@ -1397,7 +1398,7 @@ UseHeld src/Dodge/Data/Item/Use.hs 29;" C UseInt src/Dodge/Data/Item/Use.hs 31;" C UseInvItem src/Dodge/Data/WorldEffect.hs 39;" C UseItem src/Dodge/Data/ActionPlan.hs 36;" C -UseItemWidth src/Dodge/Data/SelectionList.hs 39;" C +UseItemWidth src/Dodge/Data/SelectionList.hs 40;" C UseMapper src/Dodge/Data/Item/Use.hs 37;" C UseNothing src/Dodge/Data/Item/Use.hs 32;" C UseScope src/Dodge/Data/Item/Use.hs 34;" C @@ -1928,6 +1929,7 @@ _lampLSID src/Dodge/Data/Creature/Misc.hs 72;" f _laserEmmiter src/Dodge/Data/Laser.hs 16;" f _laserTypeDamage src/Dodge/Data/Laser.hs 15;" f _lasers src/Dodge/Data/LWorld.hs 114;" f +_ldpBorder src/Dodge/Data/SelectionList.hs 17;" f _ldpPos src/Dodge/Data/SelectionList.hs 14;" f _ldpScale src/Dodge/Data/SelectionList.hs 15;" f _ldpVerticalGap src/Dodge/Data/SelectionList.hs 16;" f @@ -2241,9 +2243,9 @@ _scrollSmoothing src/Dodge/Data/World.hs 68;" f _scrollSmoothing src/Dodge/Data/World.hs 74;" f _scrollTestFloat src/Dodge/Data/Input.hs 47;" f _scrollTestInt src/Dodge/Data/Input.hs 48;" f -_scurColor src/Dodge/Data/SelectionList.hs 26;" f -_scurPos src/Dodge/Data/SelectionList.hs 24;" f -_scurSize src/Dodge/Data/SelectionList.hs 25;" f +_scurColor src/Dodge/Data/SelectionList.hs 27;" f +_scurPos src/Dodge/Data/SelectionList.hs 25;" f +_scurSize src/Dodge/Data/SelectionList.hs 26;" f _seDist src/Dodge/Data/PathGraph.hs 44;" f _seObstacles src/Dodge/Data/PathGraph.hs 45;" f _seenLocations src/Dodge/Data/LWorld.hs 136;" f @@ -2267,14 +2269,14 @@ _shapeHalfSize src/Shape/Data.hs 13;" f _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 46;" f -_siDisplayMod src/Dodge/Data/SelectionList.hs 49;" f -_siHeight src/Dodge/Data/SelectionList.hs 43;" f -_siIsSelectable src/Dodge/Data/SelectionList.hs 45;" f -_siOffX src/Dodge/Data/SelectionList.hs 47;" f -_siPayload src/Dodge/Data/SelectionList.hs 48;" f -_siPictures src/Dodge/Data/SelectionList.hs 42;" f -_siWidth src/Dodge/Data/SelectionList.hs 44;" 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 +_siPayload src/Dodge/Data/SelectionList.hs 49;" f +_siPictures src/Dodge/Data/SelectionList.hs 43;" f +_siWidth src/Dodge/Data/SelectionList.hs 45;" f _sideEffect src/Loop/Data.hs 13;" f _sideImpulses src/Dodge/Data/ActionPlan.hs 122;" f _silhouetteEBO src/Data/Preload/Render.hs 30;" f @@ -2304,11 +2306,11 @@ _spPixelOff src/Dodge/Data/ScreenPos.hs 14;" f _spScreenOff src/Dodge/Data/ScreenPos.hs 13;" f _sparks src/Dodge/Data/LWorld.hs 107;" f _spawnEBT src/Dodge/Data/Bullet.hs 33;" f -_ssIndent src/Dodge/Data/SelectionList.hs 34;" f -_ssItems src/Dodge/Data/SelectionList.hs 30;" f -_ssOffset src/Dodge/Data/SelectionList.hs 31;" f -_ssShownItems src/Dodge/Data/SelectionList.hs 32;" f -_ssShownLength src/Dodge/Data/SelectionList.hs 33;" f +_ssIndent src/Dodge/Data/SelectionList.hs 35;" f +_ssItems src/Dodge/Data/SelectionList.hs 31;" f +_ssOffset src/Dodge/Data/SelectionList.hs 32;" f +_ssShownItems src/Dodge/Data/SelectionList.hs 33;" f +_ssShownLength src/Dodge/Data/SelectionList.hs 34;" f _ssboName src/Shader/Data.hs 97;" f _ssboPtr src/Shader/Data.hs 98;" f _strideAmount src/Dodge/Data/Creature/Stance.hs 23;" f @@ -2504,7 +2506,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 61;" f +accessTerminal src/Dodge/WorldEffect.hs 66;" 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 @@ -2529,7 +2531,7 @@ addHighGirder src/Dodge/Room/Modify/Girder.hs 132;" f addHighGirder' src/Dodge/Room/Modify/Girder.hs 142;" f addIndefiniteArticle src/StringHelp.hs 17;" f addNodesCrossing src/Dodge/Room/Path.hs 22;" f -addPane src/Dodge/Placement/PlaceSpot.hs 168;" f +addPane src/Dodge/Placement/PlaceSpot.hs 167;" f addPointPolygon src/Geometry/Polygon.hs 134;" f addPolyWall src/Dodge/LevelGen/StaticWalls.hs 141;" f addPolyWalls src/Dodge/LevelGen/StaticWalls.hs 129;" f @@ -2596,7 +2598,7 @@ applyToSubforest src/TreeHelp.hs 78;" f applyToSubtree src/TreeHelp.hs 71;" f applyTorqueCME src/Dodge/HeldUse.hs 570;" f applyWorldConfig src/Dodge/Config.hs 55;" f -aquamarine src/Color.hs 23;" f +aquamarine src/Color.hs 50;" f arHUD src/Dodge/Item/Scope.hs 134;" f arc src/Picture/Base.hs 291;" f arcFull src/Picture/Arc.hs 11;" f @@ -2637,7 +2639,7 @@ autoPistol src/Dodge/Item/Held/Stick.hs 49;" f autoRifle src/Dodge/Item/Held/Cane.hs 27;" f awakeLevelPerception src/Dodge/Creature/Perception.hs 161;" f axisInt src/Geometry/Intersect.hs 248;" f -azure src/Color.hs 22;" f +azure src/Color.hs 49;" f bQuadToF src/Geometry/Bezier.hs 37;" f bQuadToLine src/Geometry/Bezier.hs 30;" f backPQ src/Dodge/Creature/HandPos.hs 127;" f @@ -2684,7 +2686,7 @@ bgateCalc src/Dodge/Inventory/SelectionList.hs 121;" f bgunSound src/Dodge/HeldUse.hs 514;" f bindFBO src/Render.hs 235;" f bingate src/Dodge/Item/Scope.hs 109;" f -black src/Color.hs 27;" f +black src/Color.hs 54;" f blank src/Picture/Base.hs 60;" f blinkAcrossChallenge src/Dodge/Room/BlinkAcross.hs 14;" f blinkActionFail src/Dodge/Creature/Action/Blink.hs 87;" f @@ -2715,7 +2717,7 @@ bloodShort6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 522;" f bloodShort7S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 670;" f bloodShort8S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 630;" f blowTorch src/Dodge/Item/Held/SprayGuns.hs 43;" f -blue src/Color.hs 16;" f +blue src/Color.hs 43;" f blunderbuss src/Dodge/Item/Held/Cone.hs 14;" f boolOption src/Dodge/Menu/OptionType.hs 12;" f bossKeyItems src/Dodge/LockAndKey.hs 12;" f @@ -2734,8 +2736,8 @@ boxXYZnobase src/Polyhedra.hs 80;" f brainHat src/Dodge/Item/Equipment.hs 73;" f branchRectWith src/Dodge/Room/Branch.hs 15;" f branchWith src/Dodge/Room/Room.hs 77;" f -bright src/Color.hs 120;" f -brightX src/Color.hs 116;" f +bright src/Color.hs 147;" f +brightX src/Color.hs 143;" f btSPic src/Dodge/Render/ShapePicture.hs 131;" f btText src/Dodge/Inventory/SelectionList.hs 242;" f bufferEBO src/Shader/Bind.hs 28;" f @@ -2760,7 +2762,7 @@ canSee src/Dodge/Base/Collide.hs 328;" f canSeeIndirect src/Dodge/Base/Collide.hs 335;" f cancelExamineInventory src/Dodge/Item/BackgroundEffect.hs 22;" f capacitor src/Dodge/Item/Ammo.hs 69;" f -cardEightVec src/Dodge/Base/CardinalPoint.hs 17;" f +card8Vec src/Dodge/Base/CardinalPoint.hs 17;" f cardList src/Dodge/Base/CardinalPoint.hs 7;" f cardVec src/Dodge/Base/CardinalPoint.hs 10;" f cardinalBetweenAdj src/Dodge/Base/CardinalPoint.hs 28;" f @@ -2779,7 +2781,7 @@ changeSwapSel src/Dodge/Inventory.hs 134;" f changeSwapWith src/Dodge/Inventory.hs 175;" f charToTuple src/Picture/Base.hs 321;" f charToTupleGrad src/Picture/Text.hs 18;" f -chartreuse src/Color.hs 24;" f +chartreuse src/Color.hs 51;" f chaseCrit src/Dodge/Creature/ChaseCrit.hs 27;" f chaseCritAwarenessUpdate src/Dodge/Creature/Perception.hs 65;" f chaseCritInternal src/Dodge/Humanoid.hs 8;" f @@ -2805,7 +2807,7 @@ checkWallRight src/Dodge/LevelGen/StaticWalls.hs 54;" f checkWallRight src/Dodge/LevelGen/StaticWalls/Deprecated.hs 59;" f chemFuelPouch src/Dodge/Item/Ammo.hs 75;" f chestPQ src/Dodge/Creature/HandPos.hs 124;" f -chooseCursorBorders src/Dodge/Render/List.hs 156;" f +chooseCursorBorders src/Dodge/Render/List.hs 150;" f chooseEquipPosition src/Dodge/Inventory/RBList.hs 41;" f chooseFootSound src/Dodge/Creature/State/WalkCycle.hs 35;" f chooseFreeSite src/Dodge/Inventory/RBList.hs 47;" f @@ -2974,15 +2976,15 @@ createGas src/Dodge/Gas.hs 10;" f createHeadLamp src/Dodge/Euse.hs 58;" f createItemYou src/Dodge/Inventory/Add.hs 62;" f createLightMap src/Render.hs 28;" f -createProjectile src/Dodge/HeldUse.hs 1276;" f -createProjectileR src/Dodge/HeldUse.hs 1225;" f +createProjectile src/Dodge/HeldUse.hs 1268;" f +createProjectileR src/Dodge/HeldUse.hs 1217;" f createShell src/Dodge/Projectile/Create.hs 21;" f createShieldWall src/Dodge/Item/BackgroundEffect.hs 39;" f createUnusedLinkPos src/Dodge/Tree/Shift.hs 124;" f createWall src/Dodge/Wall/Create.hs 8;" f creatureDisplayText src/Dodge/Creature/Picture/Awareness.hs 12;" f -creatureShootLaser src/Dodge/HeldUse.hs 842;" f -creatureShootPulseLaser src/Dodge/HeldUse.hs 873;" f +creatureShootLaser src/Dodge/HeldUse.hs 837;" f +creatureShootPulseLaser src/Dodge/HeldUse.hs 868;" f creatureTurnTo src/Dodge/Creature/Impulse/Movement.hs 68;" f creatureTurnToward src/Dodge/Creature/Impulse/Movement.hs 89;" f creatureTurnTowardDir src/Dodge/Creature/Impulse/Movement.hs 78;" f @@ -3011,7 +3013,7 @@ cutWalls'' src/Dodge/LevelGen/StaticWalls/Deprecated.hs 39;" f cutWallsPoints src/Dodge/LevelGen/StaticWalls.hs 121;" f cutWallsRetry src/Dodge/LevelGen/StaticWalls.hs 39;" f cutWallsWithPoints src/Dodge/LevelGen/StaticWalls.hs 112;" f -cyan src/Color.hs 18;" f +cyan src/Color.hs 45;" f cycleDownEnum src/Dodge/Menu/OptionType.hs 31;" f cycleEnum src/Dodge/Menu/OptionType.hs 26;" f cycleGT src/IntMapHelp.hs 94;" f @@ -3023,7 +3025,7 @@ cylinderIndices src/Shader/Poke.hs 382;" f cylinderOnSeg src/Geometry.hs 122;" f cylinderPoly src/Shape.hs 83;" f cylinderRoundIndices src/Shader/Poke.hs 389;" f -dShadCol src/Dodge/Render/List.hs 222;" f +dShadCol src/Dodge/Render/List.hs 217;" f damMatSideEffect src/Dodge/Material/Damage.hs 20;" f damThingHitWith src/Dodge/Damage.hs 72;" f damToExpBarrel src/Dodge/Barreloid.hs 53;" f @@ -3046,7 +3048,7 @@ damageThingHit src/Dodge/Bullet.hs 180;" f damageTypeThreshold src/Dodge/Placement/Instance/Sensor.hs 33;" f damageWall src/Dodge/Wall/Damage.hs 29;" f damsToExpBarrel src/Dodge/Barreloid.hs 50;" f -dark src/Color.hs 108;" f +dark src/Color.hs 135;" f darkenBackground src/Dodge/Render/MenuScreen.hs 46;" f dbArg src/Dodge/Base.hs 165;" f dbArgChain src/Dodge/Base.hs 170;" f @@ -3121,8 +3123,8 @@ 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 +defaultLDP src/Dodge/ListDisplayParams.hs 19;" 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 @@ -3155,14 +3157,14 @@ detV src/Geometry/Vector.hs 94;" f detector src/Dodge/Item/Held/Utility.hs 27;" f detectorColor src/Dodge/Item/Draw/SPic.hs 432;" f detectorInfo src/Dodge/Item/Info.hs 224;" f -determineProjectileTracking src/Dodge/HeldUse.hs 1196;" f +determineProjectileTracking src/Dodge/HeldUse.hs 1188;" f diagonalLinesRect src/Dodge/Room/Foreground.hs 52;" f did src/Dodge/Item/InvSize.hs 54;" f diffAngles src/Geometry.hs 205;" f difference src/Geometry.hs 127;" f digitalLine src/Geometry.hs 285;" f digitalRect src/Geometry.hs 302;" f -dim src/Color.hs 112;" f +dim src/Color.hs 139;" f dirtPoly src/Dodge/Room/RoadBlock.hs 74;" f disconnectItemS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 688;" f displayConfig src/Dodge/Menu.hs 225;" f @@ -3174,6 +3176,8 @@ displayPulse src/Dodge/Inventory/SelectionList.hs 182;" f displayTerminalLineString src/Dodge/Update.hs 486;" f dist src/Geometry/Vector.hs 185;" f dist3 src/Geometry/Vector3D.hs 101;" f +distributeAmmoToItem src/Dodge/WorldEffect.hs 148;" f +distributeAmmoToYou src/Dodge/WorldEffect.hs 136;" f distributerRoom src/Dodge/Room/Room.hs 415;" f divTo src/Geometry/Zone.hs 8;" f divideCircle src/Geometry.hs 321;" f @@ -3190,15 +3194,15 @@ doBlBl src/Dodge/BlBl.hs 5;" f doBounce src/Dodge/Base/Collide.hs 67;" f doButtonEvent src/Dodge/Button/Event.hs 9;" f doConLoop src/Loop.hs 138;" f -doConLoop' src/Loop.hs 227;" f +doConLoop' src/Loop.hs 230;" f doCrAc src/Dodge/CreatureEffect.hs 38;" f doCrBl src/Dodge/CreatureEffect.hs 30;" f 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 93;" f -doDeathTriggers src/Dodge/WorldEffect.hs 86;" f +doDeathToggle src/Dodge/WorldEffect.hs 98;" f +doDeathTriggers src/Dodge/WorldEffect.hs 91;" f doDebugGet src/Dodge/Debug.hs 98;" f doDebugPut src/Dodge/Debug.hs 87;" f doDebugTest src/Dodge/Update/Input/DebugTest.hs 23;" f @@ -3215,7 +3219,7 @@ doDrag src/Dodge/Update/Input/InGame.hs 127;" f doDrawing src/Dodge/Render.hs 33;" f doDrawing' src/Dodge/Render.hs 44;" f doFloatFloat src/Dodge/FloatFunction.hs 5;" f -doGenFloat src/Dodge/HeldUse.hs 1158;" f +doGenFloat src/Dodge/HeldUse.hs 1150;" f doGravityPU src/Dodge/Projectile/Update.hs 35;" f doHeldUseEffect src/Dodge/HeldUse.hs 351;" f doInPlacements src/Dodge/Layout.hs 87;" f @@ -3241,12 +3245,12 @@ 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 204;" f -doTmWdWd src/Dodge/WorldEffect.hs 96;" f +doTmWdWd src/Dodge/WorldEffect.hs 101;" 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 29;" f +doWdWd src/Dodge/WorldEffect.hs 34;" f doWorldEvents src/Dodge/Update.hs 430;" f doWorldPos src/Dodge/WorldPos.hs 10;" f door src/Dodge/Room/Door.hs 13;" f @@ -3280,7 +3284,7 @@ drawCircCollisionTest src/Dodge/Debug/Picture.hs 118;" f drawCliff src/Dodge/Render/ShapePicture.hs 57;" f drawCollisionTest src/Dodge/Debug/Picture.hs 103;" f drawCombFilter src/Dodge/Render/Picture.hs 267;" f -drawCombineInventory src/Dodge/Render/HUD.hs 183;" f +drawCombineInventory src/Dodge/Render/HUD.hs 188;" f drawConcurrentMessage src/Dodge/Render/Picture.hs 72;" f drawCoord src/Dodge/Debug/Picture.hs 386;" f drawCountMod src/Shader.hs 20;" f @@ -3290,7 +3294,7 @@ drawCreature src/Dodge/Render/ShapePicture.hs 73;" f drawCreatureDisplayTexts src/Dodge/Debug/Picture.hs 199;" f drawCross src/Dodge/Render/Label.hs 24;" f drawCrossCol src/Dodge/Render/Label.hs 21;" f -drawCursorAt src/Dodge/Render/List.hs 72;" f +drawCursorAt src/Dodge/Render/List.hs 79;" f drawCursorByTerminalStatus src/Dodge/Render/Picture.hs 137;" f drawDDATest src/Dodge/Debug/Picture.hs 303;" f drawDamSensor src/Dodge/Machine/Draw.hs 36;" f @@ -3299,8 +3303,8 @@ drawDrag src/Dodge/Render/Picture.hs 198;" f drawDragDrop src/Dodge/Render/Picture.hs 227;" f drawDragPickup src/Dodge/Render/Picture.hs 236;" f drawDragSelect src/Dodge/Render/Picture.hs 195;" f -drawDragSelected src/Dodge/Render/HUD.hs 137;" f -drawDragSelecting src/Dodge/Render/HUD.hs 154;" f +drawDragSelected src/Dodge/Render/HUD.hs 141;" f +drawDragSelecting src/Dodge/Render/HUD.hs 159;" f drawEmptySet src/Dodge/Render/Picture.hs 151;" f drawEnergyBall src/Dodge/EnergyBall/Draw.hs 7;" f drawEquipment src/Dodge/Creature/Picture.hs 128;" f @@ -3312,33 +3316,33 @@ drawFlamelet src/Dodge/EnergyBall/Draw.hs 34;" f drawForceField src/Dodge/Wall/Draw.hs 15;" f drawGapPlus src/Dodge/Render/Picture.hs 278;" f drawGib src/Dodge/Prop/Draw.hs 26;" f -drawHUD src/Dodge/Render/HUD.hs 52;" f +drawHUD src/Dodge/Render/HUD.hs 53;" f 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 +drawInventory src/Dodge/Render/HUD.hs 60;" 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 +drawLabelledList src/Dodge/Render/List.hs 207;" f drawLaser src/Dodge/Laser/Update.hs 29;" f drawLightSource src/Dodge/LightSource/Draw.hs 7;" f drawLinearShockwave src/Dodge/LinearShockwave/Draw.hs 10;" f -drawList src/Dodge/Render/List.hs 209;" f -drawListElement src/Dodge/Render/List.hs 187;" f -drawListYgapScaleYoff src/Dodge/Render/List.hs 96;" f -drawListYoff src/Dodge/Render/List.hs 93;" f +drawList src/Dodge/Render/List.hs 204;" f +drawListElement src/Dodge/Render/List.hs 181;" f +drawListYgapScaleYoff src/Dodge/Render/List.hs 98;" f +drawListYoff src/Dodge/Render/List.hs 95;" f drawLoadingScreen src/Dodge/Render/MenuScreen.hs 24;" f drawMachine src/Dodge/Machine/Draw.hs 17;" f drawMapperAR src/Dodge/Targeting/Draw.hs 12;" f -drawMapperInventory src/Dodge/Render/HUD.hs 174;" f +drawMapperInventory src/Dodge/Render/HUD.hs 179;" f drawMenuClick src/Dodge/Render/Picture.hs 166;" f drawMenuCursor src/Dodge/Render/Picture.hs 178;" f drawMenuOrHUD src/Dodge/Render/Picture.hs 67;" f drawMenuScreen src/Dodge/Render/MenuScreen.hs 18;" f drawMouseCursor src/Dodge/Render/Picture.hs 83;" f -drawMouseOver src/Dodge/Render/HUD.hs 110;" f +drawMouseOver src/Dodge/Render/HUD.hs 112;" f drawMousePosition src/Dodge/Debug/Picture.hs 376;" f drawOptions src/Dodge/Render/MenuScreen.hs 36;" f drawPathBetween src/Dodge/Debug/Picture.hs 202;" f @@ -3353,12 +3357,12 @@ 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 +drawRootCursor src/Dodge/Render/HUD.hs 79;" f drawSSCursor src/Dodge/SelectionSections/Draw.hs 31;" f -drawSSMultiCursor src/Dodge/SelectionSections/Draw.hs 42;" f +drawSSMultiCursor src/Dodge/SelectionSections/Draw.hs 37;" 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 +drawSelectionListBackground src/Dodge/Render/List.hs 59;" f drawSelectionSections src/Dodge/SelectionSections/Draw.hs 16;" f drawShaderLay src/Shader.hs 9;" f drawShadowsByImportance src/Dodge/Shadows.hs 8;" f @@ -3366,15 +3370,16 @@ drawShell src/Dodge/Projectile/Draw.hs 22;" f drawShockwave src/Dodge/Shockwave/Draw.hs 6;" f drawSpark src/Dodge/Spark/Draw.hs 7;" f drawStaticBall src/Dodge/EnergyBall/Draw.hs 28;" f -drawSubInventory src/Dodge/Render/HUD.hs 164;" f +drawSubInventory src/Dodge/Render/HUD.hs 170;" 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 362;" f +drawTerminalCursorLink src/Dodge/Render/HUD.hs 389;" f +drawTerminalDisplay src/Dodge/Render/HUD.hs 356;" f drawTeslaArc src/Dodge/Tesla/Draw.hs 9;" f drawText src/Picture/Base.hs 224;" f drawTitle src/Dodge/Render/MenuScreen.hs 49;" f -drawTitleBackground src/Dodge/Render/List.hs 45;" f +drawTitleBackground src/Dodge/Render/List.hs 52;" f drawTractorBeam src/Dodge/TractorBeam/Draw.hs 7;" f drawTurret src/Dodge/Machine/Draw.hs 92;" f drawVerticalDoubleArrow src/Dodge/Render/Picture.hs 210;" f @@ -3391,7 +3396,7 @@ drawZoneCirc src/Dodge/Debug/Picture.hs 292;" f drawZoneCol src/Dodge/Debug/Picture.hs 149;" f drawZoneNearPointCursor src/Dodge/Debug/Picture.hs 285;" f dropAll src/Dodge/Creature/Update.hs 106;" f -dropInventoryPath src/Dodge/HeldUse.hs 1351;" f +dropInventoryPath src/Dodge/HeldUse.hs 1343;" f dropItem src/Dodge/Creature/Action.hs 155;" f dropper src/Dodge/Item/Scope.hs 76;" f drumMag src/Dodge/Item/Ammo.hs 34;" f @@ -3461,7 +3466,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 137;" f +exitTerminalSubInv src/Dodge/WorldEffect.hs 168;" f expandLine src/Dodge/Picture.hs 30;" f expandPolyBy src/Dodge/LevelGen/StaticWalls.hs 91;" f expandPolyByFixed src/Dodge/LevelGen/StaticWalls.hs 97;" f @@ -3471,14 +3476,14 @@ expireAndDamage src/Dodge/Bullet.hs 188;" f explodeShell src/Dodge/Projectile/Update.hs 229;" f explosionS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 584;" f explosiveBarrel src/Dodge/Creature/Inanimate.hs 25;" f -extTrigLitPos src/Dodge/Placement/Instance/Button.hs 84;" f +extTrigLitPos src/Dodge/Placement/Instance/Button.hs 80;" f extendConeToScreenEdge src/Dodge/Debug/Picture.hs 82;" f extraPics src/Dodge/Render/ShapePicture.hs 103;" f extraWeaponLinks src/Dodge/Item/Grammar.hs 90;" f extraWeaponLinksBelow src/Dodge/Item/Grammar.hs 99;" f extractRoomPos src/Dodge/RoomPos.hs 6;" f faceEdges src/Polyhedra.hs 65;" f -facesToVF src/Polyhedra/Geodesic.hs 69;" f +facesToVF src/Polyhedra/Geodesic.hs 70;" f farWallDistDirection src/Dodge/Update/Camera.hs 248;" f fdiv src/ShortShow.hs 41;" f feet src/Dodge/Creature/Picture.hs 51;" f @@ -3569,7 +3574,7 @@ 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 799;" f -gasType src/Dodge/HeldUse.hs 1115;" f +gasType src/Dodge/HeldUse.hs 1107;" f gassesNearPoint src/Dodge/Zoning/Cloud.hs 12;" f generateGenParams src/Dodge/LevelGen/LevelStructure.hs 23;" f generateGraphs src/Dodge/Menu.hs 149;" f @@ -3583,11 +3588,11 @@ geometryUnitTests test/Spec.hs 22;" f geqConstr src/SameConstr.hs 21;" f getAimZoom src/Dodge/Update/Camera.hs 150;" f getAmmoLinks src/Dodge/Item/Grammar.hs 104;" f -getAttachedSFLink src/Dodge/HeldUse.hs 788;" f +getAttachedSFLink src/Dodge/HeldUse.hs 783;" f getAutoSpringLinks src/Dodge/Item/Grammar.hs 85;" f getAvailableListLines src/Dodge/SelectionList.hs 10;" f getBulHitDams src/Dodge/Bullet.hs 173;" f -getBulletType src/Dodge/HeldUse.hs 910;" f +getBulletType src/Dodge/HeldUse.hs 906;" f getCloseObj src/Dodge/Update/Input/InGame.hs 533;" f getCommand src/Dodge/Terminal.hs 52;" f getCommands src/Dodge/Terminal.hs 49;" f @@ -3597,7 +3602,7 @@ 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 +getGrenadeHitEffect src/Dodge/HeldUse.hs 1256;" f getInventoryPath src/Dodge/Inventory/Path.hs 9;" f getItemValue src/Dodge/Inventory/SelectionList.hs 150;" f getLaserColor src/Dodge/HeldUse.hs 707;" f @@ -3607,11 +3612,11 @@ getLinksOfType src/Dodge/RoomLink.hs 41;" f getMaxLinesTM src/Dodge/Terminal/Type.hs 6;" f getMenuMouseContext src/Dodge/Update.hs 393;" f getNodePos src/Dodge/Path.hs 34;" f -getPJStabiliser src/Dodge/HeldUse.hs 1251;" f +getPJStabiliser src/Dodge/HeldUse.hs 1243;" f getPretty src/AesonHelp.hs 8;" f getPromptTM src/Dodge/Terminal/Type.hs 3;" f getRoomsFromInts src/Dodge/Room/Tutorial.hs 328;" f -getRootItemBounds src/Dodge/Render/HUD.hs 101;" f +getRootItemBounds src/Dodge/Render/HUD.hs 103;" f getRootItemInvID src/Dodge/Inventory/Location.hs 35;" f getSelectedCloseObj src/Dodge/SelectedClose.hs 14;" f getSmoothScrollValue src/Dodge/SmoothScroll.hs 21;" f @@ -3647,8 +3652,8 @@ graphToEdges src/Dodge/Graph.hs 35;" f graphToIncidence src/Dodge/Graph.hs 40;" f graphicsMenu src/Dodge/Menu.hs 185;" f graphicsMenuOptions src/Dodge/Menu.hs 188;" f -green src/Color.hs 15;" f -greyN src/Color.hs 124;" f +green src/Color.hs 42;" f +greyN src/Color.hs 151;" f gridInPolygon src/Grid.hs 10;" f gridPoints' src/Grid.hs 37;" f gridPointsOff src/Grid.hs 32;" f @@ -3702,12 +3707,12 @@ heldEffect src/Dodge/HeldUse.hs 60;" f heldEffectMuzzles src/Dodge/HeldUse.hs 131;" f heldHandlePos src/Dodge/Item/HeldOffset.hs 89;" f heldInfo src/Dodge/Item/Info.hs 92;" f -heldItemAmmoSlots src/Dodge/Item/AmmoSlots.hs 19;" f +heldItemAmmoSlots src/Dodge/Item/AmmoSlots.hs 20;" f heldItemBulkiness src/Dodge/Creature/YourControl.hs 194;" f heldItemInvLock src/Dodge/HeldUse.hs 442;" f -heldItemMuzVel src/Dodge/HeldUse.hs 1000;" f +heldItemMuzVel src/Dodge/HeldUse.hs 992;" f heldItemMuzzles src/Dodge/HeldUse.hs 176;" f -heldItemRifling src/Dodge/HeldUse.hs 1043;" f +heldItemRifling src/Dodge/HeldUse.hs 1035;" f heldItemSPic src/Dodge/Item/Draw/SPic.hs 234;" f heldItemWeight src/Dodge/Creature/Statistics.hs 80;" f heldPositionInfo src/Dodge/Item/Info.hs 240;" f @@ -3794,25 +3799,25 @@ interweave src/Justify.hs 17;" f introScan src/Dodge/Item/Scope.hs 57;" f introScanValue src/Dodge/Inventory/SelectionList.hs 83;" f intsToPos src/Dodge/Room/Modify/Girder.hs 160;" f -invAdj src/Dodge/Item/Grammar.hs 235;" f -invCursorParams src/Dodge/ListDisplayParams.hs 37;" f +invAdj src/Dodge/Item/Grammar.hs 236;" f +invCursorParams src/Dodge/ListDisplayParams.hs 35;" f invDP src/Dodge/ListDisplayParams.hs 31;" f -invDT src/Dodge/Item/Grammar.hs 216;" f -invDT' src/Dodge/Item/Grammar.hs 221;" f +invDT src/Dodge/Item/Grammar.hs 217;" f +invDT' src/Dodge/Item/Grammar.hs 222;" 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 +invHead src/Dodge/Render/HUD.hs 413;" f +invIMDT src/Dodge/Item/Grammar.hs 246;" f +invIndents src/Dodge/Item/Grammar.hs 253;" f invItemEffs src/Dodge/Creature/State.hs 63;" f invItemLocUpdate src/Dodge/Creature/State.hs 71;" f -invRootMap src/Dodge/Item/Grammar.hs 226;" f +invRootMap src/Dodge/Item/Grammar.hs 227;" f invSelectionItem src/Dodge/Inventory/SelectionList.hs 32;" f invSetSelection src/Dodge/Inventory.hs 180;" f invSetSelectionPos src/Dodge/Inventory.hs 188;" f invShiftPointBy src/Dodge/ShiftPoint.hs 17;" f invSize src/Dodge/Inventory/CheckSlots.hs 33;" f inventoryX src/Dodge/Creature.hs 111;" f -inverseSelNumPos src/Dodge/SelectionSections.hs 193;" f +inverseSelNumPos src/Dodge/SelectionSections.hs 188;" f inverseSelSecYint src/Dodge/SelectionSections.hs 164;" f inverseSelSecYintXPosCheck src/Dodge/SelectionSections.hs 177;" f inverseShockwaveAt src/Dodge/WorldEvent/Shockwave.hs 42;" f @@ -3860,7 +3865,7 @@ itInvHeight src/Dodge/Item/InvSize.hs 11;" f itUseCondition src/Dodge/ItemUseCondition.hs 6;" f itemAboveAttachables src/Dodge/Item/Grammar.hs 37;" f itemAimStance src/Dodge/Item/AimStance.hs 10;" f -itemAmmoSlots src/Dodge/Item/AmmoSlots.hs 12;" f +itemAmmoSlots src/Dodge/Item/AmmoSlots.hs 13;" f itemBaseName src/Dodge/Item/Display.hs 60;" f itemBaseStance src/Dodge/Item/AimStance.hs 18;" f itemBelowAttachables src/Dodge/Item/Grammar.hs 50;" f @@ -3868,7 +3873,7 @@ itemBlips src/Dodge/RadarSweep.hs 94;" f 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 +itemDetectorEffect src/Dodge/HeldUse.hs 789;" f itemDisplay src/Dodge/Inventory/SelectionList.hs 53;" f itemEquipPict src/Dodge/Item/Draw.hs 18;" f itemExternalValue src/Dodge/Inventory/SelectionList.hs 88;" f @@ -3907,7 +3912,7 @@ itmEquipSiteInfo src/Dodge/Item/Info.hs 250;" f itmSpaceInfo src/Dodge/Item/Info.hs 25;" f itmUsageInfo src/Dodge/Item/Info.hs 230;" f jShape src/Dodge/Placement/Instance/LightSource.hs 66;" f -joinItemsInList src/Dodge/Item/Grammar.hs 206;" f +joinItemsInList src/Dodge/Item/Grammar.hs 207;" f joystick src/Dodge/Item/Scope.hs 149;" f jps0' src/Dodge/LevelGen/PlacementHelper.hs 61;" f jps0PushPS src/Dodge/LevelGen/PlacementHelper.hs 64;" f @@ -3927,8 +3932,9 @@ keyPic src/Dodge/Item/Draw/SPic.hs 438;" f keyholeCorridor src/Dodge/Room/Corridor.hs 40;" f knifeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 676;" f lChasm src/Dodge/Room/Tutorial.hs 138;" f -lConnect src/Dodge/Render/Connectors.hs 42;" f -lConnectMulti src/Dodge/Render/Connectors.hs 46;" f +lConnect src/Dodge/Render/Connectors.hs 43;" f +lConnectCol src/Dodge/Render/Connectors.hs 46;" f +lConnectMulti src/Dodge/Render/Connectors.hs 51;" 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 @@ -3956,7 +3962,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 131;" f +leaveResetQuitTerminal src/Dodge/WorldEffect.hs 162;" f led src/Dodge/Item/Held/Utility.hs 23;" f left src/DoubleStack.hs 16;" f leftChildList src/Dodge/Item/Grammar.hs 185;" f @@ -3969,12 +3975,12 @@ leftWristPQ src/Dodge/Creature/HandPos.hs 81;" f legsSPic src/Dodge/Item/Draw/SPic.hs 447;" f lerpP2A src/Dodge/ShiftPoint.hs 14;" f liShape src/Dodge/Placement/Instance/LightSource.hs 79;" f -light src/Color.hs 104;" f +light src/Color.hs 131;" f lightSensByDoor src/Dodge/Room/LasTurret.hs 60;" f lightSensInsideDoor src/Dodge/Room/LasTurret.hs 48;" f lightSensor src/Dodge/Placement/Instance/Sensor.hs 40;" f lightsToRender src/Dodge/Render/Lights.hs 14;" f -lightx4 src/Color.hs 145;" f +lightx4 src/Color.hs 155;" f linGrad src/Geometry/Intersect.hs 241;" f line src/Picture/Base.hs 230;" f lineCol src/Picture/Base.hs 234;" f @@ -3989,12 +3995,12 @@ linksDAGToPath src/Dodge/Room/Path.hs 13;" f linksOnPath src/Dodge/Room/CheckConsistency.hs 6;" f listConfig src/Dodge/Menu.hs 234;" f listControls src/Dodge/Menu.hs 246;" f -listCursorChooseBorderScale src/Dodge/Render/List.hs 135;" f +listCursorChooseBorderScale src/Dodge/Render/List.hs 129;" f listGuard src/Dodge/Creature/ReaderUpdate.hs 196;" f listSelectionColorPicture src/Dodge/DisplayInventory.hs 302;" f litCorridor90 src/Dodge/Room/RoadBlock.hs 26;" f lmt src/MatrixHelper.hs 53;" f -lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 389;" f +lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 402;" f loadDodgeConfig src/Dodge/Config.hs 30;" f loadMusic src/Dodge/SoundLogic/LoadSound.hs 30;" f loadMuzzle src/Dodge/HeldUse.hs 630;" f @@ -4044,18 +4050,19 @@ lsPosCol src/Dodge/LightSource.hs 27;" f lsPosRad src/Dodge/LightSource.hs 18;" f ltAutoCrit src/Dodge/Creature/LtAutoCrit.hs 12;" f m src/ShortShow.hs 48;" f -mAT src/Dodge/Item/MagAmmoType.hs 19;" f +mAT src/Dodge/Item/MagAmmoType.hs 20;" f machineAddSound src/Dodge/Machine.hs 50;" f machinePistol src/Dodge/Item/Held/Stick.hs 52;" f machineUpdateDeathEff src/Dodge/Machine.hs 35;" f machineUpdateLiveDieEff src/Dodge/Machine.hs 17;" f -magAmmoParams src/Dodge/HeldUse.hs 931;" f -magAmmoType src/Dodge/Item/MagAmmoType.hs 11;" f +magAmmoParams src/Dodge/HeldUse.hs 927;" f +magAmmoType src/Dodge/Item/MagAmmoType.hs 12;" f +magMax src/Dodge/Item/MagAmmoType.hs 29;" f magShield src/Dodge/Item/Equipment.hs 27;" f magV src/Geometry/Vector.hs 172;" f magV3 src/Geometry/Vector3D.hs 78;" f magazineCombinations src/Dodge/Combine/Combinations.hs 43;" f -magenta src/Color.hs 19;" f +magenta src/Color.hs 46;" f main appDodge/Main.hs 28;" f main bench/Bench.hs 15;" f main test/Spec.hs 12;" f @@ -4063,7 +4070,7 @@ makeArc src/Picture/Base.hs 158;" f makeAttach src/Dodge/Item/Attach.hs 10;" f makeBlip src/Dodge/RadarSweep.hs 70;" f makeBlockDebris src/Dodge/Block/Debris.hs 36;" f -makeBullet src/Dodge/HeldUse.hs 979;" f +makeBullet src/Dodge/HeldUse.hs 971;" f makeButton src/Dodge/LevelGen/Switch.hs 16;" f makeCloudAt src/Dodge/WorldEvent/Cloud.hs 7;" f makeColorTermLine src/Dodge/Terminal.hs 111;" f @@ -4088,7 +4095,7 @@ makePathBetween src/Dodge/Path.hs 63;" f makePathBetweenPs src/Dodge/Path.hs 87;" f makePathUsing src/Dodge/Path.hs 51;" f makePoisonExplosionAt src/Dodge/WorldEvent/Explosion.hs 24;" f -makeSelectionListPictures src/Dodge/Render/List.hs 66;" f +makeSelectionListPictures src/Dodge/Render/List.hs 73;" f makeShaderProgram src/Shader/Compile.hs 74;" f makeShaderVBO src/Shader/Compile.hs 24;" f makeShockwaveAt src/Dodge/WorldEvent/Shockwave.hs 11;" f @@ -4138,11 +4145,11 @@ mcProxSensorUpdate src/Dodge/Machine/Update.hs 141;" f mcProxTest src/Dodge/Machine/Update.hs 205;" f mcProximitySensorUpdate src/Dodge/Machine/Update.hs 173;" f mcSPic src/Dodge/Render/ShapePicture.hs 134;" f -mcShootAuto src/Dodge/HeldUse.hs 1169;" f -mcShootLaser src/Dodge/HeldUse.hs 1162;" f +mcShootAuto src/Dodge/HeldUse.hs 1161;" f +mcShootLaser src/Dodge/HeldUse.hs 1154;" f mcTriggerVal src/Dodge/Machine/Update.hs 112;" f mcTypeUpdate src/Dodge/Machine/Update.hs 32;" f -mcUseHeld src/Dodge/HeldUse.hs 1086;" f +mcUseHeld src/Dodge/HeldUse.hs 1078;" f mcUseItem src/Dodge/Machine/Update.hs 91;" f megaBattery src/Dodge/Item/Ammo.hs 55;" f megaShellMag src/Dodge/Item/Ammo.hs 44;" f @@ -4154,7 +4161,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 54;" f +menuLDP src/Dodge/ListDisplayParams.hs 51;" f menuOptionToSelectionItem src/Dodge/Menu/Option.hs 91;" f merge src/ListHelp.hs 84;" f mergeBy src/ListHelp.hs 87;" f @@ -4192,9 +4199,9 @@ mirrorXAxis src/Geometry/Polygon.hs 68;" f mirrorxz src/Picture/Base.hs 339;" f mirroryz src/Picture/Base.hs 344;" f missileLaunchS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 714;" f -mixColors src/Color.hs 86;" f -mixColorsFrac src/Color.hs 82;" f -mixColorsLinear src/Color.hs 95;" f +mixColors src/Color.hs 113;" f +mixColorsFrac src/Color.hs 109;" f +mixColorsLinear src/Color.hs 122;" f mkCloudCloudLike src/Shader/Poke/Cloud.hs 21;" f mkCustomLenses src/ThirdPartyLens.hs 7;" f mkDustCloudLike src/Shader/Poke/Cloud.hs 27;" f @@ -4233,18 +4240,18 @@ multiLookupTrie src/SimpleTrie.hs 57;" f multiLookupTrieI src/SimpleTrie.hs 66;" f muout src/Dodge/RoomLink.hs 144;" f muzFlareAt src/Dodge/HeldUse.hs 678;" f -muzzlePos src/Dodge/HeldUse.hs 769;" f -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 +muzzlePos src/Dodge/HeldUse.hs 764;" f +muzzleRandPos src/Dodge/HeldUse.hs 773;" f +mvButton src/Dodge/Placement/PlaceSpot.hs 175;" f +mvCr src/Dodge/Placement/PlaceSpot.hs 178;" f +mvFS src/Dodge/Placement/PlaceSpot.hs 184;" f mvGust src/Dodge/Update.hs 790;" f -mvLS src/Dodge/Placement/PlaceSpot.hs 220;" f +mvLS src/Dodge/Placement/PlaceSpot.hs 219;" f mvPointAlongAtSpeed src/Dodge/Base.hs 121;" f mvPointMeleeTarg src/Dodge/Creature/Boid.hs 327;" f mvPointToward src/Dodge/Base.hs 136;" f mvPointTowardAtSpeed src/Dodge/Base.hs 105;" f -mvProp src/Dodge/Placement/PlaceSpot.hs 173;" f +mvProp src/Dodge/Placement/PlaceSpot.hs 172;" f myIntersectLineLine src/Geometry/Intersect.hs 198;" f myIntersectSegSeg src/Geometry/Intersect.hs 176;" f myParams src/Dodge/Combine/Graph.hs 101;" f @@ -4274,12 +4281,11 @@ normalGait src/Dodge/Creature/State/WalkCycle.hs 30;" f normalTo8 src/Shader/Poke.hs 466;" f normalizeAngle src/Geometry/Vector.hs 128;" f normalizeAnglePi src/Dodge/Base.hs 154;" f -normalizeColor src/Color.hs 76;" f +normalizeColor src/Color.hs 103;" f normalizeV src/Geometry/Vector.hs 44;" f normalizeV3 src/Geometry/Vector3D.hs 84;" f notLink src/Dodge/Data/Room.hs 72;" f nulgate src/Dodge/Item/Scope.hs 95;" f -numColor src/Color.hs 128;" f numDrawableVertices src/Shader/Parameters.hs 34;" f numGLuint src/Shader/Parameters.hs 29;" f numLayers src/Picture/Data.hs 27;" f @@ -4305,7 +4311,7 @@ optionValueOffset src/Dodge/Menu/Option.hs 86;" f optionsOptions src/Dodge/Menu.hs 115;" f optionsToSelections src/Dodge/Menu/Option.hs 47;" f orRegex src/Dodge/DisplayInventory.hs 81;" f -orange src/Color.hs 25;" f +orange src/Color.hs 52;" f orderAround3 src/Geometry/Vector3D.hs 105;" f orderAroundFirst src/Geometry/Polygon.hs 120;" f orderAroundFirstReverse src/Geometry/Polygon.hs 116;" f @@ -4341,7 +4347,7 @@ pairPolyPointsIntersect src/Geometry/ConvexPoly.hs 68;" f pairsToIncGraph src/Dodge/Path.hs 94;" f pairsToIncidence src/Dodge/Graph.hs 20;" f pairsToSCC src/Dodge/Graph.hs 32;" f -paletteToColor src/Color.hs 58;" f +paletteToColor src/Color.hs 85;" f parseItem src/Dodge/Debug/Terminal.hs 62;" f parseNum src/Dodge/Debug/Terminal.hs 77;" f passthroughLockKeyLists src/Dodge/Floor.hs 120;" f @@ -4383,20 +4389,20 @@ pjRemoteSetDirection src/Dodge/Projectile/Update.hs 173;" f plBlock src/Dodge/Placement/PlaceSpot/Block.hs 24;" f plDoor src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 12;" f plLineBlock src/Dodge/Placement/PlaceSpot/Block.hs 57;" f -plMachine src/Dodge/Placement/PlaceSpot.hs 188;" f +plMachine src/Dodge/Placement/PlaceSpot.hs 187;" f plNew src/Dodge/Base/NewID.hs 19;" f plNewID src/Dodge/Base/NewID.hs 7;" f plNewUpID src/Dodge/Base/NewID.hs 13;" f plNewUsing src/Dodge/Base/NewID.hs 27;" f plRRpt src/Dodge/LevelGen/PlacementHelper.hs 33;" f -placeChasm src/Dodge/Placement/PlaceSpot.hs 154;" f -placeMachineWalls src/Dodge/Placement/PlaceSpot.hs 215;" f +placeChasm src/Dodge/Placement/PlaceSpot.hs 153;" f +placeMachineWalls src/Dodge/Placement/PlaceSpot.hs 214;" f placePlainPSSpot src/Dodge/Placement/PlaceSpot.hs 42;" f placeSpot src/Dodge/Placement/PlaceSpot.hs 34;" f -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 +placeSpotID src/Dodge/Placement/PlaceSpot.hs 103;" f +placeSpotRoomRand src/Dodge/Placement/PlaceSpot.hs 88;" f +placeSpotUsingLink src/Dodge/Placement/PlaceSpot.hs 66;" f +placeWallPoly src/Dodge/Placement/PlaceSpot.hs 162;" f plainRegex src/Dodge/DisplayInventory.hs 190;" f playIfFree src/Sound.hs 138;" f playPositionalSoundQueue src/Sound.hs 146;" f @@ -4539,8 +4545,8 @@ 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 +putLitButOnPosExtTrig src/Dodge/Placement/Instance/Button.hs 98;" f +putLitButOnPosExtTrig' src/Dodge/Placement/Instance/Button.hs 101;" 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 @@ -4608,7 +4614,7 @@ rectVV src/Geometry/Polygon.hs 40;" f rectWH src/Geometry/Polygon.hs 19;" f rectXH src/Geometry/Polygon.hs 34;" f rectXY src/Geometry/Polygon.hs 37;" f -red src/Color.hs 14;" f +red src/Color.hs 41;" f reduceLocDT src/Dodge/DoubleTree.hs 398;" f reduceLocLDT src/Dodge/DoubleTree.hs 393;" f reflVelWall src/Dodge/Base/Wall.hs 24;" f @@ -4631,7 +4637,7 @@ rememberSounds src/Dodge/Creature/Perception.hs 176;" f remoteDetonator src/Dodge/Item/Scope.hs 144;" f remoteScreen src/Dodge/Item/Scope.hs 139;" f removeAimPosture src/Dodge/Creature/YourControl.hs 159;" f -removeAmmoFromMag src/Dodge/HeldUse.hs 907;" f +removeAmmoFromMag src/Dodge/HeldUse.hs 902;" f removeDot src/ShortShow.hs 44;" f removeInverseWalls src/Dodge/LevelGen/StaticWalls.hs 25;" f removeLights src/Dodge/Room/Tutorial.hs 247;" f @@ -4639,18 +4645,18 @@ removeShieldWall src/Dodge/Item/BackgroundEffect.hs 57;" f removeWallsInPolygon src/Dodge/LevelGen/StaticWalls.hs 182;" f renderDataResizeUpdate src/Preload/Update.hs 27;" f renderFlatLighting src/Render.hs 104;" f -renderInfoListAt src/Dodge/Render/InfoBox.hs 17;" f -renderInfoListsAt src/Dodge/Render/InfoBox.hs 44;" f +renderInfoListAt src/Dodge/Render/InfoBox.hs 18;" f +renderInfoListsAt src/Dodge/Render/InfoBox.hs 45;" f renderLayer src/Render.hs 224;" f renderLightingNoShadows src/Render.hs 51;" f -renderListAt src/Dodge/Render/List.hs 192;" f +renderListAt src/Dodge/Render/List.hs 186;" f renderShadows src/Render.hs 119;" f replaceNullWith src/Dodge/Creature/ReaderUpdate.hs 168;" f 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 125;" f +resetTerminal src/Dodge/WorldEffect.hs 156;" f resizeFBOTO src/Framebuffer/Update.hs 185;" f resizeFBOTO' src/Framebuffer/Update.hs 202;" f resizeFBOTO2 src/Framebuffer/Update.hs 104;" f @@ -4708,12 +4714,12 @@ roomPillarsPassage src/Dodge/Room/Pillar.hs 93;" f roomPillarsSquare src/Dodge/Room/Pillar.hs 49;" f roomRect src/Dodge/Room/Procedural.hs 42;" f roomRectAutoLinks src/Dodge/Room/Procedural.hs 119;" f -roomShuriken src/Dodge/Room/Boss.hs 117;" f -roomTwistCross src/Dodge/Room/Boss.hs 148;" f +roomShuriken src/Dodge/Room/Boss.hs 116;" f +roomTwistCross src/Dodge/Room/Boss.hs 147;" f roomsContaining src/Dodge/Room/Containing.hs 20;" f roomsContaining' src/Dodge/Room/Containing.hs 25;" f rootNotrootEff src/Dodge/Item/BackgroundEffect.hs 28;" f -rose src/Color.hs 20;" f +rose src/Color.hs 47;" f rotD src/Padding.hs 44;" f rotMatr src/MatrixHelper.hs 79;" f rotU src/Padding.hs 39;" f @@ -4728,7 +4734,7 @@ rotateSH src/Shape.hs 253;" f rotateSHq src/Shape.hs 162;" f rotateSHx src/Shape.hs 261;" f rotateSP src/ShapePicture.hs 57;" f -rotateTo src/Polyhedra/Geodesic.hs 64;" f +rotateTo src/Polyhedra/Geodesic.hs 65;" f rotateToOverlappingWall src/Dodge/Update/Camera.hs 216;" f rotateToZ src/Quaternion.hs 35;" f rotateV src/Geometry/Vector.hs 106;" f @@ -4796,17 +4802,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 44;" f +secondColumnLDP src/Dodge/ListDisplayParams.hs 42;" 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 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 503;" f +selNumPos src/Dodge/Render/HUD.hs 462;" f +selNumPosCardinal src/Dodge/Render/HUD.hs 479;" f +selSecDrawCursor src/Dodge/Render/List.hs 124;" f +selSecDrawCursorAt src/Dodge/Render/List.hs 107;" f +selSecSelCol src/Dodge/Render/HUD.hs 506;" f selSecSelSize src/Dodge/SelectionSections.hs 143;" f selSecYint src/Dodge/SelectionSections.hs 152;" f selectedItemScroll src/Dodge/Update/Scroll.hs 51;" f @@ -4905,16 +4911,16 @@ shiftRoomShiftBy src/Dodge/Room/Link.hs 81;" f shiftRoomShiftToLink src/Dodge/Room/Link.hs 70;" f shineTargetLaser src/Dodge/Creature/State.hs 201;" f shineTorch src/Dodge/Creature/State.hs 238;" f -shootBullet src/Dodge/HeldUse.hs 973;" f -shootBullets src/Dodge/HeldUse.hs 963;" f +shootBullet src/Dodge/HeldUse.hs 965;" f +shootBullets src/Dodge/HeldUse.hs 959;" f shootFirstMiss src/Dodge/Creature/Volition.hs 34;" f -shootLaser src/Dodge/HeldUse.hs 852;" f -shootPulseBall src/Dodge/HeldUse.hs 893;" f -shootPulseLaser src/Dodge/HeldUse.hs 880;" f +shootLaser src/Dodge/HeldUse.hs 847;" f +shootPulseBall src/Dodge/HeldUse.hs 888;" f +shootPulseLaser src/Dodge/HeldUse.hs 875;" f shootShatter src/Dodge/Item/Weapon/Shatter.hs 12;" f -shootTeslaArc src/Dodge/HeldUse.hs 1186;" f +shootTeslaArc src/Dodge/HeldUse.hs 1178;" f shootTillEmpty src/Dodge/Creature/Volition.hs 19;" f -shootTractorBeam src/Dodge/HeldUse.hs 821;" f +shootTractorBeam src/Dodge/HeldUse.hs 816;" f shootersRoom src/Dodge/Room/Room.hs 332;" f shootersRoom' src/Dodge/Room/Room.hs 299;" f shootersRoom1 src/Dodge/Room/Room.hs 322;" f @@ -4943,7 +4949,7 @@ 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 -singleAmmo src/Dodge/Item/AmmoSlots.hs 62;" f +singleAmmo src/Dodge/Item/AmmoSlots.hs 64;" f singleDT src/Dodge/DoubleTree.hs 10;" f singleLDT src/Dodge/DoubleTree.hs 13;" f singleton src/DoubleStack.hs 11;" f @@ -5041,8 +5047,8 @@ ssScrollMinOnFail src/Dodge/SelectionSections.hs 44;" f ssScrollUsing src/Dodge/SelectionSections.hs 37;" f ssSetCursor src/Dodge/SelectionSections.hs 59;" f ssfold src/FoldableHelp.hs 105;" f -stackPicturesAt src/Dodge/Render/List.hs 99;" f -stackPicturesAtOff src/Dodge/Render/List.hs 102;" f +stackPicturesAt src/Dodge/Render/List.hs 101;" f +stackPicturesAtOff src/Dodge/Render/List.hs 104;" f stackText src/Picture/Base.hs 189;" f stackedInventory src/Dodge/Creature.hs 309;" f startCr src/Dodge/Creature.hs 90;" f @@ -5076,7 +5082,7 @@ strideRot src/Dodge/Item/HeldOffset.hs 71;" f stringToList src/Picture/Base.hs 317;" f stringToListGrad src/Picture/Text.hs 12;" f stripZ src/Geometry/Vector3D.hs 97;" f -subInvX src/Dodge/ListDisplayParams.hs 48;" f +subInvX src/Dodge/ListDisplayParams.hs 45;" f subMap src/TreeHelp.hs 119;" f subZipWith src/Dodge/Placement/Instance/Wall.hs 94;" f succB src/Dodge/Debug.hs 113;" f @@ -5179,18 +5185,18 @@ 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 -tmDistributeAmmo src/Dodge/WorldEffect.hs 112;" f +tmDistributeAmmo src/Dodge/WorldEffect.hs 117;" f tmDistributeLines src/Dodge/Room/Room.hs 449;" f tmUpdate src/Dodge/Update.hs 489;" f toBinary src/Dodge/Inventory/SelectionList.hs 144;" f toBothLnk src/Dodge/RoomLink.hs 136;" f toClosestMultiple src/HelpNum.hs 3;" f -toColor8 src/Color.hs 148;" f +toColor8 src/Color.hs 158;" f toFloatVAs src/Shader/Compile.hs 66;" f toLabel src/Dodge/Cleat.hs 16;" f toMultiset src/Multiset.hs 64;" f toOnward src/Dodge/Tree/Compose.hs 101;" f -toTopLeft src/Dodge/Render/List.hs 226;" f +toTopLeft src/Dodge/Render/List.hs 221;" f toV2 src/Geometry/Data.hs 54;" f toV3 src/Geometry/Data.hs 57;" f toV4 src/Geometry/Data.hs 60;" f @@ -5204,17 +5210,17 @@ 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 51;" f +topInvW src/Dodge/ListDisplayParams.hs 48;" f topPrismEdgeIndices src/Shader/Poke.hs 335;" f topPrismIndices src/Shader/Poke.hs 410;" 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 79;" f +torqueCr src/Dodge/WorldEffect.hs 84;" 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 -tractorBeamAt src/Dodge/HeldUse.hs 833;" f +tractorBeamAt src/Dodge/HeldUse.hs 828;" f tractorGun src/Dodge/Item/Held/BatteryGuns.hs 53;" f tractorGunPic src/Dodge/Item/Draw/SPic.hs 416;" f tractorPullPos src/Dodge/TractorBeam/Update.hs 33;" f @@ -5257,8 +5263,8 @@ triggerDoorRoom src/Dodge/Room/Door.hs 30;" f triggerSwitch src/Dodge/Placement/Instance/Button.hs 47;" f triggerSwitchSPic src/Dodge/Placement/Instance/Button.hs 14;" f triggerSwitchSPicLight src/Dodge/Placement/Instance/Button.hs 31;" f -truncFaces src/Polyhedra/Geodesic.hs 53;" f -truncate src/Polyhedra/Geodesic.hs 38;" f +truncFaces src/Polyhedra/Geodesic.hs 54;" f +truncate src/Polyhedra/Geodesic.hs 39;" f trunkDepth src/TreeHelp.hs 162;" f tryAttachItems src/Dodge/Item/Grammar.hs 34;" f tryClickUse src/Dodge/Creature/YourControl.hs 237;" f @@ -5455,9 +5461,9 @@ upperPrismPolySU src/Shape.hs 110;" f upperPrismPolyTS src/Shape.hs 116;" f upperRounded src/Shape.hs 181;" f useBulletPayload src/Dodge/Bullet.hs 117;" f -useGasParams src/Dodge/HeldUse.hs 1091;" f +useGasParams src/Dodge/HeldUse.hs 1083;" f useHotkey src/Dodge/Creature/YourControl.hs 77;" f -useInventoryPath src/Dodge/HeldUse.hs 1382;" f +useInventoryPath src/Dodge/HeldUse.hs 1374;" f useItem src/Dodge/Creature/Impulse/UseItem.hs 19;" f useItemLoc src/Dodge/Creature/Impulse/UseItem.hs 26;" f useLnkRoomPos src/Dodge/PlacementSpot.hs 255;" f @@ -5465,11 +5471,11 @@ useLoadedAmmo src/Dodge/HeldUse.hs 720;" f useMagShield src/Dodge/Euse.hs 30;" f useNormalCamera src/Dodge/Camera.hs 6;" f usePayload src/Dodge/Payload.hs 18;" f -useRewindGun src/Dodge/HeldUse.hs 1342;" f +useRewindGun src/Dodge/HeldUse.hs 1334;" f useRoomPosCond src/Dodge/PlacementSpot.hs 180;" f useRoomPosRoomCond src/Dodge/PlacementSpot.hs 183;" f -useStopWatch src/Dodge/HeldUse.hs 1323;" f -useTimeScrollGun src/Dodge/HeldUse.hs 1331;" f +useStopWatch src/Dodge/HeldUse.hs 1315;" f +useTimeScrollGun src/Dodge/HeldUse.hs 1323;" f useUnusedLnk src/Dodge/PlacementSpot.hs 171;" f usedRoomInLinkPoss src/Dodge/PlacementSpot.hs 202;" f usedRoomLinkPoss src/Dodge/PlacementSpot.hs 209;" f @@ -5496,13 +5502,13 @@ viewBoundaries src/Dodge/Debug/Picture.hs 331;" f viewClipBounds src/Dodge/Debug/Picture.hs 340;" f viewDistanceFromItems src/Dodge/Update/Camera.hs 201;" f viewTarget src/Dodge/Creature/ReaderUpdate.hs 155;" f -violet src/Color.hs 21;" f +violet src/Color.hs 48;" f visibleWalls src/Dodge/Base/Collide.hs 216;" f visionCheck src/Dodge/Creature/Perception.hs 152;" f vocalizationTest src/Dodge/Creature/Vocalization.hs 42;" f volleyGun src/Dodge/Item/Held/Cane.hs 15;" f volleyGunShape src/Dodge/Item/Draw/SPic.hs 358;" f -walkNozzle src/Dodge/HeldUse.hs 809;" f +walkNozzle src/Dodge/HeldUse.hs 804;" f walkableNodeNear src/Dodge/Path.hs 69;" f wallBlips src/Dodge/RadarSweep.hs 99;" f wallBuffer src/Dodge/WallCreatureCollisions.hs 54;" f @@ -5510,7 +5516,7 @@ wallIsZeroLength src/Dodge/LevelGen/StaticWalls.hs 179;" f wallToSurface src/Dodge/Base/Collide.hs 180;" f wallsFromRooms src/Dodge/Layout.hs 137;" f wallsToDraw src/Dodge/Render/Walls.hs 18;" f -warmupSound src/Dodge/HeldUse.hs 1376;" f +warmupSound src/Dodge/HeldUse.hs 1368;" f warningRooms src/Dodge/Room/Warning.hs 30;" f warp1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 610;" f wasdAim src/Dodge/Creature/YourControl.hs 133;" f @@ -5542,7 +5548,7 @@ whirdownShort4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 530;" f whirdownSmall1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 736;" f whirdownSmall2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 480;" f whirupS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 520;" f -white src/Color.hs 26;" f +white src/Color.hs 53;" f whiteNoiseFadeInS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 764;" f whiteNoiseFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 548;" f wiToFloat src/Dodge/Room/Modify/Girder.hs 168;" f @@ -5550,7 +5556,7 @@ winConfig appDodge/Main.hs 47;" f windowLine src/Dodge/Placement/Instance/Wall.hs 51;" f windowXFloat src/Dodge/Data/Config.hs 72;" f windowYFloat src/Dodge/Data/Config.hs 74;" f -withAlpha src/Color.hs 10;" f +withAlpha src/Color.hs 37;" f withByteString src/Shader/Compile.hs 157;" f wlHitPos src/Dodge/WorldEvent/ThingsHit.hs 145;" f wlIXsNearCirc src/Dodge/Zoning/Wall.hs 32;" f @@ -5590,7 +5596,7 @@ xyV3 src/Geometry/Vector.hs 213;" f xyzV4 src/Geometry/Vector.hs 209;" f yIntercepts src/Dodge/Zoning/Base.hs 78;" f yV2 src/Geometry/Vector.hs 205;" f -yellow src/Color.hs 17;" f +yellow src/Color.hs 44;" f you src/Dodge/Base/You.hs 13;" f youDropItem src/Dodge/Creature/Action.hs 177;" f yourAugmentedItem src/Dodge/Render/HUD.hs 240;" f @@ -5602,9 +5608,9 @@ yourRootItem src/Dodge/Base/You.hs 22;" f yourSelectedItem src/Dodge/Base/You.hs 16;" f yourStatsInfo src/Dodge/Creature/Info.hs 27;" f zChasm src/Dodge/Room/Tutorial.hs 148;" f -zConnect src/Dodge/Render/Connectors.hs 17;" f -zConnectCol src/Dodge/Render/Connectors.hs 28;" f -zConnectColMidX src/Dodge/Render/Connectors.hs 31;" f +zConnect src/Dodge/Render/Connectors.hs 18;" f +zConnectCol src/Dodge/Render/Connectors.hs 29;" f +zConnectColMidX src/Dodge/Render/Connectors.hs 32;" f zeroZ src/Geometry/Vector.hs 9;" f zipArcs src/Dodge/Tesla.hs 52;" f zipCount src/Dodge/Tree/Shift.hs 136;" f