Licar/settings.h
2024-12-18 00:18:31 +01:00

168 lines
5.1 KiB
C

#ifndef _LCR_SETTINGS_H
#define _LCR_SETTINGS_H
#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
#define LCR_SETTING_FREE_CAMERA_SPEED 30
#endif
#ifndef LCR_SETTING_FREE_CAMERA_TURN_SPEED
#define LCR_SETTING_FREE_CAMERA_TURN_SPEED 1024
#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_FLOOR_PARTICLE_RESOLUTION
/** How many level floor particles there will be along one principal axis, 0
turns floor particles off. */
#define LCR_SETTING_FLOOR_PARTICLE_RESOLUTION 6
#endif
#ifndef LCR_SETTING_FLOOR_PARTICLE_SIZE
/** Defines floor particle size in fractions of screen size. */
#define LCR_SETTING_FLOOR_PARTICLE_SIZE 32
#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_METERS_PER_BLOCK
/** How many meters one game block is considered to measure (horizontally).
This is for calculating speed etc. */
#define LCR_SETTING_METERS_PER_BLOCK 4
#endif
#ifndef LCR_SETTING_DEBUG_PHYSICS_DRAW
/** If on, physics world will be drawn. */
#define LCR_SETTING_DEBUG_PHYSICS_DRAW 0
#endif
#endif // guard