LambdaHack- A game engine library for roguelike dungeon crawlers

Safe HaskellNone




Screen frames.



type FrameST s = Mutable Vector s Word32 -> ST s () Source #

newtype FrameForall Source #

Efficiently composable representation of an operation on a frame, that is, on a mutable vector. When the composite operation is eventually performed, the vector is frozen to become a SingleFrame.




writeLine :: Int -> AttrLine -> FrameForall Source #

Representation of an operation of overwriting a frame with a single line at the given row.

newtype SingleFrame Source #

An overlay that fits on the screen (or is meant to be truncated on display) and is padded to fill the whole screen and is displayed as a single game screen frame.

Note that we don't provide a list of color-highlighed positions separately, because overlays need to obscure not only map, but the highlights as well.

type Frames = [Maybe FrameForall] Source #

Sequences of screen frames, including delays.

overlayFrame :: IntOverlay -> FrameForall -> FrameForall Source #

Overlays either the game map only or the whole empty screen frame. We assume the lines of the overlay are not too long nor too many.

Internal operations

truncateAttrLine :: X -> AttrLine -> X -> AttrLine Source #

Add a space at the message end, for display overlayed over the level map. Also trim (do not wrap!) too long lines.