diff --git a/tools/editor/cli_arg_required.cpp b/tools/editor/cli_arg_required.cpp index 77506e97..991955b5 100644 --- a/tools/editor/cli_arg_required.cpp +++ b/tools/editor/cli_arg_required.cpp @@ -65,7 +65,7 @@ const char* const kArgRequired[] = { "--gen-camp-pack", "--gen-blacksmith-pack", "--gen-village-pack", "--gen-temple-pack", "--gen-graveyard-pack", "--gen-garden-pack", "--gen-dock-pack", "--gen-tavern-pack", - "--gen-mining-pack", + "--gen-mining-pack", "--gen-arena-pack", "--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", diff --git a/tools/editor/cli_gen_mesh.cpp b/tools/editor/cli_gen_mesh.cpp index 8d7c8410..cf16e60b 100644 --- a/tools/editor/cli_gen_mesh.cpp +++ b/tools/editor/cli_gen_mesh.cpp @@ -7120,6 +7120,24 @@ int handleGenBlacksmithPack(int& i, int /*argc*/, char** argv) { }); } +int handleGenArenaPack(int& i, int /*argc*/, char** argv) { + // Combat training / gladiator pit / militia drill yard scene: + // training-dummy (the practice target), archery-target (range + // station), workbench (weapons-rack stand), crate-stack + // (gear storage), bench (audience seating), water-trough + // (between-bout refresh), hitching-rail (mount parking). + std::string outDir = argv[++i]; + return emitMeshPack(outDir, "arena pack", { + {"--gen-mesh-training-dummy", handleTrainingDummy, "dummy"}, + {"--gen-mesh-archery-target", handleArcheryTarget, "target"}, + {"--gen-mesh-workbench", handleWorkbench, "rack"}, + {"--gen-mesh-crate-stack", handleCrateStack, "crates"}, + {"--gen-mesh-bench", handleBench, "bench"}, + {"--gen-mesh-water-trough", handleWaterTrough, "trough"}, + {"--gen-mesh-hitching-rail", handleHitchingRail, "rail"}, + }); +} + int handleGenMiningPack(int& i, int /*argc*/, char** argv) { // Mining shaft / quarry scene: gravel-pile (loose rubble), // crate-stack (raw-ore cargo), mine-cart (underground @@ -7342,6 +7360,7 @@ constexpr MeshEntry kMeshTable[] = { {"--gen-dock-pack", 1, handleGenDockPack}, {"--gen-tavern-pack", 1, handleGenTavernPack}, {"--gen-mining-pack", 1, handleGenMiningPack}, + {"--gen-arena-pack", 1, handleGenArenaPack}, {"--gen-mesh-table", 1, handleTable}, {"--gen-mesh-lamppost", 1, handleLamppost}, {"--gen-mesh-bed", 1, handleBed}, diff --git a/tools/editor/cli_help.cpp b/tools/editor/cli_help.cpp index d69c91a5..faaf327f 100644 --- a/tools/editor/cli_help.cpp +++ b/tools/editor/cli_help.cpp @@ -336,6 +336,8 @@ void printUsage(const char* argv0) { std::printf(" Convenience: emit house + chimney + table + bench + barrel + bookshelf + signpost into outDir\n"); std::printf(" --gen-mining-pack \n"); std::printf(" Convenience: emit gravel-pile + crate-stack + mine-cart + pillar-row + lantern + workbench + hitching-post\n"); + std::printf(" --gen-arena-pack \n"); + std::printf(" Convenience: emit training-dummy + archery-target + workbench + crate-stack + bench + water-trough + hitching-rail\n"); std::printf(" --gen-mesh-table [width] [depth] [height] [legThick] [topThick]\n"); std::printf(" Table: flat top slab on 4 corner legs (default 1.6/1.0/0.85/0.10/0.06)\n"); std::printf(" --gen-mesh-lamppost [poleH] [poleT] [baseSize] [lanternSize] [lanternH]\n");