power_play/src/config.h
2025-03-01 09:39:00 -06:00

80 lines
2.2 KiB
C

/* Project-wide configurable constants */
#define WRITE_DIR "power_play"
/* Window title */
#if RTC
# if DEVELOPER
# define WINDOW_TITLE "Debug (Developer Build)"
# else
# define WINDOW_TITLE "Debug"
# endif
#else
# if DEVELOPER
# define WINDOW_TITLE "Power Play (Developer Build)"
# else
# define WINDOW_TITLE "Power Play"
# endif
#endif
/* If we are not compiling in developer mode, assume resources are embedded as
* a tar archive in the executable. Otherwise, look for resources in the file
* system. */
#define RESOURCES_EMBEDDED (!DEVELOPER)
#define RESOURCE_RELOADING (DEVELOPER && !RESOURCES_EMBEDDED)
#define DEFAULT_CAMERA_WIDTH (15.0)
#define DEFAULT_CAMERA_HEIGHT (DEFAULT_CAMERA_WIDTH / (16.0 / 9.0))
#define IMAGE_PIXELS_PER_UNIT 128.0
/* How many ticks back in time should the user blend between?
* <Delay> = <USER_INTERP_RATIO> * <Tick interval>
* E.g: At 1.5, the user thread will render 75ms back in time if the sim runs at 50tps
*/
#define USER_INTERP_RATIO 1.5
#define USER_INTERP_ENABLED 1
/* 64^2 = 4096 bins */
#define SPACE_CELL_BINS_SQRT (64)
#define SPACE_CELL_SIZE 1.0f
#define SIM_TICKS_PER_SECOND 50
#define SIM_TIMESCALE 1
/* Like USER_INTERP_RATIO, but applies to snapshots received by the local sim from the
* master sim (how far back in time should the client render the server's state) */
#define SIM_CLIENT_INTERP_RATIO 2.0
#define SIM_PHYSICS_SUBSTEPS 4
#define SIM_PHYSICS_ENABLE_WARM_STARTING 1
#define SIM_PHYSICS_ENABLE_RELAXATION 1
#define SIM_PHYSICS_ENABLE_TOI 1
#define SIM_PHYSICS_ENABLE_COLLISION 1
#define SIM_SPAWN_TESTENT 0
#define SIM_PLAYER_AIM 1
#define SIM_MAX_LINEAR_VELOCITY 500
#define SIM_MAX_ANGULAR_VELOCITY (TAU * 20)
#define COLLIDER_DEBUG 0
#define COLLIDER_DEBUG_DETAILED 0
#define COLLIDER_DEBUG_DETAILED_DRAW_MENKOWSKI 0
/* If enabled, bitbuffs will insert/verify magic numbers & length for each read & write */
#define BITBUFF_DEBUG 0
#define BITBUFF_TEST RTC
/* If enabled, things like network writes & memory allocations will be tracked in a global statistics struct */
#define GSTAT_ENABLED 1
/* ========================== *
* Settings
* ========================== */
/* TODO: Move these to user-configurable settings */
#define AUDIO_ENABLED 0
#define VSYNC_ENABLED 0
#define USER_FPS_LIMIT 300