![]() |
TrinityCore
|
#include "vmapexport.h"#include "adtfile.h"#include "Banner.h"#include "Common.h"#include "DB2CascFileSource.h"#include "ExtractorDB2LoadInfo.h"#include "Locales.h"#include "MapDefines.h"#include "MapUtils.h"#include "Memory.h"#include "StringConvert.h"#include "StringFormat.h"#include "ThreadPool.h"#include "Util.h"#include "VMapDefinitions.h"#include "wdtfile.h"#include "wmo.h"#include <boost/filesystem/directory.hpp>#include <boost/filesystem/operations.hpp>#include <CascLib.h>#include <algorithm>#include <map>#include <mutex>#include <unordered_map>#include <vector>#include <cstdio>
Include dependency graph for vmapexport.cpp:Go to the source code of this file.
Classes | |
| struct | LiquidMaterialEntry |
| struct | LiquidTypeEntry |
| struct | MapEntry |
Macros | |
| #define | CASC_LOCALES_COUNT 17 |
Functions | |
| bool | OpenCascStorage (int locale) |
| uint32 | GetInstalledLocalesMask () |
| uint32 | GenerateUniqueObjectId (uint32 clientId, uint16 clientDoodadId, bool isWmo) |
| std::pair< ExtractedModelData *, bool > | BeginModelExtraction (std::string const &outputName) |
| ExtractedModelData const * | ExtractSingleWmo (std::string &fname) |
| bool | IsLiquidIgnored (uint32 liquidTypeId) |
| void | ParsMapFiles () |
| void | TryLoadDB2 (char const *name, DB2CascFileSource *source, DB2FileLoader *db2, DB2FileLoadInfo const *loadInfo) |
| void | ReadMapTable () |
| void | ReadLiquidMaterialTable () |
| void | ReadLiquidTypeTable () |
| bool | processArgv (int argc, char **argv, const char *versionString) |
| static bool | RetardCheck () |
| int | main (int argc, char **argv) |
Variables | |
| std::shared_ptr< CASC::Storage > | CascStorage |
| std::unordered_map< uint32, LiquidMaterialEntry > | LiquidMaterials |
| std::unordered_map< uint32, LiquidTypeEntry > | LiquidTypes |
| std::vector< MapEntry > | map_ids |
| boost::filesystem::path | input_path |
| bool | preciseVectorData = false |
| char const * | CascProduct = "wow" |
| char const * | CascRegion = "eu" |
| bool | UseRemoteCasc = false |
| uint32 | DbcLocale = 0 |
| uint32 | Threads = std::thread::hardware_concurrency() |
| char const * | szWorkDirWmo = "./Buildings" |
| char const * | CascLocaleNames [CASC_LOCALES_COUNT] |
| uint32 | WowLocaleToCascLocaleFlags [12] |
| static std::atomic< uint32 > | UniqueObjectIdGenerator = std::numeric_limits<uint32>::max() - 1 |
| static std::mutex | UniqueObjectIdsMutex |
| static std::map< std::pair< uint32, uint16 >, uint32 > | UniqueObjectIds |
| static std::mutex | ExtractedModelsMutex |
| std::unordered_map< std::string, ExtractedModelData > | ExtractedModels |
| #define CASC_LOCALES_COUNT 17 |
Definition at line 86 of file vmapexport.cpp.
| std::pair< ExtractedModelData *, bool > BeginModelExtraction | ( | std::string const & | outputName | ) |
Definition at line 192 of file vmapexport.cpp.
References ExtractedModels, and ExtractedModelsMutex.
Referenced by ExtractSingleModel(), and ExtractSingleWmo().
| ExtractedModelData const * ExtractSingleWmo | ( | std::string & | fname | ) |
Definition at line 199 of file vmapexport.cpp.
References BeginModelExtraction(), WMORoot::ConvertToVMAPRootWmo(), WMORoot::DoodadData, GetPlainName(), WMORoot::groupFileDataIDs, NormalizeFileName(), ExtractedModelData::Ok, ExtractedModelData::OkNoCollision, WMORoot::open(), WMOGroup::open(), preciseVectorData, WMODoodadData::References, WMODoodadData::Sets, WMODoodadData::Spawns, Trinity::StringFormat(), szWorkDirWmo, and WMORoot::ValidDoodadNames.
Referenced by ExtractGameobjectModels(), ADTFile::init(), and WDTFile::init().
Definition at line 181 of file vmapexport.cpp.
References UniqueObjectIdGenerator, UniqueObjectIds, and UniqueObjectIdsMutex.
Referenced by Doodad::Extract(), and Doodad::ExtractSet().
| uint32 GetInstalledLocalesMask | ( | ) |
Definition at line 147 of file vmapexport.cpp.
References CascProduct, CascRegion, input_path, CASC::Storage::Open(), CASC::Storage::OpenRemote(), and UseRemoteCasc.
Referenced by main().
| bool IsLiquidIgnored | ( | uint32 | liquidTypeId | ) |
Definition at line 313 of file vmapexport.cpp.
References LiquidMaterials, LiquidTypes, Trinity::Containers::MapGetValuePtr(), and VisualOnly.
Referenced by WMOGroup::open().
| int main | ( | int | argc, |
| char ** | argv | ||
| ) |
Definition at line 644 of file vmapexport.cpp.
References CascStorage, DbcLocale, ExtractGameobjectModels(), GetInstalledLocalesMask(), Trinity::Locale::Init(), LOCALE_none, localeNames, OpenCascStorage(), ParsMapFiles(), preciseVectorData, processArgv(), ReadLiquidMaterialTable(), ReadLiquidTypeTable(), ReadMapTable(), RetardCheck(), Trinity::Banner::Show(), szWorkDirWmo, TOTAL_LOCALES, Trinity::VerifyOsVersion(), VMAP::VMAP_MAGIC, and WowLocaleToCascLocaleFlags.
| bool OpenCascStorage | ( | int | locale | ) |
Definition at line 116 of file vmapexport.cpp.
References CascProduct, CascRegion, CascStorage, input_path, localeNames, CASC::Storage::Open(), CASC::Storage::OpenRemote(), UseRemoteCasc, and WowLocaleToCascLocaleFlags.
Referenced by main().
| void ParsMapFiles | ( | ) |
Definition at line 323 of file vmapexport.cpp.
References MapEntry::Id, Trinity::ThreadPool::Join(), map_ids, Trinity::Containers::MapGetValuePtr(), Trinity::ThreadPool::PostWork(), Trinity::StringFormat(), and Threads.
Referenced by main().
| bool processArgv | ( | int | argc, |
| char ** | argv, | ||
| const char * | versionString | ||
| ) |
Definition at line 519 of file vmapexport.cpp.
References CascProduct, CascRegion, DbcLocale, input_path, localeNames, preciseVectorData, Threads, TOTAL_LOCALES, and UseRemoteCasc.
Referenced by main().
| void ReadLiquidMaterialTable | ( | ) |
Definition at line 471 of file vmapexport.cpp.
References CascStorage, LiquidMaterialEntry::Flags, DB2Record::GetId(), DB2FileLoader::GetRecord(), DB2FileLoader::GetRecordCopy(), DB2FileLoader::GetRecordCopyCount(), DB2FileLoader::GetRecordCount(), DB2Record::GetUInt32(), LiquidMaterialLoadInfo::Instance, LiquidMaterials, DB2RecordCopy::NewRowId, DB2RecordCopy::SourceRowId, SZFMTD, and TryLoadDB2().
Referenced by main().
| void ReadLiquidTypeTable | ( | ) |
Definition at line 495 of file vmapexport.cpp.
References CascStorage, DB2Record::GetId(), DB2FileLoader::GetRecord(), DB2FileLoader::GetRecordCopy(), DB2FileLoader::GetRecordCopyCount(), DB2FileLoader::GetRecordCount(), DB2Record::GetUInt8(), LiquidTypeLoadInfo::Instance, LiquidTypes, LiquidTypeEntry::MaterialID, DB2RecordCopy::NewRowId, DB2RecordCopy::SourceRowId, SZFMTD, and TryLoadDB2().
Referenced by main().
| void ReadMapTable | ( | ) |
Definition at line 411 of file vmapexport.cpp.
References CascStorage, MapEntry::Directory, DB2Record::GetId(), DB2Record::GetInt32(), DB2FileLoader::GetRecord(), DB2FileLoader::GetRecordCopy(), DB2FileLoader::GetRecordCopyCount(), DB2FileLoader::GetRecordCount(), DB2Record::GetString(), DB2Record::GetUInt16(), MapEntry::Id, MapLoadInfo::Instance, MapEntry::IsParent, map_ids, MapEntry::Name, DB2RecordCopy::NewRowId, MapEntry::ParentMapID, DB2RecordCopy::SourceRowId, SZFMTD, TryLoadDB2(), and MapEntry::WdtFileDataId.
Referenced by main().
|
static |
Definition at line 612 of file vmapexport.cpp.
References input_path, and UseRemoteCasc.
Referenced by main().
| void TryLoadDB2 | ( | char const * | name, |
| DB2CascFileSource * | source, | ||
| DB2FileLoader * | db2, | ||
| DB2FileLoadInfo const * | loadInfo | ||
| ) |
Definition at line 398 of file vmapexport.cpp.
References CASC::HumanReadableCASCError(), and DB2FileLoader::Load().
Referenced by ReadLiquidMaterialTable(), ReadLiquidTypeTable(), and ReadMapTable().
| char const* CascLocaleNames[CASC_LOCALES_COUNT] |
Definition at line 87 of file vmapexport.cpp.
| char const* CascProduct = "wow" |
Definition at line 76 of file vmapexport.cpp.
Referenced by GetInstalledLocalesMask(), OpenCascStorage(), and processArgv().
| char const* CascRegion = "eu" |
Definition at line 77 of file vmapexport.cpp.
Referenced by GetInstalledLocalesMask(), OpenCascStorage(), and processArgv().
| std::shared_ptr<CASC::Storage> CascStorage |
Definition at line 47 of file vmapexport.cpp.
Referenced by ExtractGameobjectModels(), GetHeaderMagic(), main(), OpenCascStorage(), ReadLiquidMaterialTable(), ReadLiquidTypeTable(), and ReadMapTable().
| uint32 DbcLocale = 0 |
Definition at line 79 of file vmapexport.cpp.
Referenced by main(), and processArgv().
| std::unordered_map<std::string, ExtractedModelData> ExtractedModels |
Definition at line 190 of file vmapexport.cpp.
Referenced by BeginModelExtraction().
|
static |
Definition at line 189 of file vmapexport.cpp.
Referenced by BeginModelExtraction().
| boost::filesystem::path input_path |
Definition at line 74 of file vmapexport.cpp.
Referenced by GetInstalledLocalesMask(), OpenCascStorage(), processArgv(), and RetardCheck().
| std::unordered_map<uint32, LiquidMaterialEntry> LiquidMaterials |
Definition at line 71 of file vmapexport.cpp.
Referenced by IsLiquidIgnored(), and ReadLiquidMaterialTable().
| std::unordered_map<uint32, LiquidTypeEntry> LiquidTypes |
Definition at line 72 of file vmapexport.cpp.
Referenced by IsLiquidIgnored(), and ReadLiquidTypeTable().
| std::vector<MapEntry> map_ids |
Definition at line 73 of file vmapexport.cpp.
Referenced by ParsMapFiles(), and ReadMapTable().
| bool preciseVectorData = false |
Definition at line 75 of file vmapexport.cpp.
Referenced by WMOGroup::ConvertToVMAPGroupWmo(), ExtractSingleWmo(), main(), and processArgv().
| char const* szWorkDirWmo = "./Buildings" |
Definition at line 84 of file vmapexport.cpp.
Referenced by ExtractGameobjectModels(), ExtractSingleModel(), ExtractSingleWmo(), ADTFile::init(), WDTFile::init(), ADTFile::initFromCache(), and main().
| uint32 Threads = std::thread::hardware_concurrency() |
Definition at line 80 of file vmapexport.cpp.
Referenced by ParsMapFiles(), and processArgv().
Definition at line 177 of file vmapexport.cpp.
Referenced by GenerateUniqueObjectId().
Definition at line 179 of file vmapexport.cpp.
Referenced by GenerateUniqueObjectId().
|
static |
Definition at line 178 of file vmapexport.cpp.
Referenced by GenerateUniqueObjectId().
| bool UseRemoteCasc = false |
Definition at line 78 of file vmapexport.cpp.
Referenced by GetInstalledLocalesMask(), OpenCascStorage(), processArgv(), and RetardCheck().
| uint32 WowLocaleToCascLocaleFlags[12] |
Definition at line 100 of file vmapexport.cpp.
Referenced by main(), and OpenCascStorage().