From 5ccbfa1f919e3420d1c5631ab829c64f186c4b4d Mon Sep 17 00:00:00 2001 From: justin Date: Tue, 19 Aug 2025 18:01:23 +0100 Subject: [PATCH] Cancel terminal display if destroyed while displaying --- src/Dodge/Combine.hs | 4 +- src/Dodge/Data/SelectionList.hs | 12 +- src/Dodge/DisplayInventory.hs | 11 +- src/Dodge/Inventory/SelectionList.hs | 12 +- src/Dodge/Menu/Option.hs | 4 +- src/Dodge/Render/HUD.hs | 29 ++-- src/Dodge/Update/Input/InGame.hs | 3 +- src/Dodge/Update/Input/ScreenLayer.hs | 4 +- src/Dodge/WorldEffect.hs | 13 +- tags | 192 ++++++++++++-------------- 10 files changed, 135 insertions(+), 149 deletions(-) diff --git a/src/Dodge/Combine.hs b/src/Dodge/Combine.hs index b6bf8f5ac..8f6e6e70f 100644 --- a/src/Dodge/Combine.hs +++ b/src/Dodge/Combine.hs @@ -21,14 +21,14 @@ combineList :: World -> [SelectionItem CombinableItem] combineList = map f . combineItemListYouX where f (is, itm) = - SelectionItem + SelItem { _siPictures = basicItemDisplay itm , _siHeight = itInvHeight itm , _siWidth = 15 , _siIsSelectable = True , _siColor = itemInvColor $ baseCI itm , _siOffX = 0 - , _siPayload = CombinableItem is itm + , _siPayload = Just $ CombinableItem is itm } combineItemListYouX :: World -> [([Int], Item)] diff --git a/src/Dodge/Data/SelectionList.hs b/src/Dodge/Data/SelectionList.hs index 2a3452ce5..d20e2b517 100644 --- a/src/Dodge/Data/SelectionList.hs +++ b/src/Dodge/Data/SelectionList.hs @@ -41,22 +41,14 @@ data SelectionWidth | UseItemWidth data SelectionItem a - = SelectionItem - { _siPictures :: [String] - , _siHeight :: Int - , _siWidth :: Int - , _siIsSelectable :: Bool - , _siColor :: Color - , _siOffX :: Int - , _siPayload :: a - } - | SelectionInfo + = SelItem { _siPictures :: [String] , _siHeight :: Int , _siWidth :: Int , _siIsSelectable :: Bool , _siColor :: Color , _siOffX :: Int + , _siPayload :: Maybe a } makeLenses ''ListDisplayParams diff --git a/src/Dodge/DisplayInventory.hs b/src/Dodge/DisplayInventory.hs index 838059c2a..d45ddda27 100644 --- a/src/Dodge/DisplayInventory.hs +++ b/src/Dodge/DisplayInventory.hs @@ -65,12 +65,12 @@ updateCombineSections w cfig = sclose' | null sclose = IM.singleton 0 $ - SelectionInfo ["No possible combinations"] 1 25 False white 0 + SelItem ["No possible combinations"] 1 25 False white 0 Nothing | otherwise = sclose regexCombs :: IM.IntMap Item -> SelectionItem CombinableItem -> String -> Bool regexCombs inv ci = \case - '#' : str -> any (g str) (_ciInvIDs $ _siPayload ci) + '#' : str -> any (g str) (_ciInvIDs $ fromJust $ _siPayload ci) str -> (regexList str . _siPictures) ci where g str i = maybe False (regexList str . basicItemDisplay) (inv ^? ix i) @@ -129,7 +129,7 @@ updateDisplaySections w cfig = [ invhead , sinv , IM.singleton 0 - $ SelectionItem [displayFreeSlots (crNumFreeSlots cr)] 1 15 True invDimColor 2 () + $ SelItem [displayFreeSlots (crNumFreeSlots cr)] 1 15 True invDimColor 2 Nothing , nearbyhead , sclose , interfaceshead @@ -153,7 +153,7 @@ updateDisplaySections w cfig = btitems = IM.fromDistinctAscList . zip [0 ..] $ mapMaybe (closeButtonToSelectionItem w) (w ^. hud . closeButtons) - makehead str = IM.singleton 0 $ SelectionInfo [str] 1 15 False white 0 + makehead str = IM.singleton 0 $ SelItem [str] 1 15 False white 0 Nothing invhead = if null sfinv then makehead "INVENTORY" else sfinv cr = you w closeitms = @@ -179,13 +179,14 @@ filterSectionsPair infocus filtfn itms filtdescription mfilt = (filtsis, itms') return $ IM.singleton 0 - $ SelectionInfo + $ SelItem [filtdescription ++ " FILTER/" ++ str ++ [filtcurs], numfiltitems] 2 (length (filtdescription ++ " FILTER/" ++ str ++ [filtcurs])) True white 0 + Nothing itms' = maybe id (IM.filter . filtfn) mfilt itms numfiltitems = " " ++ show (length itms - length itms') ++ " FILTERED" diff --git a/src/Dodge/Inventory/SelectionList.hs b/src/Dodge/Inventory/SelectionList.hs index 3cc7be508..052056d0a 100644 --- a/src/Dodge/Inventory/SelectionList.hs +++ b/src/Dodge/Inventory/SelectionList.hs @@ -31,14 +31,14 @@ import Picture.Base invSelectionItem :: World -> Int -> LocationDT OItem -> SelectionItem () invSelectionItem w indent loc = - SelectionItem + SelItem { _siPictures = itemDisplay w cr ci , _siHeight = itInvHeight $ ci ^. _1 , _siWidth = 15 , _siIsSelectable = True , _siColor = itemInvColor ci , _siOffX = indent - , _siPayload = () + , _siPayload = Nothing } where ci = (a,b) @@ -207,28 +207,28 @@ closeItemToSelectionItem w (NInt i) = do e <- w ^? cWorld . lWorld . floorItems . unNIntMap . ix i let (pics, col) = closeItemToTextPictures e return - SelectionItem + SelItem { _siPictures = pics , _siHeight = length pics , _siWidth = 15 , _siIsSelectable = True , _siColor = col , _siOffX = 0 - , _siPayload = () + , _siPayload = Nothing } closeButtonToSelectionItem :: World -> Int -> Maybe (SelectionItem ()) closeButtonToSelectionItem w i = do bt <- w ^? cWorld . lWorld . buttons . ix i return - SelectionItem + SelItem { _siPictures = [btText bt] , _siHeight = 1 , _siWidth = 15 , _siIsSelectable = True , _siColor = yellow , _siOffX = 0 - , _siPayload = () + , _siPayload = Nothing } btText :: Button -> String diff --git a/src/Dodge/Menu/Option.hs b/src/Dodge/Menu/Option.hs index dacf5c0c3..1e845e9d0 100644 --- a/src/Dodge/Menu/Option.hs +++ b/src/Dodge/Menu/Option.hs @@ -96,14 +96,14 @@ menuOptionToSelectionItem :: MenuOption -> SelectionItem (Universe -> Universe, Universe -> Universe) menuOptionToSelectionItem w padAmount mo = - SelectionItem + SelItem { _siPictures = [optionText] , _siHeight = 1 , _siWidth = 50 , _siIsSelectable = isselectable , _siColor = thecol , _siOffX = 0 - , _siPayload = (f, g) + , _siPayload = Just (f, g) } where isselectable = case _moString mo w of diff --git a/src/Dodge/Render/HUD.hs b/src/Dodge/Render/HUD.hs index 9aa8c6d83..d6d09c02d 100644 --- a/src/Dodge/Render/HUD.hs +++ b/src/Dodge/Render/HUD.hs @@ -1,10 +1,7 @@ {-# LANGUAGE LambdaCase #-} -module Dodge.Render.HUD ( - drawHUD, -) where +module Dodge.Render.HUD (drawHUD) where -import Dodge.Data.Terminal.Status import Control.Applicative import Control.Lens import Control.Monad @@ -23,6 +20,7 @@ import Dodge.Data.Config import Dodge.Data.DoubleTree import Dodge.Data.EquipType import Dodge.Data.SelectionList +import Dodge.Data.Terminal.Status import Dodge.Data.World import Dodge.DoubleTree import Dodge.Equipment.Text @@ -34,7 +32,6 @@ import Dodge.Item.InvSize import Dodge.Item.Location import Dodge.ListDisplayParams import Dodge.Render.Connectors ---import Dodge.Render.HUD.Carte import Dodge.Render.List import Dodge.ScreenPos import Dodge.SelectionSections @@ -105,9 +102,7 @@ getRootItemBounds i inv = do drawMouseOver :: Configuration -> World -> Picture drawMouseOver cfig w = concat - ( invsel <|> combinvsel - <|> drawDragSelecting cfig w - ) + (invsel <|> combinvsel <|> drawDragSelecting cfig w) <> concat (drawDragSelected cfig w) where invsel = do @@ -211,14 +206,14 @@ drawExamineInventory cfig w = ) where f str = - SelectionItem + SelItem { _siPictures = [str] , _siWidth = 55 , _siHeight = 1 , _siIsSelectable = True , _siColor = white , _siOffX = 0 - , _siPayload = () + , _siPayload = Nothing } closeObjectInfo :: Int -> Either FloorItem Button -> String @@ -240,11 +235,10 @@ yourAugmentedItem f x g w = case you w ^? crManipulation . manObject of j <- w ^? hud . closeItems . ix i . unNInt flit <- w ^? cWorld . lWorld . floorItems . unNIntMap . ix j return . g $ Left flit - -- g . Left $ w ^?! hud . closeItems . ix i Just (SelCloseButton i) -> fromMaybe x $ do j <- w ^? hud . closeButtons . ix i - flit <- w ^? cWorld . lWorld . buttons . ix j - return . g $ Right flit + but <- w ^? cWorld . lWorld . buttons . ix j + return . g $ Right but _ -> x drawRBOptions :: Configuration -> World -> Picture @@ -347,7 +341,7 @@ combineInventoryExtra sss msel cfig w = fold $ do (i, j) <- msel si <- sss ^? ix i . ssItems . ix j let col = _siColor si - lnks <- si ^? siPayload . ciInvIDs + lnks <- si ^? siPayload . _Just . ciInvIDs return (lnkMidPosInvSelsCol cfig w j col lnks) <> foldMap invcursor lnks where invcursor i = do @@ -372,7 +366,7 @@ drawTerminalDisplay tid cfig w = fold $ do (drawSelectionListBackground secondColumnParams cfig tsize) <> color (dark $ _tmExternalColor tm) (drawTitleBackground cfig) where - toselitm (str, col) = SelectionItem [str] 1 55 True col 0 () + toselitm (str, col) = SelItem [str] 1 55 True col 0 Nothing -- not sure if the width (55) is correct here f tm = map toselitm . displayTermInput tm @@ -386,7 +380,8 @@ drawTerminalDisplay tid cfig w = fold $ do TerminalTextInput s -> (++ [(getPromptTM ++ s ++ [cFilledRect], white)]) TerminalPressTo s -> - (++ [(getPromptTM ++ "PRESS TO "++s, white)]) + (++ [(getPromptTM ++ "PRESS TO " ++ s, white)]) + -- | hasfoc = clockCycle 10 (V.fromList [[cFilledRect] , "."]) w lnkMidPosInvSelsCol :: Configuration -> World -> Int -> Color -> [Int] -> Picture @@ -504,4 +499,4 @@ selNumPosCardinal card cfig ldp sss i j = do ygap = _ldpVerticalGap ldp selSecSelCol :: Int -> Int -> IM.IntMap (SelectionSection a) -> Maybe Color -selSecSelCol i j sss = sss ^? ix i . ssItems . ix j . siColor +selSecSelCol i j = (^? ix i . ssItems . ix j . siColor) diff --git a/src/Dodge/Update/Input/InGame.hs b/src/Dodge/Update/Input/InGame.hs index 14aca7103..6d3034201 100644 --- a/src/Dodge/Update/Input/InGame.hs +++ b/src/Dodge/Update/Input/InGame.hs @@ -385,6 +385,7 @@ updateKeysInTerminal :: Int -> Universe -> Universe updateKeysInTerminal tmid u = fromMaybe u $ do tm <- u ^? uvWorld . cWorld . lWorld . terminals . ix tmid return $ case tm ^. tmStatus of + TerminalDeactivated -> u & uvWorld . hud . hudElement . subInventory .~ NoSubInventory TerminalTextInput{} -> updateKeysTextInputTerminal tmid u TerminalPressTo{} -> updateKeyContinueTerminal tmid u _ -> u @@ -551,7 +552,7 @@ getCloseObj w = getSelectedCloseObj w <|> firstcitem <|> firstcbut tryCombine :: (Int, Int) -> World -> World tryCombine (i, j) w = fromMaybe w $ do sss <- w ^? hud . hudElement . subInventory . ciSections - CombinableItem is it <- sss ^? ix i . ssItems . ix j . siPayload + CombinableItem is it <- sss ^? ix i . ssItems . ix j . siPayload . _Just p <- w ^? cWorld . lWorld . creatures . ix 0 . crPos return $ snd (createItemYou it (foldr (destroyInvItem 0) w (sort is))) diff --git a/src/Dodge/Update/Input/ScreenLayer.hs b/src/Dodge/Update/Input/ScreenLayer.hs index a38034e57..f7950abaf 100644 --- a/src/Dodge/Update/Input/ScreenLayer.hs +++ b/src/Dodge/Update/Input/ScreenLayer.hs @@ -63,11 +63,11 @@ mouseClickOptionsList u = fromMaybe u $ do case u ^. uvWorld . input . mouseButtons of mbs | mbs ^. at ButtonLeft == Just 0 -> do i <- u ^? uvWorld . input . mouseContext . mcoMenuClick - f <- sl ^? ix i . siPayload . _1 + f <- sl ^? ix i . siPayload . _Just . _1 return $ f u & uvSoundQueue .:~ click1S mbs | mbs ^. at ButtonRight == Just 0 -> do i <- u ^? uvWorld . input . mouseContext . mcoMenuClick - f <- sl ^? ix i . siPayload . _2 + f <- sl ^? ix i . siPayload . _Just . _2 return $ f u & uvSoundQueue .:~ click1S _ -> Nothing diff --git a/src/Dodge/WorldEffect.hs b/src/Dodge/WorldEffect.hs index 18f9608d0..e98358750 100644 --- a/src/Dodge/WorldEffect.hs +++ b/src/Dodge/WorldEffect.hs @@ -7,6 +7,7 @@ module Dodge.WorldEffect ( lineOutputTerminal, ) where +import Control.Monad import Data.Foldable import qualified Data.Map.Strict as M import Data.Maybe @@ -53,9 +54,12 @@ doWdWd we = case we of return $ heldEffectMuzzles loc cr w accessTerminal :: Int -> World -> World -accessTerminal tid = - (hud . hudElement . subInventory .~ DisplayTerminal tid) - . (cWorld . lWorld . terminals . ix tid %~ tryToBoot) +accessTerminal tid w = fromMaybe w $ do + tm <- w ^? cWorld . lWorld . terminals . ix tid + guard (tm ^. tmStatus /= TerminalDeactivated) + return $ + w & hud . hudElement . subInventory .~ DisplayTerminal tid + & cWorld . lWorld . terminals . ix tid %~ tryToBoot where tryToBoot tm = case _tmStatus tm of TerminalTextInput{} -> tm @@ -84,7 +88,8 @@ lineOutputTerminal tls = } doDeathTriggers :: Terminal -> World -> World -doDeathTriggers tm = cWorld . lWorld . triggers %~ flip (foldl' $ flip doDeathToggle) xs +doDeathTriggers tm = (cWorld . lWorld . triggers %~ flip (foldl' $ flip doDeathToggle) xs) + . (cWorld . lWorld . terminals . ix (tm ^. tmID) . tmStatus .~ TerminalDeactivated) where xs = M.elems $ _tmToggles tm diff --git a/tags b/tags index b947ca57a..85d3df6e5 100644 --- a/tags +++ b/tags @@ -178,6 +178,7 @@ Button src/Dodge/Data/Button.hs 30;" t ButtonAccessTerminal src/Dodge/Data/Button.hs 28;" C ButtonEvent src/Dodge/Data/Button.hs 15;" t ButtonPress src/Dodge/Data/Button.hs 16;" C +ButtonSound src/Dodge/Data/SoundOrigin.hs 37;" C ButtonSwitch src/Dodge/Data/Button.hs 21;" C CAMERA src/Dodge/Data/Item/Combine.hs 76;" C CAN src/Dodge/Data/Item/Combine.hs 57;" C @@ -689,7 +690,6 @@ LeftwardDT src/Dodge/Data/DoubleTree.hs 86;" C LeftwardLDT src/Dodge/Data/DoubleTree.hs 44;" C Lethargic src/Dodge/Data/Creature/Perception.hs 55;" C LevelStartSlot src/Dodge/Data/SaveSlot.hs 11;" C -LeverSound src/Dodge/Data/SoundOrigin.hs 37;" C LifeSupportSystemsRoomSS src/Dodge/Data/Scenario.hs 113;" C LifeboatBaySS src/Dodge/Data/Scenario.hs 107;" C LightSource src/Dodge/Data/LightSource.hs 23;" t @@ -1204,10 +1204,10 @@ SeeAbove src/Dodge/Data/Wall.hs 42;" C SeeThrough src/Dodge/Data/Wall.hs 41;" C SelCloseButton src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 31;" C SelCloseItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 29;" C +SelItem src/Dodge/Data/SelectionList.hs 44;" C SelNothing src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 27;" C Select_creature src/Dodge/Data/Config.hs 94;" C SelectedItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 22;" C -SelectionInfo src/Dodge/Data/SelectionList.hs 53;" C SelectionItem src/Dodge/Data/SelectionList.hs 43;" t SelectionSection src/Dodge/Data/SelectionList.hs 29;" t SelectionWidth src/Dodge/Data/SelectionList.hs 39;" t @@ -2356,18 +2356,12 @@ _shapeShader src/Data/Preload/Render.hs 25;" f _shellPayload src/Dodge/Data/Item/Combine.hs 103;" f _shockwaves src/Dodge/Data/LWorld.hs 118;" f _siColor src/Dodge/Data/SelectionList.hs 49;" f -_siColor src/Dodge/Data/SelectionList.hs 58;" f _siHeight src/Dodge/Data/SelectionList.hs 46;" f -_siHeight src/Dodge/Data/SelectionList.hs 55;" f _siIsSelectable src/Dodge/Data/SelectionList.hs 48;" f -_siIsSelectable src/Dodge/Data/SelectionList.hs 57;" f _siOffX src/Dodge/Data/SelectionList.hs 50;" f -_siOffX src/Dodge/Data/SelectionList.hs 59;" f _siPayload src/Dodge/Data/SelectionList.hs 51;" f _siPictures src/Dodge/Data/SelectionList.hs 45;" f -_siPictures src/Dodge/Data/SelectionList.hs 54;" f _siWidth src/Dodge/Data/SelectionList.hs 47;" f -_siWidth src/Dodge/Data/SelectionList.hs 56;" f _sideEffect src/Loop/Data.hs 13;" f _sideImpulses src/Dodge/Data/ActionPlan.hs 170;" f _silhouetteEBO src/Data/Preload/Render.hs 27;" f @@ -2593,7 +2587,7 @@ aRadarPulse src/Dodge/RadarSweep.hs 19;" f aShape src/Dodge/Placement/Instance/LightSource.hs 107;" f aSound src/Dodge/SoundLogic.hs 74;" f aTreeStrut src/Dodge/Tree/GenerateStructure.hs 42;" f -accessTerminal src/Dodge/WorldEffect.hs 54;" f +accessTerminal src/Dodge/WorldEffect.hs 56;" f activateDetonator src/Dodge/Creature/Impulse/UseItem.hs 60;" f activeTargetCursorPic src/Dodge/Targeting/Draw.hs 31;" f addArmour src/Dodge/Creature.hs 85;" f @@ -2836,7 +2830,7 @@ bulletPayloadModule src/Dodge/Item/Scope.hs 131;" f bulletSynthesizer src/Dodge/Item/Ammo.hs 82;" f bulletWeapons src/Dodge/Combine/Combinations.hs 248;" f burstRifle src/Dodge/Item/Held/Cane.hs 30;" f -buttonFlip src/Dodge/Button/Event.hs 18;" f +buttonFlip src/Dodge/Button/Event.hs 17;" f buzzS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 702;" f cFilledRect src/Dodge/CharacterEnums.hs 6;" f cWireRect src/Dodge/CharacterEnums.hs 10;" f @@ -2933,7 +2927,7 @@ clockCycle src/Dodge/Clock.hs 9;" f closeButtonToSelectionItem src/Dodge/Inventory/SelectionList.hs 220;" f closeItemToSelectionItem src/Dodge/Inventory/SelectionList.hs 205;" f closeItemToTextPictures src/Dodge/Inventory/SelectionList.hs 240;" f -closeObjectInfo src/Dodge/Render/HUD.hs 224;" f +closeObjectInfo src/Dodge/Render/HUD.hs 219;" f closestCreatureID src/Dodge/Debug.hs 116;" f closestPointOnLine src/Geometry/Intersect.hs 281;" f closestPointOnLineParam src/Geometry/Intersect.hs 297;" f @@ -2973,13 +2967,13 @@ combinationsOf src/Multiset.hs 46;" f combinationsTrie src/Dodge/Combine.hs 42;" f combineAwareness src/Dodge/Creature/Perception.hs 110;" f combineFloors src/Dodge/Room/Procedural.hs 172;" f -combineInventoryExtra src/Dodge/Render/HUD.hs 340;" f +combineInventoryExtra src/Dodge/Render/HUD.hs 334;" f combineItemListYouX src/Dodge/Combine.hs 34;" f combineList src/Dodge/Combine.hs 20;" f combineRooms src/Dodge/Room/Procedural.hs 152;" f combineS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 480;" f combineTree src/Dodge/Tree/Compose.hs 66;" f -commandColor src/Dodge/Terminal.hs 135;" f +commandColor src/Dodge/Terminal.hs 131;" f commonPrefix src/Dodge/Debug/Terminal.hs 146;" f comp src/Quaternion.hs 65;" f compactDraw src/Dodge/LevelGen.hs 91;" f @@ -2993,12 +2987,12 @@ conEffects src/Dodge/Concurrent.hs 12;" f conLDTToConDT src/Dodge/DoubleTree.hs 22;" f concurrentIS src/Dodge/Update/Input/InGame.hs 292;" f connectItemS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 722;" f -connectionBlurb src/Dodge/Terminal.hs 53;" f -connectionBlurbLines src/Dodge/Terminal.hs 45;" f +connectionBlurb src/Dodge/Terminal.hs 49;" f +connectionBlurbLines src/Dodge/Terminal.hs 41;" f constructEdges src/Polyhedra.hs 34;" f constructEdgesList src/Polyhedra.hs 43;" f contToIDCont src/Dodge/LevelGen/PlacementHelper.hs 57;" f -continueTerminal src/Dodge/Update/Input/InGame.hs 398;" f +continueTerminal src/Dodge/Update/Input/InGame.hs 399;" f convexHull src/Geometry/Polygon.hs 110;" f convexHullSafe src/Geometry/Polygon.hs 117;" f convexPolysOverlap src/Geometry/ConvexPoly.hs 50;" f @@ -3120,7 +3114,7 @@ dShadCol src/Dodge/Render/List.hs 215;" f damMatSideEffect src/Dodge/Material/Damage.hs 13;" f damThingHitWith src/Dodge/Damage.hs 72;" f damToExpBarrel src/Dodge/Barreloid.hs 49;" f -damageCodeCommand src/Dodge/Terminal.hs 73;" f +damageCodeCommand src/Dodge/Terminal.hs 69;" f damageCrWl src/Dodge/Damage.hs 29;" f damageCrWlID src/Dodge/Damage.hs 23;" f damageDirection src/Dodge/Damage.hs 35;" f @@ -3142,7 +3136,7 @@ dbArgChain src/Dodge/Base.hs 170;" f dbwMuzzles src/Dodge/HeldUse.hs 314;" f deZoneIX src/Dodge/Zoning/Base.hs 89;" f deZoneWall src/Dodge/Zoning/Wall.hs 70;" f -deactivateTerminal src/Dodge/WorldEffect.hs 133;" f +deactivateTerminal src/Dodge/WorldEffect.hs 138;" f deadEndRoom src/Dodge/Room/Room.hs 235;" f deadFeet src/Dodge/Creature/Picture.hs 66;" f deadRot src/Dodge/Creature/Picture.hs 82;" f @@ -3162,7 +3156,7 @@ debugMenuOptions src/Dodge/Menu.hs 122;" f debugOn src/Dodge/Data/Config.hs 151;" f debugSelectCreatureList src/Dodge/Debug.hs 86;" f debugSelectCreatureMessage src/Dodge/Debug.hs 77;" f -decodeSensorType src/Dodge/WorldEffect.hs 140;" f +decodeSensorType src/Dodge/WorldEffect.hs 151;" f decomposeSelfTree src/Dodge/Tree/Compose.hs 60;" f decomposeTree src/Dodge/Tree/Compose.hs 57;" f decoratedBlock src/Dodge/Placement/Instance/Block.hs 10;" f @@ -3214,10 +3208,10 @@ defaultLWorld src/Dodge/Default/World.hs 98;" f defaultListDisplayParams src/Dodge/ListDisplayParams.hs 18;" f defaultMachine src/Dodge/Default.hs 30;" f defaultMachineWall src/Dodge/Default/Wall.hs 55;" f -defaultPP src/Dodge/Default.hs 61;" f +defaultPP src/Dodge/Default.hs 56;" f defaultPerceptionState src/Dodge/Default/Creature.hs 75;" f defaultProp src/Dodge/Default/Prop.hs 6;" f -defaultProximitySensor src/Dodge/Default.hs 72;" f +defaultProximitySensor src/Dodge/Default.hs 67;" f defaultRoom src/Dodge/Default/Room.hs 9;" f defaultSensorWall src/Dodge/Default/Wall.hs 65;" f defaultSwitchWall src/Dodge/Default/Door.hs 22;" f @@ -3265,7 +3259,7 @@ disconnectItemS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 650;" f displayConfig src/Dodge/Menu.hs 213;" f displayControls src/Dodge/Menu.hs 223;" f displayFrameTicks src/Dodge/Render/Picture.hs 46;" f -displayFreeSlots src/Dodge/DisplayInventory.hs 198;" f +displayFreeSlots src/Dodge/DisplayInventory.hs 199;" f displayIndents src/Dodge/DisplayInventory.hs 110;" f displayPulse src/Dodge/Inventory/SelectionList.hs 176;" f displayTerminalLineString src/Dodge/Update.hs 497;" f @@ -3287,7 +3281,7 @@ doBarrelSpin src/Dodge/Projectile/Update.hs 215;" f doBlBl src/Dodge/BlBl.hs 5;" f doBlSh src/Dodge/Block/Draw.hs 14;" f doBounce src/Dodge/Base/Collide.hs 66;" f -doButtonEvent src/Dodge/Button/Event.hs 10;" f +doButtonEvent src/Dodge/Button/Event.hs 9;" f doConLoop src/Loop.hs 137;" f doConLoop' src/Loop.hs 226;" f doCrAc src/Dodge/CreatureEffect.hs 61;" f @@ -3298,8 +3292,8 @@ doCrWdAc src/Dodge/CreatureEffect.hs 77;" f doCrWdImp src/Dodge/CreatureEffect.hs 16;" f doCrWdWd src/Dodge/CreatureEffect.hs 20;" f doDamage src/Dodge/Creature/State.hs 41;" f -doDeathToggle src/Dodge/WorldEffect.hs 91;" f -doDeathTriggers src/Dodge/WorldEffect.hs 86;" f +doDeathToggle src/Dodge/WorldEffect.hs 95;" f +doDeathTriggers src/Dodge/WorldEffect.hs 90;" f doDebugTest src/Dodge/Update/Input/DebugTest.hs 22;" f doDebugTest2 src/Dodge/Update/Input/DebugTest.hs 37;" f doDebugTestF10 src/Dodge/Update/Input/DebugTest.hs 62;" f @@ -3336,13 +3330,13 @@ doPropUpdates src/Dodge/Prop/Update.hs 34;" f doQuickload src/Dodge/Save.hs 82;" f doQuicksave src/Dodge/Save.hs 77;" f doRandImpulse src/Dodge/RandImpulse.hs 7;" f -doRegexInput src/Dodge/Update/Input/InGame.hs 444;" f +doRegexInput src/Dodge/Update/Input/InGame.hs 445;" f doRoomInPlacements src/Dodge/Layout.hs 97;" f doRoomOutPlacements src/Dodge/Layout.hs 107;" f doRoomPlacements src/Dodge/Layout.hs 122;" f doRoomShift src/Dodge/Room/Link.hs 33;" f doScopeZoom src/Dodge/Update/Scroll.hs 88;" f -doSectionSize src/Dodge/DisplayInventory.hs 217;" f +doSectionSize src/Dodge/DisplayInventory.hs 218;" f doSideEffects appDodge/Main.hs 120;" f doStrategyActions src/Dodge/Creature/ReaderUpdate.hs 166;" f doTestDrawing src/Dodge/Render.hs 41;" f @@ -3350,13 +3344,13 @@ doTextInputOver src/Dodge/Update/Input/Text.hs 15;" f doTextInputOverUniverse src/Dodge/Update/Input/Text.hs 12;" f doThrust src/Dodge/Projectile/Update.hs 183;" f doTimeScroll src/Dodge/Update.hs 208;" f -doTmWdWd src/Dodge/WorldEffect.hs 94;" f +doTmWdWd src/Dodge/WorldEffect.hs 98;" f doWallRotate src/Dodge/Update/Camera.hs 213;" f doWdBl src/Dodge/WorldBool.hs 10;" f doWdCrBl src/Dodge/CreatureEffect.hs 37;" f doWdCrCr src/Dodge/CreatureEffect.hs 12;" f doWdP2f src/Dodge/WdP2f.hs 12;" f -doWdWd src/Dodge/WorldEffect.hs 28;" f +doWdWd src/Dodge/WorldEffect.hs 30;" f doWorldEvents src/Dodge/Update.hs 443;" f doWorldPos src/Dodge/WorldPos.hs 7;" f door src/Dodge/Room/Door.hs 13;" f @@ -3392,7 +3386,7 @@ drawCircCollisionTest src/Dodge/Debug/Picture.hs 116;" f drawCliff src/Dodge/Render/ShapePicture.hs 47;" f drawCollisionTest src/Dodge/Debug/Picture.hs 103;" f drawCombFilter src/Dodge/Render/Picture.hs 268;" f -drawCombineInventory src/Dodge/Render/HUD.hs 180;" f +drawCombineInventory src/Dodge/Render/HUD.hs 175;" f drawConcurrentMessage src/Dodge/Render/Picture.hs 69;" f drawCoord src/Dodge/Debug/Picture.hs 364;" f drawCorpse src/Dodge/Corpse/Draw.hs 6;" f @@ -3410,12 +3404,12 @@ drawDrag src/Dodge/Render/Picture.hs 199;" f drawDragDrop src/Dodge/Render/Picture.hs 228;" f drawDragPickup src/Dodge/Render/Picture.hs 237;" f drawDragSelect src/Dodge/Render/Picture.hs 196;" f -drawDragSelected src/Dodge/Render/HUD.hs 134;" f -drawDragSelecting src/Dodge/Render/HUD.hs 151;" f +drawDragSelected src/Dodge/Render/HUD.hs 129;" f +drawDragSelecting src/Dodge/Render/HUD.hs 146;" f drawEmptySet src/Dodge/Render/Picture.hs 140;" f drawEnergyBall src/Dodge/EnergyBall/Draw.hs 7;" f drawEquipment src/Dodge/Creature/Picture.hs 133;" f -drawExamineInventory src/Dodge/Render/HUD.hs 196;" f +drawExamineInventory src/Dodge/Render/HUD.hs 191;" f drawExplosiveBall src/Dodge/EnergyBall/Draw.hs 15;" f drawFarWallDetect src/Dodge/Debug/Picture.hs 269;" f drawFlame src/Dodge/Flame/Draw.hs 8;" f @@ -3424,13 +3418,13 @@ drawFooterText src/Dodge/Render/MenuScreen.hs 72;" f drawForceField src/Dodge/Wall/Draw.hs 11;" f drawGapPlus src/Dodge/Render/Picture.hs 279;" f drawGib src/Dodge/Prop/Draw.hs 39;" f -drawHUD src/Dodge/Render/HUD.hs 50;" f +drawHUD src/Dodge/Render/HUD.hs 47;" f drawInputMenu src/Dodge/Render/MenuScreen.hs 22;" f drawInspectWall src/Dodge/Debug/Picture.hs 244;" f drawInspectWalls src/Dodge/Debug/Picture.hs 232;" f -drawInventory src/Dodge/Render/HUD.hs 57;" f -drawItemChildrenConnect src/Dodge/Render/HUD.hs 327;" f -drawItemConnections src/Dodge/Render/HUD.hs 317;" f +drawInventory src/Dodge/Render/HUD.hs 54;" f +drawItemChildrenConnect src/Dodge/Render/HUD.hs 321;" f +drawItemConnections src/Dodge/Render/HUD.hs 311;" f drawJumpDown src/Dodge/Render/Picture.hs 191;" f drawLabCrossCol src/Dodge/Render/Label.hs 8;" f drawLampCover src/Dodge/Prop/Draw.hs 55;" f @@ -3443,13 +3437,13 @@ drawListYgapScaleYoff src/Dodge/Render/List.hs 95;" f drawListYoff src/Dodge/Render/List.hs 92;" f drawMachine src/Dodge/Machine/Draw.hs 17;" f drawMapperAR src/Dodge/Targeting/Draw.hs 12;" f -drawMapperInventory src/Dodge/Render/HUD.hs 171;" f +drawMapperInventory src/Dodge/Render/HUD.hs 166;" f drawMenuClick src/Dodge/Render/Picture.hs 163;" f drawMenuCursor src/Dodge/Render/Picture.hs 177;" f drawMenuOrHUD src/Dodge/Render/Picture.hs 64;" f drawMenuScreen src/Dodge/Render/MenuScreen.hs 16;" f drawMouseCursor src/Dodge/Render/Picture.hs 80;" f -drawMouseOver src/Dodge/Render/HUD.hs 105;" f +drawMouseOver src/Dodge/Render/HUD.hs 102;" f drawMousePosition src/Dodge/Debug/Picture.hs 354;" f drawMovingShape src/Dodge/Prop/Draw.hs 81;" f drawMovingShapeCol src/Dodge/Prop/Draw.hs 87;" f @@ -3463,11 +3457,11 @@ drawProjectile src/Dodge/Projectile/Draw.hs 13;" f drawProp src/Dodge/Prop/Draw.hs 26;" f drawPulseBall src/Dodge/Render/ShapePicture.hs 53;" f drawQuitTerminal src/Dodge/Render/Picture.hs 133;" f -drawRBOptions src/Dodge/Render/HUD.hs 250;" f +drawRBOptions src/Dodge/Render/HUD.hs 244;" f drawRadarSweep src/Dodge/RadarSweep/Draw.hs 14;" f drawRemoteShell src/Dodge/Projectile/Draw.hs 38;" f drawReturn src/Dodge/Render/Picture.hs 147;" f -drawRootCursor src/Dodge/Render/HUD.hs 73;" f +drawRootCursor src/Dodge/Render/HUD.hs 70;" f drawSSCursor src/Dodge/SelectionSections/Draw.hs 35;" f drawSSMultiCursor src/Dodge/SelectionSections/Draw.hs 46;" f drawSelect src/Dodge/Render/Picture.hs 256;" f @@ -3482,11 +3476,11 @@ 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 162;" f +drawSubInventory src/Dodge/Render/HUD.hs 157;" 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 364;" f +drawTerminalDisplay src/Dodge/Render/HUD.hs 357;" f drawTeslaArc src/Dodge/Tesla/Draw.hs 9;" f drawText src/Picture/Base.hs 220;" f drawTitle src/Dodge/Render/MenuScreen.hs 55;" f @@ -3553,12 +3547,12 @@ endArcPos src/Dodge/Tesla.hs 87;" f endCombineRegex src/Dodge/Update/Input/InGame.hs 269;" f endRegex src/Dodge/Update/Input/InGame.hs 256;" f energyReleaseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 592;" f -enterCombineInv src/Dodge/DisplayInventory.hs 323;" f +enterCombineInv src/Dodge/DisplayInventory.hs 324;" f epText src/Dodge/Inventory/SelectionList.hs 76;" f eqConstr src/SameConstr.hs 17;" f eqPosText src/Dodge/Equipment/Text.hs 5;" f eqSiteToPositions src/Dodge/Inventory/RBList.hs 77;" f -equipAllocString src/Dodge/Render/HUD.hs 308;" f +equipAllocString src/Dodge/Render/HUD.hs 302;" f equipAttachPos src/Dodge/Item/Draw.hs 32;" f equipBackgroundEffect src/Dodge/Euse.hs 15;" f equipInfo src/Dodge/Item/Info.hs 141;" f @@ -3576,7 +3570,7 @@ errorNormalizeV src/Geometry.hs 55;" f errorPointInPolygon src/Geometry.hs 47;" f evaluateRandPS src/Dodge/Placement/PlaceSpot.hs 150;" f evenOddSplit src/Dodge/Base.hs 160;" f -exitTerminalSubInv src/Dodge/Terminal.hs 159;" f +exitTerminalSubInv src/Dodge/WorldEffect.hs 144;" f expandLine src/Dodge/Picture.hs 30;" f expandPolyBy src/Dodge/LevelGen/StaticWalls.hs 91;" f expandPolyByFixed src/Dodge/LevelGen/StaticWalls.hs 97;" f @@ -3647,7 +3641,7 @@ flockPointTarget src/Dodge/Creature/Boid.hs 200;" f flockPointTargetR src/Dodge/Creature/Boid.hs 267;" f flockToPointUsing src/Dodge/Creature/Boid.hs 215;" f flockToPointUsing' src/Dodge/Creature/Boid.hs 228;" f -floorItemPickupInfo src/Dodge/Render/HUD.hs 229;" f +floorItemPickupInfo src/Dodge/Render/HUD.hs 224;" f floorItemSPic src/Dodge/Render/ShapePicture.hs 121;" f floorWire src/Dodge/Wire.hs 13;" f foamSprayFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 558;" f @@ -3712,9 +3706,9 @@ getAutoSpringLinks src/Dodge/Item/Grammar.hs 84;" f getAvailableListLines src/Dodge/SelectionList.hs 10;" f getBulHitDams src/Dodge/Bullet.hs 169;" f getBulletType src/Dodge/HeldUse.hs 943;" f -getCloseObj src/Dodge/Update/Input/InGame.hs 540;" f -getCommand src/Dodge/Terminal.hs 65;" f -getCommands src/Dodge/Terminal.hs 62;" f +getCloseObj src/Dodge/Update/Input/InGame.hs 541;" f +getCommand src/Dodge/Terminal.hs 61;" f +getCommands src/Dodge/Terminal.hs 58;" f getCrMoveSpeed src/Dodge/Creature/Statistics.hs 45;" f getDistortions src/Dodge/Render.hs 435;" f getEquipmentAllocation src/Dodge/Inventory/RBList.hs 47;" f @@ -3731,9 +3725,9 @@ getNodePos src/Dodge/Path.hs 31;" f getPJStabiliser src/Dodge/HeldUse.hs 1297;" f getPretty src/AesonHelp.hs 8;" f getPromptTM src/Dodge/Terminal/Type.hs 6;" f -getRootItemBounds src/Dodge/Render/HUD.hs 96;" f +getRootItemBounds src/Dodge/Render/HUD.hs 93;" f getSelectedCloseObj src/Dodge/SelectedClose.hs 14;" f -getSensorInfo src/Dodge/WorldEffect.hs 146;" f +getSensorInfo src/Dodge/WorldEffect.hs 157;" f getSmoothScrollValue src/Dodge/SmoothScroll.hs 21;" f getSplitString src/Dodge/Debug/Terminal.hs 126;" f getTiles src/Dodge/Layout.hs 208;" f @@ -3833,9 +3827,9 @@ heldItemWeight src/Dodge/Creature/Statistics.hs 72;" f heldPositionInfo src/Dodge/Item/Info.hs 241;" f heldTorqueAmount src/Dodge/HeldUse.hs 584;" f heldTriggerType src/Dodge/BaseTriggerType.hs 27;" f -helpCommand src/Dodge/Terminal.hs 108;" f +helpCommand src/Dodge/Terminal.hs 104;" f helpPoly3D src/Polyhedra.hs 125;" f -helpStrings src/Dodge/Terminal.hs 111;" f +helpStrings src/Dodge/Terminal.hs 107;" f heron src/Geometry.hs 221;" f hiToFloat src/Dodge/Room/Modify/Girder.hs 171;" f highBar src/Dodge/Room/Foreground.hs 89;" f @@ -3928,8 +3922,8 @@ invCursorParams src/Dodge/ListDisplayParams.hs 36;" f invDP src/Dodge/ListDisplayParams.hs 30;" f invDT src/Dodge/Item/Grammar.hs 215;" f invDT' src/Dodge/Item/Grammar.hs 220;" f -invDimColor src/Dodge/DisplayInventory.hs 192;" f -invHead src/Dodge/Render/HUD.hs 405;" f +invDimColor src/Dodge/DisplayInventory.hs 193;" f +invHead src/Dodge/Render/HUD.hs 398;" f invIMDT src/Dodge/Item/Grammar.hs 248;" f invIndents src/Dodge/Item/Grammar.hs 255;" f invItemEffs src/Dodge/Creature/State.hs 61;" f @@ -4096,7 +4090,7 @@ lineCol src/Picture/Base.hs 230;" f lineGeom src/Dodge/Base.hs 32;" f lineOnScreenCone src/Dodge/Debug/Picture.hs 60;" f lineOrth src/Dodge/Creature/Boid.hs 126;" f -lineOutputTerminal src/Dodge/WorldEffect.hs 77;" f +lineOutputTerminal src/Dodge/WorldEffect.hs 81;" f lineSplit src/Justify.hs 26;" f lineThick src/Picture/Base.hs 234;" f lineUp src/Dodge/Creature/Boid.hs 148;" f @@ -4107,11 +4101,11 @@ listConfig src/Dodge/Menu.hs 216;" f listControls src/Dodge/Menu.hs 228;" f listCursorChooseBorderScale src/Dodge/Render/List.hs 135;" f listGuard src/Dodge/Creature/ReaderUpdate.hs 190;" f -listSelectionColorPicture src/Dodge/DisplayInventory.hs 308;" f +listSelectionColorPicture src/Dodge/DisplayInventory.hs 309;" f litCorridor90 src/Dodge/Room/RoadBlock.hs 26;" f lmt src/MatrixHelper.hs 43;" f lnkBothAnd src/Dodge/Room/Procedural.hs 121;" f -lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 394;" f +lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 387;" f lnkPosDir src/Dodge/RoomLink.hs 97;" f loadDodgeConfig src/Dodge/Config/Load.hs 9;" f loadMusic src/Dodge/SoundLogic/LoadSound.hs 30;" f @@ -4184,8 +4178,8 @@ makeBullet src/Dodge/HeldUse.hs 1021;" f makeButton src/Dodge/LevelGen/Switch.hs 16;" f makeByteStringShaderUsingVAO src/Shader/Compile.hs 128;" f makeCloudAt src/Dodge/WorldEvent/Cloud.hs 7;" f -makeColorTermLine src/Dodge/Terminal.hs 132;" f -makeColorTermPara src/Dodge/Terminal.hs 129;" f +makeColorTermLine src/Dodge/Terminal.hs 128;" f +makeColorTermPara src/Dodge/Terminal.hs 125;" f makeCorpse src/Dodge/Corpse/Make.hs 13;" f makeDebris src/Dodge/Block/Debris.hs 45;" f makeDebrisDirected src/Dodge/Block/Debris.hs 48;" f @@ -4221,8 +4215,8 @@ makeSourcedShader src/Shader/Compile.hs 167;" f makeSpark src/Dodge/Spark.hs 45;" f makeSubmenuOption src/Dodge/Menu/OptionType.hs 19;" f makeSwitch src/Dodge/LevelGen/Switch.hs 38;" f -makeTermLine src/Dodge/Terminal.hs 120;" f -makeTermPara src/Dodge/Terminal.hs 126;" f +makeTermLine src/Dodge/Terminal.hs 116;" f +makeTermPara src/Dodge/Terminal.hs 122;" f makeTeslaArc src/Dodge/Tesla.hs 29;" f makeTeslaExplosionAt src/Dodge/WorldEvent/Explosion.hs 40;" f makeTileFromPoly src/Tile.hs 34;" f @@ -4242,7 +4236,7 @@ maybeClearPath src/Dodge/Block.hs 72;" f maybeClearPaths src/Dodge/Block.hs 69;" f maybeDestroyBlock src/Dodge/Wall/Damage.hs 32;" f maybeDestroyDoor src/Dodge/Wall/Damage.hs 37;" f -maybeExitCombine src/Dodge/Update/Input/InGame.hs 561;" f +maybeExitCombine src/Dodge/Update/Input/InGame.hs 562;" f maybeOpenConsole src/Dodge/Update.hs 131;" f maybeReadFile src/Dodge/LoadSeed.hs 10;" f maybeTakeOne src/RandomHelp.hs 116;" f @@ -4461,7 +4455,7 @@ parseNum src/Dodge/Debug/Terminal.hs 75;" f pathConnected src/Dodge/Room/CheckConsistency.hs 14;" f pathEdgeObstructed src/Dodge/Path.hs 43;" f pauseAndFloatCam src/Dodge/Camera.hs 10;" f -pauseGame src/Dodge/Update/Input/InGame.hs 526;" f +pauseGame src/Dodge/Update/Input/InGame.hs 527;" f pauseMenu src/Dodge/Menu.hs 56;" f pauseMenuOptions src/Dodge/Menu.hs 61;" f pauseSound src/Dodge/SoundLogic.hs 42;" f @@ -4519,7 +4513,7 @@ placeSpotRoomRand src/Dodge/Placement/PlaceSpot.hs 89;" f placeSpotUsingLink src/Dodge/Placement/PlaceSpot.hs 70;" f placeString src/Dodge/Render/MenuScreen.hs 61;" f placeWallPoly src/Dodge/Placement/PlaceSpot.hs 163;" f -plainRegex src/Dodge/DisplayInventory.hs 195;" f +plainRegex src/Dodge/DisplayInventory.hs 196;" f playIfFree src/Sound.hs 137;" f playPositionalSoundQueue src/Sound.hs 145;" f playSoundAndUpdate src/Sound.hs 54;" f @@ -4615,7 +4609,7 @@ positionRoomsFromTree src/Dodge/Tree/Shift.hs 35;" f postGenerationProcessing src/Dodge/LevelGen.hs 33;" f postUniverseLoadSideEffect src/Dodge/WorldLoad.hs 11;" f postWorldLoad src/Dodge/WorldLoad.hs 15;" f -powerDownTerminal src/Dodge/WorldEffect.hs 127;" f +powerDownTerminal src/Dodge/WorldEffect.hs 132;" f powerFakeout src/Dodge/Room/Start.hs 27;" f powerFakeout' src/Dodge/Room/Start.hs 24;" f powerLegs src/Dodge/Item/Equipment.hs 85;" f @@ -4703,7 +4697,7 @@ qToV2 src/Quaternion.hs 56;" f qToV3 src/Quaternion.hs 53;" f quarterRoomSquare src/Dodge/Room/Procedural.hs 213;" f quarterRoomTri src/Dodge/Room/Procedural.hs 177;" f -quitCommand src/Dodge/Terminal.hs 117;" f +quitCommand src/Dodge/Terminal.hs 113;" f qz src/Quaternion.hs 71;" f rLauncher src/Dodge/Item/Held/Launcher.hs 14;" f rLauncherX src/Dodge/Item/Held/Launcher.hs 30;" f @@ -4770,7 +4764,7 @@ reflectPulseLaserAlong src/Dodge/Item/Weapon/LaserPath.hs 69;" f refract src/Dodge/Item/Weapon/LaserPath.hs 43;" f refreshOptionsSelectionList src/Dodge/Menu/Option.hs 38;" f regexCombs src/Dodge/DisplayInventory.hs 71;" f -regexList src/Dodge/DisplayInventory.hs 314;" f +regexList src/Dodge/DisplayInventory.hs 315;" f reload1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 602;" f reloadLevelStart src/Dodge/Save.hs 71;" f reloadS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 600;" f @@ -4891,7 +4885,6 @@ rprShift src/Dodge/PlacementSpot.hs 102;" f rsObjectColor src/Dodge/RadarSweep/Draw.hs 34;" f runPastStart src/Dodge/Room/Start.hs 71;" f runStateWorld src/Dodge/Randify.hs 17;" f -runTerminalInput src/Dodge/Terminal.hs 220;" f sPS src/Dodge/LevelGen/PlacementHelper.hs 27;" f safeAngleVV src/Geometry/Vector.hs 68;" f safeArgV src/Geometry/Vector.hs 87;" f @@ -4944,16 +4937,16 @@ seagullWhistle1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 502;" f seagullWhistleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 718;" f searchIfDamaged src/Dodge/Creature/ReaderUpdate.hs 205;" f secondColumnParams src/Dodge/ListDisplayParams.hs 43;" f -sectionsDesiredLines src/Dodge/DisplayInventory.hs 204;" f -sectionsSizes src/Dodge/DisplayInventory.hs 207;" f +sectionsDesiredLines src/Dodge/DisplayInventory.hs 205;" f +sectionsSizes src/Dodge/DisplayInventory.hs 208;" f seedStartMenu src/Dodge/Menu.hs 82;" f seedStartOptions src/Dodge/Menu.hs 85;" f segOnCirc src/Geometry.hs 114;" f -selNumPos src/Dodge/Render/HUD.hs 454;" f -selNumPosCardinal src/Dodge/Render/HUD.hs 477;" f +selNumPos src/Dodge/Render/HUD.hs 447;" f +selNumPosCardinal src/Dodge/Render/HUD.hs 470;" f selSecDrawCursor src/Dodge/Render/List.hs 126;" f selSecDrawCursorAt src/Dodge/Render/List.hs 104;" f -selSecSelCol src/Dodge/Render/HUD.hs 508;" f +selSecSelCol src/Dodge/Render/HUD.hs 501;" f selSecSelSize src/Dodge/SelectionSections.hs 180;" f selSecYint src/Dodge/SelectionSections.hs 189;" f selectCreatureDebugItem src/Dodge/Debug.hs 55;" f @@ -4961,7 +4954,7 @@ selectedItemScroll src/Dodge/Update/Scroll.hs 50;" f sensAboveDoor src/Dodge/Room/SensorDoor.hs 63;" f sensInsideDoor src/Dodge/Room/SensorDoor.hs 69;" f senseDamage src/Dodge/Machine/Update.hs 160;" f -sensorCommand src/Dodge/Terminal.hs 86;" f +sensorCommand src/Dodge/Terminal.hs 82;" f sensorRoom src/Dodge/Room/SensorDoor.hs 27;" f sensorRoomRunPast src/Dodge/Room/SensorDoor.hs 48;" f sensorSPic src/Dodge/Machine/Draw.hs 70;" f @@ -5097,7 +5090,7 @@ shuffleRoomPos src/Dodge/Layout.hs 78;" f shuffleTail src/RandomHelp.hs 59;" f sigmoid src/Dodge/Base.hs 151;" f simpleCrSprings src/Dodge/Update.hs 892;" f -simpleTermMessage src/Dodge/Terminal.hs 187;" f +simpleTermMessage src/Dodge/Terminal.hs 176;" f sineRaisePitchOneSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 680;" f sineRaisePitchTwoSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 472;" f singleAmmo src/Dodge/Item/AmmoSlots.hs 62;" f @@ -5147,7 +5140,7 @@ soundToVol src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 4;" f soundWithStatus src/Dodge/SoundLogic.hs 104;" f soundWithStatusVolume src/Dodge/SoundLogic.hs 54;" f southPillarsRoom src/Dodge/Room/LongDoor.hs 86;" f -spaceAction src/Dodge/Update/Input/InGame.hs 530;" f +spaceAction src/Dodge/Update/Input/InGame.hs 531;" f spanColLightBlackI src/Dodge/Placement/Instance/LightSource.hs 190;" f spanColLightI src/Dodge/Placement/Instance/LightSource.hs 183;" f spanLS src/Dodge/Placement/Instance/LightSource.hs 175;" f @@ -5245,7 +5238,7 @@ t src/ShortShow.hs 33;" f tEast src/Dodge/Room/Corridor.hs 90;" f tToBTree src/Dodge/Tree/Compose.hs 92;" f tWest src/Dodge/Room/Corridor.hs 115;" f -tabComplete src/Dodge/Terminal.hs 139;" f +tabComplete src/Dodge/Terminal.hs 135;" f takeN src/RandomHelp.hs 44;" f takeNMore src/RandomHelp.hs 41;" f takeOne src/RandomHelp.hs 22;" f @@ -5272,12 +5265,11 @@ targetYouWhenCognizant src/Dodge/Creature/SetTarget.hs 9;" f targetingScope src/Dodge/Item/Scope.hs 38;" f telRoomLev src/Dodge/Room/Teleport.hs 14;" f teleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 528;" f -termButton src/Dodge/Placement/Instance/Terminal.hs 51;" f termScreenColor src/Dodge/Terminal/Color.hs 10;" f -termSoundLine src/Dodge/Terminal.hs 56;" f -termTextColor src/Dodge/Terminal.hs 59;" f -terminalColor src/Dodge/Placement/Instance/Terminal.hs 60;" f -terminalReturnEffect src/Dodge/Terminal.hs 210;" f +termSoundLine src/Dodge/Terminal.hs 52;" f +termTextColor src/Dodge/Terminal.hs 55;" f +terminalColor src/Dodge/Placement/Instance/Terminal.hs 51;" f +terminalReturnEffect src/Dodge/Terminal.hs 179;" f terminalSPic src/Dodge/Machine/Draw.hs 29;" f terminalScreenGlow src/Dodge/Machine/Update.hs 35;" f terminalShape src/Dodge/Machine/Draw.hs 32;" f @@ -5296,7 +5288,7 @@ textJustifyCenter src/Picture/Base.hs 212;" f textJustifyLeft src/Picture/Base.hs 208;" f textJustifyRight src/Picture/Base.hs 198;" f textRight src/Picture/Base.hs 203;" f -textTerminal src/Dodge/Terminal.hs 42;" f +textTerminal src/Dodge/Terminal.hs 38;" f textVMirror src/Picture/Base.hs 216;" f tflat2 src/Picture/Data.hs 60;" f tflat3 src/Picture/Data.hs 64;" f @@ -5331,7 +5323,7 @@ tingS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 574;" f tinitusS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 566;" f titleOptionsMenu src/Dodge/Menu.hs 102;" f titleOptionsNoWrite src/Dodge/Menu.hs 105;" f -tlSetStatus src/Dodge/Terminal.hs 123;" f +tlSetStatus src/Dodge/Terminal.hs 119;" f tmUpdate src/Dodge/Update.hs 500;" f toBinary src/Dodge/Inventory/SelectionList.hs 138;" f toBothLnk src/Dodge/RoomLink.hs 121;" f @@ -5345,8 +5337,8 @@ toTopLeft src/Dodge/Render/List.hs 219;" 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 317;" f -toggleCommand src/Dodge/Terminal.hs 95;" f +toggleCombineInv src/Dodge/DisplayInventory.hs 318;" f +toggleCommand src/Dodge/Terminal.hs 91;" f toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 65;" f toggleExamineInv src/Dodge/Creature/Impulse/UseItem.hs 103;" f toggleJust src/MaybeHelp.hs 41;" f @@ -5362,7 +5354,7 @@ topTestPart src/Dodge/TestString.hs 60;" f torch src/Dodge/Item/Held/Utility.hs 23;" f torchShape src/Dodge/Item/Draw/SPic.hs 290;" f torqueAmount src/Dodge/HeldUse.hs 579;" f -torqueCr src/Dodge/WorldEffect.hs 70;" f +torqueCr src/Dodge/WorldEffect.hs 74;" f torso src/Dodge/Creature/Picture.hs 100;" f tractCr src/Dodge/TractorBeam/Update.hs 28;" f tractFlIt src/Dodge/TractorBeam/Update.hs 23;" f @@ -5418,7 +5410,7 @@ truncate src/Polyhedra/Geodesic.hs 38;" f trunkDepth src/TreeHelp.hs 161;" f tryAttachItems src/Dodge/Item/Grammar.hs 33;" f tryClickUse src/Dodge/Creature/YourControl.hs 221;" f -tryCombine src/Dodge/Update/Input/InGame.hs 551;" f +tryCombine src/Dodge/Update/Input/InGame.hs 552;" f tryDrawToCapacitor src/Dodge/Creature/State.hs 149;" f tryDropSelected src/Dodge/Update/Input/InGame.hs 126;" f tryGetChannel src/Sound.hs 97;" f @@ -5472,7 +5464,7 @@ unusedSpotNearInLink src/Dodge/PlacementSpot.hs 191;" f updateAimPos src/Dodge/Update.hs 321;" f updateAllNodes src/TreeHelp.hs 85;" f updateArc src/Dodge/Tesla.hs 44;" f -updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 478;" f +updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 479;" f updateBarrel src/Dodge/Barreloid.hs 41;" f updateBarreloid src/Dodge/Barreloid.hs 15;" f updateBaseWheelEvent src/Dodge/Update/Scroll.hs 33;" f @@ -5502,7 +5494,7 @@ updateDust src/Dodge/Update.hs 853;" f updateDusts src/Dodge/Update.hs 700;" f updateEnergyBall src/Dodge/EnergyBall.hs 31;" f updateEnergyBalls src/Dodge/Update.hs 688;" f -updateEnterRegex src/Dodge/Update/Input/InGame.hs 505;" f +updateEnterRegex src/Dodge/Update/Input/InGame.hs 506;" f updateExpBarrel src/Dodge/Barreloid.hs 20;" f updateFBOTO src/Framebuffer/Update.hs 97;" f updateFBOTO3 src/Framebuffer/Update.hs 131;" f @@ -5516,20 +5508,20 @@ updateHumanoid src/Dodge/Humanoid.hs 13;" f updateIMl src/Dodge/Update.hs 553;" f updateIMl' src/Dodge/Update.hs 558;" f updateInGameCamera src/Dodge/Update/Camera.hs 79;" f -updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 425;" f +updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 426;" f updateInt2Map src/Dodge/Zoning/Base.hs 92;" f updateInventoryPositioning src/Dodge/DisplayInventory.hs 86;" f updateItemTargeting src/Dodge/Creature/State.hs 259;" f -updateKeyContinueTerminal src/Dodge/Update/Input/InGame.hs 392;" f -updateKeyInGame src/Dodge/Update/Input/InGame.hs 419;" f +updateKeyContinueTerminal src/Dodge/Update/Input/InGame.hs 393;" f +updateKeyInGame src/Dodge/Update/Input/InGame.hs 420;" f updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 384;" f -updateKeysTextInputTerminal src/Dodge/Update/Input/InGame.hs 401;" f +updateKeysTextInputTerminal src/Dodge/Update/Input/InGame.hs 402;" f updateLampoid src/Dodge/Lampoid.hs 12;" f updateLaser src/Dodge/Laser/Update.hs 11;" f updateLasers src/Dodge/Update.hs 450;" f updateLeftParentSF src/Dodge/Item/Grammar.hs 169;" f updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f -updateLongPressInGame src/Dodge/Update/Input/InGame.hs 438;" f +updateLongPressInGame src/Dodge/Update/Input/InGame.hs 439;" f updateMachine src/Dodge/Machine/Update.hs 20;" f updateMagnets src/Dodge/Update.hs 329;" f updateMouseClickInGame src/Dodge/Update/Input/InGame.hs 198;" f @@ -5559,8 +5551,8 @@ updateRightParentSF src/Dodge/Item/Grammar.hs 180;" f updateRootItemID src/Dodge/Inventory/Location.hs 35;" f updateScopeZoom src/Dodge/Update/Scroll.hs 76;" f updateScrollTestValue src/Dodge/ScrollValue.hs 6;" f -updateSection src/Dodge/DisplayInventory.hs 264;" f -updateSectionsPositioning src/Dodge/DisplayInventory.hs 243;" f +updateSection src/Dodge/DisplayInventory.hs 265;" f +updateSectionsPositioning src/Dodge/DisplayInventory.hs 244;" f updateShockwave src/Dodge/Shockwave/Update.hs 8;" f updateShockwaves src/Dodge/Update.hs 682;" f updateSingleNodes src/TreeHelp.hs 97;" f @@ -5740,7 +5732,7 @@ yV2 src/Geometry/Vector.hs 210;" f yellow src/Color.hs 17;" f you src/Dodge/Base/You.hs 12;" f youDropItem src/Dodge/Creature/Action.hs 190;" f -yourAugmentedItem src/Dodge/Render/HUD.hs 236;" f +yourAugmentedItem src/Dodge/Render/HUD.hs 231;" 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