2026-05-09 10:08:14 -07:00
|
|
|
#include "cli_arg_required.hpp"
|
|
|
|
|
|
|
|
|
|
namespace wowee {
|
|
|
|
|
namespace editor {
|
|
|
|
|
namespace cli {
|
|
|
|
|
|
|
|
|
|
const char* const kArgRequired[] = {
|
|
|
|
|
"--data", "--info", "--info-batches", "--info-textures", "--info-doodads",
|
|
|
|
|
"--info-attachments", "--info-particles", "--info-sequences",
|
|
|
|
|
"--info-bones", "--export-bones-dot",
|
|
|
|
|
"--list-zone-meshes", "--list-zone-audio", "--list-zone-textures",
|
|
|
|
|
"--list-project-meshes", "--list-project-audio",
|
|
|
|
|
"--list-project-textures",
|
|
|
|
|
"--info-zone-models-total", "--info-project-models-total",
|
|
|
|
|
"--list-zone-meshes-detail", "--list-project-meshes-detail", "--info-mesh",
|
2026-05-09 10:41:58 -07:00
|
|
|
"--info-mesh-storage-budget", "--info-mesh-stats",
|
2026-05-09 10:57:22 -07:00
|
|
|
"--info-wob", "--info-wob-stats", "--info-woc", "--info-wot",
|
feat(pipeline): add WOL validation + time-of-day sampling
Three additions to the Wowee Open Light format that landed
last commit:
• WoweeLightLoader::sampleAtTime(light, timeMin) returns
the linearly-interpolated keyframe at any time-of-day,
correctly handling wrap-around between the last keyframe
and the first (e.g. 21:00 blends from dusk toward
midnight by going forward through 00:00).
• --validate-wol <wol-base> [--json] walks every keyframe
and reports structural problems: time bounds (must be
[0, 1440)), strict-ascending sort order, fogEnd >
fogStart, finite color components. Exit code 0 PASS /
1 FAIL — CI-friendly.
• --info-wol-at <wol-base> <HH:MM|minutes> samples the
interpolated state at a specific time of day. Useful
for previewing what the renderer would feed in at a
given moment, debugging keyframe gaps, or previewing
a sub-range of the cycle.
Smoke-tested: dawn-to-midnight blend at 03:00 yields a
plausible mid-fade ambient (0.18, 0.16, 0.15) and dusk-to-
midnight wrap at 21:00 yields the symmetric (0.19, 0.145,
0.14). The default 4-keyframe day/night cycle from
makeDefaultDayNight passes --validate-wol cleanly.
2026-05-09 13:54:57 -07:00
|
|
|
"--info-wol", "--info-wol-at", "--validate-wol", "--gen-light",
|
2026-05-09 14:01:26 -07:00
|
|
|
"--gen-light-cave", "--gen-light-dungeon", "--gen-light-night",
|
2026-05-09 14:18:14 -07:00
|
|
|
"--export-wol-json", "--import-wol-json",
|
2026-05-09 14:25:41 -07:00
|
|
|
"--export-wow-json", "--import-wow-json",
|
2026-05-09 14:13:30 -07:00
|
|
|
"--info-wow", "--validate-wow",
|
2026-05-09 14:34:22 -07:00
|
|
|
"--validate-wom",
|
2026-05-09 14:38:05 -07:00
|
|
|
"--gen-world-map", "--gen-world-map-instance",
|
|
|
|
|
"--gen-world-map-arena",
|
|
|
|
|
"--info-womx", "--validate-womx",
|
feat(editor): add WOMX JSON round-trip authoring workflow
Mirrors the WOL/WOW JSON pair from earlier batches: gives
hand-editable access to .womx world-map manifests for
quick tile-bitmap edits without writing a binary patcher.
Tile bitmap is represented as a JSON array of '1'/'0' row
strings — one string per row of the grid. Visual layout
makes missing-row patterns obvious at a glance:
"tiles": [
"10000001",
"01000010",
"00100100",
"00011000",
...
]
Sparse [[x,y]] pair arrays were considered but rejected:
4× larger for a full continent (4096 tiles), and the dense
visual layout is far easier to spot-read for typical
edits like "carve out a hole in this region".
The importer tolerates missing optional fields (uses
WoweeWorldMap defaults), and accepts either worldType
int or worldTypeName string so JSON can be authored by
hand or by tools.
Verified byte-identical round-trip on a 4x4 instance and
a hand-authored 8x8 sparse continent (16/64 tiles, both
defaultLightId and defaultWeatherId preserved through the
JSON layer).
Adds 2 flags to reach 458 documented kArgRequired entries.
All 9 open formats now have established CLI tooling — WOM,
WOB, WOC, WOT, JsonDBC, PNG, WOL, WOW, and WOMX.
2026-05-09 14:39:47 -07:00
|
|
|
"--export-womx-json", "--import-womx-json",
|
2026-05-09 14:13:30 -07:00
|
|
|
"--gen-weather-temperate", "--gen-weather-arctic",
|
feat(pipeline): add Wowee Open Weather (.wow) zone schedule
8th open-format addition to the Wowee pipeline. Replaces
WoW's WeatherTypes.dbc / WeatherEffect logic with a single
binary file holding a list of weather states for one zone,
each tagged with intensity bounds, a probability weight,
and duration bounds. The renderer / runtime samples one
entry at a time using weighted-random selection, drives
it for a uniform-random duration in [min, max] sec, then
re-rolls.
• Types: Clear / Rain / Snow / Storm / Sandstorm / Fog /
Blizzard (extensible enum).
• Binary format: magic "WOWA", version 1, name, N entries
each storing (typeId, minIntensity, maxIntensity, weight,
minDurationSec, maxDurationSec).
CLI:
• --info-wow <wow-base> [--json] — inspect a WOW
• --gen-weather-temperate — clear + rain + fog (forest)
• --gen-weather-arctic — snow + blizzard + fog (tundra)
• --gen-weather-desert — clear + sandstorm (dunes)
• --gen-weather-stormy — rain + storm + occasional clear
The 8th open format complementing the rest:
M2 → WOM | WMO → WOB | WMO collision → WOC | ADT → WOT
DBC → JsonDBC | BLP → PNG | Light.dbc → WOL | WeatherTypes.dbc → WOW
Smoke-tested all 4 presets + JSON output. Each preset reads
back identically with the expected entry count and weight
distribution.
2026-05-09 14:10:13 -07:00
|
|
|
"--gen-weather-desert", "--gen-weather-stormy",
|
2026-05-09 14:21:55 -07:00
|
|
|
"--gen-zone-atmosphere",
|
2026-05-09 10:08:14 -07:00
|
|
|
"--info-creatures", "--info-objects", "--info-quests",
|
|
|
|
|
"--info-extract", "--info-extract-tree", "--info-extract-budget",
|
|
|
|
|
"--list-missing-sidecars",
|
|
|
|
|
"--info-png", "--info-jsondbc", "--info-blp", "--info-pack-budget",
|
|
|
|
|
"--info-pack-tree",
|
|
|
|
|
"--info-m2", "--info-wmo", "--info-adt",
|
|
|
|
|
"--info-zone", "--info-zone-overview", "--info-project-overview",
|
|
|
|
|
"--copy-project", "--info-wcp", "--list-wcp",
|
|
|
|
|
"--list-creatures", "--list-objects", "--list-quests",
|
|
|
|
|
"--list-quest-objectives", "--list-quest-rewards",
|
|
|
|
|
"--info-creature", "--info-quest", "--info-object",
|
|
|
|
|
"--info-quest-graph-stats",
|
|
|
|
|
"--info-creatures-by-faction", "--info-creatures-by-level",
|
|
|
|
|
"--info-objects-by-path", "--info-objects-by-type",
|
|
|
|
|
"--info-quests-by-level", "--info-quests-by-xp",
|
|
|
|
|
"--unpack-wcp", "--pack-wcp",
|
|
|
|
|
"--validate", "--validate-wom", "--validate-wob", "--validate-woc",
|
|
|
|
|
"--validate-whm", "--validate-all", "--validate-project",
|
|
|
|
|
"--validate-project-open-only", "--audit-project", "--bench-audit-project",
|
|
|
|
|
"--bench-validate-project", "--bench-bake-project",
|
|
|
|
|
"--bench-migrate-data-tree", "--list-data-tree-largest",
|
|
|
|
|
"--export-data-tree-md", "--gen-texture", "--gen-mesh", "--gen-mesh-textured",
|
|
|
|
|
"--add-texture-to-mesh", "--add-texture-to-zone",
|
|
|
|
|
"--gen-mesh-stairs", "--gen-mesh-grid", "--gen-mesh-disc",
|
|
|
|
|
"--gen-mesh-tube", "--gen-mesh-capsule", "--gen-mesh-arch",
|
|
|
|
|
"--gen-mesh-pyramid", "--gen-mesh-fence", "--gen-mesh-tree",
|
|
|
|
|
"--gen-mesh-rock", "--gen-mesh-pillar", "--gen-mesh-bridge",
|
|
|
|
|
"--gen-mesh-tower", "--gen-mesh-house", "--gen-mesh-fountain",
|
|
|
|
|
"--gen-mesh-statue", "--gen-mesh-altar", "--gen-mesh-portal",
|
|
|
|
|
"--gen-mesh-archway", "--gen-mesh-barrel", "--gen-mesh-chest",
|
|
|
|
|
"--gen-mesh-anvil", "--gen-mesh-mushroom", "--gen-mesh-cart",
|
|
|
|
|
"--gen-mesh-banner", "--gen-mesh-grave", "--gen-mesh-bench",
|
|
|
|
|
"--gen-mesh-shrine", "--gen-mesh-totem", "--gen-mesh-cage",
|
|
|
|
|
"--gen-mesh-throne", "--gen-mesh-coffin", "--gen-mesh-bookshelf",
|
2026-05-09 10:47:21 -07:00
|
|
|
"--gen-mesh-tent", "--gen-mesh-firepit", "--gen-mesh-woodpile",
|
2026-05-09 11:17:28 -07:00
|
|
|
"--gen-mesh-canopy", "--gen-mesh-haystack", "--gen-mesh-dock",
|
2026-05-09 11:39:33 -07:00
|
|
|
"--gen-mesh-pergola", "--gen-mesh-chimney", "--gen-mesh-bedroll",
|
2026-05-09 11:52:20 -07:00
|
|
|
"--gen-mesh-workbench", "--gen-mesh-crate-stack",
|
2026-05-09 12:02:35 -07:00
|
|
|
"--gen-mesh-watchpost", "--gen-mesh-water-trough",
|
feat(editor): add --gen-mesh-hitching-post stable fixture
67th procedural mesh primitive. Standard town/stable
hitching post:
• two vertical posts separated by `span`
• horizontal cross-bar at upper-post height (length =
span - postW so it tucks INSIDE the post inner faces,
matching real fence joinery)
• optional decorative caps on each post — set capH=0
for a bare working-yard post
All axis-aligned boxes, exercises every shared helper
(stripExt, initWomDefaults, addFlatBox,
finalizeAsSingleBatch, saveWomOrError). Watertight under
weld (verified 90 manifold edges, 0 boundary, 0
non-manifold).
Useful for stables, taverns with mount parking, town
squares, frontier outposts, ranger camps, post-and-rail
fence segments.
2026-05-09 12:15:41 -07:00
|
|
|
"--gen-mesh-training-dummy", "--gen-mesh-hitching-post",
|
2026-05-09 12:29:09 -07:00
|
|
|
"--gen-mesh-outhouse", "--gen-mesh-forge",
|
feat(editor): add --gen-mesh-gravel-pile rubble heap
71st procedural mesh primitive. Hash-distributed pile of
stone cubes in a roughly conical heap. Each stone gets:
• polar position (radial, theta) with sqrt(rand) on radial
so stones aren't bunched at center
• height limited by yMax = pileH * (1 - radial/baseR), so
larger / more numerous stones land near the base and
smaller ones perch on top — natural gravel-pile profile
• size in the 40-100% range of maxStoneSize
The second multi-box "scene" composite primitive (after
--gen-mesh-crate-stack), but using irregular hashed
placement instead of a regular N×M×K grid. Deterministic
from seed: re-running with same args reproduces the
identical pile.
Useful for mine entrances, construction sites, quarries,
ruined walls, abandoned-fort rubble, pirate-cove stash
mounds. Default 24 stones at 0.6 m base radius gives a
reasonable medium-pile.
Uses every shared helper introduced this batch (printWomWrote,
printWomMeshStats, setCenteredBoundsXZ, addFlatBox,
saveWomOrError, parseOpt*, stripExt).
2026-05-09 12:43:03 -07:00
|
|
|
"--gen-mesh-archery-target", "--gen-mesh-gravel-pile",
|
2026-05-09 12:54:17 -07:00
|
|
|
"--gen-mesh-stone-bench", "--gen-mesh-mine-cart",
|
2026-05-09 13:04:55 -07:00
|
|
|
"--gen-mesh-hitching-rail", "--gen-mesh-pillar-row",
|
2026-05-09 13:16:06 -07:00
|
|
|
"--gen-mesh-statue-base", "--gen-mesh-bird-bath",
|
2026-05-09 13:32:43 -07:00
|
|
|
"--gen-mesh-planter-box", "--gen-mesh-urn", "--gen-mesh-candle",
|
2026-05-09 13:42:58 -07:00
|
|
|
"--gen-mesh-lantern", "--gen-mesh-chalice",
|
2026-05-09 13:58:22 -07:00
|
|
|
"--gen-mesh-standing-torch", "--gen-mesh-scroll-case",
|
2026-05-09 14:23:23 -07:00
|
|
|
"--gen-mesh-stove", "--gen-mesh-well-pail",
|
2026-05-09 14:30:18 -07:00
|
|
|
"--gen-mesh-mug",
|
2026-05-09 12:45:25 -07:00
|
|
|
"--gen-camp-pack", "--gen-blacksmith-pack", "--gen-village-pack",
|
2026-05-09 12:55:50 -07:00
|
|
|
"--gen-temple-pack", "--gen-graveyard-pack",
|
2026-05-09 13:17:49 -07:00
|
|
|
"--gen-garden-pack", "--gen-dock-pack", "--gen-tavern-pack",
|
2026-05-09 13:44:48 -07:00
|
|
|
"--gen-mining-pack", "--gen-arena-pack",
|
2026-05-09 10:08:14 -07:00
|
|
|
"--gen-mesh-table", "--gen-mesh-lamppost", "--gen-mesh-bed",
|
|
|
|
|
"--gen-mesh-ladder", "--gen-mesh-well", "--gen-mesh-signpost",
|
|
|
|
|
"--gen-mesh-mailbox", "--gen-mesh-tombstone", "--gen-mesh-crate",
|
|
|
|
|
"--gen-mesh-stool", "--gen-mesh-cauldron", "--gen-mesh-gate",
|
|
|
|
|
"--gen-mesh-beehive", "--gen-mesh-weathervane",
|
|
|
|
|
"--gen-mesh-scarecrow", "--gen-mesh-sundial",
|
2026-05-09 10:11:24 -07:00
|
|
|
"--gen-mesh-podium", "--gen-mesh-brazier", "--gen-mesh-archway-double",
|
2026-05-09 10:08:14 -07:00
|
|
|
"--gen-texture-gradient",
|
|
|
|
|
"--gen-mesh-from-heightmap", "--export-mesh-heightmap",
|
|
|
|
|
"--displace-mesh",
|
|
|
|
|
"--scale-mesh", "--translate-mesh", "--strip-mesh",
|
|
|
|
|
"--gen-texture-noise", "--gen-texture-noise-color", "--rotate-mesh",
|
|
|
|
|
"--center-mesh", "--flip-mesh-normals", "--mirror-mesh",
|
|
|
|
|
"--smooth-mesh-normals",
|
|
|
|
|
"--merge-meshes",
|
|
|
|
|
"--gen-texture-radial", "--gen-texture-stripes", "--gen-texture-dots",
|
|
|
|
|
"--gen-texture-rings", "--gen-texture-checker", "--gen-texture-brick",
|
|
|
|
|
"--gen-texture-wood", "--gen-texture-grass", "--gen-texture-fabric",
|
|
|
|
|
"--gen-texture-cobble", "--gen-texture-marble", "--gen-texture-metal",
|
|
|
|
|
"--gen-texture-leather", "--gen-texture-sand", "--gen-texture-snow",
|
|
|
|
|
"--gen-texture-lava", "--gen-texture-tile", "--gen-texture-bark",
|
|
|
|
|
"--gen-texture-clouds", "--gen-texture-stars", "--gen-texture-vines",
|
|
|
|
|
"--gen-texture-mosaic", "--gen-texture-rust", "--gen-texture-circuit",
|
|
|
|
|
"--gen-texture-coral", "--gen-texture-flame", "--gen-texture-tartan",
|
|
|
|
|
"--gen-texture-argyle", "--gen-texture-herringbone",
|
|
|
|
|
"--gen-texture-scales", "--gen-texture-stained-glass",
|
|
|
|
|
"--gen-texture-shingles", "--gen-texture-frost",
|
|
|
|
|
"--gen-texture-parquet", "--gen-texture-bubbles",
|
|
|
|
|
"--gen-texture-spider-web", "--gen-texture-gingham",
|
|
|
|
|
"--gen-texture-lattice", "--gen-texture-honeycomb",
|
|
|
|
|
"--gen-texture-cracked", "--gen-texture-runes",
|
|
|
|
|
"--gen-texture-leopard", "--gen-texture-zebra",
|
2026-05-09 10:34:02 -07:00
|
|
|
"--gen-texture-knit", "--gen-texture-chainmail",
|
2026-05-09 10:50:46 -07:00
|
|
|
"--gen-texture-planks", "--gen-texture-corrugated",
|
2026-05-09 11:12:28 -07:00
|
|
|
"--gen-texture-rope", "--gen-texture-caustics",
|
2026-05-09 11:31:27 -07:00
|
|
|
"--gen-texture-starburst", "--gen-texture-studs",
|
2026-05-09 11:44:33 -07:00
|
|
|
"--gen-texture-moss", "--gen-texture-woodgrain",
|
2026-05-09 11:56:01 -07:00
|
|
|
"--gen-texture-carbon", "--gen-texture-pinstripe",
|
2026-05-09 12:08:11 -07:00
|
|
|
"--gen-texture-camo", "--gen-texture-snake-skin",
|
2026-05-09 12:20:11 -07:00
|
|
|
"--gen-texture-mesh-screen", "--gen-texture-bamboo",
|
2026-05-09 12:33:25 -07:00
|
|
|
"--gen-texture-blueprint", "--gen-texture-rust-streaks",
|
2026-05-09 12:47:28 -07:00
|
|
|
"--gen-texture-plaid", "--gen-texture-diamond-grid",
|
2026-05-09 12:57:47 -07:00
|
|
|
"--gen-texture-houndstooth", "--gen-texture-chevron",
|
2026-05-09 13:08:07 -07:00
|
|
|
"--gen-texture-dunes", "--gen-texture-swirl",
|
2026-05-09 13:19:30 -07:00
|
|
|
"--gen-texture-ironbark", "--gen-texture-mold",
|
2026-05-09 13:30:57 -07:00
|
|
|
"--gen-texture-embroidery", "--gen-texture-lightbeam",
|
2026-05-09 13:41:40 -07:00
|
|
|
"--gen-texture-dewdrops", "--gen-texture-pinwheel",
|
2026-05-09 13:56:41 -07:00
|
|
|
"--gen-texture-scratched-metal", "--gen-texture-crackle",
|
2026-05-09 14:12:04 -07:00
|
|
|
"--gen-texture-star", "--gen-texture-halftone",
|
2026-05-09 14:26:57 -07:00
|
|
|
"--gen-texture-bayer", "--gen-texture-moon",
|
2026-05-09 10:08:14 -07:00
|
|
|
"--validate-glb", "--info-glb", "--info-glb-tree", "--info-glb-bytes",
|
|
|
|
|
"--validate-jsondbc", "--check-glb-bounds", "--validate-stl",
|
|
|
|
|
"--validate-png", "--validate-blp",
|
|
|
|
|
"--zone-summary", "--info-zone-tree", "--info-project-tree",
|
|
|
|
|
"--info-zone-bytes", "--info-project-bytes",
|
|
|
|
|
"--info-zone-extents", "--info-project-extents",
|
|
|
|
|
"--info-zone-water", "--info-project-water",
|
|
|
|
|
"--info-zone-density", "--info-project-density",
|
|
|
|
|
"--export-zone-summary-md", "--export-quest-graph",
|
|
|
|
|
"--export-zone-csv", "--export-zone-html", "--export-project-html",
|
|
|
|
|
"--export-project-md", "--export-zone-checksum", "--export-project-checksum",
|
|
|
|
|
"--validate-project-checksum",
|
|
|
|
|
"--scaffold-zone", "--mvp-zone", "--add-tile", "--remove-tile", "--list-tiles",
|
|
|
|
|
"--for-each-zone", "--for-each-tile", "--zone-stats", "--info-tilemap",
|
|
|
|
|
"--list-zone-deps", "--list-project-orphans", "--remove-project-orphans",
|
|
|
|
|
"--check-zone-refs", "--check-zone-content",
|
|
|
|
|
"--check-project-content", "--check-project-refs",
|
|
|
|
|
"--export-zone-deps-md", "--export-zone-spawn-png",
|
|
|
|
|
"--add-creature", "--add-object", "--add-quest", "--add-item",
|
|
|
|
|
"--random-populate-zone", "--random-populate-items",
|
|
|
|
|
"--info-zone-audio", "--snap-zone-to-ground", "--audit-zone-spawns",
|
|
|
|
|
"--info-project-audio", "--snap-project-to-ground",
|
|
|
|
|
"--audit-project-spawns", "--list-zone-spawns", "--list-project-spawns",
|
|
|
|
|
"--gen-random-zone", "--gen-random-project", "--gen-zone-texture-pack",
|
|
|
|
|
"--gen-zone-mesh-pack", "--gen-zone-starter-pack",
|
|
|
|
|
"--gen-project-starter-pack", "--gen-audio-tone",
|
|
|
|
|
"--gen-audio-noise", "--gen-audio-sweep", "--gen-zone-audio-pack",
|
|
|
|
|
"--info-zone-summary", "--info-project-summary",
|
|
|
|
|
"--info-zone-deps", "--info-project-deps",
|
|
|
|
|
"--gen-zone-readme", "--gen-project-readme",
|
|
|
|
|
"--validate-zone-pack", "--validate-project-packs", "--info-spawn",
|
|
|
|
|
"--diff-zone-spawns",
|
|
|
|
|
"--list-items", "--info-item", "--set-item", "--export-zone-items-md",
|
|
|
|
|
"--export-project-items-md", "--export-project-items-csv",
|
|
|
|
|
"--add-quest-objective", "--add-quest-reward-item", "--set-quest-reward",
|
|
|
|
|
"--remove-quest-objective", "--clone-quest", "--clone-creature",
|
|
|
|
|
"--clone-item", "--validate-items", "--validate-project-items",
|
|
|
|
|
"--info-project-items",
|
|
|
|
|
"--clone-object",
|
|
|
|
|
"--remove-creature", "--remove-object", "--remove-quest", "--remove-item",
|
|
|
|
|
"--copy-zone-items",
|
|
|
|
|
"--copy-zone", "--rename-zone", "--remove-zone",
|
|
|
|
|
"--clear-zone-content", "--strip-zone", "--strip-project",
|
|
|
|
|
"--repair-zone", "--repair-project",
|
|
|
|
|
"--gen-makefile", "--gen-project-makefile",
|
|
|
|
|
"--build-woc", "--regen-collision", "--fix-zone",
|
|
|
|
|
"--export-png", "--export-obj", "--import-obj",
|
|
|
|
|
"--export-wob-obj", "--import-wob-obj",
|
|
|
|
|
"--export-woc-obj", "--export-whm-obj",
|
|
|
|
|
"--export-glb", "--export-wob-glb", "--export-whm-glb",
|
|
|
|
|
"--export-stl", "--import-stl",
|
|
|
|
|
"--bake-zone-glb", "--bake-zone-stl", "--bake-zone-obj",
|
|
|
|
|
"--bake-project-obj", "--bake-project-stl", "--bake-project-glb",
|
2026-05-09 11:36:38 -07:00
|
|
|
"--bake-wom-collision", "--bake-wob-collision", "--bake-zone-collision",
|
2026-05-09 11:33:10 -07:00
|
|
|
"--audit-watertight", "--audit-watertight-wob",
|
2026-05-09 10:08:14 -07:00
|
|
|
"--convert-m2", "--convert-m2-batch",
|
|
|
|
|
"--convert-wmo", "--convert-wmo-batch",
|
|
|
|
|
"--convert-dbc-json", "--convert-dbc-batch", "--convert-json-dbc",
|
|
|
|
|
"--convert-blp-png", "--convert-blp-batch",
|
|
|
|
|
"--migrate-wom", "--migrate-zone", "--migrate-project",
|
|
|
|
|
"--migrate-data-tree", "--info-data-tree", "--strip-data-tree",
|
|
|
|
|
"--audit-data-tree",
|
|
|
|
|
"--migrate-jsondbc",
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const std::size_t kArgRequiredSize =
|
|
|
|
|
sizeof(kArgRequired) / sizeof(kArgRequired[0]);
|
|
|
|
|
|
|
|
|
|
} // namespace cli
|
|
|
|
|
} // namespace editor
|
|
|
|
|
} // namespace wowee
|