From 90142cb0dfb0d3d89de976f871e50889a476115a Mon Sep 17 00:00:00 2001 From: Kelsi Date: Tue, 5 May 2026 15:12:19 -0700 Subject: [PATCH] docs: CHANGELOG, README editor section, fix dbc_to_csv build - CHANGELOG: add World Editor section (12.5k+ lines, 6 modes, 30+ tools) and Novel Open Formats section (6/6 replacements, 309 test assertions) - README: add World Editor section with build/run/CLI examples, format summary, and reference to FORMAT_SPEC.md - Fix dbc_to_csv build: add extern/ to include path for nlohmann/json (broke when dbc_loader.cpp gained JSON DBC loading support) --- CHANGELOG.md | 31 +++++++++++++++++++++++++++++++ CMakeLists.txt | 1 + README.md | 22 ++++++++++++++++++++++ 3 files changed, 54 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 03d49042..47c9df3c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,37 @@ - Extract reusable CatmullRomSpline module to `src/math/` with O(log n) binary search and fused position+tangent evaluation (PR #60) - Decompose TransportManager (1,200→500 LOC): extract TransportPathRepository, TransportClockSync, TransportAnimator; consolidate 7 duplicated spline parsers into `spline_packet.cpp` (PR #60) +### World Editor (tools/editor/) +- Standalone world editor for creating custom WoW zones (12.5k+ lines, 55 files) +- 6 editing modes: Sculpt, Paint, Objects, Water, NPCs, Quests +- 30+ terrain tools: procedural generators (hill, mesa, crater, canyon, island, ridge, dunes), thermal erosion, noise, mirror/rotate, stamp copy/paste with file persistence +- Multi-select objects (Ctrl+Shift+Click), Select All (Ctrl+A), Select by Type (M2/WMO) +- Time-of-day lighting with dawn/dusk/night transitions and color pickers +- Texture eyedropper (Alt+Click), brush size presets + bracket keys +- Object tools: snap to ground, align to slope, flatten terrain around buildings, scatter with auto-align +- River/road path tool with click-to-set points and translucent preview ribbon +- Quest chains with circular reference detection, inline editing, load/save +- 631 creature presets across 8 categories with patrol path editing +- Full undo/redo for ALL terrain operations (generators, transforms, paint) +- Auto-save with configurable interval, unsaved changes quit confirmation +- Zone rename, recent zones menu, adjacent tile export with edge stitching +- Live open format validation (0-6 score) in File menu + +### Novel Open Formats (6/6 Blizzard format replacements) +- ADT → WOT/WHM: terrain metadata + binary heightmap with alpha maps and doodad/WMO placements +- WDT → zone.json: map definition with full placement arrays +- BLP → PNG: texture override system +- DBC → JSON: data tables via DBCFile::loadJSON() +- M2 → WOM (WOM1): models with render batches, textures, materials +- WMO → WOB (WOB1): buildings with material flags/shader/blendMode, doodad rotation +- WCP (WCP1): content pack archive with categorized file list +- Terrain stamps: portable terrain features saved as JSON +- All formats documented in FORMAT_SPEC.md v1.1 +- Client auto-loads open formats from custom_zones/ and output/ directories +- Batch convert: M2→WOM and WMO→WOB from filesystem or asset manifest +- WCP Import & Load: one-click unpack + auto-open for editing +- 309 test assertions across 81 test cases (DBC binary+JSON, WOB, WHM, WOT) + ### Features - Spell visual effects system with bone-tracked ribbons and particles (PR #58) - GM command support: 190-command data table with dot-prefix interception, tab-completion, `/gmhelp` with category filter (PR #62) diff --git a/CMakeLists.txt b/CMakeLists.txt index 18178f57..df438a4a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1213,6 +1213,7 @@ add_executable(dbc_to_csv ) target_include_directories(dbc_to_csv PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include + ${CMAKE_CURRENT_SOURCE_DIR}/extern ) target_link_libraries(dbc_to_csv PRIVATE Threads::Threads) set_target_properties(dbc_to_csv PROPERTIES diff --git a/README.md b/README.md index a7e2408f..29679351 100644 --- a/README.md +++ b/README.md @@ -29,6 +29,28 @@ Protocol Compatible with **Vanilla (Classic) 1.12 + TBC 2.4.3 + WotLK 3.3.5a**. - **Container builds**: Multi-platform Docker build system for Linux, macOS (arm64/x86_64 via osxcross), and Windows (LLVM-MinGW) cross-compilation. - **Release**: v1.8.9-preview — 530+ WoW API functions, 140+ events, 664 opcode handlers. +## World Editor + +Standalone tool for creating custom WoW zones with novel open format exports. + +```bash +# Build +cmake --build build --target wowee_editor + +# Run +./build/bin/wowee_editor --data Data + +# Batch convert assets +./build/bin/wowee_editor --convert-m2 Creature/Bear/Bear.m2 --data Data +./build/bin/wowee_editor --convert-wmo World/WMO/Stormwind/Stormwind.wmo --data Data +``` + +**6 editing modes** (Sculpt, Paint, Objects, Water, NPCs, Quests) with 30+ terrain tools, multi-select, time-of-day lighting, quest chains, and full undo/redo. + +**6 novel open format replacements** for all Blizzard proprietary formats: WOT/WHM (terrain), WOM (models), WOB (buildings), zone.json (map def), PNG (textures), JSON (data tables). See `tools/editor/FORMAT_SPEC.md` for full specifications. + +Exported zones auto-load in the wowee client from `custom_zones/` or `output/` directories. + ## Features ### Rendering Engine