|
@@ -9,9 +9,9 @@
|
|
|
namespace LOTRO_DAT {
|
|
|
|
|
|
struct SubfileInfo {
|
|
|
- int file_id;
|
|
|
- int size;
|
|
|
- int iteration;
|
|
|
+ int file_id = -1;
|
|
|
+ int size = -1;
|
|
|
+ int iteration = -1;
|
|
|
|
|
|
friend bool operator<(const SubfileInfo& info1, const SubfileInfo& info2) {
|
|
|
return info1.file_id < info2.file_id;
|
|
@@ -32,11 +32,13 @@ class DatFile {
|
|
|
|
|
|
bool Initialized() const;
|
|
|
const std::string& GetFilename() const;
|
|
|
+ SubfileInfo getSubfileInfo(int file_id) const;
|
|
|
+
|
|
|
size_t GetFilesNumInDatFile();
|
|
|
|
|
|
size_t PatchAllFilesFromDatabase(Database& db);
|
|
|
- void PatchFile(SubfileData file_data);
|
|
|
- void PatchFile(int file_id, FILE_TYPE type, std::string path_to_file);
|
|
|
+ void PatchFile(SubfileData file_data, int version = -1, int iteration = -1);
|
|
|
+ void PatchFile(int file_id, FILE_TYPE type, std::string path_to_file, int version = -1, int iteration = -1);
|
|
|
|
|
|
FILE_TYPE GetExistingFileType(int file_id);
|
|
|
void PerformOperationOnAllSubfiles(const SubfileOperation& operation);
|
|
@@ -47,11 +49,14 @@ class DatFile {
|
|
|
void ExportFileById(int file_id, Database& db);
|
|
|
void ExportFileById(int file_id, std::string target_file_path);
|
|
|
|
|
|
+ int GetFileVersion(int file_id);
|
|
|
+ SubfileData GetFile(int file_id);
|
|
|
+
|
|
|
private:
|
|
|
static DatExportApi api_;
|
|
|
int file_handle_;
|
|
|
bool initialized_;
|
|
|
- std::set<SubfileInfo> files_info_;
|
|
|
+ std::map<int, SubfileInfo> files_info_;
|
|
|
std::string filename_;
|
|
|
|
|
|
BinaryData export_data_buf_;
|