Kelsidavis-WoWee/tools/editor/editor_project.hpp
Kelsi 1d2f25f169 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
2026-05-05 09:36:44 -07:00

32 lines
669 B
C++

#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