diff options
| author | Shauren <shauren.trinity@gmail.com> | 2020-05-10 15:09:19 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2020-05-10 15:09:19 +0200 |
| commit | 885d2a7213f7e6c6acfec58076315133b6dccea2 (patch) | |
| tree | ae49a48f6ce01c51ea4d5bda789bea8f85b08e3a /src/tools/vmap4_extractor | |
| parent | 13053538f24a5cc86bd1c465d763a4ebe993ea24 (diff) | |
Tools/Extractors: Refactor CascHandles into classes
Diffstat (limited to 'src/tools/vmap4_extractor')
| -rw-r--r-- | src/tools/vmap4_extractor/adtfile.cpp | 2 | ||||
| -rw-r--r-- | src/tools/vmap4_extractor/cascfile.cpp | 18 | ||||
| -rw-r--r-- | src/tools/vmap4_extractor/cascfile.h | 6 | ||||
| -rw-r--r-- | src/tools/vmap4_extractor/gameobject_extract.cpp | 6 | ||||
| -rw-r--r-- | src/tools/vmap4_extractor/model.cpp | 2 | ||||
| -rw-r--r-- | src/tools/vmap4_extractor/vmapexport.cpp | 10 | ||||
| -rw-r--r-- | src/tools/vmap4_extractor/wdtfile.cpp | 2 | ||||
| -rw-r--r-- | src/tools/vmap4_extractor/wmo.cpp | 2 |
8 files changed, 24 insertions, 24 deletions
diff --git a/src/tools/vmap4_extractor/adtfile.cpp b/src/tools/vmap4_extractor/adtfile.cpp index f8c5dc2ae24..9d7428cb322 100644 --- a/src/tools/vmap4_extractor/adtfile.cpp +++ b/src/tools/vmap4_extractor/adtfile.cpp @@ -74,7 +74,7 @@ char* GetExtension(char* FileName) return NULL; } -extern CASC::StorageHandle CascStorage; +extern std::shared_ptr<CASC::Storage> CascStorage; ADTFile::ADTFile(std::string const& filename, bool cache) : _file(CascStorage, filename.c_str(), false) { diff --git a/src/tools/vmap4_extractor/cascfile.cpp b/src/tools/vmap4_extractor/cascfile.cpp index fa13299fb52..cc493cd544e 100644 --- a/src/tools/vmap4_extractor/cascfile.cpp +++ b/src/tools/vmap4_extractor/cascfile.cpp @@ -19,13 +19,13 @@ #include <CascLib.h> #include <cstdio> -CASCFile::CASCFile(CASC::StorageHandle const& casc, const char* filename, bool warnNoExist /*= true*/) : +CASCFile::CASCFile(std::shared_ptr<CASC::Storage const> casc, const char* filename, bool warnNoExist /*= true*/) : eof(false), buffer(nullptr), pointer(0), size(0) { - CASC::FileHandle file = CASC::OpenFile(casc, filename, CASC_LOCALE_ALL_WOW, false); + std::unique_ptr<CASC::File> file(casc->OpenFile(filename, CASC_LOCALE_ALL_WOW, false)); if (!file) { if (warnNoExist || GetLastError() != ERROR_FILE_NOT_FOUND) @@ -34,16 +34,16 @@ CASCFile::CASCFile(CASC::StorageHandle const& casc, const char* filename, bool w return; } - init(file, filename); + init(file.get(), filename); } -CASCFile::CASCFile(CASC::StorageHandle const& casc, uint32 fileDataId, std::string const& description, bool warnNoExist /*= true*/) : +CASCFile::CASCFile(std::shared_ptr<CASC::Storage const> casc, uint32 fileDataId, std::string const& description, bool warnNoExist /*= true*/) : eof(false), buffer(nullptr), pointer(0), size(0) { - CASC::FileHandle file = CASC::OpenFile(casc, fileDataId, CASC_LOCALE_ALL_WOW, false); + std::unique_ptr<CASC::File> file(casc->OpenFile(fileDataId, CASC_LOCALE_ALL_WOW, false)); if (!file) { if (warnNoExist || GetLastError() != ERROR_FILE_NOT_FOUND) @@ -52,12 +52,12 @@ CASCFile::CASCFile(CASC::StorageHandle const& casc, uint32 fileDataId, std::stri return; } - init(file, description.c_str()); + init(file.get(), description.c_str()); } -void CASCFile::init(CASC::FileHandle const& file, const char* description) +void CASCFile::init(CASC::File* file, const char* description) { - int64 fileSize = CASC::GetFileSize(file); + int64 fileSize = file->GetSize(); if (fileSize == -1) { fprintf(stderr, "Can't open %s, failed to get size: %s!\n", description, CASC::HumanReadableCASCError(GetLastError())); @@ -69,7 +69,7 @@ void CASCFile::init(CASC::FileHandle const& file, const char* description) uint32 read = 0; buffer = new char[size]; - if (!CASC::ReadFile(file, buffer, size, &read) || size != read) + if (!file->ReadFile(buffer, size, &read) || size != read) { fprintf(stderr, "Can't read %s, size=%u read=%u: %s\n", description, uint32(size), uint32(read), CASC::HumanReadableCASCError(GetLastError())); eof = true; diff --git a/src/tools/vmap4_extractor/cascfile.h b/src/tools/vmap4_extractor/cascfile.h index 3567110cc56..e0f67499bcc 100644 --- a/src/tools/vmap4_extractor/cascfile.h +++ b/src/tools/vmap4_extractor/cascfile.h @@ -39,10 +39,10 @@ class CASCFile CASCFile& operator=(const CASCFile &f) = delete; public: - CASCFile(CASC::StorageHandle const& casc, const char* filename, bool warnNoExist = true); // filenames are not case sensitive - CASCFile(CASC::StorageHandle const& casc, uint32 fileDataId, std::string const& description, bool warnNoExist = true); + CASCFile(std::shared_ptr<CASC::Storage const> casc, const char* filename, bool warnNoExist = true); // filenames are not case sensitive + CASCFile(std::shared_ptr<CASC::Storage const> casc, uint32 fileDataId, std::string const& description, bool warnNoExist = true); ~CASCFile() { close(); } - void init(CASC::FileHandle const& file, const char* description); + void init(CASC::File* file, const char* description); size_t read(void* dest, size_t bytes); size_t getSize() { return size; } size_t getPos() { return pointer; } diff --git a/src/tools/vmap4_extractor/gameobject_extract.cpp b/src/tools/vmap4_extractor/gameobject_extract.cpp index acad36438aa..f96c0fd2c08 100644 --- a/src/tools/vmap4_extractor/gameobject_extract.cpp +++ b/src/tools/vmap4_extractor/gameobject_extract.cpp @@ -60,7 +60,7 @@ bool ExtractSingleModel(std::string& fname) return mdl.ConvertToVMAPModel(output.c_str()); } -extern CASC::StorageHandle CascStorage; +extern std::shared_ptr<CASC::Storage> CascStorage; enum ModelTypes : uint32 { @@ -72,12 +72,12 @@ enum ModelTypes : uint32 bool GetHeaderMagic(std::string const& fileName, uint32* magic) { *magic = 0; - CASC::FileHandle file = CASC::OpenFile(CascStorage, fileName.c_str(), CASC_LOCALE_ALL_WOW); + std::unique_ptr<CASC::File> file(CascStorage->OpenFile(fileName.c_str(), CASC_LOCALE_ALL_WOW)); if (!file) return false; uint32 bytesRead = 0; - if (!CASC::ReadFile(file, magic, 4, &bytesRead) || bytesRead != 4) + if (!file->ReadFile(magic, 4, &bytesRead) || bytesRead != 4) return false; return true; diff --git a/src/tools/vmap4_extractor/model.cpp b/src/tools/vmap4_extractor/model.cpp index 760b83533a1..81f1e332d75 100644 --- a/src/tools/vmap4_extractor/model.cpp +++ b/src/tools/vmap4_extractor/model.cpp @@ -27,7 +27,7 @@ #include <cstdio> #include <limits> -extern CASC::StorageHandle CascStorage; +extern std::shared_ptr<CASC::Storage> CascStorage; Model::Model(std::string &filename) : filename(filename), vertices(0), indices(0) { diff --git a/src/tools/vmap4_extractor/vmapexport.cpp b/src/tools/vmap4_extractor/vmapexport.cpp index 8d923077a18..96a3e4d03f3 100644 --- a/src/tools/vmap4_extractor/vmapexport.cpp +++ b/src/tools/vmap4_extractor/vmapexport.cpp @@ -50,7 +50,7 @@ //----------------------------------------------------------------------------- -CASC::StorageHandle CascStorage; +std::shared_ptr<CASC::Storage> CascStorage; struct MapEntry { @@ -106,7 +106,7 @@ bool OpenCascStorage(int locale) try { boost::filesystem::path const storage_dir(boost::filesystem::canonical(input_path) / "Data"); - CascStorage = CASC::OpenStorage(storage_dir, WowLocaleToCascLocaleFlags[locale], CascProduct); + CascStorage.reset(CASC::Storage::Open(storage_dir, WowLocaleToCascLocaleFlags[locale], CascProduct)); if (!CascStorage) { printf("error opening casc storage '%s' locale %s\n", storage_dir.string().c_str(), localeNames[locale]); @@ -127,11 +127,11 @@ uint32 GetInstalledLocalesMask() try { boost::filesystem::path const storage_dir(boost::filesystem::canonical(input_path) / "Data"); - CASC::StorageHandle storage = CASC::OpenStorage(storage_dir, 0, CascProduct); + std::unique_ptr<CASC::Storage> storage(CASC::Storage::Open(storage_dir, 0, CascProduct)); if (!storage) return false; - return CASC::GetInstalledLocalesMask(storage); + return storage->GetInstalledLocalesMask(); } catch (boost::filesystem::filesystem_error const& error) { @@ -453,7 +453,7 @@ int main(int argc, char ** argv) continue; FirstLocale = i; - uint32 build = CASC::GetBuildNumber(CascStorage); + uint32 build = CascStorage->GetBuildNumber(); if (!build) { CascStorage.reset(); diff --git a/src/tools/vmap4_extractor/wdtfile.cpp b/src/tools/vmap4_extractor/wdtfile.cpp index e4bf21c0d6d..331bb2c7e5d 100644 --- a/src/tools/vmap4_extractor/wdtfile.cpp +++ b/src/tools/vmap4_extractor/wdtfile.cpp @@ -32,7 +32,7 @@ char * wdtGetPlainName(char * FileName) return FileName; } -extern CASC::StorageHandle CascStorage; +extern std::shared_ptr<CASC::Storage> CascStorage; WDTFile::WDTFile(uint32 fileDataId, std::string const& description, std::string mapName, bool cache) : _file(CascStorage, fileDataId, description), _mapName(std::move(mapName)) diff --git a/src/tools/vmap4_extractor/wmo.cpp b/src/tools/vmap4_extractor/wmo.cpp index 2cdf2e0cad8..8fa22076231 100644 --- a/src/tools/vmap4_extractor/wmo.cpp +++ b/src/tools/vmap4_extractor/wmo.cpp @@ -36,7 +36,7 @@ WMORoot::WMORoot(std::string const& filename) memset(bbcorn2, 0, sizeof(bbcorn2)); } -extern CASC::StorageHandle CascStorage; +extern std::shared_ptr<CASC::Storage> CascStorage; bool WMORoot::open() { |
