feat(editor): project system for multi-zone custom expansions

- EditorProject: manages multiple zones in a single project file
  (wowee-project-1.0 JSON format)
- Project stores: name, author, description, version, zone list
- Each zone has: mapName, tileX/Y, biome, description
- Save/load project files (.json) with full round-trip
- Foundation for creating custom expansions with multiple maps,
  quest chains spanning zones, and campaign progression
- getZoneOutputDir() resolves per-zone output paths
This commit is contained in:
Kelsi 2026-05-05 09:36:44 -07:00
parent c28d3f8a99
commit 1d2f25f169
3 changed files with 142 additions and 0 deletions

View file

@ -0,0 +1,32 @@
#pragma once
#include <string>
#include <vector>
#include <cstdint>
namespace wowee {
namespace editor {
struct ProjectZone {
std::string mapName;
int tileX = 32, tileY = 32;
std::string biome;
std::string description;
};
struct EditorProject {
std::string name = "Untitled";
std::string author;
std::string description;
std::string version = "1.0";
std::string projectDir;
uint32_t startMapId = 9000;
std::vector<ProjectZone> zones;
bool save(const std::string& path) const;
bool load(const std::string& path);
std::string getZoneOutputDir(int zoneIdx) const;
};
} // namespace editor
} // namespace wowee