Files
major_tom/TODO.md

51 lines
2.5 KiB
Markdown

# 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~~ ✓
Implemented: base speed 120→200, accel 200→350, respawn 3→6s, stagger 0-3→0-8s,
random horizontal drift (±60 px/s), moon level reduced from 24 to 8 asteroids.
## Moon campaign: 3 levels with spacecraft transitions
Extend the moon into a 3-level sequence connected by spacecraft takeoff/landing:
- **moon01.lvl** — Current level. Exit triggers spacecraft takeoff, transitions
to moon02.
- **moon02.lvl** — Second moon level (new terrain, new hazards). Starts with
spacecraft landing intro. Exit triggers takeoff to moon03.
- **moon03.lvl** — Third/final moon level. Starts with spacecraft landing.
Exit triggers takeoff and transitions to level01 (space station).
- **level01.lvl** (space station roof) — Starts with spacecraft landing on the
station rooftop. Ship stays landed (no takeoff). First armed level.
- Moon exit transitions require the "spacecraft at level exit" feature so
the ship flies in when the player approaches the exit zone.
## Jetpack boost blue flame effects
- Add continuous blue flame particles trailing from the player during jetpack
boost (while boost is active, not just on burst)
- Add blue accents to the jetpack burst effect itself — mix blue flame particles
into the existing yellow/orange exhaust plume