LambdaHack-0.9.3.1: A game engine library for tactical squad ASCII roguelike dungeon crawlers

Safe HaskellNone
LanguageHaskell2010

Game.LambdaHack.Client.UI.Frame

Contents

Description

Screen frames.

Synopsis

Documentation

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.

Constructors

FrameForall 

Fields

newtype FrameBase Source #

Action that results in a base frame, to be modified further.

Constructors

FrameBase 

Fields

type Frame = (FrameBase, FrameForall) Source #

A frame, that is, a base frame and all its modifications.

type PreFrame = (Vector Word32, FrameForall) Source #

Components of a frame, before it's decided if the first can be overwritten in-place or needs to be copied.

type PreFrames = [Maybe PreFrame] Source #

Sequence of screen frames, including delays. Potentially based on a single base frame.

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.

Constructors

SingleFrame 

overlayFrame :: IntOverlay -> PreFrame -> PreFrame 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.