Safe Haskell | None |
---|
Game messages displayed on top of the screen for the player to read.
- type Msg = String
- moreMsg :: Msg
- yesnoMsg :: Msg
- padMsg :: X -> String -> String
- data Report
- emptyReport :: Report
- nullReport :: Report -> Bool
- singletonReport :: Msg -> Report
- addMsg :: Report -> Msg -> Report
- splitReport :: Report -> [String]
- renderReport :: Report -> String
- data History
- emptyHistory :: History
- singletonHistory :: Report -> History
- addReport :: Report -> History -> History
- renderHistory :: History -> Overlay
- takeHistory :: Int -> History -> History
- type Overlay = [String]
- splitOverlay :: Y -> Overlay -> [Overlay]
- stringByLocation :: X -> Y -> Overlay -> (String, PointXY -> Maybe Char, Maybe String)
Documentation
padMsg :: X -> String -> StringSource
Add spaces at the message end, for display overlayed over the level map. Also trims (does not wrap!) too long lines.
The type of a set of messages to show at the screen at once.
Empty set of messages.
nullReport :: Report -> BoolSource
Test if the set of messages is empty.
singletonReport :: Msg -> ReportSource
Construct a singleton set of messages.
splitReport :: Report -> [String]Source
Split a messages into chunks that fit in one line. We assume the width of the messages line is the same as of level map.
renderReport :: Report -> StringSource
Render a report as a (possibly very long) string.
Empty history of reports.
singletonHistory :: Report -> HistorySource
Construct a singleton history of reports.
renderHistory :: History -> OverlaySource
Render history as many lines of text, wrapping if necessary.
takeHistory :: Int -> History -> HistorySource
Take the given prefix of reports from a history.
A screenful of text lines. When displayed, they are trimmed, not wrapped and any lines below the lower screen edge are not visible.
splitOverlay :: Y -> Overlay -> [Overlay]Source
Split an overlay into overlays that fit on the screen.