Kelsidavis-WoWee/tools/editor/zone_manifest.hpp
Kelsi 9db5cced2c feat(editor): zone metadata panel with mapId, displayName, gameplay flags
- Map ID: configurable integer input (0-65535) for private server
  integration. Custom zones default to 9000+ to avoid Blizzard conflicts
- Display Name: editable text field for in-game world map/loading screen
- Description: multi-line text field for zone documentation
- Zone Flags: Allow Flying, PvP Enabled, Indoor, Sanctuary checkboxes
- All fields serialized to zone.json under "flags" key
- Info panel shows quest count alongside objects/NPCs
2026-05-05 15:52:59 -07:00

38 lines
1,000 B
C++

#pragma once
#include <string>
#include <vector>
#include <cstdint>
namespace wowee {
namespace editor {
struct ZoneManifest {
std::string mapName;
std::string displayName;
uint32_t mapId = 9000; // Custom map IDs start high to avoid conflicts
std::vector<std::pair<int, int>> tiles; // (tileX, tileY) pairs
std::string biome;
float baseHeight = 100.0f;
bool hasCreatures = false;
std::string description;
// Zone gameplay flags
bool allowFlying = false;
bool pvpEnabled = false;
bool isIndoor = false;
bool isSanctuary = false;
// Audio configuration
std::string musicTrack; // Background music file path
std::string ambienceDay; // Daytime ambient sound
std::string ambienceNight; // Nighttime ambient sound
float musicVolume = 0.7f;
float ambienceVolume = 0.5f;
bool save(const std::string& path) const;
bool load(const std::string& path);
};
} // namespace editor
} // namespace wowee