diff options
author | Shauren <shauren.trinity@gmail.com> | 2019-06-08 13:19:48 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2019-06-08 17:10:00 +0200 |
commit | bcaaa3d6f69cd60b25a25fc69904f9a8ece24250 (patch) | |
tree | 585dac52b621b55b5f380a8cdc6725b4b2df6129 /src/tools | |
parent | fc330fd8ff0115804d9c4b53a1f810c00dd63de9 (diff) |
Core/DataStores: Updated db2 structures to 8.1.5
Diffstat (limited to 'src/tools')
-rw-r--r-- | src/tools/extractor_common/CascHandles.cpp | 25 | ||||
-rw-r--r-- | src/tools/extractor_common/CascHandles.h | 2 | ||||
-rw-r--r-- | src/tools/extractor_common/DB2CascFileSource.cpp | 19 | ||||
-rw-r--r-- | src/tools/extractor_common/DB2CascFileSource.h | 4 | ||||
-rw-r--r-- | src/tools/extractor_common/ExtractorDB2LoadInfo.h | 16 | ||||
-rw-r--r-- | src/tools/map_extractor/System.cpp | 130 | ||||
-rw-r--r-- | src/tools/map_extractor/loadlib/DBFilesClientList.h | 1361 | ||||
-rw-r--r-- | src/tools/vmap4_extractor/gameobject_extract.cpp | 2 | ||||
-rw-r--r-- | src/tools/vmap4_extractor/vmapexport.cpp | 2 |
9 files changed, 864 insertions, 697 deletions
diff --git a/src/tools/extractor_common/CascHandles.cpp b/src/tools/extractor_common/CascHandles.cpp index 9487b3de093..eb84a084a11 100644 --- a/src/tools/extractor_common/CascHandles.cpp +++ b/src/tools/extractor_common/CascHandles.cpp @@ -38,6 +38,7 @@ char const* CASC::HumanReadableCASCError(DWORD error) case ERROR_INVALID_HANDLE: return "INVALID_HANDLE"; case ERROR_ACCESS_DENIED: return "ACCESS_DENIED"; case ERROR_FILE_NOT_FOUND: return "FILE_NOT_FOUND"; + case ERROR_FILE_ENCRYPTED: return "FILE_ENCRYPTED"; default: return "UNKNOWN"; } } @@ -98,10 +99,15 @@ DWORD CASC::GetInstalledLocalesMask(StorageHandle const& storage) return 0; } +bool CASC::HasTactKey(StorageHandle const& storage, ULONGLONG keyLookup) +{ + return CascFindEncryptionKey(storage.get(), keyLookup) != nullptr; +} + CASC::FileHandle CASC::OpenFile(StorageHandle const& storage, char const* fileName, DWORD localeMask, bool printErrors /*= false*/) { HANDLE handle = nullptr; - if (!::CascOpenFile(storage.get(), fileName, localeMask, 0, &handle)) + if (!::CascOpenFile(storage.get(), fileName, localeMask, CASC_OPEN_BY_NAME, &handle)) { DWORD lastError = GetLastError(); // support checking error set by *Open* call, not the next *Close* if (printErrors) @@ -115,6 +121,23 @@ CASC::FileHandle CASC::OpenFile(StorageHandle const& storage, char const* fileNa return FileHandle(handle); } +CASC::FileHandle CASC::OpenFile(StorageHandle const& storage, DWORD fileDataId, DWORD localeMask, bool printErrors /*= false*/) +{ + HANDLE handle = nullptr; + if (!::CascOpenFile(storage.get(), CASC_FILE_DATA_ID(fileDataId), localeMask, CASC_OPEN_BY_FILEID, &handle)) + { + DWORD lastError = GetLastError(); // support checking error set by *Open* call, not the next *Close* + if (printErrors) + fprintf(stderr, "Failed to open 'FileDataId %u' in CASC storage: %s\n", fileDataId, HumanReadableCASCError(lastError)); + + CascCloseFile(handle); + SetLastError(lastError); + return FileHandle(); + } + + return FileHandle(handle); +} + DWORD CASC::GetFileSize(FileHandle const& file, PDWORD fileSizeHigh) { return ::CascGetFileSize(file.get(), fileSizeHigh); diff --git a/src/tools/extractor_common/CascHandles.h b/src/tools/extractor_common/CascHandles.h index c191cc25045..9feafdbf4af 100644 --- a/src/tools/extractor_common/CascHandles.h +++ b/src/tools/extractor_common/CascHandles.h @@ -51,8 +51,10 @@ namespace CASC StorageHandle OpenStorage(boost::filesystem::path const& path, DWORD localeMask); DWORD GetBuildNumber(StorageHandle const& storage); DWORD GetInstalledLocalesMask(StorageHandle const& storage); + bool HasTactKey(StorageHandle const& storage, ULONGLONG keyLookup); FileHandle OpenFile(StorageHandle const& storage, char const* fileName, DWORD localeMask, bool printErrors = false); + FileHandle OpenFile(StorageHandle const& storage, DWORD fileDataId, DWORD localeMask, bool printErrors = false); DWORD GetFileSize(FileHandle const& file, PDWORD fileSizeHigh); DWORD GetFilePointer(FileHandle const& file); bool SetFilePointer(FileHandle const& file, LONGLONG position); diff --git a/src/tools/extractor_common/DB2CascFileSource.cpp b/src/tools/extractor_common/DB2CascFileSource.cpp index c2478b21def..58f8567dda3 100644 --- a/src/tools/extractor_common/DB2CascFileSource.cpp +++ b/src/tools/extractor_common/DB2CascFileSource.cpp @@ -16,14 +16,21 @@ */ #include "DB2CascFileSource.h" +#include "StringFormat.h" #include <CascLib.h> -DB2CascFileSource::DB2CascFileSource(CASC::StorageHandle const& storage, std::string fileName) +DB2CascFileSource::DB2CascFileSource(CASC::StorageHandle const& storage, std::string fileName, bool printErrors /*= true*/) { - _fileHandle = CASC::OpenFile(storage, fileName.c_str(), CASC_LOCALE_NONE, true); + _fileHandle = CASC::OpenFile(storage, fileName.c_str(), CASC_LOCALE_NONE, printErrors); _fileName = std::move(fileName); } +DB2CascFileSource::DB2CascFileSource(CASC::StorageHandle const& storage, uint32 fileDataId, bool printErrors /*= true*/) +{ + _fileHandle = CASC::OpenFile(storage, fileDataId, CASC_LOCALE_NONE, printErrors); + _fileName = Trinity::StringFormat("FileDataId: %u", fileDataId); +} + bool DB2CascFileSource::IsOpen() const { return _fileHandle != nullptr; @@ -50,9 +57,17 @@ std::size_t DB2CascFileSource::GetFileSize() const DWORD sizeLow = 0; DWORD sizeHigh = 0; sizeLow = CASC::GetFileSize(_fileHandle, &sizeHigh); + if (sizeLow == CASC_INVALID_SIZE) + return std::size_t(-1); + return std::size_t(uint64(sizeLow) | (uint64(sizeHigh) << 32)); } +CASC::FileHandle const& DB2CascFileSource::GetHandle() const +{ + return _fileHandle; +} + char const* DB2CascFileSource::GetFileName() const { return _fileName.c_str(); diff --git a/src/tools/extractor_common/DB2CascFileSource.h b/src/tools/extractor_common/DB2CascFileSource.h index bfe580714be..80559ff8d41 100644 --- a/src/tools/extractor_common/DB2CascFileSource.h +++ b/src/tools/extractor_common/DB2CascFileSource.h @@ -24,12 +24,14 @@ struct DB2CascFileSource : public DB2FileSource { - DB2CascFileSource(CASC::StorageHandle const& storage, std::string fileName); + DB2CascFileSource(CASC::StorageHandle const& storage, std::string fileName, bool printErrors = true); + DB2CascFileSource(CASC::StorageHandle const& storage, uint32 fileDataId, bool printErrors = true); bool IsOpen() const override; bool Read(void* buffer, std::size_t numBytes) override; std::size_t GetPosition() const override; bool SetPosition(std::size_t position) override; std::size_t GetFileSize() const override; + CASC::FileHandle const& GetHandle() const; char const* GetFileName() const override; private: diff --git a/src/tools/extractor_common/ExtractorDB2LoadInfo.h b/src/tools/extractor_common/ExtractorDB2LoadInfo.h index 6ee6a9c6355..0f4833af253 100644 --- a/src/tools/extractor_common/ExtractorDB2LoadInfo.h +++ b/src/tools/extractor_common/ExtractorDB2LoadInfo.h @@ -43,7 +43,7 @@ struct CinematicCameraLoadInfo { FT_FLOAT, 1, true }, { FT_INT, 1, false }, }; - static DB2Meta meta(-1, 4, 0x20C5E540, fields, -1); + static DB2Meta meta(1294214, -1, 4, 0x20C5E540, fields, -1); static DB2FileLoadInfo const loadInfo(&loadedFields[0], std::extent<decltype(loadedFields)>::value, &meta); return &loadInfo; } @@ -75,7 +75,7 @@ struct GameobjectDisplayInfoLoadInfo { FT_FLOAT, 1, true }, { FT_FLOAT, 1, true }, }; - static DB2Meta meta(-1, 5, 0x7A816799, fields, -1); + static DB2Meta meta(1266277, -1, 5, 0x7A816799, fields, -1); static DB2FileLoadInfo const loadInfo(&loadedFields[0], std::extent<decltype(loadedFields)>::value, &meta); return &loadInfo; } @@ -96,7 +96,7 @@ struct LiquidMaterialLoadInfo { FT_BYTE, 1, true }, { FT_BYTE, 1, true }, }; - static DB2Meta meta(-1, 2, 0x6A7287A2, fields, -1); + static DB2Meta meta(1132538, -1, 2, 0x6A7287A2, fields, -1); static DB2FileLoadInfo const loadInfo(&loadedFields[0], std::extent<decltype(loadedFields)>::value, &meta); return &loadInfo; } @@ -123,7 +123,7 @@ struct LiquidObjectLoadInfo { FT_BYTE, 1, false }, { FT_BYTE, 1, false }, }; - static DB2Meta meta(-1, 5, 0x7AF380AA, fields, -1); + static DB2Meta meta(1308058, -1, 5, 0x7AF380AA, fields, -1); static DB2FileLoadInfo const loadInfo(&loadedFields[0], std::extent<decltype(loadedFields)>::value, &meta); return &loadInfo; } @@ -216,7 +216,7 @@ struct LiquidTypeLoadInfo { FT_INT, 4, false }, { FT_FLOAT, 4, true }, }; - static DB2Meta meta(-1, 21, 0x29F8C65E, fields, -1); + static DB2Meta meta(1371380, -1, 21, 0x29F8C65E, fields, -1); static DB2FileLoadInfo const loadInfo(&loadedFields[0], std::extent<decltype(loadedFields)>::value, &meta); return &loadInfo; } @@ -251,10 +251,11 @@ struct MapLoadInfo { false, FT_BYTE, "MaxPlayers" }, { true, FT_SHORT, "WindSettingsID" }, { true, FT_INT, "ZmpFileDataID" }, + { true, FT_INT, "WdtFileDataID" }, { true, FT_INT, "Flags1" }, { true, FT_INT, "Flags2" }, }; - static DB2MetaField const fields[22] = + static DB2MetaField const fields[23] = { { FT_STRING_NOT_LOCALIZED, 1, true }, { FT_STRING, 1, true }, @@ -277,9 +278,10 @@ struct MapLoadInfo { FT_BYTE, 1, false }, { FT_SHORT, 1, true }, { FT_INT, 1, true }, + { FT_INT, 1, true }, { FT_INT, 2, true }, }; - static DB2Meta meta(-1, 22, 0x503A3E58, fields, -1); + static DB2Meta meta(1349477, -1, 23, 0xB290D217, fields, -1); static DB2FileLoadInfo const loadInfo(&loadedFields[0], std::extent<decltype(loadedFields)>::value, &meta); return &loadInfo; } diff --git a/src/tools/map_extractor/System.cpp b/src/tools/map_extractor/System.cpp index c1c28d969b7..9dc017cd1da 100644 --- a/src/tools/map_extractor/System.cpp +++ b/src/tools/map_extractor/System.cpp @@ -220,7 +220,7 @@ void ReadMapDBC() { printf("Read Map.db2 file...\n"); - DB2CascFileSource source(CascStorage, "DBFilesClient\\Map.db2"); + DB2CascFileSource source(CascStorage, MapLoadInfo::Instance()->Meta->FileDataId); DB2FileLoader db2; if (!db2.Load(&source, MapLoadInfo::Instance())) { @@ -268,7 +268,7 @@ void ReadLiquidMaterialTable() { printf("Read LiquidMaterial.db2 file...\n"); - DB2CascFileSource source(CascStorage, "DBFilesClient\\LiquidMaterial.db2"); + DB2CascFileSource source(CascStorage, LiquidMaterialLoadInfo::Instance()->Meta->FileDataId); DB2FileLoader db2; if (!db2.Load(&source, LiquidMaterialLoadInfo::Instance())) { @@ -279,6 +279,9 @@ void ReadLiquidMaterialTable() for (uint32 x = 0; x < db2.GetRecordCount(); ++x) { DB2Record record = db2.GetRecord(x); + if (!record) + continue; + LiquidMaterialEntry& liquidType = LiquidMaterials[record.GetId()]; liquidType.LVF = record.GetUInt8("LVF"); } @@ -293,7 +296,7 @@ void ReadLiquidObjectTable() { printf("Read LiquidObject.db2 file...\n"); - DB2CascFileSource source(CascStorage, "DBFilesClient\\LiquidObject.db2"); + DB2CascFileSource source(CascStorage, LiquidObjectLoadInfo::Instance()->Meta->FileDataId); DB2FileLoader db2; if (!db2.Load(&source, LiquidObjectLoadInfo::Instance())) { @@ -304,6 +307,9 @@ void ReadLiquidObjectTable() for (uint32 x = 0; x < db2.GetRecordCount(); ++x) { DB2Record record = db2.GetRecord(x); + if (!record) + continue; + LiquidObjectEntry& liquidType = LiquidObjects[record.GetId()]; liquidType.LiquidTypeID = record.GetUInt16("LiquidTypeID"); } @@ -318,7 +324,7 @@ void ReadLiquidTypeTable() { printf("Read LiquidType.db2 file...\n"); - DB2CascFileSource source(CascStorage, "DBFilesClient\\LiquidType.db2"); + DB2CascFileSource source(CascStorage, LiquidTypeLoadInfo::Instance()->Meta->FileDataId); DB2FileLoader db2; if (!db2.Load(&source, LiquidTypeLoadInfo::Instance())) { @@ -329,6 +335,9 @@ void ReadLiquidTypeTable() for (uint32 x = 0; x < db2.GetRecordCount(); ++x) { DB2Record record = db2.GetRecord(x); + if (!record) + continue; + LiquidTypeEntry& liquidType = LiquidTypes[record.GetId()]; liquidType.SoundBank = record.GetUInt8("SoundBank"); liquidType.MaterialID = record.GetUInt8("MaterialID"); @@ -344,7 +353,7 @@ bool ReadCinematicCameraDBC() { printf("Read CinematicCamera.db2 file...\n"); - DB2CascFileSource source(CascStorage, "DBFilesClient\\CinematicCamera.db2"); + DB2CascFileSource source(CascStorage, CinematicCameraLoadInfo::Instance()->Meta->FileDataId); DB2FileLoader db2; if (!db2.Load(&source, CinematicCameraLoadInfo::Instance())) { @@ -1159,6 +1168,99 @@ bool ExtractFile(CASC::FileHandle const& fileInArchive, std::string const& filen return true; } +bool ExtractDB2File(uint32 fileDataId, char const* cascFileName, int locale, boost::filesystem::path const& outputPath) +{ + DB2CascFileSource source(CascStorage, fileDataId, false); + if (!source.IsOpen()) + { + printf("Unable to open file %s in the archive for locale %s: %s\n", cascFileName, localeNames[locale], CASC::HumanReadableCASCError(GetLastError())); + return false; + } + + std::size_t fileSize = source.GetFileSize(); + if (fileSize == std::size_t(-1)) + { + printf("Can't read file size of '%s'\n", cascFileName); + return false; + } + + DB2FileLoader db2; + if (!db2.LoadHeaders(&source, nullptr)) + { + printf("Can't read DB2 headers file size of '%s'\n", cascFileName); + return false; + } + + std::string outputFileName = outputPath.string(); + FILE* output = fopen(outputFileName.c_str(), "wb"); + if (!output) + { + printf("Can't create the output file '%s'\n", outputFileName.c_str()); + return false; + } + + DB2Header header = db2.GetHeader(); + + std::size_t posAfterHeaders = 0; + posAfterHeaders += fwrite(&header, 1, sizeof(header), output); + + // erase TactId from header if key is known + for (uint32 i = 0; i < header.SectionCount; ++i) + { + DB2SectionHeader sectionHeader = db2.GetSectionHeader(i); + if (sectionHeader.TactId && CASC::HasTactKey(CascStorage, sectionHeader.TactId)) + sectionHeader.TactId = 0; + + posAfterHeaders += fwrite(§ionHeader, 1, sizeof(sectionHeader), output); + } + + char buffer[0x10000]; + DWORD readBatchSize = 0x10000; + DWORD readBytes; + source.SetPosition(posAfterHeaders); + + do + { + readBytes = 0; + if (!CASC::ReadFile(source.GetHandle(), buffer, std::min<DWORD>(fileSize, readBatchSize), &readBytes)) + { + if (GetLastError() == ERROR_FILE_ENCRYPTED) + { + // shrink block size to read as much unencrypted data as possible + if (readBatchSize != 1) + { + readBatchSize = std::max<DWORD>(1, readBatchSize / 2); + continue; + } + + uint8 zero = 0; + --fileSize; + fwrite(&zero, 1, 1, output); + source.SetPosition(source.GetPosition() + 1); + continue; + } + + printf("Can't read file '%s'\n", outputFileName.c_str()); + fclose(output); + boost::filesystem::remove(outputPath); + return false; + } + + if (!readBytes) + break; + + fwrite(buffer, 1, readBytes, output); + fileSize -= readBytes; + readBatchSize = 0x10000; + if (!fileSize) // now we have read entire file + break; + + } while (true); + + fclose(output); + return true; +} + char const* GetCascFilenamePart(char const* cascPath) { if (char const* lastSep = strrchr(cascPath, '\\')) @@ -1178,23 +1280,15 @@ void ExtractDBFilesClient(int l) printf("locale %s output path %s\n", localeNames[l], localePath.string().c_str()); - uint32 index = 0; uint32 count = 0; - char const* fileName = DBFilesClientList[index]; - while (fileName) + for (DB2FileInfo const& db2 : DBFilesClientList) { - if (CASC::FileHandle dbcFile = CASC::OpenFile(CascStorage, fileName, CASC_LOCALE_NONE)) - { - boost::filesystem::path filePath = localePath / GetCascFilenamePart(fileName); + boost::filesystem::path filePath = localePath / db2.Name; - if (!boost::filesystem::exists(filePath)) - if (ExtractFile(dbcFile, filePath.string())) - ++count; - } - else - printf("Unable to open file %s in the archive for locale %s: %s\n", fileName, localeNames[l], CASC::HumanReadableCASCError(GetLastError())); + if (!boost::filesystem::exists(filePath)) + if (ExtractDB2File(db2.FileDataId, db2.Name, l, filePath.string())) + ++count; - fileName = DBFilesClientList[++index]; } printf("Extracted %u files\n\n", count); diff --git a/src/tools/map_extractor/loadlib/DBFilesClientList.h b/src/tools/map_extractor/loadlib/DBFilesClientList.h index a1cd20cf10e..18116d7ab8a 100644 --- a/src/tools/map_extractor/loadlib/DBFilesClientList.h +++ b/src/tools/map_extractor/loadlib/DBFilesClientList.h @@ -18,673 +18,702 @@ #ifndef DBFilesClientList_h__ #define DBFilesClientList_h__ -char const* DBFilesClientList[] = +struct DB2FileInfo { - "DBFilesClient\\Achievement.db2", - "DBFilesClient\\Achievement_Category.db2", - "DBFilesClient\\AdventureJournal.db2", - "DBFilesClient\\AdventureMapPOI.db2", - "DBFilesClient\\AlliedRace.db2", - "DBFilesClient\\AlliedRaceRacialAbility.db2", - "DBFilesClient\\AnimKit.db2", - "DBFilesClient\\AnimKitBoneSet.db2", - "DBFilesClient\\AnimKitBoneSetAlias.db2", - "DBFilesClient\\AnimKitConfig.db2", - "DBFilesClient\\AnimKitConfigBoneSet.db2", - "DBFilesClient\\AnimKitPriority.db2", - "DBFilesClient\\AnimKitReplacement.db2", - "DBFilesClient\\AnimKitSegment.db2", - "DBFilesClient\\AnimReplacement.db2", - "DBFilesClient\\AnimReplacementSet.db2", - "DBFilesClient\\AnimationData.db2", - "DBFilesClient\\AoiBox.db2", - "DBFilesClient\\AreaConditionalData.db2", - "DBFilesClient\\AreaFarClipOverride.db2", - "DBFilesClient\\AreaGroupMember.db2", - "DBFilesClient\\AreaPOI.db2", - "DBFilesClient\\AreaPOIState.db2", - "DBFilesClient\\AreaTable.db2", - "DBFilesClient\\AreaTrigger.db2", - "DBFilesClient\\AreaTriggerActionSet.db2", - "DBFilesClient\\AreaTriggerBox.db2", - "DBFilesClient\\AreaTriggerCreateProperties.db2", - "DBFilesClient\\AreaTriggerCylinder.db2", - "DBFilesClient\\AreaTriggerSphere.db2", - "DBFilesClient\\ArmorLocation.db2", - "DBFilesClient\\Artifact.db2", - "DBFilesClient\\ArtifactAppearance.db2", - "DBFilesClient\\ArtifactAppearanceSet.db2", - "DBFilesClient\\ArtifactCategory.db2", - "DBFilesClient\\ArtifactItemToTransmog.db2", - "DBFilesClient\\ArtifactPower.db2", - "DBFilesClient\\ArtifactPowerLink.db2", - "DBFilesClient\\ArtifactPowerPicker.db2", - "DBFilesClient\\ArtifactPowerRank.db2", - "DBFilesClient\\ArtifactQuestXP.db2", - "DBFilesClient\\ArtifactTier.db2", - "DBFilesClient\\ArtifactUnlock.db2", - "DBFilesClient\\AuctionHouse.db2", - "DBFilesClient\\AzeriteEmpoweredItem.db2", - "DBFilesClient\\AzeriteItem.db2", - "DBFilesClient\\AzeriteItemMilestonePower.db2", - "DBFilesClient\\AzeritePower.db2", - "DBFilesClient\\AzeritePowerSetMember.db2", - "DBFilesClient\\AzeriteTierUnlock.db2", - "DBFilesClient\\BankBagSlotPrices.db2", - "DBFilesClient\\BannedAddons.db2", - "DBFilesClient\\BarberShopStyle.db2", - "DBFilesClient\\BattlePetAbility.db2", - "DBFilesClient\\BattlePetAbilityEffect.db2", - "DBFilesClient\\BattlePetAbilityState.db2", - "DBFilesClient\\BattlePetAbilityTurn.db2", - "DBFilesClient\\BattlePetBreedQuality.db2", - "DBFilesClient\\BattlePetBreedState.db2", - "DBFilesClient\\BattlePetDisplayOverride.db2", - "DBFilesClient\\BattlePetEffectProperties.db2", - "DBFilesClient\\BattlePetNPCTeamMember.db2", - "DBFilesClient\\BattlePetSpecies.db2", - "DBFilesClient\\BattlePetSpeciesState.db2", - "DBFilesClient\\BattlePetSpeciesXAbility.db2", - "DBFilesClient\\BattlePetState.db2", - "DBFilesClient\\BattlePetVisual.db2", - "DBFilesClient\\BattlemasterList.db2", - "DBFilesClient\\BeamEffect.db2", - "DBFilesClient\\BoneWindModifierModel.db2", - "DBFilesClient\\BoneWindModifiers.db2", - "DBFilesClient\\BonusRoll.db2", - "DBFilesClient\\Bounty.db2", - "DBFilesClient\\BountySet.db2", - "DBFilesClient\\BroadcastText.db2", - "DBFilesClient\\CameraEffect.db2", - "DBFilesClient\\CameraEffectEntry.db2", - "DBFilesClient\\CameraMode.db2", - "DBFilesClient\\Campaign.db2", - "DBFilesClient\\CampaignXCondition.db2", - "DBFilesClient\\CampaignXQuestLine.db2", - "DBFilesClient\\CastableRaidBuffs.db2", - "DBFilesClient\\CelestialBody.db2", - "DBFilesClient\\Cfg_Categories.db2", - "DBFilesClient\\Cfg_Configs.db2", - "DBFilesClient\\Cfg_Regions.db2", - "DBFilesClient\\CharBaseInfo.db2", - "DBFilesClient\\CharBaseSection.db2", - "DBFilesClient\\CharComponentTextureLayouts.db2", - "DBFilesClient\\CharComponentTextureSections.db2", - "DBFilesClient\\CharHairGeosets.db2", - "DBFilesClient\\CharSections.db2", - "DBFilesClient\\CharShipment.db2", - "DBFilesClient\\CharShipmentContainer.db2", - "DBFilesClient\\CharStartOutfit.db2", - "DBFilesClient\\CharTitles.db2", - "DBFilesClient\\CharacterFaceBoneSet.db2", - "DBFilesClient\\CharacterFacialHairStyles.db2", - "DBFilesClient\\CharacterLoadout.db2", - "DBFilesClient\\CharacterLoadoutItem.db2", - "DBFilesClient\\CharacterServiceInfo.db2", - "DBFilesClient\\ChatChannels.db2", - "DBFilesClient\\ChatProfanity.db2", - "DBFilesClient\\ChrClassRaceSex.db2", - "DBFilesClient\\ChrClassTitle.db2", - "DBFilesClient\\ChrClassUIDisplay.db2", - "DBFilesClient\\ChrClassVillain.db2", - "DBFilesClient\\ChrClasses.db2", - "DBFilesClient\\ChrClassesXPowerTypes.db2", - "DBFilesClient\\ChrCustomization.db2", - "DBFilesClient\\ChrRaces.db2", - "DBFilesClient\\ChrSpecialization.db2", - "DBFilesClient\\ChrUpgradeBucket.db2", - "DBFilesClient\\ChrUpgradeBucketSpell.db2", - "DBFilesClient\\ChrUpgradeTier.db2", - "DBFilesClient\\CinematicCamera.db2", - "DBFilesClient\\CinematicSequences.db2", - "DBFilesClient\\ClientSceneEffect.db2", - "DBFilesClient\\CloakDampening.db2", - "DBFilesClient\\CloneEffect.db2", - "DBFilesClient\\CombatCondition.db2", - "DBFilesClient\\CommentatorStartLocation.db2", - "DBFilesClient\\CommentatorTrackedCooldown.db2", - "DBFilesClient\\CommunityIcon.db2", - "DBFilesClient\\ComponentModelFileData.db2", - "DBFilesClient\\ComponentTextureFileData.db2", - "DBFilesClient\\ConfigurationWarning.db2", - "DBFilesClient\\ContentTuning.db2", - "DBFilesClient\\Contribution.db2", - "DBFilesClient\\ContributionStyle.db2", - "DBFilesClient\\ContributionStyleContainer.db2", - "DBFilesClient\\ConversationLine.db2", - "DBFilesClient\\Creature.db2", - "DBFilesClient\\CreatureDifficulty.db2", - "DBFilesClient\\CreatureDispXUiCamera.db2", - "DBFilesClient\\CreatureDisplayInfo.db2", - "DBFilesClient\\CreatureDisplayInfoCond.db2", - "DBFilesClient\\CreatureDisplayInfoEvt.db2", - "DBFilesClient\\CreatureDisplayInfoExtra.db2", - "DBFilesClient\\CreatureDisplayInfoGeosetData.db2", - "DBFilesClient\\CreatureDisplayInfoTrn.db2", - "DBFilesClient\\CreatureFamily.db2", - "DBFilesClient\\CreatureImmunities.db2", - "DBFilesClient\\CreatureModelData.db2", - "DBFilesClient\\CreatureMovementInfo.db2", - "DBFilesClient\\CreatureSoundData.db2", - "DBFilesClient\\CreatureType.db2", - "DBFilesClient\\CreatureXContribution.db2", - "DBFilesClient\\CreatureXDisplayInfo.db2", - "DBFilesClient\\Criteria.db2", - "DBFilesClient\\CriteriaTree.db2", - "DBFilesClient\\CriteriaTreeXEffect.db2", - "DBFilesClient\\CurrencyCategory.db2", - "DBFilesClient\\CurrencyContainer.db2", - "DBFilesClient\\CurrencyTypes.db2", - "DBFilesClient\\Curve.db2", - "DBFilesClient\\CurvePoint.db2", - "DBFilesClient\\DeathThudLookups.db2", - "DBFilesClient\\DecalProperties.db2", - "DBFilesClient\\DeclinedWord.db2", - "DBFilesClient\\DeclinedWordCases.db2", - "DBFilesClient\\DestructibleModelData.db2", - "DBFilesClient\\DeviceBlacklist.db2", - "DBFilesClient\\DeviceDefaultSettings.db2", - "DBFilesClient\\Difficulty.db2", - "DBFilesClient\\DissolveEffect.db2", - "DBFilesClient\\DriverBlacklist.db2", - "DBFilesClient\\DungeonEncounter.db2", - "DBFilesClient\\DurabilityCosts.db2", - "DBFilesClient\\DurabilityQuality.db2", - "DBFilesClient\\EdgeGlowEffect.db2", - "DBFilesClient\\Emotes.db2", - "DBFilesClient\\EmotesText.db2", - "DBFilesClient\\EmotesTextData.db2", - "DBFilesClient\\EmotesTextSound.db2", - "DBFilesClient\\EnvironmentalDamage.db2", - "DBFilesClient\\Exhaustion.db2", - "DBFilesClient\\ExpectedStat.db2", - "DBFilesClient\\ExpectedStatMod.db2", - "DBFilesClient\\Faction.db2", - "DBFilesClient\\FactionGroup.db2", - "DBFilesClient\\FactionTemplate.db2", - "DBFilesClient\\FootprintTextures.db2", - "DBFilesClient\\FootstepTerrainLookup.db2", - "DBFilesClient\\FriendshipRepReaction.db2", - "DBFilesClient\\FriendshipReputation.db2", - "DBFilesClient\\FullScreenEffect.db2", - "DBFilesClient\\GMSurveyAnswers.db2", - "DBFilesClient\\GMSurveyCurrentSurvey.db2", - "DBFilesClient\\GMSurveyQuestions.db2", - "DBFilesClient\\GMSurveySurveys.db2", - "DBFilesClient\\GameObjectArtKit.db2", - "DBFilesClient\\GameObjectDiffAnimMap.db2", - "DBFilesClient\\GameObjectDisplayInfo.db2", - "DBFilesClient\\GameObjectDisplayInfoXSoundKit.db2", - "DBFilesClient\\GameObjects.db2", - "DBFilesClient\\GameTips.db2", - "DBFilesClient\\GarrAbility.db2", - "DBFilesClient\\GarrAbilityCategory.db2", - "DBFilesClient\\GarrAbilityEffect.db2", - "DBFilesClient\\GarrBuilding.db2", - "DBFilesClient\\GarrBuildingDoodadSet.db2", - "DBFilesClient\\GarrBuildingPlotInst.db2", - "DBFilesClient\\GarrClassSpec.db2", - "DBFilesClient\\GarrClassSpecPlayerCond.db2", - "DBFilesClient\\GarrEncounter.db2", - "DBFilesClient\\GarrEncounterSetXEncounter.db2", - "DBFilesClient\\GarrEncounterXMechanic.db2", - "DBFilesClient\\GarrFollItemSetMember.db2", - "DBFilesClient\\GarrFollSupportSpell.db2", - "DBFilesClient\\GarrFollower.db2", - "DBFilesClient\\GarrFollowerLevelXP.db2", - "DBFilesClient\\GarrFollowerQuality.db2", - "DBFilesClient\\GarrFollowerSetXFollower.db2", - "DBFilesClient\\GarrFollowerType.db2", - "DBFilesClient\\GarrFollowerUICreature.db2", - "DBFilesClient\\GarrFollowerXAbility.db2", - "DBFilesClient\\GarrItemLevelUpgradeData.db2", - "DBFilesClient\\GarrMechanic.db2", - "DBFilesClient\\GarrMechanicSetXMechanic.db2", - "DBFilesClient\\GarrMechanicType.db2", - "DBFilesClient\\GarrMission.db2", - "DBFilesClient\\GarrMissionTexture.db2", - "DBFilesClient\\GarrMissionType.db2", - "DBFilesClient\\GarrMissionXEncounter.db2", - "DBFilesClient\\GarrMissionXFollower.db2", - "DBFilesClient\\GarrMssnBonusAbility.db2", - "DBFilesClient\\GarrPlot.db2", - "DBFilesClient\\GarrPlotBuilding.db2", - "DBFilesClient\\GarrPlotInstance.db2", - "DBFilesClient\\GarrPlotUICategory.db2", - "DBFilesClient\\GarrSiteLevel.db2", - "DBFilesClient\\GarrSiteLevelPlotInst.db2", - "DBFilesClient\\GarrSpecialization.db2", - "DBFilesClient\\GarrString.db2", - "DBFilesClient\\GarrTalent.db2", - "DBFilesClient\\GarrTalentTree.db2", - "DBFilesClient\\GarrType.db2", - "DBFilesClient\\GarrUiAnimClassInfo.db2", - "DBFilesClient\\GarrUiAnimRaceInfo.db2", - "DBFilesClient\\GemProperties.db2", - "DBFilesClient\\GlobalStrings.db2", - "DBFilesClient\\GlyphBindableSpell.db2", - "DBFilesClient\\GlyphExclusiveCategory.db2", - "DBFilesClient\\GlyphProperties.db2", - "DBFilesClient\\GlyphRequiredSpec.db2", - "DBFilesClient\\GroundEffectDoodad.db2", - "DBFilesClient\\GroundEffectTexture.db2", - "DBFilesClient\\GroupFinderActivity.db2", - "DBFilesClient\\GroupFinderActivityGrp.db2", - "DBFilesClient\\GroupFinderCategory.db2", - "DBFilesClient\\GuildColorBackground.db2", - "DBFilesClient\\GuildColorBorder.db2", - "DBFilesClient\\GuildColorEmblem.db2", - "DBFilesClient\\GuildPerkSpells.db2", - "DBFilesClient\\Heirloom.db2", - "DBFilesClient\\HelmetAnimScaling.db2", - "DBFilesClient\\HelmetGeosetVisData.db2", - "DBFilesClient\\HighlightColor.db2", - "DBFilesClient\\HolidayDescriptions.db2", - "DBFilesClient\\HolidayNames.db2", - "DBFilesClient\\Holidays.db2", - "DBFilesClient\\Hotfixes.db2", - "DBFilesClient\\ImportPriceArmor.db2", - "DBFilesClient\\ImportPriceQuality.db2", - "DBFilesClient\\ImportPriceShield.db2", - "DBFilesClient\\ImportPriceWeapon.db2", - "DBFilesClient\\InvasionClientData.db2", - "DBFilesClient\\Item.db2", - "DBFilesClient\\ItemAppearance.db2", - "DBFilesClient\\ItemAppearanceXUiCamera.db2", - "DBFilesClient\\ItemArmorQuality.db2", - "DBFilesClient\\ItemArmorShield.db2", - "DBFilesClient\\ItemArmorTotal.db2", - "DBFilesClient\\ItemBagFamily.db2", - "DBFilesClient\\ItemBonus.db2", - "DBFilesClient\\ItemBonusListLevelDelta.db2", - "DBFilesClient\\ItemBonusTreeNode.db2", - "DBFilesClient\\ItemChildEquipment.db2", - "DBFilesClient\\ItemClass.db2", - "DBFilesClient\\ItemContextPickerEntry.db2", - "DBFilesClient\\ItemCurrencyCost.db2", - "DBFilesClient\\ItemDamageAmmo.db2", - "DBFilesClient\\ItemDamageOneHand.db2", - "DBFilesClient\\ItemDamageOneHandCaster.db2", - "DBFilesClient\\ItemDamageTwoHand.db2", - "DBFilesClient\\ItemDamageTwoHandCaster.db2", - "DBFilesClient\\ItemDisenchantLoot.db2", - "DBFilesClient\\ItemDisplayInfo.db2", - "DBFilesClient\\ItemDisplayInfoMaterialRes.db2", - "DBFilesClient\\ItemDisplayXUiCamera.db2", - "DBFilesClient\\ItemEffect.db2", - "DBFilesClient\\ItemExtendedCost.db2", - "DBFilesClient\\ItemGroupSounds.db2", - "DBFilesClient\\ItemLevelSelector.db2", - "DBFilesClient\\ItemLevelSelectorQuality.db2", - "DBFilesClient\\ItemLevelSelectorQualitySet.db2", - "DBFilesClient\\ItemLimitCategory.db2", - "DBFilesClient\\ItemLimitCategoryCondition.db2", - "DBFilesClient\\ItemModifiedAppearance.db2", - "DBFilesClient\\ItemModifiedAppearanceExtra.db2", - "DBFilesClient\\ItemNameDescription.db2", - "DBFilesClient\\ItemPetFood.db2", - "DBFilesClient\\ItemPriceBase.db2", - "DBFilesClient\\ItemRandomProperties.db2", - "DBFilesClient\\ItemRandomSuffix.db2", - "DBFilesClient\\ItemRangedDisplayInfo.db2", - "DBFilesClient\\ItemSearchName.db2", - "DBFilesClient\\ItemSet.db2", - "DBFilesClient\\ItemSetSpell.db2", - "DBFilesClient\\ItemSparse.db2", - "DBFilesClient\\ItemSpec.db2", - "DBFilesClient\\ItemSpecOverride.db2", - "DBFilesClient\\ItemSubClass.db2", - "DBFilesClient\\ItemSubClassMask.db2", - "DBFilesClient\\ItemUpgrade.db2", - "DBFilesClient\\ItemVisuals.db2", - "DBFilesClient\\ItemXBonusTree.db2", - "DBFilesClient\\JournalEncounter.db2", - "DBFilesClient\\JournalEncounterCreature.db2", - "DBFilesClient\\JournalEncounterItem.db2", - "DBFilesClient\\JournalEncounterSection.db2", - "DBFilesClient\\JournalEncounterXDifficulty.db2", - "DBFilesClient\\JournalEncounterXMapLoc.db2", - "DBFilesClient\\JournalInstance.db2", - "DBFilesClient\\JournalItemXDifficulty.db2", - "DBFilesClient\\JournalSectionXDifficulty.db2", - "DBFilesClient\\JournalTier.db2", - "DBFilesClient\\JournalTierXInstance.db2", - "DBFilesClient\\Keychain.db2", - "DBFilesClient\\KeystoneAffix.db2", - "DBFilesClient\\LFGDungeonExpansion.db2", - "DBFilesClient\\LFGDungeonGroup.db2", - "DBFilesClient\\LFGDungeons.db2", - "DBFilesClient\\LFGRoleRequirement.db2", - "DBFilesClient\\LanguageWords.db2", - "DBFilesClient\\Languages.db2", - "DBFilesClient\\LfgDungeonsGroupingMap.db2", - "DBFilesClient\\Light.db2", - "DBFilesClient\\LightData.db2", - "DBFilesClient\\LightParams.db2", - "DBFilesClient\\LightSkybox.db2", - "DBFilesClient\\Lightning.db2", - "DBFilesClient\\LiquidMaterial.db2", - "DBFilesClient\\LiquidObject.db2", - "DBFilesClient\\LiquidType.db2", - "DBFilesClient\\LoadingScreenTaxiSplines.db2", - "DBFilesClient\\LoadingScreens.db2", - "DBFilesClient\\Locale.db2", - "DBFilesClient\\Location.db2", - "DBFilesClient\\Lock.db2", - "DBFilesClient\\LockType.db2", - "DBFilesClient\\LookAtController.db2", - "DBFilesClient\\MailTemplate.db2", - "DBFilesClient\\ManagedWorldState.db2", - "DBFilesClient\\ManagedWorldStateBuff.db2", - "DBFilesClient\\ManagedWorldStateInput.db2", - "DBFilesClient\\ManifestInterfaceActionIcon.db2", - "DBFilesClient\\ManifestInterfaceData.db2", - "DBFilesClient\\ManifestInterfaceItemIcon.db2", - "DBFilesClient\\ManifestInterfaceTOCData.db2", - "DBFilesClient\\ManifestMP3.db2", - "DBFilesClient\\Map.db2", - "DBFilesClient\\MapCelestialBody.db2", - "DBFilesClient\\MapChallengeMode.db2", - "DBFilesClient\\MapDifficulty.db2", - "DBFilesClient\\MapDifficultyXCondition.db2", - "DBFilesClient\\MapLoadingScreen.db2", - "DBFilesClient\\MarketingPromotionsXLocale.db2", - "DBFilesClient\\Material.db2", - "DBFilesClient\\MinorTalent.db2", - "DBFilesClient\\MissileTargeting.db2", - "DBFilesClient\\ModelAnimCloakDampening.db2", - "DBFilesClient\\ModelFileData.db2", - "DBFilesClient\\ModelRibbonQuality.db2", - "DBFilesClient\\ModifierTree.db2", - "DBFilesClient\\Mount.db2", - "DBFilesClient\\MountCapability.db2", - "DBFilesClient\\MountTypeXCapability.db2", - "DBFilesClient\\MountXDisplay.db2", - "DBFilesClient\\Movie.db2", - "DBFilesClient\\MovieFileData.db2", - "DBFilesClient\\MovieVariation.db2", - "DBFilesClient\\MultiStateProperties.db2", - "DBFilesClient\\MultiTransitionProperties.db2", - "DBFilesClient\\MythicPlusSeasonRewardLevels.db2", - "DBFilesClient\\NPCModelItemSlotDisplayInfo.db2", - "DBFilesClient\\NPCSounds.db2", - "DBFilesClient\\NameGen.db2", - "DBFilesClient\\NamesProfanity.db2", - "DBFilesClient\\NamesReserved.db2", - "DBFilesClient\\NamesReservedLocale.db2", - "DBFilesClient\\NumTalentsAtLevel.db2", - "DBFilesClient\\ObjectEffect.db2", - "DBFilesClient\\ObjectEffectModifier.db2", - "DBFilesClient\\ObjectEffectPackageElem.db2", - "DBFilesClient\\Occluder.db2", - "DBFilesClient\\OccluderLocation.db2", - "DBFilesClient\\OccluderNode.db2", - "DBFilesClient\\OutlineEffect.db2", - "DBFilesClient\\OverrideSpellData.db2", - "DBFilesClient\\PVPBracketTypes.db2", - "DBFilesClient\\PVPDifficulty.db2", - "DBFilesClient\\PVPItem.db2", - "DBFilesClient\\PageTextMaterial.db2", - "DBFilesClient\\PaperDollItemFrame.db2", - "DBFilesClient\\ParagonReputation.db2", - "DBFilesClient\\ParticleColor.db2", - "DBFilesClient\\ParticulateSound.db2", - "DBFilesClient\\Path.db2", - "DBFilesClient\\PathNode.db2", - "DBFilesClient\\PathNodeProperty.db2", - "DBFilesClient\\PathProperty.db2", - "DBFilesClient\\Phase.db2", - "DBFilesClient\\PhaseShiftZoneSounds.db2", - "DBFilesClient\\PhaseXPhaseGroup.db2", - "DBFilesClient\\PlayerCondition.db2", - "DBFilesClient\\Positioner.db2", - "DBFilesClient\\PositionerState.db2", - "DBFilesClient\\PositionerStateEntry.db2", - "DBFilesClient\\PowerDisplay.db2", - "DBFilesClient\\PowerType.db2", - "DBFilesClient\\PrestigeLevelInfo.db2", - "DBFilesClient\\PvpScalingEffect.db2", - "DBFilesClient\\PvpScalingEffectType.db2", - "DBFilesClient\\PvpTalent.db2", - "DBFilesClient\\PvpTalentCategory.db2", - "DBFilesClient\\PvpTalentSlotUnlock.db2", - "DBFilesClient\\PvpTier.db2", - "DBFilesClient\\QuestFactionReward.db2", - "DBFilesClient\\QuestFeedbackEffect.db2", - "DBFilesClient\\QuestInfo.db2", - "DBFilesClient\\QuestLine.db2", - "DBFilesClient\\QuestLineXQuest.db2", - "DBFilesClient\\QuestMoneyReward.db2", - "DBFilesClient\\QuestObjective.db2", - "DBFilesClient\\QuestPOIBlob.db2", - "DBFilesClient\\QuestPOIPoint.db2", - "DBFilesClient\\QuestPackageItem.db2", - "DBFilesClient\\QuestSort.db2", - "DBFilesClient\\QuestV2.db2", - "DBFilesClient\\QuestV2CliTask.db2", - "DBFilesClient\\QuestXGroupActivity.db2", - "DBFilesClient\\QuestXP.db2", - "DBFilesClient\\RandPropPoints.db2", - "DBFilesClient\\RelicSlotTierRequirement.db2", - "DBFilesClient\\RelicTalent.db2", - "DBFilesClient\\ResearchBranch.db2", - "DBFilesClient\\ResearchField.db2", - "DBFilesClient\\ResearchProject.db2", - "DBFilesClient\\ResearchSite.db2", - "DBFilesClient\\Resistances.db2", - "DBFilesClient\\RewardPack.db2", - "DBFilesClient\\RewardPackXCurrencyType.db2", - "DBFilesClient\\RewardPackXItem.db2", - "DBFilesClient\\RibbonQuality.db2", - "DBFilesClient\\RulesetItemUpgrade.db2", - "DBFilesClient\\SDReplacementModel.db2", - "DBFilesClient\\ScalingStatDistribution.db2", - "DBFilesClient\\Scenario.db2", - "DBFilesClient\\ScenarioEventEntry.db2", - "DBFilesClient\\ScenarioStep.db2", - "DBFilesClient\\SceneScript.db2", - "DBFilesClient\\SceneScriptGlobalText.db2", - "DBFilesClient\\SceneScriptPackage.db2", - "DBFilesClient\\SceneScriptPackageMember.db2", - "DBFilesClient\\SceneScriptText.db2", - "DBFilesClient\\ScheduledInterval.db2", - "DBFilesClient\\ScheduledWorldState.db2", - "DBFilesClient\\ScheduledWorldStateGroup.db2", - "DBFilesClient\\ScheduledWorldStateXUniqCat.db2", - "DBFilesClient\\ScreenEffect.db2", - "DBFilesClient\\ScreenLocation.db2", - "DBFilesClient\\SeamlessSite.db2", - "DBFilesClient\\ServerMessages.db2", - "DBFilesClient\\ShadowyEffect.db2", - "DBFilesClient\\SiegeableProperties.db2", - "DBFilesClient\\SkillLine.db2", - "DBFilesClient\\SkillLineAbility.db2", - "DBFilesClient\\SkillRaceClassInfo.db2", - "DBFilesClient\\SoundAmbience.db2", - "DBFilesClient\\SoundAmbienceFlavor.db2", - "DBFilesClient\\SoundBus.db2", - "DBFilesClient\\SoundBusOverride.db2", - "DBFilesClient\\SoundEmitterPillPoints.db2", - "DBFilesClient\\SoundEmitters.db2", - "DBFilesClient\\SoundEnvelope.db2", - "DBFilesClient\\SoundFilter.db2", - "DBFilesClient\\SoundFilterElem.db2", - "DBFilesClient\\SoundKit.db2", - "DBFilesClient\\SoundKitAdvanced.db2", - "DBFilesClient\\SoundKitChild.db2", - "DBFilesClient\\SoundKitEntry.db2", - "DBFilesClient\\SoundKitFallback.db2", - "DBFilesClient\\SoundKitName.db2", - "DBFilesClient\\SoundOverride.db2", - "DBFilesClient\\SoundProviderPreferences.db2", - "DBFilesClient\\SourceInfo.db2", - "DBFilesClient\\SpamMessages.db2", - "DBFilesClient\\SpecSetMember.db2", - "DBFilesClient\\SpecializationSpells.db2", - "DBFilesClient\\SpecializationSpellsDisplay.db2", - "DBFilesClient\\Spell.db2", - "DBFilesClient\\SpellActionBarPref.db2", - "DBFilesClient\\SpellActivationOverlay.db2", - "DBFilesClient\\SpellAuraOptions.db2", - "DBFilesClient\\SpellAuraRestrictions.db2", - "DBFilesClient\\SpellAuraVisXChrSpec.db2", - "DBFilesClient\\SpellAuraVisibility.db2", - "DBFilesClient\\SpellCastTimes.db2", - "DBFilesClient\\SpellCastingRequirements.db2", - "DBFilesClient\\SpellCategories.db2", - "DBFilesClient\\SpellCategory.db2", - "DBFilesClient\\SpellChainEffects.db2", - "DBFilesClient\\SpellClassOptions.db2", - "DBFilesClient\\SpellCooldowns.db2", - "DBFilesClient\\SpellDescriptionVariables.db2", - "DBFilesClient\\SpellDispelType.db2", - "DBFilesClient\\SpellDuration.db2", - "DBFilesClient\\SpellEffect.db2", - "DBFilesClient\\SpellEffectAutoDescription.db2", - "DBFilesClient\\SpellEffectEmission.db2", - "DBFilesClient\\SpellEquippedItems.db2", - "DBFilesClient\\SpellFlyout.db2", - "DBFilesClient\\SpellFlyoutItem.db2", - "DBFilesClient\\SpellFocusObject.db2", - "DBFilesClient\\SpellInterrupts.db2", - "DBFilesClient\\SpellItemEnchantment.db2", - "DBFilesClient\\SpellItemEnchantmentCondition.db2", - "DBFilesClient\\SpellKeyboundOverride.db2", - "DBFilesClient\\SpellLabel.db2", - "DBFilesClient\\SpellLearnSpell.db2", - "DBFilesClient\\SpellLevels.db2", - "DBFilesClient\\SpellMechanic.db2", - "DBFilesClient\\SpellMisc.db2", - "DBFilesClient\\SpellMissile.db2", - "DBFilesClient\\SpellMissileMotion.db2", - "DBFilesClient\\SpellName.db2", - "DBFilesClient\\SpellPower.db2", - "DBFilesClient\\SpellPowerDifficulty.db2", - "DBFilesClient\\SpellProceduralEffect.db2", - "DBFilesClient\\SpellProcsPerMinute.db2", - "DBFilesClient\\SpellProcsPerMinuteMod.db2", - "DBFilesClient\\SpellRadius.db2", - "DBFilesClient\\SpellRange.db2", - "DBFilesClient\\SpellReagents.db2", - "DBFilesClient\\SpellReagentsCurrency.db2", - "DBFilesClient\\SpellScaling.db2", - "DBFilesClient\\SpellShapeshift.db2", - "DBFilesClient\\SpellShapeshiftForm.db2", - "DBFilesClient\\SpellSpecialUnitEffect.db2", - "DBFilesClient\\SpellTargetRestrictions.db2", - "DBFilesClient\\SpellTotems.db2", - "DBFilesClient\\SpellVisual.db2", - "DBFilesClient\\SpellVisualAnim.db2", - "DBFilesClient\\SpellVisualColorEffect.db2", - "DBFilesClient\\SpellVisualEffectName.db2", - "DBFilesClient\\SpellVisualEvent.db2", - "DBFilesClient\\SpellVisualKit.db2", - "DBFilesClient\\SpellVisualKitAreaModel.db2", - "DBFilesClient\\SpellVisualKitEffect.db2", - "DBFilesClient\\SpellVisualKitModelAttach.db2", - "DBFilesClient\\SpellVisualMissile.db2", - "DBFilesClient\\SpellXDescriptionVariables.db2", - "DBFilesClient\\SpellXSpellVisual.db2", - "DBFilesClient\\StartupFiles.db2", - "DBFilesClient\\Startup_Strings.db2", - "DBFilesClient\\Stationery.db2", - "DBFilesClient\\SummonProperties.db2", - "DBFilesClient\\TactKey.db2", - "DBFilesClient\\TactKeyLookup.db2", - "DBFilesClient\\Talent.db2", - "DBFilesClient\\TaxiNodes.db2", - "DBFilesClient\\TaxiPath.db2", - "DBFilesClient\\TaxiPathNode.db2", - "DBFilesClient\\TerrainMaterial.db2", - "DBFilesClient\\TerrainType.db2", - "DBFilesClient\\TerrainTypeSounds.db2", - "DBFilesClient\\TextureBlendSet.db2", - "DBFilesClient\\TextureFileData.db2", - "DBFilesClient\\TotemCategory.db2", - "DBFilesClient\\Toy.db2", - "DBFilesClient\\TradeSkillCategory.db2", - "DBFilesClient\\TradeSkillItem.db2", - "DBFilesClient\\TransformMatrix.db2", - "DBFilesClient\\TransmogHoliday.db2", - "DBFilesClient\\TransmogSet.db2", - "DBFilesClient\\TransmogSetGroup.db2", - "DBFilesClient\\TransmogSetItem.db2", - "DBFilesClient\\TransportAnimation.db2", - "DBFilesClient\\TransportPhysics.db2", - "DBFilesClient\\TransportRotation.db2", - "DBFilesClient\\Trophy.db2", - "DBFilesClient\\UIExpansionDisplayInfo.db2", - "DBFilesClient\\UIExpansionDisplayInfoIcon.db2", - "DBFilesClient\\UiCamFbackTransmogChrRace.db2", - "DBFilesClient\\UiCamFbackTransmogWeapon.db2", - "DBFilesClient\\UiCamera.db2", - "DBFilesClient\\UiCameraType.db2", - "DBFilesClient\\UiCanvas.db2", - "DBFilesClient\\UiMap.db2", - "DBFilesClient\\UiMapArt.db2", - "DBFilesClient\\UiMapArtStyleLayer.db2", - "DBFilesClient\\UiMapArtTile.db2", - "DBFilesClient\\UiMapAssignment.db2", - "DBFilesClient\\UiMapFogOfWar.db2", - "DBFilesClient\\UiMapFogOfWarVisualization.db2", - "DBFilesClient\\UiMapGroupMember.db2", - "DBFilesClient\\UiMapLink.db2", - "DBFilesClient\\UiMapXMapArt.db2", - "DBFilesClient\\UiModelScene.db2", - "DBFilesClient\\UiModelSceneActor.db2", - "DBFilesClient\\UiModelSceneActorDisplay.db2", - "DBFilesClient\\UiModelSceneCamera.db2", - "DBFilesClient\\UiPartyPose.db2", - "DBFilesClient\\UiTextureAtlas.db2", - "DBFilesClient\\UiTextureAtlasElement.db2", - "DBFilesClient\\UiTextureAtlasMember.db2", - "DBFilesClient\\UiTextureKit.db2", - "DBFilesClient\\UiWidget.db2", - "DBFilesClient\\UiWidgetConstantSource.db2", - "DBFilesClient\\UiWidgetDataSource.db2", - "DBFilesClient\\UiWidgetStringSource.db2", - "DBFilesClient\\UiWidgetVisualization.db2", - "DBFilesClient\\UnitBlood.db2", - "DBFilesClient\\UnitBloodLevels.db2", - "DBFilesClient\\UnitCondition.db2", - "DBFilesClient\\UnitPowerBar.db2", - "DBFilesClient\\Vehicle.db2", - "DBFilesClient\\VehicleSeat.db2", - "DBFilesClient\\VehicleUIIndSeat.db2", - "DBFilesClient\\VehicleUIIndicator.db2", - "DBFilesClient\\Vignette.db2", - "DBFilesClient\\VirtualAttachment.db2", - "DBFilesClient\\VirtualAttachmentCustomization.db2", - "DBFilesClient\\VocalUISounds.db2", - "DBFilesClient\\WMOAreaTable.db2", - "DBFilesClient\\WMOMinimapTexture.db2", - "DBFilesClient\\WbAccessControlList.db2", - "DBFilesClient\\WbCertWhitelist.db2", - "DBFilesClient\\WeaponImpactSounds.db2", - "DBFilesClient\\WeaponSwingSounds2.db2", - "DBFilesClient\\WeaponTrail.db2", - "DBFilesClient\\WeaponTrailModelDef.db2", - "DBFilesClient\\WeaponTrailParam.db2", - "DBFilesClient\\Weather.db2", - "DBFilesClient\\WeatherXParticulate.db2", - "DBFilesClient\\WindSettings.db2", - "DBFilesClient\\WorldBossLockout.db2", - "DBFilesClient\\WorldChunkSounds.db2", - "DBFilesClient\\WorldEffect.db2", - "DBFilesClient\\WorldElapsedTimer.db2", - "DBFilesClient\\WorldMapOverlay.db2", - "DBFilesClient\\WorldMapOverlayTile.db2", - "DBFilesClient\\WorldSafeLocs.db2", - "DBFilesClient\\WorldStateExpression.db2", - "DBFilesClient\\WorldStateUI.db2", - "DBFilesClient\\WorldStateZoneSounds.db2", - "DBFilesClient\\World_PVP_Area.db2", - "DBFilesClient\\ZoneIntroMusicTable.db2", - "DBFilesClient\\ZoneLight.db2", - "DBFilesClient\\ZoneLightPoint.db2", - "DBFilesClient\\ZoneMusic.db2", - "DBFilesClient\\ZoneStory.db2", - nullptr // terminator + uint32 FileDataId; + char const* Name; +}; + +DB2FileInfo const DBFilesClientList[] = +{ + { 1260179, "Achievement.db2" }, + { 1324299, "Achievement_Category.db2" }, + { 1115949, "AdventureJournal.db2" }, + { 1267070, "AdventureMapPOI.db2" }, + { 1710672, "AlliedRace.db2" }, + { 1720145, "AlliedRaceRacialAbility.db2" }, + { 1304323, "AnimKit.db2" }, + { 1375433, "AnimKitBoneSet.db2" }, + { 1266937, "AnimKitBoneSetAlias.db2" }, + { 1300872, "AnimKitConfig.db2" }, + { 1300873, "AnimKitConfigBoneSet.db2" }, + { 1266540, "AnimKitPriority.db2" }, + { 1559807, "AnimKitReplacement.db2" }, + { 1304324, "AnimKitSegment.db2" }, + { 1301100, "AnimReplacement.db2" }, + { 1284817, "AnimReplacementSet.db2" }, + { 1375431, "AnimationData.db2" }, + { 2140223, "AoiBox.db2" }, + { 2123730, "AreaConditionalData.db2" }, + { 1537162, "AreaFarClipOverride.db2" }, + { 1093406, "AreaGroupMember.db2" }, + { 1000630, "AreaPOI.db2" }, + { 1000631, "AreaPOIState.db2" }, + { 1353545, "AreaTable.db2" }, + { 1354401, "AreaTrigger.db2" }, + { 1352378, "AreaTriggerActionSet.db2" }, + { 1332554, "AreaTriggerBox.db2" }, + { 1937227, "AreaTriggerCreateProperties.db2" }, + { 1121943, "AreaTriggerCylinder.db2" }, + { 1315630, "AreaTriggerSphere.db2" }, + { 1284818, "ArmorLocation.db2" }, + { 1007934, "Artifact.db2" }, + { 1116407, "ArtifactAppearance.db2" }, + { 1116408, "ArtifactAppearanceSet.db2" }, + { 1376210, "ArtifactCategory.db2" }, + { 2029780, "ArtifactItemToTransmog.db2" }, + { 1007937, "ArtifactPower.db2" }, + { 1133731, "ArtifactPowerLink.db2" }, + { 1597467, "ArtifactPowerPicker.db2" }, + { 1261405, "ArtifactPowerRank.db2" }, + { 1036203, "ArtifactQuestXP.db2" }, + { 1600114, "ArtifactTier.db2" }, + { 1094540, "ArtifactUnlock.db2" }, + { 1237439, "AuctionHouse.db2" }, + { 1846046, "AzeriteEmpoweredItem.db2" }, + { 1846048, "AzeriteItem.db2" }, + { 1915395, "AzeriteItemMilestonePower.db2" }, + { 1846044, "AzeritePower.db2" }, + { 1846040, "AzeritePowerSetMember.db2" }, + { 1846043, "AzeriteTierUnlock.db2" }, + { 2446322, "AzeriteTierUnlockSet.db2" }, + { 2564314, "AzeriteUnlockMapping.db2" }, + { 1284819, "BankBagSlotPrices.db2" }, + { 1373459, "BannedAddons.db2" }, + { 1237437, "BarberShopStyle.db2" }, + { 2499852, "BarrageEffect.db2" }, + { 841610, "BattlePetAbility.db2" }, + { 801575, "BattlePetAbilityEffect.db2" }, + { 801576, "BattlePetAbilityState.db2" }, + { 801577, "BattlePetAbilityTurn.db2" }, + { 801578, "BattlePetBreedQuality.db2" }, + { 801579, "BattlePetBreedState.db2" }, + { 1802988, "BattlePetDisplayOverride.db2" }, + { 801580, "BattlePetEffectProperties.db2" }, + { 841648, "BattlePetNPCTeamMember.db2" }, + { 841622, "BattlePetSpecies.db2" }, + { 801581, "BattlePetSpeciesState.db2" }, + { 801582, "BattlePetSpeciesXAbility.db2" }, + { 801583, "BattlePetState.db2" }, + { 801584, "BattlePetVisual.db2" }, + { 1360265, "BattlemasterList.db2" }, + { 1525607, "BeamEffect.db2" }, + { 1467254, "BoneWindModifierModel.db2" }, + { 1416756, "BoneWindModifiers.db2" }, + { 1983274, "BonusRoll.db2" }, + { 1367866, "Bounty.db2" }, + { 1367865, "BountySet.db2" }, + { 841604, "BroadcastText.db2" }, + { 2166900, "BroadcastTextDuration.db2" }, + { 1117695, "CameraEffect.db2" }, + { 1117696, "CameraEffectEntry.db2" }, + { 1343308, "CameraMode.db2" }, + { 2031607, "Campaign.db2" }, + { 2031611, "CampaignXCondition.db2" }, + { 2036722, "CampaignXQuestLine.db2" }, + { 1283018, "CastableRaidBuffs.db2" }, + { 1592470, "CelestialBody.db2" }, + { 1068162, "Cfg_Categories.db2" }, + { 1080949, "Cfg_Configs.db2" }, + { 1082876, "Cfg_Regions.db2" }, + { 1343386, "CharBaseInfo.db2" }, + { 1375798, "CharBaseSection.db2" }, + { 1360262, "CharComponentTextureLayouts.db2" }, + { 1360263, "CharComponentTextureSections.db2" }, + { 1256914, "CharHairGeosets.db2" }, + { 2388725, "CharSectionCondition.db2" }, + { 1365366, "CharSections.db2" }, + { 972425, "CharShipment.db2" }, + { 972405, "CharShipmentContainer.db2" }, + { 1237591, "CharStartOutfit.db2" }, + { 1349054, "CharTitles.db2" }, + { 1028733, "CharacterFaceBoneSet.db2" }, + { 1369752, "CharacterFacialHairStyles.db2" }, + { 1344281, "CharacterLoadout.db2" }, + { 1302846, "CharacterLoadoutItem.db2" }, + { 1815417, "CharacterServiceInfo.db2" }, + { 1345278, "ChatChannels.db2" }, + { 1117084, "ChatProfanity.db2" }, + { 1306188, "ChrClassRaceSex.db2" }, + { 1267497, "ChrClassTitle.db2" }, + { 1316515, "ChrClassUIDisplay.db2" }, + { 1267498, "ChrClassVillain.db2" }, + { 1361031, "ChrClasses.db2" }, + { 1121420, "ChrClassesXPowerTypes.db2" }, + { 1611874, "ChrCustomization.db2" }, + { 1305311, "ChrRaces.db2" }, + { 1343390, "ChrSpecialization.db2" }, + { 984529, "ChrUpgradeBucket.db2" }, + { 984528, "ChrUpgradeBucketSpell.db2" }, + { 984530, "ChrUpgradeTier.db2" }, + { 1294214, "CinematicCamera.db2" }, + { 1134583, "CinematicSequences.db2" }, + { 1939843, "ClientSceneEffect.db2" }, + { 1465903, "CloakDampening.db2" }, + { 2175218, "CloneEffect.db2" }, + { 1120958, "CombatCondition.db2" }, + { 1664251, "CommentatorStartLocation.db2" }, + { 1661584, "CommentatorTrackedCooldown.db2" }, + { 2098645, "CommunityIcon.db2" }, + { 1349053, "ComponentModelFileData.db2" }, + { 1278239, "ComponentTextureFileData.db2" }, + { 1709409, "ConfigurationWarning.db2" }, + { 1962930, "ContentTuning.db2" }, + { 1587153, "Contribution.db2" }, + { 2143633, "ContributionStyle.db2" }, + { 2143634, "ContributionStyleContainer.db2" }, + { 1260801, "ConversationLine.db2" }, + { 841631, "Creature.db2" }, + { 879282, "CreatureDifficulty.db2" }, + { 1146692, "CreatureDispXUiCamera.db2" }, + { 1108759, "CreatureDisplayInfo.db2" }, + { 1332686, "CreatureDisplayInfoCond.db2" }, + { 1586882, "CreatureDisplayInfoEvt.db2" }, + { 1264997, "CreatureDisplayInfoExtra.db2" }, + { 1720141, "CreatureDisplayInfoGeosetData.db2" }, + { 1146698, "CreatureDisplayInfoTrn.db2" }, + { 1351351, "CreatureFamily.db2" }, + { 1131322, "CreatureImmunities.db2" }, + { 1365368, "CreatureModelData.db2" }, + { 1125666, "CreatureMovementInfo.db2" }, + { 1344466, "CreatureSoundData.db2" }, + { 1131315, "CreatureType.db2" }, + { 1587158, "CreatureXContribution.db2" }, + { 1864302, "CreatureXDisplayInfo.db2" }, + { 1263817, "Criteria.db2" }, + { 1263818, "CriteriaTree.db2" }, + { 1345969, "CriteriaTreeXEffect.db2" }, + { 1125667, "CurrencyCategory.db2" }, + { 1934603, "CurrencyContainer.db2" }, + { 1095531, "CurrencyTypes.db2" }, + { 892585, "Curve.db2" }, + { 892586, "CurvePoint.db2" }, + { 1279415, "DeathThudLookups.db2" }, + { 1278176, "DecalProperties.db2" }, + { 1279100, "DeclinedWord.db2" }, + { 1279099, "DeclinedWordCases.db2" }, + { 1122116, "DestructibleModelData.db2" }, + { 922722, "DeviceBlacklist.db2" }, + { 925422, "DeviceDefaultSettings.db2" }, + { 1352127, "Difficulty.db2" }, + { 1304325, "DissolveEffect.db2" }, + { 922720, "DriverBlacklist.db2" }, + { 1347279, "DungeonEncounter.db2" }, + { 1283019, "DurabilityCosts.db2" }, + { 1130268, "DurabilityQuality.db2" }, + { 1387381, "EdgeGlowEffect.db2" }, + { 1343602, "Emotes.db2" }, + { 1347273, "EmotesText.db2" }, + { 1283024, "EmotesTextData.db2" }, + { 1286524, "EmotesTextSound.db2" }, + { 1278398, "EnvironmentalDamage.db2" }, + { 1343313, "Exhaustion.db2" }, + { 1937326, "ExpectedStat.db2" }, + { 1969773, "ExpectedStatMod.db2" }, + { 1361972, "Faction.db2" }, + { 1343595, "FactionGroup.db2" }, + { 1361579, "FactionTemplate.db2" }, + { 1308056, "FootprintTextures.db2" }, + { 1267647, "FootstepTerrainLookup.db2" }, + { 1237638, "FriendshipRepReaction.db2" }, + { 1237639, "FriendshipReputation.db2" }, + { 1348282, "FullScreenEffect.db2" }, + { 1283025, "GMSurveyAnswers.db2" }, + { 1278177, "GMSurveyCurrentSurvey.db2" }, + { 1278178, "GMSurveyQuestions.db2" }, + { 1283020, "GMSurveySurveys.db2" }, + { 1266737, "GameObjectArtKit.db2" }, + { 1302847, "GameObjectDiffAnimMap.db2" }, + { 1266277, "GameObjectDisplayInfo.db2" }, + { 1345272, "GameObjectDisplayInfoXSoundKit.db2" }, + { 841620, "GameObjects.db2" }, + { 1368021, "GameTips.db2" }, + { 966238, "GarrAbility.db2" }, + { 1020248, "GarrAbilityCategory.db2" }, + { 966241, "GarrAbilityEffect.db2" }, + { 929747, "GarrBuilding.db2" }, + { 943937, "GarrBuildingDoodadSet.db2" }, + { 983298, "GarrBuildingPlotInst.db2" }, + { 981570, "GarrClassSpec.db2" }, + { 1380674, "GarrClassSpecPlayerCond.db2" }, + { 975304, "GarrEncounter.db2" }, + { 1354772, "GarrEncounterSetXEncounter.db2" }, + { 967961, "GarrEncounterXMechanic.db2" }, + { 981569, "GarrFollItemSetMember.db2" }, + { 1345970, "GarrFollSupportSpell.db2" }, + { 949906, "GarrFollower.db2" }, + { 970979, "GarrFollowerLevelXP.db2" }, + { 1027793, "GarrFollowerQuality.db2" }, + { 1361029, "GarrFollowerSetXFollower.db2" }, + { 1118784, "GarrFollowerType.db2" }, + { 1412636, "GarrFollowerUICreature.db2" }, + { 968468, "GarrFollowerXAbility.db2" }, + { 1572314, "GarrItemLevelUpgradeData.db2" }, + { 967963, "GarrMechanic.db2" }, + { 1391531, "GarrMechanicSetXMechanic.db2" }, + { 967964, "GarrMechanicType.db2" }, + { 967962, "GarrMission.db2" }, + { 1125220, "GarrMissionTexture.db2" }, + { 984174, "GarrMissionType.db2" }, + { 967960, "GarrMissionXEncounter.db2" }, + { 1359096, "GarrMissionXFollower.db2" }, + { 1138458, "GarrMssnBonusAbility.db2" }, + { 937634, "GarrPlot.db2" }, + { 929743, "GarrPlotBuilding.db2" }, + { 929742, "GarrPlotInstance.db2" }, + { 937635, "GarrPlotUICategory.db2" }, + { 939295, "GarrSiteLevel.db2" }, + { 940404, "GarrSiteLevelPlotInst.db2" }, + { 937647, "GarrSpecialization.db2" }, + { 1416758, "GarrString.db2" }, + { 1361032, "GarrTalent.db2" }, + { 1361030, "GarrTalentTree.db2" }, + { 1333161, "GarrType.db2" }, + { 976037, "GarrUiAnimClassInfo.db2" }, + { 976035, "GarrUiAnimRaceInfo.db2" }, + { 1343604, "GemProperties.db2" }, + { 1394440, "GlobalStrings.db2" }, + { 1270147, "GlyphBindableSpell.db2" }, + { 948546, "GlyphExclusiveCategory.db2" }, + { 1345274, "GlyphProperties.db2" }, + { 948496, "GlyphRequiredSpec.db2" }, + { 2433582, "GradientEffect.db2" }, + { 1308057, "GroundEffectDoodad.db2" }, + { 1308499, "GroundEffectTexture.db2" }, + { 974813, "GroupFinderActivity.db2" }, + { 974814, "GroupFinderActivityGrp.db2" }, + { 974812, "GroupFinderCategory.db2" }, + { 1286526, "GuildColorBackground.db2" }, + { 1286527, "GuildColorBorder.db2" }, + { 1286525, "GuildColorEmblem.db2" }, + { 2734754, "GuildEmblem.db2" }, + { 1135238, "GuildPerkSpells.db2" }, + { 1097696, "Heirloom.db2" }, + { 1348283, "HelmetAnimScaling.db2" }, + { 2821752, "HelmetGeosetData.db2" }, + { 996358, "HighlightColor.db2" }, + { 996360, "HolidayDescriptions.db2" }, + { 996359, "HolidayNames.db2" }, + { 996357, "Holidays.db2" }, + { 1995523, "Hotfixes.db2" }, + { 1121229, "ImportPriceArmor.db2" }, + { 1121228, "ImportPriceQuality.db2" }, + { 1121227, "ImportPriceShield.db2" }, + { 1121230, "ImportPriceWeapon.db2" }, + { 1336651, "InvasionClientData.db2" }, + { 841626, "Item.db2" }, + { 982462, "ItemAppearance.db2" }, + { 1248126, "ItemAppearanceXUiCamera.db2" }, + { 1283021, "ItemArmorQuality.db2" }, + { 1277741, "ItemArmorShield.db2" }, + { 1283022, "ItemArmorTotal.db2" }, + { 1278179, "ItemBagFamily.db2" }, + { 959070, "ItemBonus.db2" }, + { 1320358, "ItemBonusListLevelDelta.db2" }, + { 987134, "ItemBonusTreeNode.db2" }, + { 1247926, "ItemChildEquipment.db2" }, + { 1140189, "ItemClass.db2" }, + { 1405665, "ItemContextPickerEntry.db2" }, + { 801670, "ItemCurrencyCost.db2" }, + { 1277740, "ItemDamageAmmo.db2" }, + { 1277743, "ItemDamageOneHand.db2" }, + { 1277739, "ItemDamageOneHandCaster.db2" }, + { 1277738, "ItemDamageTwoHand.db2" }, + { 1277742, "ItemDamageTwoHandCaster.db2" }, + { 1134087, "ItemDisenchantLoot.db2" }, + { 1266429, "ItemDisplayInfo.db2" }, + { 1280614, "ItemDisplayInfoMaterialRes.db2" }, + { 1146690, "ItemDisplayXUiCamera.db2" }, + { 969941, "ItemEffect.db2" }, + { 801681, "ItemExtendedCost.db2" }, + { 2358574, "ItemFallbackVisual.db2" }, + { 1283023, "ItemGroupSounds.db2" }, + { 1588911, "ItemLevelSelector.db2" }, + { 1624937, "ItemLevelSelectorQuality.db2" }, + { 1624933, "ItemLevelSelectorQualitySet.db2" }, + { 1237440, "ItemLimitCategory.db2" }, + { 1378590, "ItemLimitCategoryCondition.db2" }, + { 982457, "ItemModifiedAppearance.db2" }, + { 1278399, "ItemModifiedAppearanceExtra.db2" }, + { 1332559, "ItemNameDescription.db2" }, + { 1302240, "ItemPetFood.db2" }, + { 1121231, "ItemPriceBase.db2" }, + { 1270315, "ItemRangedDisplayInfo.db2" }, + { 1273408, "ItemSearchName.db2" }, + { 1343609, "ItemSet.db2" }, + { 1314689, "ItemSetSpell.db2" }, + { 1572924, "ItemSparse.db2" }, + { 1135120, "ItemSpec.db2" }, + { 1134576, "ItemSpecOverride.db2" }, + { 1261604, "ItemSubClass.db2" }, + { 1302852, "ItemSubClassMask.db2" }, + { 801687, "ItemUpgrade.db2" }, + { 1343605, "ItemVisuals.db2" }, + { 987133, "ItemXBonusTree.db2" }, + { 1240336, "JournalEncounter.db2" }, + { 1301155, "JournalEncounterCreature.db2" }, + { 1344467, "JournalEncounterItem.db2" }, + { 1134413, "JournalEncounterSection.db2" }, + { 1121901, "JournalEncounterXDifficulty.db2" }, + { 1722928, "JournalEncounterXMapLoc.db2" }, + { 1237438, "JournalInstance.db2" }, + { 1277744, "JournalItemXDifficulty.db2" }, + { 1121900, "JournalSectionXDifficulty.db2" }, + { 1349056, "JournalTier.db2" }, + { 1285009, "JournalTierXInstance.db2" }, + { 801693, "Keychain.db2" }, + { 1344761, "KeystoneAffix.db2" }, + { 1343606, "LFGDungeonExpansion.db2" }, + { 1135058, "LFGDungeonGroup.db2" }, + { 1361033, "LFGDungeons.db2" }, + { 982805, "LFGRoleRequirement.db2" }, + { 984702, "LanguageWords.db2" }, + { 1135325, "Languages.db2" }, + { 1339818, "LfgDungeonsGroupingMap.db2" }, + { 1375579, "Light.db2" }, + { 1375580, "LightData.db2" }, + { 1334669, "LightParams.db2" }, + { 1308501, "LightSkybox.db2" }, + { 2003383, "Lightning.db2" }, + { 1132538, "LiquidMaterial.db2" }, + { 1308058, "LiquidObject.db2" }, + { 1371380, "LiquidType.db2" }, + { 2261065, "LiquidTypeXTexture.db2" }, + { 1302239, "LoadingScreenTaxiSplines.db2" }, + { 1266541, "LoadingScreens.db2" }, + { 801706, "Locale.db2" }, + { 801707, "Location.db2" }, + { 1343608, "Lock.db2" }, + { 1284823, "LockType.db2" }, + { 1098785, "LookAtController.db2" }, + { 1240344, "MailTemplate.db2" }, + { 1587159, "ManagedWorldState.db2" }, + { 1587155, "ManagedWorldStateBuff.db2" }, + { 1587151, "ManagedWorldStateInput.db2" }, + { 1375803, "ManifestInterfaceActionIcon.db2" }, + { 1375801, "ManifestInterfaceData.db2" }, + { 1375804, "ManifestInterfaceItemIcon.db2" }, + { 1267335, "ManifestInterfaceTOCData.db2" }, + { 1375802, "ManifestMP3.db2" }, + { 1349477, "Map.db2" }, + { 1597466, "MapCelestialBody.db2" }, + { 801709, "MapChallengeMode.db2" }, + { 1367868, "MapDifficulty.db2" }, + { 1375435, "MapDifficultyXCondition.db2" }, + { 1719707, "MapLoadingScreen.db2" }, + { 801710, "MarketingPromotionsXLocale.db2" }, + { 1294217, "Material.db2" }, + { 1347274, "MinorTalent.db2" }, + { 1710117, "MissileTargeting.db2" }, + { 1465904, "ModelAnimCloakDampening.db2" }, + { 1337833, "ModelFileData.db2" }, + { 1399953, "ModelRibbonQuality.db2" }, + { 1267645, "ModifierTree.db2" }, + { 921760, "Mount.db2" }, + { 1114709, "MountCapability.db2" }, + { 1114715, "MountTypeXCapability.db2" }, + { 1576117, "MountXDisplay.db2" }, + { 1332556, "Movie.db2" }, + { 1301154, "MovieFileData.db2" }, + { 1339819, "MovieVariation.db2" }, + { 1965592, "MultiStateProperties.db2" }, + { 1965589, "MultiTransitionProperties.db2" }, + { 2400282, "MythicPlusSeason.db2" }, + { 2123783, "MythicPlusSeasonRewardLevels.db2" }, + { 1340661, "NPCModelItemSlotDisplayInfo.db2" }, + { 1282621, "NPCSounds.db2" }, + { 1122117, "NameGen.db2" }, + { 1117086, "NamesProfanity.db2" }, + { 1117085, "NamesReserved.db2" }, + { 1117087, "NamesReservedLocale.db2" }, + { 1953326, "NumTalentsAtLevel.db2" }, + { 1090577, "ObjectEffect.db2" }, + { 1090575, "ObjectEffectModifier.db2" }, + { 1090578, "ObjectEffectPackageElem.db2" }, + { 2066958, "Occluder.db2" }, + { 2115224, "OccluderLocation.db2" }, + { 2066959, "OccluderNode.db2" }, + { 1279739, "OutlineEffect.db2" }, + { 1002186, "OverrideSpellData.db2" }, + { 1394275, "PVPBracketTypes.db2" }, + { 1339820, "PVPDifficulty.db2" }, + { 972287, "PVPItem.db2" }, + { 1271600, "PageTextMaterial.db2" }, + { 1252503, "PaperDollItemFrame.db2" }, + { 1581183, "ParagonReputation.db2" }, + { 1284820, "ParticleColor.db2" }, + { 2053913, "ParticulateSound.db2" }, + { 801732, "Path.db2" }, + { 2428705, "PathEdge.db2" }, + { 801733, "PathNode.db2" }, + { 801734, "PathNodeProperty.db2" }, + { 801735, "PathProperty.db2" }, + { 1348558, "Phase.db2" }, + { 1267336, "PhaseShiftZoneSounds.db2" }, + { 987581, "PhaseXPhaseGroup.db2" }, + { 1045411, "PlayerCondition.db2" }, + { 1251523, "Positioner.db2" }, + { 1251506, "PositionerState.db2" }, + { 1251533, "PositionerStateEntry.db2" }, + { 1332557, "PowerDisplay.db2" }, + { 1266022, "PowerType.db2" }, + { 1275869, "PrestigeLevelInfo.db2" }, + { 1591100, "PvpScalingEffect.db2" }, + { 1591098, "PvpScalingEffectType.db2" }, + { 2470695, "PvpSeasonRewardLevels.db2" }, + { 1302853, "PvpTalent.db2" }, + { 1891534, "PvpTalentCategory.db2" }, + { 1950197, "PvpTalentSlotUnlock.db2" }, + { 2066871, "PvpTier.db2" }, + { 1282622, "QuestFactionReward.db2" }, + { 1343388, "QuestFeedbackEffect.db2" }, + { 1120960, "QuestInfo.db2" }, + { 973430, "QuestLine.db2" }, + { 973441, "QuestLineXQuest.db2" }, + { 1139047, "QuestMoneyReward.db2" }, + { 1251960, "QuestObjective.db2" }, + { 1251882, "QuestPOIBlob.db2" }, + { 1251883, "QuestPOIPoint.db2" }, + { 801743, "QuestPackageItem.db2" }, + { 1134585, "QuestSort.db2" }, + { 1139443, "QuestV2.db2" }, + { 1028735, "QuestV2CliTask.db2" }, + { 1573634, "QuestXGroupActivity.db2" }, + { 1139378, "QuestXP.db2" }, + { 1310245, "RandPropPoints.db2" }, + { 1716803, "RelicSlotTierRequirement.db2" }, + { 1671256, "RelicTalent.db2" }, + { 1133729, "ResearchBranch.db2" }, + { 1133711, "ResearchField.db2" }, + { 1134090, "ResearchProject.db2" }, + { 1134091, "ResearchSite.db2" }, + { 1135072, "Resistances.db2" }, + { 1307156, "RewardPack.db2" }, + { 1307153, "RewardPackXCurrencyType.db2" }, + { 1307155, "RewardPackXItem.db2" }, + { 1398908, "RibbonQuality.db2" }, + { 801749, "RulesetItemUpgrade.db2" }, + { 1712172, "SDReplacementModel.db2" }, + { 1141728, "ScalingStatDistribution.db2" }, + { 1139062, "Scenario.db2" }, + { 1141065, "ScenarioEventEntry.db2" }, + { 1132761, "ScenarioStep.db2" }, + { 801754, "SceneScript.db2" }, + { 1758036, "SceneScriptGlobalText.db2" }, + { 801755, "SceneScriptPackage.db2" }, + { 801756, "SceneScriptPackageMember.db2" }, + { 1758037, "SceneScriptText.db2" }, + { 1327082, "ScheduledInterval.db2" }, + { 1327083, "ScheduledWorldState.db2" }, + { 1327084, "ScheduledWorldStateGroup.db2" }, + { 1388724, "ScheduledWorldStateXUniqCat.db2" }, + { 1302849, "ScreenEffect.db2" }, + { 1279416, "ScreenLocation.db2" }, + { 1328719, "SeamlessSite.db2" }, + { 1301141, "ServerMessages.db2" }, + { 1239844, "ShadowyEffect.db2" }, + { 1954391, "SiegeableProperties.db2" }, + { 1240935, "SkillLine.db2" }, + { 1266278, "SkillLineAbility.db2" }, + { 1240406, "SkillRaceClassInfo.db2" }, + { 1310628, "SoundAmbience.db2" }, + { 1267065, "SoundAmbienceFlavor.db2" }, + { 1310246, "SoundBus.db2" }, + { 1598732, "SoundBusOverride.db2" }, + { 1092317, "SoundEmitterPillPoints.db2" }, + { 1092316, "SoundEmitters.db2" }, + { 1693131, "SoundEnvelope.db2" }, + { 1271601, "SoundFilter.db2" }, + { 1267066, "SoundFilterElem.db2" }, + { 1237434, "SoundKit.db2" }, + { 1237436, "SoundKitAdvanced.db2" }, + { 1307289, "SoundKitChild.db2" }, + { 1237435, "SoundKitEntry.db2" }, + { 1307288, "SoundKitFallback.db2" }, + { 1665033, "SoundKitName.db2" }, + { 1266542, "SoundOverride.db2" }, + { 1279417, "SoundProviderPreferences.db2" }, + { 1313612, "SourceInfo.db2" }, + { 1117088, "SpamMessages.db2" }, + { 2057624, "SpecSetMember.db2" }, + { 1240335, "SpecializationSpells.db2" }, + { 2067238, "SpecializationSpellsDisplay.db2" }, + { 1140089, "Spell.db2" }, + { 1019373, "SpellActionBarPref.db2" }, + { 1261603, "SpellActivationOverlay.db2" }, + { 1139952, "SpellAuraOptions.db2" }, + { 981566, "SpellAuraRestrictions.db2" }, + { 1280615, "SpellAuraVisXChrSpec.db2" }, + { 1280616, "SpellAuraVisibility.db2" }, + { 1134089, "SpellCastTimes.db2" }, + { 1002166, "SpellCastingRequirements.db2" }, + { 1139939, "SpellCategories.db2" }, + { 1280619, "SpellCategory.db2" }, + { 1343310, "SpellChainEffects.db2" }, + { 979663, "SpellClassOptions.db2" }, + { 2428696, "SpellClutterAreaEffectCounts.db2" }, + { 2428707, "SpellClutterFrameRates.db2" }, + { 2428708, "SpellClutterImpactModelCounts.db2" }, + { 2428697, "SpellClutterKitDistances.db2" }, + { 2428733, "SpellClutterMissileDist.db2" }, + { 2428698, "SpellClutterWeaponTrailDist.db2" }, + { 1139924, "SpellCooldowns.db2" }, + { 1140004, "SpellDescriptionVariables.db2" }, + { 1137829, "SpellDispelType.db2" }, + { 1137828, "SpellDuration.db2" }, + { 1140088, "SpellEffect.db2" }, + { 1888495, "SpellEffectAutoDescription.db2" }, + { 1310248, "SpellEffectEmission.db2" }, + { 1140011, "SpellEquippedItems.db2" }, + { 1146819, "SpellFlyout.db2" }, + { 1134085, "SpellFlyoutItem.db2" }, + { 1280620, "SpellFocusObject.db2" }, + { 1139906, "SpellInterrupts.db2" }, + { 1362771, "SpellItemEnchantment.db2" }, + { 1121834, "SpellItemEnchantmentCondition.db2" }, + { 1127327, "SpellKeyboundOverride.db2" }, + { 1347275, "SpellLabel.db2" }, + { 1001907, "SpellLearnSpell.db2" }, + { 1140079, "SpellLevels.db2" }, + { 1014438, "SpellMechanic.db2" }, + { 1003144, "SpellMisc.db2" }, + { 897956, "SpellMissile.db2" }, + { 897955, "SpellMissileMotion.db2" }, + { 1990283, "SpellName.db2" }, + { 2618823, "SpellOverrideName.db2" }, + { 982806, "SpellPower.db2" }, + { 982804, "SpellPowerDifficulty.db2" }, + { 1140477, "SpellProceduralEffect.db2" }, + { 1133526, "SpellProcsPerMinute.db2" }, + { 1133525, "SpellProcsPerMinuteMod.db2" }, + { 1134584, "SpellRadius.db2" }, + { 1146820, "SpellRange.db2" }, + { 841946, "SpellReagents.db2" }, + { 1135239, "SpellReagentsCurrency.db2" }, + { 1139940, "SpellScaling.db2" }, + { 1139929, "SpellShapeshift.db2" }, + { 1280618, "SpellShapeshiftForm.db2" }, + { 1268903, "SpellSpecialUnitEffect.db2" }, + { 1139993, "SpellTargetRestrictions.db2" }, + { 1002162, "SpellTotems.db2" }, + { 897952, "SpellVisual.db2" }, + { 1140479, "SpellVisualAnim.db2" }, + { 1094006, "SpellVisualColorEffect.db2" }, + { 897948, "SpellVisualEffectName.db2" }, + { 1685317, "SpellVisualEvent.db2" }, + { 897949, "SpellVisualKit.db2" }, + { 897951, "SpellVisualKitAreaModel.db2" }, + { 1140480, "SpellVisualKitEffect.db2" }, + { 897953, "SpellVisualKitModelAttach.db2" }, + { 897954, "SpellVisualMissile.db2" }, + { 1724949, "SpellXDescriptionVariables.db2" }, + { 1101657, "SpellXSpellVisual.db2" }, + { 1604265, "StartupFiles.db2" }, + { 1375805, "Startup_Strings.db2" }, + { 1140758, "Stationery.db2" }, + { 1345276, "SummonProperties.db2" }, + { 1302850, "TactKey.db2" }, + { 1302851, "TactKeyLookup.db2" }, + { 1369062, "Talent.db2" }, + { 1068100, "TaxiNodes.db2" }, + { 1067802, "TaxiPath.db2" }, + { 1000437, "TaxiPathNode.db2" }, + { 1307290, "TerrainMaterial.db2" }, + { 1310249, "TerrainType.db2" }, + { 1284822, "TerrainTypeSounds.db2" }, + { 1328721, "TextureBlendSet.db2" }, + { 982459, "TextureFileData.db2" }, + { 1134586, "TotemCategory.db2" }, + { 988200, "Toy.db2" }, + { 1301101, "TradeSkillCategory.db2" }, + { 1329070, "TradeSkillItem.db2" }, + { 1338702, "TransformMatrix.db2" }, + { 2399695, "TransmogDefaultLevel.db2" }, + { 1589454, "TransmogHoliday.db2" }, + { 1376213, "TransmogSet.db2" }, + { 1576116, "TransmogSetGroup.db2" }, + { 1376212, "TransmogSetItem.db2" }, + { 1140686, "TransportAnimation.db2" }, + { 1121973, "TransportPhysics.db2" }, + { 1140687, "TransportRotation.db2" }, + { 975024, "Trophy.db2" }, + { 1729547, "UIExpansionDisplayInfo.db2" }, + { 1729546, "UIExpansionDisplayInfoIcon.db2" }, + { 1261406, "UiCamFbackTransmogChrRace.db2" }, + { 1261407, "UiCamFbackTransmogWeapon.db2" }, + { 1120287, "UiCamera.db2" }, + { 1120288, "UiCameraType.db2" }, + { 1989363, "UiCanvas.db2" }, + { 1957206, "UiMap.db2" }, + { 1957202, "UiMapArt.db2" }, + { 1957208, "UiMapArtStyleLayer.db2" }, + { 1957210, "UiMapArtTile.db2" }, + { 1957219, "UiMapAssignment.db2" }, + { 2006972, "UiMapFogOfWar.db2" }, + { 2006973, "UiMapFogOfWarVisualization.db2" }, + { 1957204, "UiMapGroupMember.db2" }, + { 2030690, "UiMapLink.db2" }, + { 1957217, "UiMapXMapArt.db2" }, + { 1548215, "UiModelScene.db2" }, + { 1548214, "UiModelSceneActor.db2" }, + { 1548216, "UiModelSceneActorDisplay.db2" }, + { 1548213, "UiModelSceneCamera.db2" }, + { 1993323, "UiPartyPose.db2" }, + { 897470, "UiTextureAtlas.db2" }, + { 1989276, "UiTextureAtlasElement.db2" }, + { 897532, "UiTextureAtlasMember.db2" }, + { 939159, "UiTextureKit.db2" }, + { 1983278, "UiWidget.db2" }, + { 1983639, "UiWidgetConstantSource.db2" }, + { 1983640, "UiWidgetDataSource.db2" }, + { 2322531, "UiWidgetMap.db2" }, + { 1983641, "UiWidgetStringSource.db2" }, + { 2740907, "UiWidgetVisTypeDataReq.db2" }, + { 1983276, "UiWidgetVisualization.db2" }, + { 1284821, "UnitBlood.db2" }, + { 1268904, "UnitBloodLevels.db2" }, + { 1120959, "UnitCondition.db2" }, + { 1237753, "UnitPowerBar.db2" }, + { 1368621, "Vehicle.db2" }, + { 1345447, "VehicleSeat.db2" }, + { 1279741, "VehicleUIIndSeat.db2" }, + { 1279740, "VehicleUIIndicator.db2" }, + { 892861, "Vignette.db2" }, + { 1634482, "VirtualAttachment.db2" }, + { 1634480, "VirtualAttachmentCustomization.db2" }, + { 1267067, "VocalUISounds.db2" }, + { 1355528, "WMOAreaTable.db2" }, + { 1323241, "WMOMinimapTexture.db2" }, + { 2565222, "WaterfallData.db2" }, + { 2565258, "WaypointEdge.db2" }, + { 2565265, "WaypointNode.db2" }, + { 2820850, "WaypointSafeLocs.db2" }, + { 879634, "WbAccessControlList.db2" }, + { 879591, "WbCertWhitelist.db2" }, + { 1267648, "WeaponImpactSounds.db2" }, + { 1267068, "WeaponSwingSounds2.db2" }, + { 982461, "WeaponTrail.db2" }, + { 1239843, "WeaponTrailModelDef.db2" }, + { 1239842, "WeaponTrailParam.db2" }, + { 1343311, "Weather.db2" }, + { 1965591, "WeatherXParticulate.db2" }, + { 943871, "WindSettings.db2" }, + { 975279, "WorldBossLockout.db2" }, + { 1267069, "WorldChunkSounds.db2" }, + { 1343312, "WorldEffect.db2" }, + { 1135240, "WorldElapsedTimer.db2" }, + { 1134579, "WorldMapOverlay.db2" }, + { 1957212, "WorldMapOverlayTile.db2" }, + { 1369425, "WorldSafeLocs.db2" }, + { 1332558, "WorldStateExpression.db2" }, + { 1343596, "WorldStateUI.db2" }, + { 1266941, "WorldStateZoneSounds.db2" }, + { 1310255, "World_PVP_Area.db2" }, + { 1310251, "ZoneIntroMusicTable.db2" }, + { 1310253, "ZoneLight.db2" }, + { 1310256, "ZoneLightPoint.db2" }, + { 1310254, "ZoneMusic.db2" }, + { 1797864, "ZoneStory.db2" }, }; #endif // DBFilesClientList_h__ diff --git a/src/tools/vmap4_extractor/gameobject_extract.cpp b/src/tools/vmap4_extractor/gameobject_extract.cpp index f4e8b8b5a96..bf9cf73e678 100644 --- a/src/tools/vmap4_extractor/gameobject_extract.cpp +++ b/src/tools/vmap4_extractor/gameobject_extract.cpp @@ -87,7 +87,7 @@ void ExtractGameobjectModels() { printf("Extracting GameObject models...\n"); - DB2CascFileSource source(CascStorage, "DBFilesClient\\GameObjectDisplayInfo.db2"); + DB2CascFileSource source(CascStorage, GameobjectDisplayInfoLoadInfo::Instance()->Meta->FileDataId); DB2FileLoader db2; if (!db2.Load(&source, GameobjectDisplayInfoLoadInfo::Instance())) { diff --git a/src/tools/vmap4_extractor/vmapexport.cpp b/src/tools/vmap4_extractor/vmapexport.cpp index 3a29be3c3f3..babdb7a99c0 100644 --- a/src/tools/vmap4_extractor/vmapexport.cpp +++ b/src/tools/vmap4_extractor/vmapexport.cpp @@ -468,7 +468,7 @@ int main(int argc, char ** argv) { printf("Read Map.dbc file... "); - DB2CascFileSource source(CascStorage, "DBFilesClient\\Map.db2"); + DB2CascFileSource source(CascStorage, MapLoadInfo::Instance()->Meta->FileDataId); DB2FileLoader db2; if (!db2.Load(&source, MapLoadInfo::Instance())) { |