#pragma once #include #include #include #include namespace wowee { namespace game { struct ZoneInfo { uint32_t id; std::string name; std::vector musicPaths; // MPQ paths to music files }; class ZoneManager { public: void initialize(); uint32_t getZoneId(int tileX, int tileY) const; const ZoneInfo* getZoneInfo(uint32_t zoneId) const; std::string getRandomMusic(uint32_t zoneId) const; std::vector getAllMusicPaths() const; private: // tile key = tileX * 100 + tileY std::unordered_map tileToZone; std::unordered_map zones; }; } // namespace game } // namespace wowee