/* * Copyright (C) 2016+ AzerothCore * Copyright (C) 2008-2016 TrinityCore * Copyright (C) 2005-2009 MaNGOS */ #ifndef MPQ_MANAGER_H #define MPQ_MANAGER_H #include "MPQ.h" #include "PolicyLock.h" #include #include #include class DBC; class MPQManager { public: MPQManager() {} ~MPQManager() {} void Initialize(); FILE* GetFile(const std::string& path); FILE* GetFileFrom(const std::string& path, MPQArchive* file); DBC* GetDBC(const std::string& name); std::vector GetAllFiles(std::string extension); std::deque Archives; int32 BaseLocale; std::set AvailableLocales; std::map LocaleFiles; static char const* Files[]; static char const* Languages[]; protected: void InitializeDBC(); private: std::mutex mutex; }; extern MPQManager* MPQHandler; #endif