Kelsidavis-WoWee/tools/editor/zone_manifest.hpp
Kelsi 2136727c68 feat(editor): zone audio configuration panel
- Zone manifest gains audio fields: musicTrack, ambienceDay,
  ambienceNight, musicVolume, ambienceVolume
- Serialized to/from zone.json under "audio" key
- Info panel: collapsable "Zone Audio" section with text inputs for
  music/ambience paths and volume sliders
- Preset selector: Elwynn Forest, Durotar, Darkshore, Dungeon, None
- ZoneManifest stored persistently on EditorApp so audio settings
  survive between exports (was recreated each save)
- Custom zones can now specify their own background music and ambient
  soundscapes via zone.json
2026-05-05 15:48:49 -07:00

32 lines
856 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;
// 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