Skip to content

feat(server): classic WorldEditor map import/export to mapas_source (#23) - #356

Open
Aduersarius wants to merge 1 commit into
Bitcoindefi:mainfrom
Aduersarius:feat/worldeditor-map-import-export-23
Open

feat(server): classic WorldEditor map import/export to mapas_source (#23)#356
Aduersarius wants to merge 1 commit into
Bitcoindefi:mainfrom
Aduersarius:feat/worldeditor-map-import-export-23

Conversation

@Aduersarius

Copy link
Copy Markdown

Summary

Ships OpenAO #23: clean-room import/export between classic desktop WorldEditor files (.map / .inf / .dat) and playable OpenAO mapas_source (meta.json, terrain.json, specials.json, npcs.json).

  • Pure converter: server/src/lib/worldEditorMapConverter.ts
  • CLI: server/src/scripts/worldEditorMapImportExport.ts (import / export / validate)
  • Explicit conversion report: translated counts + untranslated items (unknown .dat keys, uncommon triggers, particle/light flags, GRH > Int16)
  • Round-trip / tile-level diff validator
  • Tests: server/src/tests/worldEditorMapConverter.test.ts (4/4)
  • License notes: docs/worldeditor-map-import-export.md + docs/licensing-notes.md (no VB6 WorldEditor source copied)

Closes #23

Differentiation vs open PRs

PR Gap vs this
#45 (AngelVD97) Converts to nested client MapData in frontend/utils/ + ad-hoc .mjs test script. This PR writes the server mapas_source tree the game already loads, including npcs.json, plus a real CLI validate mode.
#56 (angelTomo9) .map-only tool bundled with unrelated protocol/FE kitchen-sink. This PR is #23-only, covers .map + .inf + .dat, and reports extended flags that cannot map into OpenAO.
#74 (Simultech369) Six-issue mega-batch with a partial legacyMapConverter. This PR is single-issue, reviewable, and targets the full acceptance list (import report, export, validate, license docs, tests).

Test plan

  • node --experimental-strip-types --test server/src/tests/worldEditorMapConverter.test.ts (4/4)
  • tsx src/scripts/worldEditorMapImportExport.ts export --map-id=1 --source-dir=server/mapas_source --classic-dir=/tmp/classic-out
  • tsx src/scripts/worldEditorMapImportExport.ts import --map-id=1 --classic-dir=/tmp/classic-out --output-dir=/tmp/mapas_imported --pretty
  • tsx src/scripts/worldEditorMapImportExport.ts validate --map-id=1 --source-dir=server/mapas_source
  • Confirm imported mapa_1 loads via existing loadMaps path

No txs/keys/funds involved.

…itcoindefi#23)

Clean-room .map/.inf/.dat converter targeting playable OpenAO mapas_source
(meta/terrain/specials/npcs), with explicit untranslated reports, round-trip
validation, CLI, tests, and AGPL licensing notes.
@gitar-bot

gitar-bot Bot commented Sep 6, 2026

Copy link
Copy Markdown

Important

You are using the Gitar free plan. Upgrade to unlock code review, CI analysis, auto-apply, custom automations, and more.

Gitar

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Etapa 2: importar y exportar mapas del editor oficial de escritorio

1 participant