#ifndef JNR_CONFIG_H #define JNR_CONFIG_H /* ── Window ─────────────────────────────────────────── */ #define WINDOW_TITLE "Jump 'n Run" #define SCREEN_WIDTH 640 #define SCREEN_HEIGHT 360 #define WINDOW_SCALE 2 /* integer scale for crisp pixels */ /* ── Timing ─────────────────────────────────────────── */ #define TICK_RATE 60 /* physics updates per second */ #define DT (1.0f / TICK_RATE) #define MAX_FRAME_SKIP 5 /* prevent spiral of death */ /* ── Physics ────────────────────────────────────────── */ #define DEFAULT_GRAVITY 980.0f /* pixels/s^2 (Earth-like) */ #define MAX_FALL_SPEED 600.0f /* terminal velocity */ /* ── Tiles ──────────────────────────────────────────── */ #define TILE_SIZE 16 /* pixels per tile */ #define MAX_TILE_DEFS 256 /* unique tile types */ #define MAX_MAP_SIZE 8192 /* max width or height in tiles */ /* ── Entities ───────────────────────────────────────── */ #define MAX_ENTITIES 512 #define MAX_ENTITY_SPAWNS 512 /* max entity spawns per level */ /* ── Level transitions ─────────────────────────────── */ #define MAX_EXIT_ZONES 16 /* max exit zones per level */ /* ── Rendering ──────────────────────────────────────── */ #define MAX_SPRITES 2048 /* max queued sprites per frame */ /* ── Audio ──────────────────────────────────────────── */ #define AUDIO_FREQUENCY 48000 #define AUDIO_CHANNELS 2 #define AUDIO_CHUNK_SIZE 4096 #define MAX_SFX_CHANNELS 16 /* ── Assets ─────────────────────────────────────────── */ #define MAX_ASSETS 128 #define ASSET_PATH_MAX 256 #endif /* JNR_CONFIG_H */