Kelsidavis-WoWee/tools/editor
Kelsi 8f6315f155 feat(editor): add --validate-woc + --validate-whm and roll into validate-all
Round out the per-format validator suite. Open-format zone validation
now covers all four binary formats:

  --validate-wom Tree
  --validate-wob House
  --validate-woc terrain.woc
  --validate-whm Zone_28_30
  --validate-all custom_zones/Zone1   # runs everything

WOC checks: finite vertex coords on every triangle, no degenerate
triangles (two verts identical), known flag bits only (0x0F mask),
tile coords within WoW grid (< 64), bounds.min <= bounds.max.

WHM/WOT checks: finite heights across all 145 verts/chunk, finite
chunk position vectors, tile coord in [0, 64), reasonable height
envelope ([-10000, 10000] is a generous outer bound — beyond that
suggests units confusion), placements have finite positions and
nameId within doodadNames/wmoNames table size.

validate-all now reports all four format counts (WOM/WOB/WOC/WHM)
and aggregates errors. Verified end-to-end: a fresh scaffolded zone
with --build-woc yields 256/256 chunks loaded, 32768 walkable
triangles, validate-all PASSED. Synthesized WOC with 0xFF flags
correctly fails with 'unknown flag bits 0xFF' and exit 1.
2026-05-06 11:58:20 -07:00
..
adt_writer.cpp fix(adt): scrub NaN/inf floats at write time 2026-05-06 06:49:51 -07:00
adt_writer.hpp feat(editor): add standalone world editor (rough/WIP) 2026-05-05 03:47:03 -07:00
asset_browser.cpp feat(editor): Find Valid Tile button, improved ADT loading workflow 2026-05-05 06:35:37 -07:00
asset_browser.hpp feat(editor): Find Valid Tile button, improved ADT loading workflow 2026-05-05 06:35:37 -07:00
content_pack.cpp fix(wcp): cap readInfo file-list parse at 1M entries 2026-05-06 09:57:37 -07:00
content_pack.hpp feat(validate): report file counts and per-format invalid totals 2026-05-06 07:12:04 -07:00
dbc_exporter.cpp feat(editor): export creature/faction/item DBCs alongside zone DBCs 2026-05-06 01:41:53 -07:00
dbc_exporter.hpp feat(editor): DBC→JSON export for open format zone data tables 2026-05-05 10:21:14 -07:00
editor_app.cpp fix(editor): NaN-safe baseHeight propagation in addAdjacentTile 2026-05-06 08:37:19 -07:00
editor_app.hpp feat(editor): status bar asterisk also reflects unsaved object/NPC/quest changes 2026-05-06 03:01:09 -07:00
editor_brush.cpp fix(brush): defensive guards in EditorBrush::getInfluence 2026-05-06 07:38:50 -07:00
editor_brush.hpp fix(brush): NaN-guard EditorBrush::setPosition 2026-05-06 10:15:00 -07:00
editor_camera.cpp fix(camera): NaN guards on pivot orbit, setPosition, setYawPitch 2026-05-06 08:03:57 -07:00
editor_camera.hpp fix(camera): validate setSpeed input against wheel-clamp range 2026-05-06 10:12:45 -07:00
editor_history.cpp fix(history): bounds-check chunkIndex in captureChunk/restoreChunk 2026-05-06 10:13:56 -07:00
editor_history.hpp fix(editor): undo now covers texture painting, fix stale buffer bug 2026-05-05 12:58:11 -07:00
editor_markers.cpp fix(markers): skip objects with NaN position/scale on update 2026-05-06 07:56:26 -07:00
editor_markers.hpp feat(editor): add standalone world editor (rough/WIP) 2026-05-05 03:47:03 -07:00
editor_project.cpp fix(project): cap zones at 1024 on project load 2026-05-06 10:01:36 -07:00
editor_project.hpp feat(editor): git integration for collaborative expansion development 2026-05-05 09:45:00 -07:00
editor_ui.cpp feat(editor): preset selection auto-fills sensible AzerothCore faction 2026-05-06 04:48:30 -07:00
editor_ui.hpp feat(editor): path preview line, transform undo, complete undo coverage 2026-05-05 13:33:28 -07:00
editor_viewport.cpp fix(viewport): clear ghost preview on NaN/non-positive inputs 2026-05-06 08:24:51 -07:00
editor_viewport.hpp feat(editor): viewport WOM/WOB lookups also probe per-zone roots 2026-05-06 04:13:03 -07:00
editor_water.cpp fix(water): skip chunks with NaN water height in mesh build 2026-05-06 08:04:44 -07:00
editor_water.hpp feat(editor): brush radius circle indicator on terrain 2026-05-05 04:10:46 -07:00
FORMAT_SPEC.md docs(formats): document the complete headless CLI surface 2026-05-06 08:53:45 -07:00
main.cpp feat(editor): add --validate-woc + --validate-whm and roll into validate-all 2026-05-06 11:58:20 -07:00
npc_presets.cpp fix(editor): filter bad M2 models, toast on tile not found, robustness 2026-05-05 07:10:29 -07:00
npc_presets.hpp feat(editor): add standalone world editor (rough/WIP) 2026-05-05 03:47:03 -07:00
npc_spawner.cpp fix(npc): cap spawn count at 50k on load 2026-05-06 09:56:55 -07:00
npc_spawner.hpp fix(editor): NPC default scale 1.0 (was 3.0) to match AzerothCore defaults 2026-05-06 04:27:22 -07:00
object_placer.cpp fix(editor): cap quest count at 4096 and object count at 100k on load 2026-05-06 09:56:03 -07:00
object_placer.hpp feat(editor): biome vegetation auto-population system 2026-05-05 16:42:41 -07:00
quest_editor.cpp fix(editor): cap quest count at 4096 and object count at 100k on load 2026-05-06 09:56:03 -07:00
quest_editor.hpp fix(editor): harden JSON handling, quest loading, and content validation 2026-05-05 12:48:50 -07:00
server_module_gen.cpp fix(editor): slugify mapName for module dir + conf keys 2026-05-06 06:47:43 -07:00
server_module_gen.hpp feat(editor): AzerothCore server module generator 2026-05-05 16:31:13 -07:00
sql_exporter.cpp fix(sql): downgrade Wander to stationary when wanderRadius == 0 2026-05-06 09:53:07 -07:00
sql_exporter.hpp fix(editor): escape user strings in server module map/zone/tele SQL 2026-05-06 06:46:58 -07:00
stb_image_impl.cpp feat(editor): add standalone world editor (rough/WIP) 2026-05-05 03:47:03 -07:00
terrain_biomes.hpp feat(editor): biome vegetation auto-population system 2026-05-05 16:42:41 -07:00
terrain_editor.cpp fix(terrain): reject NaN rays in raycastTerrain 2026-05-06 07:58:56 -07:00
terrain_editor.hpp feat(editor): PNG/JPG/BMP heightmap image import, undo for all imports 2026-05-05 15:42:35 -07:00
texture_exporter.cpp fix(editor): texture exporter validates BLP image before passing to stbi 2026-05-06 06:29:26 -07:00
texture_exporter.hpp feat(editor): export WMO textures with the zone 2026-05-06 01:40:05 -07:00
texture_painter.cpp fix(painter): reject NaN endpoints and zero-length lines in paintAlongPath 2026-05-06 07:41:58 -07:00
texture_painter.hpp feat(editor): texture eyedropper, WOT/WHM preference loading 2026-05-05 13:39:53 -07:00
transform_gizmo.cpp fix(gizmo): hide on NaN target instead of building NaN geometry 2026-05-06 08:01:23 -07:00
transform_gizmo.hpp feat(editor): add standalone world editor (rough/WIP) 2026-05-05 03:47:03 -07:00
wowee_terrain.cpp fix(wot): scrub NaN/inf in doodad/WMO placements at save time 2026-05-06 07:03:02 -07:00
wowee_terrain.hpp feat(editor): zone map image export (colored top-down PNG) 2026-05-05 16:01:29 -07:00
zone_manifest.cpp fix(zone): scrub NaN/inf manifest floats at save time 2026-05-06 07:05:13 -07:00
zone_manifest.hpp feat(editor): zone metadata panel with mapId, displayName, gameplay flags 2026-05-05 15:52:59 -07:00