From 11f0580ccbdbf677965c2650c70bd619c10cc56e Mon Sep 17 00:00:00 2001 From: Kelsi Date: Wed, 6 May 2026 02:57:07 -0700 Subject: [PATCH] docs(format-spec): bump to v1.2, document WOC mesh-append + SQL export - WOC: add note that addMesh() also appends placed WMO group geometry - New section on SQL server export covering coord/orientation conversion rules, table list, and how quest objectives map to RequiredNpcOrGo/ RequiredItem slots. --- tools/editor/FORMAT_SPEC.md | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/tools/editor/FORMAT_SPEC.md b/tools/editor/FORMAT_SPEC.md index 277e7c00..384b8e1a 100644 --- a/tools/editor/FORMAT_SPEC.md +++ b/tools/editor/FORMAT_SPEC.md @@ -1,4 +1,4 @@ -# Wowee Open Format Specification v1.1 +# Wowee Open Format Specification v1.2 Novel file formats for custom WoW zone content. No Blizzard IP. @@ -74,6 +74,9 @@ Novel file formats for custom WoW zone content. No Blizzard IP. - Flags: 0x01=walkable, 0x02=water, 0x04=steep, 0x08=indoor - Generated from terrain heightmap with slope classification (50 deg threshold) - Respects terrain holes (skips triangles in hole regions) +- WoweeCollisionBuilder::addMesh appends placed WMO group geometry + (transformed into world space, slope-classified) so collision covers + buildings as well as terrain. ## Terrain Stamps (.json) - Portable terrain feature snapshots (mountains, craters, etc.) @@ -89,5 +92,18 @@ Novel file formats for custom WoW zone content. No Blizzard IP. 6. WOB buildings with valid magic 7. WOC collision mesh with valid magic +## SQL Server Export +- AzerothCore-flavored INSERT statements for: `creature_template`, `creature`, + `creature_addon`, `waypoint_data`, `quest_template`, `creature_queststarter`, + `creature_questender`. +- Coordinates: editor render coords are converted to WoW canonical via + `core::coords::renderToCanonical` (X/Y swap) before write. +- Orientation: editor degrees from +renderX (west) → WoW radians from +X (north). + Conversion: `wowYaw = π/2 - editorYaw` then normalised to [0, 2π). +- Quest objectives: KillCreature targets fill RequiredNpcOrGo[1..4]; CollectItem + targets fill RequiredItemId[1..6]. Target ID parsed from objective.targetName. +- Quest givers/turn-in NPCs: written as `creature_queststarter` / + `creature_questender` rows linking npc.id ↔ quest.id. + ## All formats are novel, portable, and open for redistribution. ## No Blizzard intellectual property is used in any format definition.