terom@417: #ifndef CONFIGURATION_HH terom@417: #define CONFIGURATION_HH terom@417: terom@417: /** terom@417: * @file terom@417: * terom@417: * Various classes/modules have their own configuration structures, which are defined here terom@417: * terom@417: * XXX: rename to "Settings" to distinguish from Config/config? terom@417: */ terom@417: terom@417: #include "Types.hh" terom@417: #include "Config.hh" terom@417: terom@417: /** terom@418: * Engine configuration terom@418: */ terom@418: struct EngineConfig { terom@418: /** Path to the XML ClanLib resource file */ terom@418: std::string resource_path; terom@418: terom@418: /** Log output level */ terom@418: enum LogLevel log_level; terom@418: terom@418: /** Defaults */ terom@418: EngineConfig (void) : resource_path(RESOURCE_XML_PATH), log_level(DEFAULT_LOG_LEVEL) { } terom@418: }; terom@418: terom@418: /** terom@417: * Terrain configuration terom@417: */ terom@417: struct TerrainConfig { terom@417: /** Size of the terrain field*/ terom@417: PixelDimensions dimensions; terom@417: terom@417: /** Set to nonzero to generate random map */ terom@417: int random_seed; terom@417: terom@417: /** Defaults */ terom@418: TerrainConfig (void) : dimensions(TERRAIN_DIMENSIONS), random_seed(TERRAIN_RANDOM_SEED) { } terom@417: }; terom@417: terom@417: /** terom@417: * Graphics display configuration terom@417: */ terom@417: struct DisplayConfig { terom@417: /** Display resolution */ terom@417: PixelDimensions resolution; terom@417: terom@417: /** Fullscreen mode? */ terom@417: bool fullscreen; terom@417: terom@417: /** Defaults */ terom@418: DisplayConfig (void) : resolution(GRAPHICS_RESOLUTION), fullscreen(GRAPHICS_FULLSCREEN) { } terom@417: }; terom@417: terom@417: terom@417: #endif