From 56f4670493e4b88846d97bb8396cdd3728bb1e15 Mon Sep 17 00:00:00 2001 From: justin Date: Fri, 15 Aug 2025 11:55:56 +0100 Subject: [PATCH] Move towards simplifying terminal lines/effects --- src/Dodge/Data/Terminal.hs | 98 +++++++++++-------- src/Dodge/Data/WorldEffect.hs | 7 -- src/Dodge/Default/Terminal.hs | 3 +- src/Dodge/InputFocus.hs | 11 +-- src/Dodge/Render/HUD.hs | 5 +- src/Dodge/Terminal.hs | 10 +- src/Dodge/Terminal/Color.hs | 2 + src/Dodge/TmTm.hs | 9 +- src/Dodge/Update/Input/InGame.hs | 1 + src/Dodge/Update/Scroll.hs | 1 + src/Dodge/WorldEffect.hs | 11 +++ tags | 162 ++++++++++++++++--------------- 12 files changed, 175 insertions(+), 145 deletions(-) diff --git a/src/Dodge/Data/Terminal.hs b/src/Dodge/Data/Terminal.hs index b21972b4e..25a1276cd 100644 --- a/src/Dodge/Data/Terminal.hs +++ b/src/Dodge/Data/Terminal.hs @@ -1,28 +1,29 @@ -{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DeriveAnyClass #-} +{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE StrictData #-} {-# LANGUAGE TemplateHaskell #-} -module Dodge.Data.Terminal where +module Dodge.Data.Terminal ( + module Dodge.Data.Terminal, + module Dodge.Data.Terminal.Status, +) where +import Sound.Data import Color import Control.Lens import Data.Aeson import Data.Aeson.TH import qualified Data.Map.Strict as M -import Dodge.Data.WorldEffect import Dodge.Data.BlBl - -data TerminalStatus = TerminalOff | TerminalBusy | TerminalTextInput {_tiText :: String} --- | TerminalArgumentInput TerminalCommand - deriving Eq - --deriving (Eq, Ord, Show, Read) --Generic, Flat) +import Dodge.Data.Terminal.Status +import Dodge.Data.WorldEffect data TerminalInput = TerminalInput { --_tiText :: String - _tiSel :: (Int, Int) + _tiSel :: (Int, Int) } - --deriving (Eq, Ord, Show, Read) --Generic, Flat) + +--deriving (Eq, Ord, Show, Read) --Generic, Flat) data Terminal = Terminal { _tmID :: Int @@ -40,22 +41,23 @@ data Terminal = Terminal , _tmCommandHistory :: [String] , _tmToggles :: M.Map String TerminalToggle , _tmPartialCommand :: Maybe TerminalCommand --- , _tmType :: TerminalType + -- , _tmType :: TerminalType } - --deriving (Eq, Show, Read) --, Generic) - --h--deriving (Eq, Show, Read) --Generic, Flat) + +--deriving (Eq, Show, Read) --, Generic) +--h--deriving (Eq, Show, Read) --Generic, Flat) data TerminalType = DefaultTerminal data TerminalLineString = TerminalLineConst String Color - --deriving (Eq, Ord, Show, Read) --Generic, Flat) + +--deriving (Eq, Ord, Show, Read) --Generic, Flat) data TmTm = TmId - | TmTmClearDisplayedLines - | TmTmSetStatus TerminalStatus - | TmTmSetPartialCommand (Maybe TerminalCommand) - --deriving (Eq, Ord, Show, Read) --Generic, Flat) +-- | TmTmSetPartialCommand (Maybe TerminalCommand) + +--deriving (Eq, Ord, Show, Read) --Generic, Flat) data TerminalLine = TerminalLineDisplay @@ -70,15 +72,16 @@ data TerminalLine { _tlPause :: Int , _tlEffect :: TmWdWd --Terminal -> World -> World } - --deriving (Eq, Show, Read) --, Generic) - --h--deriving (Eq, Show, Read) --Generic, Flat) + +--deriving (Eq, Show, Read) --, Generic) +--h--deriving (Eq, Show, Read) --Generic, Flat) data TerminalToggle = TerminalToggle { _ttTriggerID :: Int , _ttDeathEffect :: BlBl } - --deriving (Eq, Ord, Show, Read) --Generic, Flat) +--deriving (Eq, Ord, Show, Read) --Generic, Flat) data EffectArguments = NoArguments {_cmdEffect :: [TerminalLine]} @@ -86,8 +89,9 @@ data EffectArguments { _argType :: String , _argList :: M.Map String [TerminalLine] } - --deriving (Eq, Show, Read) --, Generic) - --h--deriving (Eq, Show, Read) --Generic, Flat) + +--deriving (Eq, Show, Read) --, Generic) +--h--deriving (Eq, Show, Read) --Generic, Flat) data TerminalCommandEffect = TerminalCommandArguments EffectArguments @@ -99,8 +103,9 @@ data TerminalCommandEffect | TerminalCommandEffectCommands | TerminalCommandEffectSingleCommand WdWd [String] | TerminalCommandEffectNone - --deriving (Eq, Show, Read) --, Generic) - --h--deriving (Eq, Show, Read) --Generic, Flat) + +--deriving (Eq, Show, Read) --, Generic) +--h--deriving (Eq, Show, Read) --Generic, Flat) data TerminalCommand = TerminalCommand { _tcString :: String @@ -108,8 +113,18 @@ data TerminalCommand = TerminalCommand , _tcHelp :: String , _tcEffect :: TerminalCommandEffect -- Terminal -> World -> EffectArguments } - --deriving (Eq, Show, Read) --, Generic) - --h--deriving (Eq, Show, Read) --Generic, Flat) + +--deriving (Eq, Show, Read) --, Generic) +--h--deriving (Eq, Show, Read) --Generic, Flat) +data TmWdWd + = TmWdId + | TmWdWdDisconnectTerminal + | TmWdWdfromWdWd WdWd + | TmWdWdTermSound SoundID + | TmWdWdDoDeathTriggers + | TmTmClearDisplayedLines + | TmTmSetStatus TerminalStatus + | TmTmSetPartialCommand (Maybe TerminalCommand) makeLenses ''TerminalInput makeLenses ''Terminal @@ -117,17 +132,18 @@ makeLenses ''TerminalLine makeLenses ''TerminalToggle makeLenses ''EffectArguments makeLenses ''TerminalCommand -makeLenses ''TerminalStatus -concat <$> mapM (deriveJSON defaultOptions) - [ ''TerminalStatus - , ''TerminalInput - , ''TerminalLineString - , ''TmTm - , ''TerminalLine - , ''TerminalToggle - , ''EffectArguments - , ''TerminalCommandEffect - , ''TerminalCommand - , ''Terminal - , ''TerminalType - ] +concat + <$> mapM + (deriveJSON defaultOptions) + [ ''TerminalInput + , ''TerminalLineString + , ''TmTm + , ''TerminalLine + , ''TerminalToggle + , ''EffectArguments + , ''TerminalCommandEffect + , ''TerminalCommand + , ''TmWdWd + , ''Terminal + , ''TerminalType + ] diff --git a/src/Dodge/Data/WorldEffect.hs b/src/Dodge/Data/WorldEffect.hs index 16c46cb1a..0acc5e003 100644 --- a/src/Dodge/Data/WorldEffect.hs +++ b/src/Dodge/Data/WorldEffect.hs @@ -69,12 +69,6 @@ data DrWdWd | DoorMechanism --deriving (Eq, Ord, Show, Read) --Generic, Flat) -data TmWdWd - = TmWdId - | TmWdWdDisconnectTerminal - | TmWdWdfromWdWd WdWd - | TmWdWdTermSound SoundID - | TmWdWdDoDeathTriggers --deriving (Eq, Show, Read) --, Generic) --h--deriving (Eq, Show, Read) --Generic, Flat) @@ -85,4 +79,3 @@ deriveJSON defaultOptions ''MdWdWd deriveJSON defaultOptions ''WdBl deriveJSON defaultOptions ''WdP2f deriveJSON defaultOptions ''DrWdWd -deriveJSON defaultOptions ''TmWdWd diff --git a/src/Dodge/Default/Terminal.hs b/src/Dodge/Default/Terminal.hs index e8d8e4725..71107f411 100644 --- a/src/Dodge/Default/Terminal.hs +++ b/src/Dodge/Default/Terminal.hs @@ -2,9 +2,10 @@ module Dodge.Default.Terminal ( defaultTerminal ) where +import Dodge.Data.Terminal.Status import Color import Dodge.Data.Terminal -import Dodge.Data.WorldEffect +--import Dodge.Data.WorldEffect defaultTerminal :: Terminal defaultTerminal = diff --git a/src/Dodge/InputFocus.hs b/src/Dodge/InputFocus.hs index 008fcd96a..1080eb4f2 100644 --- a/src/Dodge/InputFocus.hs +++ b/src/Dodge/InputFocus.hs @@ -1,8 +1,6 @@ -module Dodge.InputFocus ( - inTextInputFocus, -) where +module Dodge.InputFocus (inTextInputFocus) where -import Control.Monad +import Dodge.Data.Terminal.Status import Data.Maybe import Dodge.Data.World import LensHelp @@ -26,10 +24,9 @@ textInputFocus w = case w ^? hud . hudElement . subInventory of Just (-1) -> Just $ hud . hudElement . subInventory . ciFilter . _Just _ -> Nothing Just DisplayTerminal{_termID = tmid} -> do - connectionstatus <- w ^? cWorld . lWorld . terminals . ix tmid . tmStatus --- guard $ connectionstatus == TerminalTextInput +-- connectionstatus <- w ^? cWorld . lWorld . terminals . ix tmid . tmStatus + -- guard $ connectionstatus == TerminalTextInput return $ cWorld . lWorld . terminals . ix tmid . tmStatus . tiText _ -> Nothing where he = w ^. hud . hudElement - diff --git a/src/Dodge/Render/HUD.hs b/src/Dodge/Render/HUD.hs index 67e08547d..2d51a15f7 100644 --- a/src/Dodge/Render/HUD.hs +++ b/src/Dodge/Render/HUD.hs @@ -4,6 +4,7 @@ module Dodge.Render.HUD ( drawHUD, ) where +import Dodge.Data.Terminal.Status import Control.Applicative import Control.Lens import Control.Monad @@ -385,7 +386,9 @@ drawTerminalDisplay tid cfig w = fromMaybe mempty $ do TerminalBusy -> (++ [([cFilledRect], white)]) TerminalTextInput s -> (++ [(getPromptTM ++ s ++ [cFilledRect], white)]) - partcommand tm = maybe "" (++ " ") $ tm ^? tmPartialCommand . _Just . tcString + TerminalPressTo s -> + (++ [("PRESS TO "++s, white)]) +-- partcommand tm = maybe "" (++ " ") $ tm ^? tmPartialCommand . _Just . tcString -- displayInputText tm s -- | TerminalTextInput <- _tmStatus tm = getPromptTM ++ s ---- | _tmStatus tm == TerminalReady = partcommand tm ++ getPromptTM ++ s diff --git a/src/Dodge/Terminal.hs b/src/Dodge/Terminal.hs index c78034b0e..f807cec82 100644 --- a/src/Dodge/Terminal.hs +++ b/src/Dodge/Terminal.hs @@ -17,6 +17,8 @@ module Dodge.Terminal ( terminalReturnEffect, ) where +import Dodge.Data.WorldEffect +import Dodge.Data.Terminal.Status import Color --import Control.Monad import Data.Char @@ -51,7 +53,7 @@ connectionBlurbLines tls = ] ++ tls ++ [ TerminalLineDisplay 10 (TerminalLineConst "READY FOR INPUT" termTextColor)] - ++ [TerminalLineTerminalEffect 0 (TmTmSetStatus (TerminalTextInput ""))] + ++ [TerminalLineEffect 0 (TmTmSetStatus (TerminalTextInput ""))] quitCommand :: TerminalCommand quitCommand = @@ -212,7 +214,7 @@ disconnectTerminal tm = (cWorld . lWorld . terminals . ix (_tmID tm) . tmStatus .~ TerminalOff) . exitTerminalSubInv . ( cWorld . lWorld . terminals . ix (_tmID tm) . tmFutureLines - .~ [TerminalLineTerminalEffect 0 TmTmClearDisplayedLines] + .~ [TerminalLineEffect 0 TmTmClearDisplayedLines] ) exitTerminalSubInv :: World -> World @@ -255,10 +257,10 @@ commandFutureLines s tm w = fromMaybe [errline "^ Invalid command"] $ do OneArgument argtype m -> let setpartial | null (_tmPartialCommand tm) = - TerminalLineTerminalEffect 0 (TmTmSetPartialCommand (Just command)) : + TerminalLineEffect 0 (TmTmSetPartialCommand (Just command)) : makeTermPara ("Expects " ++ argtype ++ " as an argument") | otherwise = - TerminalLineTerminalEffect 0 (TmTmSetPartialCommand Nothing) : + TerminalLineEffect 0 (TmTmSetPartialCommand Nothing) : makeTermPara "No argument input, cancelling" in Just $ fromMaybe setpartial $ diff --git a/src/Dodge/Terminal/Color.hs b/src/Dodge/Terminal/Color.hs index d877ef539..bb271d1ff 100644 --- a/src/Dodge/Terminal/Color.hs +++ b/src/Dodge/Terminal/Color.hs @@ -2,6 +2,7 @@ module Dodge.Terminal.Color ( termScreenColor, ) where +import Dodge.Data.Terminal.Status import Dodge.Data.Terminal import Color import Control.Lens @@ -10,4 +11,5 @@ termScreenColor :: Terminal -> Maybe Color termScreenColor tm = case tm ^. tmStatus of TerminalOff -> Nothing TerminalTextInput _ -> Just green + TerminalPressTo{} -> Just green TerminalBusy -> Just white diff --git a/src/Dodge/TmTm.hs b/src/Dodge/TmTm.hs index 44c753828..922247758 100644 --- a/src/Dodge/TmTm.hs +++ b/src/Dodge/TmTm.hs @@ -1,11 +1,12 @@ module Dodge.TmTm where -import Control.Lens +--import Control.Lens import Dodge.Data.Terminal doTmTm :: TmTm -> Terminal -> Terminal doTmTm tmtm = case tmtm of - TmTmClearDisplayedLines -> tmDisplayedLines .~ [] - TmTmSetStatus s -> tmStatus .~ s +-- TmTmClearDisplayedLines -> tmDisplayedLines .~ [] +-- TmTmSetStatus s -> tmStatus .~ s TmId -> id - TmTmSetPartialCommand ms -> tmPartialCommand .~ ms +-- TmTmSetPartialCommand ms -> tmPartialCommand .~ ms + diff --git a/src/Dodge/Update/Input/InGame.hs b/src/Dodge/Update/Input/InGame.hs index 21754001e..ff9a7a375 100644 --- a/src/Dodge/Update/Input/InGame.hs +++ b/src/Dodge/Update/Input/InGame.hs @@ -5,6 +5,7 @@ module Dodge.Update.Input.InGame ( updateMouseInGame, ) where +import Dodge.Data.Terminal.Status import Control.Applicative import Control.Monad import Data.Foldable diff --git a/src/Dodge/Update/Scroll.hs b/src/Dodge/Update/Scroll.hs index 4dfc31b32..3178193bc 100644 --- a/src/Dodge/Update/Scroll.hs +++ b/src/Dodge/Update/Scroll.hs @@ -2,6 +2,7 @@ module Dodge.Update.Scroll ( updateWheelEvent, ) where +import Dodge.Data.Terminal.Status import Dodge.Data.EquipType import Padding import Control.Monad diff --git a/src/Dodge/WorldEffect.hs b/src/Dodge/WorldEffect.hs index 220dcbf25..84cc06ebe 100644 --- a/src/Dodge/WorldEffect.hs +++ b/src/Dodge/WorldEffect.hs @@ -6,6 +6,7 @@ module Dodge.WorldEffect ( ) where --import Dodge.DoubleTree +import Dodge.Data.Terminal.Status import Dodge.Item.Grammar import Dodge.Creature.Impulse.UseItem import Dodge.BlBl @@ -59,6 +60,7 @@ accessTerminal mtmid w = fromMaybe w $ do tryToBoot tm = case _tmStatus tm of TerminalTextInput {} -> tm TerminalBusy -> tm + TerminalPressTo {} -> tm TerminalOff -> tm & tmFutureLines .~ _tmBootLines tm @@ -93,6 +95,15 @@ doDeathToggle (TerminalToggle trid f) = ix trid %~ doBlBl f doTmWdWd :: TmWdWd -> Terminal -> World -> World doTmWdWd tmwdwd = case tmwdwd of + TmTmClearDisplayedLines -> \tm -> fromMaybe id $ do + tid <- tm ^? tmID + return $ cWorld . lWorld . terminals . ix tid . tmDisplayedLines .~ [] + TmTmSetStatus x -> \tm -> fromMaybe id $ do + tid <- tm ^? tmID + return $ cWorld . lWorld . terminals . ix tid . tmStatus .~ x + TmTmSetPartialCommand x -> \tm -> fromMaybe id $ do + tid <- tm ^? tmID + return $ cWorld . lWorld . terminals . ix tid . tmPartialCommand .~ x TmWdId -> const id TmWdWdDisconnectTerminal -> disconnectTerminal TmWdWdTermSound sid -> \tm w -> diff --git a/tags b/tags index f9317efb9..5ffa2934d 100644 --- a/tags +++ b/tags @@ -17,7 +17,7 @@ <$> src/Dodge/Data/Camera.hs 39;" o <$> src/Dodge/Data/Creature.hs 80;" o <$> src/Dodge/Data/LWorld.hs 184;" o -<$> src/Dodge/Data/Terminal.hs 121;" o +<$> src/Dodge/Data/Terminal.hs 115;" o ABSOLUTE src/Dodge/Data/Item/Combine.hs 40;" C AIUNIT src/Dodge/Data/Item/Combine.hs 75;" C ALTERIFLE src/Dodge/Data/Item/Combine.hs 155;" C @@ -337,7 +337,7 @@ DefaultCrGroupUpdate src/Dodge/Data/CrGroupParams.hs 22;" C DefaultForceField src/Dodge/Data/Item/Use/Consumption/Ammo.hs 11;" C DefaultLightSourceDraw src/Dodge/Data/LightSource.hs 13;" C DefaultRoomType src/Dodge/Data/Room.hs 31;" C -DefaultTerminal src/Dodge/Data/Terminal.hs 48;" C +DefaultTerminal src/Dodge/Data/Terminal.hs 44;" C DestroyBeing src/Dodge/Data/Scenario.hs 8;" C DestroyBullet src/Dodge/Data/Bullet.hs 29;" C DestroyItem src/Dodge/Data/Scenario.hs 7;" C @@ -393,7 +393,7 @@ Ears src/Dodge/Data/Creature/Perception.hs 47;" C East src/Dodge/Data/CardinalPoint.hs 5;" C East8 src/Dodge/Data/CardinalPoint.hs 13;" C EdgeObstacle src/Dodge/Data/PathGraph.hs 48;" t -EffectArguments src/Dodge/Data/Terminal.hs 83;" t +EffectArguments src/Dodge/Data/Terminal.hs 77;" t EighthRes src/Dodge/Data/Config.hs 97;" C Eldritch src/Dodge/Data/Scenario.hs 34;" C ElectricSensor src/Dodge/Data/Machine/Sensor/Type.hs 12;" C @@ -847,7 +847,7 @@ NewIntMap src/NewInt.hs 18;" t NewSideEffect src/Dodge/Data/Universe.hs 65;" C NoAction src/Dodge/Data/ActionPlan.hs 152;" C NoAmmoRequired src/Dodge/Data/Muzzle.hs 25;" C -NoArguments src/Dodge/Data/Terminal.hs 84;" C +NoArguments src/Dodge/Data/Terminal.hs 78;" C NoBeamCombine src/Dodge/Data/Beam.hs 43;" C NoConcurrentEffect src/Loop/Data.hs 7;" C NoCrImp src/Dodge/Data/CreatureEffect.hs 24;" C @@ -947,7 +947,7 @@ OnRightWrist src/Dodge/Data/Equipment/Misc.hs 26;" C OnSpecial src/Dodge/Data/Equipment/Misc.hs 28;" C OnTurret src/Dodge/Data/Item/Location.hs 37;" C OnceSound src/Dodge/Data/SoundOrigin.hs 16;" C -OneArgument src/Dodge/Data/Terminal.hs 85;" C +OneArgument src/Dodge/Data/Terminal.hs 79;" C OneHand src/Dodge/Data/AimStance.hs 9;" C OnwardCluster src/Dodge/Data/RoomCluster.hs 14;" C OnwardList src/Dodge/Annotation/Data.hs 16;" C @@ -1340,32 +1340,33 @@ TargetingLaser src/Dodge/Data/Laser.hs 18;" C TargetingType src/Dodge/Data/Item/Targeting.hs 11;" t TeleSound src/Dodge/Data/SoundOrigin.hs 36;" C TermSignal src/Dodge/Data/Input.hs 54;" t -Terminal src/Dodge/Data/Terminal.hs 27;" t -TerminalBusy src/Dodge/Data/Terminal.hs 16;" C -TerminalCommand src/Dodge/Data/Terminal.hs 105;" t -TerminalCommandArguments src/Dodge/Data/Terminal.hs 93;" C -TerminalCommandEffect src/Dodge/Data/Terminal.hs 92;" t -TerminalCommandEffectCommands src/Dodge/Data/Terminal.hs 99;" C -TerminalCommandEffectDamageCoding src/Dodge/Data/Terminal.hs 94;" C -TerminalCommandEffectHelp src/Dodge/Data/Terminal.hs 97;" C -TerminalCommandEffectLinkedObject src/Dodge/Data/Terminal.hs 96;" C -TerminalCommandEffectNoArgumentsStr src/Dodge/Data/Terminal.hs 98;" C -TerminalCommandEffectNone src/Dodge/Data/Terminal.hs 101;" C -TerminalCommandEffectSensorParameter src/Dodge/Data/Terminal.hs 95;" C -TerminalCommandEffectSingleCommand src/Dodge/Data/Terminal.hs 100;" C -TerminalInput src/Dodge/Data/Terminal.hs 21;" t -TerminalLine src/Dodge/Data/Terminal.hs 60;" t -TerminalLineConst src/Dodge/Data/Terminal.hs 50;" C -TerminalLineDisplay src/Dodge/Data/Terminal.hs 61;" C -TerminalLineEffect src/Dodge/Data/Terminal.hs 69;" C -TerminalLineString src/Dodge/Data/Terminal.hs 50;" t -TerminalLineTerminalEffect src/Dodge/Data/Terminal.hs 65;" C -TerminalOff src/Dodge/Data/Terminal.hs 16;" C +Terminal src/Dodge/Data/Terminal.hs 23;" t +TerminalBusy src/Dodge/Data/Terminal/Status.hs 5;" C +TerminalCommand src/Dodge/Data/Terminal.hs 99;" t +TerminalCommandArguments src/Dodge/Data/Terminal.hs 87;" C +TerminalCommandEffect src/Dodge/Data/Terminal.hs 86;" t +TerminalCommandEffectCommands src/Dodge/Data/Terminal.hs 93;" C +TerminalCommandEffectDamageCoding src/Dodge/Data/Terminal.hs 88;" C +TerminalCommandEffectHelp src/Dodge/Data/Terminal.hs 91;" C +TerminalCommandEffectLinkedObject src/Dodge/Data/Terminal.hs 90;" C +TerminalCommandEffectNoArgumentsStr src/Dodge/Data/Terminal.hs 92;" C +TerminalCommandEffectNone src/Dodge/Data/Terminal.hs 95;" C +TerminalCommandEffectSensorParameter src/Dodge/Data/Terminal.hs 89;" C +TerminalCommandEffectSingleCommand src/Dodge/Data/Terminal.hs 94;" C +TerminalInput src/Dodge/Data/Terminal.hs 17;" t +TerminalLine src/Dodge/Data/Terminal.hs 54;" t +TerminalLineConst src/Dodge/Data/Terminal.hs 46;" C +TerminalLineDisplay src/Dodge/Data/Terminal.hs 55;" C +TerminalLineEffect src/Dodge/Data/Terminal.hs 63;" C +TerminalLineString src/Dodge/Data/Terminal.hs 46;" t +TerminalLineTerminalEffect src/Dodge/Data/Terminal.hs 59;" C +TerminalOff src/Dodge/Data/Terminal/Status.hs 5;" C +TerminalPressTo src/Dodge/Data/Terminal/Status.hs 6;" C TerminalSound src/Dodge/Data/SoundOrigin.hs 24;" C -TerminalStatus src/Dodge/Data/Terminal.hs 16;" t -TerminalTextInput src/Dodge/Data/Terminal.hs 16;" C -TerminalToggle src/Dodge/Data/Terminal.hs 76;" t -TerminalType src/Dodge/Data/Terminal.hs 48;" t +TerminalStatus src/Dodge/Data/Terminal/Status.hs 5;" t +TerminalTextInput src/Dodge/Data/Terminal/Status.hs 5;" C +TerminalToggle src/Dodge/Data/Terminal.hs 70;" t +TerminalType src/Dodge/Data/Terminal.hs 44;" t Terrestrial src/Dodge/Data/Scenario.hs 72;" C TerrestrialBiome src/Dodge/Data/Scenario.hs 76;" t TeslaArc src/Dodge/Data/TeslaArc.hs 17;" t @@ -1377,11 +1378,11 @@ 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 -TmId src/Dodge/Data/Terminal.hs 54;" C -TmTm src/Dodge/Data/Terminal.hs 53;" t -TmTmClearDisplayedLines src/Dodge/Data/Terminal.hs 55;" C -TmTmSetPartialCommand src/Dodge/Data/Terminal.hs 57;" C -TmTmSetStatus src/Dodge/Data/Terminal.hs 56;" C +TmId src/Dodge/Data/Terminal.hs 50;" C +TmTm src/Dodge/Data/Terminal.hs 49;" t +TmTmClearDisplayedLines src/Dodge/Data/WorldEffect.hs 78;" C +TmTmSetPartialCommand src/Dodge/Data/Terminal.hs 51;" C +TmTmSetStatus src/Dodge/Data/WorldEffect.hs 79;" C TmWdId src/Dodge/Data/WorldEffect.hs 73;" C TmWdWd src/Dodge/Data/WorldEffect.hs 72;" t TmWdWdDisconnectTerminal src/Dodge/Data/WorldEffect.hs 74;" C @@ -1566,8 +1567,8 @@ _apStrategy src/Dodge/Data/ActionPlan.hs 21;" f _aps src/Dodge/Data/Muzzle.hs 22;" f _arbitraryAction src/Dodge/Data/ActionPlan.hs 167;" f _arcNode src/Dodge/Data/LWorld.hs 117;" f -_argList src/Dodge/Data/Terminal.hs 87;" f -_argType src/Dodge/Data/Terminal.hs 86;" f +_argList src/Dodge/Data/Terminal.hs 81;" f +_argType src/Dodge/Data/Terminal.hs 80;" f _asDir src/Dodge/Data/ArcStep.hs 16;" f _asObject src/Dodge/Data/ArcStep.hs 17;" f _asPos src/Dodge/Data/ArcStep.hs 15;" f @@ -1700,7 +1701,7 @@ _cloudEBO src/Data/Preload/Render.hs 51;" f _cloudShader src/Data/Preload/Render.hs 50;" f _cloudVBO src/Data/Preload/Render.hs 49;" f _clouds src/Dodge/Data/LWorld.hs 103;" f -_cmdEffect src/Dodge/Data/Terminal.hs 84;" f +_cmdEffect src/Dodge/Data/Terminal.hs 78;" f _colorBlurShader src/Data/Preload/Render.hs 22;" f _coolEnd src/Dodge/Data/TriggerType.hs 17;" f _coolSound src/Dodge/Data/Item/Params.hs 24;" f @@ -2423,18 +2424,18 @@ _tbPos src/Dodge/Data/TractorBeam.hs 14;" f _tbStartPos src/Dodge/Data/TractorBeam.hs 15;" f _tbTime src/Dodge/Data/TractorBeam.hs 17;" f _tbVel src/Dodge/Data/TractorBeam.hs 16;" f -_tcAlias src/Dodge/Data/Terminal.hs 107;" f -_tcEffect src/Dodge/Data/Terminal.hs 109;" f -_tcHelp src/Dodge/Data/Terminal.hs 108;" f -_tcString src/Dodge/Data/Terminal.hs 106;" f +_tcAlias src/Dodge/Data/Terminal.hs 101;" f +_tcEffect src/Dodge/Data/Terminal.hs 103;" f +_tcHelp src/Dodge/Data/Terminal.hs 102;" f +_tcString src/Dodge/Data/Terminal.hs 100;" f _termID src/Dodge/Data/HUD.hs 42;" f _terminals src/Dodge/Data/LWorld.hs 128;" f _teslaArcs src/Dodge/Data/LWorld.hs 116;" f _testFloat src/Dodge/Data/World.hs 43;" f _textInput src/Dodge/Data/Input.hs 49;" f _textureObject src/Shader/Data.hs 95;" f -_tiSel src/Dodge/Data/Terminal.hs 23;" f -_tiText src/Dodge/Data/Terminal.hs 16;" f +_tiSel src/Dodge/Data/Terminal.hs 19;" f +_tiText src/Dodge/Data/Terminal/Status.hs 5;" f _tileArrayZ src/Data/Tile.hs 24;" f _tilePoly src/Data/Tile.hs 17;" f _tileTangentPos src/Data/Tile.hs 23;" f @@ -2442,27 +2443,27 @@ _tileZero src/Data/Tile.hs 19;" f _tiles src/Data/Tile.hs 14;" f _timeFlow src/Dodge/Data/World.hs 38;" f _timeFlowCharge src/Dodge/Data/World.hs 78;" f -_tlEffect src/Dodge/Data/Terminal.hs 71;" f -_tlPause src/Dodge/Data/Terminal.hs 62;" f -_tlPause src/Dodge/Data/Terminal.hs 66;" f -_tlPause src/Dodge/Data/Terminal.hs 70;" f -_tlString src/Dodge/Data/Terminal.hs 63;" f -_tlTermEffect src/Dodge/Data/Terminal.hs 67;" f -_tmBootLines src/Dodge/Data/Terminal.hs 29;" f -_tmButtonID src/Dodge/Data/Terminal.hs 30;" f -_tmCommandHistory src/Dodge/Data/Terminal.hs 40;" f -_tmDeathEffect src/Dodge/Data/Terminal.hs 38;" f -_tmDisplayedLines src/Dodge/Data/Terminal.hs 33;" f -_tmExternalColor src/Dodge/Data/Terminal.hs 32;" f -_tmFutureLines src/Dodge/Data/Terminal.hs 34;" f -_tmID src/Dodge/Data/Terminal.hs 28;" f -_tmInput src/Dodge/Data/Terminal.hs 35;" f -_tmMachineID src/Dodge/Data/Terminal.hs 31;" f -_tmPartialCommand src/Dodge/Data/Terminal.hs 42;" f -_tmScrollCommands src/Dodge/Data/Terminal.hs 36;" f -_tmStatus src/Dodge/Data/Terminal.hs 39;" f -_tmToggles src/Dodge/Data/Terminal.hs 41;" f -_tmWriteCommands src/Dodge/Data/Terminal.hs 37;" f +_tlEffect src/Dodge/Data/Terminal.hs 65;" f +_tlPause src/Dodge/Data/Terminal.hs 56;" f +_tlPause src/Dodge/Data/Terminal.hs 60;" f +_tlPause src/Dodge/Data/Terminal.hs 64;" f +_tlString src/Dodge/Data/Terminal.hs 57;" f +_tlTermEffect src/Dodge/Data/Terminal.hs 61;" f +_tmBootLines src/Dodge/Data/Terminal.hs 25;" f +_tmButtonID src/Dodge/Data/Terminal.hs 26;" f +_tmCommandHistory src/Dodge/Data/Terminal.hs 36;" f +_tmDeathEffect src/Dodge/Data/Terminal.hs 34;" f +_tmDisplayedLines src/Dodge/Data/Terminal.hs 29;" f +_tmExternalColor src/Dodge/Data/Terminal.hs 28;" f +_tmFutureLines src/Dodge/Data/Terminal.hs 30;" f +_tmID src/Dodge/Data/Terminal.hs 24;" f +_tmInput src/Dodge/Data/Terminal.hs 31;" f +_tmMachineID src/Dodge/Data/Terminal.hs 27;" f +_tmPartialCommand src/Dodge/Data/Terminal.hs 38;" f +_tmScrollCommands src/Dodge/Data/Terminal.hs 32;" f +_tmStatus src/Dodge/Data/Terminal.hs 35;" f +_tmToggles src/Dodge/Data/Terminal.hs 37;" f +_tmWriteCommands src/Dodge/Data/Terminal.hs 33;" f _toPlaySoundChunkID src/Sound/Data.hs 41;" f _toPlaySoundPos src/Sound/Data.hs 38;" f _toPlaySoundStatus src/Sound/Data.hs 37;" f @@ -2471,12 +2472,13 @@ _toPlaySoundVolume src/Sound/Data.hs 39;" f _toPlaySoundVolumeFraction src/Sound/Data.hs 40;" f _toPlaySounds src/Dodge/Data/World.hs 40;" f _topBoxSize src/Shape/Data.hs 17;" f +_tptString src/Dodge/Data/Terminal/Status.hs 6;" f _tractorBeams src/Dodge/Data/LWorld.hs 123;" f _trieChildren src/SimpleTrie.hs 11;" f _trieMVal src/SimpleTrie.hs 10;" f _triggers src/Dodge/Data/LWorld.hs 133;" f -_ttDeathEffect src/Dodge/Data/Terminal.hs 78;" f -_ttTriggerID src/Dodge/Data/Terminal.hs 77;" f +_ttDeathEffect src/Dodge/Data/Terminal.hs 72;" f +_ttTriggerID src/Dodge/Data/Terminal.hs 71;" f _tuDir src/Dodge/Data/Machine.hs 61;" f _tuFireTime src/Dodge/Data/Machine.hs 60;" f _tuTurnSpeed src/Dodge/Data/Machine.hs 59;" f @@ -3309,8 +3311,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 92;" f +doDeathTriggers src/Dodge/WorldEffect.hs 87;" 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 @@ -3363,7 +3365,7 @@ doTextInputOverUniverse src/Dodge/Update/Input/Text.hs 12;" f doThrust src/Dodge/Projectile/Update.hs 183;" f doTimeScroll src/Dodge/Update.hs 209;" f doTmTm src/Dodge/TmTm.hs 6;" f -doTmWdWd src/Dodge/WorldEffect.hs 94;" f +doTmWdWd src/Dodge/WorldEffect.hs 95;" f doWallRotate src/Dodge/Update/Camera.hs 213;" f doWdBl src/Dodge/WorldBool.hs 10;" f doWdCrBl src/Dodge/CreatureEffect.hs 37;" f @@ -3866,7 +3868,7 @@ ildtPropagate src/Dodge/DoubleTree.hs 111;" f impulsiveAIBefore src/Dodge/Creature/Impulse.hs 23;" f inLink src/Dodge/RoomLink.hs 113;" f inSegArea src/Geometry/Intersect.hs 328;" f -inTextInputFocus src/Dodge/InputFocus.hs 10;" f +inTextInputFocus src/Dodge/InputFocus.hs 7;" f incidenceToFunction src/Dodge/Graph.hs 26;" f indefiniteExceptions src/StringHelp.hs 29;" f initCrItemLocation src/Dodge/Item/Location/Initialize.hs 41;" f @@ -3892,7 +3894,7 @@ initializeOptionMenu src/Dodge/Menu/Option.hs 17;" f initializeOptionMenuBO src/Dodge/Menu/Option.hs 32;" f initializeTexture2D src/Framebuffer/Update.hs 221;" f inorderNumberTree src/TreeHelp.hs 189;" f -inputFocusI src/Dodge/InputFocus.hs 13;" f +inputFocusI src/Dodge/InputFocus.hs 10;" f insertAt src/Padding.hs 63;" f insertIMInZone src/Dodge/Base.hs 54;" f insertInTrie src/SimpleTrie.hs 23;" f @@ -3936,7 +3938,7 @@ 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 +invHead src/Dodge/Render/HUD.hs 409;" 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 @@ -4103,7 +4105,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 74;" f +lineOutputTerminal src/Dodge/WorldEffect.hs 75;" f lineSplit src/Justify.hs 26;" f lineThick src/Picture/Base.hs 234;" f lineUp src/Dodge/Creature/Boid.hs 148;" f @@ -4118,7 +4120,7 @@ listSelectionColorPicture src/Dodge/DisplayInventory.hs 308;" 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 398;" f lnkPosDir src/Dodge/RoomLink.hs 97;" f loadDodgeConfig src/Dodge/Config/Load.hs 9;" f loadMusic src/Dodge/SoundLogic/LoadSound.hs 30;" f @@ -4958,11 +4960,11 @@ sectionsSizes src/Dodge/DisplayInventory.hs 207;" 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 458;" f +selNumPosCardinal src/Dodge/Render/HUD.hs 481;" 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 512;" f selSecSelSize src/Dodge/SelectionSections.hs 180;" f selSecYint src/Dodge/SelectionSections.hs 189;" f selectCreatureDebugItem src/Dodge/Debug.hs 55;" f @@ -5299,7 +5301,7 @@ testInventory src/Dodge/Creature.hs 292;" f testStringInit src/Dodge/TestString.hs 30;" f text src/Picture/Base.hs 193;" f textGrad src/Picture/Text.hs 5;" f -textInputFocus src/Dodge/InputFocus.hs 16;" f +textInputFocus src/Dodge/InputFocus.hs 13;" f textJustifyCenter src/Picture/Base.hs 212;" f textJustifyLeft src/Picture/Base.hs 208;" f textJustifyRight src/Picture/Base.hs 198;" f @@ -5369,7 +5371,7 @@ topTestPart src/Dodge/TestString.hs 61;" 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 67;" f +torqueCr src/Dodge/WorldEffect.hs 68;" 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