// // Created by Иван_Архипов on 01.11.2017. // #ifndef LOTRO_DAT_PATCHER_SUBFILE_H #define LOTRO_DAT_PATCHER_SUBFILE_H #include #include #include "yaml-cpp/yaml.h" #include "BinaryData.h" extern "C++" { namespace LOTRO_DAT { class DatFile; class BinaryData; class Database; enum FILE_TYPE : int; class Subfile { public: Subfile(); Subfile::Subfile(DatFile *dat, long long fragments_count, long long unknown1, long long file_id, long long file_offset, long long file_size, long long timestamp, long long version, long long block_size); virtual FILE_TYPE FileType() const; virtual std::string Extension() const; virtual bool PrepareForExport(const BinaryData &file_data, long long &export_size, std::vector &binary_data, std::vector &text_data, std::vector &options); virtual BinaryData MakeForImport(const BinaryData &old_data, const BinaryData &binary_data, const std::u16string &text_data, const YAML::Node &options); long long fragments_count() const; long long unknown1() const; long long file_id() const; long long file_offset() const; long long file_size() const; long long timestamp() const; long long version() const; long long block_size() const; protected: long long fragments_count_; long long unknown1_; long long file_id_; long long file_offset_; long long file_size_; long long timestamp_; long long version_; long long block_size_; DatFile *dat_; }; } }; #endif //LOTRO_DAT_PATCHER_SUBFILE_H