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

Safe HaskellSafe-Infered

Game.LambdaHack.Config

Description

Personal game configuration file support.

Synopsis

Documentation

data CP Source

The content of the configuration file. It's parsed in a case sensitive way (unlike by default in ConfigFile).

Instances

mkConfig :: String -> IO CPSource

Read the player configuration file and use it to override any default config options. Currently we can't unset options, only override.

The default config, passed in argument configDefault, is expected to come from the default configuration file included via CPP in file ConfigDefault.hs.

appDataDir :: IO FilePathSource

Personal data directory for the game. Depends on the OS and the game, e.g., for LambdaHack under Linux it's ~/.LambdaHack/.

getOption :: Get_C a => CP -> SectionSpec -> OptionSpec -> Maybe aSource

A simplified access to an option in a given section, with simple error reporting (no internal errors are caught nor hidden). If there is no such option, gives Nothing.

get :: Get_C a => CP -> SectionSpec -> OptionSpec -> aSource

Simplified access to an option in a given section. Fails if the option is not present.

getItems :: CP -> SectionSpec -> [(String, String)]Source

An association list corresponding to a section. Fails if no such section.

getFile :: CP -> SectionSpec -> OptionSpec -> IO FilePathSource

Looks up a file path in the config file and makes it absolute. If the game's configuration directory exists, the file path is appended to it; otherwise, it's appended to the current directory.

dump :: FilePath -> CP -> IO ()Source

Dumps the current configuration to a file.

getSetGenSource

Arguments

:: CP

config

-> String

name of the generator

-> IO (StdGen, CP) 

Gets a random generator from the config or, if not present, generates one and updates the config with it.