![]() |
TrinityCore
|
#include "Banner.h"#include "CascHandles.h"#include "Common.h"#include "DB2CascFileSource.h"#include "DB2Meta.h"#include "DBFilesClientList.h"#include "ExtractorDB2LoadInfo.h"#include "IteratorPair.h"#include "Locales.h"#include "MapDefines.h"#include "MapUtils.h"#include "Memory.h"#include "StringFormat.h"#include "Util.h"#include "adt.h"#include "wdt.h"#include "advstd.h"#include <CascLib.h>#include <boost/filesystem/directory.hpp>#include <boost/filesystem/operations.hpp>#include <boost/filesystem/path.hpp>#include <bitset>#include <set>#include <unordered_map>#include <cstdio>#include <cstdlib>#include <cstring>#include <io.h>
Include dependency graph for System.cpp:Go to the source code of this file.
Classes | |
| struct | MapEntry |
| struct | LiquidMaterialEntry |
| struct | LiquidObjectEntry |
| struct | LiquidTypeEntry |
Macros | |
| #define | CASC_LOCALES_COUNT 17 |
Typedefs | |
| template<typename T , std::size_t N> | |
| using | Array2D = T[N][N] |
Enumerations | |
| enum | Extract : uint8 { EXTRACT_MAP = 0x1 , EXTRACT_DBC = 0x2 , EXTRACT_CAMERA = 0x4 , EXTRACT_GT = 0x8 , EXTRACT_ALL = EXTRACT_MAP | EXTRACT_DBC | EXTRACT_CAMERA | EXTRACT_GT } |
Functions | |
| void | CreateDir (boost::filesystem::path const &path) |
| void | Usage (char const *prg) |
| void | HandleArgs (int argc, char *arg[]) |
| void | TryLoadDB2 (char const *name, DB2CascFileSource *source, DB2FileLoader *db2, DB2FileLoadInfo const *loadInfo) |
| void | ReadMapDBC () |
| void | ReadLiquidMaterialTable () |
| void | ReadLiquidObjectTable () |
| void | ReadLiquidTypeTable () |
| bool | ReadCinematicCameraDBC () |
| float | selectUInt8StepStore (float maxDiff) |
| float | selectUInt16StepStore (float maxDiff) |
| bool | TransformToHighRes (uint16 lowResHoles, uint8(&hiResHoles)[8]) |
| template<typename T , std::size_t N> | |
| static void | WriteArray2D (Array2D< T, N > const &data, FILE *f) |
| bool | ConvertADT (ChunkedFile &adt, std::string const &mapName, std::string const &outputPath, int gx, int gy, uint32 build, bool ignoreDeepWater) |
| bool | ConvertADT (std::string const &fileName, std::string const &mapName, std::string const &outputPath, int gx, int gy, uint32 build, bool ignoreDeepWater) |
| bool | ConvertADT (uint32 fileDataId, std::string const &mapName, std::string const &outputPath, int gx, int gy, uint32 build, bool ignoreDeepWater) |
| bool | IsDeepWaterIgnored (uint32 mapId, uint32 x, uint32 y) |
| void | ExtractMaps (uint32 build) |
| bool | ExtractFile (CASC::File *fileInArchive, std::string const &filename) |
| bool | ExtractDB2File (uint32 fileDataId, char const *cascFileName, int locale, boost::filesystem::path const &outputPath) |
| char const * | GetCascFilenamePart (char const *cascPath) |
| void | ExtractDBFilesClient (int l) |
| void | ExtractCameraFiles () |
| void | ExtractGameTables () |
| bool | OpenCascStorage (int locale) |
| uint32 | GetInstalledLocalesMask () |
| static bool | RetardCheck () |
| int | main (int argc, char *arg[]) |
Variables | |
| std::shared_ptr< CASC::Storage > | CascStorage |
| std::vector< MapEntry > | map_ids |
| std::unordered_map< uint32, LiquidMaterialEntry > | LiquidMaterials |
| std::unordered_map< uint32, LiquidObjectEntry > | LiquidObjects |
| std::unordered_map< uint32, LiquidTypeEntry > | LiquidTypes |
| std::set< uint32 > | CameraFileDataIds |
| bool | PrintProgress = true |
| boost::filesystem::path | input_path |
| boost::filesystem::path | output_path |
| int | CONF_extract = EXTRACT_ALL |
| bool | CONF_allow_height_limit = true |
| float | CONF_use_minHeight = -2000.0f |
| bool | CONF_allow_float_to_int = true |
| float | CONF_float_to_int8_limit = 2.0f |
| float | CONF_float_to_int16_limit = 2048.0f |
| float | CONF_flat_height_delta_limit = 0.005f |
| float | CONF_flat_liquid_delta_limit = 0.001f |
| uint32 | CONF_Locale = 0 |
| char const * | CONF_Product = "wow" |
| char const * | CONF_Region = "eu" |
| bool | CONF_UseRemoteCasc = false |
| char const * | CascLocaleNames [CASC_LOCALES_COUNT] |
| uint32 | WowLocaleToCascLocaleFlags [12] |
| #define CASC_LOCALES_COUNT 17 |
Definition at line 120 of file System.cpp.
| using Array2D = T[N][N] |
Definition at line 465 of file System.cpp.
| Enumerator | |
|---|---|
| EXTRACT_MAP | |
| EXTRACT_DBC | |
| EXTRACT_CAMERA | |
| EXTRACT_GT | |
| EXTRACT_ALL | |
Definition at line 90 of file System.cpp.
| bool ConvertADT | ( | ChunkedFile & | adt, |
| std::string const & | mapName, | ||
| std::string const & | outputPath, | ||
| int | gx, | ||
| int | gy, | ||
| uint32 | build, | ||
| bool | ignoreDeepWater | ||
| ) |
Definition at line 473 of file System.cpp.
References ADT_CELL_SIZE, ADT_CELLS_PER_GRID, ADT_GRID_SIZE, adt_MCNK::areaid, map_areaHeader::areaMagic, ChunkedFile::chunks, CONF_allow_float_to_int, CONF_allow_height_limit, CONF_flat_height_delta_limit, CONF_flat_liquid_delta_limit, CONF_float_to_int16_limit, CONF_float_to_int8_limit, CONF_use_minHeight, DarkWater, adt_liquid_attributes::Deep, map_areaHeader::flags, map_heightHeader::flags, map_liquidHeader::flags, adt_MCLQ::flags, adt_MCNK::flags, ChunkedFile::GetChunk(), adt_liquid_instance::GetHeight(), adt_MH2O::GetLiquidAttributes(), adt_MH2O::GetLiquidExistsBitmap(), adt_MH2O::GetLiquidHeight(), adt_MH2O::GetLiquidInstance(), adt_MH2O::GetLiquidType(), adt_liquid_instance::GetOffsetX(), adt_liquid_instance::GetOffsetY(), FileChunk::GetSubChunk(), adt_liquid_instance::GetWidth(), map_areaHeader::gridArea, map_heightHeader::gridHeight, map_heightHeader::gridMaxHeight, EnumFlag< T >::HasFlag(), HasFlightBounds, map_liquidHeader::height, adt_MCLQ::liquid_data::height, adt_MCVT::height_map, HeightAsInt16, HeightAsInt8, map_heightHeader::heightMagic, adt_MCNK::HighResHoles, adt_MCNK::holes, adt_MCNK::ix, adt_MCNK::iy, adt_MCLQ::liquid, LIQUID_TYPE_MAGMA, LIQUID_TYPE_OCEAN, LIQUID_TYPE_SLIME, LIQUID_TYPE_WATER, map_liquidHeader::liquidFlags, map_liquidHeader::liquidLevel, map_liquidHeader::liquidMagic, LiquidMaterials, map_liquidHeader::liquidType, adt_liquid_instance::LiquidType, LiquidTypes, Magma, MapAreaMagic, Trinity::Containers::MapEqualRange(), Trinity::Containers::MapGetValuePtr(), MapHeightMagic, MapLiquidMagic, MapMagic, map_fileheader::mapMagic, MapVersionMagic, adt_MFBO::max, adt_MFBO::min, NoArea, NoHeight, None, NoType, NoWater, Ocean, map_liquidHeader::offsetX, map_liquidHeader::offsetY, selectUInt16StepStore(), selectUInt8StepStore(), adt_MCNK::sizeMCLQ, Slime, TransformToHighRes(), adt_MCNK::union_5_3_0, VisualOnly, Water, map_liquidHeader::width, WriteArray2D(), and adt_MCNK::ypos.
Referenced by ConvertADT(), ConvertADT(), and ExtractMaps().
| bool ConvertADT | ( | std::string const & | fileName, |
| std::string const & | mapName, | ||
| std::string const & | outputPath, | ||
| int | gx, | ||
| int | gy, | ||
| uint32 | build, | ||
| bool | ignoreDeepWater | ||
| ) |
Definition at line 1036 of file System.cpp.
References CascStorage, ConvertADT(), and ChunkedFile::loadFile().
| bool ConvertADT | ( | uint32 | fileDataId, |
| std::string const & | mapName, | ||
| std::string const & | outputPath, | ||
| int | gx, | ||
| int | gy, | ||
| uint32 | build, | ||
| bool | ignoreDeepWater | ||
| ) |
Definition at line 1046 of file System.cpp.
References CascStorage, ConvertADT(), ChunkedFile::loadFile(), and Trinity::StringFormat().
| void CreateDir | ( | boost::filesystem::path const & | path | ) |
Definition at line 151 of file System.cpp.
Referenced by ExtractCameraFiles(), ExtractDBFilesClient(), ExtractGameTables(), and ExtractMaps().
| void ExtractCameraFiles | ( | ) |
Definition at line 1303 of file System.cpp.
References CameraFileDataIds, CascStorage, CreateDir(), ExtractFile(), CASC::HumanReadableCASCError(), output_path, ReadCinematicCameraDBC(), and Trinity::StringFormat().
Referenced by main().
| bool ExtractDB2File | ( | uint32 | fileDataId, |
| char const * | cascFileName, | ||
| int | locale, | ||
| boost::filesystem::path const & | outputPath | ||
| ) |
Definition at line 1190 of file System.cpp.
References CascStorage, DUMMY_KNOWN_TACT_ID, DB2CascFileSource::GetFileSize(), DB2FileLoader::GetHeader(), DB2CascFileSource::GetNativeHandle(), DB2FileLoader::GetSectionHeader(), CASC::HumanReadableCASCError(), DB2CascFileSource::IsOpen(), DB2FileLoader::LoadHeaders(), localeNames, CASC::File::ReadFile(), DB2Header::SectionCount, DB2CascFileSource::SetPosition(), and DB2SectionHeader::TactId.
Referenced by ExtractDBFilesClient().
| void ExtractDBFilesClient | ( | int | l | ) |
Definition at line 1278 of file System.cpp.
References CreateDir(), DBFilesClientList, ExtractDB2File(), localeNames, and output_path.
Referenced by main().
| bool ExtractFile | ( | CASC::File * | fileInArchive, |
| std::string const & | filename | ||
| ) |
Definition at line 1147 of file System.cpp.
References CASC::File::GetSize(), and CASC::File::ReadFile().
Referenced by ExtractCameraFiles(), and ExtractGameTables().
| void ExtractGameTables | ( | ) |
Definition at line 1336 of file System.cpp.
References CascStorage, CreateDir(), ExtractFile(), DB2FileInfo::FileDataId, CASC::HumanReadableCASCError(), and output_path.
Referenced by main().
| void ExtractMaps | ( | uint32 | build | ) |
Definition at line 1083 of file System.cpp.
References wdt_MAID::adt_files, wdt_MAIN::adt_list, FileChunk::As(), CascStorage, ConvertADT(), CreateDir(), wdt_MAIN::adtData::flag, wdt_MPHD::flags, ChunkedFile::GetChunk(), IsDeepWaterIgnored(), ChunkedFile::loadFile(), main(), map_ids, MapMagic, MapVersionMagic, Name, output_path, PrintProgress, ReadLiquidMaterialTable(), ReadLiquidObjectTable(), ReadLiquidTypeTable(), ReadMapDBC(), wdt_MAID::rootADT, Trinity::StringFormat(), SZFMTD, and WDT_MAP_SIZE.
Referenced by main().
| char const * GetCascFilenamePart | ( | char const * | cascPath | ) |
Definition at line 1270 of file System.cpp.
| uint32 GetInstalledLocalesMask | ( | ) |
Definition at line 1420 of file System.cpp.
References CONF_Product, CONF_Region, CONF_UseRemoteCasc, input_path, CASC::Storage::Open(), and CASC::Storage::OpenRemote().
Referenced by main().
| void HandleArgs | ( | int | argc, |
| char * | arg[] | ||
| ) |
Definition at line 179 of file System.cpp.
References CONF_allow_float_to_int, CONF_extract, CONF_Locale, CONF_Product, CONF_Region, CONF_UseRemoteCasc, EXTRACT_ALL, input_path, localeNames, output_path, TOTAL_LOCALES, and Usage().
Referenced by main().
Definition at line 1056 of file System.cpp.
Referenced by ExtractMaps().
| int main | ( | int | argc, |
| char * | arg[] | ||
| ) |
Definition at line 1481 of file System.cpp.
References CascStorage, CONF_extract, CONF_Locale, EXTRACT_CAMERA, EXTRACT_DBC, EXTRACT_GT, EXTRACT_MAP, ExtractCameraFiles(), ExtractDBFilesClient(), ExtractGameTables(), ExtractMaps(), GetInstalledLocalesMask(), HandleArgs(), Trinity::Locale::Init(), input_path, LOCALE_none, localeNames, OpenCascStorage(), output_path, PrintProgress, RetardCheck(), Trinity::Banner::Show(), TOTAL_LOCALES, Trinity::VerifyOsVersion(), and WowLocaleToCascLocaleFlags.
Referenced by ExtractMaps().
| bool OpenCascStorage | ( | int | locale | ) |
Definition at line 1389 of file System.cpp.
References CascStorage, CONF_Product, CONF_Region, CONF_UseRemoteCasc, input_path, localeNames, CASC::Storage::Open(), CASC::Storage::OpenRemote(), and WowLocaleToCascLocaleFlags.
Referenced by main().
| bool ReadCinematicCameraDBC | ( | ) |
Definition at line 394 of file System.cpp.
References CameraFileDataIds, CascStorage, DB2FileLoader::GetRecord(), DB2FileLoader::GetRecordCount(), DB2Record::GetUInt32(), CinematicCameraLoadInfo::Instance, SZFMTD, and TryLoadDB2().
Referenced by ExtractCameraFiles().
| void ReadLiquidMaterialTable | ( | ) |
Definition at line 320 of file System.cpp.
References CascStorage, LiquidMaterialEntry::Flags, DB2Record::GetId(), DB2FileLoader::GetRecord(), DB2FileLoader::GetRecordCopy(), DB2FileLoader::GetRecordCopyCount(), DB2FileLoader::GetRecordCount(), DB2Record::GetUInt32(), DB2Record::GetUInt8(), LiquidMaterialLoadInfo::Instance, LiquidMaterials, LiquidMaterialEntry::LVF, DB2RecordCopy::NewRowId, DB2RecordCopy::SourceRowId, SZFMTD, and TryLoadDB2().
Referenced by ExtractMaps().
| void ReadLiquidObjectTable | ( | ) |
Definition at line 345 of file System.cpp.
References CascStorage, DB2Record::GetId(), DB2FileLoader::GetRecord(), DB2FileLoader::GetRecordCopy(), DB2FileLoader::GetRecordCopyCount(), DB2FileLoader::GetRecordCount(), DB2Record::GetUInt16(), LiquidObjectLoadInfo::Instance, LiquidObjects, LiquidObjectEntry::LiquidTypeID, DB2RecordCopy::NewRowId, DB2RecordCopy::SourceRowId, SZFMTD, and TryLoadDB2().
Referenced by ExtractMaps().
| void ReadLiquidTypeTable | ( | ) |
Definition at line 369 of file System.cpp.
References CascStorage, DB2Record::GetId(), DB2FileLoader::GetRecord(), DB2FileLoader::GetRecordCopy(), DB2FileLoader::GetRecordCopyCount(), DB2FileLoader::GetRecordCount(), DB2Record::GetUInt8(), LiquidTypeLoadInfo::Instance, LiquidTypes, LiquidTypeEntry::MaterialID, DB2RecordCopy::NewRowId, LiquidTypeEntry::SoundBank, DB2RecordCopy::SourceRowId, SZFMTD, and TryLoadDB2().
Referenced by ExtractMaps().
| void ReadMapDBC | ( | ) |
Definition at line 275 of file System.cpp.
References CascStorage, MapEntry::Directory, DB2Record::GetId(), DB2Record::GetInt32(), DB2FileLoader::GetRecord(), DB2FileLoader::GetRecordCopy(), DB2FileLoader::GetRecordCopyCount(), DB2FileLoader::GetRecordCount(), DB2Record::GetString(), MapEntry::Id, MapLoadInfo::Instance, map_ids, MapEntry::Name, DB2RecordCopy::NewRowId, DB2RecordCopy::SourceRowId, SZFMTD, TryLoadDB2(), and MapEntry::WdtFileDataId.
Referenced by ExtractMaps().
|
static |
Definition at line 1449 of file System.cpp.
References CONF_UseRemoteCasc, and input_path.
Referenced by main().
| float selectUInt16StepStore | ( | float | maxDiff | ) |
Definition at line 425 of file System.cpp.
Referenced by ConvertADT().
| float selectUInt8StepStore | ( | float | maxDiff | ) |
Definition at line 420 of file System.cpp.
Referenced by ConvertADT().
Definition at line 449 of file System.cpp.
Referenced by ConvertADT().
| void TryLoadDB2 | ( | char const * | name, |
| DB2CascFileSource * | source, | ||
| DB2FileLoader * | db2, | ||
| DB2FileLoadInfo const * | loadInfo | ||
| ) |
Definition at line 262 of file System.cpp.
References CASC::HumanReadableCASCError(), and DB2FileLoader::Load().
Referenced by ReadCinematicCameraDBC(), ReadLiquidMaterialTable(), ReadLiquidObjectTable(), ReadLiquidTypeTable(), and ReadMapDBC().
| void Usage | ( | char const * | prg | ) |
Definition at line 162 of file System.cpp.
Referenced by HandleArgs().
|
inlinestatic |
Definition at line 468 of file System.cpp.
Referenced by ConvertADT().
| std::set<uint32> CameraFileDataIds |
Definition at line 82 of file System.cpp.
Referenced by ExtractCameraFiles(), and ReadCinematicCameraDBC().
| char const* CascLocaleNames[CASC_LOCALES_COUNT] |
Definition at line 122 of file System.cpp.
| std::shared_ptr<CASC::Storage> CascStorage |
Definition at line 51 of file System.cpp.
Referenced by ConvertADT(), ConvertADT(), ExtractCameraFiles(), ExtractDB2File(), ExtractGameTables(), ExtractMaps(), main(), Model::open(), WMORoot::open(), WMOGroup::open(), OpenCascStorage(), ReadCinematicCameraDBC(), ReadLiquidMaterialTable(), ReadLiquidObjectTable(), ReadLiquidTypeTable(), and ReadMapDBC().
| bool CONF_allow_float_to_int = true |
Definition at line 108 of file System.cpp.
Referenced by ConvertADT(), and HandleArgs().
| bool CONF_allow_height_limit = true |
Definition at line 104 of file System.cpp.
Referenced by ConvertADT().
| int CONF_extract = EXTRACT_ALL |
Definition at line 101 of file System.cpp.
Referenced by HandleArgs(), and main().
| float CONF_flat_height_delta_limit = 0.005f |
Definition at line 111 of file System.cpp.
Referenced by ConvertADT().
| float CONF_flat_liquid_delta_limit = 0.001f |
Definition at line 112 of file System.cpp.
Referenced by ConvertADT().
| float CONF_float_to_int16_limit = 2048.0f |
Definition at line 110 of file System.cpp.
Referenced by ConvertADT().
| float CONF_float_to_int8_limit = 2.0f |
Definition at line 109 of file System.cpp.
Referenced by ConvertADT().
| uint32 CONF_Locale = 0 |
Definition at line 114 of file System.cpp.
Referenced by HandleArgs(), and main().
| char const* CONF_Product = "wow" |
Definition at line 116 of file System.cpp.
Referenced by GetInstalledLocalesMask(), HandleArgs(), and OpenCascStorage().
| char const* CONF_Region = "eu" |
Definition at line 117 of file System.cpp.
Referenced by GetInstalledLocalesMask(), HandleArgs(), and OpenCascStorage().
| float CONF_use_minHeight = -2000.0f |
Definition at line 105 of file System.cpp.
Referenced by ConvertADT().
| bool CONF_UseRemoteCasc = false |
Definition at line 118 of file System.cpp.
Referenced by GetInstalledLocalesMask(), HandleArgs(), OpenCascStorage(), and RetardCheck().
| boost::filesystem::path input_path |
Definition at line 84 of file System.cpp.
Referenced by GetInstalledLocalesMask(), HandleArgs(), main(), OpenCascStorage(), and RetardCheck().
| std::unordered_map<uint32, LiquidMaterialEntry> LiquidMaterials |
Definition at line 79 of file System.cpp.
Referenced by ConvertADT(), adt_MH2O::GetLiquidVertexFormat(), and ReadLiquidMaterialTable().
| std::unordered_map<uint32, LiquidObjectEntry> LiquidObjects |
Definition at line 80 of file System.cpp.
Referenced by ReadLiquidObjectTable().
| std::unordered_map<uint32, LiquidTypeEntry> LiquidTypes |
Definition at line 81 of file System.cpp.
Referenced by ConvertADT(), adt_MH2O::GetLiquidVertexFormat(), and ReadLiquidTypeTable().
| std::vector<MapEntry> map_ids |
Definition at line 78 of file System.cpp.
Referenced by ExtractMaps(), and ReadMapDBC().
| boost::filesystem::path output_path |
Definition at line 85 of file System.cpp.
Referenced by ExtractCameraFiles(), ExtractDBFilesClient(), ExtractGameTables(), ExtractMaps(), HandleArgs(), and main().
| bool PrintProgress = true |
Definition at line 83 of file System.cpp.
Referenced by ExtractMaps(), and main().
| uint32 WowLocaleToCascLocaleFlags[12] |
Definition at line 135 of file System.cpp.
Referenced by main(), and OpenCascStorage().