LambdaHack-0.2.10.5: A roguelike game engine in early and active development

Safe HaskellNone

Game.LambdaHack.Server.Fov.Digital

Description

DFOV (Digital Field of View) implemented according to specification at http://roguebasin.roguelikedevelopment.org/index.php?title=Digital_field_of_view_implementation. This fast version of the algorithm, based on PFOV, has AFAIK never been described nor implemented before.

Synopsis

Documentation

scanSource

Arguments

:: Distance

visiblity radius

-> (Bump -> Bool)

clear tile predicate

-> [Bump] 

Calculates the list of tiles, in Bump coordinates, visible from (0, 0), within the given sight range.

dline :: Bump -> Bump -> LineSource

Create a line from two points. Debug: check if well-defined.

dsteeper :: Bump -> Bump -> Bump -> BoolSource

Compare steepness of (p1, f) and (p2, f). Debug: Verify that the results of 2 independent checks are equal.

intersect :: Line -> Distance -> (Int, Int)Source

The X coordinate, represented as a fraction, of the intersection of a given line and the line of diagonals of diamonds at distance d from (0, 0).

debugSteeper :: Bump -> Bump -> Bump -> BoolSource

Debug functions for DFOV:

Debug: calculate steeper for DFOV in another way and compare results.

debugLine :: Line -> (Bool, String)Source

Debug: check if a view border line for DFOV is legal.