/* * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . */ #ifndef TRINITY_DB2STORES_H #define TRINITY_DB2STORES_H #include "DB2Store.h" #include "DB2Structure.h" #include "Optional.h" #include "SharedDefines.h" #include "advstd.h" #include #include #include #include #include class DB2HotfixGeneratorBase; TC_GAME_API extern DB2Storage sAchievementStore; TC_GAME_API extern DB2Storage sAchievementCategoryStore; TC_GAME_API extern DB2Storage sAdventureJournalStore; TC_GAME_API extern DB2Storage sAdventureMapPOIStore; TC_GAME_API extern DB2Storage sAnimationDataStore; TC_GAME_API extern DB2Storage sAnimKitStore; TC_GAME_API extern DB2Storage sAreaTableStore; TC_GAME_API extern DB2Storage sAreaTriggerStore; TC_GAME_API extern DB2Storage sAreaTriggerActionSetStore; TC_GAME_API extern DB2Storage sArmorLocationStore; TC_GAME_API extern DB2Storage sArtifactStore; TC_GAME_API extern DB2Storage sArtifactCategoryStore; TC_GAME_API extern DB2Storage sArtifactAppearanceStore; TC_GAME_API extern DB2Storage sArtifactAppearanceSetStore; TC_GAME_API extern DB2Storage sArtifactPowerStore; TC_GAME_API extern DB2Storage sArtifactPowerPickerStore; TC_GAME_API extern DB2Storage sArtifactTierStore; TC_GAME_API extern DB2Storage sArtifactUnlockStore; TC_GAME_API extern DB2Storage sAuctionHouseStore; TC_GAME_API extern DB2Storage sAzeriteEssenceStore; TC_GAME_API extern DB2Storage sAzeriteKnowledgeMultiplierStore; TC_GAME_API extern DB2Storage sAzeriteItemMilestonePowerStore; TC_GAME_API extern DB2Storage sAzeriteLevelInfoStore; TC_GAME_API extern DB2Storage sAzeritePowerStore; TC_GAME_API extern DB2Storage sAzeriteUnlockMappingStore; TC_GAME_API extern DB2Storage sBankTabStore; TC_GAME_API extern DB2Storage sBannedAddonsStore; TC_GAME_API extern DB2Storage sBarberShopStyleStore; TC_GAME_API extern DB2Storage sBattlePetAbilityStore; TC_GAME_API extern DB2Storage sBattlePetBreedQualityStore; TC_GAME_API extern DB2Storage sBattlePetBreedStateStore; TC_GAME_API extern DB2Storage sBattlePetSpeciesStore; TC_GAME_API extern DB2Storage sBattlePetSpeciesStateStore; TC_GAME_API extern DB2Storage sBattlemasterListStore; TC_GAME_API extern DB2Storage sBattlemasterListXMapStore; TC_GAME_API extern DB2Storage sBroadcastTextStore; TC_GAME_API extern DB2Storage sCfgCategoriesStore; TC_GAME_API extern DB2Storage sCfgRegionsStore; TC_GAME_API extern DB2Storage sChallengeModeItemBonusOverrideStore; TC_GAME_API extern DB2Storage sCharTitlesStore; TC_GAME_API extern DB2Storage sCharacterLoadoutStore; TC_GAME_API extern DB2Storage sCharacterLoadoutItemStore; TC_GAME_API extern DB2Storage sChatChannelsStore; TC_GAME_API extern DB2Storage sChrClassesStore; TC_GAME_API extern DB2Storage sChrCustomizationReqStore; TC_GAME_API extern DB2Storage sChrCustomizationOptionStore; TC_GAME_API extern DB2Storage sChrRacesStore; TC_GAME_API extern DB2Storage sChrSpecializationStore; TC_GAME_API extern DB2Storage sCinematicCameraStore; TC_GAME_API extern DB2Storage sCinematicSequencesStore; TC_GAME_API extern DB2Storage sConditionalChrModelStore; TC_GAME_API extern DB2Storage sContentTuningStore; TC_GAME_API extern DB2Storage sConversationLineStore; TC_GAME_API extern DB2Storage sCorruptionEffectsStore; TC_GAME_API extern DB2Storage sCraftingQualityStore; TC_GAME_API extern DB2Storage sCreatureDisplayInfoStore; TC_GAME_API extern DB2Storage sCreatureDisplayInfoExtraStore; TC_GAME_API extern DB2Storage sCreatureFamilyStore; TC_GAME_API extern DB2Storage sCreatureModelDataStore; TC_GAME_API extern DB2Storage sCreatureTypeStore; TC_GAME_API extern DB2Storage sCriteriaStore; TC_GAME_API extern DB2Storage sCriteriaTreeStore; TC_GAME_API extern DB2Storage sCurrencyTypesStore; TC_GAME_API extern DB2Storage sCurveStore; TC_GAME_API extern DB2Storage sDestructibleModelDataStore; TC_GAME_API extern DB2Storage sDifficultyStore; TC_GAME_API extern DB2Storage sDungeonEncounterStore; TC_GAME_API extern DB2Storage sDurabilityCostsStore; TC_GAME_API extern DB2Storage sDurabilityQualityStore; TC_GAME_API extern DB2Storage sEmotesStore; TC_GAME_API extern DB2Storage sEmotesTextStore; TC_GAME_API extern DB2Storage sFactionStore; TC_GAME_API extern DB2Storage sFactionTemplateStore; TC_GAME_API extern DB2Storage sFlightCapabilityStore; TC_GAME_API extern DB2Storage sFriendshipRepReactionStore; TC_GAME_API extern DB2Storage sFriendshipReputationStore; TC_GAME_API extern DB2Storage sGameObjectArtKitStore; TC_GAME_API extern DB2Storage sGameObjectDisplayInfoStore; TC_GAME_API extern DB2Storage sGameObjectsStore; TC_GAME_API extern DB2Storage sGarrAbilityStore; TC_GAME_API extern DB2Storage sGarrBuildingStore; TC_GAME_API extern DB2Storage sGarrBuildingPlotInstStore; TC_GAME_API extern DB2Storage sGarrClassSpecStore; TC_GAME_API extern DB2Storage sGarrFollowerStore; TC_GAME_API extern DB2Storage sGarrFollowerXAbilityStore; TC_GAME_API extern DB2Storage sGarrMissionStore; TC_GAME_API extern DB2Storage sGarrPlotStore; TC_GAME_API extern DB2Storage sGarrPlotBuildingStore; TC_GAME_API extern DB2Storage sGarrPlotInstanceStore; TC_GAME_API extern DB2Storage sGarrSiteLevelStore; TC_GAME_API extern DB2Storage sGarrSiteLevelPlotInstStore; TC_GAME_API extern DB2Storage sGarrTalentTreeStore; TC_GAME_API extern DB2Storage sGemPropertiesStore; TC_GAME_API extern DB2Storage sGlyphPropertiesStore; TC_GAME_API extern DB2Storage sGossipNPCOptionStore; TC_GAME_API extern DB2Storage sGuildColorBackgroundStore; TC_GAME_API extern DB2Storage sGuildColorBorderStore; TC_GAME_API extern DB2Storage sGuildColorEmblemStore; TC_GAME_API extern DB2Storage sGuildPerkSpellsStore; TC_GAME_API extern DB2Storage sHolidaysStore; TC_GAME_API extern DB2Storage sImportPriceArmorStore; TC_GAME_API extern DB2Storage sImportPriceQualityStore; TC_GAME_API extern DB2Storage sImportPriceShieldStore; TC_GAME_API extern DB2Storage sImportPriceWeaponStore; TC_GAME_API extern DB2Storage sItemAppearanceStore; TC_GAME_API extern DB2Storage sItemArmorQualityStore; TC_GAME_API extern DB2Storage sItemArmorShieldStore; TC_GAME_API extern DB2Storage sItemArmorTotalStore; TC_GAME_API extern DB2Storage sItemBagFamilyStore; TC_GAME_API extern DB2Storage sItemBonusStore; TC_GAME_API extern DB2Storage sItemBonusListGroupEntryStore; TC_GAME_API extern DB2Storage sItemBonusListLevelDeltaStore; TC_GAME_API extern DB2Storage sItemBonusTreeStore; TC_GAME_API extern DB2Storage sItemBonusTreeNodeStore; TC_GAME_API extern DB2Storage sItemContextPickerEntryStore; TC_GAME_API extern DB2Storage sItemDamageAmmoStore; TC_GAME_API extern DB2Storage sItemDamageOneHandStore; TC_GAME_API extern DB2Storage sItemDamageOneHandCasterStore; TC_GAME_API extern DB2Storage sItemDamageTwoHandStore; TC_GAME_API extern DB2Storage sItemDamageTwoHandCasterStore; TC_GAME_API extern DB2Storage sItemDisenchantLootStore; TC_GAME_API extern DB2Storage sItemEffectStore; TC_GAME_API extern DB2Storage sItemNameDescriptionStore; TC_GAME_API extern DB2Storage sItemStore; TC_GAME_API extern DB2Storage sItemExtendedCostStore; TC_GAME_API extern DB2Storage sItemLevelSelectorStore; TC_GAME_API extern DB2Storage sItemLevelSelectorQualityStore; TC_GAME_API extern DB2Storage sItemLevelSelectorQualitySetStore; TC_GAME_API extern DB2Storage sItemLimitCategoryStore; TC_GAME_API extern DB2Storage sItemModifiedAppearanceStore; TC_GAME_API extern DB2Storage sItemModifiedAppearanceExtraStore; TC_GAME_API extern DB2Storage sItemPriceBaseStore; TC_GAME_API extern DB2Storage sItemSearchNameStore; TC_GAME_API extern DB2Storage sItemSetStore; TC_GAME_API extern DB2Storage sItemSetSpellStore; TC_GAME_API extern DB2Storage sItemSparseStore; TC_GAME_API extern DB2Storage sItemSpecStore; TC_GAME_API extern DB2Storage sItemSpecOverrideStore; TC_GAME_API extern DB2Storage sItemXBonusTreeStore; TC_GAME_API extern DB2Storage sItemXItemEffectStore; TC_GAME_API extern DB2Storage sJournalEncounterStore; TC_GAME_API extern DB2Storage sJournalEncounterSectionStore; TC_GAME_API extern DB2Storage sJournalInstanceStore; TC_GAME_API extern DB2Storage sKeystoneAffixStore; TC_GAME_API extern DB2Storage sLanguageWordsStore; TC_GAME_API extern DB2Storage sLanguagesStore; TC_GAME_API extern DB2Storage sLFGDungeonsStore; TC_GAME_API extern DB2Storage sLightStore; TC_GAME_API extern DB2Storage sLiquidTypeStore; TC_GAME_API extern DB2Storage sLocationStore; TC_GAME_API extern DB2Storage sLockStore; TC_GAME_API extern DB2Storage sMailTemplateStore; TC_GAME_API extern DB2Storage sMapStore; TC_GAME_API extern DB2Storage sMapChallengeModeStore; TC_GAME_API extern DB2Storage sMapDifficultyStore; TC_GAME_API extern DB2Storage sMawPowerStore; TC_GAME_API extern DB2Storage sModifiedCraftingItemStore; TC_GAME_API extern DB2Storage sModifierTreeStore; TC_GAME_API extern DB2Storage sMountCapabilityStore; TC_GAME_API extern DB2Storage sMountStore; TC_GAME_API extern DB2Storage sMountEquipmentStore; TC_GAME_API extern DB2Storage sMovieStore; TC_GAME_API extern DB2Storage sMythicPlusSeasonStore; TC_GAME_API extern DB2Storage sOverrideSpellDataStore; TC_GAME_API extern DB2Storage sParagonReputationStore; TC_GAME_API extern DB2Storage sPerksActivityStore; TC_GAME_API extern DB2Storage sPhaseStore; TC_GAME_API extern DB2Storage sPlayerConditionStore; TC_GAME_API extern DB2Storage sPlayerDataElementAccountStore; TC_GAME_API extern DB2Storage sPlayerDataElementCharacterStore; TC_GAME_API extern DB2Storage sPlayerDataFlagAccountStore; TC_GAME_API extern DB2Storage sPlayerDataFlagCharacterStore; TC_GAME_API extern DB2Storage sPowerDisplayStore; TC_GAME_API extern DB2Storage sPowerTypeStore; TC_GAME_API extern DB2Storage sPVPStatStore; TC_GAME_API extern DB2Storage sPvpSeasonStore; TC_GAME_API extern DB2Storage sPvpTalentStore; TC_GAME_API extern DB2Storage sPvpTalentCategoryStore; TC_GAME_API extern DB2Storage sPvpTalentSlotUnlockStore; TC_GAME_API extern DB2Storage sPvpTierStore; TC_GAME_API extern DB2Storage sQuestFactionRewardStore; TC_GAME_API extern DB2Storage sQuestInfoStore; TC_GAME_API extern DB2Storage sQuestMoneyRewardStore; TC_GAME_API extern DB2Storage sQuestSortStore; TC_GAME_API extern DB2Storage sQuestXPStore; TC_GAME_API extern DB2Storage sRandPropPointsStore; TC_GAME_API extern DB2Storage sRewardPackStore; TC_GAME_API extern DB2Storage sScenarioStore; TC_GAME_API extern DB2Storage sScenarioStepStore; TC_GAME_API extern DB2Storage sSkillLineStore; TC_GAME_API extern DB2Storage sSceneScriptPackageStore; TC_GAME_API extern DB2Storage sServerMessagesStore; TC_GAME_API extern DB2Storage sSkillLineAbilityStore; TC_GAME_API extern DB2Storage sSkillLineXTraitTreeStore; TC_GAME_API extern DB2Storage sSkillRaceClassInfoStore; TC_GAME_API extern DB2Storage sSoundKitStore; TC_GAME_API extern DB2Storage sSpellAuraOptionsStore; TC_GAME_API extern DB2Storage sSpellAuraRestrictionsStore; TC_GAME_API extern DB2Storage sSpellCastTimesStore; TC_GAME_API extern DB2Storage sSpellCastingRequirementsStore; TC_GAME_API extern DB2Storage sSpellCategoriesStore; TC_GAME_API extern DB2Storage sSpellCategoryStore; TC_GAME_API extern DB2Storage sSpellClassOptionsStore; TC_GAME_API extern DB2Storage sSpellCooldownsStore; TC_GAME_API extern DB2Storage sSpellDurationStore; TC_GAME_API extern DB2Storage sSpellEffectStore; TC_GAME_API extern DB2Storage sSpellEmpowerStore; TC_GAME_API extern DB2Storage sSpellEmpowerStageStore; TC_GAME_API extern DB2Storage sSpellEquippedItemsStore; TC_GAME_API extern DB2Storage sSpellFocusObjectStore; TC_GAME_API extern DB2Storage sSpellInterruptsStore; TC_GAME_API extern DB2Storage sSpellItemEnchantmentStore; TC_GAME_API extern DB2Storage sSpellItemEnchantmentConditionStore; TC_GAME_API extern DB2Storage sSpellKeyboundOverrideStore; TC_GAME_API extern DB2Storage sSpellLabelStore; TC_GAME_API extern DB2Storage sSpellLearnSpellStore; TC_GAME_API extern DB2Storage sSpellLevelsStore; TC_GAME_API extern DB2Storage sSpellMiscStore; TC_GAME_API extern DB2Storage sSpellNameStore; TC_GAME_API extern DB2Storage sSpellPowerStore; TC_GAME_API extern DB2Storage sSpellPowerDifficultyStore; TC_GAME_API extern DB2Storage sSpellProcsPerMinuteStore; TC_GAME_API extern DB2Storage sSpellRadiusStore; TC_GAME_API extern DB2Storage sSpellRangeStore; TC_GAME_API extern DB2Storage sSpellReagentsStore; TC_GAME_API extern DB2Storage sSpellReagentsCurrencyStore; TC_GAME_API extern DB2Storage sSpellScalingStore; TC_GAME_API extern DB2Storage sSpellShapeshiftStore; TC_GAME_API extern DB2Storage sSpellShapeshiftFormStore; TC_GAME_API extern DB2Storage sSpellTargetRestrictionsStore; TC_GAME_API extern DB2Storage sSpellTotemsStore; TC_GAME_API extern DB2Storage sSpellVisualStore; TC_GAME_API extern DB2Storage sSpellVisualEffectNameStore; TC_GAME_API extern DB2Storage sSpellVisualKitStore; TC_GAME_API extern DB2Storage sSpellXSpellVisualStore; TC_GAME_API extern DB2Storage sSummonPropertiesStore; TC_GAME_API extern DB2Storage sTalentStore; TC_GAME_API extern DB2Storage sTaxiNodesStore; TC_GAME_API extern DB2Storage sTaxiPathStore; TC_GAME_API extern DB2Storage sTaxiPathNodeStore; TC_GAME_API extern DB2Storage sTraitCondStore; TC_GAME_API extern DB2Storage sTraitCostStore; TC_GAME_API extern DB2Storage sTraitCurrencyStore; TC_GAME_API extern DB2Storage sTraitCurrencySourceStore; TC_GAME_API extern DB2Storage sTraitDefinitionStore; TC_GAME_API extern DB2Storage sTraitDefinitionEffectPointsStore; TC_GAME_API extern DB2Storage sTraitEdgeStore; TC_GAME_API extern DB2Storage sTraitNodeStore; TC_GAME_API extern DB2Storage sTraitNodeEntryStore; TC_GAME_API extern DB2Storage sTraitNodeEntryXTraitCondStore; TC_GAME_API extern DB2Storage sTraitNodeEntryXTraitCostStore; TC_GAME_API extern DB2Storage sTraitNodeGroupStore; TC_GAME_API extern DB2Storage sTraitNodeGroupXTraitCondStore; TC_GAME_API extern DB2Storage sTraitNodeGroupXTraitCostStore; TC_GAME_API extern DB2Storage sTraitNodeGroupXTraitNodeStore; TC_GAME_API extern DB2Storage sTraitNodeXTraitCondStore; TC_GAME_API extern DB2Storage sTraitNodeXTraitCostStore; TC_GAME_API extern DB2Storage sTraitNodeXTraitNodeEntryStore; TC_GAME_API extern DB2Storage sTraitSubTreeStore; TC_GAME_API extern DB2Storage sTraitTreeStore; TC_GAME_API extern DB2Storage sTraitTreeLoadoutStore; TC_GAME_API extern DB2Storage sTraitTreeLoadoutEntryStore; TC_GAME_API extern DB2Storage sTraitTreeXTraitCostStore; TC_GAME_API extern DB2Storage sTraitTreeXTraitCurrencyStore; TC_GAME_API extern DB2Storage sTransmogHolidayStore; TC_GAME_API extern DB2Storage sTransmogIllusionStore; TC_GAME_API extern DB2Storage sTransmogSetStore; TC_GAME_API extern DB2Storage sTransmogSetGroupStore; TC_GAME_API extern DB2Storage sTransmogSetItemStore; TC_GAME_API extern DB2Storage sTransportAnimationStore; TC_GAME_API extern DB2Storage sTransportRotationStore; TC_GAME_API extern DB2Storage sUiMapStore; TC_GAME_API extern DB2Storage sUISplashScreenStore; TC_GAME_API extern DB2Storage sUnitConditionStore; TC_GAME_API extern DB2Storage sUnitPowerBarStore; TC_GAME_API extern DB2Storage sVehicleStore; TC_GAME_API extern DB2Storage sVehicleSeatStore; TC_GAME_API extern DB2Storage sVignetteStore; TC_GAME_API extern DB2Storage sWarbandSceneStore; TC_GAME_API extern DB2Storage sWorldEffectStore; TC_GAME_API extern DB2Storage sWorldMapOverlayStore; TC_GAME_API extern DB2Storage sWorldStateExpressionStore; struct ContentTuningLevels { int16 MinLevel = 0; int16 MaxLevel = 0; int16 MinLevelWithDelta = 0; int16 MaxLevelWithDelta = 0; int16 TargetLevelMin = 0; int16 TargetLevelMax = 0; }; struct PathDb2 { uint32 ID; std::vector Locations; std::vector Properties; }; struct ShapeshiftFormModelData { uint32 OptionID; std::vector const* Choices; std::vector Displays; }; struct TaxiPathBySourceAndDestination { TaxiPathBySourceAndDestination() : ID(0), price(0) { } TaxiPathBySourceAndDestination(uint32 _id, uint32 _price) : ID(_id), price(_price) { } uint32 ID; uint32 price; }; using TaxiPathNodeList = std::vector; using TaxiPathNodesByPath = std::vector; TC_GAME_API extern TaxiMask sTaxiNodesMask; TC_GAME_API extern TaxiMask sOldContinentsNodesMask; TC_GAME_API extern TaxiMask sHordeTaxiNodesMask; TC_GAME_API extern TaxiMask sAllianceTaxiNodesMask; TC_GAME_API extern TaxiPathNodesByPath sTaxiPathNodesByPath; #define DEFINE_DB2_SET_COMPARATOR(structure) \ struct structure ## Comparator \ { \ bool operator()(structure const* left, structure const* right) const { return Compare(left, right); } \ static bool Compare(structure const* left, structure const* right); \ }; class TC_GAME_API DB2Manager { public: DEFINE_DB2_SET_COMPARATOR(FriendshipRepReactionEntry) DEFINE_DB2_SET_COMPARATOR(MountTypeXCapabilityEntry) struct HotfixId { int32 PushID = 0; uint32 UniqueID = 0; friend std::strong_ordering operator<=>(HotfixId const& left, HotfixId const& right) = default; }; struct HotfixRecord { enum class Status : uint8 { NotSet = 0, Valid = 1, RecordRemoved = 2, Invalid = 3, NotPublic = 4 }; uint32 TableHash = 0; int32 RecordID = 0; HotfixId ID; Status HotfixStatus = Status::Invalid; uint32 AvailableLocalesMask = 0; friend std::strong_ordering operator<=>(HotfixRecord const& left, HotfixRecord const& right) { if (std::strong_ordering cmp = left.ID <=> right.ID; advstd::is_neq(cmp)) return cmp; if (std::strong_ordering cmp = left.TableHash <=> right.TableHash; advstd::is_neq(cmp)) return cmp; if (std::strong_ordering cmp = left.RecordID <=> right.RecordID; advstd::is_neq(cmp)) return cmp; return std::strong_ordering::equal; } }; struct HotfixOptionalData { uint32 Key = 0; std::vector Data; }; struct HotfixPush { std::vector Records; uint32 AvailableLocalesMask = 0; }; using HotfixContainer = std::map; using FriendshipRepReactionSet = std::set; using MapDifficultyConditionsContainer = std::vector>; using MountTypeXCapabilitySet = std::set; using MountXDisplayContainer = std::vector; static DB2Manager& Instance(); uint32 LoadStores(std::string const& dataPath, LocaleConstant defaultLocale); void IndexLoadedStores(); DB2StorageBase const* GetStorage(uint32 type) const; void LoadHotfixData(uint32 localeMask); void LoadHotfixBlob(uint32 localeMask); void LoadHotfixOptionalData(uint32 localeMask); uint32 GetHotfixCount() const; HotfixContainer const& GetHotfixData() const; std::vector const* GetHotfixBlobData(uint32 tableHash, int32 recordId, LocaleConstant locale) const; std::vector const* GetHotfixOptionalData(uint32 tableHash, int32 recordId, LocaleConstant locale) const; uint32 GetEmptyAnimStateID() const; std::vector GetAreasForGroup(uint32 areaGroupId) const; static bool IsInArea(uint32 objectAreaId, uint32 areaId); static ContentTuningEntry const* GetContentTuningForArea(AreaTableEntry const* areaEntry); std::vector GetArtifactPowers(uint8 artifactId) const; std::vector const* GetArtifactPowerLinks(uint32 artifactPowerId) const; ArtifactPowerRankEntry const* GetArtifactPowerRank(uint32 artifactPowerId, uint8 rank) const; AzeriteEmpoweredItemEntry const* GetAzeriteEmpoweredItem(uint32 itemId) const; bool IsAzeriteItem(uint32 itemId) const; AzeriteEssencePowerEntry const* GetAzeriteEssencePower(uint32 azeriteEssenceId, uint32 rank) const; std::vector const& GetAzeriteItemMilestonePowers() const; AzeriteItemMilestonePowerEntry const* GetAzeriteItemMilestonePower(uint8 slot) const; std::vector const* GetAzeritePowers(uint32 itemId) const; uint32 GetRequiredAzeriteLevelForAzeritePowerTier(uint32 azeriteUnlockSetId, ItemContext context, uint32 tier) const; static char const* GetBroadcastTextValue(BroadcastTextEntry const* broadcastText, LocaleConstant locale = DEFAULT_LOCALE, uint8 gender = GENDER_MALE, bool forceGender = false); int32 const* GetBroadcastTextDuration(uint32 broadcastTextId, LocaleConstant locale = DEFAULT_LOCALE) const; static CharBaseInfoEntry const* GetCharBaseInfo(Races race, Classes class_); ChrClassUIDisplayEntry const* GetUiDisplayForClass(Classes unitClass) const; static char const* GetChrClassName(uint8 class_, LocaleConstant locale = DEFAULT_LOCALE); uint32 GetPowerIndexByClass(Powers power, uint32 classId) const; std::vector const* GetCustomiztionChoices(uint32 chrCustomizationOptionId) const; std::vector const* GetCustomiztionOptions(uint8 race, uint8 gender) const; std::vector>> const* GetRequiredCustomizationChoices(uint32 chrCustomizationReqId) const; ChrModelEntry const* GetChrModel(uint8 race, uint8 gender) const; static ConditionalChrModelEntry const* GetConditionalChrModel(int32 chrModelId); static char const* GetChrRaceName(uint8 race, LocaleConstant locale = DEFAULT_LOCALE); ChrSpecializationEntry const* GetChrSpecializationByIndex(uint32 class_, uint32 index) const; ChrSpecializationEntry const* GetDefaultChrSpecializationForClass(uint32 class_) const; uint32 GetRedirectedContentTuningId(uint32 contentTuningId, uint32 redirectFlag) const; Optional GetContentTuningData(uint32 contentTuningId, uint32 redirectFlag, bool forItem = false) const; bool HasContentTuningLabel(uint32 contentTuningId, int32 label) const; static char const* GetCreatureFamilyPetName(uint32 petfamily, LocaleConstant locale); std::span GetCreatureLabels(uint32 creatureDifficultyId) const; CurrencyContainerEntry const* GetCurrencyContainerForCurrencyQuantity(uint32 currencyId, int32 quantity) const; std::pair GetCurveXAxisRange(uint32 curveId) const; float GetCurveValueAt(uint32 curveId, float x) const; float GetCurveValueAt(CurveInterpolationMode mode, std::span points, float x) const; EmotesTextSoundEntry const* GetTextSoundEmoteFor(uint32 emote, uint8 race, uint8 gender, uint8 class_) const; float EvaluateExpectedStat(ExpectedStatType stat, uint32 level, int32 expansion, uint32 contentTuningId, Classes unitClass, int32 mythicPlusMilestoneSeason) const; std::vector const* GetFactionTeamList(uint32 faction) const; FriendshipRepReactionSet const* GetFriendshipRepReactions(uint32 friendshipRepID) const; std::span GetGameObjectLabels(uint32 gameobjectId) const; uint32 GetGlobalCurveId(GlobalCurve globalCurveType) const; std::vector const* GetGlyphBindableSpells(uint32 glyphPropertiesId) const; std::vector const* GetGlyphRequiredSpecs(uint32 glyphPropertiesId) const; HeirloomEntry const* GetHeirloomByItemId(uint32 itemId) const; ItemChildEquipmentEntry const* GetItemChildEquipment(uint32 itemId) const; ItemClassEntry const* GetItemClassByOldEnum(uint32 itemClass) const; bool HasItemCurrencyCost(uint32 itemId) const; std::vector const* GetItemLimitCategoryConditions(uint32 categoryId) const; uint32 GetItemDisplayId(uint32 itemId, uint32 appearanceModId) const; ItemModifiedAppearanceEntry const* GetItemModifiedAppearance(uint32 itemId, uint32 appearanceModId) const; ItemModifiedAppearanceEntry const* GetDefaultItemModifiedAppearance(uint32 itemId) const; std::vector const* GetItemSetSpells(uint32 itemSetId) const; std::vector const* GetItemSpecOverrides(uint32 itemId) const; JournalTierEntry const* GetJournalTier(uint32 index) const; static LFGDungeonsEntry const* GetLfgDungeon(uint32 mapId, Difficulty difficulty); static uint32 GetDefaultMapLight(uint32 mapId); static uint32 GetLiquidFlags(uint32 liquidType); MapDifficultyEntry const* GetDefaultMapDifficulty(uint32 mapId, Difficulty* difficulty = nullptr) const; MapDifficultyEntry const* GetMapDifficultyData(uint32 mapId, Difficulty difficulty) const; MapDifficultyEntry const* GetDownscaledMapDifficultyData(uint32 mapId, Difficulty &difficulty) const; MapDifficultyConditionsContainer const* GetMapDifficultyConditions(uint32 mapDifficultyId) const; MountEntry const* GetMount(uint32 spellId) const; MountEntry const* GetMountById(uint32 id) const; MountTypeXCapabilitySet const* GetMountCapabilities(uint32 mountType) const; MountXDisplayContainer const* GetMountDisplays(uint32 mountId) const; std::string GetNameGenEntry(uint8 race, uint8 gender) const; ResponseCodes ValidateName(std::wstring const& name, LocaleConstant locale) const; static int32 GetNumTalentsAtLevel(uint32 level, Classes playerClass); ParagonReputationEntry const* GetParagonReputation(uint32 factionId) const; PathDb2 const* GetPath(uint32 pathId) const; std::vector const* GetPhasesForGroup(uint32 group) const; PowerTypeEntry const* GetPowerTypeEntry(Powers power) const; PowerTypeEntry const* GetPowerTypeByName(std::string const& name) const; uint8 GetPvpItemLevelBonus(uint32 itemId) const; static PVPDifficultyEntry const* GetBattlegroundBracketByLevel(uint32 mapid, uint32 level); static PVPDifficultyEntry const* GetBattlegroundBracketById(uint32 mapid, BattlegroundBracketId id); uint32 GetRequiredLevelForPvpTalentSlot(uint8 slot, Classes class_) const; int32 GetPvpTalentNumSlotsAtLevel(uint32 level, Classes class_) const; std::vector const* GetQuestsForQuestLine(uint32 questLineId) const; std::vector const* GetQuestPackageItems(uint32 questPackageID) const; std::vector const* GetQuestPackageItemsFallback(uint32 questPackageID) const; uint32 GetQuestUniqueBitFlag(uint32 questId); std::vector const* GetRewardPackCurrencyTypesByRewardID(uint32 rewardPackID) const; std::vector const* GetRewardPackItemsByRewardID(uint32 rewardPackID) const; ShapeshiftFormModelData const* GetShapeshiftFormModelData(uint8 race, uint8 gender, uint8 form) const; std::vector const* GetSkillLinesForParentSkill(uint32 parentSkillId) const; std::vector const* GetSkillLineAbilitiesBySkill(uint32 skillId) const; SkillRaceClassInfoEntry const* GetSkillRaceClassInfo(uint32 skill, uint8 race, uint8 class_) const; std::vector GetSkillRaceClassInfo(uint32 skill) const; SoulbindConduitRankEntry const* GetSoulbindConduitRank(int32 soulbindConduitId, int32 rank) const; std::vector const* GetSpecializationSpells(uint32 specId) const; bool IsSpecSetMember(int32 specSetId, uint32 specId) const; static bool IsValidSpellFamiliyName(SpellFamilyNames family); std::vector GetSpellProcsPerMinuteMods(uint32 spellprocsPerMinuteId) const; std::vector const* GetSpellVisualMissiles(int32 spellVisualMissileSetId) const; std::vector const& GetTalentsByPosition(uint32 class_, uint32 tier, uint32 column) const; TaxiPathEntry const* GetTaxiPath(uint32 from, uint32 to) const; static bool IsTotemCategoryCompatibleWith(uint32 itemTotemCategoryId, uint32 requiredTotemCategoryId, bool requireAllTotems = true); bool IsToyItem(uint32 toy) const; TransmogIllusionEntry const* GetTransmogIllusionForEnchantment(uint32 spellItemEnchantmentId) const; std::vector const* GetTransmogSetsForItemModifiedAppearance(uint32 itemModifiedAppearanceId) const; std::vector const* GetTransmogSetItems(uint32 transmogSetId) 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; void Map2ZoneCoordinates(uint32 areaId, float& x, float& y) const; bool IsUiMapPhase(uint32 phaseId) const; WMOAreaTableEntry const* GetWMOAreaTable(int32 rootId, int32 adtId, int32 groupId) const; std::unordered_set const* GetPVPStatIDsForMap(uint32 mapId) const; private: friend class DB2HotfixGeneratorBase; void InsertNewHotfix(uint32 tableHash, uint32 recordId); int32 _maxHotfixId = 0; }; #define sDB2Manager DB2Manager::Instance() #endif