Fix reloading crash
This commit is contained in:
+41
-24
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user