feat(editor): add --gen-zone-atmosphere paired light+weather composite

Convenience composite that drops both atmosphere.wol AND
atmosphere.wow into <zoneDir> in a single invocation, using
a paired light/weather preset:

  --preset default  → makeDefaultDayNight + makeTemperate
  --preset arctic   → makeNight            + makeArctic
  --preset desert   → makeDefaultDayNight  + makeDesert
  --preset stormy   → makeDefaultDayNight  + makeStormy
  --preset cave     → makeCave             + makeTemperate

The preset pairs are curated so the lighting and weather
match the zone climate (arctic uses always-night WOL +
arctic WOW; cave uses dim cave WOL + temperate WOW since
cave weather is rarely visible).

Useful as the canonical "give me a working atmosphere setup
for a fresh zone in one command" entrypoint. Both files
land at <zoneDir>/atmosphere.{wol,wow} where the runtime
loader can find them by convention.

Smoke-tested both default and arctic presets — both produce
files that pass --validate-wol and --validate-wow cleanly.
This commit is contained in:
Kelsi 2026-05-09 14:21:55 -07:00
parent 25ada9bbfb
commit 40e25910b1
3 changed files with 78 additions and 0 deletions

View file

@ -813,6 +813,8 @@ void printUsage(const char* argv0) {
std::printf(" Emit .wow weather schedule: clear-dominant + sandstorm (dunes / wasteland)\n");
std::printf(" --gen-weather-stormy <wow-base> [zoneName]\n");
std::printf(" Emit .wow weather schedule: heavy rain + storm + occasional clear (coastal / monsoon)\n");
std::printf(" --gen-zone-atmosphere <zoneDir> [--name <zoneName>] [--preset default|arctic|desert|stormy|cave]\n");
std::printf(" Convenience: drop both atmosphere.wol + atmosphere.wow into <zoneDir> using a paired light/weather preset\n");
std::printf(" --info-wot <wot-base> [--json]\n");
std::printf(" Print WOT/WHM terrain metadata (tile, chunks, height range) and exit\n");
std::printf(" --info-extract <dir> [--json]\n");