LambdaHack- A game engine library for roguelike dungeon crawlers

Safe HaskellNone




Display game data on the screen and receive user input using one of the available raw frontends and derived operations.


Connection and initialization

data FrontReq :: * -> * where Source #

The instructions sent by clients to the raw frontend, indexed by the returned value.


FrontFrame :: {..} -> FrontReq ()

Show a frame.

FrontDelay :: Int -> FrontReq ()

Perform an explicit delay of the given length.

FrontKey :: {..} -> FrontReq KMP

Flush frames, display a frame and ask for a keypress.

FrontPressed :: FrontReq Bool

Inspect the fkeyPressed MVar.

FrontDiscard :: FrontReq ()

Discard a key in the queue, if any.

FrontAdd :: KMP -> FrontReq ()

Add a key to the queue.

FrontAutoYes :: Bool -> FrontReq ()

Set in the frontend that it should auto-answer prompts.

FrontShutdown :: FrontReq ()

Shut the frontend down.

newtype ChanFrontend Source #

Connection channel between a frontend and a client. Frontend acts as a server, serving keys, etc., when given frames to display.


ChanFrontend (forall a. FrontReq a -> IO a) 

chanFrontendIO :: ClientOptions -> IO ChanFrontend Source #

Initialize the frontend chosen by the player via client options.

Re-exported part of the raw frontend

frontendName :: String Source #

The name of the chosen frontend.

Internal operations

data FrontSetup Source #

Machinery allocated for an individual frontend at its startup, unchanged for its lifetime.