AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
DBCStores.h File Reference
#include "Common.h"
#include "DBCStore.h"
#include "DBCStructure.h"
#include <list>
#include <unordered_map>
#include <unordered_set>

Go to the source code of this file.

Typedefs

typedef std::list< uint32SimpleFactionsList
 
typedef std::map< uint32, MapDifficultyMapDifficultyMap
 
typedef std::unordered_multimap< uint32, SkillRaceClassInfoEntry const * > SkillRaceClassInfoMap
 
typedef std::pair< SkillRaceClassInfoMap::iterator, SkillRaceClassInfoMap::iterator > SkillRaceClassInfoBounds
 
typedef std::unordered_map< uint32, std::vector< SkillLineAbilityEntry const * > > SkillLineAbilityIndexBySkillLine
 

Enumerations

enum  ContentLevels : uint8 {
  CONTENT_1_60 = 0 ,
  CONTENT_61_70 ,
  CONTENT_71_80
}
 

Functions

SimpleFactionsList const * GetFactionTeamList (uint32 faction)
 
char const * GetPetName (uint32 petfamily, uint32 dbclang)
 
uint32 GetTalentSpellCost (uint32 spellId)
 
TalentSpellPos const * GetTalentSpellPos (uint32 spellId)
 
WMOAreaTableEntry const * GetWMOAreaTableEntryByTripple (int32 rootid, int32 adtid, int32 groupid)
 
uint32 GetVirtualMapForMapAndZone (uint32 mapid, uint32 zoneId)
 
ContentLevels GetContentLevelsForMapAndZone (uint32 mapid, uint32 zoneId)
 
void Zone2MapCoordinates (float &x, float &y, uint32 zone)
 
void Map2ZoneCoordinates (float &x, float &y, uint32 zone)
 
MapDifficulty const * GetMapDifficultyData (uint32 mapId, Difficulty difficulty)
 
MapDifficulty const * GetDownscaledMapDifficultyData (uint32 mapId, Difficulty &difficulty)
 
bool IsSharedDifficultyMap (uint32 mapid)
 
uint32 const * GetTalentTabPages (uint8 cls)
 
uint32 GetLiquidFlags (uint32 liquidType)
 
PvPDifficultyEntry const * GetBattlegroundBracketByLevel (uint32 mapid, uint32 level)
 
PvPDifficultyEntry const * GetBattlegroundBracketById (uint32 mapid, BattlegroundBracketId id)
 
CharStartOutfitEntry const * GetCharStartOutfitEntry (uint8 race, uint8 class_, uint8 gender)
 
LFGDungeonEntry const * GetLFGDungeon (uint32 mapId, Difficulty difficulty)
 Returns LFGDungeonEntry for a specific map and difficulty. Will return first found entry if multiple dungeons use the same map (such as Scarlet Monastery) More...
 
LFGDungeonEntry const * GetZoneLFGDungeonEntry (std::string const &zoneName, LocaleConstant locale)
 
uint32 GetDefaultMapLight (uint32 mapId)
 
SkillRaceClassInfoEntry const * GetSkillRaceClassInfo (uint32 skill, uint8 race, uint8 class_)
 
const std::vector< SkillLineAbilityEntry const * > & GetSkillLineAbilitiesBySkillLine (uint32 skillLine)
 
void LoadDBCStores (const std::string &dataPath)
 

Variables

DBCStorage< AchievementEntrysAchievementStore
 
DBCStorage< AchievementCriteriaEntrysAchievementCriteriaStore
 
DBCStorage< AchievementCategoryEntrysAchievementCategoryStore
 
DBCStorage< AreaTableEntrysAreaTableStore
 
DBCStorage< AreaGroupEntrysAreaGroupStore
 
DBCStorage< AreaPOIEntrysAreaPOIStore
 
DBCStorage< AuctionHouseEntrysAuctionHouseStore
 
DBCStorage< BankBagSlotPricesEntrysBankBagSlotPricesStore
 
DBCStorage< BarberShopStyleEntrysBarberShopStyleStore
 
DBCStorage< BattlemasterListEntrysBattlemasterListStore
 
DBCStorage< ChatChannelsEntrysChatChannelsStore
 
DBCStorage< CharStartOutfitEntrysCharStartOutfitStore
 
DBCStorage< CharTitlesEntrysCharTitlesStore
 
DBCStorage< ChrClassesEntrysChrClassesStore
 
DBCStorage< ChrRacesEntrysChrRacesStore
 
DBCStorage< CinematicCameraEntrysCinematicCameraStore
 
DBCStorage< CinematicSequencesEntrysCinematicSequencesStore
 
DBCStorage< CreatureDisplayInfoEntrysCreatureDisplayInfoStore
 
DBCStorage< CreatureDisplayInfoExtraEntrysCreatureDisplayInfoExtraStore
 
DBCStorage< CreatureFamilyEntrysCreatureFamilyStore
 
DBCStorage< CreatureModelDataEntrysCreatureModelDataStore
 
DBCStorage< CreatureSpellDataEntrysCreatureSpellDataStore
 
DBCStorage< CreatureTypeEntrysCreatureTypeStore
 
DBCStorage< CurrencyTypesEntrysCurrencyTypesStore
 
DBCStorage< DestructibleModelDataEntrysDestructibleModelDataStore
 
DBCStorage< DungeonEncounterEntrysDungeonEncounterStore
 
DBCStorage< DurabilityCostsEntrysDurabilityCostsStore
 
DBCStorage< DurabilityQualityEntrysDurabilityQualityStore
 
DBCStorage< EmotesEntrysEmotesStore
 
DBCStorage< EmotesTextEntrysEmotesTextStore
 
DBCStorage< FactionEntrysFactionStore
 
DBCStorage< FactionTemplateEntrysFactionTemplateStore
 
DBCStorage< GameObjectArtKitEntrysGameObjectArtKitStore
 
DBCStorage< GameObjectDisplayInfoEntrysGameObjectDisplayInfoStore
 
DBCStorage< GemPropertiesEntrysGemPropertiesStore
 
DBCStorage< GlyphPropertiesEntrysGlyphPropertiesStore
 
DBCStorage< GlyphSlotEntrysGlyphSlotStore
 
DBCStorage< GtBarberShopCostBaseEntrysGtBarberShopCostBaseStore
 
DBCStorage< GtCombatRatingsEntrysGtCombatRatingsStore
 
DBCStorage< GtChanceToMeleeCritBaseEntrysGtChanceToMeleeCritBaseStore
 
DBCStorage< GtChanceToMeleeCritEntrysGtChanceToMeleeCritStore
 
DBCStorage< GtChanceToSpellCritBaseEntrysGtChanceToSpellCritBaseStore
 
DBCStorage< GtChanceToSpellCritEntrysGtChanceToSpellCritStore
 
DBCStorage< GtNPCManaCostScalerEntrysGtNPCManaCostScalerStore
 
DBCStorage< GtOCTClassCombatRatingScalarEntrysGtOCTClassCombatRatingScalarStore
 
DBCStorage< GtOCTRegenHPEntrysGtOCTRegenHPStore
 
DBCStorage< GtRegenHPPerSptEntrysGtRegenHPPerSptStore
 
DBCStorage< GtRegenMPPerSptEntrysGtRegenMPPerSptStore
 
DBCStorage< HolidaysEntrysHolidaysStore
 
DBCStorage< ItemBagFamilyEntrysItemBagFamilyStore
 
DBCStorage< ItemEntrysItemStore
 
DBCStorage< ItemDisplayInfoEntrysItemDisplayInfoStore
 
DBCStorage< ItemExtendedCostEntrysItemExtendedCostStore
 
DBCStorage< ItemLimitCategoryEntrysItemLimitCategoryStore
 
DBCStorage< ItemRandomPropertiesEntrysItemRandomPropertiesStore
 
DBCStorage< ItemRandomSuffixEntrysItemRandomSuffixStore
 
DBCStorage< ItemSetEntrysItemSetStore
 
DBCStorage< LFGDungeonEntrysLFGDungeonStore
 
DBCStorage< LiquidTypeEntrysLiquidTypeStore
 
DBCStorage< LockEntrysLockStore
 
DBCStorage< MailTemplateEntrysMailTemplateStore
 
DBCStorage< MapEntrysMapStore
 
MapDifficultyMap sMapDifficultyMap
 
DBCStorage< MovieEntrysMovieStore
 
DBCStorage< NamesReservedEntrysNamesReservedStore
 
DBCStorage< NamesProfanityEntrysNamesProfanityStore
 
DBCStorage< OverrideSpellDataEntrysOverrideSpellDataStore
 
DBCStorage< PowerDisplayEntrysPowerDisplayStore
 
DBCStorage< QuestSortEntrysQuestSortStore
 
DBCStorage< QuestXPEntrysQuestXPStore
 
DBCStorage< QuestFactionRewEntrysQuestFactionRewardStore
 
DBCStorage< RandomPropertiesPointsEntrysRandomPropertiesPointsStore
 
DBCStorage< ScalingStatDistributionEntrysScalingStatDistributionStore
 
DBCStorage< ScalingStatValuesEntrysScalingStatValuesStore
 
DBCStorage< SkillLineEntrysSkillLineStore
 
DBCStorage< SkillLineAbilityEntrysSkillLineAbilityStore
 
SkillLineAbilityIndexBySkillLine sSkillLineAbilityIndexBySkillLine
 
DBCStorage< SkillTiersEntrysSkillTiersStore
 
DBCStorage< SoundEntriesEntrysSoundEntriesStore
 
DBCStorage< SpellCastTimesEntrysSpellCastTimesStore
 
DBCStorage< SpellCategoryEntrysSpellCategoryStore
 
DBCStorage< SpellDifficultyEntrysSpellDifficultyStore
 
DBCStorage< SpellDurationEntrysSpellDurationStore
 
DBCStorage< SpellFocusObjectEntrysSpellFocusObjectStore
 
DBCStorage< SpellItemEnchantmentEntrysSpellItemEnchantmentStore
 
DBCStorage< SpellItemEnchantmentConditionEntrysSpellItemEnchantmentConditionStore
 
SpellCategoryStore sSpellsByCategoryStore
 
PetFamilySpellsStore sPetFamilySpellsStore
 
std::unordered_set< uint32sPetTalentSpells
 
DBCStorage< SpellRadiusEntrysSpellRadiusStore
 
DBCStorage< SpellRangeEntrysSpellRangeStore
 
DBCStorage< SpellRuneCostEntrysSpellRuneCostStore
 
DBCStorage< SpellShapeshiftFormEntrysSpellShapeshiftFormStore
 
DBCStorage< SpellEntrysSpellStore
 
DBCStorage< SpellVisualEntrysSpellVisualStore
 
DBCStorage< StableSlotPricesEntrysStableSlotPricesStore
 
DBCStorage< SummonPropertiesEntrysSummonPropertiesStore
 
DBCStorage< TalentEntrysTalentStore
 
DBCStorage< TalentTabEntrysTalentTabStore
 
DBCStorage< TaxiNodesEntrysTaxiNodesStore
 
DBCStorage< TaxiPathEntrysTaxiPathStore
 
TaxiMask sTaxiNodesMask
 
TaxiMask sOldContinentsNodesMask
 
TaxiMask sHordeTaxiNodesMask
 
TaxiMask sAllianceTaxiNodesMask
 
TaxiMask sDeathKnightTaxiNodesMask
 
TaxiPathSetBySource sTaxiPathSetBySource
 
TaxiPathNodesByPath sTaxiPathNodesByPath
 
DBCStorage< TeamContributionPointsEntrysTeamContributionPointsStore
 
DBCStorage< TotemCategoryEntrysTotemCategoryStore
 
DBCStorage< VehicleEntrysVehicleStore
 
DBCStorage< VehicleSeatEntrysVehicleSeatStore
 
DBCStorage< WMOAreaTableEntrysWMOAreaTableStore
 
DBCStorage< WorldMapOverlayEntrysWorldMapOverlayStore
 

Typedef Documentation

◆ MapDifficultyMap

◆ SimpleFactionsList

typedef std::list<uint32> SimpleFactionsList

◆ SkillLineAbilityIndexBySkillLine

typedef std::unordered_map<uint32 , std::vector<SkillLineAbilityEntry const*> > SkillLineAbilityIndexBySkillLine

◆ SkillRaceClassInfoBounds

typedef std::pair<SkillRaceClassInfoMap::iterator, SkillRaceClassInfoMap::iterator> SkillRaceClassInfoBounds

◆ SkillRaceClassInfoMap

typedef std::unordered_multimap<uint32, SkillRaceClassInfoEntry const*> SkillRaceClassInfoMap

Enumeration Type Documentation

◆ ContentLevels

Enumerator
CONTENT_1_60 
CONTENT_61_70 
CONTENT_71_80 
41{
42 CONTENT_1_60 = 0,
45};
@ CONTENT_61_70
Definition: DBCStores.h:43
@ CONTENT_71_80
Definition: DBCStores.h:44
@ CONTENT_1_60
Definition: DBCStores.h:42

Function Documentation

◆ GetBattlegroundBracketById()

PvPDifficultyEntry const * GetBattlegroundBracketById ( uint32  mapid,
BattlegroundBracketId  id 
)
816{
817 for (PvPDifficultyEntry const* entry : sPvPDifficultyStore)
818 if (entry->mapId == mapid && entry->GetBracketId() == id)
819 return entry;
820
821 return nullptr;
822}
DBCStorage< PvPDifficultyEntry > sPvPDifficultyStore(PvPDifficultyfmt)
Definition: DBCStructure.h:1430

References sPvPDifficultyStore.

Referenced by BattlegroundQueue::BattlegroundQueueAnnouncerUpdate(), BattlegroundQueue::BattlegroundQueueUpdate(), and misc_commandscript::HandleSkirmishCommand().

◆ GetBattlegroundBracketByLevel()

PvPDifficultyEntry const * GetBattlegroundBracketByLevel ( uint32  mapid,
uint32  level 
)
794{
795 PvPDifficultyEntry const* maxEntry = nullptr; // used for level > max listed level case
796
797 for (PvPDifficultyEntry const* entry : sPvPDifficultyStore)
798 {
799 // skip unrelated and too-high brackets
800 if (entry->mapId != mapid || entry->minLevel > level)
801 continue;
802
803 // exactly fit
804 if (entry->maxLevel >= level)
805 return entry;
806
807 // remember for possible out-of-range case (search higher from existed)
808 if (!maxEntry || maxEntry->maxLevel < entry->maxLevel)
809 maxEntry = entry;
810 }
811
812 return maxEntry;
813}
uint32 maxLevel
Definition: DBCStructure.h:1435

References PvPDifficultyEntry::maxLevel, and sPvPDifficultyStore.

Referenced by BattlegroundMgr::BuildBattlegroundListPacket(), Group::CanJoinBattlegroundQueue(), MapInstanced::CreateBattleground(), WorldSession::HandleBattleFieldPortOpcode(), WorldSession::HandleBattlefieldStatusOpcode(), WorldSession::HandleBattlemasterJoinArena(), and WorldSession::HandleBattlemasterJoinOpcode().

◆ GetCharStartOutfitEntry()

CharStartOutfitEntry const * GetCharStartOutfitEntry ( uint8  race,
uint8  class_,
uint8  gender 
)
843{
844 std::map<uint32, CharStartOutfitEntry const*>::const_iterator itr = sCharStartOutfitMap.find(race | (class_ << 8) | (gender << 16));
845 if (itr == sCharStartOutfitMap.end())
846 return nullptr;
847
848 return itr->second;
849}
std::map< uint32, CharStartOutfitEntry const * > sCharStartOutfitMap
Definition: DBCStores.cpp:51

References sCharStartOutfitMap.

Referenced by Player::Create(), and ObjectMgr::PlayerCreateInfoAddItemHelper().

◆ GetContentLevelsForMapAndZone()

ContentLevels GetContentLevelsForMapAndZone ( uint32  mapid,
uint32  zoneId 
)
715{
716 mapid = GetVirtualMapForMapAndZone(mapid, zoneId);
717 if (mapid < 2)
718 return CONTENT_1_60;
719
720 MapEntry const* mapEntry = sMapStore.LookupEntry(mapid);
721 if (!mapEntry)
722 return CONTENT_1_60;
723
724 switch (mapEntry->Expansion())
725 {
726 default:
727 return CONTENT_1_60;
728 case 1:
729 return CONTENT_61_70;
730 case 2:
731 return CONTENT_71_80;
732 }
733}
uint32 GetVirtualMapForMapAndZone(uint32 mapid, uint32 zoneId)
Definition: DBCStores.cpp:703
DBCStorage< MapEntry > sMapStore(MapEntryfmt)
Definition: DBCStructure.h:1324
uint32 Expansion() const
Definition: DBCStructure.h:1348

References CONTENT_1_60, CONTENT_61_70, CONTENT_71_80, MapEntry::Expansion(), GetVirtualMapForMapAndZone(), and sMapStore.

Referenced by Acore::XP::Gain().

◆ GetDefaultMapLight()

uint32 GetDefaultMapLight ( uint32  mapId)
881{
882 for (int32 i = sLightStore.GetNumRows(); i >= 0; --i)
883 {
884 LightEntry const* light = sLightStore.LookupEntry(uint32(i));
885 if (!light)
886 continue;
887
888 if (light->MapId == mapId && light->X == 0.0f && light->Y == 0.0f && light->Z == 0.0f)
889 return light->Id;
890 }
891
892 return 0;
893}
std::int32_t int32
Definition: Define.h:103
std::uint32_t uint32
Definition: Define.h:107
DBCStorage< LightEntry > sLightStore(LightEntryfmt)
Definition: DBCStructure.h:1270
float Y
Definition: DBCStructure.h:1274
uint32 Id
Definition: DBCStructure.h:1271
float X
Definition: DBCStructure.h:1273
float Z
Definition: DBCStructure.h:1275
uint32 MapId
Definition: DBCStructure.h:1272

References LightEntry::Id, LightEntry::MapId, sLightStore, LightEntry::X, LightEntry::Y, and LightEntry::Z.

◆ GetDownscaledMapDifficultyData()

MapDifficulty const * GetDownscaledMapDifficultyData ( uint32  mapId,
Difficulty difficulty 
)
768{
769 uint32 tmpDiff = difficulty;
770
771 MapDifficulty const* mapDiff = GetMapDifficultyData(mapId, Difficulty(tmpDiff));
772 if (!mapDiff)
773 {
774 if (tmpDiff > RAID_DIFFICULTY_25MAN_NORMAL) // heroic, downscale to normal
775 tmpDiff -= 2;
776 else
777 tmpDiff -= 1; // any non-normal mode for raids like tbc (only one mode)
778
779 // pull new data
780 mapDiff = GetMapDifficultyData(mapId, Difficulty(tmpDiff)); // we are 10 normal or 25 normal
781 if (!mapDiff)
782 {
783 tmpDiff -= 1;
784 mapDiff = GetMapDifficultyData(mapId, Difficulty(tmpDiff)); // 10 normal
785 }
786 }
787
788 difficulty = Difficulty(tmpDiff);
789
790 return mapDiff;
791}
MapDifficulty const * GetMapDifficultyData(uint32 mapId, Difficulty difficulty)
Definition: DBCStores.cpp:761
Difficulty
Definition: DBCEnums.h:266
@ RAID_DIFFICULTY_25MAN_NORMAL
Definition: DBCEnums.h:274
Definition: DBCStructure.h:2221

References GetMapDifficultyData(), and RAID_DIFFICULTY_25MAN_NORMAL.

Referenced by MapInstanced::CreateInstance(), DisableMgr::IsDisabledFor(), MapMgr::PlayerCannotEnter(), InstanceSaveMgr::PlayerGetBoundInstance(), and Player::Satisfy().

◆ GetFactionTeamList()

SimpleFactionsList const * GetFactionTeamList ( uint32  faction)
657{
658 FactionTeamMap::const_iterator itr = sFactionTeamMap.find(faction);
659 if (itr != sFactionTeamMap.end())
660 return &itr->second;
661
662 return nullptr;
663}
static FactionTeamMap sFactionTeamMap
Definition: DBCStores.cpp:75

References sFactionTeamMap.

Referenced by ReputationMgr::SetReputation().

◆ GetLFGDungeon()

LFGDungeonEntry const * GetLFGDungeon ( uint32  mapId,
Difficulty  difficulty 
)

Returns LFGDungeonEntry for a specific map and difficulty. Will return first found entry if multiple dungeons use the same map (such as Scarlet Monastery)

853{
854 for (uint32 i = 0; i < sLFGDungeonStore.GetNumRows(); ++i)
855 {
856 LFGDungeonEntry const* dungeon = sLFGDungeonStore.LookupEntry(i);
857 if (!dungeon)
858 continue;
859
860 if (dungeon->MapID == uint32(mapId) && Difficulty(dungeon->Difficulty) == difficulty)
861 return dungeon;
862 }
863
864 return nullptr;
865}
DBCStorage< LFGDungeonEntry > sLFGDungeonStore(LFGDungeonEntryfmt)
Definition: DBCStructure.h:1244
uint32 MapID
Definition: DBCStructure.h:1253
uint32 Difficulty
Definition: DBCStructure.h:1254

References LFGDungeonEntry::Difficulty, LFGDungeonEntry::MapID, and sLFGDungeonStore.

Referenced by Player::RewardReputation().

◆ GetLiquidFlags()

uint32 GetLiquidFlags ( uint32  liquidType)
835{
836 if (LiquidTypeEntry const* liq = sLiquidTypeStore.LookupEntry(liquidType))
837 return 1 << liq->Type;
838
839 return 0;
840}
DBCStorage< LiquidTypeEntry > sLiquidTypeStore(LiquidTypefmt)
Definition: DBCStructure.h:1282

References sLiquidTypeStore.

Referenced by World::SetInitialWorldSettings().

◆ GetMapDifficultyData()

MapDifficulty const * GetMapDifficultyData ( uint32  mapId,
Difficulty  difficulty 
)
762{
763 MapDifficultyMap::const_iterator itr = sMapDifficultyMap.find(MAKE_PAIR32(mapId, difficulty));
764 return itr != sMapDifficultyMap.end() ? &itr->second : nullptr;
765}
MapDifficultyMap sMapDifficultyMap
Definition: DBCStores.cpp:121
uint32 MAKE_PAIR32(uint16 l, uint16 h)
Definition: ObjectDefines.h:87

References MAKE_PAIR32(), and sMapDifficultyMap.

Referenced by InstanceSaveMgr::_ResetOrWarnAll(), GetDownscaledMapDifficultyData(), Map::GetMapDifficulty(), WorldSession::HandleMoveWorldportAck(), WorldSession::HandlePlayerLoginFromDB(), WorldSession::HandlePlayerLoginToCharInWorld(), ObjectMgr::LoadCreatures(), DisableMgr::LoadDisables(), ObjectMgr::LoadGameobjects(), and InstanceSaveMgr::LoadResetTimes().

◆ GetPetName()

char const * GetPetName ( uint32  petfamily,
uint32  dbclang 
)
666{
667 if (!petfamily)
668 return nullptr;
669
670 CreatureFamilyEntry const* pet_family = sCreatureFamilyStore.LookupEntry(petfamily);
671 if (!pet_family)
672 return nullptr;
673
674 return pet_family->Name[dbclang];
675}
DBCStorage< CreatureFamilyEntry > sCreatureFamilyStore(CreatureFamilyfmt)
Definition: DBCStructure.h:753
char const * Name[16]
Definition: DBCStructure.h:763

References CreatureFamilyEntry::Name, and sCreatureFamilyStore.

Referenced by ObjectMgr::GeneratePetName().

◆ GetSkillLineAbilitiesBySkillLine()

const std::vector< SkillLineAbilityEntry const * > & GetSkillLineAbilitiesBySkillLine ( uint32  skillLine)
917{
918 auto it = sSkillLineAbilityIndexBySkillLine.find(skillLine);
919 if (it == sSkillLineAbilityIndexBySkillLine.end())
920 {
921 static const std::vector<SkillLineAbilityEntry const*> emptyVector;
922 return emptyVector;
923 }
924 return it->second;
925}
SkillLineAbilityIndexBySkillLine sSkillLineAbilityIndexBySkillLine
Definition: DBCStores.cpp:142

References sSkillLineAbilityIndexBySkillLine.

Referenced by learn_commandscript::HandleLearnSkillRecipesHelper(), Player::learnSkillRewardedSpells(), SpellMgr::LoadPetLevelupSpellMap(), and Player::SetSkill().

◆ GetSkillRaceClassInfo()

SkillRaceClassInfoEntry const * GetSkillRaceClassInfo ( uint32  skill,
uint8  race,
uint8  class_ 
)
896{
897 SkillRaceClassInfoBounds bounds = SkillRaceClassInfoBySkill.equal_range(skill);
898 for (SkillRaceClassInfoMap::iterator itr = bounds.first; itr != bounds.second; ++itr)
899 {
900 if (itr->second->RaceMask && !(itr->second->RaceMask & (1 << (race - 1))))
901 {
902 continue;
903 }
904
905 if (itr->second->ClassMask && !(itr->second->ClassMask & (1 << (class_ - 1))))
906 {
907 continue;
908 }
909
910 return itr->second;
911 }
912
913 return nullptr;
914}
std::pair< SkillRaceClassInfoMap::iterator, SkillRaceClassInfoMap::iterator > SkillRaceClassInfoBounds
Definition: DBCStores.h:72
SkillRaceClassInfoMap SkillRaceClassInfoBySkill
Definition: DBCStores.cpp:144

References SkillRaceClassInfoBySkill.

Referenced by Player::_LoadSkills(), Player::LearnDefaultSkill(), ObjectMgr::LoadPlayerInfo(), and Player::UpdateSkillsForLevel().

◆ GetTalentSpellCost()

◆ GetTalentSpellPos()

TalentSpellPos const * GetTalentSpellPos ( uint32  spellId)
678{
679 TalentSpellPosMap::const_iterator itr = sTalentSpellPosMap.find(spellId);
680 if (itr == sTalentSpellPosMap.end())
681 return nullptr;
682
683 return &itr->second;
684}
TalentSpellPosMap sTalentSpellPosMap
Definition: DBCStores.cpp:168

References sTalentSpellPosMap.

Referenced by Player::_LoadTalents(), Player::ActivateSpec(), Pet::addSpell(), Player::addTalent(), Player::BuildPlayerTalentsInfoData(), GetTalentSpellCost(), Player::LearnTalent(), Player::removeSpell(), and CharacterDatabaseCleaner::SpellCheck().

◆ GetTalentTabPages()

uint32 const * GetTalentTabPages ( uint8  cls)
825{
826 return sTalentTabPages[cls];
827}
static uint32 sTalentTabPages[MAX_CLASSES][3]
Definition: DBCStores.cpp:173

References sTalentTabPages.

Referenced by Player::GetSpec().

◆ GetVirtualMapForMapAndZone()

uint32 GetVirtualMapForMapAndZone ( uint32  mapid,
uint32  zoneId 
)
704{
705 if (mapid != 530 && mapid != 571) // speed for most cases
706 return mapid;
707
708 if (WorldMapAreaEntry const* wma = sWorldMapAreaStore.LookupEntry(zoneId))
709 return wma->virtual_map_id >= 0 ? wma->virtual_map_id : wma->map_id;
710
711 return mapid;
712}
DBCStorage< WorldMapAreaEntry > sWorldMapAreaStore(WorldMapAreaEntryfmt)
Definition: DBCStructure.h:2147

References sWorldMapAreaStore.

Referenced by Player::canFlyInZone(), GetContentLevelsForMapAndZone(), and spell_gen_mount::HandleMount().

◆ GetWMOAreaTableEntryByTripple()

WMOAreaTableEntry const * GetWMOAreaTableEntryByTripple ( int32  rootid,
int32  adtid,
int32  groupid 
)
695{
696 auto i = sWMOAreaInfoByTripple.find(WMOAreaTableKey(int16(rootid), int8(adtid), groupid));
697 if (i != sWMOAreaInfoByTripple.end())
698 return i->second;
699
700 return nullptr;
701}
std::int8_t int8
Definition: Define.h:105
std::int16_t int16
Definition: Define.h:104
std::tuple< int16, int8, int32 > WMOAreaTableKey
Definition: DBCStores.cpp:34
static WMOAreaInfoByTripple sWMOAreaInfoByTripple
Definition: DBCStores.cpp:41

References sWMOAreaInfoByTripple.

Referenced by Map::GetAreaId(), and Map::GetFullTerrainStatusForPosition().

◆ GetZoneLFGDungeonEntry()

LFGDungeonEntry const * GetZoneLFGDungeonEntry ( std::string const &  zoneName,
LocaleConstant  locale 
)
868{
869 for (LFGDungeonEntry const* dungeon : sLFGDungeonStore)
870 {
871 if (dungeon->TypeID == lfg::LFG_TYPE_ZONE && zoneName.find(dungeon->Name[locale]) != std::string::npos)
872 {
873 return dungeon;
874 }
875 }
876
877 return nullptr;
878}
@ LFG_TYPE_ZONE
Definition: LFGMgr.h:72

References lfg::LFG_TYPE_ZONE, and sLFGDungeonStore.

Referenced by WorldSession::HandleCharFactionOrRaceChangeCallback().

◆ IsSharedDifficultyMap()

bool IsSharedDifficultyMap ( uint32  mapid)
830{
831 return sWorld->getBoolConfig(CONFIG_INSTANCE_SHARED_ID) && (mapid == 631 || mapid == 724);
832}
@ CONFIG_INSTANCE_SHARED_ID
Definition: IWorld.h:87
#define sWorld
Definition: World.h:443

References CONFIG_INSTANCE_SHARED_ID, and sWorld.

Referenced by MapInstanced::CreateInstanceForPlayer(), WorldSession::HandleSetRaidDifficultyOpcode(), InstanceSaveMgr::PlayerGetBoundInstance(), and Map::UpdateEncounterState().

◆ LoadDBCStores()

void LoadDBCStores ( const std::string &  dataPath)
262{
263 uint32 oldMSTime = getMSTime();
264
265 std::string dbcPath = dataPath + "dbc/";
266
267 StoreProblemList bad_dbc_files;
268 uint32 availableDbcLocales = 0xFFFFFFFF;
269
270#define LOAD_DBC(store, file, dbtable) LoadDBC(availableDbcLocales, bad_dbc_files, store, dbcPath, file, dbtable)
271
272 LOAD_DBC(sAreaTableStore, "AreaTable.dbc", "areatable_dbc");
273 LOAD_DBC(sAchievementStore, "Achievement.dbc", "achievement_dbc");
274 LOAD_DBC(sAchievementCategoryStore, "Achievement_Category.dbc", "achievement_category_dbc");
275 LOAD_DBC(sAchievementCriteriaStore, "Achievement_Criteria.dbc", "achievement_criteria_dbc");
276 LOAD_DBC(sAreaGroupStore, "AreaGroup.dbc", "areagroup_dbc");
277 LOAD_DBC(sAreaPOIStore, "AreaPOI.dbc", "areapoi_dbc");
278 LOAD_DBC(sAuctionHouseStore, "AuctionHouse.dbc", "auctionhouse_dbc");
279 LOAD_DBC(sBankBagSlotPricesStore, "BankBagSlotPrices.dbc", "bankbagslotprices_dbc");
280 LOAD_DBC(sBattlemasterListStore, "BattlemasterList.dbc", "battlemasterlist_dbc");
281 LOAD_DBC(sBarberShopStyleStore, "BarberShopStyle.dbc", "barbershopstyle_dbc");
282 LOAD_DBC(sCharStartOutfitStore, "CharStartOutfit.dbc", "charstartoutfit_dbc");
283 LOAD_DBC(sCharTitlesStore, "CharTitles.dbc", "chartitles_dbc");
284 LOAD_DBC(sChatChannelsStore, "ChatChannels.dbc", "chatchannels_dbc");
285 LOAD_DBC(sChrClassesStore, "ChrClasses.dbc", "chrclasses_dbc");
286 LOAD_DBC(sChrRacesStore, "ChrRaces.dbc", "chrraces_dbc");
287 LOAD_DBC(sCinematicCameraStore, "CinematicCamera.dbc", "cinematiccamera_dbc");
288 LOAD_DBC(sCinematicSequencesStore, "CinematicSequences.dbc", "cinematicsequences_dbc");
289 LOAD_DBC(sCreatureDisplayInfoStore, "CreatureDisplayInfo.dbc", "creaturedisplayinfo_dbc");
290 LOAD_DBC(sCreatureDisplayInfoExtraStore, "CreatureDisplayInfoExtra.dbc", "creaturedisplayinfoextra_dbc");
291 LOAD_DBC(sCreatureFamilyStore, "CreatureFamily.dbc", "creaturefamily_dbc");
292 LOAD_DBC(sCreatureModelDataStore, "CreatureModelData.dbc", "creaturemodeldata_dbc");
293 LOAD_DBC(sCreatureSpellDataStore, "CreatureSpellData.dbc", "creaturespelldata_dbc");
294 LOAD_DBC(sCreatureTypeStore, "CreatureType.dbc", "creaturetype_dbc");
295 LOAD_DBC(sCurrencyTypesStore, "CurrencyTypes.dbc", "currencytypes_dbc");
296 LOAD_DBC(sDestructibleModelDataStore, "DestructibleModelData.dbc", "destructiblemodeldata_dbc");
297 LOAD_DBC(sDungeonEncounterStore, "DungeonEncounter.dbc", "dungeonencounter_dbc");
298 LOAD_DBC(sDurabilityCostsStore, "DurabilityCosts.dbc", "durabilitycosts_dbc");
299 LOAD_DBC(sDurabilityQualityStore, "DurabilityQuality.dbc", "durabilityquality_dbc");
300 LOAD_DBC(sEmotesStore, "Emotes.dbc", "emotes_dbc");
301 LOAD_DBC(sEmotesTextStore, "EmotesText.dbc", "emotestext_dbc");
302 LOAD_DBC(sFactionStore, "Faction.dbc", "faction_dbc");
303 LOAD_DBC(sFactionTemplateStore, "FactionTemplate.dbc", "factiontemplate_dbc");
304 LOAD_DBC(sGameObjectArtKitStore, "GameObjectArtKit.dbc", "gameobjectartkit_dbc");
305 LOAD_DBC(sGameObjectDisplayInfoStore, "GameObjectDisplayInfo.dbc", "gameobjectdisplayinfo_dbc");
306 LOAD_DBC(sGemPropertiesStore, "GemProperties.dbc", "gemproperties_dbc");
307 LOAD_DBC(sGlyphPropertiesStore, "GlyphProperties.dbc", "glyphproperties_dbc");
308 LOAD_DBC(sGlyphSlotStore, "GlyphSlot.dbc", "glyphslot_dbc");
309 LOAD_DBC(sGtBarberShopCostBaseStore, "gtBarberShopCostBase.dbc", "gtbarbershopcostbase_dbc");
310 LOAD_DBC(sGtCombatRatingsStore, "gtCombatRatings.dbc", "gtcombatratings_dbc");
311 LOAD_DBC(sGtChanceToMeleeCritBaseStore, "gtChanceToMeleeCritBase.dbc", "gtchancetomeleecritbase_dbc");
312 LOAD_DBC(sGtChanceToMeleeCritStore, "gtChanceToMeleeCrit.dbc", "gtchancetomeleecrit_dbc");
313 LOAD_DBC(sGtChanceToSpellCritBaseStore, "gtChanceToSpellCritBase.dbc", "gtchancetospellcritbase_dbc");
314 LOAD_DBC(sGtChanceToSpellCritStore, "gtChanceToSpellCrit.dbc", "gtchancetospellcrit_dbc");
315 LOAD_DBC(sGtNPCManaCostScalerStore, "gtNPCManaCostScaler.dbc", "gtnpcmanacostscaler_dbc");
316 LOAD_DBC(sGtOCTClassCombatRatingScalarStore, "gtOCTClassCombatRatingScalar.dbc", "gtoctclasscombatratingscalar_dbc");
317 LOAD_DBC(sGtOCTRegenHPStore, "gtOCTRegenHP.dbc", "gtoctregenhp_dbc");
318 //LOAD_DBC(sGtOCTRegenMPStore, "gtOCTRegenMP.dbc", "gtoctregenmp_dbc"); -- not used currently
319 LOAD_DBC(sGtRegenHPPerSptStore, "gtRegenHPPerSpt.dbc", "gtregenhpperspt_dbc");
320 LOAD_DBC(sGtRegenMPPerSptStore, "gtRegenMPPerSpt.dbc", "gtregenmpperspt_dbc");
321 LOAD_DBC(sHolidaysStore, "Holidays.dbc", "holidays_dbc");
322 LOAD_DBC(sItemStore, "Item.dbc", "item_dbc");
323 LOAD_DBC(sItemBagFamilyStore, "ItemBagFamily.dbc", "itembagfamily_dbc");
324 LOAD_DBC(sItemDisplayInfoStore, "ItemDisplayInfo.dbc", "itemdisplayinfo_dbc");
325 //LOAD_DBC(sItemCondExtCostsStore, "ItemCondExtCosts.dbc", "itemcondextcosts_dbc");
326 LOAD_DBC(sItemExtendedCostStore, "ItemExtendedCost.dbc", "itemextendedcost_dbc");
327 LOAD_DBC(sItemLimitCategoryStore, "ItemLimitCategory.dbc", "itemlimitcategory_dbc");
328 LOAD_DBC(sItemRandomPropertiesStore, "ItemRandomProperties.dbc", "itemrandomproperties_dbc");
329 LOAD_DBC(sItemRandomSuffixStore, "ItemRandomSuffix.dbc", "itemrandomsuffix_dbc");
330 LOAD_DBC(sItemSetStore, "ItemSet.dbc", "itemset_dbc");
331 LOAD_DBC(sLFGDungeonStore, "LFGDungeons.dbc", "lfgdungeons_dbc");
332 LOAD_DBC(sLightStore, "Light.dbc", "light_dbc");
333 LOAD_DBC(sLiquidTypeStore, "LiquidType.dbc", "liquidtype_dbc");
334 LOAD_DBC(sLockStore, "Lock.dbc", "lock_dbc");
335 LOAD_DBC(sMailTemplateStore, "MailTemplate.dbc", "mailtemplate_dbc");
336 LOAD_DBC(sMapStore, "Map.dbc", "map_dbc");
337 LOAD_DBC(sMapDifficultyStore, "MapDifficulty.dbc", "mapdifficulty_dbc");
338 LOAD_DBC(sMovieStore, "Movie.dbc", "movie_dbc");
339 LOAD_DBC(sNamesReservedStore, "NamesReserved.dbc", "namesreserved_dbc");
340 LOAD_DBC(sNamesProfanityStore, "NamesProfanity.dbc", "namesprofanity_dbc");
341 LOAD_DBC(sOverrideSpellDataStore, "OverrideSpellData.dbc", "overridespelldata_dbc");
342 LOAD_DBC(sPowerDisplayStore, "PowerDisplay.dbc", "powerdisplay_dbc");
343 LOAD_DBC(sPvPDifficultyStore, "PvpDifficulty.dbc", "pvpdifficulty_dbc");
344 LOAD_DBC(sQuestXPStore, "QuestXP.dbc", "questxp_dbc");
345 LOAD_DBC(sQuestFactionRewardStore, "QuestFactionReward.dbc", "questfactionreward_dbc");
346 LOAD_DBC(sQuestSortStore, "QuestSort.dbc", "questsort_dbc");
347 LOAD_DBC(sRandomPropertiesPointsStore, "RandPropPoints.dbc", "randproppoints_dbc");
348 LOAD_DBC(sScalingStatDistributionStore, "ScalingStatDistribution.dbc", "scalingstatdistribution_dbc");
349 LOAD_DBC(sScalingStatValuesStore, "ScalingStatValues.dbc", "scalingstatvalues_dbc");
350 LOAD_DBC(sSkillLineStore, "SkillLine.dbc", "skillline_dbc");
351 LOAD_DBC(sSkillLineAbilityStore, "SkillLineAbility.dbc", "skilllineability_dbc");
352 LOAD_DBC(sSkillRaceClassInfoStore, "SkillRaceClassInfo.dbc", "skillraceclassinfo_dbc");
353 LOAD_DBC(sSkillTiersStore, "SkillTiers.dbc", "skilltiers_dbc");
354 LOAD_DBC(sSoundEntriesStore, "SoundEntries.dbc", "soundentries_dbc");
355 LOAD_DBC(sSpellStore, "Spell.dbc", "spell_dbc");
356 LOAD_DBC(sSpellCastTimesStore, "SpellCastTimes.dbc", "spellcasttimes_dbc");
357 LOAD_DBC(sSpellCategoryStore, "SpellCategory.dbc", "spellcategory_dbc");
358 LOAD_DBC(sSpellDifficultyStore, "SpellDifficulty.dbc", "spelldifficulty_dbc");
359 LOAD_DBC(sSpellDurationStore, "SpellDuration.dbc", "spellduration_dbc");
360 LOAD_DBC(sSpellFocusObjectStore, "SpellFocusObject.dbc", "spellfocusobject_dbc");
361 LOAD_DBC(sSpellItemEnchantmentStore, "SpellItemEnchantment.dbc", "spellitemenchantment_dbc");
362 LOAD_DBC(sSpellItemEnchantmentConditionStore, "SpellItemEnchantmentCondition.dbc", "spellitemenchantmentcondition_dbc");
363 LOAD_DBC(sSpellRadiusStore, "SpellRadius.dbc", "spellradius_dbc");
364 LOAD_DBC(sSpellRangeStore, "SpellRange.dbc", "spellrange_dbc");
365 LOAD_DBC(sSpellRuneCostStore, "SpellRuneCost.dbc", "spellrunecost_dbc");
366 LOAD_DBC(sSpellShapeshiftFormStore, "SpellShapeshiftForm.dbc", "spellshapeshiftform_dbc");
367 LOAD_DBC(sSpellVisualStore, "SpellVisual.dbc", "spellvisual_dbc");
368 LOAD_DBC(sStableSlotPricesStore, "StableSlotPrices.dbc", "stableslotprices_dbc");
369 LOAD_DBC(sSummonPropertiesStore, "SummonProperties.dbc", "summonproperties_dbc");
370 LOAD_DBC(sTalentStore, "Talent.dbc", "talent_dbc");
371 LOAD_DBC(sTalentTabStore, "TalentTab.dbc", "talenttab_dbc");
372 LOAD_DBC(sTaxiNodesStore, "TaxiNodes.dbc", "taxinodes_dbc");
373 LOAD_DBC(sTaxiPathStore, "TaxiPath.dbc", "taxipath_dbc");
374 LOAD_DBC(sTaxiPathNodeStore, "TaxiPathNode.dbc", "taxipathnode_dbc");
375 LOAD_DBC(sTeamContributionPointsStore, "TeamContributionPoints.dbc", "teamcontributionpoints_dbc");
376 LOAD_DBC(sTotemCategoryStore, "TotemCategory.dbc", "totemcategory_dbc");
377 LOAD_DBC(sTransportAnimationStore, "TransportAnimation.dbc", "transportanimation_dbc");
378 LOAD_DBC(sTransportRotationStore, "TransportRotation.dbc", "transportrotation_dbc");
379 LOAD_DBC(sVehicleStore, "Vehicle.dbc", "vehicle_dbc");
380 LOAD_DBC(sVehicleSeatStore, "VehicleSeat.dbc", "vehicleseat_dbc");
381 LOAD_DBC(sWMOAreaTableStore, "WMOAreaTable.dbc", "wmoareatable_dbc");
382 LOAD_DBC(sWorldMapAreaStore, "WorldMapArea.dbc", "worldmaparea_dbc");
383 LOAD_DBC(sWorldMapOverlayStore, "WorldMapOverlay.dbc", "worldmapoverlay_dbc");
384
385#undef LOAD_DBC
386
387 for (CharStartOutfitEntry const* outfit : sCharStartOutfitStore)
388 sCharStartOutfitMap[outfit->Race | (outfit->Class << 8) | (outfit->Gender << 16)] = outfit;
389
390 for (FactionEntry const* faction : sFactionStore)
391 {
392 if (faction->team)
393 {
394 SimpleFactionsList& flist = sFactionTeamMap[faction->team];
395 flist.push_back(faction->ID);
396 }
397 }
398
400 {
401 if (info->maxX < info->minX)
402 std::swap(*(float*)(&info->maxX), *(float*)(&info->minX));
403
404 if (info->maxY < info->minY)
405 std::swap(*(float*)(&info->maxY), *(float*)(&info->minY));
406
407 if (info->maxZ < info->minZ)
408 std::swap(*(float*)(&info->maxZ), *(float*)(&info->minZ));
409 }
410
411 // fill data
412 for (MapDifficultyEntry const* entry : sMapDifficultyStore)
413 sMapDifficultyMap[MAKE_PAIR32(entry->MapId, entry->Difficulty)] = MapDifficulty(entry->resetTime, entry->maxPlayers, entry->areaTriggerText[0] != '\0');
414
415 for (PvPDifficultyEntry const* entry : sPvPDifficultyStore)
416 if (entry->bracketId > MAX_BATTLEGROUND_BRACKETS)
417 ASSERT(false && "Need update MAX_BATTLEGROUND_BRACKETS by DBC data");
418
419 for (auto i : sSpellStore)
420 if (i->Category)
421 sSpellsByCategoryStore[i->Category].emplace(false, i->Id);
422
424 {
425 if (sSkillLineStore.LookupEntry(entry->SkillID))
426 {
427 SkillRaceClassInfoBySkill.emplace(entry->SkillID, entry);
428 }
429 }
430
431 for (SkillLineAbilityEntry const* skillLine : sSkillLineAbilityStore)
432 {
433 SpellEntry const* spellEntry = sSpellStore.LookupEntry(skillLine->Spell);
434 if (spellEntry && spellEntry->Attributes & SPELL_ATTR0_PASSIVE)
435 {
436 for (CreatureFamilyEntry const* cFamily : sCreatureFamilyStore)
437 {
438 if (skillLine->SkillLine != cFamily->skillLine[0] && skillLine->SkillLine != cFamily->skillLine[1])
439 {
440 continue;
441 }
442
443 if (spellEntry->SpellLevel)
444 {
445 continue;
446 }
447
448 if (skillLine->AcquireMethod != SKILL_LINE_ABILITY_LEARNED_ON_SKILL_LEARN)
449 {
450 continue;
451 }
452
453 sPetFamilySpellsStore[cFamily->ID].insert(spellEntry->Id);
454 }
455 }
456 }
457
458 for (SkillLineAbilityEntry const* skillLine : sSkillLineAbilityStore)
459 sSkillLineAbilityIndexBySkillLine[skillLine->SkillLine].push_back(skillLine);
460
461 // Create Spelldifficulty searcher
462 for (SpellDifficultyEntry const* spellDiff : sSpellDifficultyStore)
463 {
464 SpellDifficultyEntry newEntry;
465
466 memset(newEntry.SpellID, 0, 4 * sizeof(uint32));
467
468 for (uint8 x = 0; x < MAX_DIFFICULTY; ++x)
469 {
470 if (spellDiff->SpellID[x] <= 0 || !sSpellStore.LookupEntry(spellDiff->SpellID[x]))
471 {
472 if (spellDiff->SpellID[x] > 0) //don't show error if spell is <= 0, not all modes have spells and there are unknown negative values
473 LOG_ERROR("sql.sql", "spelldifficulty_dbc: spell {} at field id: {} at spellid {} does not exist in SpellStore (spell.dbc), loaded as 0", spellDiff->SpellID[x], spellDiff->ID, x);
474
475 newEntry.SpellID[x] = 0; // spell was <= 0 or invalid, set to 0
476 }
477 else
478 newEntry.SpellID[x] = spellDiff->SpellID[x];
479 }
480
481 if (newEntry.SpellID[0] <= 0 || newEntry.SpellID[1] <= 0) // id0-1 must be always set!
482 continue;
483
484 for (uint8 x = 0; x < MAX_DIFFICULTY; ++x)
485 if (newEntry.SpellID[x])
486 sSpellMgr->SetSpellDifficultyId(uint32(newEntry.SpellID[x]), spellDiff->ID);
487 }
488
489 // create talent spells set
490 for (TalentEntry const* talentInfo : sTalentStore)
491 {
492 TalentTabEntry const* talentTab = sTalentTabStore.LookupEntry(talentInfo->TalentTab);
493
494 for (uint8 j = 0; j < MAX_TALENT_RANK; ++j)
495 {
496 if (talentInfo->RankID[j])
497 {
498 sTalentSpellPosMap[talentInfo->RankID[j]] = TalentSpellPos(talentInfo->TalentID, j);
499
500 if (talentTab && talentTab->petTalentMask)
501 {
502 sPetTalentSpells.insert(talentInfo->RankID[j]);
503 }
504 }
505 }
506 }
507
508 // prepare fast data access to bit pos of talent ranks for use at inspecting
509 {
510 // now have all max ranks (and then bit amount used for store talent ranks in inspect)
511 for (uint32 talentTabId = 1; talentTabId < sTalentTabStore.GetNumRows(); ++talentTabId)
512 {
513 TalentTabEntry const* talentTabInfo = sTalentTabStore.LookupEntry(talentTabId);
514 if (!talentTabInfo)
515 continue;
516
517 // prevent memory corruption; otherwise cls will become 12 below
518 if ((talentTabInfo->ClassMask & CLASSMASK_ALL_PLAYABLE) == 0)
519 continue;
520
521 // store class talent tab pages
522 for (uint32 cls = 1; cls < MAX_CLASSES; ++cls)
523 if (talentTabInfo->ClassMask & (1 << (cls - 1)))
524 sTalentTabPages[cls][talentTabInfo->tabpage] = talentTabId;
525 }
526 }
527
528 for (uint32 i = 1; i < sTaxiPathStore.GetNumRows(); ++i)
529 if (TaxiPathEntry const* entry = sTaxiPathStore.LookupEntry(i))
530 sTaxiPathSetBySource[entry->from][entry->to] = entry;
531
532 // Calculate path nodes count
533 uint32 pathCount = sTaxiPathStore.GetNumRows();
534 std::vector<uint32> pathLength;
535 pathLength.resize(pathCount); // 0 and some other indexes not used
536
537 for (uint32 i = 1; i < sTaxiPathNodeStore.GetNumRows(); ++i)
538 if (TaxiPathNodeEntry const* entry = sTaxiPathNodeStore.LookupEntry(i))
539 if (pathLength[entry->path] < entry->index + 1)
540 pathLength[entry->path] = entry->index + 1;
541
542 // Set path length
543 sTaxiPathNodesByPath.resize(pathCount); // 0 and some other indexes not used
544 for (uint32 i = 1; i < sTaxiPathNodesByPath.size(); ++i)
545 sTaxiPathNodesByPath[i].resize(pathLength[i]);
546
547 // fill data
548 for (TaxiPathNodeEntry const* entry : sTaxiPathNodeStore)
549 sTaxiPathNodesByPath[entry->path][entry->index] = entry;
550
551 // Initialize global taxinodes mask
552 // include existed nodes that have at least single not spell base (scripted) path
553 {
554 std::set<uint32> spellPaths;
555 for (SpellEntry const* sInfo : sSpellStore)
556 for (uint8 j = 0; j < MAX_SPELL_EFFECTS; ++j)
557 if (sInfo->Effect[j] == SPELL_EFFECT_SEND_TAXI)
558 spellPaths.insert(sInfo->EffectMiscValue[j]);
559
560 sTaxiNodesMask.fill(0);
562 sHordeTaxiNodesMask.fill(0);
565
566 for (uint32 i = 1; i < sTaxiNodesStore.GetNumRows(); ++i)
567 {
568 TaxiNodesEntry const* node = sTaxiNodesStore.LookupEntry(i);
569 if (!node)
570 continue;
571
572 TaxiPathSetBySource::const_iterator src_i = sTaxiPathSetBySource.find(i);
573 if (src_i != sTaxiPathSetBySource.end() && !src_i->second.empty())
574 {
575 bool ok = false;
576 for (TaxiPathSetForSource::const_iterator dest_i = src_i->second.begin(); dest_i != src_i->second.end(); ++dest_i)
577 {
578 // not spell path
579 if (dest_i->second->price || spellPaths.find(dest_i->second->ID) == spellPaths.end())
580 {
581 ok = true;
582 break;
583 }
584 }
585
586 if (!ok)
587 continue;
588 }
589
590 // valid taxi network node
591 uint8 field = (uint8)((i - 1) / 32);
592 uint32 submask = 1 << ((i - 1) % 32);
593 sTaxiNodesMask[field] |= submask;
594
595 if (node->MountCreatureID[0] && node->MountCreatureID[0] != 32981)
596 sHordeTaxiNodesMask[field] |= submask;
597
598 if (node->MountCreatureID[1] && node->MountCreatureID[1] != 32981)
599 sAllianceTaxiNodesMask[field] |= submask;
600
601 if (node->MountCreatureID[0] == 32981 || node->MountCreatureID[1] == 32981)
602 sDeathKnightTaxiNodesMask[field] |= submask;
603
604 // old continent node (+ nodes virtually at old continents, check explicitly to avoid loading map files for zone info)
605 if (node->map_id < 2 || i == 82 || i == 83 || i == 93 || i == 94)
606 sOldContinentsNodesMask[field] |= submask;
607
608 // fix DK node at Ebon Hold and Shadow Vault flight master
609 if (i == 315 || i == 333)
610 ((TaxiNodesEntry*)node)->MountCreatureID[1] = 32981;
611 }
612 }
613
615 sTransportMgr->AddPathNodeToTransport(anim->TransportEntry, anim->TimeSeg, anim);
616
618 sTransportMgr->AddPathRotationToTransport(rot->TransportEntry, rot->TimeSeg, rot);
619
620 for (WMOAreaTableEntry const* entry : sWMOAreaTableStore)
621 sWMOAreaInfoByTripple[WMOAreaTableKey(entry->rootId, entry->adtId, entry->groupId)] = entry;
622
623 // error checks
624 if (bad_dbc_files.size() >= DBCFileCount)
625 {
626 LOG_ERROR("dbc", "Incorrect DataDir value in worldserver.conf or ALL required *.dbc files ({}) not found by path: {}dbc", DBCFileCount, dataPath);
627 exit(1);
628 }
629 else if (!bad_dbc_files.empty())
630 {
631 std::string str;
632 for (StoreProblemList::iterator i = bad_dbc_files.begin(); i != bad_dbc_files.end(); ++i)
633 str += *i + "\n";
634
635 LOG_ERROR("dbc", "Some required *.dbc files ({} from {}) not found or not compatible:\n{}", (uint32)bad_dbc_files.size(), DBCFileCount, str);
636 exit(1);
637 }
638
639 // Check loaded DBC files proper version
640 if (!sAreaTableStore.LookupEntry(4987) || // last area added in 3.3.5a
641 !sCharTitlesStore.LookupEntry(177) || // last char title added in 3.3.5a
642 !sGemPropertiesStore.LookupEntry(1629) || // last added spell in 3.3.5a
643 !sItemStore.LookupEntry(56806) || // last client known item added in 3.3.5a
644 !sItemExtendedCostStore.LookupEntry(2997) || // last item extended cost added in 3.3.5a
645 !sMapStore.LookupEntry(724) || // last map added in 3.3.5a
646 !sSpellStore.LookupEntry(80864) ) // last client known item added in 3.3.5a
647 {
648 LOG_ERROR("dbc", "You have _outdated_ DBC data. Please extract correct versions from current using client.");
649 exit(1);
650 }
651
652 LOG_INFO("server.loading", ">> Initialized {} Data Stores in {} ms", DBCFileCount, GetMSTimeDiffToNow(oldMSTime));
653 LOG_INFO("server.loading", " ");
654}
#define LOG_INFO(filterType__,...)
Definition: Log.h:165
#define LOG_ERROR(filterType__,...)
Definition: Log.h:157
std::uint8_t uint8
Definition: Define.h:109
uint32 GetMSTimeDiffToNow(uint32 oldMSTime)
Definition: Timer.h:131
uint32 getMSTime()
Definition: Timer.h:103
#define ASSERT
Definition: Errors.h:68
std::list< uint32 > SimpleFactionsList
Definition: DBCStores.h:28
DBCStorage< DurabilityQualityEntry > sDurabilityQualityStore(DurabilityQualityfmt)
DBCStorage< AchievementCriteriaEntry > sAchievementCriteriaStore(AchievementCriteriafmt)
DBCStorage< MovieEntry > sMovieStore(MovieEntryfmt)
DBCStorage< SpellItemEnchantmentEntry > sSpellItemEnchantmentStore(SpellItemEnchantmentfmt)
DBCStorage< RandomPropertiesPointsEntry > sRandomPropertiesPointsStore(RandomPropertiesPointsfmt)
DBCStorage< CharTitlesEntry > sCharTitlesStore(CharTitlesEntryfmt)
DBCStorage< VehicleSeatEntry > sVehicleSeatStore(VehicleSeatEntryfmt)
DBCStorage< FactionEntry > sFactionStore(FactionEntryfmt)
DBCStorage< TalentTabEntry > sTalentTabStore(TalentTabEntryfmt)
DBCStorage< ScalingStatDistributionEntry > sScalingStatDistributionStore(ScalingStatDistributionfmt)
#define LOAD_DBC(store, file, dbtable)
TaxiMask sAllianceTaxiNodesMask
Definition: DBCStores.cpp:179
DBCStorage< ItemSetEntry > sItemSetStore(ItemSetEntryfmt)
DBCStorage< DestructibleModelDataEntry > sDestructibleModelDataStore(DestructibleModelDatafmt)
DBCStorage< GlyphSlotEntry > sGlyphSlotStore(GlyphSlotfmt)
TaxiPathSetBySource sTaxiPathSetBySource
Definition: DBCStores.cpp:183
DBCStorage< MailTemplateEntry > sMailTemplateStore(MailTemplateEntryfmt)
DBCStorage< GtChanceToSpellCritBaseEntry > sGtChanceToSpellCritBaseStore(GtChanceToSpellCritBasefmt)
DBCStorage< VehicleEntry > sVehicleStore(VehicleEntryfmt)
DBCStorage< ItemLimitCategoryEntry > sItemLimitCategoryStore(ItemLimitCategoryEntryfmt)
DBCStorage< SpellRadiusEntry > sSpellRadiusStore(SpellRadiusfmt)
DBCStorage< SummonPropertiesEntry > sSummonPropertiesStore(SummonPropertiesfmt)
SpellCategoryStore sSpellsByCategoryStore
Definition: DBCStores.cpp:152
TaxiMask sTaxiNodesMask
Definition: DBCStores.cpp:176
DBCStorage< ScalingStatValuesEntry > sScalingStatValuesStore(ScalingStatValuesfmt)
DBCStorage< CharStartOutfitEntry > sCharStartOutfitStore(CharStartOutfitEntryfmt)
DBCStorage< QuestFactionRewEntry > sQuestFactionRewardStore(QuestFactionRewardfmt)
DBCStorage< GtCombatRatingsEntry > sGtCombatRatingsStore(GtCombatRatingsfmt)
DBCStorage< LockEntry > sLockStore(LockEntryfmt)
DBCStorage< SkillTiersEntry > sSkillTiersStore(SkillTiersfmt)
DBCStorage< AchievementCategoryEntry > sAchievementCategoryStore(AchievementCategoryfmt)
TaxiPathNodesByPath sTaxiPathNodesByPath
Definition: DBCStores.cpp:187
DBCStorage< SpellCategoryEntry > sSpellCategoryStore(SpellCategoryfmt)
DBCStorage< ItemEntry > sItemStore(Itemfmt)
DBCStorage< ChatChannelsEntry > sChatChannelsStore(ChatChannelsEntryfmt)
DBCStorage< PowerDisplayEntry > sPowerDisplayStore(PowerDisplayfmt)
DBCStorage< BankBagSlotPricesEntry > sBankBagSlotPricesStore(BankBagSlotPricesEntryfmt)
DBCStorage< BattlemasterListEntry > sBattlemasterListStore(BattlemasterListEntryfmt)
static DBCStorage< TaxiPathNodeEntry > sTaxiPathNodeStore(TaxiPathNodeEntryfmt)
DBCStorage< CreatureSpellDataEntry > sCreatureSpellDataStore(CreatureSpellDatafmt)
DBCStorage< CreatureDisplayInfoEntry > sCreatureDisplayInfoStore(CreatureDisplayInfofmt)
DBCStorage< SpellItemEnchantmentConditionEntry > sSpellItemEnchantmentConditionStore(SpellItemEnchantmentConditionfmt)
DBCStorage< SpellCastTimesEntry > sSpellCastTimesStore(SpellCastTimefmt)
DBCStorage< SpellRangeEntry > sSpellRangeStore(SpellRangefmt)
DBCStorage< MapDifficultyEntry > sMapDifficultyStore(MapDifficultyEntryfmt)
DBCStorage< ItemBagFamilyEntry > sItemBagFamilyStore(ItemBagFamilyfmt)
DBCStorage< BarberShopStyleEntry > sBarberShopStyleStore(BarberShopStyleEntryfmt)
DBCStorage< ChrRacesEntry > sChrRacesStore(ChrRacesEntryfmt)
DBCStorage< SpellRuneCostEntry > sSpellRuneCostStore(SpellRuneCostfmt)
DBCStorage< GtChanceToSpellCritEntry > sGtChanceToSpellCritStore(GtChanceToSpellCritfmt)
DBCStorage< SpellDifficultyEntry > sSpellDifficultyStore(SpellDifficultyfmt)
TaxiMask sOldContinentsNodesMask
Definition: DBCStores.cpp:177
DBCStorage< SpellVisualEntry > sSpellVisualStore(SpellVisualfmt)
DBCStorage< OverrideSpellDataEntry > sOverrideSpellDataStore(OverrideSpellDatafmt)
DBCStorage< GameObjectDisplayInfoEntry > sGameObjectDisplayInfoStore(GameObjectDisplayInfofmt)
std::unordered_set< uint32 > sPetTalentSpells
Definition: DBCStores.cpp:169
TaxiMask sDeathKnightTaxiNodesMask
Definition: DBCStores.cpp:180
DBCStorage< HolidaysEntry > sHolidaysStore(Holidaysfmt)
DBCStorage< NamesReservedEntry > sNamesReservedStore(NamesReservedfmt)
DBCStorage< GtOCTClassCombatRatingScalarEntry > sGtOCTClassCombatRatingScalarStore(GtOCTClassCombatRatingScalarfmt)
DBCStorage< ItemRandomSuffixEntry > sItemRandomSuffixStore(ItemRandomSuffixfmt)
DBCStorage< SoundEntriesEntry > sSoundEntriesStore(SoundEntriesfmt)
DBCStorage< EmotesTextEntry > sEmotesTextStore(EmotesTextEntryfmt)
DBCStorage< AchievementEntry > sAchievementStore(Achievementfmt)
DBCStorage< TotemCategoryEntry > sTotemCategoryStore(TotemCategoryEntryfmt)
DBCStorage< TransportRotationEntry > sTransportRotationStore(TransportRotationfmt)
DBCStorage< QuestSortEntry > sQuestSortStore(QuestSortEntryfmt)
DBCStorage< GtRegenMPPerSptEntry > sGtRegenMPPerSptStore(GtRegenMPPerSptfmt)
DBCStorage< GameObjectArtKitEntry > sGameObjectArtKitStore(GameObjectArtKitfmt)
DBCStorage< DurabilityCostsEntry > sDurabilityCostsStore(DurabilityCostsfmt)
DBCStorage< WorldMapOverlayEntry > sWorldMapOverlayStore(WorldMapOverlayEntryfmt)
DBCStorage< SpellShapeshiftFormEntry > sSpellShapeshiftFormStore(SpellShapeshiftFormEntryfmt)
DBCStorage< GtChanceToMeleeCritBaseEntry > sGtChanceToMeleeCritBaseStore(GtChanceToMeleeCritBasefmt)
DBCStorage< CreatureDisplayInfoExtraEntry > sCreatureDisplayInfoExtraStore(CreatureDisplayInfoExtrafmt)
DBCStorage< GtRegenHPPerSptEntry > sGtRegenHPPerSptStore(GtRegenHPPerSptfmt)
DBCStorage< SkillRaceClassInfoEntry > sSkillRaceClassInfoStore(SkillRaceClassInfofmt)
DBCStorage< GemPropertiesEntry > sGemPropertiesStore(GemPropertiesEntryfmt)
DBCStorage< ItemRandomPropertiesEntry > sItemRandomPropertiesStore(ItemRandomPropertiesfmt)
uint32 DBCFileCount
Definition: DBCStores.cpp:202
DBCStorage< DungeonEncounterEntry > sDungeonEncounterStore(DungeonEncounterfmt)
DBCStorage< GtNPCManaCostScalerEntry > sGtNPCManaCostScalerStore(GtNPCManaCostScalerfmt)
DBCStorage< SpellEntry > sSpellStore(SpellEntryfmt)
DBCStorage< AreaGroupEntry > sAreaGroupStore(AreaGroupEntryfmt)
DBCStorage< QuestXPEntry > sQuestXPStore(QuestXPfmt)
DBCStorage< SkillLineEntry > sSkillLineStore(SkillLinefmt)
DBCStorage< FactionTemplateEntry > sFactionTemplateStore(FactionTemplateEntryfmt)
DBCStorage< GtOCTRegenHPEntry > sGtOCTRegenHPStore(GtOCTRegenHPfmt)
DBCStorage< TaxiPathEntry > sTaxiPathStore(TaxiPathEntryfmt)
DBCStorage< WMOAreaTableEntry > sWMOAreaTableStore(WMOAreaTableEntryfmt)
DBCStorage< TalentEntry > sTalentStore(TalentEntryfmt)
DBCStorage< NamesProfanityEntry > sNamesProfanityStore(NamesProfanityfmt)
DBCStorage< TaxiNodesEntry > sTaxiNodesStore(TaxiNodesEntryfmt)
DBCStorage< TeamContributionPointsEntry > sTeamContributionPointsStore(TeamContributionPointsfmt)
DBCStorage< SpellDurationEntry > sSpellDurationStore(SpellDurationfmt)
DBCStorage< SpellFocusObjectEntry > sSpellFocusObjectStore(SpellFocusObjectfmt)
DBCStorage< AuctionHouseEntry > sAuctionHouseStore(AuctionHouseEntryfmt)
DBCStorage< TransportAnimationEntry > sTransportAnimationStore(TransportAnimationfmt)
DBCStorage< AreaPOIEntry > sAreaPOIStore(AreaPOIEntryfmt)
DBCStorage< GlyphPropertiesEntry > sGlyphPropertiesStore(GlyphPropertiesfmt)
DBCStorage< CreatureModelDataEntry > sCreatureModelDataStore(CreatureModelDatafmt)
DBCStorage< CreatureTypeEntry > sCreatureTypeStore(CreatureTypefmt)
std::list< std::string > StoreProblemList
Definition: DBCStores.cpp:200
PetFamilySpellsStore sPetFamilySpellsStore
Definition: DBCStores.cpp:153
DBCStorage< CinematicSequencesEntry > sCinematicSequencesStore(CinematicSequencesEntryfmt)
DBCStorage< GtBarberShopCostBaseEntry > sGtBarberShopCostBaseStore(GtBarberShopCostBasefmt)
DBCStorage< CinematicCameraEntry > sCinematicCameraStore(CinematicCameraEntryfmt)
DBCStorage< ItemExtendedCostEntry > sItemExtendedCostStore(ItemExtendedCostEntryfmt)
DBCStorage< ItemDisplayInfoEntry > sItemDisplayInfoStore(ItemDisplayTemplateEntryfmt)
DBCStorage< AreaTableEntry > sAreaTableStore(AreaTableEntryfmt)
DBCStorage< SkillLineAbilityEntry > sSkillLineAbilityStore(SkillLineAbilityfmt)
DBCStorage< ChrClassesEntry > sChrClassesStore(ChrClassesEntryfmt)
DBCStorage< CurrencyTypesEntry > sCurrencyTypesStore(CurrencyTypesfmt)
DBCStorage< EmotesEntry > sEmotesStore(EmotesEntryfmt)
DBCStorage< GtChanceToMeleeCritEntry > sGtChanceToMeleeCritStore(GtChanceToMeleeCritfmt)
TaxiMask sHordeTaxiNodesMask
Definition: DBCStores.cpp:178
DBCStorage< StableSlotPricesEntry > sStableSlotPricesStore(StableSlotPricesfmt)
#define sSpellMgr
Definition: SpellMgr.h:825
#define sTransportMgr
Definition: TransportMgr.h:163
@ SPELL_EFFECT_SEND_TAXI
Definition: SharedDefines.h:901
@ SPELL_ATTR0_PASSIVE
Definition: SharedDefines.h:388
#define MAX_CLASSES
Definition: SharedDefines.h:155
#define CLASSMASK_ALL_PLAYABLE
Definition: SharedDefines.h:157
#define MAX_TALENT_RANK
Definition: DBCStructure.h:1917
#define MAX_SPELL_EFFECTS
Definition: DBCStructure.h:1636
#define MAX_DIFFICULTY
Definition: DBCEnums.h:283
#define MAX_BATTLEGROUND_BRACKETS
Definition: DBCEnums.h:52
@ SKILL_LINE_ABILITY_LEARNED_ON_SKILL_LEARN
Definition: DBCEnums.h:361
Definition: DBCStructure.h:619
Definition: DBCStructure.h:906
Definition: DBCStructure.h:999
Definition: DBCStructure.h:1378
Definition: DBCStructure.h:1568
Definition: DBCStructure.h:1597
Definition: DBCStructure.h:1641
uint32 Id
Definition: DBCStructure.h:1642
uint32 Attributes
Definition: DBCStructure.h:1646
uint32 SpellLevel
Definition: DBCStructure.h:1679
Definition: DBCStructure.h:1771
int32 SpellID[MAX_DIFFICULTY]
Definition: DBCStructure.h:1773
Definition: DBCStructure.h:1922
Definition: DBCStructure.h:1939
uint32 petTalentMask
Definition: DBCStructure.h:1946
uint32 tabpage
Definition: DBCStructure.h:1947
uint32 ClassMask
Definition: DBCStructure.h:1945
Definition: DBCStructure.h:1952
uint32 map_id
Definition: DBCStructure.h:1954
uint32 MountCreatureID[2]
Definition: DBCStructure.h:1960
Definition: DBCStructure.h:1964
Definition: DBCStructure.h:1972
Definition: DBCStructure.h:2002
Definition: DBCStructure.h:2013
Definition: DBCStructure.h:2130

Referenced by World::SetInitialWorldSettings().

◆ Map2ZoneCoordinates()

void Map2ZoneCoordinates ( float &  x,
float &  y,
uint32  zone 
)
749{
750 WorldMapAreaEntry const* maEntry = sWorldMapAreaStore.LookupEntry(zone);
751
752 // if not listed then map coordinates (instance)
753 if (!maEntry)
754 return;
755
756 x = (x - maEntry->x1) / ((maEntry->x2 - maEntry->x1) / 100);
757 y = (y - maEntry->y1) / ((maEntry->y2 - maEntry->y1) / 100); // client y coord from top to down
758 std::swap(x, y); // client have map coords swapped
759}
float x2
Definition: DBCStructure.h:2155
float x1
Definition: DBCStructure.h:2154
float y1
Definition: DBCStructure.h:2152
float y2
Definition: DBCStructure.h:2153

References sWorldMapAreaStore, WorldMapAreaEntry::x1, WorldMapAreaEntry::x2, WorldMapAreaEntry::y1, and WorldMapAreaEntry::y2.

Referenced by misc_commandscript::HandleGPSCommand().

◆ Zone2MapCoordinates()

void Zone2MapCoordinates ( float &  x,
float &  y,
uint32  zone 
)
736{
737 WorldMapAreaEntry const* maEntry = sWorldMapAreaStore.LookupEntry(zone);
738
739 // if not listed then map coordinates (instance)
740 if (!maEntry)
741 return;
742
743 std::swap(x, y); // at client map coords swapped
744 x = x * ((maEntry->x2 - maEntry->x1) / 100) + maEntry->x1;
745 y = y * ((maEntry->y2 - maEntry->y1) / 100) + maEntry->y1; // client y coord from top to down
746}

References sWorldMapAreaStore, WorldMapAreaEntry::x1, WorldMapAreaEntry::x2, WorldMapAreaEntry::y1, and WorldMapAreaEntry::y2.

Referenced by go_commandscript::HandleGoZoneXYCommand().

Variable Documentation

◆ sAchievementCategoryStore

DBCStorage<AchievementCategoryEntry> sAchievementCategoryStore
extern

◆ sAchievementCriteriaStore

DBCStorage<AchievementCriteriaEntry> sAchievementCriteriaStore
extern

◆ sAchievementStore

DBCStorage<AchievementEntry> sAchievementStore
extern

◆ sAllianceTaxiNodesMask

TaxiMask sAllianceTaxiNodesMask
extern

◆ sAreaGroupStore

DBCStorage<AreaGroupEntry> sAreaGroupStore
extern

◆ sAreaPOIStore

DBCStorage<AreaPOIEntry> sAreaPOIStore
extern

◆ sAreaTableStore

DBCStorage<AreaTableEntry> sAreaTableStore
extern

◆ sAuctionHouseStore

DBCStorage<AuctionHouseEntry> sAuctionHouseStore
extern

◆ sBankBagSlotPricesStore

DBCStorage<BankBagSlotPricesEntry> sBankBagSlotPricesStore
extern

◆ sBarberShopStyleStore

DBCStorage<BarberShopStyleEntry> sBarberShopStyleStore
extern

◆ sBattlemasterListStore

DBCStorage<BattlemasterListEntry> sBattlemasterListStore
extern

◆ sCharStartOutfitStore

DBCStorage<CharStartOutfitEntry> sCharStartOutfitStore
extern

◆ sCharTitlesStore

DBCStorage<CharTitlesEntry> sCharTitlesStore
extern

◆ sChatChannelsStore

DBCStorage<ChatChannelsEntry> sChatChannelsStore
extern

◆ sChrClassesStore

DBCStorage<ChrClassesEntry> sChrClassesStore
extern

◆ sChrRacesStore

DBCStorage<ChrRacesEntry> sChrRacesStore
extern

◆ sCinematicCameraStore

DBCStorage<CinematicCameraEntry> sCinematicCameraStore
extern

◆ sCinematicSequencesStore

DBCStorage<CinematicSequencesEntry> sCinematicSequencesStore
extern

◆ sCreatureDisplayInfoExtraStore

DBCStorage<CreatureDisplayInfoExtraEntry> sCreatureDisplayInfoExtraStore
extern

◆ sCreatureDisplayInfoStore

DBCStorage<CreatureDisplayInfoEntry> sCreatureDisplayInfoStore
extern

◆ sCreatureFamilyStore

DBCStorage<CreatureFamilyEntry> sCreatureFamilyStore
extern

◆ sCreatureModelDataStore

DBCStorage<CreatureModelDataEntry> sCreatureModelDataStore
extern

◆ sCreatureSpellDataStore

DBCStorage<CreatureSpellDataEntry> sCreatureSpellDataStore
extern

◆ sCreatureTypeStore

DBCStorage<CreatureTypeEntry> sCreatureTypeStore
extern

◆ sCurrencyTypesStore

DBCStorage<CurrencyTypesEntry> sCurrencyTypesStore
extern

◆ sDeathKnightTaxiNodesMask

TaxiMask sDeathKnightTaxiNodesMask
extern

◆ sDestructibleModelDataStore

DBCStorage<DestructibleModelDataEntry> sDestructibleModelDataStore
extern

◆ sDungeonEncounterStore

DBCStorage<DungeonEncounterEntry> sDungeonEncounterStore
extern

◆ sDurabilityCostsStore

DBCStorage<DurabilityCostsEntry> sDurabilityCostsStore
extern

◆ sDurabilityQualityStore

DBCStorage<DurabilityQualityEntry> sDurabilityQualityStore
extern

◆ sEmotesStore

DBCStorage<EmotesEntry> sEmotesStore
extern

◆ sEmotesTextStore

DBCStorage<EmotesTextEntry> sEmotesTextStore
extern

◆ sFactionStore

DBCStorage<FactionEntry> sFactionStore
extern

◆ sFactionTemplateStore

DBCStorage<FactionTemplateEntry> sFactionTemplateStore
extern

◆ sGameObjectArtKitStore

DBCStorage<GameObjectArtKitEntry> sGameObjectArtKitStore
extern

◆ sGameObjectDisplayInfoStore

DBCStorage<GameObjectDisplayInfoEntry> sGameObjectDisplayInfoStore
extern

◆ sGemPropertiesStore

DBCStorage<GemPropertiesEntry> sGemPropertiesStore
extern

◆ sGlyphPropertiesStore

DBCStorage<GlyphPropertiesEntry> sGlyphPropertiesStore
extern

◆ sGlyphSlotStore

DBCStorage<GlyphSlotEntry> sGlyphSlotStore
extern

◆ sGtBarberShopCostBaseStore

DBCStorage<GtBarberShopCostBaseEntry> sGtBarberShopCostBaseStore
extern

◆ sGtChanceToMeleeCritBaseStore

DBCStorage<GtChanceToMeleeCritBaseEntry> sGtChanceToMeleeCritBaseStore
extern

◆ sGtChanceToMeleeCritStore

DBCStorage<GtChanceToMeleeCritEntry> sGtChanceToMeleeCritStore
extern

◆ sGtChanceToSpellCritBaseStore

DBCStorage<GtChanceToSpellCritBaseEntry> sGtChanceToSpellCritBaseStore
extern

◆ sGtChanceToSpellCritStore

DBCStorage<GtChanceToSpellCritEntry> sGtChanceToSpellCritStore
extern

◆ sGtCombatRatingsStore

DBCStorage<GtCombatRatingsEntry> sGtCombatRatingsStore
extern

◆ sGtNPCManaCostScalerStore

DBCStorage<GtNPCManaCostScalerEntry> sGtNPCManaCostScalerStore
extern

◆ sGtOCTClassCombatRatingScalarStore

DBCStorage<GtOCTClassCombatRatingScalarEntry> sGtOCTClassCombatRatingScalarStore
extern

◆ sGtOCTRegenHPStore

DBCStorage<GtOCTRegenHPEntry> sGtOCTRegenHPStore
extern

◆ sGtRegenHPPerSptStore

DBCStorage<GtRegenHPPerSptEntry> sGtRegenHPPerSptStore
extern

◆ sGtRegenMPPerSptStore

DBCStorage<GtRegenMPPerSptEntry> sGtRegenMPPerSptStore
extern

◆ sHolidaysStore

DBCStorage<HolidaysEntry> sHolidaysStore
extern

◆ sHordeTaxiNodesMask

TaxiMask sHordeTaxiNodesMask
extern

◆ sItemBagFamilyStore

DBCStorage<ItemBagFamilyEntry> sItemBagFamilyStore
extern

◆ sItemDisplayInfoStore

DBCStorage<ItemDisplayInfoEntry> sItemDisplayInfoStore
extern

◆ sItemExtendedCostStore

DBCStorage<ItemExtendedCostEntry> sItemExtendedCostStore
extern

◆ sItemLimitCategoryStore

DBCStorage<ItemLimitCategoryEntry> sItemLimitCategoryStore
extern

◆ sItemRandomPropertiesStore

DBCStorage<ItemRandomPropertiesEntry> sItemRandomPropertiesStore
extern

◆ sItemRandomSuffixStore

DBCStorage<ItemRandomSuffixEntry> sItemRandomSuffixStore
extern

◆ sItemSetStore

DBCStorage<ItemSetEntry> sItemSetStore
extern

◆ sItemStore

DBCStorage<ItemEntry> sItemStore
extern

◆ sLFGDungeonStore

DBCStorage<LFGDungeonEntry> sLFGDungeonStore
extern

◆ sLiquidTypeStore

DBCStorage<LiquidTypeEntry> sLiquidTypeStore
extern

◆ sLockStore

DBCStorage<LockEntry> sLockStore
extern

◆ sMailTemplateStore

DBCStorage<MailTemplateEntry> sMailTemplateStore
extern

◆ sMapDifficultyMap

MapDifficultyMap sMapDifficultyMap
extern

◆ sMapStore

DBCStorage<MapEntry> sMapStore
extern

◆ sMovieStore

DBCStorage<MovieEntry> sMovieStore
extern

◆ sNamesProfanityStore

DBCStorage<NamesProfanityEntry> sNamesProfanityStore
extern

◆ sNamesReservedStore

DBCStorage<NamesReservedEntry> sNamesReservedStore
extern

◆ sOldContinentsNodesMask

TaxiMask sOldContinentsNodesMask
extern

◆ sOverrideSpellDataStore

DBCStorage<OverrideSpellDataEntry> sOverrideSpellDataStore
extern

◆ sPetFamilySpellsStore

PetFamilySpellsStore sPetFamilySpellsStore
extern

Referenced by Pet::LearnPetPassives().

◆ sPetTalentSpells

std::unordered_set<uint32> sPetTalentSpells
extern

◆ sPowerDisplayStore

DBCStorage<PowerDisplayEntry> sPowerDisplayStore
extern

◆ sQuestFactionRewardStore

DBCStorage<QuestFactionRewEntry> sQuestFactionRewardStore
extern

◆ sQuestSortStore

DBCStorage<QuestSortEntry> sQuestSortStore
extern

◆ sQuestXPStore

DBCStorage<QuestXPEntry> sQuestXPStore
extern

◆ sRandomPropertiesPointsStore

DBCStorage<RandomPropertiesPointsEntry> sRandomPropertiesPointsStore
extern

◆ sScalingStatDistributionStore

DBCStorage<ScalingStatDistributionEntry> sScalingStatDistributionStore
extern

◆ sScalingStatValuesStore

DBCStorage<ScalingStatValuesEntry> sScalingStatValuesStore
extern

◆ sSkillLineAbilityIndexBySkillLine

SkillLineAbilityIndexBySkillLine sSkillLineAbilityIndexBySkillLine
extern

◆ sSkillLineAbilityStore

DBCStorage<SkillLineAbilityEntry> sSkillLineAbilityStore
extern

◆ sSkillLineStore

DBCStorage<SkillLineEntry> sSkillLineStore
extern

◆ sSkillTiersStore

DBCStorage<SkillTiersEntry> sSkillTiersStore
extern

◆ sSoundEntriesStore

DBCStorage<SoundEntriesEntry> sSoundEntriesStore
extern

◆ sSpellCastTimesStore

DBCStorage<SpellCastTimesEntry> sSpellCastTimesStore
extern

◆ sSpellCategoryStore

DBCStorage<SpellCategoryEntry> sSpellCategoryStore
extern

◆ sSpellDifficultyStore

DBCStorage<SpellDifficultyEntry> sSpellDifficultyStore
extern

◆ sSpellDurationStore

DBCStorage<SpellDurationEntry> sSpellDurationStore
extern

◆ sSpellFocusObjectStore

DBCStorage<SpellFocusObjectEntry> sSpellFocusObjectStore
extern

◆ sSpellItemEnchantmentConditionStore

DBCStorage<SpellItemEnchantmentConditionEntry> sSpellItemEnchantmentConditionStore
extern

◆ sSpellItemEnchantmentStore

DBCStorage<SpellItemEnchantmentEntry> sSpellItemEnchantmentStore
extern

◆ sSpellRadiusStore

DBCStorage<SpellRadiusEntry> sSpellRadiusStore
extern

◆ sSpellRangeStore

DBCStorage<SpellRangeEntry> sSpellRangeStore
extern

◆ sSpellRuneCostStore

DBCStorage<SpellRuneCostEntry> sSpellRuneCostStore
extern

◆ sSpellsByCategoryStore

◆ sSpellShapeshiftFormStore

DBCStorage<SpellShapeshiftFormEntry> sSpellShapeshiftFormStore
extern

◆ sSpellStore

DBCStorage<SpellEntry> sSpellStore
extern

◆ sSpellVisualStore

DBCStorage<SpellVisualEntry> sSpellVisualStore
extern

◆ sStableSlotPricesStore

DBCStorage<StableSlotPricesEntry> sStableSlotPricesStore
extern

◆ sSummonPropertiesStore

DBCStorage<SummonPropertiesEntry> sSummonPropertiesStore
extern

◆ sTalentStore

DBCStorage<TalentEntry> sTalentStore
extern

◆ sTalentTabStore

DBCStorage<TalentTabEntry> sTalentTabStore
extern

◆ sTaxiNodesMask

◆ sTaxiNodesStore

DBCStorage<TaxiNodesEntry> sTaxiNodesStore
extern

◆ sTaxiPathNodesByPath

◆ sTaxiPathSetBySource

◆ sTaxiPathStore

DBCStorage<TaxiPathEntry> sTaxiPathStore
extern

◆ sTeamContributionPointsStore

DBCStorage<TeamContributionPointsEntry> sTeamContributionPointsStore
extern

◆ sTotemCategoryStore

DBCStorage<TotemCategoryEntry> sTotemCategoryStore
extern

◆ sVehicleSeatStore

DBCStorage<VehicleSeatEntry> sVehicleSeatStore
extern

◆ sVehicleStore

DBCStorage<VehicleEntry> sVehicleStore
extern

◆ sWMOAreaTableStore

DBCStorage<WMOAreaTableEntry> sWMOAreaTableStore
extern

◆ sWorldMapOverlayStore

DBCStorage<WorldMapOverlayEntry> sWorldMapOverlayStore
extern