aboutsummaryrefslogtreecommitdiff
path: root/src/tools/vmap4_extractor
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2020-05-10 15:09:19 +0200
committerShauren <shauren.trinity@gmail.com>2020-05-10 15:09:19 +0200
commit885d2a7213f7e6c6acfec58076315133b6dccea2 (patch)
treeae49a48f6ce01c51ea4d5bda789bea8f85b08e3a /src/tools/vmap4_extractor
parent13053538f24a5cc86bd1c465d763a4ebe993ea24 (diff)
Tools/Extractors: Refactor CascHandles into classes
Diffstat (limited to 'src/tools/vmap4_extractor')
-rw-r--r--src/tools/vmap4_extractor/adtfile.cpp2
-rw-r--r--src/tools/vmap4_extractor/cascfile.cpp18
-rw-r--r--src/tools/vmap4_extractor/cascfile.h6
-rw-r--r--src/tools/vmap4_extractor/gameobject_extract.cpp6
-rw-r--r--src/tools/vmap4_extractor/model.cpp2
-rw-r--r--src/tools/vmap4_extractor/vmapexport.cpp10
-rw-r--r--src/tools/vmap4_extractor/wdtfile.cpp2
-rw-r--r--src/tools/vmap4_extractor/wmo.cpp2
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()
{