diff --git a/src/Dodge/Data/Machine/Sensor.hs b/src/Dodge/Data/Machine/Sensor.hs index 182085151..859e865dc 100644 --- a/src/Dodge/Data/Machine/Sensor.hs +++ b/src/Dodge/Data/Machine/Sensor.hs @@ -36,7 +36,6 @@ data Sensor data ProximityRequirement = RequireHealth {_proxReqMinHealth :: Int} | RequireEquipment {_proxReqEquipment :: ItemType} - | RequireImpossible deriving (Show) --deriving (Eq, Ord, Show, Read) --Generic, Flat) diff --git a/src/Dodge/Data/Terminal.hs b/src/Dodge/Data/Terminal.hs index 538112edd..09c7b6044 100644 --- a/src/Dodge/Data/Terminal.hs +++ b/src/Dodge/Data/Terminal.hs @@ -14,7 +14,7 @@ import Data.Aeson import Data.Aeson.TH import qualified Data.Map.Strict as M import Dodge.Data.BlBl -import Dodge.Data.Machine.Sensor.Type +--import Dodge.Data.Machine.Sensor.Type import Dodge.Data.Terminal.Status import Dodge.Data.WorldEffect import Sound.Data @@ -63,7 +63,7 @@ data TmWdWd | TmWdWdDoDeathTriggers | TmTmClearDisplayedLines | TmTmSetStatus TerminalStatus - | TmGetDamageCoding SensorType +-- | TmGetDamageCoding SensorType | TmGetSensor String makeLenses ''Terminal diff --git a/src/Dodge/Default.hs b/src/Dodge/Default.hs index b0f1fd6df..7c9ae67e3 100644 --- a/src/Dodge/Default.hs +++ b/src/Dodge/Default.hs @@ -69,6 +69,6 @@ defaultProximitySensor = ProximitySensor { _proxStatus = NotClose , _proxDist = 40 - , _proxRequirement = RequireImpossible + , _proxRequirement = RequireHealth 0 , _sensToggle = False } diff --git a/src/Dodge/Placement/Instance/Analyser.hs b/src/Dodge/Placement/Instance/Analyser.hs index 53507feb2..ebec7913a 100644 --- a/src/Dodge/Placement/Instance/Analyser.hs +++ b/src/Dodge/Placement/Instance/Analyser.hs @@ -1,6 +1,4 @@ -module Dodge.Placement.Instance.Analyser ( - analyser, -) where +module Dodge.Placement.Instance.Analyser (analyser) where import Color import Dodge.Data.GenWorld @@ -9,11 +7,7 @@ import Dodge.Placement.Instance import Dodge.Terminal import LensHelp -analyser :: - ProximityRequirement -> - PlacementSpot -> - PlacementSpot -> - Placement +analyser :: ProximityRequirement -> PlacementSpot -> PlacementSpot -> Placement analyser proxreq pslight psmc = extTrigLitPos pslight $ \tp -> Just $ plSpot .~ psmc $ diff --git a/src/Dodge/Placement/Instance/Sensor.hs b/src/Dodge/Placement/Instance/Sensor.hs index 2e0f9834c..26100c6fc 100644 --- a/src/Dodge/Placement/Instance/Sensor.hs +++ b/src/Dodge/Placement/Instance/Sensor.hs @@ -12,12 +12,7 @@ import Dodge.LevelGen.PlacementHelper import Dodge.LightSource import Geometry -damageSensor :: - SensorType -> - Float -> - Maybe Int -> - PlacementSpot -> - Placement +damageSensor :: SensorType -> Float -> Maybe Int -> PlacementSpot -> Placement damageSensor dt wdth mtrid ps = pContID ps (PutLS $ lsPosCol (V3 0 0 30) 0.1) $ \lsid -> psPtJpl ps . PutUsingGenParams diff --git a/src/Dodge/Room/SensorDoor.hs b/src/Dodge/Room/SensorDoor.hs index 6e2c8f634..7f8914f0f 100644 --- a/src/Dodge/Room/SensorDoor.hs +++ b/src/Dodge/Room/SensorDoor.hs @@ -1,7 +1,5 @@ --{-# LANGUAGE TupleSections #-} -module Dodge.Room.SensorDoor where - ---import Dodge.RoomLink +module Dodge.Room.SensorDoor (sensAboveDoor,sensorRoomRunPast) where import qualified Data.Set as S import Dodge.Annotation.Data @@ -28,8 +26,7 @@ sensorRoom :: RandomGen g => SensorType -> Int -> State g (Tree Room) sensorRoom senseType n = do rm <- takeOne [roomNgon 8 200, roomRectAutoLinks 200 200] cenroom <- shuffleLinks $ sensInsideDoor senseType n rm - return $ - treePost + return $ treePost [ door , cenroom & rmLinkEff .~ f , triggerDoorRoom n @@ -48,17 +45,9 @@ sensorRoom senseType n = do sensorRoomRunPast :: RandomGen g => SensorType -> Int -> State g MTRS sensorRoomRunPast dt n = do t <- sensorRoom dt n - rToOnward "sensorRoomRunPast" $ - t - & applyToSubforest - [0] - ( ++ - [ treePost - [ door & rmConnectsTo .~ (\s -> S.member InLink s && not (S.member BlockedLink s)) - , cleatLabel n corridor - ] - ] - ) + rToOnward "sensorRoomRunPast" $ t + & applyToSubforest [0] + ( ++ [ treePost [ door & rmConnectsTo .~ (\s -> S.member InLink s && not (S.member BlockedLink s)) , cleatLabel n corridor ] ]) sensAboveDoor :: SensorType -> Float -> PlacementSpot -> Placement sensAboveDoor sensetype wth ps = @@ -67,14 +56,14 @@ sensAboveDoor sensetype wth ps = (\tp -> Just $ damageSensor sensetype wth (_plMID tp) ps) sensInsideDoor :: SensorType -> Int -> Room -> Room -sensInsideDoor senseType outplid rm = - rm - & rmName .++~ take 4 (show senseType) - & rmPmnts - .++~ [ psPt atFstLnkOut . PutForeground $ floorWire (V2 20 0) (V2 20 (-100)) - , psPt atFstLnkOut . PutForeground $ floorWire (V2 0 (-100)) (V2 20 (-100)) - , psPt atFstLnkOut . PutForeground $ verticalWire (V2 20 0) 0 80 - , putMessageTerminal terminalColor (textTerminal & tmCommands .:~ TCDamageCommand) - & plSpot .~ rprBoolShift isUnusedLnk (shiftInBy 10) - ] - & rmOutPmnt .~ [OutPlacement (sensAboveDoor senseType 10 (atFstLnkOutShiftInward 100)) outplid] +sensInsideDoor senseType outplid rm = rm + & rmName .++~ take 4 (show senseType) + & rmPmnts + .++~ [ psPt atFstLnkOut . PutForeground $ floorWire (V2 20 0) (V2 20 (-100)) + , psPt atFstLnkOut . PutForeground $ floorWire (V2 0 (-100)) (V2 20 (-100)) + , psPt atFstLnkOut . PutForeground $ verticalWire (V2 20 0) 0 80 + , putMessageTerminal terminalColor + (textTerminal & tmCommands .:~ TCDamageCommand) + & plSpot .~ rprBoolShift isUnusedLnk (shiftInBy 10) + ] + & rmOutPmnt .~ [OutPlacement (sensAboveDoor senseType 10 (atFstLnkOutShiftInward 100)) outplid] diff --git a/src/Dodge/Room/Warning.hs b/src/Dodge/Room/Warning.hs index 0fb9a8437..f971a5e97 100644 --- a/src/Dodge/Room/Warning.hs +++ b/src/Dodge/Room/Warning.hs @@ -1,5 +1,5 @@ --{-# LANGUAGE TupleSections #-} -module Dodge.Room.Warning where +module Dodge.Room.Warning (warningRooms) where import Dodge.Data.BlBl import Color @@ -21,10 +21,6 @@ import Geometry import LensHelp import RandomHelp ---import Data.Char ---import Data.Tree ---import qualified Data.Text as T - warningRooms :: RandomGen g => String -> Int -> State g (MetaTree Room String) warningRooms str n = do rm <- do @@ -34,8 +30,7 @@ warningRooms str n = do rToOnward "warningRooms" $ treePost [door, cenroom, triggerDoorRoom n, cleatOnward door] addWarningTerminal :: String -> Int -> Room -> Room -addWarningTerminal str outplid = - (rmName .++~ "warningTerm-") +addWarningTerminal str outplid = (rmName .++~ "warningTerm-") . (rmOutPmnt .~ [OutPlacement outplace outplid]) where outplace = @@ -48,21 +43,32 @@ addWarningTerminal str outplid = termMessages trpl = lineOutputTerminal (makeColorTermLine red "WARNING" : makeTermPara str) & tmCommands .:~ TCToggles - & tmToggles - .~ M.fromList + & tmToggles .~ M.fromList [("DOOR", TerminalToggle (fromJust $ _plMID trpl) (BlConst True))] moveToSideFirstOutLink :: RoomPos -> Room -> Maybe (Point2, Float) -moveToSideFirstOutLink rp rm = case rp ^? rpLinkStatus . rplsChildNum of - Just 0 -> - let rppos = _rpPos rp - rpdir = _rpDir rp - inpos = rppos +.+ rotateV rpdir (V2 0 (-12.5)) - rtpos = inpos +.+ rotateV rpdir (V2 30 0) - ltpos = inpos +.+ rotateV rpdir (V2 (-30) 0) - in if any (isJust . intersectSegPolyFirst inpos ltpos) (_rmPolys rm) - then -- the above test may not work properly if the room polys are - -- complicated, it should really use created walls... - Just (rtpos, rpdir) - else Just (ltpos, rpdir) - _ -> Nothing +moveToSideFirstOutLink rp rm = do + 0 <- rp ^? rpLinkStatus . rplsChildNum + let rppos = _rpPos rp + rpdir = _rpDir rp + inpos = rppos +.+ rotateV rpdir (V2 0 (-12.5)) + rtpos = inpos +.+ rotateV rpdir (V2 30 0) + ltpos = inpos +.+ rotateV rpdir (V2 (-30) 0) + return $ if any (isJust . intersectSegPolyFirst inpos ltpos) (_rmPolys rm) + then -- the above test may not work properly if the room polys are + -- complicated, it should really use created walls... + (rtpos, rpdir) + else (ltpos, rpdir) +--moveToSideFirstOutLink rp rm = case rp ^? rpLinkStatus . rplsChildNum of +-- Just 0 -> +-- let rppos = _rpPos rp +-- rpdir = _rpDir rp +-- inpos = rppos +.+ rotateV rpdir (V2 0 (-12.5)) +-- rtpos = inpos +.+ rotateV rpdir (V2 30 0) +-- ltpos = inpos +.+ rotateV rpdir (V2 (-30) 0) +-- in if any (isJust . intersectSegPolyFirst inpos ltpos) (_rmPolys rm) +-- then -- the above test may not work properly if the room polys are +-- -- complicated, it should really use created walls... +-- Just (rtpos, rpdir) +-- else Just (ltpos, rpdir) +-- _ -> Nothing diff --git a/src/Dodge/Terminal.hs b/src/Dodge/Terminal.hs index 840b6a09f..afc69176b 100644 --- a/src/Dodge/Terminal.hs +++ b/src/Dodge/Terminal.hs @@ -52,38 +52,46 @@ termSoundLine sid = TLine 0 [] (TmWdWdTermSound sid) termTextColor :: Color termTextColor = greyN 0.9 -getCommands :: Terminal -> PTE.TrieMap Char (PTE.TrieMap Char [TerminalLine]) -getCommands tm = foldMap (getCommand tm) $ tm ^. tmCommands +getCommands :: World -> Terminal -> PTE.TrieMap Char (PTE.TrieMap Char [TerminalLine]) +getCommands w tm = foldMap (getCommand w tm) $ tm ^. tmCommands -getCommand :: Terminal -> TCom -> PTE.TrieMap Char (PTE.TrieMap Char [TerminalLine]) -getCommand tm = \case +getCommand :: World + -> Terminal -> TCom -> PTE.TrieMap Char (PTE.TrieMap Char [TerminalLine]) +getCommand w tm = \case TCInfo x z -> PTE.singleton x (PTE.singleton "" (makeTermPara z)) TCBase -> helpCommand <> quitCommand - TCDamageCommand -> damageCodeCommand + TCDamageCommand -> damageCodeCommand w TCToggles -> toggleCommand tm - TCSensorInfo -> sensorCommand + TCSensorInfo -> sensorCommand w tm -damageCodeCommand :: PTE.TrieMap Char (PTE.TrieMap Char [TerminalLine]) -damageCodeCommand = PTE.singleton "DAMAGECODE" $ PTE.fromList $ mapMaybe f [minBound ..] +damageCodeCommand :: World -> PTE.TrieMap Char (PTE.TrieMap Char [TerminalLine]) +damageCodeCommand w = PTE.singleton "DAMAGECODE" $ PTE.fromList $ mapMaybe f [minBound ..] where f :: SensorType -> Maybe (String, [TerminalLine]) f st = do s <- g st - return (s, [TLine 0 [] $ TmGetDamageCoding st]) + return (s, decodeSensorType st w) g = fmap (map toUpper . reverse) . List.stripPrefix (reverse "Sensor") . reverse . show +decodeSensorType :: SensorType -> World -> [TerminalLine] +decodeSensorType st w = fromMaybe [] $ do + x <- w ^? cWorld . cwGen . cwgParams . sensorCoding . ix st + return [makeTermLine $ show x] + + -- ugly, when changing check getSensorInfo -sensorCommand :: PTE.TrieMap Char (PTE.TrieMap Char [TerminalLine]) -sensorCommand = - PTE.singleton "SENSOR" $ - PTE.fromList - [ ("REQUIREMENT", []) - , ("DISTANCE", []) - , ("STATUS", []) +sensorCommand :: World -> Terminal -> PTE.TrieMap Char (PTE.TrieMap Char [TerminalLine]) +sensorCommand w tm = PTE.singleton "SENSOR" $ fromMaybe mempty $ do + ProximitySensor _ d r b <- w ^? cWorld . lWorld . machines . ix (tm ^. tmMachineID) . mcType . _McSensor + return $ PTE.fromList + [ ("REQUIREMENT", [makeTermLine $ show r] ) + , ("RADIUS", [makeTermLine $ show d]) + , ("STATUS", [makeTermLine $ show b]) ] + toggleCommand :: Terminal -> PTE.TrieMap Char (PTE.TrieMap Char [TerminalLine]) toggleCommand tm = @@ -132,10 +140,10 @@ commandColor :: Color commandColor = yellow -- ugly -tabComplete :: String -> Terminal -> Terminal -tabComplete s' tm = case PTE.lookup s $ getCommands tm of +tabComplete :: String -> World -> Terminal -> Terminal +tabComplete s' w tm = case PTE.lookup s $ getCommands w tm of Just m -> f (s ++ " ") $ PTE.toList $ PTE.lookupPrefix a m - Nothing -> f "" $ PTE.toList $ PTE.lookupPrefix s $ getCommands tm + Nothing -> f "" $ PTE.toList $ PTE.lookupPrefix s $ getCommands w tm where ss = words s' s = fromMaybe "" $ ss ^? ix 0 @@ -183,7 +191,7 @@ terminalReturnEffect tmid w = fromMaybe w $ do let ss = fromMaybe [makeTermLine "ERROR: INPUT NOT RECOGNISED"] $ do let args = words s x <- args ^? ix 0 - teff <- PTE.lookup x (getCommands tm) + teff <- PTE.lookup x (getCommands w tm) let y = fromMaybe "" (args ^? ix 1) PTE.lookup y teff return $ w diff --git a/src/Dodge/Update/Input/InGame.hs b/src/Dodge/Update/Input/InGame.hs index 4662dd5ff..5200e4f2b 100644 --- a/src/Dodge/Update/Input/InGame.hs +++ b/src/Dodge/Update/Input/InGame.hs @@ -407,7 +407,7 @@ updateKeysTextInputTerminal tmid u = tryTabComplete | u ^. uvWorld . input . pressedKeys . at ScancodeTab == Just 0 = fromMaybe id $ do s <- u ^? uvWorld . cWorld . lWorld . terminals . ix tmid . tmStatus . tiText - return $ uvWorld . cWorld . lWorld . terminals . ix tmid %~ tabComplete s + return $ uvWorld . cWorld . lWorld . terminals . ix tmid %~ tabComplete s (u ^. uvWorld) | otherwise = id updateKeyInGame :: Universe -> Scancode -> Int -> Universe diff --git a/src/Dodge/Update/Scroll.hs b/src/Dodge/Update/Scroll.hs index 64c5f0f66..fa0ba2064 100644 --- a/src/Dodge/Update/Scroll.hs +++ b/src/Dodge/Update/Scroll.hs @@ -138,13 +138,13 @@ terminalWheelEvent yi tmid w wrapup s coms = PTE.findSuccessor s coms <|> PTE.findMin coms wrapdown s coms = PTE.findPredecessor s coms <|> PTE.findMax coms f tm = fromMaybe tm $ do - let coms = getCommands tm + let coms = getCommands w tm x <- tm ^? tmStatus . tiText let s = fromMaybe "" $ x ^? to words . ix 0 (s',_) <- dowrap s coms return $ tm & tmStatus . tiText .~ s' g tm = fromMaybe tm $ do - let coms = getCommands tm + let coms = getCommands w tm x <- tm ^? tmStatus . tiText let s = fromMaybe "" $ x ^? to words . ix 0 y = fromMaybe "" $ x ^? to words . ix 1 diff --git a/src/Dodge/WorldEffect.hs b/src/Dodge/WorldEffect.hs index e98358750..ea2d9703c 100644 --- a/src/Dodge/WorldEffect.hs +++ b/src/Dodge/WorldEffect.hs @@ -101,26 +101,18 @@ doTmWdWd tmwdwd = case tmwdwd of TmTmClearDisplayedLines -> \tm -> fromMaybe id $ do tid <- tm ^? tmID return $ cWorld . lWorld . terminals . ix tid . tmDisplayedLines .~ [] - TmGetDamageCoding st -> \tm w -> fromMaybe w $ do - tid <- tm ^? tmID - return $ - w & cWorld . lWorld . terminals . ix tid . tmFutureLines - .~ decodeSensorType st w +-- TmGetDamageCoding st -> \tm w -> fromMaybe w $ do +-- tid <- tm ^? tmID +-- return $ +-- w & cWorld . lWorld . terminals . ix tid . tmFutureLines +-- .~ decodeSensorType st w TmGetSensor s -> \tm w -> fromMaybe w $ do tid <- tm ^? tmID - return $ w & cWorld . lWorld . terminals . ix tid . tmFutureLines .~ getSensorInfo w tm s + return $ w & cWorld . lWorld . terminals . ix tid . tmFutureLines + .~ getSensorInfo w tm s TmTmSetStatus x -> \tm -> fromMaybe id $ do tid <- tm ^? tmID return $ cWorld . lWorld . terminals . ix tid . tmStatus .~ x - -- TmDisplayCommands -> \tm -> fromMaybe id $ do - -- tid <- tm ^? tmID - -- return $ cWorld . lWorld . terminals . ix tid %~ tabComplete "" - --return $ cWorld . lWorld . terminals . ix tid . tmFutureLines .~ - -- makeColorTermPara commandColor - -- (unwords (map fst (PTE.toList $ getCommands tm))) - -- TmTmSetPartialCommand x -> \tm -> fromMaybe id $ do - -- tid <- tm ^? tmID - -- return $ cWorld . lWorld . terminals . ix tid . tmPartialCommand .~ x TmWdId -> const id TmWdWdPowerDownTerminal -> powerDownTerminal TmWdWdDeactivateTerminal -> deactivateTerminal @@ -149,11 +141,6 @@ exitTerminalSubInv w = case w ^? hud . hudElement . subInventory . termID of .~ NoSubInventory --MouseInvNothing _ -> w -decodeSensorType :: SensorType -> World -> [TerminalLine] -decodeSensorType st w = fromMaybe [] $ do - x <- w ^? cWorld . cwGen . cwgParams . sensorCoding . ix st - return [makeTermLine $ show x] - -- ugly, when changing check sensorCommand getSensorInfo :: World -> Terminal -> String -> [TerminalLine] getSensorInfo w tm = \case diff --git a/tags b/tags index 577e36cb6..0bf6fb402 100644 --- a/tags +++ b/tags @@ -223,7 +223,7 @@ ChooseMovementSpreadGun src/Dodge/Data/CreatureEffect.hs 61;" C Circ_collision_test src/Dodge/Data/Config.hs 85;" C Climate src/Dodge/Data/Scenario.hs 32;" C CloseToMelee src/Dodge/Data/ActionPlan.hs 187;" C -CloseToggle src/Dodge/Data/Machine/Sensor.hs 44;" t +CloseToggle src/Dodge/Data/Machine/Sensor.hs 43;" t Close_shape_culling src/Dodge/Data/Config.hs 79;" C Cloud src/Dodge/Data/Cloud.hs 14;" t CloudType src/Dodge/Data/Cloud.hs 22;" t @@ -619,7 +619,7 @@ InventorySound src/Dodge/Data/SoundOrigin.hs 13;" C Investigate src/Dodge/Data/ActionPlan.hs 184;" C Invisible src/Dodge/Data/CamouflageStatus.hs 7;" C InwardShockwave src/Dodge/Data/Shockwave.hs 14;" C -IsClose src/Dodge/Data/Machine/Sensor.hs 44;" C +IsClose src/Dodge/Data/Machine/Sensor.hs 43;" C IsolationUnitSS src/Dodge/Data/Scenario.hs 101;" C ItCrWdItemHeldEffect src/Dodge/Data/WorldEffect.hs 16;" C ItCrWdItemHeldEffectNoHammer src/Dodge/Data/WorldEffect.hs 17;" C @@ -884,7 +884,7 @@ North src/Dodge/Data/CardinalPoint.hs 4;" C North8 src/Dodge/Data/CardinalPoint.hs 11;" C NorthEast8 src/Dodge/Data/CardinalPoint.hs 12;" C NorthWest8 src/Dodge/Data/CardinalPoint.hs 18;" C -NotClose src/Dodge/Data/Machine/Sensor.hs 44;" C +NotClose src/Dodge/Data/Machine/Sensor.hs 43;" C NotLink src/Dodge/Data/Room.hs 66;" C NotPushed src/Dodge/Data/Door.hs 30;" C Nothing' src/MaybeHelp.hs 13;" C @@ -1140,7 +1140,6 @@ RenderData src/Data/Preload/Render.hs 13;" t ReplaceEquipment src/Dodge/Data/RightButtonOptions.hs 32;" C RequireEquipment src/Dodge/Data/Machine/Sensor.hs 38;" C RequireHealth src/Dodge/Data/Machine/Sensor.hs 37;" C -RequireImpossible src/Dodge/Data/Machine/Sensor.hs 39;" C ResFactor src/Dodge/Data/Config.hs 97;" t ResearchFacility src/Dodge/Data/Scenario.hs 62;" C ResourceFailure src/Dodge/Data/Scenario.hs 29;" C @@ -1366,7 +1365,6 @@ Tile src/Data/Tile.hs 16;" t Tiled src/Data/Tile.hs 14;" C TimeFlowStatus src/Dodge/Data/World.hs 58;" t Tiny src/Shape/Data.hs 32;" C -TmGetDamageCoding src/Dodge/Data/Terminal.hs 66;" C TmGetSensor src/Dodge/Data/Terminal.hs 67;" C TmTmClearDisplayedLines src/Dodge/Data/Terminal.hs 64;" C TmTmSetStatus src/Dodge/Data/Terminal.hs 65;" C @@ -2607,7 +2605,7 @@ addSideEffect src/Dodge/Concurrent.hs 29;" f addSouthPillars src/Dodge/Room/LongDoor.hs 89;" f addTermSignal src/Dodge/Event/Input.hs 31;" f addToTrunk src/TreeHelp.hs 156;" f -addWarningTerminal src/Dodge/Room/Warning.hs 36;" f +addWarningTerminal src/Dodge/Room/Warning.hs 32;" f addZ src/Geometry/Vector3D.hs 89;" f adjustIMZone src/Dodge/Base.hs 81;" f advanceScrollAmount src/Dodge/Update.hs 433;" f @@ -2631,7 +2629,7 @@ alteRifle src/Dodge/Item/Held/Cane.hs 22;" f ammoMagInfo src/Dodge/Item/Info.hs 49;" f ammoMagSPic src/Dodge/Item/Draw/SPic.hs 145;" f amr src/Dodge/Item/Held/Rod.hs 34;" f -analyser src/Dodge/Placement/Instance/Analyser.hs 12;" f +analyser src/Dodge/Placement/Instance/Analyser.hs 10;" f analyserByDoor src/Dodge/Room/LasTurret.hs 77;" f andOrRegex src/Dodge/DisplayInventory.hs 78;" f angleBetween src/Geometry.hs 161;" f @@ -2928,7 +2926,7 @@ cogRaised src/Dodge/Creature/Perception.hs 102;" f colCrWall src/Dodge/WallCreatureCollisions.hs 28;" f colCrsWalls src/Dodge/WallCreatureCollisions.hs 18;" f collectDamageTypes src/Dodge/Damage.hs 53;" f -collectInvItems src/Dodge/Update/Input/InGame.hs 302;" f +collectInvItems src/Dodge/Update/Input/InGame.hs 289;" f collide3 src/Dodge/Base/Collide.hs 119;" f collide3Chasm src/Dodge/Base/Collide.hs 103;" f collide3Chasms src/Dodge/Base/Collide.hs 96;" f @@ -2957,7 +2955,7 @@ 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 131;" f +commandColor src/Dodge/Terminal.hs 139;" f commonPrefix src/Dodge/Debug/Terminal.hs 146;" f comp src/Quaternion.hs 65;" f compactDraw src/Dodge/LevelGen.hs 91;" f @@ -2969,14 +2967,14 @@ composeTree src/Dodge/Tree/Compose.hs 46;" f computerBeepingS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 640;" f conEffects src/Dodge/Concurrent.hs 12;" f conLDTToConDT src/Dodge/DoubleTree.hs 22;" f -concurrentIS src/Dodge/Update/Input/InGame.hs 294;" f +concurrentIS src/Dodge/Update/Input/InGame.hs 281;" f connectItemS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 722;" f connectionBlurb src/Dodge/Terminal.hs 46;" f connectionBlurbLines src/Dodge/Terminal.hs 38;" 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 405;" f +continueTerminal src/Dodge/Update/Input/InGame.hs 392;" f convexHull src/Geometry/Polygon.hs 110;" f convexHullSafe src/Geometry/Polygon.hs 117;" f convexPolysOverlap src/Geometry/ConvexPoly.hs 50;" f @@ -3098,7 +3096,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 66;" f +damageCodeCommand src/Dodge/Terminal.hs 67;" f damageCrWl src/Dodge/Damage.hs 29;" f damageCrWlID src/Dodge/Damage.hs 23;" f damageDirection src/Dodge/Damage.hs 35;" f @@ -3110,7 +3108,7 @@ damageMetal src/Dodge/Material/Damage.hs 55;" f damageSensor src/Dodge/Placement/Instance/Sensor.hs 15;" f damageStone src/Dodge/Material/Damage.hs 25;" f damageThingHit src/Dodge/Bullet.hs 176;" f -damageTypeThreshold src/Dodge/Placement/Instance/Sensor.hs 45;" f +damageTypeThreshold src/Dodge/Placement/Instance/Sensor.hs 40;" f damageWall src/Dodge/Wall/Damage.hs 15;" f damsToExpBarrel src/Dodge/Barreloid.hs 46;" f dark src/Color.hs 108;" f @@ -3120,7 +3118,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 139;" f +deactivateTerminal src/Dodge/WorldEffect.hs 131;" 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 @@ -3140,7 +3138,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 152;" f +decodeSensorType src/Dodge/Terminal.hs 79;" 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 @@ -3314,7 +3312,7 @@ 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 451;" f +doRegexInput src/Dodge/Update/Input/InGame.hs 438;" f doRoomInPlacements src/Dodge/Layout.hs 97;" f doRoomOutPlacements src/Dodge/Layout.hs 107;" f doRoomPlacements src/Dodge/Layout.hs 122;" f @@ -3528,8 +3526,8 @@ encircleCloseP src/Dodge/Creature/Boid.hs 36;" f encircleDistP src/Dodge/Creature/Boid.hs 22;" f encircleP src/Dodge/Creature/Boid.hs 28;" f endArcPos src/Dodge/Tesla.hs 87;" f -endCombineRegex src/Dodge/Update/Input/InGame.hs 271;" f -endRegex src/Dodge/Update/Input/InGame.hs 258;" f +endCombineRegex src/Dodge/Update/Input/InGame.hs 261;" f +endRegex src/Dodge/Update/Input/InGame.hs 252;" f energyReleaseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 592;" f enterCombineInv src/Dodge/DisplayInventory.hs 324;" f epText src/Dodge/Inventory/SelectionList.hs 76;" f @@ -3554,7 +3552,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/WorldEffect.hs 145;" f +exitTerminalSubInv src/Dodge/WorldEffect.hs 137;" f expandLine src/Dodge/Picture.hs 30;" f expandPolyBy src/Dodge/LevelGen/StaticWalls.hs 91;" f expandPolyByFixed src/Dodge/LevelGen/StaticWalls.hs 97;" f @@ -3690,7 +3688,7 @@ 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 547;" f +getCloseObj src/Dodge/Update/Input/InGame.hs 529;" f getCommand src/Dodge/Terminal.hs 58;" f getCommands src/Dodge/Terminal.hs 55;" f getCrMoveSpeed src/Dodge/Creature/Statistics.hs 45;" f @@ -3711,7 +3709,7 @@ getPretty src/AesonHelp.hs 8;" f getPromptTM src/Dodge/Terminal/Type.hs 6;" f getRootItemBounds src/Dodge/Render/HUD.hs 93;" f getSelectedCloseObj src/Dodge/SelectedClose.hs 14;" f -getSensorInfo src/Dodge/WorldEffect.hs 158;" f +getSensorInfo src/Dodge/WorldEffect.hs 145;" f getSmoothScrollValue src/Dodge/SmoothScroll.hs 21;" f getSplitString src/Dodge/Debug/Terminal.hs 126;" f getTiles src/Dodge/Layout.hs 208;" f @@ -3811,9 +3809,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 101;" f +helpCommand src/Dodge/Terminal.hs 109;" f helpPoly3D src/Polyhedra.hs 125;" f -helpStrings src/Dodge/Terminal.hs 104;" f +helpStrings src/Dodge/Terminal.hs 112;" f heron src/Geometry.hs 221;" f hiToFloat src/Dodge/Room/Modify/Girder.hs 171;" f highBar src/Dodge/Room/Foreground.hs 89;" f @@ -3934,7 +3932,7 @@ isAnimate src/Dodge/Creature/Test.hs 144;" f isCognizant src/Dodge/Creature/Perception.hs 106;" f isConnected src/Dodge/Inventory/Swap.hs 74;" f isElectrical src/Dodge/Machine/Update.hs 80;" f -isGroupSelectableSection src/Dodge/Update/Input/InGame.hs 194;" f +isGroupSelectableSection src/Dodge/Update/Input/InGame.hs 188;" f isInLnk src/Dodge/PlacementSpot.hs 160;" f isJust' src/MaybeHelp.hs 29;" f isLHS src/Geometry/LHS.hs 8;" f @@ -4065,7 +4063,7 @@ liShape src/Dodge/Placement/Instance/LightSource.hs 98;" f light src/Color.hs 104;" f lightSensByDoor src/Dodge/Room/LasTurret.hs 46;" f lightSensInsideDoor src/Dodge/Room/LasTurret.hs 36;" f -lightSensor src/Dodge/Placement/Instance/Sensor.hs 52;" f +lightSensor src/Dodge/Placement/Instance/Sensor.hs 47;" f lightsToRender src/Dodge/Render/Lights.hs 14;" f lightx4 src/Color.hs 145;" f linGrad src/Geometry/Intersect.hs 250;" f @@ -4162,8 +4160,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 128;" f -makeColorTermPara src/Dodge/Terminal.hs 125;" f +makeColorTermLine src/Dodge/Terminal.hs 136;" f +makeColorTermPara src/Dodge/Terminal.hs 133;" 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 @@ -4199,8 +4197,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 113;" f -makeTermPara src/Dodge/Terminal.hs 122;" f +makeTermLine src/Dodge/Terminal.hs 121;" f +makeTermPara src/Dodge/Terminal.hs 130;" f makeTeslaArc src/Dodge/Tesla.hs 29;" f makeTeslaExplosionAt src/Dodge/WorldEvent/Explosion.hs 40;" f makeTileFromPoly src/Tile.hs 34;" f @@ -4220,7 +4218,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 568;" f +maybeExitCombine src/Dodge/Update/Input/InGame.hs 551;" f maybeOpenConsole src/Dodge/Update.hs 131;" f maybeReadFile src/Dodge/LoadSeed.hs 10;" f maybeTakeOne src/RandomHelp.hs 116;" f @@ -4313,7 +4311,7 @@ moveProjectile src/Dodge/Projectile/Update.hs 262;" f moveRoomBy src/Dodge/Room/Link.hs 53;" f moveShockwave src/Dodge/Shockwave/Update.hs 13;" f moveStuckGrenade src/Dodge/Projectile/Update.hs 248;" f -moveToSideFirstOutLink src/Dodge/Room/Warning.hs 55;" f +moveToSideFirstOutLink src/Dodge/Room/Warning.hs 49;" f moveWall src/Dodge/Wall/Move.hs 29;" f moveWallID src/Dodge/Wall/Move.hs 24;" f moveWallIDToward src/Dodge/Wall/Move.hs 47;" f @@ -4439,7 +4437,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 533;" f +pauseGame src/Dodge/Update/Input/InGame.hs 515;" f pauseMenu src/Dodge/Menu.hs 56;" f pauseMenuOptions src/Dodge/Menu.hs 61;" f pauseSound src/Dodge/SoundLogic.hs 42;" f @@ -4593,7 +4591,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 133;" f +powerDownTerminal src/Dodge/WorldEffect.hs 125;" 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 @@ -4681,7 +4679,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 110;" f +quitCommand src/Dodge/Terminal.hs 118;" 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 @@ -4935,12 +4933,12 @@ selSecSelSize src/Dodge/SelectionSections.hs 180;" f selSecYint src/Dodge/SelectionSections.hs 189;" f selectCreatureDebugItem src/Dodge/Debug.hs 55;" f selectedItemScroll src/Dodge/Update/Scroll.hs 50;" f -sensAboveDoor src/Dodge/Room/SensorDoor.hs 63;" f -sensInsideDoor src/Dodge/Room/SensorDoor.hs 69;" f +sensAboveDoor src/Dodge/Room/SensorDoor.hs 52;" f +sensInsideDoor src/Dodge/Room/SensorDoor.hs 58;" f senseDamage src/Dodge/Machine/Update.hs 160;" f -sensorCommand src/Dodge/Terminal.hs 79;" f -sensorRoom src/Dodge/Room/SensorDoor.hs 27;" f -sensorRoomRunPast src/Dodge/Room/SensorDoor.hs 48;" f +sensorCommand src/Dodge/Terminal.hs 86;" f +sensorRoom src/Dodge/Room/SensorDoor.hs 25;" f +sensorRoomRunPast src/Dodge/Room/SensorDoor.hs 45;" f sensorSPic src/Dodge/Machine/Draw.hs 70;" f sensorTypeDamages src/Dodge/Machine/Update.hs 178;" f sentinelAI src/Dodge/Creature/SentinelAI.hs 20;" f @@ -4967,7 +4965,7 @@ setOutLinks src/Dodge/RoomLink.hs 48;" f setOutLinksByType src/Dodge/RoomLink.hs 57;" f setOutLinksPD src/Dodge/RoomLink.hs 77;" f setRBCreatureTargeting src/Dodge/Creature/State.hs 290;" f -setSelWhileDragging src/Dodge/Update/Input/InGame.hs 338;" f +setSelWhileDragging src/Dodge/Update/Input/InGame.hs 325;" f setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 87;" f setShaderSource src/Shader/Compile.hs 290;" f setShadowLimits src/Dodge/Shadows.hs 11;" f @@ -5021,9 +5019,9 @@ shiftChildren src/Dodge/Tree/Compose.hs 43;" f shiftDraw src/Dodge/Render/ShapePicture.hs 78;" f shiftDraw' src/Dodge/Render/ShapePicture.hs 84;" f shiftInBy src/Dodge/PlacementSpot.hs 236;" f -shiftInvItems src/Dodge/Update/Input/InGame.hs 312;" f -shiftInvItemsDown src/Dodge/Update/Input/InGame.hs 351;" f -shiftInvItemsUp src/Dodge/Update/Input/InGame.hs 345;" f +shiftInvItems src/Dodge/Update/Input/InGame.hs 299;" f +shiftInvItemsDown src/Dodge/Update/Input/InGame.hs 338;" f +shiftInvItemsUp src/Dodge/Update/Input/InGame.hs 332;" f shiftLinkBy src/Dodge/Room/Link.hs 87;" f shiftPSBy src/Dodge/Placement/Shift.hs 12;" f shiftPathBy src/Dodge/Room/Link.hs 92;" f @@ -5074,7 +5072,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 883;" f -simpleTermMessage src/Dodge/Terminal.hs 176;" f +simpleTermMessage src/Dodge/Terminal.hs 184;" 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 @@ -5124,7 +5122,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 537;" f +spaceAction src/Dodge/Update/Input/InGame.hs 519;" 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 @@ -5180,7 +5178,7 @@ stackText src/Picture/Base.hs 188;" f stackedInventory src/Dodge/Creature.hs 311;" f startCr src/Dodge/Creature.hs 93;" f startCrafts src/Dodge/Room/Start.hs 92;" f -startDrag src/Dodge/Update/Input/InGame.hs 283;" f +startDrag src/Dodge/Update/Input/InGame.hs 270;" f startInvList src/Dodge/Creature.hs 108;" f startInventory src/Dodge/Creature.hs 111;" f startNewGameInSlot src/Dodge/StartNewGame.hs 15;" f @@ -5222,7 +5220,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 135;" f +tabComplete src/Dodge/Terminal.hs 143;" f takeN src/RandomHelp.hs 44;" f takeNMore src/RandomHelp.hs 41;" f takeOne src/RandomHelp.hs 22;" f @@ -5253,7 +5251,7 @@ termScreenColor src/Dodge/Terminal/Color.hs 10;" f termSoundLine src/Dodge/Terminal.hs 49;" f termTextColor src/Dodge/Terminal.hs 52;" f terminalColor src/Dodge/Placement/Instance/Terminal.hs 51;" f -terminalReturnEffect src/Dodge/Terminal.hs 179;" f +terminalReturnEffect src/Dodge/Terminal.hs 187;" 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 @@ -5307,8 +5305,8 @@ 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 -tlDoEffect src/Dodge/Terminal.hs 119;" f -tlSetStatus src/Dodge/Terminal.hs 116;" f +tlDoEffect src/Dodge/Terminal.hs 127;" f +tlSetStatus src/Dodge/Terminal.hs 124;" f tmUpdate src/Dodge/Update.hs 499;" f toBinary src/Dodge/Inventory/SelectionList.hs 138;" f toBothLnk src/Dodge/RoomLink.hs 121;" f @@ -5323,7 +5321,7 @@ 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 318;" f -toggleCommand src/Dodge/Terminal.hs 88;" f +toggleCommand src/Dodge/Terminal.hs 96;" 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 @@ -5395,14 +5393,14 @@ 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 558;" f +tryCombine src/Dodge/Update/Input/InGame.hs 541;" f tryDrawToCapacitor src/Dodge/Creature/State.hs 149;" f -tryDropSelected src/Dodge/Update/Input/InGame.hs 128;" f +tryDropSelected src/Dodge/Update/Input/InGame.hs 122;" f tryGetChannel src/Sound.hs 97;" f tryGetRootAttachedFromInvID src/Dodge/Inventory/Location.hs 20;" f tryGetRootItemInvID src/Dodge/Inventory/Location.hs 29;" f tryMeleeAttack src/Dodge/Creature/ReaderUpdate.hs 38;" f -tryPickupSelected src/Dodge/Update/Input/InGame.hs 135;" f +tryPickupSelected src/Dodge/Update/Input/InGame.hs 129;" f tryPlay src/Sound.hs 84;" f tryPutFloorItemIDInInv src/Dodge/Inventory/Add.hs 26;" f tryPutItemInInv src/Dodge/Inventory/Add.hs 42;" f @@ -5449,7 +5447,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 485;" f +updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 472;" f updateBarrel src/Dodge/Barreloid.hs 41;" f updateBarreloid src/Dodge/Barreloid.hs 15;" f updateBaseWheelEvent src/Dodge/Update/Scroll.hs 33;" f @@ -5479,42 +5477,42 @@ updateDust src/Dodge/Update.hs 844;" f updateDusts src/Dodge/Update.hs 691;" f updateEnergyBall src/Dodge/EnergyBall.hs 31;" f updateEnergyBalls src/Dodge/Update.hs 679;" f -updateEnterRegex src/Dodge/Update/Input/InGame.hs 512;" f +updateEnterRegex src/Dodge/Update/Input/InGame.hs 497;" f updateExpBarrel src/Dodge/Barreloid.hs 20;" f updateFBOTO src/Framebuffer/Update.hs 97;" f updateFBOTO3 src/Framebuffer/Update.hs 131;" f updateFlame src/Dodge/Flame.hs 19;" f updateFlames src/Dodge/Update.hs 676;" f updateFloatingCamera src/Dodge/Update/Camera.hs 35;" f -updateFunctionKey src/Dodge/Update/Input/InGame.hs 368;" f -updateFunctionKeys src/Dodge/Update/Input/InGame.hs 361;" f +updateFunctionKey src/Dodge/Update/Input/InGame.hs 355;" f +updateFunctionKeys src/Dodge/Update/Input/InGame.hs 348;" f updateGusts src/Dodge/Update.hs 803;" f updateHumanoid src/Dodge/Humanoid.hs 13;" f updateIMl src/Dodge/Update.hs 544;" f updateIMl' src/Dodge/Update.hs 549;" f updateInGameCamera src/Dodge/Update/Camera.hs 79;" f -updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 432;" f +updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 419;" 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 399;" f -updateKeyInGame src/Dodge/Update/Input/InGame.hs 426;" f -updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 386;" f -updateKeysTextInputTerminal src/Dodge/Update/Input/InGame.hs 408;" f +updateKeyContinueTerminal src/Dodge/Update/Input/InGame.hs 386;" f +updateKeyInGame src/Dodge/Update/Input/InGame.hs 413;" f +updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 373;" f +updateKeysTextInputTerminal src/Dodge/Update/Input/InGame.hs 395;" 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 445;" f +updateLongPressInGame src/Dodge/Update/Input/InGame.hs 432;" f updateMachine src/Dodge/Machine/Update.hs 20;" f updateMagnets src/Dodge/Update.hs 329;" f -updateMouseClickInGame src/Dodge/Update/Input/InGame.hs 200;" f +updateMouseClickInGame src/Dodge/Update/Input/InGame.hs 194;" f updateMouseContext src/Dodge/Update.hs 342;" f updateMouseContextGame src/Dodge/Update.hs 347;" f updateMouseHeldInGame src/Dodge/Update/Input/InGame.hs 98;" f updateMouseInGame src/Dodge/Update/Input/InGame.hs 88;" f -updateMouseReleaseInGame src/Dodge/Update/Input/InGame.hs 161;" f +updateMouseReleaseInGame src/Dodge/Update/Input/InGame.hs 155;" f updateObjCatMaybes src/Dodge/Update.hs 566;" f updateObjMapMaybe src/Dodge/Update.hs 559;" f updatePastWorlds src/Dodge/Update.hs 438;" f @@ -5639,7 +5637,7 @@ wallToSurface src/Dodge/Base/Collide.hs 172;" f wallsFromRooms src/Dodge/Layout.hs 146;" f wallsToDraw src/Dodge/Render/Walls.hs 17;" f warmupSound src/Dodge/HeldUse.hs 1440;" f -warningRooms src/Dodge/Room/Warning.hs 28;" f +warningRooms src/Dodge/Room/Warning.hs 24;" f wasdAim src/Dodge/Creature/YourControl.hs 126;" f wasdDir src/Dodge/WASD.hs 17;" f wasdM src/Dodge/WASD.hs 9;" f