Move towards inputs in terminal

This commit is contained in:
2022-06-01 14:34:16 +01:00
parent b54864bbda
commit 2cedc1b968
13 changed files with 90 additions and 64 deletions
+8 -2
View File
@@ -57,6 +57,7 @@ import qualified Data.Set as S
import qualified Data.IntSet as IS
import qualified Data.IntMap.Strict as IM
import qualified Data.Map.Strict as M
import qualified Data.Text as T
import SDL (Scancode, MouseButton)
type CRUpdate = Creature -> World -> (World -> World, Maybe Creature)
type CRUpdate' = Creature -> World -> (World -> World, Creature)
@@ -225,7 +226,7 @@ data ScreenLayer
, _scColumns :: [(String,String)]
}
| InputScreen
{ _scInput :: String
{ _scInput :: T.Text
, _scFooter :: String
}
| WaitScreen
@@ -378,7 +379,7 @@ data Button = Button
, _btID :: Int
, _btText :: String
, _btState :: ButtonState
, _btTerminalParams :: TerminalParams
, _btTerminalParams :: World -> TerminalParams
}
data TerminalParams = NoTerminalParams | TerminalParams
{ _termDisplayedLines :: [World -> (String,Color)]
@@ -387,6 +388,7 @@ data TerminalParams = NoTerminalParams | TerminalParams
, _termTitle :: String
, _termSel :: Maybe Int
, _termOptions :: [(String, World -> World)]
, _termInput :: Maybe (String, String -> World -> World)
}
data TerminalLine
= TerminalLineDisplay
@@ -397,6 +399,10 @@ data TerminalLine
{_tlPause :: Int
,_tlOptions :: [(String,World -> World)]
}
| TerminalLineInput
{_tlPause :: Int
,_tlInputFunction :: String -> World -> World
}
| TerminalLineEffect
{_tlPause :: Int
,_tlEffect :: SubInventory -> World -> World