Licar/settings.h

207 lines
6.3 KiB
C

#ifndef _LCR_SETTINGS_H
#define _LCR_SETTINGS_H
/**
Settings file, values here may be changed by the user or overriden by frontend
before compilation.
*/
#ifndef LCR_SETTING_RESOLUTION_X
#define LCR_SETTING_RESOLUTION_X 1024
#endif
#ifndef LCR_SETTING_RESOLUTION_Y
#define LCR_SETTING_RESOLUTION_Y 768
#endif
#ifndef LCR_SETTING_FPS
/** Rendering frames per second. Note this only applies to graphics, NOT
physics. */
#define LCR_SETTING_FPS 30
#endif
#ifndef LCR_SETTING_RESOLUTION_SUBDIVIDE
#define LCR_SETTING_RESOLUTION_SUBDIVIDE 1
#endif
#ifndef LCR_SETTING_FREE_CAMERA_SPEED
/** Move speed of free camera, in 1/8ths of block length. */
#define LCR_SETTING_FREE_CAMERA_SPEED 50
#endif
#ifndef LCR_SETTING_FREE_CAMERA_TURN_SPEED
/** Turn speed of free camera, in degrees per second. */
#define LCR_SETTING_FREE_CAMERA_TURN_SPEED 180
#endif
#ifndef LCR_SETTING_SKY_ROLL_MULTIPLIER_V
#define LCR_SETTING_SKY_ROLL_MULTIPLIER_V 8
#endif
#ifndef LCR_SETTING_SKY_ROLL_MULTIPLIER_H
#define LCR_SETTING_SKY_ROLL_MULTIPLIER_H 4
#endif
#ifndef LCR_SETTING_MAX_MAP_VERTICES
/** Maximum number of vertices for 3D rendering. Lower number will decrease
RAM usage but will prevent larger maps from being loaded. */
#define LCR_SETTING_MAX_MAP_VERTICES 10000
#endif
#ifndef LCR_SETTING_MAX_MAP_TRIANGLES
/** Like LCR_SETTING_MAX_MAP_VERTICES but for the number of triangles. */
#define LCR_SETTING_MAX_MAP_TRIANGLES 10000
#endif
#ifndef LCR_SETTING_SKY_SIZE
/** Size of sky texture pixel, 0 turns off sky rendering. */
#define LCR_SETTING_SKY_SIZE 4
#endif
#ifndef LCR_SETTING_MAP_MAX_BLOCKS
/** Maximum number of blocks a map can consist of, decreasing will save RAM
but also rule out loading bigger maps. */
#define LCR_SETTING_MAP_MAX_BLOCKS 4096
#endif
#ifndef LCR_SETTING_TRIANGLE_CULLING_PERIOD
/** This says how often (after how many triangles added) the map model
triangles will be culled. This value may affect how quickly maps load. */
#define LCR_SETTING_TRIANGLE_CULLING_PERIOD 64
#endif
#ifndef LCR_SETTING_TEXTURE_SUBSAMPLE
/** Sets texture subsampling: 0 means no subsampling, higher value N means a
texture will be sampled once per N rasterized pixels. Higher value can
increase performance. */
#define LCR_SETTING_TEXTURE_SUBSAMPLE 4
#endif
#ifndef LCR_SETTING_LOD_DISTANCE
/** Distance in game squares from which LOD will be drawn. Value 64 or higher
turns off LOD completely. Note that this doesn't affect rendering distance
of 3D models. */
#define LCR_SETTING_LOD_DISTANCE 25
#endif
#ifndef LCR_SETTING_LOD_COLOR
#define LCR_SETTING_LOD_COLOR 0x4229
#endif
#ifndef LCR_SETTING_CAR_ANIMATION_SUBDIVIDE
/** How many frames will be used to complete whole animation of the car model.
0 turns off car animation completely (may be faster and smaller), 1 turns on
highest quality animation, higher values lower animation quality and may
increase performance. */
#define LCR_SETTING_CAR_ANIMATION_SUBDIVIDE 2
#endif
#ifndef LCR_SETTING_CAMERA_HEIGHT
/** Base height of the car follow camera, in 4ths of map block height. */
#define LCR_SETTING_CAMERA_HEIGHT 5
#endif
#ifndef LCR_SETTING_CAMERA_HEIGHT_BAND
/** Size of height band of the follow camera, in same units as base height. */
#define LCR_SETTING_CAMERA_HEIGHT_BAND 1
#endif
#ifndef LCR_SETTING_CAMERA_DISTANCE
/** Base horizontal distance of the car follow camera, in 4ths of map block
width. */
#define LCR_SETTING_CAMERA_DISTANCE 4
#endif
#ifndef LCR_SETTING_CAMERA_DISTANCE_BAND
/** Band for distance of the car follow camera, in same units as base dist. */
#define LCR_SETTING_CAMERA_DISTANCE_BAND 2
#endif
#ifndef LCR_SETTING_GHOST_COLOR
/** Color of the ghost car (in RGB565). */
#define LCR_SETTING_GHOST_COLOR 0xff00
#endif
#ifndef LCR_SETTING_CHECKPOINT_0_COLOR
/** Color of untaken checkpoint (in RGB565). */
#define LCR_SETTING_CHECKPOINT_0_COLOR 0x37e0
#endif
#ifndef LCR_SETTING_CHECKPOINT_1_COLOR
/** Color of taken checkpoint (in RGB565). */
#define LCR_SETTING_CHECKPOINT_1_COLOR 0xdefb
#endif
#ifndef LCR_SETTING_FINISH_COLOR
/** Color of finish block (in RGB565). */
#define LCR_SETTING_FINISH_COLOR 0xf900
#endif
#ifndef LCR_SETTING_SMOOTH_ANIMATIONS
/** Whether to smooth out animations (car physics, camera movement etc.). */
#define LCR_SETTING_SMOOTH_ANIMATIONS 1
#endif
#ifndef LCR_SETTING_LOG_LEVEL
/** How detailed the console logs should be. 0 turns off logging, 1 means
normal, 2 more detailed etc. Setting high log level may result in spam and
slower game, but is useful for debugging. */
#define LCR_SETTING_LOG_LEVEL 1
#endif
#ifndef LCR_SETTING_CMS_PER_BLOCK
/** How many centimeters one game block is considered to measure
(horizontally). This is for calculating speed etc. */
#define LCR_SETTING_CMS_PER_BLOCK 400
#endif
#ifndef LCR_SETTING_DEBUG_PHYSICS_DRAW
/** If on, physics world will be drawn. */
#define LCR_SETTING_DEBUG_PHYSICS_DRAW 0
#endif
#ifndef LCR_SETTING_POTATO_GRAPHICS
/** Setting this will turn on very simple graphics without textures and etc.,
can be good for very weak devices. */
#define LCR_SETTING_POTATO_GRAPHICS 0
#endif
#ifndef LCR_SETTING_MUSIC
/** Whether to enable in game music. */
#define LCR_SETTING_MUSIC 1
#endif
#ifndef LCR_SETTING_ENABLE_RESOURCE_FILE
/** May be used to disable using the user resource file. */
#define LCR_SETTING_ENABLE_RESOURCE_FILE 1
#endif
#ifndef LCR_SETTING_COUNTDOWN_SECONDS
/** Run start countdown length in seconds. */
#define LCR_SETTING_COUNTDOWN_SECONDS 1 // for release make 3
#endif
#ifndef LCR_SETTING_MAP_CHUNK_RELOAD_INTERVAL
/** Interval in rendering frames of reloading map chunks, should ideally be
kept a power of two, can't be 0. */
#define LCR_SETTING_MAP_CHUNK_RELOAD_INTERVAL 16
#endif
#ifndef LCR_SETTING_REPLAY_MAX_SIZE
/** Says the maximum size of a replay (in replay events). The value 0 will
turn replays off completely. */
#define LCR_SETTING_REPLAY_MAX_SIZE 256
#endif
#ifndef LCR_SETTING_HORIZON_SHIFT
/** Vertical offset of the background horizon in percents of screen height. */
#define LCR_SETTING_HORIZON_SHIFT 30
#endif
#ifndef LCR_SETTING_TIME_MULTIPLIER
/** Multiplies speed of time by this percentage, doesn't affect physics. */
#define LCR_SETTING_TIME_MULTIPLIER 100
#endif
#endif // guard