Fix reloading crash

This commit is contained in:
2022-12-29 01:37:03 +00:00
parent 7fc3b788b4
commit bdd022e40b
4 changed files with 56 additions and 37 deletions
+41 -24
View File
@@ -1,11 +1,28 @@
module Dodge.Terminal where
module Dodge.Terminal (
doTerminalCommandEffect,
guardDisconnected,
makeTermLine,
commandFutureLines,
quitCommand,
helpCommand,
commandsCommand,
connectionBlurbLines,
disconnectTerminal,
basicTerminal,
simpleTermMessage,
damageCodeCommand,
sensorCommand,
makeColorTermLine,
makeTermPara,
toggleCommand,
) where
import Color
import Data.Char
import Data.Foldable
import qualified Data.Map.Strict as M
import Data.Maybe
import qualified Data.Text as T
--import qualified Data.Text as T
import Dodge.Data.World
import Dodge.Default
import Dodge.SoundLogic
@@ -145,23 +162,23 @@ argumentHelp tc tm w = case doTerminalCommandEffect (_tcEffect tc) tm w of
, Just (M.keys argm)
)
infoCommand :: String -> TerminalCommand
infoCommand str =
TerminalCommand
{ _tcString = "INFORMATION"
, _tcAlias = ["INFO", "I"]
, _tcHelp = "DISPLAYS INFORMATION CONCERNING THE TERMINAL."
, _tcEffect = TerminalCommandEffectNoArgumentsStr str -- \_ _ -> NoArguments (makeTermPara str)
}
--infoCommand :: String -> TerminalCommand
--infoCommand str =
-- TerminalCommand
-- { _tcString = "INFORMATION"
-- , _tcAlias = ["INFO", "I"]
-- , _tcHelp = "DISPLAYS INFORMATION CONCERNING THE TERMINAL."
-- , _tcEffect = TerminalCommandEffectNoArgumentsStr str -- \_ _ -> NoArguments (makeTermPara str)
-- }
singleCommand :: [String] -> String -> [String] -> String -> WdWd -> TerminalCommand
singleCommand followingLines command aliases htext eff =
TerminalCommand
{ _tcString = command
, _tcAlias = aliases
, _tcHelp = htext
, _tcEffect = TerminalCommandEffectSingleCommand eff followingLines
}
--singleCommand :: [String] -> String -> [String] -> String -> WdWd -> TerminalCommand
--singleCommand followingLines command aliases htext eff =
-- TerminalCommand
-- { _tcString = command
-- , _tcAlias = aliases
-- , _tcHelp = htext
-- , _tcEffect = TerminalCommandEffectSingleCommand eff followingLines
-- }
guardDisconnected :: Terminal -> World -> World -> World
guardDisconnected tm w w' = case _tmStatus tm of
@@ -231,12 +248,12 @@ damageCodeCommand =
, _tcEffect = TerminalCommandEffectDamageCoding -- \_ -> OneArgument "A DAMAGE TYPE" . getDamageCoding
}
infoClearInput :: Terminal -> [TerminalLine] -> World -> World
infoClearInput tm tls =
cWorld . lWorld . terminals . ix (_tmID tm)
%~ ( (tmInput .~ TerminalInput T.empty True (0, 0))
. (tmFutureLines ++.~ tls)
)
--infoClearInput :: Terminal -> [TerminalLine] -> World -> World
--infoClearInput tm tls =
-- cWorld . lWorld . terminals . ix (_tmID tm)
-- %~ ( (tmInput .~ TerminalInput T.empty True (0, 0))
-- . (tmFutureLines ++.~ tls)
-- )
togglesToEffects :: Terminal -> M.Map String [TerminalLine]
togglesToEffects = fmap f . _tmToggles