mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-05-06 00:53:52 +00:00
- 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
38 lines
1,000 B
C++
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
|