titan-1.0.2: src/Model/Model.hs
module Model.Model where
-- | Application Model. Contains information about the simulation and the
-- frames captured so far.
data Model = Model
{ selectedFrame :: Maybe Int -- ^ Currently selected frame in the GUI
, selectedFrameInput :: Maybe String -- ^ Input of currently selected frame
, curSimFrame :: Maybe Int -- ^ Currently simulated frame in the game
, frames :: [Frame] -- ^ (Best) knowledge of frames in the game
}
-- | Default model with no loaded simulation.
emptyBM :: Model
emptyBM = Model
{ selectedFrame = Nothing
, selectedFrameInput = Nothing
, curSimFrame = Nothing
, frames = []
}
-- | Game frame.
data Frame = Frame
{ fSelected :: Bool
, fCached :: Bool
, fCurrent :: Bool
, fBreakpoint :: Bool
, fError :: Bool
, fNumber :: Int
}
deriving (Show, Eq)
frameDeselect :: Frame -> Frame
frameDeselect f = f { fSelected = False }
frameSelect :: Frame -> Frame
frameSelect f = f { fSelected = True }
frameNotCurrent :: Frame -> Frame
frameNotCurrent f = f { fCurrent = False }
frameCurrent :: Frame -> Frame
frameCurrent f = f { fCurrent = True }
defaultSelectedFrame = Frame True True False False False
defaultFrame = Frame False True False False False
defaultCurrentFrame = Frame False False True False False
defaultBreakpointFrame = Frame False True False True False
defaultErrorFrame = Frame False True False False True
-- | Selection of frames used to visualize the Stream Viewer.
defaultFrames = zipWith ($)
[ defaultFrame, defaultFrame, defaultFrame
, defaultFrame, defaultFrame, defaultFrame
, defaultFrame, defaultFrame, defaultFrame
, defaultFrame, defaultFrame, defaultFrame
, defaultFrame, defaultFrame, defaultFrame
, defaultFrame, defaultFrame, defaultFrame
, defaultFrame, defaultFrame, defaultFrame
, defaultFrame, defaultFrame, defaultFrame
, defaultErrorFrame, defaultFrame, defaultCurrentFrame
, defaultFrame, defaultBreakpointFrame, defaultSelectedFrame
, defaultFrame, defaultFrame, defaultFrame
, defaultFrame, defaultFrame, defaultFrame
, defaultFrame, defaultFrame, defaultFrame
, defaultFrame, defaultFrame
]
[0..]