Browse Source

Bump LotroDat lib 25.06.2020

Ivan Arkhipov 3 years ago
parent
commit
c2088cc944
2 changed files with 17 additions and 12 deletions
  1. 11 6
      import/LotroDat/DatFile.h
  2. 6 6
      import/LotroDat/Database.h

+ 11 - 6
import/LotroDat/DatFile.h

@@ -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_;

+ 6 - 6
import/LotroDat/Database.h

@@ -3,8 +3,8 @@
 
 #include <string>
 
-struct sqlite3;
-struct sqlite3_stmt;
+struct lotrodat_sqlite3;
+struct lotrodat_sqlite3_stmt;
 
 extern "C++" {
 namespace LOTRO_DAT {
@@ -35,10 +35,10 @@ class Database {
  private:
   void ExecSql(const std::string &sql);
 
-  sqlite3* db_;
-  sqlite3_stmt* insert_request_;
-  sqlite3_stmt* fetch_one_request_;
-  sqlite3_stmt* get_rows_number_request_;
+  lotrodat_sqlite3* db_;
+  lotrodat_sqlite3_stmt* insert_request_;
+  lotrodat_sqlite3_stmt* fetch_one_request_;
+  lotrodat_sqlite3_stmt* get_rows_number_request_;
 
 
   const std::string CreateTableCommand_ = "CREATE TABLE IF NOT EXISTS `patch_data` ( "