123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- //
- // Created by Иван_Архипов on 31.10.2017.
- //
- #ifndef LOTRO_DAT_PATCHER_DATFILE_H
- #define LOTRO_DAT_PATCHER_DATFILE_H
- #ifdef LOTRO_DAT_EXPORTS
- #define LOTRO_DAT_API __declspec(dllexport)
- #else
- #define LOTRO_DAT_API __declspec(dllimport)
- #endif
- #include <bits/unique_ptr.h>
- #include "DatSubsystems/DatBackupManager.h"
- #include "DatSubsystems/DatExporter.h"
- #include "DatSubsystems/DatFileSystem.h"
- #include "DatSubsystems/DatIO.h"
- #include "DatSubsystems/DatLocaleManager.h"
- #include "DatSubsystems/DatPatcher.h"
- // Dat file names definitions
- extern "C++"
- {
- namespace LOTRO_DAT {
- enum FILE_TYPE : int {
- TEXT = 0,
- JPG = 1,
- DDS = 2,
- WAV = 3,
- OGG = 4,
- FONT = 5,
- UNKNOWN = 6
- };
- class DatFile {
- friend class DatIO;
- friend class DatFileSystem;
- friend class DatLocaleManager;
- friend class DatPatcher;
- friend class DatExporter;
- friend class DatBackupManager;
- public:
- DatFile();
- DatFile(const DatFile &other) = delete;
- DatFile(DatFile &&other) = default;
- DatFile &operator=(const DatFile &other) = delete;
- DatFile &operator=(DatFile &&other) = default;
- ~DatFile();
- DatLocaleManager &getLocaleManager();
- DatExporter &getExporter();
- DatPatcher &getPatcher();
- DatBackupManager &getBackupManager();
- DatIO &getIO();
- DatFileSystem &getFileSystem();
- DatOperationResult<> Initialise(const std::string &filename, long long dat_id);
- DatOperationResult<> GatherInformation(const std::string &output_filename);
- DatOperationResult<> Deinitialize();
- bool Initialized();
- private:
- std::unique_ptr<DatIO> io_;
- std::unique_ptr<DatFileSystem> fileSystem_;
- std::unique_ptr<DatLocaleManager> localeManager_;
- std::unique_ptr<DatPatcher> patcher_;
- std::unique_ptr<DatExporter> exporter_;
- std::unique_ptr<DatBackupManager> backupManager_;
- bool initialized_;
- long long dat_id_;
- };
- }
- }
- #endif //LOTRO_DAT_PATCHER_DATFILE_H
|