refactor(editor): extract zone-pack orchestrators into cli_zone_packs.cpp

Continues the modularization started in 6c9ab6fa. Moves the four
pack-orchestrator handlers (--gen-zone-texture-pack, -mesh-pack,
-starter-pack, --gen-project-starter-pack) into their own file
following the same handle<Family> pattern.

Side cleanup:
  - Consolidated the duplicated --seed flag parser into a single
    parseSeedFlag helper
  - Consolidated the std::system + > /dev/null wrap into runSilently

main.cpp drops 28,329 → 28,070 lines (-259). Pack family is fully
self-contained (~260 lines), behavior unchanged (verified by
re-running gen-zone-starter-pack and confirming 6 PNGs + 5 WOMs).
This commit is contained in:
Kelsi 2026-05-08 16:46:14 -07:00
parent 6c9ab6faed
commit 774dab9330
4 changed files with 302 additions and 263 deletions

View file

@ -0,0 +1,22 @@
#pragma once
namespace wowee {
namespace editor {
namespace cli {
// Dispatch the four zone/project pack-orchestrator handlers:
// --gen-zone-texture-pack
// --gen-zone-mesh-pack
// --gen-zone-starter-pack
// --gen-project-starter-pack
//
// Each fans out to per-asset commands via subprocess, so this
// module has no dependency on the procedural generators it calls.
//
// Returns true if matched; outRc holds the exit code. Returns
// false if no match — caller should continue its dispatch chain.
bool handleZonePacks(int& i, int argc, char** argv, int& outRc);
} // namespace cli
} // namespace editor
} // namespace wowee