# TODO ## ~~Distance-based sound effects~~ ✓ Implemented: `audio_set_listener()`, `audio_play_sound_at()` with linear attenuation and stereo panning. Used by enemy death, asteroid impact, and powerup pickup. ## ~~Spacecraft art and entity~~ ✓ Implemented: spacecraft PNG spritesheet (5 frames, 80x48 each), full entity with state machine (FLYING_IN → LANDING → LANDED → TAKEOFF → FLYING_OUT → DONE), engine/synth sounds, thruster particles, level intro sequence with deferred player spawn. ## Large map support (5000x5000) Audit the engine for anything that breaks or becomes slow at very large map sizes. Key areas to check: - Tile layer allocation (`uint16_t *` for 25M tiles) - Tilemap rendering culling (already viewport-clipped, verify correctness) - Physics / collision queries (should only check nearby tiles) - Entity updates (currently iterates full pool regardless of distance) - Camera bounds and coordinate overflow (float precision at large coords) - Level file parsing (row lines could exceed fgets buffer at 5000+ columns) ## Spacecraft at level exit Ship landing at exit zone when player approaches — player enters, ship takes off, triggers level transition. The intro/start sequence is done; this is the exit counterpart. ## Asteroid refinement - Reduce asteroid count significantly — occasional hazard, not a barrage - Add slight horizontal drift so they fall at an angle rather than straight down - Increase fall speed for more impact - Stagger spawns more widely across the level