35#include <boost/filesystem/directory.hpp>
36#include <boost/filesystem/operations.hpp>
460 struct ClassPowerData
468 std::array<uint8, MAX_POWERS> IndexByType;
481 std::array<HotfixBlobMap, TOTAL_LOCALES> _hotfixBlob;
483 std::array<std::map<HotfixBlobKey, std::vector<DB2Manager::HotfixOptionalData>>,
TOTAL_LOCALES> _hotfixOptionalData;
491 std::vector<AzeriteItemMilestonePowerEntry const*> _azeriteItemMilestonePowers;
492 std::array<AzeriteItemMilestonePowerEntry const*, MAX_AZERITE_ESSENCE_SLOT> _azeriteItemMilestonePowerByEssenceSlot;
493 std::unordered_map<
uint32 , std::vector<AzeritePowerSetMemberEntry const*>> _azeritePowers;
494 std::unordered_map<std::pair<
uint32 ,
ItemContext>, std::array<uint8, MAX_AZERITE_EMPOWERED_TIER>> _azeriteTierUnlockLevels;
496 std::unordered_map<std::pair<uint8, uint8>,
CharBaseInfoEntry const*> _charBaseInfoByRaceAndClass;
497 std::array<ChrClassUIDisplayEntry const*, MAX_CLASSES> _uiDisplayByClass;
498 std::array<ClassPowerData, MAX_CLASSES> _powersByClass;
499 std::unordered_map<
uint32 , std::vector<ChrCustomizationChoiceEntry const*>> _chrCustomizationChoicesByOption;
500 std::unordered_map<std::pair<uint8, uint8>,
ChrModelEntry const*> _chrModelsByRaceAndGender;
502 std::unordered_map<std::pair<
uint8 ,
uint8>, std::vector<ChrCustomizationOptionEntry const*>> _chrCustomizationOptionsByRaceAndGender;
503 std::unordered_map<
uint32 , std::vector<std::pair<
uint32 , std::vector<uint32>>>> _chrCustomizationRequiredChoices;
505 std::unordered_map<int32, ConditionalChrModelEntry const*> _conditionalChrModelsByChrModelId;
506 std::unordered_map<
uint32 , std::vector<ConditionalContentTuningEntry const*>> _conditionalContentTuning;
507 std::unordered_set<std::pair<uint32, int32>> _contentTuningLabels;
508 std::unordered_map<
uint32 , std::vector<int32>> _creatureLabels;
509 std::unordered_multimap<uint32, CurrencyContainerEntry const*> _currencyContainers;
513 std::unordered_map<
uint32 , std::vector<ContentTuningXExpectedEntry const*>> _expectedStatModsByContentTuning;
515 std::unordered_map<uint32, std::set<FriendshipRepReactionEntry const*, DB2Manager::FriendshipRepReactionEntryComparator>> _friendshipRepReactions;
517 std::unordered_map<
uint32 , std::vector<int32>> _gameobjectLabels;
522 std::unordered_set<uint32> _itemsWithCurrencyCost;
526 std::vector<JournalTierEntry const*> _journalTiersByIndex;
528 std::unordered_map<uint32, DB2Manager::MapDifficultyConditionsContainer> _mapDifficultyConditions;
529 std::unordered_map<uint32, MountEntry const*> _mountsBySpellId;
534 std::unordered_map<uint32, ParagonReputationEntry const*> _paragonReputations;
540 std::unordered_map<uint32, std::vector<RewardPackXCurrencyTypeEntry const*>> _rewardPackCurrencyTypes;
541 std::unordered_map<uint32, std::vector<RewardPackXItemEntry const*>> _rewardPackItems;
542 std::unordered_map<uint32, std::vector<SkillLineEntry const*>> _skillLinesByParentSkillLine;
543 std::unordered_map<uint32, std::vector<SkillLineAbilityEntry const*>> _skillLineAbilitiesBySkillupSkill;
547 std::unordered_set<std::pair<int32, uint32>> _specsBySpecSet;
548 std::unordered_set<uint8> _spellFamilyNames;
550 std::unordered_map<int32, std::vector<SpellVisualMissileEntry const*>> _spellVisualMissilesBySet;
552 std::unordered_map<std::pair<uint32, uint32>,
TaxiPathEntry const*> _taxiPaths;
554 std::unordered_map<int32, UiMapBounds> _uiMapBounds;
555 std::unordered_multimap<int32, UiMapAssignmentEntry const*> _uiMapAssignmentByMap[
MAX_UI_MAP_SYSTEM];
556 std::unordered_multimap<int32, UiMapAssignmentEntry const*> _uiMapAssignmentByArea[
MAX_UI_MAP_SYSTEM];
557 std::unordered_multimap<int32, UiMapAssignmentEntry const*> _uiMapAssignmentByWmoDoodadPlacement[
MAX_UI_MAP_SYSTEM];
558 std::unordered_multimap<int32, UiMapAssignmentEntry const*> _uiMapAssignmentByWmoGroup[
MAX_UI_MAP_SYSTEM];
559 std::unordered_set<int32> _uiMapPhases;
561 std::unordered_map<uint32, std::unordered_set<uint32>> _pvpStatIdsByMap;
564static void LoadDB2(std::bitset<TOTAL_LOCALES>& availableDb2Locales, std::vector<std::string>& errlist,
StorageMap& stores,
DB2StorageBase* storage, std::string
const& db2Path,
570 std::string clientMetaString, ourMetaString;
577 clientMetaString += char(
FT_INT);
586 ourMetaString +=
char(loadInfo->
Fields[i].
Type);
588 ASSERT(clientMetaString == ourMetaString,
589 "%s C++ structure fields %s do not match generated types from the client %s",
590 storage->
GetFileName().c_str(), ourMetaString.c_str(), clientMetaString.c_str());
594 "Size of '%s' set by format string (%u) not equal size of C++ structure (" SZFMTD ").",
600 storage->
Load(db2Path +
localeNames[defaultLocale] +
'/', defaultLocale);
602 catch (std::system_error
const& e)
604 if (e.code() == std::errc::no_such_file_or_directory)
611 catch (std::exception
const& e)
613 errlist.emplace_back(e.what());
622 if (defaultLocale == i || !availableDb2Locales[i])
629 catch (std::system_error
const& e)
631 if (e.code() != std::errc::no_such_file_or_directory)
636 catch (std::exception
const& e)
638 errlist.emplace_back(e.what());
643 if (availableDb2Locales[i])
659 std::string db2Path = dataPath +
"dbc/";
661 std::vector<std::string> loadErrors;
662 std::bitset<TOTAL_LOCALES> availableDb2Locales = [&]()
664 std::bitset<TOTAL_LOCALES> foundLocales;
665 boost::filesystem::directory_iterator db2PathItr(db2Path), end;
666 while (db2PathItr != end)
670 foundLocales[locale] =
true;
677 if (!availableDb2Locales[defaultLocale])
682 LoadDB2(availableDb2Locales, loadErrors, _stores, &store, db2Path, defaultLocale,
sizeof(T));
1060 loadErrors.emplace_back(
Trinity::StringFormat(
"Missing required item {} from ItemSparse.db2 (or its hotfix table)", criticalItemId));
1062 if (!loadErrors.empty())
1064 sLog->SetSynchronous();
1066 for (std::string
const& error : loadErrors)
1074 return availableDb2Locales.to_ulong();
1082 _areaGroupMembers[areaGroupMember->AreaGroupID].push_back(areaGroupMember->AreaID);
1087 "PLAYER_EXPLORED_ZONES_SIZE must be at least %d", (areaTable->AreaBit + 63) / 64);
1091 _artifactPowers[artifactPower->ArtifactID].push_back(artifactPower);
1095 _artifactPowerLinks[artifactPowerLink->PowerA].push_back(artifactPowerLink->PowerB);
1096 _artifactPowerLinks[artifactPowerLink->PowerB].push_back(artifactPowerLink->PowerA);
1100 _artifactPowerRanks[std::pair<uint32, uint8>{ artifactPowerRank->ArtifactPowerID, artifactPowerRank->RankIndex }] = artifactPowerRank;
1103 _azeriteEmpoweredItems[azeriteEmpoweredItem->ItemID] = azeriteEmpoweredItem;
1106 _azeriteEssencePowersByIdAndRank[std::pair<uint32, uint32>{ azeriteEssencePower->AzeriteEssenceID, azeriteEssencePower->Tier }] = azeriteEssencePower;
1109 _azeriteItemMilestonePowers.push_back(azeriteItemMilestonePower);
1114 uint32 azeriteEssenceSlot = 0;
1121 _azeriteItemMilestonePowerByEssenceSlot[azeriteEssenceSlot] = azeriteItemMilestonePower;
1122 ++azeriteEssenceSlot;
1129 _azeritePowers[azeritePowerSetMember->AzeritePowerSetID].push_back(azeritePowerSetMember);
1132 _azeriteTierUnlockLevels[std::pair<uint32, ItemContext>{ azeriteTierUnlock->AzeriteTierUnlockSetID,
ItemContext(azeriteTierUnlock->ItemCreationContext) }][azeriteTierUnlock->Tier] = azeriteTierUnlock->AzeriteLevel;
1136 if (battlemaster->MaxLevel < battlemaster->MinLevel)
1138 TC_LOG_ERROR(
"db2.hotfix.battlemaster_list",
"Battlemaster ({}) contains bad values for MinLevel ({}) and MaxLevel ({}). Swapping values.", battlemaster->ID, battlemaster->MinLevel, battlemaster->MaxLevel);
1141 if (battlemaster->MaxPlayers < battlemaster->MinPlayers)
1143 TC_LOG_ERROR(
"db2.hotfix.battlemaster_list",
"Battlemaster ({}) contains bad values for MinPlayers ({}) and MaxPlayers ({}). Swapping values.", battlemaster->ID, battlemaster->MinPlayers, battlemaster->MaxPlayers);
1144 int8 minPlayers = battlemaster->MinPlayers;
1152 _broadcastTextDurations[{ broadcastTextDuration->BroadcastTextID,
CascLocaleBit(broadcastTextDuration->Locale) }] = broadcastTextDuration->Duration;
1155 _charBaseInfoByRaceAndClass[{ charBaseInfo->RaceID, charBaseInfo->ClassID }] = charBaseInfo;
1160 _uiDisplayByClass[uiDisplay->ChrClassesID] = uiDisplay;
1164 std::set<ChrClassesXPowerTypesEntry const*, ChrClassesXPowerTypesEntryComparator> powers;
1166 powers.insert(power);
1173 uint8 index = _powersByClass[power->ClassID].TypeByIndex.PowerTypeCount++;
1174 _powersByClass[power->ClassID].TypeByIndex.PowerType[index] =
Powers(power->PowerType);
1175 _powersByClass[power->ClassID].IndexByType[power->PowerType] = index;
1180 _chrCustomizationChoicesByOption[customizationChoice->ChrCustomizationOptionID].push_back(customizationChoice);
1182 std::unordered_multimap<uint32, std::pair<uint32, uint8>> shapeshiftFormByModel;
1183 std::unordered_map<uint32, ChrCustomizationDisplayInfoEntry const*> displayInfoByCustomizationChoice;
1192 displayInfoByCustomizationChoice[customizationElement->ChrCustomizationChoiceID] = customizationDisplayInfo;
1194 shapeshiftFormByModel.emplace(customizationOption->ChrModelID, std::make_pair(customizationOption->ID,
uint8(customizationDisplayInfo->ShapeshiftFormID)));
1199 std::unordered_map<uint32, std::vector<ChrCustomizationOptionEntry const*>> customizationOptionsByModel;
1201 customizationOptionsByModel[customizationOption->ChrModelID].push_back(customizationOption);
1207 std::vector<std::pair<uint32, std::vector<uint32>>>& requiredChoicesForReq = _chrCustomizationRequiredChoices[reqChoice->ChrCustomizationReqID];
1208 std::vector<uint32>* choices =
nullptr;
1209 for (std::pair<
uint32, std::vector<uint32>>& choicesForOption : requiredChoicesForReq)
1211 if (choicesForOption.first == customizationChoice->ChrCustomizationOptionID)
1213 choices = &choicesForOption.second;
1219 std::pair<uint32, std::vector<uint32>>& choicesForReq = requiredChoicesForReq.emplace_back();
1220 choicesForReq.first = customizationChoice->ChrCustomizationOptionID;
1221 choices = &choicesForReq.second;
1223 choices->push_back(reqChoice->ChrCustomizationChoiceID);
1227 std::unordered_map<uint32, uint32> parentRaces;
1229 if (chrRace->UnalteredVisualRaceID)
1230 parentRaces[chrRace->UnalteredVisualRaceID] = chrRace->ID;
1236 _chrModelsByRaceAndGender[{
uint8(raceModel->ChrRacesID),
uint8(raceModel->Sex) }] = model;
1240 std::vector<ChrCustomizationOptionEntry const*>& raceOptions = _chrCustomizationOptionsByRaceAndGender[{
uint8(raceModel->ChrRacesID),
uint8(raceModel->Sex) }];
1241 raceOptions.insert(raceOptions.end(), customizationOptionsForModel->begin(), customizationOptionsForModel->end());
1245 std::vector<ChrCustomizationOptionEntry const*>& parentRaceOptions = _chrCustomizationOptionsByRaceAndGender[{
uint8(*parentRace),
uint8(raceModel->Sex) }];
1246 parentRaceOptions.insert(parentRaceOptions.end(), customizationOptionsForModel->begin(), customizationOptionsForModel->end());
1253 ShapeshiftFormModelData& data = _chrCustomizationChoicesForShapeshifts[{
uint8(raceModel->ChrRacesID),
uint8(raceModel->Sex), shapeshiftOptionsForModel.second.second }];
1254 data.
OptionID = shapeshiftOptionsForModel.second.first;
1259 for (std::size_t i = 0; i < data.
Choices->size(); ++i)
1266 memset(_chrSpecializationsByIndex, 0,
sizeof(_chrSpecializationsByIndex));
1272 uint32 storageIndex = chrSpec->ClassID;
1275 ASSERT(!chrSpec->ClassID);
1279 _chrSpecializationsByIndex[storageIndex][chrSpec->OrderIndex] = chrSpec;
1283 _conditionalChrModelsByChrModelId[conditionalChrModel->ChrModelID] = conditionalChrModel;
1287 _conditionalContentTuning[conditionalContentTuning->ParentContentTuningID].push_back(conditionalContentTuning);
1289 for (
auto& [parentContentTuningId, conditionalContentTunings] : _conditionalContentTuning)
1295 _expectedStatModsByContentTuning[contentTuningXExpectedStat->ContentTuningID].push_back(contentTuningXExpectedStat);
1298 _contentTuningLabels.emplace(contentTuningXLabel->ContentTuningID, contentTuningXLabel->LabelID);
1301 _creatureLabels[creatureLabel->CreatureDifficultyID].push_back(creatureLabel->LabelID);
1304 _currencyContainers.emplace(currencyContainer->CurrencyTypesID, currencyContainer);
1307 std::unordered_map<
uint32 , std::vector<CurvePointEntry const*>> unsortedPoints;
1310 unsortedPoints[curvePoint->CurveID].push_back(curvePoint);
1312 for (
auto& [curveId, curvePoints] : unsortedPoints)
1315 std::vector<DBCPosition2D>& points = _curvePoints[curveId];
1316 points.resize(curvePoints.size());
1322 _emoteTextSounds[EmotesTextSoundContainer::key_type(emoteTextSound->EmotesTextID, emoteTextSound->RaceID, emoteTextSound->SexID, emoteTextSound->ClassID)] = emoteTextSound;
1325 _expectedStatsByLevel[std::make_pair(expectedStat->Lvl, expectedStat->ExpansionID)] = expectedStat;
1328 if (faction->ParentFactionID)
1329 _factionTeams[faction->ParentFactionID].push_back(faction->ID);
1332 _friendshipRepReactions[friendshipRepReaction->FriendshipRepID].insert(friendshipRepReaction);
1336 if (gameObjectDisplayInfo->GeoBoxMax.X < gameObjectDisplayInfo->GeoBoxMin.X)
1338 if (gameObjectDisplayInfo->GeoBoxMax.Y < gameObjectDisplayInfo->GeoBoxMin.Y)
1340 if (gameObjectDisplayInfo->GeoBoxMax.Z < gameObjectDisplayInfo->GeoBoxMin.Z)
1345 _gameobjectLabels[gameobjectLabel->GameObjectID].push_back(gameobjectLabel->LabelID);
1348 _heirlooms[heirloom->ItemID] = heirloom;
1351 _glyphBindableSpells[glyphBindableSpell->GlyphPropertiesID].push_back(glyphBindableSpell->SpellID);
1354 _glyphRequiredSpecs[glyphRequiredSpec->GlyphPropertiesID].push_back(
ChrSpecialization(glyphRequiredSpec->ChrSpecializationID));
1358 ASSERT(_itemChildEquipment.find(itemChildEquipment->ParentItemID) == _itemChildEquipment.end(),
"Item must have max 1 child item.");
1359 _itemChildEquipment[itemChildEquipment->ParentItemID] = itemChildEquipment;
1364 ASSERT(itemClass->ClassID <
int32(_itemClassByOldEnum.size()));
1365 ASSERT(!_itemClassByOldEnum[itemClass->ClassID]);
1366 _itemClassByOldEnum[itemClass->ClassID] = itemClass;
1370 _itemsWithCurrencyCost.insert(itemCurrencyCost->ItemID);
1373 _itemCategoryConditions[condition->ParentItemLimitCategoryID].push_back(condition);
1376 _itemSetSpells[itemSetSpell->ItemSetID].push_back(itemSetSpell);
1379 _itemSpecOverrides[itemSpecOverride->ItemID].push_back(itemSpecOverride);
1382 _journalTiersByIndex.push_back(journalTier);
1386 _mapDifficulties.push_back(entry);
1388 std::ranges::sort(_mapDifficulties, std::ranges::less(),
1391 std::vector<MapDifficultyXConditionEntry const*> mapDifficultyConditions;
1394 mapDifficultyConditions.push_back(mapDifficultyCondition);
1400 _mapDifficultyConditions[mapDifficultyCondition->MapDifficultyID].emplace_back(mapDifficultyCondition->ID, playerCondition);
1403 _mountsBySpellId[mount->SourceSpellID] = mount;
1406 _mountCapabilitiesByType[mountTypeCapability->MountTypeID].insert(mountTypeCapability);
1409 _mountDisplays[mountDisplay->MountID].push_back(mountDisplay);
1412 _nameGenData[nameGen->RaceID][nameGen->Sex].push_back(nameGen);
1418 bool conversionResult =
Utf8toWStr(namesProfanity->Name, name);
1419 ASSERT(conversionResult);
1420 if (namesProfanity->Language != -1)
1421 _nameValidators[namesProfanity->Language].emplace_back(name, Trinity::regex::perl | Trinity::regex::icase | Trinity::regex::optimize);
1429 _nameValidators[i].emplace_back(name, Trinity::regex::perl | Trinity::regex::icase | Trinity::regex::optimize);
1437 bool conversionResult =
Utf8toWStr(namesReserved->Name, name);
1438 ASSERT(conversionResult);
1439 _nameValidators[
TOTAL_LOCALES].emplace_back(name, Trinity::regex::perl | Trinity::regex::icase | Trinity::regex::optimize);
1446 bool conversionResult =
Utf8toWStr(namesReserved->Name, name);
1447 ASSERT(conversionResult);
1453 if (namesReserved->LocaleMask & (1 << i))
1454 _nameValidators[i].emplace_back(name, Trinity::regex::perl | Trinity::regex::icase | Trinity::regex::optimize);
1460 _paragonReputations[paragonReputation->FactionID] = paragonReputation;
1463 std::unordered_map<
uint32 , std::vector<PathNodeEntry const*>> unsortedNodes;
1466 unsortedNodes[pathNode->PathID].push_back(pathNode);
1468 for (
auto&& [pathId, pathNodes] : unsortedNodes)
1470 PathDb2& path = _paths[pathId];
1472 path.
Locations.resize(pathNodes.size());
1476 return sLocationStore.AssertEntry(node->LocationID)->Pos;
1481 if (
sPathStore.HasRecord(pathProperty->PathID))
1482 _paths[pathProperty->PathID].Properties.push_back(pathProperty);
1487 _phasesByGroup[group->PhaseGroupID].push_back(phase->ID);
1492 ASSERT(!_powerTypes[powerType->PowerTypeEnum]);
1494 _powerTypes[powerType->PowerTypeEnum] = powerType;
1503 _pvpStatIdsByMap[pvpStat->MapID].insert(pvpStat->ID);
1510 if (talentUnlock->Slot & (1 << i))
1512 ASSERT(!_pvpTalentSlotUnlock[i]);
1513 _pvpTalentSlotUnlock[i] = talentUnlock;
1521 _questPackages[questPackageItem->PackageID].first.push_back(questPackageItem);
1523 _questPackages[questPackageItem->PackageID].second.push_back(questPackageItem);
1527 _rewardPackCurrencyTypes[rewardPackXCurrencyType->RewardPackID].push_back(rewardPackXCurrencyType);
1530 _rewardPackItems[rewardPackXItem->RewardPackID].push_back(rewardPackXItem);
1533 if (skill->ParentSkillLineID)
1534 _skillLinesByParentSkillLine[skill->ParentSkillLineID].push_back(skill);
1537 _skillLineAbilitiesBySkillupSkill[skillLineAbility->SkillupSkillLineID ? skillLineAbility->SkillupSkillLineID : skillLineAbility->SkillLine].push_back(skillLineAbility);
1541 _skillRaceClassInfoBySkill.insert(SkillRaceClassInfoContainer::value_type(entry->SkillID, entry));
1544 _soulbindConduitRanks[{ soulbindConduitRank->SoulbindConduitID, soulbindConduitRank->RankIndex }] = soulbindConduitRank;
1547 _specializationSpellsBySpec[specSpells->SpecID].push_back(specSpells);
1550 _specsBySpecSet.insert(std::make_pair(specSetMember->SpecSetID,
uint32(specSetMember->ChrSpecializationID)));
1553 _spellFamilyNames.insert(classOption->SpellClassSet);
1556 _spellProcsPerMinuteMods[ppmMod->SpellProcsPerMinuteID].push_back(ppmMod);
1559 _spellVisualMissilesBySet[spellVisualMissile->SpellVisualMissileSetID].push_back(spellVisualMissile);
1564 ASSERT(talentInfo->TierID <
MAX_TALENT_TIERS,
"MAX_TALENT_TIERS must be at least %u", talentInfo->TierID + 1);
1565 ASSERT(talentInfo->ColumnIndex <
MAX_TALENT_COLUMNS,
"MAX_TALENT_COLUMNS must be at least %u", talentInfo->ColumnIndex + 1);
1567 _talentsByPosition[talentInfo->ClassID][talentInfo->TierID][talentInfo->ColumnIndex].push_back(talentInfo);
1571 _taxiPaths[{ entry->FromTaxiNode, entry->ToTaxiNode }] = entry;
1576 std::vector<uint32> pathLength;
1577 pathLength.resize(pathCount);
1579 pathLength[entry->PathID] = std::max(pathLength[entry->PathID], entry->NodeIndex + 1u);
1591 _toys.insert(toy->ItemID);
1593 std::unordered_multimap<int32, UiMapAssignmentEntry const*> uiMapAssignmentByUiMap;
1596 uiMapAssignmentByUiMap.emplace(uiMapAssignment->UiMapID, uiMapAssignment);
1600 if (uiMapAssignment->MapID >= 0)
1601 _uiMapAssignmentByMap[uiMap->System].emplace(uiMapAssignment->MapID, uiMapAssignment);
1602 if (uiMapAssignment->AreaID)
1603 _uiMapAssignmentByArea[uiMap->System].emplace(uiMapAssignment->AreaID, uiMapAssignment);
1604 if (uiMapAssignment->WmoDoodadPlacementID)
1605 _uiMapAssignmentByWmoDoodadPlacement[uiMap->System].emplace(uiMapAssignment->WmoDoodadPlacementID, uiMapAssignment);
1606 if (uiMapAssignment->WmoGroupID)
1607 _uiMapAssignmentByWmoGroup[uiMap->System].emplace(uiMapAssignment->WmoGroupID, uiMapAssignment);
1611 std::unordered_map<std::pair<uint32, uint32>,
UiMapLinkEntry const*> uiMapLinks;
1613 uiMapLinks[std::make_pair(uiMapLink->ParentUiMapID,
uint32(uiMapLink->ChildUiMapID))] = uiMapLink;
1617 UiMapBounds& bounds = _uiMapBounds[uiMap->ID];
1618 memset(&bounds, 0,
sizeof(bounds));
1628 if (uiMapAssignmentForMap.second->MapID >= 0 &&
1629 uiMapAssignmentForMap.second->Region[1].X - uiMapAssignmentForMap.second->Region[0].X > 0 &&
1630 uiMapAssignmentForMap.second->Region[1].Y - uiMapAssignmentForMap.second->Region[0].Y > 0)
1632 uiMapAssignment = uiMapAssignmentForMap.second;
1637 if (!uiMapAssignment)
1640 for (std::pair<int32 const, UiMapAssignmentEntry const*>
const& uiMapAssignmentForMap :
Trinity::Containers::MapEqualRange(uiMapAssignmentByUiMap, uiMap->ParentUiMapID))
1642 if (uiMapAssignmentForMap.second->MapID == uiMapAssignment->
MapID &&
1643 uiMapAssignmentForMap.second->Region[1].X - uiMapAssignmentForMap.second->Region[0].X > 0 &&
1644 uiMapAssignmentForMap.second->Region[1].Y - uiMapAssignmentForMap.second->Region[0].Y > 0)
1646 parentUiMapAssignment = uiMapAssignmentForMap.second;
1651 if (!parentUiMapAssignment)
1654 float parentXsize = parentUiMapAssignment->
Region[1].X - parentUiMapAssignment->
Region[0].X;
1655 float parentYsize = parentUiMapAssignment->
Region[1].Y - parentUiMapAssignment->
Region[0].Y;
1656 float bound0scale = (uiMapAssignment->
Region[1].X - parentUiMapAssignment->
Region[0].X) / parentXsize;
1657 float bound0 = ((1.0f - bound0scale) * parentUiMapAssignment->
UiMax.
Y) + (bound0scale * parentUiMapAssignment->
UiMin.
Y);
1658 float bound2scale = (uiMapAssignment->
Region[0].X - parentUiMapAssignment->
Region[0].X) / parentXsize;
1659 float bound2 = ((1.0f - bound2scale) * parentUiMapAssignment->
UiMax.
Y) + (bound2scale * parentUiMapAssignment->
UiMin.
Y);
1660 float bound1scale = (uiMapAssignment->
Region[1].Y - parentUiMapAssignment->
Region[0].Y) / parentYsize;
1661 float bound1 = ((1.0f - bound1scale) * parentUiMapAssignment->
UiMax.
X) + (bound1scale * parentUiMapAssignment->
UiMin.
X);
1662 float bound3scale = (uiMapAssignment->
Region[0].Y - parentUiMapAssignment->
Region[0].Y) / parentYsize;
1663 float bound3 = ((1.0f - bound3scale) * parentUiMapAssignment->
UiMax.
X) + (bound3scale * parentUiMapAssignment->
UiMin.
X);
1664 if ((bound3 - bound1) > 0.0f || (bound2 - bound0) > 0.0f)
1666 bounds.Bounds[0] = bound0;
1667 bounds.Bounds[1] = bound1;
1668 bounds.Bounds[2] = bound2;
1669 bounds.Bounds[3] = bound3;
1670 bounds.IsUiAssignment =
true;
1676 bounds.IsUiAssignment =
false;
1677 bounds.IsUiLink =
true;
1678 bounds.Bounds[0] = uiMapLink->UiMin.Y;
1679 bounds.Bounds[1] = uiMapLink->UiMin.X;
1680 bounds.Bounds[2] = uiMapLink->UiMax.Y;
1681 bounds.Bounds[3] = uiMapLink->UiMax.X;
1686 if (uiMapArt->PhaseID)
1687 _uiMapPhases.insert(uiMapArt->PhaseID);
1690 _wmoAreaTableLookup[
WMOAreaTableKey(entry->WmoID, entry->NameSetID, entry->WmoGroupID)] = entry;
1701 if (!node->IsPartOfTaxiNetwork())
1718 if (uiMapId == 985 || uiMapId == 986)
1727 auto itr = _stores.find(type);
1728 if (itr != _stores.end())
1738 QueryResult result =
HotfixDatabase.Query(
"SELECT Id, UniqueId, TableHash, RecordId, Status FROM hotfix_data ORDER BY Id");
1742 TC_LOG_INFO(
"server.loading",
">> Loaded 0 hotfix info entries.");
1748 std::map<std::pair<uint32, int32>,
bool> deletedRecords;
1752 Field* fields = result->Fetch();
1759 std::bitset<TOTAL_LOCALES> availableDb2Locales = localeMask;
1763 for (std::size_t locale = 0; locale <
TOTAL_LOCALES; ++locale)
1765 if (!availableDb2Locales[locale])
1768 if (!_hotfixBlob[locale].contains(key))
1769 availableDb2Locales[locale] =
false;
1772 if (availableDb2Locales.none())
1774 TC_LOG_ERROR(
"sql.sql",
"Table `hotfix_data` references unknown DB2 store by hash 0x{:X} and has no reference to `hotfix_blob` in hotfix id {} with RecordID: {}", tableHash,
id, recordId);
1788 push.
Records.push_back(hotfixRecord);
1794 }
while (result->NextRow());
1796 for (
auto itr = deletedRecords.begin(); itr != deletedRecords.end(); ++itr)
1799 store->EraseRecord(itr->first.second);
1808 QueryResult result =
HotfixDatabase.Query(
"SELECT TableHash, RecordId, locale, `Blob` FROM hotfix_blob ORDER BY TableHash");
1812 TC_LOG_INFO(
"server.loading",
">> Loaded 0 hotfix blob entries.");
1816 std::bitset<TOTAL_LOCALES> availableDb2Locales = localeMask;
1817 uint32 hotfixBlobCount = 0;
1820 Field* fields = result->Fetch();
1823 auto storeItr = _stores.find(tableHash);
1824 if (storeItr != _stores.end())
1826 TC_LOG_ERROR(
"sql.sql",
"Table hash 0x{:X} points to a loaded DB2 store {}, fill related table instead of hotfix_blob",
1827 tableHash, storeItr->second->GetFileName());
1832 std::string localeName = fields[2].
GetString();
1837 TC_LOG_ERROR(
"sql.sql",
"`hotfix_blob` contains invalid locale: {} at TableHash: 0x{:X} and RecordID: {}", localeName, tableHash, recordId);
1841 if (!availableDb2Locales[locale])
1844 _hotfixBlob[locale][std::make_pair(tableHash, recordId)] = fields[3].
GetBinary();
1846 }
while (result->NextRow());
1853 return data.size() == 8 + 16;
1863 QueryResult result =
HotfixDatabase.Query(
"SELECT TableHash, RecordId, locale, `Key`, `Data` FROM hotfix_optional_data ORDER BY TableHash");
1867 TC_LOG_INFO(
"server.loading",
">> Loaded 0 hotfix optional data records.");
1871 std::bitset<TOTAL_LOCALES> availableDb2Locales = localeMask;
1872 uint32 hotfixOptionalDataCount = 0;
1875 Field* fields = result->Fetch();
1879 if (allowedHotfixes.begin() == allowedHotfixes.end())
1881 TC_LOG_ERROR(
"sql.sql",
"Table `hotfix_optional_data` references DB2 store by hash 0x{:X} that is not allowed to have optional data", tableHash);
1886 auto storeItr = _stores.find(tableHash);
1887 if (storeItr == _stores.end())
1889 TC_LOG_ERROR(
"sql.sql",
"Table `hotfix_optional_data` references unknown DB2 store by hash 0x{:X} with RecordID: {}", tableHash, recordId);
1893 std::string localeName = fields[2].
GetString();
1898 TC_LOG_ERROR(
"sql.sql",
"`hotfix_optional_data` contains invalid locale: {} at TableHash: 0x{:X} and RecordID: {}", localeName, tableHash, recordId);
1902 if (!availableDb2Locales[locale])
1907 auto allowedHotfixItr = std::find_if(allowedHotfixes.begin(), allowedHotfixes.end(), [&](std::pair<uint32 const, AllowedHotfixOptionalData>
const& v)
1909 return v.second.first == optionalData.Key;
1911 if (allowedHotfixItr == allowedHotfixes.end())
1913 TC_LOG_ERROR(
"sql.sql",
"Table `hotfix_optional_data` references non-allowed optional data key 0x{:X} for DB2 store by hash 0x{:X} and RecordID: {}",
1914 optionalData.
Key, tableHash, recordId);
1919 if (!allowedHotfixItr->second.second(optionalData.
Data))
1921 TC_LOG_ERROR(
"sql.sql",
"Table `hotfix_optional_data` contains invalid data for DB2 store 0x{:X}, RecordID: {} and Key: 0x{:X}",
1922 tableHash, recordId, optionalData.
Key);
1926 _hotfixOptionalData[locale][std::make_pair(tableHash, recordId)].push_back(std::move(optionalData));
1927 hotfixOptionalDataCount++;
1928 }
while (result->NextRow());
1930 TC_LOG_INFO(
"server.loading",
">> Loaded {} hotfix optional data records in {} ms", hotfixOptionalDataCount,
GetMSTimeDiffToNow(oldMSTime));
1935 return _hotfixData.size();
1972 push.
Records.push_back(hotfixRecord);
1978 auto itr = _areaGroupMembers.find(areaGroupId);
1979 if (itr != _areaGroupMembers.end())
1982 return std::vector<uint32>();
1989 if (objectAreaId == areaId)
1997 }
while (objectAreaId);
2009 return contentTuning;
2020 auto itr = _artifactPowers.find(artifactId);
2021 if (itr != _artifactPowers.end())
2024 return std::vector<ArtifactPowerEntry const*>{};
2055 return _azeriteItemMilestonePowers;
2061 return _azeriteItemMilestonePowerByEssenceSlot[slot];
2075 if (std::array<uint8, MAX_AZERITE_EMPOWERED_TIER>
const* levels =
Trinity::Containers::MapGetValuePtr(_azeriteTierUnlockLevels, std::make_pair(azeriteUnlockSetId, context)))
2076 return (*levels)[tier];
2081 return (*levels)[tier];
2090 if (broadcastText->
Text1[locale][0] !=
'\0')
2091 return broadcastText->
Text1[locale];
2096 if (broadcastText->
Text[locale][0] !=
'\0')
2097 return broadcastText->
Text[locale];
2115 return _uiDisplayByClass[unitClass];
2124 if (classEntry->
Name[locale][0] !=
'\0')
2125 return classEntry->
Name[locale];
2132 return _powersByClass[classId].TypeByIndex;
2137 return _powersByClass[classId].IndexByType[power];
2171 if (raceEntry->
Name[locale][0] !=
'\0')
2172 return raceEntry->
Name[locale];
2179 return _chrSpecializationsByIndex[class_][index];
2193 uint32 block = conditionalContentTuning->RedirectEnum / 32;
2194 uint32 flag = conditionalContentTuning->RedirectEnum % 32;
2195 if (block >= redirectFlag.size())
2198 if (flag & redirectFlag[block])
2199 return conditionalContentTuning->RedirectContentTuningID;
2203 return contentTuningId;
2257 return _contentTuningLabels.contains({ contentTuningId, label });
2269 return petFamily->
Name[locale][0] !=
'\0' ? petFamily->
Name[locale] :
nullptr;
2275 return labels ? std::span<int32 const>(*labels) : std::span<int32 const>();
2281 if (quantity >= p.second->MinAmount && (!p.second->MaxAmount || quantity <= p.second->MaxAmount))
2290 return { points->front().X, points->back().X };
2292 return { 0.0f, 0.0f };
2297 switch (curve->
Type)
2303 switch (points.size())
2331 auto itr = _curvePoints.find(curveId);
2332 if (itr == _curvePoints.end())
2336 std::vector<DBCPosition2D>
const& points = itr->second;
2340 if (points.size() == 1)
2348 auto findPointIndex = [&](std::size_t pointIndex)
2350 while (pointIndex < points.size() && points[pointIndex].X <= x)
2359 std::size_t pointIndex = findPointIndex(0);
2362 if (pointIndex >= points.size())
2363 return points.back().Y;
2364 float xDiff = points[pointIndex].X - points[pointIndex - 1].X;
2366 return points[pointIndex].Y;
2367 return (((x - points[pointIndex - 1].X) / xDiff) * (points[pointIndex].Y - points[pointIndex - 1].Y)) + points[pointIndex - 1].Y;
2371 std::size_t pointIndex = findPointIndex(0);
2374 if (pointIndex >= points.size())
2375 return points.back().Y;
2376 float xDiff = points[pointIndex].X - points[pointIndex - 1].X;
2378 return points[pointIndex].Y;
2379 return ((points[pointIndex].Y - points[pointIndex - 1].Y) * (1.0f - std::cos((x - points[pointIndex - 1].X) / xDiff *
float(
M_PI))) * 0.5f) + points[pointIndex - 1].Y;
2383 std::size_t pointIndex = findPointIndex(1);
2384 if (pointIndex == 1)
2386 if (pointIndex >= points.size() - 1)
2387 return points[points.size() - 2].Y;
2388 float xDiff = points[pointIndex].X - points[pointIndex - 1].X;
2390 return points[pointIndex].Y;
2392 float mu = (x - points[pointIndex - 1].X) / xDiff;
2393 float a0 = -0.5f * points[pointIndex - 2].Y + 1.5f * points[pointIndex - 1].Y - 1.5f * points[pointIndex].Y + 0.5f * points[pointIndex + 1].Y;
2394 float a1 = points[pointIndex - 2].Y - 2.5f * points[pointIndex - 1].Y + 2.0f * points[pointIndex].Y - 0.5f * points[pointIndex + 1].Y;
2395 float a2 = -0.5f * points[pointIndex - 2].Y + 0.5f * points[pointIndex].Y;
2396 float a3 = points[pointIndex - 1].Y;
2398 return a0 * mu * mu * mu + a1 * mu * mu + a2 * mu + a3;
2402 float xDiff = points[2].X - points[0].X;
2405 float mu = (x - points[0].X) / xDiff;
2406 return ((1.0f - mu) * (1.0f - mu) * points[0].Y) + (1.0f - mu) * 2.0f * mu * points[1].Y + mu * mu * points[2].Y;
2410 float xDiff = points[3].X - points[0].X;
2413 float mu = (x - points[0].X) / xDiff;
2414 return (1.0f - mu) * (1.0f - mu) * (1.0f - mu) * points[0].Y
2415 + 3.0f * mu * (1.0f - mu) * (1.0f - mu) * points[1].Y
2416 + 3.0f * mu * mu * (1.0f - mu) * points[2].Y
2417 + mu * mu * mu * points[3].Y;
2421 float xDiff = points.back().X - points[0].X;
2423 return points.back().Y;
2425 std::vector<float> tmp(points.size());
2426 for (std::size_t i = 0; i < points.size(); ++i)
2427 tmp[i] = points[i].Y;
2429 float mu = (x - points[0].X) / xDiff;
2433 for (
int32 k = 0; k < i; ++k)
2435 float val = tmp[k] + mu * (tmp[k + 1] - tmp[k]);
2444 std::size_t pointIndex = findPointIndex(0);
2445 if (pointIndex == 0)
2447 if (pointIndex >= points.size())
2448 return points.back().Y;
2453 std::size_t pointIndex = findPointIndex(0);
2454 if (pointIndex == 0)
2456 if (pointIndex >= points.size())
2457 return points.back().Y;
2458 return points[pointIndex - 1].Y;
2470 return difficultyEntry->Name[
sWorld->GetDefaultDbcLocale()];
2478 return emotesTextSound;
2481 return emotesTextSound;
2486template<
float(ExpectedStatModEntry::*field)>
2493 if (!contentTuningXExpected)
2498 if (ActiveMilestoneSeason < mythicPlusSeason->MilestoneSeason)
2514 auto expectedStatItr = _expectedStatsByLevel.find(std::make_pair(level, expansion));
2515 if (expectedStatItr == _expectedStatsByLevel.end())
2516 expectedStatItr = _expectedStatsByLevel.find(std::make_pair(level, -2));
2518 if (expectedStatItr == _expectedStatsByLevel.end())
2545 value = expectedStatItr->second->CreatureHealth;
2546 if (contentTuningMods)
2547 value *= std::accumulate(contentTuningMods->begin(), contentTuningMods->end(), 1.0f,
2553 value = expectedStatItr->second->PlayerHealth;
2554 if (contentTuningMods)
2555 value *= std::accumulate(contentTuningMods->begin(), contentTuningMods->end(), 1.0f,
2561 value = expectedStatItr->second->CreatureAutoAttackDps;
2562 if (contentTuningMods)
2563 value *= std::accumulate(contentTuningMods->begin(), contentTuningMods->end(), 1.0f,
2569 value = expectedStatItr->second->CreatureArmor;
2570 if (contentTuningMods)
2571 value *= std::accumulate(contentTuningMods->begin(), contentTuningMods->end(), 1.0f,
2577 value = expectedStatItr->second->PlayerMana;
2578 if (contentTuningMods)
2579 value *= std::accumulate(contentTuningMods->begin(), contentTuningMods->end(), 1.0f,
2585 value = expectedStatItr->second->PlayerPrimaryStat;
2586 if (contentTuningMods)
2587 value *= std::accumulate(contentTuningMods->begin(), contentTuningMods->end(), 1.0f,
2593 value = expectedStatItr->second->PlayerSecondaryStat;
2594 if (contentTuningMods)
2595 value *= std::accumulate(contentTuningMods->begin(), contentTuningMods->end(), 1.0f,
2601 value = expectedStatItr->second->ArmorConstant;
2602 if (contentTuningMods)
2603 value *= std::accumulate(contentTuningMods->begin(), contentTuningMods->end(), 1.0f,
2611 value = expectedStatItr->second->CreatureSpellDamage;
2612 if (contentTuningMods)
2613 value *= std::accumulate(contentTuningMods->begin(), contentTuningMods->end(), 1.0f,
2638 return labels ? std::span<int32 const>(*labels) : std::span<int32 const>();
2644 if (
GlobalCurve(globalCurveEntry->Type) == globalCurveType)
2645 return globalCurveEntry->CurveID;
2672 return _itemClassByOldEnum[itemClass];
2677 return _itemsWithCurrencyCost.count(itemId) > 0;
2697 if (index < _journalTiersByIndex.size())
2698 return _journalTiersByIndex[index];
2705 if (dungeon->MapID ==
int32(mapId) &&
Difficulty(dungeon->DifficultyID) == difficulty)
2729 return 1 << liq->SoundBank;
2736 auto difficultyBegin = std::ranges::lower_bound(_mapDifficulties, mapId, std::ranges::less(), &
MapDifficultyEntry::MapID);
2739 bool operator==(MapDifficultyContainer::const_iterator
const& itr)
const {
return itr == end || (*itr)->MapID != mapId; }
2740 MapDifficultyContainer::const_iterator end = _mapDifficulties.end();
2742 } difficultyEnd { .mapId = mapId };
2745 while (difficultyBegin != difficultyEnd)
2752 defaultDifficulty = *difficultyBegin;
2756 if (!defaultDifficulty)
2757 defaultDifficulty = *difficultyBegin;
2764 return defaultDifficulty;
2769 auto itr = std::ranges::lower_bound(_mapDifficulties, std::pair(mapId, difficulty) , std::ranges::less(),
2772 if (itr != _mapDifficulties.end() && (*itr)->MapID == mapId && (*itr)->DifficultyID == difficulty)
2786 if (!currentDifficulty)
2827 auto ritr = _nameGenData.find(race);
2828 if (ritr == _nameGenData.end())
2831 if (ritr->second[gender].empty())
2840 if (Trinity::regex_search(name, regex))
2845 if (Trinity::regex_search(name, regex))
2854 if (!numTalentsAtLevel)
2857 if (numTalentsAtLevel)
2859 switch (playerClass)
2889 if (entry->MapID != mapid || entry->MinLevel > level)
2893 if (entry->MaxLevel >= level)
2897 if (!maxEntry || maxEntry->
MaxLevel < entry->MaxLevel)
2907 if (entry->MapID == mapid && entry->GetBracketId() == id)
2916 if (_pvpTalentSlotUnlock[slot])
2921 return _pvpTalentSlotUnlock[slot]->DeathKnightLevelRequired;
2923 return _pvpTalentSlotUnlock[slot]->DemonHunterLevelRequired;
2927 return _pvpTalentSlotUnlock[slot]->LevelRequired;
2945 auto itr = _questPackages.find(questPackageID);
2946 if (itr != _questPackages.end())
2947 return &itr->second.first;
2954 auto itr = _questPackages.find(questPackageID);
2955 if (itr != _questPackages.end())
2956 return &itr->second.second;
2978 return _powerTypes[power];
2987 if (powerName == name)
2990 powerName.erase(std::remove(powerName.begin(), powerName.end(),
'_'), powerName.end());
2991 if (powerName == name)
3027 if (!skllRaceClassInfo->RaceMask.IsEmpty() && !(skllRaceClassInfo->RaceMask.HasRace(race)))
3029 if (skllRaceClassInfo->ClassMask && !(skllRaceClassInfo->ClassMask & (1 << (class_ - 1))))
3032 return skllRaceClassInfo;
3040 std::vector<SkillRaceClassInfoEntry const*> result;
3042 result.push_back(skillRaceClassInfo);
3059 return _specsBySpecSet.count(std::make_pair(specSetId, specId)) > 0;
3064 return _spellFamilyNames.count(family) > 0;
3069 auto itr = _spellProcsPerMinuteMods.find(spellprocsPerMinuteId);
3070 if (itr != _spellProcsPerMinuteMods.end())
3073 return std::vector<SpellProcsPerMinuteModEntry const*>();
3083 return _talentsByPosition[class_][tier][column];
3093 if (requiredTotemCategoryId == 0)
3095 if (itemTotemCategoryId == 0)
3109 return requireAllTotems ? sharedMask == reqEntry->
TotemCategoryMask : sharedMask != 0;
3114 return _toys.count(toy) > 0;
3141 return Outside.DistanceToRegionEdgeSquared < std::numeric_limits<float>::epsilon() &&
3142 std::abs(
Outside.DistanceToRegionTop) < std::numeric_limits<float>::epsilon() &&
3143 std::abs(
Outside.DistanceToRegionBottom) < std::numeric_limits<float>::epsilon();
3150 bool rightInside = right.
IsInside();
3151 if (leftInside != rightInside)
3176 if (leftUiSizeX > std::numeric_limits<float>::epsilon() && rightUiSizeX > std::numeric_limits<float>::epsilon())
3180 if (leftScale != rightScale)
3181 return leftScale < rightScale;
3207 if (x < uiMapAssignment->Region[0].X || x > uiMapAssignment->
Region[1].X || y < uiMapAssignment->Region[0].Y || y > uiMapAssignment->
Region[1].Y)
3210 if (x >= uiMapAssignment->
Region[0].X)
3213 if (x > uiMapAssignment->
Region[1].X)
3214 xDiff = x - uiMapAssignment->
Region[0].X;
3217 xDiff = uiMapAssignment->
Region[0].X - x;
3219 if (y >= uiMapAssignment->
Region[0].Y)
3222 if (y > uiMapAssignment->
Region[1].Y)
3223 yDiff = y - uiMapAssignment->
Region[0].Y;
3226 yDiff = uiMapAssignment->
Region[0].Y - y;
3233 (x - (uiMapAssignment->
Region[0].X + uiMapAssignment->
Region[1].X) * 0.5f) * (x - (uiMapAssignment->
Region[0].X + uiMapAssignment->
Region[1].X) * 0.5f)
3234 + (y - (uiMapAssignment->
Region[0].Y + uiMapAssignment->
Region[1].Y) * 0.5f) * (y - (uiMapAssignment->
Region[0].Y + uiMapAssignment->
Region[1].Y) * 0.5f);
3239 if (z < uiMapAssignment->Region[0].Z || z > uiMapAssignment->
Region[1].Z)
3241 if (z < uiMapAssignment->Region[1].Z)
3243 if (z < uiMapAssignment->Region[0].Z)
3256 if (areaId && uiMapAssignment->
AreaID)
3258 int8 areaPriority = 0;
3259 while (areaId != uiMapAssignment->
AreaID)
3263 areaId = areaEntry->ParentAreaID;
3273 if (mapId >= 0 && uiMapAssignment->
MapID >= 0)
3275 if (mapId != uiMapAssignment->
MapID)
3279 if (mapEntry->ParentMapID == uiMapAssignment->
MapID)
3281 else if (mapEntry->CosmeticParentMapID == uiMapAssignment->
MapID)
3293 if (wmoGroupId || wmoDoodadPlacementId)
3297 bool hasDoodadPlacement =
false;
3303 hasDoodadPlacement =
true;
3306 if (wmoGroupId && uiMapAssignment->
WmoGroupID)
3308 if (wmoGroupId != uiMapAssignment->
WmoGroupID)
3311 if (hasDoodadPlacement)
3316 else if (hasDoodadPlacement)
3327 auto iterateUiMapAssignments = [&](std::unordered_multimap<int32, UiMapAssignmentEntry const*>
const& assignments,
int32 id)
3333 if (status < nearestMapAssignment)
3334 nearestMapAssignment = status;
3338 iterateUiMapAssignments(_uiMapAssignmentByWmoGroup[system], wmoGroupId);
3339 iterateUiMapAssignments(_uiMapAssignmentByWmoDoodadPlacement[system], wmoDoodadPlacementId);
3344 iterateUiMapAssignments(_uiMapAssignmentByArea[system], areaEntry->
ID);
3350 iterateUiMapAssignments(_uiMapAssignmentByMap[system], mapEntry->ID);
3351 if (mapEntry->ParentMapID >= 0)
3352 iterateUiMapAssignments(_uiMapAssignmentByMap[system], mapEntry->ParentMapID);
3353 if (mapEntry->CosmeticParentMapID >= 0)
3354 iterateUiMapAssignments(_uiMapAssignmentByMap[system], mapEntry->CosmeticParentMapID);
3369 if (!bounds || !bounds->IsUiAssignment)
3372 uiPosition.
X = ((1.0 - uiPosition.
X) * bounds->Bounds[1]) + (bounds->Bounds[3] * uiPosition.
X);
3373 uiPosition.
Y = ((1.0 - uiPosition.
Y) * bounds->Bounds[0]) + (bounds->Bounds[2] * uiPosition.
Y);
3394 if (!uiMapAssignment)
3398 *uiMapId = uiMapAssignment->
UiMapID;
3402 if (regionSize.X > 0.0f)
3403 relativePosition.X = (x - uiMapAssignment->
Region[0].X) / regionSize.X;
3404 if (regionSize.Y > 0.0f)
3405 relativePosition.Y = (y - uiMapAssignment->
Region[0].Y) / regionSize.Y;
3410 ((1.0f - (1.0f - relativePosition.Y)) * uiMapAssignment->
UiMin.
X) + ((1.0f - relativePosition.Y) * uiMapAssignment->
UiMax.
X),
3411 ((1.0f - (1.0f - relativePosition.X)) * uiMapAssignment->
UiMin.
Y) + ((1.0f - relativePosition.X) * uiMapAssignment->
UiMax.
Y)
3418 *newPos = uiPosition;
3431 if (assignment.second->MapID >= 0 && assignment.second->MapID != areaEntry->
ContinentID)
3434 float tmpY = (y - assignment.second->UiMax.Y) / (assignment.second->UiMin.Y - assignment.second->UiMax.Y);
3435 float tmpX = (x - assignment.second->UiMax.X) / (assignment.second->UiMin.X - assignment.second->UiMax.X);
3436 x = assignment.second->Region[0].X + tmpY * (assignment.second->Region[1].X - assignment.second->Region[0].X);
3437 y = assignment.second->Region[0].Y + tmpX * (assignment.second->Region[1].Y - assignment.second->Region[0].Y);
3448 if (!
GetUiMapPosition(x, y, 0.0f, -1, areaId, 0, 0,
UI_MAP_SYSTEM_WORLD,
true,
nullptr, &zoneCoords))
3451 x = zoneCoords.
Y * 100.0f;
3452 y = zoneCoords.
X * 100.0f;
3457 return _uiMapPhases.find(phaseId) != _uiMapPhases.end();
3463 if (!wmoAreaTableEntry && allowGroupFallback)
3466 return wmoAreaTableEntry;
3486 ASSERT((
_data.size() % 8) == 0,
"TaxiMask size must be aligned to a multiple of uint64");
char const * localeNames[TOTAL_LOCALES]
LocaleConstant GetLocaleByName(std::string_view name)
CascLocaleBit WowLocaleToCascLocaleBit[TOTAL_LOCALES]
constexpr bool IsValidLocale(LocaleConstant locale)
DB2Storage< UISplashScreenEntry > sUISplashScreenStore("UISplashScreen.db2", &UiSplashScreenLoadInfo::Instance)
DB2Storage< LightEntry > sLightStore("Light.db2", &LightLoadInfo::Instance)
DB2Storage< PlayerDataElementCharacterEntry > sPlayerDataElementCharacterStore("PlayerDataElementCharacter.db2", &PlayerDataElementCharacterLoadInfo::Instance)
DB2Storage< AzeritePowerSetMemberEntry > sAzeritePowerSetMemberStore("AzeritePowerSetMember.db2", &AzeritePowerSetMemberLoadInfo::Instance)
DB2Storage< QuestFactionRewardEntry > sQuestFactionRewardStore("QuestFactionReward.db2", &QuestFactionRewardLoadInfo::Instance)
DB2Storage< PhaseEntry > sPhaseStore("Phase.db2", &PhaseLoadInfo::Instance)
DB2Storage< ArtifactAppearanceEntry > sArtifactAppearanceStore("ArtifactAppearance.db2", &ArtifactAppearanceLoadInfo::Instance)
DB2Storage< SkillRaceClassInfoEntry > sSkillRaceClassInfoStore("SkillRaceClassInfo.db2", &SkillRaceClassInfoLoadInfo::Instance)
DB2Storage< ItemNameDescriptionEntry > sItemNameDescriptionStore("ItemNameDescription.db2", &ItemNameDescriptionLoadInfo::Instance)
DB2Storage< ChrRaceXChrModelEntry > sChrRaceXChrModelStore("ChrRaceXChrModel.db2", &ChrRaceXChrModelLoadInfo::Instance)
DB2Storage< ItemLimitCategoryEntry > sItemLimitCategoryStore("ItemLimitCategory.db2", &ItemLimitCategoryLoadInfo::Instance)
DB2Storage< DifficultyEntry > sDifficultyStore("Difficulty.db2", &DifficultyLoadInfo::Instance)
DB2Storage< WorldMapOverlayEntry > sWorldMapOverlayStore("WorldMapOverlay.db2", &WorldMapOverlayLoadInfo::Instance)
ChrSpecializationEntry const * ChrSpecializationByIndexContainer[MAX_CLASSES+1][MAX_SPECIALIZATIONS]
DB2Storage< PlayerDataElementAccountEntry > sPlayerDataElementAccountStore("PlayerDataElementAccount.db2", &PlayerDataElementAccountLoadInfo::Instance)
DB2Storage< ItemModifiedAppearanceExtraEntry > sItemModifiedAppearanceExtraStore("ItemModifiedAppearanceExtra.db2", &ItemModifiedAppearanceExtraLoadInfo::Instance)
DB2Storage< ItemDamageTwoHandCasterEntry > sItemDamageTwoHandCasterStore("ItemDamageTwoHandCaster.db2", &ItemDamageTwoHandCasterLoadInfo::Instance)
DB2Storage< ItemLevelSelectorEntry > sItemLevelSelectorStore("ItemLevelSelector.db2", &ItemLevelSelectorLoadInfo::Instance)
DB2Storage< NamesReservedEntry > sNamesReservedStore("NamesReserved.db2", &NamesReservedLoadInfo::Instance)
DB2Storage< GameObjectDisplayInfoEntry > sGameObjectDisplayInfoStore("GameObjectDisplayInfo.db2", &GameobjectDisplayInfoLoadInfo::Instance)
DB2Storage< SceneScriptEntry > sSceneScriptStore("SceneScript.db2", &SceneScriptLoadInfo::Instance)
DB2Storage< CharacterLoadoutEntry > sCharacterLoadoutStore("CharacterLoadout.db2", &CharacterLoadoutLoadInfo::Instance)
DB2Storage< SpellVisualEntry > sSpellVisualStore("SpellVisual.db2", &SpellVisualLoadInfo::Instance)
DB2Storage< ItemEntry > sItemStore("Item.db2", &ItemLoadInfo::Instance)
DB2Storage< Achievement_CategoryEntry > sAchievementCategoryStore("Achievement_Category.db2", &AchievementCategoryLoadInfo::Instance)
DB2Storage< ItemSearchNameEntry > sItemSearchNameStore("ItemSearchName.db2", &ItemSearchNameLoadInfo::Instance)
DB2Storage< PhaseXPhaseGroupEntry > sPhaseXPhaseGroupStore("PhaseXPhaseGroup.db2", &PhaseXPhaseGroupLoadInfo::Instance)
DB2Storage< BattlemasterListEntry > sBattlemasterListStore("BattlemasterList.db2", &BattlemasterListLoadInfo::Instance)
DB2Storage< TraitCondAccountElementEntry > sTraitCondAccountElementStore("TraitCondAccountElement.db2", &TraitCondAccountElementLoadInfo::Instance)
DB2Storage< PathEntry > sPathStore("Path.db2", &PathLoadInfo::Instance)
DB2Storage< TransmogOutfitSlotInfoEntry > sTransmogOutfitSlotInfoStore("TransmogOutfitSlotInfo.db2", &TransmogOutfitSlotInfoLoadInfo::Instance)
TaxiMask sAllianceTaxiNodesMask
std::unordered_map< uint32, std::vector< DBCPosition2D > > CurvePointsContainer
DB2Storage< AzeriteEssencePowerEntry > sAzeriteEssencePowerStore("AzeriteEssencePower.db2", &AzeriteEssencePowerLoadInfo::Instance)
DB2Storage< SpellInterruptsEntry > sSpellInterruptsStore("SpellInterrupts.db2", &SpellInterruptsLoadInfo::Instance)
DB2Storage< TraitCurrencySourceEntry > sTraitCurrencySourceStore("TraitCurrencySource.db2", &TraitCurrencySourceLoadInfo::Instance)
DB2Storage< SkillLineEntry > sSkillLineStore("SkillLine.db2", &SkillLineLoadInfo::Instance)
DB2Storage< TraitTreeXTraitCostEntry > sTraitTreeXTraitCostStore("TraitTreeXTraitCost.db2", &TraitTreeXTraitCostLoadInfo::Instance)
DB2Storage< OverrideSpellDataEntry > sOverrideSpellDataStore("OverrideSpellData.db2", &OverrideSpellDataLoadInfo::Instance)
DB2Storage< AnimationDataEntry > sAnimationDataStore("AnimationData.db2", &AnimationDataLoadInfo::Instance)
DB2Storage< FriendshipReputationEntry > sFriendshipReputationStore("FriendshipReputation.db2", &FriendshipReputationLoadInfo::Instance)
DB2Storage< BattlePetBreedQualityEntry > sBattlePetBreedQualityStore("BattlePetBreedQuality.db2", &BattlePetBreedQualityLoadInfo::Instance)
DB2Storage< EmotesTextEntry > sEmotesTextStore("EmotesText.db2", &EmotesTextLoadInfo::Instance)
DB2Storage< ArtifactEntry > sArtifactStore("Artifact.db2", &ArtifactLoadInfo::Instance)
DB2Storage< ArtifactPowerPickerEntry > sArtifactPowerPickerStore("ArtifactPowerPicker.db2", &ArtifactPowerPickerLoadInfo::Instance)
DB2Storage< TraitNodeGroupXTraitCondEntry > sTraitNodeGroupXTraitCondStore("TraitNodeGroupXTraitCond.db2", &TraitNodeGroupXTraitCondLoadInfo::Instance)
std::unordered_map< uint32, HeirloomEntry const * > HeirloomItemsContainer
DB2Storage< ArtifactQuestXPEntry > sArtifactQuestXPStore("ArtifactQuestXP.db2", &ArtifactQuestXpLoadInfo::Instance)
DB2Storage< JournalEncounterSectionEntry > sJournalEncounterSectionStore("JournalEncounterSection.db2", &JournalEncounterSectionLoadInfo::Instance)
DB2Storage< BattlePetBreedStateEntry > sBattlePetBreedStateStore("BattlePetBreedState.db2", &BattlePetBreedStateLoadInfo::Instance)
static DBCPosition2D CalculateGlobalUiMapPosition(uint32 uiMapID, DBCPosition2D uiPosition)
DB2Storage< PVPStatEntry > sPVPStatStore("PVPStat.db2", &PvpStatLoadInfo::Instance)
std::unordered_map< uint32, ItemChildEquipmentEntry const * > ItemChildEquipmentContainer
DB2Storage< PvpTalentCategoryEntry > sPvpTalentCategoryStore("PvpTalentCategory.db2", &PvpTalentCategoryLoadInfo::Instance)
DB2Storage< ItemBonusTreeEntry > sItemBonusTreeStore("ItemBonusTree.db2", &ItemBonusTreeLoadInfo::Instance)
DB2Storage< TransmogOutfitSlotOptionEntry > sTransmogOutfitSlotOptionInfoStore("TransmogOutfitSlotOption.db2", &TransmogOutfitSlotOptionLoadInfo::Instance)
DB2Storage< RandPropPointsEntry > sRandPropPointsStore("RandPropPoints.db2", &RandPropPointsLoadInfo::Instance)
DB2Storage< ItemBagFamilyEntry > sItemBagFamilyStore("ItemBagFamily.db2", &ItemBagFamilyLoadInfo::Instance)
DB2Storage< TransmogSituationEntry > sTransmogSituationStore("TransmogSituation.db2", &TransmogSituationLoadInfo::Instance)
DB2Storage< GameObjectsEntry > sGameObjectsStore("GameObjects.db2", &GameobjectsLoadInfo::Instance)
DB2Storage< SpellAuraOptionsEntry > sSpellAuraOptionsStore("SpellAuraOptions.db2", &SpellAuraOptionsLoadInfo::Instance)
std::unordered_map< uint32, std::unordered_map< uint32, std::vector< SpellPowerEntry const * > > > SpellPowerDifficultyContainer
DB2Storage< TraitNodeGroupXTraitNodeEntry > sTraitNodeGroupXTraitNodeStore("TraitNodeGroupXTraitNode.db2", &TraitNodeGroupXTraitNodeLoadInfo::Instance)
DB2Storage< SpellCategoryEntry > sSpellCategoryStore("SpellCategory.db2", &SpellCategoryLoadInfo::Instance)
DB2Storage< AchievementEntry > sAchievementStore("Achievement.db2", &AchievementLoadInfo::Instance)
DB2Storage< ImportPriceWeaponEntry > sImportPriceWeaponStore("ImportPriceWeapon.db2", &ImportPriceWeaponLoadInfo::Instance)
DB2Storage< FriendshipRepReactionEntry > sFriendshipRepReactionStore("FriendshipRepReaction.db2", &FriendshipRepReactionLoadInfo::Instance)
DB2Storage< GarrMissionEntry > sGarrMissionStore("GarrMission.db2", &GarrMissionLoadInfo::Instance)
DB2Storage< SpellNameEntry > sSpellNameStore("SpellName.db2", &SpellNameLoadInfo::Instance)
DB2Storage< CurveEntry > sCurveStore("Curve.db2", &CurveLoadInfo::Instance)
DB2Storage< PvpSeasonEntry > sPvpSeasonStore("PvpSeason.db2", &PvpSeasonLoadInfo::Instance)
DB2Storage< MapEntry > sMapStore("Map.db2", &MapLoadInfo::Instance)
DB2Storage< TraitNodeEntry > sTraitNodeStore("TraitNode.db2", &TraitNodeLoadInfo::Instance)
DB2Storage< TaxiNodesEntry > sTaxiNodesStore("TaxiNodes.db2", &TaxiNodesLoadInfo::Instance)
DB2Storage< TransmogOutfitEntryEntry > sTransmogOutfitEntryStore("TransmogOutfitEntry.db2", &TransmogOutfitEntryLoadInfo::Instance)
DB2Storage< CreatureModelDataEntry > sCreatureModelDataStore("CreatureModelData.db2", &CreatureModelDataLoadInfo::Instance)
DB2Storage< LiquidTypeEntry > sLiquidTypeStore("LiquidType.db2", &LiquidTypeLoadInfo::Instance)
std::vector< MapDifficultyEntry const * > MapDifficultyContainer
DB2Storage< ConditionalChrModelEntry > sConditionalChrModelStore("ConditionalChrModel.db2", &ConditionalChrModelLoadInfo::Instance)
DB2Storage< CreatureFamilyEntry > sCreatureFamilyStore("CreatureFamily.db2", &CreatureFamilyLoadInfo::Instance)
std::map< uint32, DB2StorageBase * > StorageMap
DB2Storage< CurvePointEntry > sCurvePointStore("CurvePoint.db2", &CurvePointLoadInfo::Instance)
DB2Storage< SpellXSpellVisualEntry > sSpellXSpellVisualStore("SpellXSpellVisual.db2", &SpellXSpellVisualLoadInfo::Instance)
DB2Storage< CharacterLoadoutItemEntry > sCharacterLoadoutItemStore("CharacterLoadoutItem.db2", &CharacterLoadoutItemLoadInfo::Instance)
DB2Storage< AnimKitEntry > sAnimKitStore("AnimKit.db2", &AnimKitLoadInfo::Instance)
DB2Storage< MapDifficultyEntry > sMapDifficultyStore("MapDifficulty.db2", &MapDifficultyLoadInfo::Instance)
DB2Storage< SpellEquippedItemsEntry > sSpellEquippedItemsStore("SpellEquippedItems.db2", &SpellEquippedItemsLoadInfo::Instance)
DB2Storage< ItemBonusEntry > sItemBonusStore("ItemBonus.db2", &ItemBonusLoadInfo::Instance)
DB2Storage< UiMapLinkEntry > sUiMapLinkStore("UiMapLink.db2", &UiMapLinkLoadInfo::Instance)
static UiMapAssignmentEntry const * FindNearestMapAssignment(float x, float y, float z, int32 mapId, int32 areaId, int32 wmoDoodadPlacementId, int32 wmoGroupId, UiMapSystem system)
static bool CheckUiMapAssignmentStatus(float x, float y, float z, int32 mapId, int32 areaId, int32 wmoDoodadPlacementId, int32 wmoGroupId, UiMapAssignmentEntry const *uiMapAssignment, UiMapAssignmentStatus *status)
DB2Storage< UnitPowerBarEntry > sUnitPowerBarStore("UnitPowerBar.db2", &UnitPowerBarLoadInfo::Instance)
DB2Storage< SpellReagentsEntry > sSpellReagentsStore("SpellReagents.db2", &SpellReagentsLoadInfo::Instance)
DB2Storage< LanguageWordsEntry > sLanguageWordsStore("LanguageWords.db2", &LanguageWordsLoadInfo::Instance)
DB2Storage< SkillLineXTraitTreeEntry > sSkillLineXTraitTreeStore("SkillLineXTraitTree.db2", &SkillLineXTraitTreeLoadInfo::Instance)
std::unordered_map< uint32, std::vector< uint32 > > ArtifactPowerLinksContainer
DB2Storage< TraitCostEntry > sTraitCostStore("TraitCost.db2", &TraitCostLoadInfo::Instance)
DB2Storage< ArtifactCategoryEntry > sArtifactCategoryStore("ArtifactCategory.db2", &ArtifactCategoryLoadInfo::Instance)
DB2Storage< ServerMessagesEntry > sServerMessagesStore("ServerMessages.db2", &ServerMessagesLoadInfo::Instance)
DB2Storage< ItemChildEquipmentEntry > sItemChildEquipmentStore("ItemChildEquipment.db2", &ItemChildEquipmentLoadInfo::Instance)
DB2Storage< SpecSetMemberEntry > sSpecSetMemberStore("SpecSetMember.db2", &SpecSetMemberLoadInfo::Instance)
DB2Storage< GarrBuildingPlotInstEntry > sGarrBuildingPlotInstStore("GarrBuildingPlotInst.db2", &GarrBuildingPlotInstLoadInfo::Instance)
DB2Storage< ItemBonusTreeNodeEntry > sItemBonusTreeNodeStore("ItemBonusTreeNode.db2", &ItemBonusTreeNodeLoadInfo::Instance)
DB2Storage< CreatureLabelEntry > sCreatureLabelStore("CreatureLabel.db2", &CreatureLabelLoadInfo::Instance)
DB2Storage< ChrCustomizationOptionEntry > sChrCustomizationOptionStore("ChrCustomizationOption.db2", &ChrCustomizationOptionLoadInfo::Instance)
DB2Storage< ItemSpecOverrideEntry > sItemSpecOverrideStore("ItemSpecOverride.db2", &ItemSpecOverrideLoadInfo::Instance)
DB2Storage< CreatureTypeEntry > sCreatureTypeStore("CreatureType.db2", &CreatureTypeLoadInfo::Instance)
DB2Storage< DurabilityQualityEntry > sDurabilityQualityStore("DurabilityQuality.db2", &DurabilityQualityLoadInfo::Instance)
DB2Storage< AreaTriggerActionSetEntry > sAreaTriggerActionSetStore("AreaTriggerActionSet.db2", &AreaTriggerActionSetLoadInfo::Instance)
DB2Storage< ChrCustomizationElementEntry > sChrCustomizationElementStore("ChrCustomizationElement.db2", &ChrCustomizationElementLoadInfo::Instance)
DB2Storage< SpellPowerDifficultyEntry > sSpellPowerDifficultyStore("SpellPowerDifficulty.db2", &SpellPowerDifficultyLoadInfo::Instance)
DB2Storage< ArtifactPowerEntry > sArtifactPowerStore("ArtifactPower.db2", &ArtifactPowerLoadInfo::Instance)
DB2Storage< TraitTreeLoadoutEntry > sTraitTreeLoadoutStore("TraitTreeLoadout.db2", &TraitTreeLoadoutLoadInfo::Instance)
DB2Storage< CriteriaEntry > sCriteriaStore("Criteria.db2", &CriteriaLoadInfo::Instance)
TaxiPathNodesByPath sTaxiPathNodesByPath
DB2Storage< ChallengeModeItemBonusOverrideEntry > sChallengeModeItemBonusOverrideStore("ChallengeModeItemBonusOverride.db2", &ChallengeModeItemBonusOverrideLoadInfo::Instance)
DB2Storage< AzeriteItemMilestonePowerEntry > sAzeriteItemMilestonePowerStore("AzeriteItemMilestonePower.db2", &AzeriteItemMilestonePowerLoadInfo::Instance)
std::pair< uint32, int32 > HotfixBlobKey
DB2Storage< QuestMoneyRewardEntry > sQuestMoneyRewardStore("QuestMoneyReward.db2", &QuestMoneyRewardLoadInfo::Instance)
DB2Storage< ItemXItemEffectEntry > sItemXItemEffectStore("ItemXItemEffect.db2", &ItemXItemEffectLoadInfo::Instance)
DB2Storage< ScenarioEntry > sScenarioStore("Scenario.db2", &ScenarioLoadInfo::Instance)
DB2Storage< TraitNodeXTraitNodeEntryEntry > sTraitNodeXTraitNodeEntryStore("TraitNodeXTraitNodeEntry.db2", &TraitNodeXTraitNodeEntryLoadInfo::Instance)
std::unordered_map< uint32, std::vector< ChrSpecialization > > GlyphRequiredSpecsContainer
DB2Storage< JournalInstanceEntry > sJournalInstanceStore("JournalInstance.db2", &JournalInstanceLoadInfo::Instance)
DB2Storage< ItemDamageOneHandEntry > sItemDamageOneHandStore("ItemDamageOneHand.db2", &ItemDamageOneHandLoadInfo::Instance)
DB2Storage< TransmogIllusionEntry > sTransmogIllusionStore("TransmogIllusion.db2", &TransmogIllusionLoadInfo::Instance)
std::unordered_map< uint32, std::vector< ItemSpecOverrideEntry const * > > ItemSpecOverridesContainer
static CurveInterpolationMode DetermineCurveType(CurveEntry const *curve, std::vector< DBCPosition2D > const &points)
DB2Storage< TransmogSetEntry > sTransmogSetStore("TransmogSet.db2", &TransmogSetLoadInfo::Instance)
DB2Storage< GuildColorEmblemEntry > sGuildColorEmblemStore("GuildColorEmblem.db2", &GuildColorEmblemLoadInfo::Instance)
DB2Storage< GarrBuildingEntry > sGarrBuildingStore("GarrBuilding.db2", &GarrBuildingLoadInfo::Instance)
DB2Storage< TraitNodeGroupXTraitCostEntry > sTraitNodeGroupXTraitCostStore("TraitNodeGroupXTraitCost.db2", &TraitNodeGroupXTraitCostLoadInfo::Instance)
DB2Storage< AzeriteKnowledgeMultiplierEntry > sAzeriteKnowledgeMultiplierStore("AzeriteKnowledgeMultiplier.db2", &AzeriteKnowledgeMultiplierLoadInfo::Instance)
DB2Storage< ModifiedCraftingItemEntry > sModifiedCraftingItemStore("ModifiedCraftingItem.db2", &ModifiedCraftingItemLoadInfo::Instance)
DB2Storage< SpecializationSpellsEntry > sSpecializationSpellsStore("SpecializationSpells.db2", &SpecializationSpellsLoadInfo::Instance)
std::map< WMOAreaTableKey, WMOAreaTableEntry const * > WMOAreaTableLookupContainer
std::unordered_map< uint32, DB2Manager::MountTypeXCapabilitySet > MountCapabilitiesByTypeContainer
DB2Storage< GarrFollowerXAbilityEntry > sGarrFollowerXAbilityStore("GarrFollowerXAbility.db2", &GarrFollowerXAbilityLoadInfo::Instance)
DB2Storage< QuestInfoEntry > sQuestInfoStore("QuestInfo.db2", &QuestInfoLoadInfo::Instance)
DB2Storage< ItemArmorTotalEntry > sItemArmorTotalStore("ItemArmorTotal.db2", &ItemArmorTotalLoadInfo::Instance)
DB2Storage< ChrModelEntry > sChrModelStore("ChrModel.db2", &ChrModelLoadInfo::Instance)
std::unordered_map< uint32, std::vector< SpecializationSpellsEntry const * > > SpecializationSpellsContainer
DB2Storage< TraitTreeEntry > sTraitTreeStore("TraitTree.db2", &TraitTreeLoadInfo::Instance)
DB2Storage< GarrTalentTreeEntry > sGarrTalentTreeStore("GarrTalentTree.db2", &GarrTalentTreeLoadInfo::Instance)
DB2Storage< TransportRotationEntry > sTransportRotationStore("TransportRotation.db2", &TransportRotationLoadInfo::Instance)
DB2Storage< SpellRangeEntry > sSpellRangeStore("SpellRange.db2", &SpellRangeLoadInfo::Instance)
DB2Storage< ItemLevelSelectorQualityEntry > sItemLevelSelectorQualityStore("ItemLevelSelectorQuality.db2", &ItemLevelSelectorQualityLoadInfo::Instance)
DB2Storage< ItemScalingConfigEntry > sItemScalingConfigStore("ItemScalingConfig.db2", &ItemScalingConfigLoadInfo::Instance)
DB2Storage< RewardPackXItemEntry > sRewardPackXItemStore("RewardPackXItem.db2", &RewardPackXItemLoadInfo::Instance)
DB2Storage< EmotesTextSoundEntry > sEmotesTextSoundStore("EmotesTextSound.db2", &EmotesTextSoundLoadInfo::Instance)
std::array< PowerTypeEntry const *, MAX_POWERS > PowerTypesContainer
bool ValidateBroadcastTextTactKeyOptionalData(std::vector< uint8 > const &data)
DB2Storage< ChrClassesEntry > sChrClassesStore("ChrClasses.db2", &ChrClassesLoadInfo::Instance)
DB2Storage< SpellShapeshiftFormEntry > sSpellShapeshiftFormStore("SpellShapeshiftForm.db2", &SpellShapeshiftFormLoadInfo::Instance)
DB2Storage< ItemPriceBaseEntry > sItemPriceBaseStore("ItemPriceBase.db2", &ItemPriceBaseLoadInfo::Instance)
DB2Storage< GlobalCurveEntry > sGlobalCurveStore("GlobalCurve.db2", &GlobalCurveLoadInfo::Instance)
DB2Storage< CampaignEntry > sCampaignStore("Campaign.db2", &CampaignLoadInfo::Instance)
DB2Storage< ModifierTreeEntry > sModifierTreeStore("ModifierTree.db2", &ModifierTreeLoadInfo::Instance)
std::unordered_map< uint32, std::vector< uint32 > > FactionTeamContainer
DB2Storage< SpellAuraRestrictionsEntry > sSpellAuraRestrictionsStore("SpellAuraRestrictions.db2", &SpellAuraRestrictionsLoadInfo::Instance)
DB2Storage< MountEntry > sMountStore("Mount.db2", &MountLoadInfo::Instance)
DB2Storage< VehicleSeatEntry > sVehicleSeatStore("VehicleSeat.db2", &VehicleSeatLoadInfo::Instance)
DB2Storage< ChrCustomizationDisplayInfoEntry > sChrCustomizationDisplayInfoStore("ChrCustomizationDisplayInfo.db2", &ChrCustomizationDisplayInfoLoadInfo::Instance)
std::unordered_map< uint32, std::vector< SpellProcsPerMinuteModEntry const * > > SpellProcsPerMinuteModContainer
DB2Storage< ArtifactPowerRankEntry > sArtifactPowerRankStore("ArtifactPowerRank.db2", &ArtifactPowerRankLoadInfo::Instance)
DB2Storage< DestructibleModelDataEntry > sDestructibleModelDataStore("DestructibleModelData.db2", &DestructibleModelDataLoadInfo::Instance)
DB2Storage< SpellShapeshiftEntry > sSpellShapeshiftStore("SpellShapeshift.db2", &SpellShapeshiftLoadInfo::Instance)
DB2Storage< CampaignXQuestLineEntry > sCampaignXQuestLineStore("CampaignXQuestLine.db2", &CampaignXQuestLineLoadInfo::Instance)
DB2Storage< GarrSiteLevelPlotInstEntry > sGarrSiteLevelPlotInstStore("GarrSiteLevelPlotInst.db2", &GarrSiteLevelPlotInstLoadInfo::Instance)
TaxiMask sOldContinentsNodesMask
DB2Storage< MountEquipmentEntry > sMountEquipmentStore("MountEquipment.db2", &MountEquipmentLoadInfo::Instance)
DB2Storage< SpellVisualEffectNameEntry > sSpellVisualEffectNameStore("SpellVisualEffectName.db2", &SpellVisualEffectNameLoadInfo::Instance)
DB2Storage< SpellMiscEntry > sSpellMiscStore("SpellMisc.db2", &SpellMiscLoadInfo::Instance)
DB2Storage< WorldStateExpressionEntry > sWorldStateExpressionStore("WorldStateExpression.db2", &WorldStateExpressionLoadInfo::Instance)
DB2Storage< GarrPlotInstanceEntry > sGarrPlotInstanceStore("GarrPlotInstance.db2", &GarrPlotInstanceLoadInfo::Instance)
DB2Storage< LockEntry > sLockStore("Lock.db2", &LockLoadInfo::Instance)
DB2Storage< NamesProfanityEntry > sNamesProfanityStore("NamesProfanity.db2", &NamesProfanityLoadInfo::Instance)
DB2Storage< CharTitlesEntry > sCharTitlesStore("CharTitles.db2", &CharTitlesLoadInfo::Instance)
DB2Storage< GlyphRequiredSpecEntry > sGlyphRequiredSpecStore("GlyphRequiredSpec.db2", &GlyphRequiredSpecLoadInfo::Instance)
DB2Storage< ExpectedStatEntry > sExpectedStatStore("ExpectedStat.db2", &ExpectedStatLoadInfo::Instance)
DB2Storage< BattlePetSpeciesStateEntry > sBattlePetSpeciesStateStore("BattlePetSpeciesState.db2", &BattlePetSpeciesStateLoadInfo::Instance)
DB2Storage< NumTalentsAtLevelEntry > sNumTalentsAtLevelStore("NumTalentsAtLevel.db2", &NumTalentsAtLevelLoadInfo::Instance)
std::map< std::tuple< uint32, uint8, uint8, uint8 >, EmotesTextSoundEntry const * > EmotesTextSoundContainer
DB2Storage< ArtifactUnlockEntry > sArtifactUnlockStore("ArtifactUnlock.db2", &ArtifactUnlockLoadInfo::Instance)
DB2Storage< QuestLineXQuestEntry > sQuestLineXQuestStore("QuestLineXQuest.db2", &QuestLineXQuestLoadInfo::Instance)
DB2Storage< TraitCondEntry > sTraitCondStore("TraitCond.db2", &TraitCondLoadInfo::Instance)
DB2Storage< TransportAnimationEntry > sTransportAnimationStore("TransportAnimation.db2", &TransportAnimationLoadInfo::Instance)
std::vector< TalentEntry const * > TalentsByPosition[MAX_CLASSES][MAX_TALENT_TIERS][MAX_TALENT_COLUMNS]
DB2Storage< ContentTuningXExpectedEntry > sContentTuningXExpectedStore("ContentTuningXExpected.db2", &ContentTuningXExpectedLoadInfo::Instance)
DB2Storage< ConditionalContentTuningEntry > sConditionalContentTuningStore("ConditionalContentTuning.db2", &ConditionalContentTuningLoadInfo::Instance)
DB2Storage< TransmogSituationGroupEntry > sTransmogSituationGroupStore("TransmogSituationGroup.db2", &TransmogSituationGroupLoadInfo::Instance)
DB2Storage< WMOAreaTableEntry > sWMOAreaTableStore("WMOAreaTable.db2", &WmoAreaTableLoadInfo::Instance)
DB2Storage< TraitTreeXTraitCurrencyEntry > sTraitTreeXTraitCurrencyStore("TraitTreeXTraitCurrency.db2", &TraitTreeXTraitCurrencyLoadInfo::Instance)
DB2Storage< ItemXBonusTreeEntry > sItemXBonusTreeStore("ItemXBonusTree.db2", &ItemXBonusTreeLoadInfo::Instance)
DB2Storage< ChrSpecializationEntry > sChrSpecializationStore("ChrSpecialization.db2", &ChrSpecializationLoadInfo::Instance)
DB2Storage< Cfg_CategoriesEntry > sCfgCategoriesStore("Cfg_Categories.db2", &CfgCategoriesLoadInfo::Instance)
DB2Storage< ExpectedStatModEntry > sExpectedStatModStore("ExpectedStatMod.db2", &ExpectedStatModLoadInfo::Instance)
DB2Storage< PrestigeLevelInfoEntry > sPrestigeLevelInfoStore("PrestigeLevelInfo.db2", &PrestigeLevelInfoLoadInfo::Instance)
DB2Storage< ChrClassesXPowerTypesEntry > sChrClassesXPowerTypesStore("ChrClassesXPowerTypes.db2", &ChrClassesXPowerTypesLoadInfo::Instance)
DB2Storage< GarrPlotBuildingEntry > sGarrPlotBuildingStore("GarrPlotBuilding.db2", &GarrPlotBuildingLoadInfo::Instance)
DB2Storage< TraitSystemEntry > sTraitSystemStore("TraitSystem.db2", &TraitSystemLoadInfo::Instance)
DB2Storage< SceneScriptTextEntry > sSceneScriptTextStore("SceneScriptText.db2", &SceneScriptTextLoadInfo::Instance)
DB2Storage< ChrCustomizationReqChoiceEntry > sChrCustomizationReqChoiceStore("ChrCustomizationReqChoice.db2", &ChrCustomizationReqChoiceLoadInfo::Instance)
DB2Storage< GossipNPCOptionEntry > sGossipNPCOptionStore("GossipNPCOption.db2", &GossipNpcOptionLoadInfo::Instance)
DB2Storage< PowerTypeEntry > sPowerTypeStore("PowerType.db2", &PowerTypeLoadInfo::Instance)
DB2Storage< ItemSetEntry > sItemSetStore("ItemSet.db2", &ItemSetLoadInfo::Instance)
DB2Storage< TraitNodeEntryEntry > sTraitNodeEntryStore("TraitNodeEntry.db2", &TraitNodeEntryLoadInfo::Instance)
DB2Storage< QuestSortEntry > sQuestSortStore("QuestSort.db2", &QuestSortLoadInfo::Instance)
DB2Storage< GarrSiteLevelEntry > sGarrSiteLevelStore("GarrSiteLevel.db2", &GarrSiteLevelLoadInfo::Instance)
DB2Storage< SceneScriptPackageEntry > sSceneScriptPackageStore("SceneScriptPackage.db2", &SceneScriptPackageLoadInfo::Instance)
DB2Storage< CreatureDisplayInfoExtraEntry > sCreatureDisplayInfoExtraStore("CreatureDisplayInfoExtra.db2", &CreatureDisplayInfoExtraLoadInfo::Instance)
DB2Storage< TotemCategoryEntry > sTotemCategoryStore("TotemCategory.db2", &TotemCategoryLoadInfo::Instance)
DB2Storage< SpellLevelsEntry > sSpellLevelsStore("SpellLevels.db2", &SpellLevelsLoadInfo::Instance)
DB2Storage< SpellVisualKitEntry > sSpellVisualKitStore("SpellVisualKit.db2", &SpellVisualKitLoadInfo::Instance)
DB2Storage< AdventureMapPOIEntry > sAdventureMapPOIStore("AdventureMapPOI.db2", &AdventureMapPoiLoadInfo::Instance)
DB2Storage< PvpTalentEntry > sPvpTalentStore("PvpTalent.db2", &PvpTalentLoadInfo::Instance)
DB2Storage< ScenarioStepEntry > sScenarioStepStore("ScenarioStep.db2", &ScenarioStepLoadInfo::Instance)
DB2Storage< JournalTierEntry > sJournalTierStore("JournalTier.db2", &JournalTierLoadInfo::Instance)
DB2Storage< BattlePetAbilityEntry > sBattlePetAbilityStore("BattlePetAbility.db2", &BattlePetAbilityLoadInfo::Instance)
DB2Storage< SpellVisualMissileEntry > sSpellVisualMissileStore("SpellVisualMissile.db2", &SpellVisualMissileLoadInfo::Instance)
DB2Storage< ItemEffectEntry > sItemEffectStore("ItemEffect.db2", &ItemEffectLoadInfo::Instance)
std::unordered_map< uint32, std::vector< ArtifactPowerEntry const * > > ArtifactPowersContainer
DB2Storage< PathPropertyEntry > sPathPropertyStore("PathProperty.db2", &PathPropertyLoadInfo::Instance)
DB2Storage< BarberShopStyleEntry > sBarberShopStyleStore("BarberShopStyle.db2", &BarberShopStyleLoadInfo::Instance)
std::unordered_multimap< uint32, SkillRaceClassInfoEntry const * > SkillRaceClassInfoContainer
DB2Storage< ChatChannelsEntry > sChatChannelsStore("ChatChannels.db2", &ChatChannelsLoadInfo::Instance)
std::pair< uint32, bool(*)(std::vector< uint8 > const &data) > AllowedHotfixOptionalData
DB2Storage< MawPowerEntry > sMawPowerStore("MawPower.db2", &MawPowerLoadInfo::Instance)
DB2Storage< ToyEntry > sToyStore("Toy.db2", &ToyLoadInfo::Instance)
DB2Storage< ItemSquishEraEntry > sItemSquishEraStore("ItemSquishEra.db2", &ItemSquishEraLoadInfo::Instance)
std::array< ItemClassEntry const *, 21 > ItemClassByOldEnumContainer
DB2Storage< BankTabEntry > sBankTabStore("BankTab.db2", &BankTabLoadInfo::Instance)
DB2Storage< CriteriaTreeEntry > sCriteriaTreeStore("CriteriaTree.db2", &CriteriaTreeLoadInfo::Instance)
DB2Storage< ChrClassUIDisplayEntry > sChrClassUIDisplayStore("ChrClassUIDisplay.db2", &ChrClassUiDisplayLoadInfo::Instance)
DB2Storage< TraitDefinitionEffectPointsEntry > sTraitDefinitionEffectPointsStore("TraitDefinitionEffectPoints.db2", &TraitDefinitionEffectPointsLoadInfo::Instance)
DB2Storage< CorruptionEffectsEntry > sCorruptionEffectsStore("CorruptionEffects.db2", &CorruptionEffectsLoadInfo::Instance)
DB2Storage< ImportPriceShieldEntry > sImportPriceShieldStore("ImportPriceShield.db2", &ImportPriceShieldLoadInfo::Instance)
DB2Storage< LocationEntry > sLocationStore("Location.db2", &LocationLoadInfo::Instance)
DB2Storage< BattlePetSpeciesEntry > sBattlePetSpeciesStore("BattlePetSpecies.db2", &BattlePetSpeciesLoadInfo::Instance)
DB2Storage< ItemArmorShieldEntry > sItemArmorShieldStore("ItemArmorShield.db2", &ItemArmorShieldLoadInfo::Instance)
DB2Storage< AreaTriggerEntry > sAreaTriggerStore("AreaTrigger.db2", &AreaTriggerLoadInfo::Instance)
DB2Storage< PlayerDataFlagAccountEntry > sPlayerDataFlagAccountStore("PlayerDataFlagAccount.db2", &PlayerDataFlagAccountLoadInfo::Instance)
DB2Storage< SpellDurationEntry > sSpellDurationStore("SpellDuration.db2", &SpellDurationLoadInfo::Instance)
DB2Storage< SpellLearnSpellEntry > sSpellLearnSpellStore("SpellLearnSpell.db2", &SpellLearnSpellLoadInfo::Instance)
DB2Storage< ConversationLineEntry > sConversationLineStore("ConversationLine.db2", &ConversationLineLoadInfo::Instance)
DB2Storage< SpellCooldownsEntry > sSpellCooldownsStore("SpellCooldowns.db2", &SpellCooldownsLoadInfo::Instance)
DB2Storage< MountTypeXCapabilityEntry > sMountTypeXCapabilityStore("MountTypeXCapability.db2", &MountTypeXCapabilityLoadInfo::Instance)
DB2Storage< AdventureJournalEntry > sAdventureJournalStore("AdventureJournal.db2", &AdventureJournalLoadInfo::Instance)
DB2Storage< MapDifficultyXConditionEntry > sMapDifficultyXConditionStore("MapDifficultyXCondition.db2", &MapDifficultyXConditionLoadInfo::Instance)
DB2Storage< BannedAddonsEntry > sBannedAddonsStore("BannedAddons.db2", &BannedAddonsLoadInfo::Instance)
DB2Storage< ItemOffsetCurveEntry > sItemOffsetCurveStore("ItemOffsetCurve.db2", &ItemOffsetCurveLoadInfo::Instance)
std::tuple< uint16, uint8, int32 > WMOAreaTableKey
DB2Storage< ItemArmorQualityEntry > sItemArmorQualityStore("ItemArmorQuality.db2", &ItemArmorQualityLoadInfo::Instance)
DB2Storage< UnitConditionEntry > sUnitConditionStore("UnitCondition.db2", &UnitConditionLoadInfo::Instance)
DB2Storage< BattlemasterListXMapEntry > sBattlemasterListXMapStore("BattlemasterListXMap.db2", &BattlemasterListXMapLoadInfo::Instance)
std::unordered_map< uint32, std::vector< uint32 > > AreaGroupMemberContainer
DB2Storage< ItemDamageAmmoEntry > sItemDamageAmmoStore("ItemDamageAmmo.db2", &ItemDamageAmmoLoadInfo::Instance)
DB2Storage< ArtifactTierEntry > sArtifactTierStore("ArtifactTier.db2", &ArtifactTierLoadInfo::Instance)
std::unordered_map< uint32, std::vector< uint32 > > GlyphBindableSpellsContainer
DB2Storage< ItemModifiedAppearanceEntry > sItemModifiedAppearanceStore("ItemModifiedAppearance.db2", &ItemModifiedAppearanceLoadInfo::Instance)
DB2Storage< MailTemplateEntry > sMailTemplateStore("MailTemplate.db2", &MailTemplateLoadInfo::Instance)
DB2Storage< EmotesEntry > sEmotesStore("Emotes.db2", &EmotesLoadInfo::Instance)
std::unordered_map< uint32, std::vector< ItemSetSpellEntry const * > > ItemSetSpellContainer
DB2Storage< ItemSetSpellEntry > sItemSetSpellStore("ItemSetSpell.db2", &ItemSetSpellLoadInfo::Instance)
DB2Storage< Cfg_RegionsEntry > sCfgRegionsStore("Cfg_Regions.db2", &CfgRegionsLoadInfo::Instance)
DB2Storage< UiMapEntry > sUiMapStore("UiMap.db2", &UiMapLoadInfo::Instance)
DB2Storage< SkillLineAbilityEntry > sSkillLineAbilityStore("SkillLineAbility.db2", &SkillLineAbilityLoadInfo::Instance)
DB2Storage< CurrencyContainerEntry > sCurrencyContainerStore("CurrencyContainer.db2", &CurrencyContainerLoadInfo::Instance)
DB2Storage< ItemDisenchantLootEntry > sItemDisenchantLootStore("ItemDisenchantLoot.db2", &ItemDisenchantLootLoadInfo::Instance)
DB2Storage< KeychainEntry > sKeychainStore("Keychain.db2", &KeychainLoadInfo::Instance)
std::unordered_map< uint32, std::pair< std::vector< QuestPackageItemEntry const * >, std::vector< QuestPackageItemEntry const * > > > QuestPackageItemContainer
DB2Storage< TraitEdgeEntry > sTraitEdgeStore("TraitEdge.db2", &TraitEdgeLoadInfo::Instance)
DB2Storage< AzeriteUnlockMappingEntry > sAzeriteUnlockMappingStore("AzeriteUnlockMapping.db2", &AzeriteUnlockMappingLoadInfo::Instance)
DB2Storage< WarbandSceneEntry > sWarbandSceneStore("WarbandScene.db2", &WarbandSceneLoadInfo::Instance)
DB2Storage< AzeriteTierUnlockEntry > sAzeriteTierUnlockStore("AzeriteTierUnlock.db2", &AzeriteTierUnlockLoadInfo::Instance)
DB2Storage< SummonPropertiesEntry > sSummonPropertiesStore("SummonProperties.db2", &SummonPropertiesLoadInfo::Instance)
DB2Storage< SpellReagentsCurrencyEntry > sSpellReagentsCurrencyStore("SpellReagentsCurrency.db2", &SpellReagentsCurrencyLoadInfo::Instance)
DB2Storage< GuildPerkSpellsEntry > sGuildPerkSpellsStore("GuildPerkSpells.db2", &GuildPerkSpellsLoadInfo::Instance)
DB2Storage< TraitDefinitionEntry > sTraitDefinitionStore("TraitDefinition.db2", &TraitDefinitionLoadInfo::Instance)
DB2Storage< AzeriteLevelInfoEntry > sAzeriteLevelInfoStore("AzeriteLevelInfo.db2", &AzeriteLevelInfoLoadInfo::Instance)
DB2Storage< ItemCreationContextEntry > sItemCreationContextStore("ItemCreationContext.db2", &ItemCreationContextLoadInfo::Instance)
DB2Storage< LFGDungeonsEntry > sLFGDungeonsStore("LFGDungeons.db2", &LfgDungeonsLoadInfo::Instance)
DB2Storage< TaxiPathNodeEntry > sTaxiPathNodeStore("TaxiPathNode.db2", &TaxiPathNodeLoadInfo::Instance)
DB2Storage< SpellFocusObjectEntry > sSpellFocusObjectStore("SpellFocusObject.db2", &SpellFocusObjectLoadInfo::Instance)
DB2Storage< TactKeyEntry > sTactKeyStore("TactKey.db2", &TactKeyLoadInfo::Instance)
DB2Storage< NamesReservedLocaleEntry > sNamesReservedLocaleStore("NamesReservedLocale.db2", &NamesReservedLocaleLoadInfo::Instance)
DB2Storage< ImportPriceQualityEntry > sImportPriceQualityStore("ImportPriceQuality.db2", &ImportPriceQualityLoadInfo::Instance)
DB2Storage< PvpTierEntry > sPvpTierStore("PvpTier.db2", &PvpTierLoadInfo::Instance)
DB2Storage< ItemContextPickerEntryEntry > sItemContextPickerEntryStore("ItemContextPickerEntry.db2", &ItemContextPickerEntryLoadInfo::Instance)
DB2Storage< MountXDisplayEntry > sMountXDisplayStore("MountXDisplay.db2", &MountXDisplayLoadInfo::Instance)
DB2Storage< NameGenEntry > sNameGenStore("NameGen.db2", &NameGenLoadInfo::Instance)
DB2Storage< CraftingQualityEntry > sCraftingQualityStore("CraftingQuality.db2", &CraftingQualityLoadInfo::Instance)
DB2Storage< BroadcastTextEntry > sBroadcastTextStore("BroadcastText.db2", &BroadcastTextLoadInfo::Instance)
DB2Storage< SpellCastingRequirementsEntry > sSpellCastingRequirementsStore("SpellCastingRequirements.db2", &SpellCastingRequirementsLoadInfo::Instance)
std::unordered_map< uint32, std::vector< ItemLimitCategoryConditionEntry const * > > ItemLimitCategoryConditionContainer
DB2Storage< SpellEmpowerEntry > sSpellEmpowerStore("SpellEmpower.db2", &SpellEmpowerLoadInfo::Instance)
DB2Storage< MythicPlusSeasonEntry > sMythicPlusSeasonStore("MythicPlusSeason.db2", &MythicPlusSeasonLoadInfo::Instance)
DB2Storage< GameObjectArtKitEntry > sGameObjectArtKitStore("GameObjectArtKit.db2", &GameobjectArtKitLoadInfo::Instance)
DB2Storage< TransmogSituationTriggerEntry > sTransmogSituationTriggerStore("TransmogSituationTrigger.db2", &TransmogSituationTriggerLoadInfo::Instance)
DB2Storage< ItemLimitCategoryConditionEntry > sItemLimitCategoryConditionStore("ItemLimitCategoryCondition.db2", &ItemLimitCategoryConditionLoadInfo::Instance)
DB2Storage< ItemExtendedCostEntry > sItemExtendedCostStore("ItemExtendedCost.db2", &ItemExtendedCostLoadInfo::Instance)
DB2Storage< SpellEffectEntry > sSpellEffectStore("SpellEffect.db2", &SpellEffectLoadInfo::Instance)
DB2Storage< ContentTuningXLabelEntry > sContentTuningXLabelStore("ContentTuningXLabel.db2", &ContentTuningXLabelLoadInfo::Instance)
std::array< std::vector< Trinity::wregex >, TOTAL_LOCALES+1 > NameValidationRegexContainer
DB2Storage< GuildColorBackgroundEntry > sGuildColorBackgroundStore("GuildColorBackground.db2", &GuildColorBackgroundLoadInfo::Instance)
DB2Storage< PVPDifficultyEntry > sPVPDifficultyStore("PVPDifficulty.db2", &PvpDifficultyLoadInfo::Instance)
std::map< HotfixBlobKey, std::vector< uint8 > > HotfixBlobMap
DB2Storage< TraitNodeEntryXTraitCondEntry > sTraitNodeEntryXTraitCondStore("TraitNodeEntryXTraitCond.db2", &TraitNodeEntryXTraitCondLoadInfo::Instance)
DB2Storage< QuestV2Entry > sQuestV2Store("QuestV2.db2", &QuestV2LoadInfo::Instance)
DB2Storage< AzeriteEmpoweredItemEntry > sAzeriteEmpoweredItemStore("AzeriteEmpoweredItem.db2", &AzeriteEmpoweredItemLoadInfo::Instance)
DB2Storage< VignetteEntry > sVignetteStore("Vignette.db2", &VignetteLoadInfo::Instance)
DB2Storage< CurrencyTypesEntry > sCurrencyTypesStore("CurrencyTypes.db2", &CurrencyTypesLoadInfo::Instance)
DB2Storage< LanguagesEntry > sLanguagesStore("Languages.db2", &LanguagesLoadInfo::Instance)
DB2Storage< MapChallengeModeEntry > sMapChallengeModeStore("MapChallengeMode.db2", &MapChallengeModeLoadInfo::Instance)
DB2Storage< SpellRadiusEntry > sSpellRadiusStore("SpellRadius.db2", &SpellRadiusLoadInfo::Instance)
DB2Storage< TraitCurrencyEntry > sTraitCurrencyStore("TraitCurrency.db2", &TraitCurrencyLoadInfo::Instance)
DB2Storage< AzeriteTierUnlockSetEntry > sAzeriteTierUnlockSetStore("AzeriteTierUnlockSet.db2", &AzeriteTierUnlockSetLoadInfo::Instance)
DB2Storage< GemPropertiesEntry > sGemPropertiesStore("GemProperties.db2", &GemPropertiesLoadInfo::Instance)
DB2Storage< ItemBonusListLevelDeltaEntry > sItemBonusListLevelDeltaStore("ItemBonusListLevelDelta.db2", &ItemBonusListLevelDeltaLoadInfo::Instance)
DB2Storage< ItemBonusListGroupEntryEntry > sItemBonusListGroupEntryStore("ItemBonusListGroupEntry.db2", &ItemBonusListGroupEntryLoadInfo::Instance)
DB2Storage< HeirloomEntry > sHeirloomStore("Heirloom.db2", &HeirloomLoadInfo::Instance)
DB2Storage< QuestXPEntry > sQuestXPStore("QuestXP.db2", &QuestXpLoadInfo::Instance)
DB2Storage< UiMapXMapArtEntry > sUiMapXMapArtStore("UiMapXMapArt.db2", &UiMapXMapArtLoadInfo::Instance)
DB2Storage< GlyphPropertiesEntry > sGlyphPropertiesStore("GlyphProperties.db2", &GlyphPropertiesLoadInfo::Instance)
DB2Storage< SpellEmpowerStageEntry > sSpellEmpowerStageStore("SpellEmpowerStage.db2", &SpellEmpowerStageLoadInfo::Instance)
DB2Storage< WorldEffectEntry > sWorldEffectStore("WorldEffect.db2", &WorldEffectLoadInfo::Instance)
std::unordered_map< uint32, std::vector< uint32 > > PhaseGroupContainer
DB2Storage< DungeonEncounterEntry > sDungeonEncounterStore("DungeonEncounter.db2", &DungeonEncounterLoadInfo::Instance)
DB2Storage< PvpTalentSlotUnlockEntry > sPvpTalentSlotUnlockStore("PvpTalentSlotUnlock.db2", &PvpTalentSlotUnlockLoadInfo::Instance)
DB2Storage< SpellTargetRestrictionsEntry > sSpellTargetRestrictionsStore("SpellTargetRestrictions.db2", &SpellTargetRestrictionsLoadInfo::Instance)
DB2Storage< ChrRacesEntry > sChrRacesStore("ChrRaces.db2", &ChrRacesLoadInfo::Instance)
DB2Storage< TraitNodeXTraitCostEntry > sTraitNodeXTraitCostStore("TraitNodeXTraitCost.db2", &TraitNodeXTraitCostLoadInfo::Instance)
DB2Storage< ParagonReputationEntry > sParagonReputationStore("ParagonReputation.db2", &ParagonReputationLoadInfo::Instance)
DB2Storage< QuestPackageItemEntry > sQuestPackageItemStore("QuestPackageItem.db2", &QuestPackageItemLoadInfo::Instance)
std::unordered_map< std::pair< uint32, uint8 >, ArtifactPowerRankEntry const * > ArtifactPowerRanksContainer
DB2Storage< PlayerConditionEntry > sPlayerConditionStore("PlayerCondition.db2", &PlayerConditionLoadInfo::Instance)
DB2Storage< PerksActivityEntry > sPerksActivityStore("PerksActivity.db2", &PerksActivityLoadInfo::Instance)
DB2Storage< GlyphBindableSpellEntry > sGlyphBindableSpellStore("GlyphBindableSpell.db2", &GlyphBindableSpellLoadInfo::Instance)
DB2Storage< TransmogSetItemEntry > sTransmogSetItemStore("TransmogSetItem.db2", &TransmogSetItemLoadInfo::Instance)
DB2Storage< RewardPackXCurrencyTypeEntry > sRewardPackXCurrencyTypeStore("RewardPackXCurrencyType.db2", &RewardPackXCurrencyTypeLoadInfo::Instance)
std::unordered_map< uint32, std::vector< SpellPowerEntry const * > > SpellPowerContainer
DB2Storage< ArtifactPowerLinkEntry > sArtifactPowerLinkStore("ArtifactPowerLink.db2", &ArtifactPowerLinkLoadInfo::Instance)
DB2Storage< ChrCustomizationReqEntry > sChrCustomizationReqStore("ChrCustomizationReq.db2", &ChrCustomizationReqLoadInfo::Instance)
DB2Storage< ImportPriceArmorEntry > sImportPriceArmorStore("ImportPriceArmor.db2", &ImportPriceArmorLoadInfo::Instance)
DB2Storage< CreatureDisplayInfoEntry > sCreatureDisplayInfoStore("CreatureDisplayInfo.db2", &CreatureDisplayInfoLoadInfo::Instance)
DB2Storage< ContentTuningEntry > sContentTuningStore("ContentTuning.db2", &ContentTuningLoadInfo::Instance)
DB2Storage< ItemLevelSelectorQualitySetEntry > sItemLevelSelectorQualitySetStore("ItemLevelSelectorQualitySet.db2", &ItemLevelSelectorQualitySetLoadInfo::Instance)
DB2Storage< TraitNodeXTraitCondEntry > sTraitNodeXTraitCondStore("TraitNodeXTraitCond.db2", &TraitNodeXTraitCondLoadInfo::Instance)
DB2Storage< SpellItemEnchantmentEntry > sSpellItemEnchantmentStore("SpellItemEnchantment.db2", &SpellItemEnchantmentLoadInfo::Instance)
DB2Storage< CharBaseInfoEntry > sCharBaseInfoStore("CharBaseInfo.db2", &CharBaseInfoLoadInfo::Instance)
DB2Storage< SpellClassOptionsEntry > sSpellClassOptionsStore("SpellClassOptions.db2", &SpellClassOptionsLoadInfo::Instance)
DB2Storage< AzeritePowerEntry > sAzeritePowerStore("AzeritePower.db2", &AzeritePowerLoadInfo::Instance)
DB2Storage< PowerDisplayEntry > sPowerDisplayStore("PowerDisplay.db2", &PowerDisplayLoadInfo::Instance)
DB2Storage< TraitSubTreeEntry > sTraitSubTreeStore("TraitSubTree.db2", &TraitSubTreeLoadInfo::Instance)
DB2Storage< KeystoneAffixEntry > sKeystoneAffixStore("KeystoneAffix.db2", &KeystoneAffixLoadInfo::Instance)
DB2Storage< SoulbindConduitRankEntry > sSoulbindConduitRankStore("SoulbindConduitRank.db2", &SoulbindConduitRankLoadInfo::Instance)
DB2Storage< HolidaysEntry > sHolidaysStore("Holidays.db2", &HolidaysLoadInfo::Instance)
DB2Storage< ArmorLocationEntry > sArmorLocationStore("ArmorLocation.db2", &ArmorLocationLoadInfo::Instance)
DB2Storage< TransmogHolidayEntry > sTransmogHolidayStore("TransmogHoliday.db2", &TransmogHolidayLoadInfo::Instance)
DB2Storage< TalentEntry > sTalentStore("Talent.db2", &TalentLoadInfo::Instance)
DB2Storage< MovieEntry > sMovieStore("Movie.db2", &MovieLoadInfo::Instance)
DB2Storage< ItemCurrencyCostEntry > sItemCurrencyCostStore("ItemCurrencyCost.db2", &ItemCurrencyCostLoadInfo::Instance)
std::unordered_map< uint32, std::array< std::vector< NameGenEntry const * >, 2 > > NameGenContainer
DB2Storage< ItemAppearanceEntry > sItemAppearanceStore("ItemAppearance.db2", &ItemAppearanceLoadInfo::Instance)
DB2Storage< TransmogSetGroupEntry > sTransmogSetGroupStore("TransmogSetGroup.db2", &TransmogSetGroupLoadInfo::Instance)
DB2Storage< ItemSparseEntry > sItemSparseStore("ItemSparse.db2", &ItemSparseLoadInfo::Instance)
DB2Storage< TraitNodeGroupEntry > sTraitNodeGroupStore("TraitNodeGroup.db2", &TraitNodeGroupLoadInfo::Instance)
DB2Storage< FactionTemplateEntry > sFactionTemplateStore("FactionTemplate.db2", &FactionTemplateLoadInfo::Instance)
DB2Storage< ItemDamageTwoHandEntry > sItemDamageTwoHandStore("ItemDamageTwoHand.db2", &ItemDamageTwoHandLoadInfo::Instance)
DB2Storage< AuctionHouseEntry > sAuctionHouseStore("AuctionHouse.db2", &AuctionHouseLoadInfo::Instance)
DB2Storage< FlightCapabilityEntry > sFlightCapabilityStore("FlightCapability.db2", &FlightCapabilityLoadInfo::Instance)
DB2Storage< SpellProcsPerMinuteModEntry > sSpellProcsPerMinuteModStore("SpellProcsPerMinuteMod.db2", &SpellProcsPerMinuteModLoadInfo::Instance)
DB2Storage< MountCapabilityEntry > sMountCapabilityStore("MountCapability.db2", &MountCapabilityLoadInfo::Instance)
DB2Storage< SoundKitEntry > sSoundKitStore("SoundKit.db2", &SoundKitLoadInfo::Instance)
DB2Storage< ChrCustomizationChoiceEntry > sChrCustomizationChoiceStore("ChrCustomizationChoice.db2", &ChrCustomizationChoiceLoadInfo::Instance)
DB2Storage< AzeriteItemEntry > sAzeriteItemStore("AzeriteItem.db2", &AzeriteItemLoadInfo::Instance)
DB2Storage< ItemClassEntry > sItemClassStore("ItemClass.db2", &ItemClassLoadInfo::Instance)
DB2Storage< TraitNodeEntryXTraitCostEntry > sTraitNodeEntryXTraitCostStore("TraitNodeEntryXTraitCost.db2", &TraitNodeEntryXTraitCostLoadInfo::Instance)
DB2Storage< ItemSpecEntry > sItemSpecStore("ItemSpec.db2", &ItemSpecLoadInfo::Instance)
DB2Storage< AzeriteEssenceEntry > sAzeriteEssenceStore("AzeriteEssence.db2", &AzeriteEssenceLoadInfo::Instance)
DB2Storage< ItemDamageOneHandCasterEntry > sItemDamageOneHandCasterStore("ItemDamageOneHandCaster.db2", &ItemDamageOneHandCasterLoadInfo::Instance)
DB2Storage< SpellKeyboundOverrideEntry > sSpellKeyboundOverrideStore("SpellKeyboundOverride.db2", &SpellKeyboundOverrideLoadInfo::Instance)
std::unordered_map< uint32, DB2Manager::MountXDisplayContainer > MountDisplaysCointainer
DB2Storage< SpellTotemsEntry > sSpellTotemsStore("SpellTotems.db2", &SpellTotemsLoadInfo::Instance)
DB2Storage< TraitTreeLoadoutEntryEntry > sTraitTreeLoadoutEntryStore("TraitTreeLoadoutEntry.db2", &TraitTreeLoadoutEntryLoadInfo::Instance)
DB2Storage< PathNodeEntry > sPathNodeStore("PathNode.db2", &PathNodeLoadInfo::Instance)
static void LoadDB2(std::bitset< TOTAL_LOCALES > &availableDb2Locales, std::vector< std::string > &errlist, StorageMap &stores, DB2StorageBase *storage, std::string const &db2Path, LocaleConstant defaultLocale, std::size_t cppRecordSize)
DB2Storage< GarrClassSpecEntry > sGarrClassSpecStore("GarrClassSpec.db2", &GarrClassSpecLoadInfo::Instance)
DB2Storage< SpellCategoriesEntry > sSpellCategoriesStore("SpellCategories.db2", &SpellCategoriesLoadInfo::Instance)
DB2Storage< BroadcastTextDurationEntry > sBroadcastTextDurationStore("BroadcastTextDuration.db2", &BroadcastTextDurationLoadInfo::Instance)
DB2Storage< AreaGroupMemberEntry > sAreaGroupMemberStore("AreaGroupMember.db2", &AreaGroupMemberLoadInfo::Instance)
DB2Storage< SceneScriptGlobalTextEntry > sSceneScriptGlobalTextStore("SceneScriptGlobalText.db2", &SceneScriptGlobalTextLoadInfo::Instance)
DB2Storage< SpellLabelEntry > sSpellLabelStore("SpellLabel.db2", &SpellLabelLoadInfo::Instance)
DB2Storage< GameObjectLabelEntry > sGameObjectLabelStore("GameObjectLabel.db2", &GameobjectLabelLoadInfo::Instance)
DB2Storage< AreaTableEntry > sAreaTableStore("AreaTable.db2", &AreaTableLoadInfo::Instance)
DB2Storage< SpellProcsPerMinuteEntry > sSpellProcsPerMinuteStore("SpellProcsPerMinute.db2", &SpellProcsPerMinuteLoadInfo::Instance)
DB2Storage< TaxiPathEntry > sTaxiPathStore("TaxiPath.db2", &TaxiPathLoadInfo::Instance)
static bool operator<(UiMapAssignmentStatus const &left, UiMapAssignmentStatus const &right)
std::unordered_set< uint32 > ToyItemIdsContainer
DB2Storage< SpellPowerEntry > sSpellPowerStore("SpellPower.db2", &SpellPowerLoadInfo::Instance)
DB2Storage< GarrFollowerEntry > sGarrFollowerStore("GarrFollower.db2", &GarrFollowerLoadInfo::Instance)
DB2Storage< ArtifactAppearanceSetEntry > sArtifactAppearanceSetStore("ArtifactAppearanceSet.db2", &ArtifactAppearanceSetLoadInfo::Instance)
DB2Storage< UiMapAssignmentEntry > sUiMapAssignmentStore("UiMapAssignment.db2", &UiMapAssignmentLoadInfo::Instance)
DB2Storage< RewardPackEntry > sRewardPackStore("RewardPack.db2", &RewardPackLoadInfo::Instance)
DB2Storage< FactionEntry > sFactionStore("Faction.db2", &FactionLoadInfo::Instance)
DB2Storage< DurabilityCostsEntry > sDurabilityCostsStore("DurabilityCosts.db2", &DurabilityCostsLoadInfo::Instance)
DB2Storage< VehicleEntry > sVehicleStore("Vehicle.db2", &VehicleLoadInfo::Instance)
DB2Storage< CinematicSequencesEntry > sCinematicSequencesStore("CinematicSequences.db2", &CinematicSequencesLoadInfo::Instance)
TaxiMask sHordeTaxiNodesMask
DB2Storage< GuildColorBorderEntry > sGuildColorBorderStore("GuildColorBorder.db2", &GuildColorBorderLoadInfo::Instance)
DB2Storage< SpellItemEnchantmentConditionEntry > sSpellItemEnchantmentConditionStore("SpellItemEnchantmentCondition.db2", &SpellItemEnchantmentConditionLoadInfo::Instance)
DB2Storage< CinematicCameraEntry > sCinematicCameraStore("CinematicCamera.db2", &CinematicCameraLoadInfo::Instance)
DB2Storage< SpellCastTimesEntry > sSpellCastTimesStore("SpellCastTimes.db2", &SpellCastTimesLoadInfo::Instance)
DB2Storage< PlayerDataFlagCharacterEntry > sPlayerDataFlagCharacterStore("PlayerDataFlagCharacter.db2", &PlayerDataFlagCharacterLoadInfo::Instance)
DB2Storage< GarrAbilityEntry > sGarrAbilityStore("GarrAbility.db2", &GarrAbilityLoadInfo::Instance)
DB2Storage< GarrPlotEntry > sGarrPlotStore("GarrPlot.db2", &GarrPlotLoadInfo::Instance)
DB2Storage< SpellScalingEntry > sSpellScalingStore("SpellScaling.db2", &SpellScalingLoadInfo::Instance)
DB2Storage< JournalEncounterEntry > sJournalEncounterStore("JournalEncounter.db2", &JournalEncounterLoadInfo::Instance)
TC_GAME_API DB2Storage< JournalEncounterEntry > sJournalEncounterStore
TC_GAME_API DB2Storage< SpellItemEnchantmentEntry > sSpellItemEnchantmentStore
TC_GAME_API DB2Storage< ItemLevelSelectorEntry > sItemLevelSelectorStore
TC_GAME_API DB2Storage< CharacterLoadoutItemEntry > sCharacterLoadoutItemStore
TC_GAME_API DB2Storage< ItemModifiedAppearanceExtraEntry > sItemModifiedAppearanceExtraStore
TC_GAME_API DB2Storage< ItemArmorQualityEntry > sItemArmorQualityStore
TC_GAME_API DB2Storage< AreaTriggerEntry > sAreaTriggerStore
TC_GAME_API DB2Storage< TransportRotationEntry > sTransportRotationStore
TC_GAME_API DB2Storage< ItemBonusTreeNodeEntry > sItemBonusTreeNodeStore
TC_GAME_API TaxiMask sAllianceTaxiNodesMask
TC_GAME_API DB2Storage< SpellTotemsEntry > sSpellTotemsStore
TC_GAME_API DB2Storage< ChrCustomizationReqEntry > sChrCustomizationReqStore
TC_GAME_API DB2Storage< BattlePetSpeciesEntry > sBattlePetSpeciesStore
TC_GAME_API DB2Storage< Achievement_CategoryEntry > sAchievementCategoryStore
TC_GAME_API DB2Storage< GarrPlotEntry > sGarrPlotStore
TC_GAME_API DB2Storage< TraitNodeGroupXTraitCostEntry > sTraitNodeGroupXTraitCostStore
TC_GAME_API DB2Storage< ItemBonusListGroupEntryEntry > sItemBonusListGroupEntryStore
TC_GAME_API DB2Storage< ItemSearchNameEntry > sItemSearchNameStore
TC_GAME_API DB2Storage< QuestLineXQuestEntry > sQuestLineXQuestStore
TC_GAME_API DB2Storage< ItemLimitCategoryEntry > sItemLimitCategoryStore
TC_GAME_API DB2Storage< ParagonReputationEntry > sParagonReputationStore
TC_GAME_API DB2Storage< PvpSeasonEntry > sPvpSeasonStore
TC_GAME_API DB2Storage< SpellInterruptsEntry > sSpellInterruptsStore
TC_GAME_API DB2Storage< SceneScriptPackageEntry > sSceneScriptPackageStore
TC_GAME_API DB2Storage< BannedAddonsEntry > sBannedAddonsStore
TC_GAME_API DB2Storage< SpellShapeshiftEntry > sSpellShapeshiftStore
TC_GAME_API DB2Storage< DifficultyEntry > sDifficultyStore
TC_GAME_API DB2Storage< SpellVisualKitEntry > sSpellVisualKitStore
TC_GAME_API DB2Storage< SpellItemEnchantmentConditionEntry > sSpellItemEnchantmentConditionStore
TC_GAME_API DB2Storage< LanguageWordsEntry > sLanguageWordsStore
TC_GAME_API DB2Storage< CriteriaEntry > sCriteriaStore
TC_GAME_API DB2Storage< SpellScalingEntry > sSpellScalingStore
TC_GAME_API DB2Storage< WorldEffectEntry > sWorldEffectStore
TC_GAME_API DB2Storage< ItemDamageOneHandEntry > sItemDamageOneHandStore
TC_GAME_API DB2Storage< AzeritePowerEntry > sAzeritePowerStore
TC_GAME_API DB2Storage< SpellTargetRestrictionsEntry > sSpellTargetRestrictionsStore
TC_GAME_API DB2Storage< CurveEntry > sCurveStore
TC_GAME_API DB2Storage< SpellEmpowerEntry > sSpellEmpowerStore
TC_GAME_API DB2Storage< RandPropPointsEntry > sRandPropPointsStore
TC_GAME_API DB2Storage< UISplashScreenEntry > sUISplashScreenStore
TC_GAME_API DB2Storage< SpellRadiusEntry > sSpellRadiusStore
TC_GAME_API DB2Storage< GlyphPropertiesEntry > sGlyphPropertiesStore
TC_GAME_API DB2Storage< TransportAnimationEntry > sTransportAnimationStore
TC_GAME_API DB2Storage< ArtifactAppearanceEntry > sArtifactAppearanceStore
TC_GAME_API DB2Storage< PerksActivityEntry > sPerksActivityStore
TC_GAME_API DB2Storage< TalentEntry > sTalentStore
TC_GAME_API DB2Storage< ChrRacesEntry > sChrRacesStore
TC_GAME_API DB2Storage< TransmogSetGroupEntry > sTransmogSetGroupStore
TC_GAME_API DB2Storage< TaxiPathEntry > sTaxiPathStore
TC_GAME_API DB2Storage< ItemCreationContextEntry > sItemCreationContextStore
TC_GAME_API DB2Storage< GuildColorEmblemEntry > sGuildColorEmblemStore
TC_GAME_API DB2Storage< ItemBonusListLevelDeltaEntry > sItemBonusListLevelDeltaStore
TC_GAME_API DB2Storage< TraitTreeXTraitCurrencyEntry > sTraitTreeXTraitCurrencyStore
TC_GAME_API DB2Storage< SpellProcsPerMinuteEntry > sSpellProcsPerMinuteStore
TC_GAME_API DB2Storage< TransmogSituationTriggerEntry > sTransmogSituationTriggerStore
TC_GAME_API DB2Storage< ItemBonusEntry > sItemBonusStore
TC_GAME_API TaxiMask sTaxiNodesMask
TC_GAME_API DB2Storage< TraitDefinitionEntry > sTraitDefinitionStore
TC_GAME_API DB2Storage< ChrClassesEntry > sChrClassesStore
TC_GAME_API DB2Storage< AdventureJournalEntry > sAdventureJournalStore
TC_GAME_API DB2Storage< SpellXSpellVisualEntry > sSpellXSpellVisualStore
TC_GAME_API DB2Storage< LiquidTypeEntry > sLiquidTypeStore
TC_GAME_API DB2Storage< TraitNodeEntryXTraitCostEntry > sTraitNodeEntryXTraitCostStore
TC_GAME_API DB2Storage< TraitCondAccountElementEntry > sTraitCondAccountElementStore
TC_GAME_API DB2Storage< FriendshipRepReactionEntry > sFriendshipRepReactionStore
TC_GAME_API DB2Storage< SummonPropertiesEntry > sSummonPropertiesStore
TC_GAME_API DB2Storage< TransmogSituationGroupEntry > sTransmogSituationGroupStore
TC_GAME_API DB2Storage< SpellReagentsEntry > sSpellReagentsStore
TC_GAME_API DB2Storage< ArtifactEntry > sArtifactStore
TC_GAME_API DB2Storage< BattlemasterListXMapEntry > sBattlemasterListXMapStore
TC_GAME_API DB2Storage< DurabilityQualityEntry > sDurabilityQualityStore
TC_GAME_API DB2Storage< ItemDamageTwoHandEntry > sItemDamageTwoHandStore
TC_GAME_API DB2Storage< SkillLineEntry > sSkillLineStore
TC_GAME_API DB2Storage< CinematicSequencesEntry > sCinematicSequencesStore
TC_GAME_API DB2Storage< ArmorLocationEntry > sArmorLocationStore
TC_GAME_API TaxiMask sOldContinentsNodesMask
TC_GAME_API DB2Storage< TraitEdgeEntry > sTraitEdgeStore
TC_GAME_API DB2Storage< AreaTriggerActionSetEntry > sAreaTriggerActionSetStore
TC_GAME_API DB2Storage< WarbandSceneEntry > sWarbandSceneStore
TC_GAME_API DB2Storage< ItemLevelSelectorQualitySetEntry > sItemLevelSelectorQualitySetStore
TC_GAME_API DB2Storage< MountEquipmentEntry > sMountEquipmentStore
TC_GAME_API DB2Storage< CharTitlesEntry > sCharTitlesStore
TC_GAME_API DB2Storage< ItemSetEntry > sItemSetStore
TC_GAME_API DB2Storage< GuildPerkSpellsEntry > sGuildPerkSpellsStore
TC_GAME_API DB2Storage< PlayerConditionEntry > sPlayerConditionStore
TC_GAME_API DB2Storage< BattlePetBreedStateEntry > sBattlePetBreedStateStore
TC_GAME_API DB2Storage< SpellMiscEntry > sSpellMiscStore
TC_GAME_API DB2Storage< TraitCurrencySourceEntry > sTraitCurrencySourceStore
TC_GAME_API DB2Storage< SpellAuraRestrictionsEntry > sSpellAuraRestrictionsStore
TC_GAME_API DB2Storage< ItemXItemEffectEntry > sItemXItemEffectStore
TC_GAME_API DB2Storage< GuildColorBorderEntry > sGuildColorBorderStore
TC_GAME_API DB2Storage< GarrSiteLevelEntry > sGarrSiteLevelStore
TC_GAME_API DB2Storage< GarrMissionEntry > sGarrMissionStore
TC_GAME_API DB2Storage< OverrideSpellDataEntry > sOverrideSpellDataStore
TC_GAME_API DB2Storage< TaxiPathNodeEntry > sTaxiPathNodeStore
TC_GAME_API DB2Storage< CreatureDisplayInfoEntry > sCreatureDisplayInfoStore
TC_GAME_API DB2Storage< BankTabEntry > sBankTabStore
TC_GAME_API DB2Storage< TransmogSetItemEntry > sTransmogSetItemStore
TC_GAME_API DB2Storage< TraitCurrencyEntry > sTraitCurrencyStore
TC_GAME_API DB2Storage< CraftingQualityEntry > sCraftingQualityStore
TC_GAME_API DB2Storage< UnitPowerBarEntry > sUnitPowerBarStore
TC_GAME_API DB2Storage< TraitNodeEntry > sTraitNodeStore
TC_GAME_API DB2Storage< AzeriteUnlockMappingEntry > sAzeriteUnlockMappingStore
TC_GAME_API DB2Storage< CreatureModelDataEntry > sCreatureModelDataStore
TC_GAME_API DB2Storage< ItemModifiedAppearanceEntry > sItemModifiedAppearanceStore
TC_GAME_API DB2Storage< ItemPriceBaseEntry > sItemPriceBaseStore
TC_GAME_API DB2Storage< ItemAppearanceEntry > sItemAppearanceStore
TC_GAME_API DB2Storage< ItemEffectEntry > sItemEffectStore
TC_GAME_API DB2Storage< TraitTreeXTraitCostEntry > sTraitTreeXTraitCostStore
TC_GAME_API DB2Storage< TraitDefinitionEffectPointsEntry > sTraitDefinitionEffectPointsStore
TC_GAME_API DB2Storage< CorruptionEffectsEntry > sCorruptionEffectsStore
TC_GAME_API DB2Storage< CurrencyTypesEntry > sCurrencyTypesStore
TC_GAME_API DB2Storage< ItemNameDescriptionEntry > sItemNameDescriptionStore
TC_GAME_API DB2Storage< TaxiNodesEntry > sTaxiNodesStore
TC_GAME_API DB2Storage< ChatChannelsEntry > sChatChannelsStore
TC_GAME_API DB2Storage< CampaignEntry > sCampaignStore
TC_GAME_API DB2Storage< MountEntry > sMountStore
TC_GAME_API DB2Storage< SpellReagentsCurrencyEntry > sSpellReagentsCurrencyStore
TC_GAME_API DB2Storage< SpellLevelsEntry > sSpellLevelsStore
TC_GAME_API DB2Storage< PhaseEntry > sPhaseStore
TC_GAME_API DB2Storage< AnimationDataEntry > sAnimationDataStore
TC_GAME_API DB2Storage< QuestFactionRewardEntry > sQuestFactionRewardStore
TC_GAME_API DB2Storage< ArtifactCategoryEntry > sArtifactCategoryStore
TC_GAME_API DB2Storage< TraitNodeEntryEntry > sTraitNodeEntryStore
TC_GAME_API DB2Storage< FlightCapabilityEntry > sFlightCapabilityStore
TC_GAME_API DB2Storage< TransmogOutfitEntryEntry > sTransmogOutfitEntryStore
TC_GAME_API DB2Storage< SpellLearnSpellEntry > sSpellLearnSpellStore
TC_GAME_API DB2Storage< ItemEntry > sItemStore
TC_GAME_API DB2Storage< BattlePetAbilityEntry > sBattlePetAbilityStore
TC_GAME_API DB2Storage< SoundKitEntry > sSoundKitStore
TC_GAME_API DB2Storage< CinematicCameraEntry > sCinematicCameraStore
TC_GAME_API DB2Storage< FactionEntry > sFactionStore
TC_GAME_API DB2Storage< TraitNodeXTraitCostEntry > sTraitNodeXTraitCostStore
TC_GAME_API TaxiPathNodesByPath sTaxiPathNodesByPath
TC_GAME_API DB2Storage< SpellEquippedItemsEntry > sSpellEquippedItemsStore
TC_GAME_API DB2Storage< EmotesEntry > sEmotesStore
TC_GAME_API DB2Storage< TraitTreeLoadoutEntry > sTraitTreeLoadoutStore
TC_GAME_API DB2Storage< DurabilityCostsEntry > sDurabilityCostsStore
TC_GAME_API DB2Storage< SpellNameEntry > sSpellNameStore
TC_GAME_API DB2Storage< BattlemasterListEntry > sBattlemasterListStore
TC_GAME_API DB2Storage< TraitTreeLoadoutEntryEntry > sTraitTreeLoadoutEntryStore
TC_GAME_API DB2Storage< GarrFollowerEntry > sGarrFollowerStore
TC_GAME_API DB2Storage< BattlePetSpeciesStateEntry > sBattlePetSpeciesStateStore
TC_GAME_API DB2Storage< UnitConditionEntry > sUnitConditionStore
TC_GAME_API DB2Storage< MythicPlusSeasonEntry > sMythicPlusSeasonStore
TC_GAME_API DB2Storage< GossipNPCOptionEntry > sGossipNPCOptionStore
TC_GAME_API DB2Storage< TraitTreeEntry > sTraitTreeStore
TC_GAME_API DB2Storage< RewardPackEntry > sRewardPackStore
TC_GAME_API DB2Storage< ItemBonusTreeEntry > sItemBonusTreeStore
TC_GAME_API DB2Storage< ScenarioEntry > sScenarioStore
TC_GAME_API DB2Storage< CharacterLoadoutEntry > sCharacterLoadoutStore
TC_GAME_API DB2Storage< ItemXBonusTreeEntry > sItemXBonusTreeStore
TC_GAME_API DB2Storage< QuestSortEntry > sQuestSortStore
TC_GAME_API DB2Storage< SpellCategoryEntry > sSpellCategoryStore
TC_GAME_API DB2Storage< LFGDungeonsEntry > sLFGDungeonsStore
TC_GAME_API DB2Storage< ImportPriceArmorEntry > sImportPriceArmorStore
TC_GAME_API DB2Storage< ItemOffsetCurveEntry > sItemOffsetCurveStore
TC_GAME_API DB2Storage< TraitSubTreeEntry > sTraitSubTreeStore
TC_GAME_API DB2Storage< JournalInstanceEntry > sJournalInstanceStore
TC_GAME_API DB2Storage< ItemContextPickerEntryEntry > sItemContextPickerEntryStore
TC_GAME_API DB2Storage< GameObjectArtKitEntry > sGameObjectArtKitStore
TC_GAME_API DB2Storage< SkillRaceClassInfoEntry > sSkillRaceClassInfoStore
TC_GAME_API DB2Storage< MapEntry > sMapStore
TC_GAME_API DB2Storage< ItemDamageAmmoEntry > sItemDamageAmmoStore
TC_GAME_API DB2Storage< MapDifficultyEntry > sMapDifficultyStore
TC_GAME_API DB2Storage< TransmogSetEntry > sTransmogSetStore
TC_GAME_API DB2Storage< SpellCooldownsEntry > sSpellCooldownsStore
TC_GAME_API DB2Storage< QuestInfoEntry > sQuestInfoStore
TC_GAME_API DB2Storage< GarrClassSpecEntry > sGarrClassSpecStore
TC_GAME_API DB2Storage< VehicleSeatEntry > sVehicleSeatStore
TC_GAME_API DB2Storage< UiMapEntry > sUiMapStore
TC_GAME_API DB2Storage< GarrTalentTreeEntry > sGarrTalentTreeStore
TC_GAME_API DB2Storage< MawPowerEntry > sMawPowerStore
TC_GAME_API DB2Storage< PlayerDataElementAccountEntry > sPlayerDataElementAccountStore
TC_GAME_API DB2Storage< GarrAbilityEntry > sGarrAbilityStore
TC_GAME_API DB2Storage< ItemSquishEraEntry > sItemSquishEraStore
TC_GAME_API DB2Storage< WorldStateExpressionEntry > sWorldStateExpressionStore
TC_GAME_API DB2Storage< GuildColorBackgroundEntry > sGuildColorBackgroundStore
TC_GAME_API DB2Storage< HolidaysEntry > sHolidaysStore
TC_GAME_API DB2Storage< ArtifactTierEntry > sArtifactTierStore
TC_GAME_API DB2Storage< AdventureMapPOIEntry > sAdventureMapPOIStore
TC_GAME_API DB2Storage< BattlePetBreedQualityEntry > sBattlePetBreedQualityStore
TC_GAME_API DB2Storage< ItemSpecOverrideEntry > sItemSpecOverrideStore
TC_GAME_API DB2Storage< ArtifactPowerPickerEntry > sArtifactPowerPickerStore
TC_GAME_API DB2Storage< ChrSpecializationEntry > sChrSpecializationStore
TC_GAME_API DB2Storage< SpellAuraOptionsEntry > sSpellAuraOptionsStore
TC_GAME_API DB2Storage< MailTemplateEntry > sMailTemplateStore
TC_GAME_API DB2Storage< JournalEncounterSectionEntry > sJournalEncounterSectionStore
TC_GAME_API DB2Storage< WorldMapOverlayEntry > sWorldMapOverlayStore
TC_GAME_API DB2Storage< EmotesTextEntry > sEmotesTextStore
TC_GAME_API DB2Storage< MountCapabilityEntry > sMountCapabilityStore
TC_GAME_API DB2Storage< MovieEntry > sMovieStore
TC_GAME_API DB2Storage< SpellClassOptionsEntry > sSpellClassOptionsStore
TC_GAME_API DB2Storage< ItemScalingConfigEntry > sItemScalingConfigStore
TC_GAME_API DB2Storage< SpellDurationEntry > sSpellDurationStore
TC_GAME_API DB2Storage< ArtifactUnlockEntry > sArtifactUnlockStore
TC_GAME_API DB2Storage< SpellShapeshiftFormEntry > sSpellShapeshiftFormStore
TC_GAME_API DB2Storage< ScenarioStepEntry > sScenarioStepStore
TC_GAME_API DB2Storage< BarberShopStyleEntry > sBarberShopStyleStore
TC_GAME_API DB2Storage< SpellCategoriesEntry > sSpellCategoriesStore
TC_GAME_API DB2Storage< TransmogHolidayEntry > sTransmogHolidayStore
TC_GAME_API DB2Storage< ModifiedCraftingItemEntry > sModifiedCraftingItemStore
TC_GAME_API DB2Storage< ModifierTreeEntry > sModifierTreeStore
TC_GAME_API DB2Storage< CreatureDisplayInfoExtraEntry > sCreatureDisplayInfoExtraStore
TC_GAME_API DB2Storage< AzeriteEssenceEntry > sAzeriteEssenceStore
TC_GAME_API DB2Storage< QuestMoneyRewardEntry > sQuestMoneyRewardStore
TC_GAME_API DB2Storage< TransmogIllusionEntry > sTransmogIllusionStore
TC_GAME_API DB2Storage< LanguagesEntry > sLanguagesStore
TC_GAME_API DB2Storage< MapChallengeModeEntry > sMapChallengeModeStore
std::vector< TaxiPathNodeList > TaxiPathNodesByPath
TC_GAME_API DB2Storage< AzeriteKnowledgeMultiplierEntry > sAzeriteKnowledgeMultiplierStore
TC_GAME_API DB2Storage< TraitNodeXTraitCondEntry > sTraitNodeXTraitCondStore
TC_GAME_API DB2Storage< SpellVisualEntry > sSpellVisualStore
TC_GAME_API DB2Storage< QuestXPEntry > sQuestXPStore
TC_GAME_API DB2Storage< GarrBuildingPlotInstEntry > sGarrBuildingPlotInstStore
TC_GAME_API DB2Storage< LightEntry > sLightStore
TC_GAME_API DB2Storage< ArtifactAppearanceSetEntry > sArtifactAppearanceSetStore
TC_GAME_API DB2Storage< ItemExtendedCostEntry > sItemExtendedCostStore
TC_GAME_API DB2Storage< SpellCastingRequirementsEntry > sSpellCastingRequirementsStore
TC_GAME_API DB2Storage< TransmogOutfitSlotOptionEntry > sTransmogOutfitSlotOptionInfoStore
TC_GAME_API DB2Storage< SpellCastTimesEntry > sSpellCastTimesStore
TC_GAME_API DB2Storage< GarrPlotBuildingEntry > sGarrPlotBuildingStore
TC_GAME_API DB2Storage< ItemLevelSelectorQualityEntry > sItemLevelSelectorQualityStore
TC_GAME_API DB2Storage< PvpTierEntry > sPvpTierStore
TC_GAME_API DB2Storage< GarrBuildingEntry > sGarrBuildingStore
TC_GAME_API DB2Storage< ItemSparseEntry > sItemSparseStore
TC_GAME_API DB2Storage< PlayerDataFlagAccountEntry > sPlayerDataFlagAccountStore
TC_GAME_API DB2Storage< TraitNodeXTraitNodeEntryEntry > sTraitNodeXTraitNodeEntryStore
TC_GAME_API DB2Storage< PvpTalentEntry > sPvpTalentStore
TC_GAME_API DB2Storage< ItemSpecEntry > sItemSpecStore
TC_GAME_API DB2Storage< TraitNodeEntryXTraitCondEntry > sTraitNodeEntryXTraitCondStore
TC_GAME_API DB2Storage< ImportPriceWeaponEntry > sImportPriceWeaponStore
TC_GAME_API DB2Storage< PvpTalentSlotUnlockEntry > sPvpTalentSlotUnlockStore
TC_GAME_API DB2Storage< ConversationLineEntry > sConversationLineStore
TC_GAME_API DB2Storage< PlayerDataFlagCharacterEntry > sPlayerDataFlagCharacterStore
TC_GAME_API DB2Storage< ItemArmorShieldEntry > sItemArmorShieldStore
TC_GAME_API DB2Storage< GarrFollowerXAbilityEntry > sGarrFollowerXAbilityStore
TC_GAME_API DB2Storage< ItemSetSpellEntry > sItemSetSpellStore
TC_GAME_API DB2Storage< SpellFocusObjectEntry > sSpellFocusObjectStore
TC_GAME_API DB2Storage< GemPropertiesEntry > sGemPropertiesStore
TC_GAME_API DB2Storage< TransmogOutfitSlotInfoEntry > sTransmogOutfitSlotInfoStore
TC_GAME_API DB2Storage< SpellPowerEntry > sSpellPowerStore
TC_GAME_API DB2Storage< TraitCondEntry > sTraitCondStore
TC_GAME_API DB2Storage< PVPStatEntry > sPVPStatStore
TC_GAME_API DB2Storage< SkillLineAbilityEntry > sSkillLineAbilityStore
TC_GAME_API DB2Storage< ItemBagFamilyEntry > sItemBagFamilyStore
TC_GAME_API DB2Storage< LocationEntry > sLocationStore
TC_GAME_API DB2Storage< SkillLineXTraitTreeEntry > sSkillLineXTraitTreeStore
TC_GAME_API DB2Storage< VignetteEntry > sVignetteStore
TC_GAME_API DB2Storage< FriendshipReputationEntry > sFriendshipReputationStore
TC_GAME_API DB2Storage< ItemDisenchantLootEntry > sItemDisenchantLootStore
TC_GAME_API DB2Storage< TransmogSituationEntry > sTransmogSituationStore
TC_GAME_API DB2Storage< TraitNodeGroupXTraitNodeEntry > sTraitNodeGroupXTraitNodeStore
TC_GAME_API DB2Storage< TraitCostEntry > sTraitCostStore
TC_GAME_API DB2Storage< ConditionalChrModelEntry > sConditionalChrModelStore
TC_GAME_API DB2Storage< CampaignXQuestLineEntry > sCampaignXQuestLineStore
TC_GAME_API DB2Storage< ChrCustomizationOptionEntry > sChrCustomizationOptionStore
TC_GAME_API DB2Storage< CriteriaTreeEntry > sCriteriaTreeStore
TC_GAME_API DB2Storage< GameObjectsEntry > sGameObjectsStore
TC_GAME_API DB2Storage< SpellKeyboundOverrideEntry > sSpellKeyboundOverrideStore
TC_GAME_API TaxiMask sHordeTaxiNodesMask
TC_GAME_API DB2Storage< AnimKitEntry > sAnimKitStore
TC_GAME_API DB2Storage< SpellPowerDifficultyEntry > sSpellPowerDifficultyStore
TC_GAME_API DB2Storage< BroadcastTextEntry > sBroadcastTextStore
TC_GAME_API DB2Storage< ImportPriceShieldEntry > sImportPriceShieldStore
TC_GAME_API DB2Storage< ContentTuningEntry > sContentTuningStore
TC_GAME_API DB2Storage< PowerDisplayEntry > sPowerDisplayStore
TC_GAME_API DB2Storage< CreatureFamilyEntry > sCreatureFamilyStore
TC_GAME_API DB2Storage< AuctionHouseEntry > sAuctionHouseStore
TC_GAME_API DB2Storage< CreatureTypeEntry > sCreatureTypeStore
TC_GAME_API DB2Storage< GarrPlotInstanceEntry > sGarrPlotInstanceStore
TC_GAME_API DB2Storage< TraitSystemEntry > sTraitSystemStore
TC_GAME_API DB2Storage< ImportPriceQualityEntry > sImportPriceQualityStore
TC_GAME_API DB2Storage< VehicleEntry > sVehicleStore
TC_GAME_API DB2Storage< TraitNodeGroupEntry > sTraitNodeGroupStore
#define DEFINE_DB2_SET_COMPARATOR(structure)
TC_GAME_API DB2Storage< TraitNodeGroupXTraitCondEntry > sTraitNodeGroupXTraitCondStore
TC_GAME_API DB2Storage< PowerTypeEntry > sPowerTypeStore
TC_GAME_API DB2Storage< ServerMessagesEntry > sServerMessagesStore
TC_GAME_API DB2Storage< SpellEmpowerStageEntry > sSpellEmpowerStageStore
TC_GAME_API DB2Storage< AreaTableEntry > sAreaTableStore
TC_GAME_API DB2Storage< ItemDamageOneHandCasterEntry > sItemDamageOneHandCasterStore
TC_GAME_API DB2Storage< ArtifactPowerEntry > sArtifactPowerStore
TC_GAME_API DB2Storage< DestructibleModelDataEntry > sDestructibleModelDataStore
TC_GAME_API DB2Storage< LockEntry > sLockStore
TC_GAME_API DB2Storage< SpellRangeEntry > sSpellRangeStore
TC_GAME_API DB2Storage< DungeonEncounterEntry > sDungeonEncounterStore
TC_GAME_API DB2Storage< ItemArmorTotalEntry > sItemArmorTotalStore
TC_GAME_API DB2Storage< GarrSiteLevelPlotInstEntry > sGarrSiteLevelPlotInstStore
TC_GAME_API DB2Storage< AzeriteItemMilestonePowerEntry > sAzeriteItemMilestonePowerStore
TC_GAME_API DB2Storage< Cfg_RegionsEntry > sCfgRegionsStore
TC_GAME_API DB2Storage< Cfg_CategoriesEntry > sCfgCategoriesStore
TC_GAME_API DB2Storage< SpellLabelEntry > sSpellLabelStore
TC_GAME_API DB2Storage< AchievementEntry > sAchievementStore
TC_GAME_API DB2Storage< KeystoneAffixEntry > sKeystoneAffixStore
TC_GAME_API DB2Storage< AzeriteLevelInfoEntry > sAzeriteLevelInfoStore
TC_GAME_API DB2Storage< SpellVisualEffectNameEntry > sSpellVisualEffectNameStore
TC_GAME_API DB2Storage< PlayerDataElementCharacterEntry > sPlayerDataElementCharacterStore
TC_GAME_API DB2Storage< ItemDamageTwoHandCasterEntry > sItemDamageTwoHandCasterStore
TC_GAME_API DB2Storage< GameObjectDisplayInfoEntry > sGameObjectDisplayInfoStore
TC_GAME_API DB2Storage< PvpTalentCategoryEntry > sPvpTalentCategoryStore
TC_GAME_API DB2Storage< FactionTemplateEntry > sFactionTemplateStore
TC_GAME_API DB2Storage< ChallengeModeItemBonusOverrideEntry > sChallengeModeItemBonusOverrideStore
TC_GAME_API DB2Storage< SpellEffectEntry > sSpellEffectStore
@ AZERITE_TIER_UNLOCK_SET_FLAG_DEFAULT
@ UI_MAP_SYSTEM_ADVENTURE
#define MAX_AZERITE_EMPOWERED_TIER
@ DIFFICULTY_FLAG_DEFAULT
constexpr size_t PLAYER_EXPLORED_ZONES_SIZE
#define MAX_PVP_TALENT_SLOTS
#define MAX_TALENT_COLUMNS
@ MAX_BATTLEGROUND_BRACKETS
#define MAX_AZERITE_ESSENCE_SLOT
@ QUEST_PACKAGE_FILTER_UNMATCHED
std::shared_ptr< ResultSet > QueryResult
DatabaseWorkerPool< HotfixDatabaseConnection > HotfixDatabase
Accessor to the hotfix database.
@ ITEM_ACCOUNT_BANK_TAB_BAG
@ ITEM_CHARACTER_BANK_TAB_BAG
#define TC_LOG_ERROR(filterType__, message__,...)
#define TC_LOG_FATAL(filterType__, message__,...)
#define TC_LOG_INFO(filterType__, message__,...)
std::optional< T > Optional
Optional helper class to wrap optional values within.
#define MAX_POWERS_PER_CLASS
constexpr uint32 GetMaxLevelForExpansion(uint32 expansion)
#define MAX_SPECIALIZATIONS
#define PET_SPEC_OVERRIDE_CLASS_INDEX
#define INITIAL_SPECIALIZATION_INDEX
uint32 GetMSTimeDiffToNow(uint32 oldMSTime)
void strToLower(std::string &str)
bool Utf8toWStr(char const *utf8str, size_t csize, wchar_t *wstr, size_t &wsize)
AzeriteEssencePowerEntry const * GetAzeriteEssencePower(uint32 azeriteEssenceId, uint32 rank) const
std::vector< RewardPackXCurrencyTypeEntry const * > const * GetRewardPackCurrencyTypesByRewardID(uint32 rewardPackID) const
SoulbindConduitRankEntry const * GetSoulbindConduitRank(int32 soulbindConduitId, int32 rank) const
int32 const * GetBroadcastTextDuration(uint32 broadcastTextId, LocaleConstant locale=DEFAULT_LOCALE) const
std::vector< ItemSetSpellEntry const * > const * GetItemSetSpells(uint32 itemSetId) const
ChrModelEntry const * GetChrModel(uint8 race, uint8 gender) const
float EvaluateExpectedStat(ExpectedStatType stat, uint32 level, int32 expansion, uint32 contentTuningId, Classes unitClass, int32 mythicPlusMilestoneSeason) const
static char const * GetChrClassName(uint8 class_, LocaleConstant locale=DEFAULT_LOCALE)
static ContentTuningEntry const * GetContentTuningForArea(AreaTableEntry const *areaEntry)
std::vector< uint32 > const * GetArtifactPowerLinks(uint32 artifactPowerId) const
SkillRaceClassInfoEntry const * GetSkillRaceClassInfo(uint32 skill, uint8 race, uint8 class_) const
static char const * GetBroadcastTextValue(BroadcastTextEntry const *broadcastText, LocaleConstant locale=DEFAULT_LOCALE, uint8 gender=GENDER_MALE, bool forceGender=false)
FriendshipRepReactionSet const * GetFriendshipRepReactions(uint32 friendshipRepID) const
std::vector< uint32 > const * GetFactionTeamList(uint32 faction) const
bool IsSpecSetMember(int32 specSetId, uint32 specId) const
uint32 GetRequiredAzeriteLevelForAzeritePowerTier(uint32 azeriteUnlockSetId, ItemContext context, uint32 tier) const
std::vector< SpellVisualMissileEntry const * > const * GetSpellVisualMissiles(int32 spellVisualMissileSetId) const
MountEntry const * GetMountById(uint32 id) const
ItemClassEntry const * GetItemClassByOldEnum(uint32 itemClass) const
std::vector< SkillLineEntry const * > const * GetSkillLinesForParentSkill(uint32 parentSkillId) const
MapDifficultyEntry const * GetMapDifficultyData(uint32 mapId, Difficulty difficulty) const
std::vector< ItemLimitCategoryConditionEntry const * > const * GetItemLimitCategoryConditions(uint32 categoryId) const
static bool IsTotemCategoryCompatibleWith(uint32 itemTotemCategoryId, uint32 requiredTotemCategoryId, bool requireAllTotems=true)
static uint32 GetPowerIndexByClass(Powers power, uint32 classId)
MapDifficultyEntry const * GetDefaultMapDifficulty(uint32 mapId) const
ItemChildEquipmentEntry const * GetItemChildEquipment(uint32 itemId) const
std::vector< AzeriteItemMilestonePowerEntry const * > const & GetAzeriteItemMilestonePowers() const
static DB2Manager & Instance()
uint32 GetRequiredLevelForPvpTalentSlot(uint8 slot, Classes class_) const
static ClassPowerTypes GetPowerTypesByClass(uint32 classId)
std::vector< std::pair< uint32, PlayerConditionEntry const * > > MapDifficultyConditionsContainer
uint32 GetEmptyAnimStateID() const
std::span< int32 const > GetGameObjectLabels(uint32 gameobjectId) const
MapDifficultyConditionsContainer const * GetMapDifficultyConditions(uint32 mapDifficultyId) const
std::vector< ChrSpecialization > const * GetGlyphRequiredSpecs(uint32 glyphPropertiesId) const
static PVPDifficultyEntry const * GetBattlegroundBracketById(uint32 mapid, BattlegroundBracketId id)
ChrSpecializationEntry const * GetChrSpecializationByIndex(uint32 class_, uint32 index) const
uint32 GetQuestUniqueBitFlag(uint32 questId)
std::vector< uint32 > const * GetPhasesForGroup(uint32 group) const
MountXDisplayContainer const * GetMountDisplays(uint32 mountId) const
DB2StorageBase const * GetStorage(uint32 type) const
static LFGDungeonsEntry const * GetLfgDungeon(uint32 mapId, Difficulty difficulty)
void Map2ZoneCoordinates(uint32 areaId, float &x, float &y) const
static CharBaseInfoEntry const * GetCharBaseInfo(Races race, Classes class_)
HotfixContainer const & GetHotfixData() const
static uint32 GetLiquidFlags(uint32 liquidType)
static char const * GetChrRaceName(uint8 race, LocaleConstant locale=DEFAULT_LOCALE)
std::map< int32, HotfixPush > HotfixContainer
TaxiPathEntry const * GetTaxiPath(uint32 from, uint32 to) const
std::vector< RewardPackXItemEntry const * > const * GetRewardPackItemsByRewardID(uint32 rewardPackID) const
PowerTypeEntry const * GetPowerTypeByName(std::string const &name) const
static bool GetUiMapPosition(float x, float y, float z, int32 mapId, int32 areaId, int32 wmoDoodadPlacementId, int32 wmoGroupId, UiMapSystem system, bool local, uint32 *uiMapId=nullptr, DBCPosition2D *newPos=nullptr)
bool Zone2MapCoordinates(uint32 areaId, float &x, float &y) const
ChrClassUIDisplayEntry const * GetUiDisplayForClass(Classes unitClass) const
AzeriteEmpoweredItemEntry const * GetAzeriteEmpoweredItem(uint32 itemId) const
std::vector< uint32 > const * GetGlyphBindableSpells(uint32 glyphPropertiesId) const
PathDb2 const * GetPath(uint32 pathId) const
JournalTierEntry const * GetJournalTier(uint32 index) const
std::vector< ItemSpecOverrideEntry const * > const * GetItemSpecOverrides(uint32 itemId) const
ChrSpecializationEntry const * GetDefaultChrSpecializationForClass(uint32 class_) const
MountTypeXCapabilitySet const * GetMountCapabilities(uint32 mountType) const
bool HasItemCurrencyCost(uint32 itemId) const
std::vector< HotfixOptionalData > const * GetHotfixOptionalData(uint32 tableHash, int32 recordId, LocaleConstant locale) const
CurrencyContainerEntry const * GetCurrencyContainerForCurrencyQuantity(uint32 currencyId, int32 quantity) const
std::vector< ChrCustomizationChoiceEntry const * > const * GetCustomiztionChoices(uint32 chrCustomizationOptionId) const
ShapeshiftFormModelData const * GetShapeshiftFormModelData(uint8 race, uint8 gender, uint8 form) const
static int32 GetNumTalentsAtLevel(uint32 level, Classes playerClass)
std::vector< std::pair< uint32, std::vector< uint32 > > > const * GetRequiredCustomizationChoices(uint32 chrCustomizationReqId) const
void InsertNewHotfix(uint32 tableHash, uint32 recordId)
ParagonReputationEntry const * GetParagonReputation(uint32 factionId) const
uint32 GetGlobalCurveId(GlobalCurve globalCurveType) const
static bool IsInArea(uint32 objectAreaId, uint32 areaId)
bool IsAzeriteItem(uint32 itemId) const
std::vector< SpellProcsPerMinuteModEntry const * > GetSpellProcsPerMinuteMods(uint32 spellprocsPerMinuteId) const
AzeriteItemMilestonePowerEntry const * GetAzeriteItemMilestonePower(uint8 slot) const
Optional< ContentTuningLevels > GetContentTuningData(uint32 contentTuningId, std::span< uint32 const > redirectFlag, bool forItem=false) const
static PVPDifficultyEntry const * GetBattlegroundBracketByLevel(uint32 mapid, uint32 level)
static bool IsValidSpellFamiliyName(SpellFamilyNames family)
HeirloomEntry const * GetHeirloomByItemId(uint32 itemId) const
std::string GetNameGenEntry(uint8 race, uint8 gender) const
bool IsToyItem(uint32 toy) const
std::span< int32 const > GetCreatureLabels(uint32 creatureDifficultyId) const
std::vector< TalentEntry const * > const & GetTalentsByPosition(uint32 class_, uint32 tier, uint32 column) const
void LoadHotfixBlob(uint32 localeMask)
EmotesTextSoundEntry const * GetTextSoundEmoteFor(uint32 emote, uint8 race, uint8 gender, uint8 class_) const
ArtifactPowerRankEntry const * GetArtifactPowerRank(uint32 artifactPowerId, uint8 rank) const
static ConditionalChrModelEntry const * GetConditionalChrModel(int32 chrModelId)
float GetCurveValueAt(uint32 curveId, float x) const
std::vector< MountXDisplayEntry const * > MountXDisplayContainer
std::vector< AzeritePowerSetMemberEntry const * > const * GetAzeritePowers(uint32 itemId) const
static std::string_view GetDifficultyName(Difficulty difficulty)
void LoadHotfixOptionalData(uint32 localeMask)
MapDifficultyEntry const * GetDownscaledMapDifficultyData(uint32 mapId, Difficulty difficulty) const
std::vector< SpecializationSpellsEntry const * > const * GetSpecializationSpells(uint32 specId) const
bool HasContentTuningLabel(uint32 contentTuningId, int32 label) const
MountEntry const * GetMount(uint32 spellId) const
static uint32 GetDefaultMapLight(uint32 mapId)
std::vector< QuestPackageItemEntry const * > const * GetQuestPackageItems(uint32 questPackageID) const
std::vector< uint32 > GetAreasForGroup(uint32 areaGroupId) const
std::vector< uint8 > const * GetHotfixBlobData(uint32 tableHash, int32 recordId, LocaleConstant locale) const
uint32 GetHotfixCount() const
std::unordered_set< uint32 > const * GetPVPStatIDsForMap(uint32 mapId) const
std::vector< ArtifactPowerEntry const * > GetArtifactPowers(uint8 artifactId) const
ResponseCodes ValidateName(std::wstring const &name, LocaleConstant locale) const
std::set< MountTypeXCapabilityEntry const *, MountTypeXCapabilityEntryComparator > MountTypeXCapabilitySet
static WMOAreaTableEntry const * GetWMOAreaTable(int32 rootId, int32 adtId, int32 groupId, bool allowGroupFallback)
bool IsUiMapPhase(uint32 phaseId) const
PowerTypeEntry const * GetPowerTypeEntry(Powers power) const
uint32 LoadStores(std::string const &dataPath, LocaleConstant defaultLocale)
std::vector< QuestPackageItemEntry const * > const * GetQuestPackageItemsFallback(uint32 questPackageID) const
std::set< FriendshipRepReactionEntry const *, FriendshipRepReactionEntryComparator > FriendshipRepReactionSet
std::vector< ChrCustomizationOptionEntry const * > const * GetCustomiztionOptions(uint8 race, uint8 gender) const
static char const * GetCreatureFamilyPetName(uint32 petfamily, LocaleConstant locale)
uint32 GetRedirectedContentTuningId(uint32 contentTuningId, std::span< uint32 const > redirectFlag) const
std::vector< SkillLineAbilityEntry const * > const * GetSkillLineAbilitiesBySkill(uint32 skillId) const
void LoadHotfixData(uint32 localeMask)
int32 GetPvpTalentNumSlotsAtLevel(uint32 level, Classes class_) const
std::pair< float, float > GetCurveXAxisRange(uint32 curveId) const
Interface class for common access.
uint32 GetTableHash() const
std::string const & GetFileName() const
void LoadStringsFromDB(LocaleConstant locale)
DB2LoadInfo const * GetLoadInfo() const
void Load(std::string const &path, LocaleConstant locale)
void LoadStringsFrom(std::string const &path, LocaleConstant locale)
Class used to access individual fields of database query result.
std::vector< uint8 > GetBinary() const noexcept
uint32 GetUInt32() const noexcept
uint8 GetUInt8() const noexcept
int32 GetInt32() const noexcept
std::string GetString() const noexcept
std::vector< value_type > _data
auto MapEqualRange(M &map, typename M::key_type const &key)
auto SelectRandomContainerElement(C const &container) -> std::add_const_t< decltype(*std::ranges::begin(container))> &
auto MapGetValuePtr(M &map, typename M::key_type const &key)
std::string StringFormat(FormatString< Args... > fmt, Args &&... args) noexcept
Default TC string format function.
TC_REGEX_NAMESPACE ::wregex wregex
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
int32 TargetLevelMaxDelta
EnumFlag< ContentTuningFlag > GetFlags() const
static constexpr DB2LoadInfo Instance
int32 MaxMythicPlusSeasonID
int32 MinMythicPlusSeasonID
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
DB2FieldMeta const * Fields
std::vector< uint8 > Data
uint32 AvailableLocalesMask
std::vector< HotfixRecord > Records
uint32 AvailableLocalesMask
static constexpr DB2LoadInfo Instance
int16 FallbackDifficultyID
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
float CreatureSpellDamageMod
float PlayerSecondaryStatMod
float CreatureAutoAttackDPSMod
float PlayerPrimaryStatMod
static constexpr DB2LoadInfo Instance
int32 ActiveMilestoneSeason
ExpectedStatModReducer(int32 mythicPlusMilestoneSeason)
float operator()(float mod, ContentTuningXExpectedEntry const *contentTuningXExpected) const
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
int32 NumTalentsDemonHunter
int32 NumTalentsDeathKnight
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
std::vector< DBCPosition3D > Locations
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
char const * NameGlobalStringTag
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
std::array< DBCPosition3D, 2 > Region
int32 WmoDoodadPlacementID
static constexpr DB2LoadInfo Instance
UiMapAssignmentEntry const * UiMapAssignment
struct UiMapAssignmentStatus::@192 Outside
float DistanceToRegionEdgeSquared
float DistanceToRegionBottom
float DistanceToRegionTop
float DistanceToRegionCenterSquared
struct UiMapAssignmentStatus::@191 Inside
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance
static constexpr DB2LoadInfo Instance