TrinityCore
Loading...
Searching...
No Matches
DB2Stores.h
Go to the documentation of this file.
1/*
2 * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License as published by the
6 * Free Software Foundation; either version 2 of the License, or (at your
7 * option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12 * more details.
13 *
14 * You should have received a copy of the GNU General Public License along
15 * with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#ifndef TRINITY_DB2STORES_H
19#define TRINITY_DB2STORES_H
20
21#include "DB2Store.h"
22#include "DB2Structure.h"
23#include "Optional.h"
24#include "SharedDefines.h"
25#include "advstd.h"
26#include <map>
27#include <set>
28#include <span>
29#include <unordered_set>
30#include <vector>
31
33
331
341
343{
345 std::vector<DBCPosition3D> Locations;
346 std::vector<PathPropertyEntry const*> Properties;
347};
348
350{
352 std::vector<ChrCustomizationChoiceEntry const*> const* Choices;
353 std::vector<ChrCustomizationDisplayInfoEntry const*> Displays;
354};
355
364
365using TaxiPathNodeList = std::vector<TaxiPathNodeEntry const*>;
366using TaxiPathNodesByPath = std::vector<TaxiPathNodeList>;
367
373
374#define DEFINE_DB2_SET_COMPARATOR(structure) \
375 struct structure ## Comparator \
376 { \
377 bool operator()(structure const* left, structure const* right) const { return Compare(left, right); } \
378 static bool Compare(structure const* left, structure const* right); \
379 };
380
382{
383public:
386
387 struct HotfixId
388 {
389 int32 PushID = 0;
390 uint32 UniqueID = 0;
391
392 friend std::strong_ordering operator<=>(HotfixId const& left, HotfixId const& right) = default;
393 };
394
396 {
397 enum class Status : uint8
398 {
399 NotSet = 0,
400 Valid = 1,
401 RecordRemoved = 2,
402 Invalid = 3,
403 NotPublic = 4
404 };
405
406 uint32 TableHash = 0;
407 int32 RecordID = 0;
409 Status HotfixStatus = Status::Invalid;
410
411 uint32 AvailableLocalesMask = 0;
412
413 friend std::strong_ordering operator<=>(HotfixRecord const& left, HotfixRecord const& right)
414 {
415 if (std::strong_ordering cmp = left.ID <=> right.ID; advstd::is_neq(cmp))
416 return cmp;
417 if (std::strong_ordering cmp = left.TableHash <=> right.TableHash; advstd::is_neq(cmp))
418 return cmp;
419 if (std::strong_ordering cmp = left.RecordID <=> right.RecordID; advstd::is_neq(cmp))
420 return cmp;
421 return std::strong_ordering::equal;
422 }
423 };
424
426 {
427 uint32 Key = 0;
428 std::vector<uint8> Data;
429 };
430
432 {
433 std::vector<HotfixRecord> Records;
434 uint32 AvailableLocalesMask = 0;
435 };
436
437 using HotfixContainer = std::map<int32, HotfixPush>;
438
439 using FriendshipRepReactionSet = std::set<FriendshipRepReactionEntry const*, FriendshipRepReactionEntryComparator>;
440 using MapDifficultyConditionsContainer = std::vector<std::pair<uint32, PlayerConditionEntry const*>>;
441 using MountTypeXCapabilitySet = std::set<MountTypeXCapabilityEntry const*, MountTypeXCapabilityEntryComparator>;
442 using MountXDisplayContainer = std::vector<MountXDisplayEntry const*>;
443
444 static DB2Manager& Instance();
445
446 uint32 LoadStores(std::string const& dataPath, LocaleConstant defaultLocale);
447 void IndexLoadedStores();
448 DB2StorageBase const* GetStorage(uint32 type) const;
449
450 void LoadHotfixData(uint32 localeMask);
451 void LoadHotfixBlob(uint32 localeMask);
452 void LoadHotfixOptionalData(uint32 localeMask);
453 uint32 GetHotfixCount() const;
454 HotfixContainer const& GetHotfixData() const;
455 std::vector<uint8> const* GetHotfixBlobData(uint32 tableHash, int32 recordId, LocaleConstant locale) const;
456 std::vector<HotfixOptionalData> const* GetHotfixOptionalData(uint32 tableHash, int32 recordId, LocaleConstant locale) const;
457
458 uint32 GetEmptyAnimStateID() const;
459 std::vector<uint32> GetAreasForGroup(uint32 areaGroupId) const;
460 static bool IsInArea(uint32 objectAreaId, uint32 areaId);
461 static ContentTuningEntry const* GetContentTuningForArea(AreaTableEntry const* areaEntry);
462 std::vector<ArtifactPowerEntry const*> GetArtifactPowers(uint8 artifactId) const;
463 std::vector<uint32> const* GetArtifactPowerLinks(uint32 artifactPowerId) const;
464 ArtifactPowerRankEntry const* GetArtifactPowerRank(uint32 artifactPowerId, uint8 rank) const;
465 AzeriteEmpoweredItemEntry const* GetAzeriteEmpoweredItem(uint32 itemId) const;
466 bool IsAzeriteItem(uint32 itemId) const;
467 AzeriteEssencePowerEntry const* GetAzeriteEssencePower(uint32 azeriteEssenceId, uint32 rank) const;
468 std::vector<AzeriteItemMilestonePowerEntry const*> const& GetAzeriteItemMilestonePowers() const;
469 AzeriteItemMilestonePowerEntry const* GetAzeriteItemMilestonePower(uint8 slot) const;
470 std::vector<AzeritePowerSetMemberEntry const*> const* GetAzeritePowers(uint32 itemId) const;
471 uint32 GetRequiredAzeriteLevelForAzeritePowerTier(uint32 azeriteUnlockSetId, ItemContext context, uint32 tier) const;
472 static char const* GetBroadcastTextValue(BroadcastTextEntry const* broadcastText, LocaleConstant locale = DEFAULT_LOCALE, uint8 gender = GENDER_MALE, bool forceGender = false);
473 int32 const* GetBroadcastTextDuration(uint32 broadcastTextId, LocaleConstant locale = DEFAULT_LOCALE) const;
474 static CharBaseInfoEntry const* GetCharBaseInfo(Races race, Classes class_);
475 ChrClassUIDisplayEntry const* GetUiDisplayForClass(Classes unitClass) const;
476 static char const* GetChrClassName(uint8 class_, LocaleConstant locale = DEFAULT_LOCALE);
477 uint32 GetPowerIndexByClass(Powers power, uint32 classId) const;
478 std::vector<ChrCustomizationChoiceEntry const*> const* GetCustomiztionChoices(uint32 chrCustomizationOptionId) const;
479 std::vector<ChrCustomizationOptionEntry const*> const* GetCustomiztionOptions(uint8 race, uint8 gender) const;
480 std::vector<std::pair<uint32, std::vector<uint32>>> const* GetRequiredCustomizationChoices(uint32 chrCustomizationReqId) const;
481 ChrModelEntry const* GetChrModel(uint8 race, uint8 gender) const;
482 static ConditionalChrModelEntry const* GetConditionalChrModel(int32 chrModelId);
483 static char const* GetChrRaceName(uint8 race, LocaleConstant locale = DEFAULT_LOCALE);
484 ChrSpecializationEntry const* GetChrSpecializationByIndex(uint32 class_, uint32 index) const;
485 ChrSpecializationEntry const* GetDefaultChrSpecializationForClass(uint32 class_) const;
486 uint32 GetRedirectedContentTuningId(uint32 contentTuningId, std::span<uint32 const> redirectFlag) const;
487 Optional<ContentTuningLevels> GetContentTuningData(uint32 contentTuningId, std::span<uint32 const> redirectFlag, bool forItem = false) const;
488 bool HasContentTuningLabel(uint32 contentTuningId, int32 label) const;
489 static char const* GetCreatureFamilyPetName(uint32 petfamily, LocaleConstant locale);
490 std::span<int32 const> GetCreatureLabels(uint32 creatureDifficultyId) const;
491 CurrencyContainerEntry const* GetCurrencyContainerForCurrencyQuantity(uint32 currencyId, int32 quantity) const;
492 std::pair<float, float> GetCurveXAxisRange(uint32 curveId) const;
493 float GetCurveValueAt(uint32 curveId, float x) const;
494 float GetCurveValueAt(CurveInterpolationMode mode, std::span<DBCPosition2D const> points, float x) const;
495 static std::string_view GetDifficultyName(Difficulty difficulty);
496 EmotesTextSoundEntry const* GetTextSoundEmoteFor(uint32 emote, uint8 race, uint8 gender, uint8 class_) const;
497 float EvaluateExpectedStat(ExpectedStatType stat, uint32 level, int32 expansion, uint32 contentTuningId, Classes unitClass, int32 mythicPlusMilestoneSeason) const;
498 std::vector<uint32> const* GetFactionTeamList(uint32 faction) const;
499 FriendshipRepReactionSet const* GetFriendshipRepReactions(uint32 friendshipRepID) const;
500 std::span<int32 const> GetGameObjectLabels(uint32 gameobjectId) const;
501 uint32 GetGlobalCurveId(GlobalCurve globalCurveType) const;
502 std::vector<uint32> const* GetGlyphBindableSpells(uint32 glyphPropertiesId) const;
503 std::vector<ChrSpecialization> const* GetGlyphRequiredSpecs(uint32 glyphPropertiesId) const;
504 HeirloomEntry const* GetHeirloomByItemId(uint32 itemId) const;
505 ItemChildEquipmentEntry const* GetItemChildEquipment(uint32 itemId) const;
506 ItemClassEntry const* GetItemClassByOldEnum(uint32 itemClass) const;
507 bool HasItemCurrencyCost(uint32 itemId) const;
508 std::vector<ItemLimitCategoryConditionEntry const*> const* GetItemLimitCategoryConditions(uint32 categoryId) const;
509 std::vector<ItemSetSpellEntry const*> const* GetItemSetSpells(uint32 itemSetId) const;
510 std::vector<ItemSpecOverrideEntry const*> const* GetItemSpecOverrides(uint32 itemId) const;
511 JournalTierEntry const* GetJournalTier(uint32 index) const;
512 static LFGDungeonsEntry const* GetLfgDungeon(uint32 mapId, Difficulty difficulty);
513 static uint32 GetDefaultMapLight(uint32 mapId);
514 static uint32 GetLiquidFlags(uint32 liquidType);
515 MapDifficultyEntry const* GetDefaultMapDifficulty(uint32 mapId, Difficulty* difficulty = nullptr) const;
516 MapDifficultyEntry const* GetMapDifficultyData(uint32 mapId, Difficulty difficulty) const;
517 MapDifficultyEntry const* GetDownscaledMapDifficultyData(uint32 mapId, Difficulty &difficulty) const;
518 MapDifficultyConditionsContainer const* GetMapDifficultyConditions(uint32 mapDifficultyId) const;
519 MountEntry const* GetMount(uint32 spellId) const;
520 MountEntry const* GetMountById(uint32 id) const;
521 MountTypeXCapabilitySet const* GetMountCapabilities(uint32 mountType) const;
522 MountXDisplayContainer const* GetMountDisplays(uint32 mountId) const;
523 std::string GetNameGenEntry(uint8 race, uint8 gender) const;
524 ResponseCodes ValidateName(std::wstring const& name, LocaleConstant locale) const;
525 static int32 GetNumTalentsAtLevel(uint32 level, Classes playerClass);
526 ParagonReputationEntry const* GetParagonReputation(uint32 factionId) const;
527 PathDb2 const* GetPath(uint32 pathId) const;
528 std::vector<uint32> const* GetPhasesForGroup(uint32 group) const;
529 PowerTypeEntry const* GetPowerTypeEntry(Powers power) const;
530 PowerTypeEntry const* GetPowerTypeByName(std::string const& name) const;
531 static PVPDifficultyEntry const* GetBattlegroundBracketByLevel(uint32 mapid, uint32 level);
532 static PVPDifficultyEntry const* GetBattlegroundBracketById(uint32 mapid, BattlegroundBracketId id);
533 uint32 GetRequiredLevelForPvpTalentSlot(uint8 slot, Classes class_) const;
534 int32 GetPvpTalentNumSlotsAtLevel(uint32 level, Classes class_) const;
535 std::vector<QuestPackageItemEntry const*> const* GetQuestPackageItems(uint32 questPackageID) const;
536 std::vector<QuestPackageItemEntry const*> const* GetQuestPackageItemsFallback(uint32 questPackageID) const;
537 uint32 GetQuestUniqueBitFlag(uint32 questId);
538 std::vector<RewardPackXCurrencyTypeEntry const*> const* GetRewardPackCurrencyTypesByRewardID(uint32 rewardPackID) const;
539 std::vector<RewardPackXItemEntry const*> const* GetRewardPackItemsByRewardID(uint32 rewardPackID) const;
540 ShapeshiftFormModelData const* GetShapeshiftFormModelData(uint8 race, uint8 gender, uint8 form) const;
541 std::vector<SkillLineEntry const*> const* GetSkillLinesForParentSkill(uint32 parentSkillId) const;
542 std::vector<SkillLineAbilityEntry const*> const* GetSkillLineAbilitiesBySkill(uint32 skillId) const;
543 SkillRaceClassInfoEntry const* GetSkillRaceClassInfo(uint32 skill, uint8 race, uint8 class_) const;
544 std::vector<SkillRaceClassInfoEntry const*> GetSkillRaceClassInfo(uint32 skill) const;
545 SoulbindConduitRankEntry const* GetSoulbindConduitRank(int32 soulbindConduitId, int32 rank) const;
546 std::vector<SpecializationSpellsEntry const*> const* GetSpecializationSpells(uint32 specId) const;
547 bool IsSpecSetMember(int32 specSetId, uint32 specId) const;
548 static bool IsValidSpellFamiliyName(SpellFamilyNames family);
549 std::vector<SpellProcsPerMinuteModEntry const*> GetSpellProcsPerMinuteMods(uint32 spellprocsPerMinuteId) const;
550 std::vector<SpellVisualMissileEntry const*> const* GetSpellVisualMissiles(int32 spellVisualMissileSetId) const;
551 std::vector<TalentEntry const*> const& GetTalentsByPosition(uint32 class_, uint32 tier, uint32 column) const;
552 TaxiPathEntry const* GetTaxiPath(uint32 from, uint32 to) const;
553 static bool IsTotemCategoryCompatibleWith(uint32 itemTotemCategoryId, uint32 requiredTotemCategoryId, bool requireAllTotems = true);
554 bool IsToyItem(uint32 toy) const;
555 static bool GetUiMapPosition(float x, float y, float z, int32 mapId, int32 areaId, int32 wmoDoodadPlacementId, int32 wmoGroupId, UiMapSystem system, bool local,
556 uint32* uiMapId = nullptr, DBCPosition2D* newPos = nullptr);
557 bool Zone2MapCoordinates(uint32 areaId, float& x, float& y) const;
558 void Map2ZoneCoordinates(uint32 areaId, float& x, float& y) const;
559 bool IsUiMapPhase(uint32 phaseId) const;
560 static WMOAreaTableEntry const* GetWMOAreaTable(int32 rootId, int32 adtId, int32 groupId, bool allowGroupFallback);
561 std::unordered_set<uint32> const* GetPVPStatIDsForMap(uint32 mapId) const;
562
563private:
565 void InsertNewHotfix(uint32 tableHash, uint32 recordId);
566 int32 _maxHotfixId = 0;
567};
568
569#define sDB2Manager DB2Manager::Instance()
570
571#endif
LocaleConstant
Definition Common.h:51
#define DEFAULT_LOCALE
Definition Common.h:69
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
std::vector< TaxiPathNodeEntry const * > TaxiPathNodeList
Definition DB2Stores.h:365
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
Definition DB2Stores.h:366
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)
Definition DB2Stores.h:374
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
CurveInterpolationMode
Definition DBCEnums.h:921
UiMapSystem
Definition DBCEnums.h:2953
GlobalCurve
Definition DBCEnums.h:1171
ItemContext
Definition DBCEnums.h:1315
Difficulty
Definition DBCEnums.h:932
ExpectedStatType
Definition DBCEnums.h:986
BattlegroundBracketId
Definition DBCEnums.h:53
#define TC_GAME_API
Definition Define.h:129
uint8_t uint8
Definition Define.h:156
int16_t int16
Definition Define.h:151
int32_t int32
Definition Define.h:150
uint32_t uint32
Definition Define.h:154
std::optional< T > Optional
Optional helper class to wrap optional values within.
Definition Optional.h:25
Races
Definition RaceMask.h:27
Classes
@ GENDER_MALE
ResponseCodes
Powers
SpellFamilyNames
std::vector< std::pair< uint32, PlayerConditionEntry const * > > MapDifficultyConditionsContainer
Definition DB2Stores.h:440
std::map< int32, HotfixPush > HotfixContainer
Definition DB2Stores.h:437
std::vector< MountXDisplayEntry const * > MountXDisplayContainer
Definition DB2Stores.h:442
std::set< MountTypeXCapabilityEntry const *, MountTypeXCapabilityEntryComparator > MountTypeXCapabilitySet
Definition DB2Stores.h:441
std::set< FriendshipRepReactionEntry const *, FriendshipRepReactionEntryComparator > FriendshipRepReactionSet
Definition DB2Stores.h:439
Interface class for common access.
Definition DB2Store.h:31
constexpr bool is_neq(std::partial_ordering cmp) noexcept
Definition advstd.h:35
friend std::strong_ordering operator<=>(HotfixId const &left, HotfixId const &right)=default
std::vector< uint8 > Data
Definition DB2Stores.h:428
std::vector< HotfixRecord > Records
Definition DB2Stores.h:433
friend std::strong_ordering operator<=>(HotfixRecord const &left, HotfixRecord const &right)
Definition DB2Stores.h:413
uint32 ID
Definition DB2Stores.h:344
std::vector< PathPropertyEntry const * > Properties
Definition DB2Stores.h:346
std::vector< DBCPosition3D > Locations
Definition DB2Stores.h:345
std::vector< ChrCustomizationDisplayInfoEntry const * > Displays
Definition DB2Stores.h:353
std::vector< ChrCustomizationChoiceEntry const * > const * Choices
Definition DB2Stores.h:352
TaxiPathBySourceAndDestination(uint32 _id, uint32 _price)
Definition DB2Stores.h:359