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
 

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)
 
LFGDungeonEntry const * GetZoneLFGDungeonEntry (std::string const &zoneName, LocaleConstant locale)
 
uint32 GetDefaultMapLight (uint32 mapId)
 
SkillRaceClassInfoEntry const * GetSkillRaceClassInfo (uint32 skill, uint8 race, uint8 class_)
 
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
 
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< SpellShapeshiftEntrysSpellShapeshiftStore
 
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

◆ 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 
)
812{
813 for (PvPDifficultyEntry const* entry : sPvPDifficultyStore)
814 if (entry->mapId == mapid && entry->GetBracketId() == id)
815 return entry;
816
817 return nullptr;
818}
DBCStorage< PvPDifficultyEntry > sPvPDifficultyStore(PvPDifficultyfmt)
Definition: DBCStructure.h:1429

References sPvPDifficultyStore.

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

◆ GetBattlegroundBracketByLevel()

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

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 
)
839{
840 std::map<uint32, CharStartOutfitEntry const*>::const_iterator itr = sCharStartOutfitMap.find(race | (class_ << 8) | (gender << 16));
841 if (itr == sCharStartOutfitMap.end())
842 return nullptr;
843
844 return itr->second;
845}
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 
)
711{
712 mapid = GetVirtualMapForMapAndZone(mapid, zoneId);
713 if (mapid < 2)
714 return CONTENT_1_60;
715
716 MapEntry const* mapEntry = sMapStore.LookupEntry(mapid);
717 if (!mapEntry)
718 return CONTENT_1_60;
719
720 switch (mapEntry->Expansion())
721 {
722 default:
723 return CONTENT_1_60;
724 case 1:
725 return CONTENT_61_70;
726 case 2:
727 return CONTENT_71_80;
728 }
729}
uint32 GetVirtualMapForMapAndZone(uint32 mapid, uint32 zoneId)
Definition: DBCStores.cpp:699
DBCStorage< MapEntry > sMapStore(MapEntryfmt)
Definition: DBCStructure.h:1323
uint32 Expansion() const
Definition: DBCStructure.h:1347

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)
877{
878 for (int32 i = sLightStore.GetNumRows(); i >= 0; --i)
879 {
880 LightEntry const* light = sLightStore.LookupEntry(uint32(i));
881 if (!light)
882 continue;
883
884 if (light->MapId == mapId && light->X == 0.0f && light->Y == 0.0f && light->Z == 0.0f)
885 return light->Id;
886 }
887
888 return 0;
889}
std::int32_t int32
Definition: Define.h:104
std::uint32_t uint32
Definition: Define.h:108
DBCStorage< LightEntry > sLightStore(LightEntryfmt)
Definition: DBCStructure.h:1262
float Y
Definition: DBCStructure.h:1266
uint32 Id
Definition: DBCStructure.h:1263
float X
Definition: DBCStructure.h:1265
float Z
Definition: DBCStructure.h:1267
uint32 MapId
Definition: DBCStructure.h:1264

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

◆ GetDownscaledMapDifficultyData()

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

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)
653{
654 FactionTeamMap::const_iterator itr = sFactionTeamMap.find(faction);
655 if (itr != sFactionTeamMap.end())
656 return &itr->second;
657
658 return nullptr;
659}
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)

849{
850 for (uint32 i = 0; i < sLFGDungeonStore.GetNumRows(); ++i)
851 {
852 LFGDungeonEntry const* dungeon = sLFGDungeonStore.LookupEntry(i);
853 if (!dungeon)
854 continue;
855
856 if (dungeon->MapID == uint32(mapId) && Difficulty(dungeon->Difficulty) == difficulty)
857 return dungeon;
858 }
859
860 return nullptr;
861}
DBCStorage< LFGDungeonEntry > sLFGDungeonStore(LFGDungeonEntryfmt)
Definition: DBCStructure.h:1236
uint32 MapID
Definition: DBCStructure.h:1245
uint32 Difficulty
Definition: DBCStructure.h:1246

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

Referenced by Player::RewardReputation().

◆ GetLiquidFlags()

uint32 GetLiquidFlags ( uint32  liquidType)
831{
832 if (LiquidTypeEntry const* liq = sLiquidTypeStore.LookupEntry(liquidType))
833 return 1 << liq->Type;
834
835 return 0;
836}
DBCStorage< LiquidTypeEntry > sLiquidTypeStore(LiquidTypefmt)
Definition: DBCStructure.h:1281

References sLiquidTypeStore.

Referenced by World::SetInitialWorldSettings().

◆ GetMapDifficultyData()

MapDifficulty const * GetMapDifficultyData ( uint32  mapId,
Difficulty  difficulty 
)
758{
759 MapDifficultyMap::const_iterator itr = sMapDifficultyMap.find(MAKE_PAIR32(mapId, difficulty));
760 return itr != sMapDifficultyMap.end() ? &itr->second : nullptr;
761}
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 
)
662{
663 if (!petfamily)
664 return nullptr;
665
666 CreatureFamilyEntry const* pet_family = sCreatureFamilyStore.LookupEntry(petfamily);
667 if (!pet_family)
668 return nullptr;
669
670 return pet_family->Name[dbclang];
671}
DBCStorage< CreatureFamilyEntry > sCreatureFamilyStore(CreatureFamilyfmt)
Definition: DBCStructure.h:754
char const * Name[16]
Definition: DBCStructure.h:764

References CreatureFamilyEntry::Name, and sCreatureFamilyStore.

Referenced by ObjectMgr::GeneratePetName().

◆ GetSkillRaceClassInfo()

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

References SkillRaceClassInfoBySkill.

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

◆ GetTalentSpellCost()

◆ GetTalentSpellPos()

TalentSpellPos const * GetTalentSpellPos ( uint32  spellId)
674{
675 TalentSpellPosMap::const_iterator itr = sTalentSpellPosMap.find(spellId);
676 if (itr == sTalentSpellPosMap.end())
677 return nullptr;
678
679 return &itr->second;
680}
TalentSpellPosMap sTalentSpellPosMap
Definition: DBCStores.cpp:167

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)
821{
822 return sTalentTabPages[cls];
823}
static uint32 sTalentTabPages[MAX_CLASSES][3]
Definition: DBCStores.cpp:172

References sTalentTabPages.

Referenced by Player::GetSpec().

◆ GetVirtualMapForMapAndZone()

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

References sWorldMapAreaStore.

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

◆ GetWMOAreaTableEntryByTripple()

WMOAreaTableEntry const * GetWMOAreaTableEntryByTripple ( int32  rootid,
int32  adtid,
int32  groupid 
)
691{
692 auto i = sWMOAreaInfoByTripple.find(WMOAreaTableKey(int16(rootid), int8(adtid), groupid));
693 if (i != sWMOAreaInfoByTripple.end())
694 return i->second;
695
696 return nullptr;
697}
std::int8_t int8
Definition: Define.h:106
std::int16_t int16
Definition: Define.h:105
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 
)
864{
865 for (LFGDungeonEntry const* dungeon : sLFGDungeonStore)
866 {
867 if (dungeon->TypeID == lfg::LFG_TYPE_ZONE && zoneName.find(dungeon->Name[locale]) != std::string::npos)
868 {
869 return dungeon;
870 }
871 }
872
873 return nullptr;
874}
@ LFG_TYPE_ZONE
Definition: LFGMgr.h:72

References lfg::LFG_TYPE_ZONE, and sLFGDungeonStore.

Referenced by WorldSession::HandleCharFactionOrRaceChangeCallback().

◆ IsSharedDifficultyMap()

bool IsSharedDifficultyMap ( uint32  mapid)
826{
827 return sWorld->getBoolConfig(CONFIG_INSTANCE_SHARED_ID) && (mapid == 631 || mapid == 724);
828}
@ CONFIG_INSTANCE_SHARED_ID
Definition: IWorld.h:92
#define sWorld
Definition: World.h:447

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)
261{
262 uint32 oldMSTime = getMSTime();
263
264 std::string dbcPath = dataPath + "dbc/";
265
266 StoreProblemList bad_dbc_files;
267 uint32 availableDbcLocales = 0xFFFFFFFF;
268
269#define LOAD_DBC(store, file, dbtable) LoadDBC(availableDbcLocales, bad_dbc_files, store, dbcPath, file, dbtable)
270
271 LOAD_DBC(sAreaTableStore, "AreaTable.dbc", "areatable_dbc");
272 LOAD_DBC(sAchievementStore, "Achievement.dbc", "achievement_dbc");
273 LOAD_DBC(sAchievementCategoryStore, "Achievement_Category.dbc", "achievement_category_dbc");
274 LOAD_DBC(sAchievementCriteriaStore, "Achievement_Criteria.dbc", "achievement_criteria_dbc");
275 LOAD_DBC(sAreaGroupStore, "AreaGroup.dbc", "areagroup_dbc");
276 LOAD_DBC(sAreaPOIStore, "AreaPOI.dbc", "areapoi_dbc");
277 LOAD_DBC(sAuctionHouseStore, "AuctionHouse.dbc", "auctionhouse_dbc");
278 LOAD_DBC(sBankBagSlotPricesStore, "BankBagSlotPrices.dbc", "bankbagslotprices_dbc");
279 LOAD_DBC(sBattlemasterListStore, "BattlemasterList.dbc", "battlemasterlist_dbc");
280 LOAD_DBC(sBarberShopStyleStore, "BarberShopStyle.dbc", "barbershopstyle_dbc");
281 LOAD_DBC(sCharStartOutfitStore, "CharStartOutfit.dbc", "charstartoutfit_dbc");
282 LOAD_DBC(sCharTitlesStore, "CharTitles.dbc", "chartitles_dbc");
283 LOAD_DBC(sChatChannelsStore, "ChatChannels.dbc", "chatchannels_dbc");
284 LOAD_DBC(sChrClassesStore, "ChrClasses.dbc", "chrclasses_dbc");
285 LOAD_DBC(sChrRacesStore, "ChrRaces.dbc", "chrraces_dbc");
286 LOAD_DBC(sCinematicCameraStore, "CinematicCamera.dbc", "cinematiccamera_dbc");
287 LOAD_DBC(sCinematicSequencesStore, "CinematicSequences.dbc", "cinematicsequences_dbc");
288 LOAD_DBC(sCreatureDisplayInfoStore, "CreatureDisplayInfo.dbc", "creaturedisplayinfo_dbc");
289 LOAD_DBC(sCreatureDisplayInfoExtraStore, "CreatureDisplayInfoExtra.dbc", "creaturedisplayinfoextra_dbc");
290 LOAD_DBC(sCreatureFamilyStore, "CreatureFamily.dbc", "creaturefamily_dbc");
291 LOAD_DBC(sCreatureModelDataStore, "CreatureModelData.dbc", "creaturemodeldata_dbc");
292 LOAD_DBC(sCreatureSpellDataStore, "CreatureSpellData.dbc", "creaturespelldata_dbc");
293 LOAD_DBC(sCreatureTypeStore, "CreatureType.dbc", "creaturetype_dbc");
294 LOAD_DBC(sCurrencyTypesStore, "CurrencyTypes.dbc", "currencytypes_dbc");
295 LOAD_DBC(sDestructibleModelDataStore, "DestructibleModelData.dbc", "destructiblemodeldata_dbc");
296 LOAD_DBC(sDungeonEncounterStore, "DungeonEncounter.dbc", "dungeonencounter_dbc");
297 LOAD_DBC(sDurabilityCostsStore, "DurabilityCosts.dbc", "durabilitycosts_dbc");
298 LOAD_DBC(sDurabilityQualityStore, "DurabilityQuality.dbc", "durabilityquality_dbc");
299 LOAD_DBC(sEmotesStore, "Emotes.dbc", "emotes_dbc");
300 LOAD_DBC(sEmotesTextStore, "EmotesText.dbc", "emotestext_dbc");
301 LOAD_DBC(sFactionStore, "Faction.dbc", "faction_dbc");
302 LOAD_DBC(sFactionTemplateStore, "FactionTemplate.dbc", "factiontemplate_dbc");
303 LOAD_DBC(sGameObjectArtKitStore, "GameObjectArtKit.dbc", "gameobjectartkit_dbc");
304 LOAD_DBC(sGameObjectDisplayInfoStore, "GameObjectDisplayInfo.dbc", "gameobjectdisplayinfo_dbc");
305 LOAD_DBC(sGemPropertiesStore, "GemProperties.dbc", "gemproperties_dbc");
306 LOAD_DBC(sGlyphPropertiesStore, "GlyphProperties.dbc", "glyphproperties_dbc");
307 LOAD_DBC(sGlyphSlotStore, "GlyphSlot.dbc", "glyphslot_dbc");
308 LOAD_DBC(sGtBarberShopCostBaseStore, "gtBarberShopCostBase.dbc", "gtbarbershopcostbase_dbc");
309 LOAD_DBC(sGtCombatRatingsStore, "gtCombatRatings.dbc", "gtcombatratings_dbc");
310 LOAD_DBC(sGtChanceToMeleeCritBaseStore, "gtChanceToMeleeCritBase.dbc", "gtchancetomeleecritbase_dbc");
311 LOAD_DBC(sGtChanceToMeleeCritStore, "gtChanceToMeleeCrit.dbc", "gtchancetomeleecrit_dbc");
312 LOAD_DBC(sGtChanceToSpellCritBaseStore, "gtChanceToSpellCritBase.dbc", "gtchancetospellcritbase_dbc");
313 LOAD_DBC(sGtChanceToSpellCritStore, "gtChanceToSpellCrit.dbc", "gtchancetospellcrit_dbc");
314 LOAD_DBC(sGtNPCManaCostScalerStore, "gtNPCManaCostScaler.dbc", "gtnpcmanacostscaler_dbc");
315 LOAD_DBC(sGtOCTClassCombatRatingScalarStore, "gtOCTClassCombatRatingScalar.dbc", "gtoctclasscombatratingscalar_dbc");
316 LOAD_DBC(sGtOCTRegenHPStore, "gtOCTRegenHP.dbc", "gtoctregenhp_dbc");
317 //LOAD_DBC(sGtOCTRegenMPStore, "gtOCTRegenMP.dbc", "gtoctregenmp_dbc"); -- not used currently
318 LOAD_DBC(sGtRegenHPPerSptStore, "gtRegenHPPerSpt.dbc", "gtregenhpperspt_dbc");
319 LOAD_DBC(sGtRegenMPPerSptStore, "gtRegenMPPerSpt.dbc", "gtregenmpperspt_dbc");
320 LOAD_DBC(sHolidaysStore, "Holidays.dbc", "holidays_dbc");
321 LOAD_DBC(sItemStore, "Item.dbc", "item_dbc");
322 LOAD_DBC(sItemBagFamilyStore, "ItemBagFamily.dbc", "itembagfamily_dbc");
323 LOAD_DBC(sItemDisplayInfoStore, "ItemDisplayInfo.dbc", "itemdisplayinfo_dbc");
324 //LOAD_DBC(sItemCondExtCostsStore, "ItemCondExtCosts.dbc", "itemcondextcosts_dbc");
325 LOAD_DBC(sItemExtendedCostStore, "ItemExtendedCost.dbc", "itemextendedcost_dbc");
326 LOAD_DBC(sItemLimitCategoryStore, "ItemLimitCategory.dbc", "itemlimitcategory_dbc");
327 LOAD_DBC(sItemRandomPropertiesStore, "ItemRandomProperties.dbc", "itemrandomproperties_dbc");
328 LOAD_DBC(sItemRandomSuffixStore, "ItemRandomSuffix.dbc", "itemrandomsuffix_dbc");
329 LOAD_DBC(sItemSetStore, "ItemSet.dbc", "itemset_dbc");
330 LOAD_DBC(sLFGDungeonStore, "LFGDungeons.dbc", "lfgdungeons_dbc");
331 LOAD_DBC(sLightStore, "Light.dbc", "light_dbc");
332 LOAD_DBC(sLiquidTypeStore, "LiquidType.dbc", "liquidtype_dbc");
333 LOAD_DBC(sLockStore, "Lock.dbc", "lock_dbc");
334 LOAD_DBC(sMailTemplateStore, "MailTemplate.dbc", "mailtemplate_dbc");
335 LOAD_DBC(sMapStore, "Map.dbc", "map_dbc");
336 LOAD_DBC(sMapDifficultyStore, "MapDifficulty.dbc", "mapdifficulty_dbc");
337 LOAD_DBC(sMovieStore, "Movie.dbc", "movie_dbc");
338 LOAD_DBC(sNamesReservedStore, "NamesReserved.dbc", "namesreserved_dbc");
339 LOAD_DBC(sNamesProfanityStore, "NamesProfanity.dbc", "namesprofanity_dbc");
340 LOAD_DBC(sOverrideSpellDataStore, "OverrideSpellData.dbc", "overridespelldata_dbc");
341 LOAD_DBC(sPowerDisplayStore, "PowerDisplay.dbc", "powerdisplay_dbc");
342 LOAD_DBC(sPvPDifficultyStore, "PvpDifficulty.dbc", "pvpdifficulty_dbc");
343 LOAD_DBC(sQuestXPStore, "QuestXP.dbc", "questxp_dbc");
344 LOAD_DBC(sQuestFactionRewardStore, "QuestFactionReward.dbc", "questfactionreward_dbc");
345 LOAD_DBC(sQuestSortStore, "QuestSort.dbc", "questsort_dbc");
346 LOAD_DBC(sRandomPropertiesPointsStore, "RandPropPoints.dbc", "randproppoints_dbc");
347 LOAD_DBC(sScalingStatDistributionStore, "ScalingStatDistribution.dbc", "scalingstatdistribution_dbc");
348 LOAD_DBC(sScalingStatValuesStore, "ScalingStatValues.dbc", "scalingstatvalues_dbc");
349 LOAD_DBC(sSkillLineStore, "SkillLine.dbc", "skillline_dbc");
350 LOAD_DBC(sSkillLineAbilityStore, "SkillLineAbility.dbc", "skilllineability_dbc");
351 LOAD_DBC(sSkillRaceClassInfoStore, "SkillRaceClassInfo.dbc", "skillraceclassinfo_dbc");
352 LOAD_DBC(sSkillTiersStore, "SkillTiers.dbc", "skilltiers_dbc");
353 LOAD_DBC(sSoundEntriesStore, "SoundEntries.dbc", "soundentries_dbc");
354 LOAD_DBC(sSpellStore, "Spell.dbc", "spell_dbc");
355 LOAD_DBC(sSpellCastTimesStore, "SpellCastTimes.dbc", "spellcasttimes_dbc");
356 LOAD_DBC(sSpellCategoryStore, "SpellCategory.dbc", "spellcategory_dbc");
357 LOAD_DBC(sSpellDifficultyStore, "SpellDifficulty.dbc", "spelldifficulty_dbc");
358 LOAD_DBC(sSpellDurationStore, "SpellDuration.dbc", "spellduration_dbc");
359 LOAD_DBC(sSpellFocusObjectStore, "SpellFocusObject.dbc", "spellfocusobject_dbc");
360 LOAD_DBC(sSpellItemEnchantmentStore, "SpellItemEnchantment.dbc", "spellitemenchantment_dbc");
361 LOAD_DBC(sSpellItemEnchantmentConditionStore, "SpellItemEnchantmentCondition.dbc", "spellitemenchantmentcondition_dbc");
362 LOAD_DBC(sSpellRadiusStore, "SpellRadius.dbc", "spellradius_dbc");
363 LOAD_DBC(sSpellRangeStore, "SpellRange.dbc", "spellrange_dbc");
364 LOAD_DBC(sSpellRuneCostStore, "SpellRuneCost.dbc", "spellrunecost_dbc");
365 LOAD_DBC(sSpellShapeshiftStore, "SpellShapeshiftForm.dbc", "spellshapeshiftform_dbc");
366 LOAD_DBC(sSpellVisualStore, "SpellVisual.dbc", "spellvisual_dbc");
367 LOAD_DBC(sStableSlotPricesStore, "StableSlotPrices.dbc", "stableslotprices_dbc");
368 LOAD_DBC(sSummonPropertiesStore, "SummonProperties.dbc", "summonproperties_dbc");
369 LOAD_DBC(sTalentStore, "Talent.dbc", "talent_dbc");
370 LOAD_DBC(sTalentTabStore, "TalentTab.dbc", "talenttab_dbc");
371 LOAD_DBC(sTaxiNodesStore, "TaxiNodes.dbc", "taxinodes_dbc");
372 LOAD_DBC(sTaxiPathStore, "TaxiPath.dbc", "taxipath_dbc");
373 LOAD_DBC(sTaxiPathNodeStore, "TaxiPathNode.dbc", "taxipathnode_dbc");
374 LOAD_DBC(sTeamContributionPointsStore, "TeamContributionPoints.dbc", "teamcontributionpoints_dbc");
375 LOAD_DBC(sTotemCategoryStore, "TotemCategory.dbc", "totemcategory_dbc");
376 LOAD_DBC(sTransportAnimationStore, "TransportAnimation.dbc", "transportanimation_dbc");
377 LOAD_DBC(sTransportRotationStore, "TransportRotation.dbc", "transportrotation_dbc");
378 LOAD_DBC(sVehicleStore, "Vehicle.dbc", "vehicle_dbc");
379 LOAD_DBC(sVehicleSeatStore, "VehicleSeat.dbc", "vehicleseat_dbc");
380 LOAD_DBC(sWMOAreaTableStore, "WMOAreaTable.dbc", "wmoareatable_dbc");
381 LOAD_DBC(sWorldMapAreaStore, "WorldMapArea.dbc", "worldmaparea_dbc");
382 LOAD_DBC(sWorldMapOverlayStore, "WorldMapOverlay.dbc", "worldmapoverlay_dbc");
383
384#undef LOAD_DBC
385
386 for (CharStartOutfitEntry const* outfit : sCharStartOutfitStore)
387 sCharStartOutfitMap[outfit->Race | (outfit->Class << 8) | (outfit->Gender << 16)] = outfit;
388
389 for (FactionEntry const* faction : sFactionStore)
390 {
391 if (faction->team)
392 {
393 SimpleFactionsList& flist = sFactionTeamMap[faction->team];
394 flist.push_back(faction->ID);
395 }
396 }
397
399 {
400 if (info->maxX < info->minX)
401 std::swap(*(float*)(&info->maxX), *(float*)(&info->minX));
402
403 if (info->maxY < info->minY)
404 std::swap(*(float*)(&info->maxY), *(float*)(&info->minY));
405
406 if (info->maxZ < info->minZ)
407 std::swap(*(float*)(&info->maxZ), *(float*)(&info->minZ));
408 }
409
410 // fill data
411 for (MapDifficultyEntry const* entry : sMapDifficultyStore)
412 sMapDifficultyMap[MAKE_PAIR32(entry->MapId, entry->Difficulty)] = MapDifficulty(entry->resetTime, entry->maxPlayers, entry->areaTriggerText[0] != '\0');
413
414 for (PvPDifficultyEntry const* entry : sPvPDifficultyStore)
415 if (entry->bracketId > MAX_BATTLEGROUND_BRACKETS)
416 ASSERT(false && "Need update MAX_BATTLEGROUND_BRACKETS by DBC data");
417
418 for (auto i : sSpellStore)
419 if (i->Category)
420 sSpellsByCategoryStore[i->Category].emplace(false, i->Id);
421
423 {
424 if (sSkillLineStore.LookupEntry(entry->SkillID))
425 {
426 SkillRaceClassInfoBySkill.emplace(entry->SkillID, entry);
427 }
428 }
429
430 for (SkillLineAbilityEntry const* skillLine : sSkillLineAbilityStore)
431 {
432 SpellEntry const* spellEntry = sSpellStore.LookupEntry(skillLine->Spell);
433 if (spellEntry && spellEntry->Attributes & SPELL_ATTR0_PASSIVE)
434 {
435 for (CreatureFamilyEntry const* cFamily : sCreatureFamilyStore)
436 {
437 if (skillLine->SkillLine != cFamily->skillLine[0] && skillLine->SkillLine != cFamily->skillLine[1])
438 {
439 continue;
440 }
441
442 if (spellEntry->SpellLevel)
443 {
444 continue;
445 }
446
447 if (skillLine->AcquireMethod != SKILL_LINE_ABILITY_LEARNED_ON_SKILL_LEARN)
448 {
449 continue;
450 }
451
452 sPetFamilySpellsStore[cFamily->ID].insert(spellEntry->Id);
453 }
454 }
455 }
456
457 // Create Spelldifficulty searcher
458 for (SpellDifficultyEntry const* spellDiff : sSpellDifficultyStore)
459 {
460 SpellDifficultyEntry newEntry;
461
462 memset(newEntry.SpellID, 0, 4 * sizeof(uint32));
463
464 for (uint8 x = 0; x < MAX_DIFFICULTY; ++x)
465 {
466 if (spellDiff->SpellID[x] <= 0 || !sSpellStore.LookupEntry(spellDiff->SpellID[x]))
467 {
468 if (spellDiff->SpellID[x] > 0) //don't show error if spell is <= 0, not all modes have spells and there are unknown negative values
469 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);
470
471 newEntry.SpellID[x] = 0; // spell was <= 0 or invalid, set to 0
472 }
473 else
474 newEntry.SpellID[x] = spellDiff->SpellID[x];
475 }
476
477 if (newEntry.SpellID[0] <= 0 || newEntry.SpellID[1] <= 0) // id0-1 must be always set!
478 continue;
479
480 for (uint8 x = 0; x < MAX_DIFFICULTY; ++x)
481 if (newEntry.SpellID[x])
482 sSpellMgr->SetSpellDifficultyId(uint32(newEntry.SpellID[x]), spellDiff->ID);
483 }
484
485 // create talent spells set
486 for (TalentEntry const* talentInfo : sTalentStore)
487 {
488 TalentTabEntry const* talentTab = sTalentTabStore.LookupEntry(talentInfo->TalentTab);
489
490 for (uint8 j = 0; j < MAX_TALENT_RANK; ++j)
491 {
492 if (talentInfo->RankID[j])
493 {
494 sTalentSpellPosMap[talentInfo->RankID[j]] = TalentSpellPos(talentInfo->TalentID, j);
495
496 if (talentTab && talentTab->petTalentMask)
497 {
498 sPetTalentSpells.insert(talentInfo->RankID[j]);
499 }
500 }
501 }
502 }
503
504 // prepare fast data access to bit pos of talent ranks for use at inspecting
505 {
506 // now have all max ranks (and then bit amount used for store talent ranks in inspect)
507 for (uint32 talentTabId = 1; talentTabId < sTalentTabStore.GetNumRows(); ++talentTabId)
508 {
509 TalentTabEntry const* talentTabInfo = sTalentTabStore.LookupEntry(talentTabId);
510 if (!talentTabInfo)
511 continue;
512
513 // prevent memory corruption; otherwise cls will become 12 below
514 if ((talentTabInfo->ClassMask & CLASSMASK_ALL_PLAYABLE) == 0)
515 continue;
516
517 // store class talent tab pages
518 for (uint32 cls = 1; cls < MAX_CLASSES; ++cls)
519 if (talentTabInfo->ClassMask & (1 << (cls - 1)))
520 sTalentTabPages[cls][talentTabInfo->tabpage] = talentTabId;
521 }
522 }
523
524 for (uint32 i = 1; i < sTaxiPathStore.GetNumRows(); ++i)
525 if (TaxiPathEntry const* entry = sTaxiPathStore.LookupEntry(i))
526 sTaxiPathSetBySource[entry->from][entry->to] = entry;
527
528 // Calculate path nodes count
529 uint32 pathCount = sTaxiPathStore.GetNumRows();
530 std::vector<uint32> pathLength;
531 pathLength.resize(pathCount); // 0 and some other indexes not used
532
533 for (uint32 i = 1; i < sTaxiPathNodeStore.GetNumRows(); ++i)
534 if (TaxiPathNodeEntry const* entry = sTaxiPathNodeStore.LookupEntry(i))
535 if (pathLength[entry->path] < entry->index + 1)
536 pathLength[entry->path] = entry->index + 1;
537
538 // Set path length
539 sTaxiPathNodesByPath.resize(pathCount); // 0 and some other indexes not used
540 for (uint32 i = 1; i < sTaxiPathNodesByPath.size(); ++i)
541 sTaxiPathNodesByPath[i].resize(pathLength[i]);
542
543 // fill data
544 for (TaxiPathNodeEntry const* entry : sTaxiPathNodeStore)
545 sTaxiPathNodesByPath[entry->path][entry->index] = entry;
546
547 // Initialize global taxinodes mask
548 // include existed nodes that have at least single not spell base (scripted) path
549 {
550 std::set<uint32> spellPaths;
551 for (SpellEntry const* sInfo : sSpellStore)
552 for (uint8 j = 0; j < MAX_SPELL_EFFECTS; ++j)
553 if (sInfo->Effect[j] == SPELL_EFFECT_SEND_TAXI)
554 spellPaths.insert(sInfo->EffectMiscValue[j]);
555
556 sTaxiNodesMask.fill(0);
558 sHordeTaxiNodesMask.fill(0);
561
562 for (uint32 i = 1; i < sTaxiNodesStore.GetNumRows(); ++i)
563 {
564 TaxiNodesEntry const* node = sTaxiNodesStore.LookupEntry(i);
565 if (!node)
566 continue;
567
568 TaxiPathSetBySource::const_iterator src_i = sTaxiPathSetBySource.find(i);
569 if (src_i != sTaxiPathSetBySource.end() && !src_i->second.empty())
570 {
571 bool ok = false;
572 for (TaxiPathSetForSource::const_iterator dest_i = src_i->second.begin(); dest_i != src_i->second.end(); ++dest_i)
573 {
574 // not spell path
575 if (dest_i->second->price || spellPaths.find(dest_i->second->ID) == spellPaths.end())
576 {
577 ok = true;
578 break;
579 }
580 }
581
582 if (!ok)
583 continue;
584 }
585
586 // valid taxi network node
587 uint8 field = (uint8)((i - 1) / 32);
588 uint32 submask = 1 << ((i - 1) % 32);
589 sTaxiNodesMask[field] |= submask;
590
591 if (node->MountCreatureID[0] && node->MountCreatureID[0] != 32981)
592 sHordeTaxiNodesMask[field] |= submask;
593
594 if (node->MountCreatureID[1] && node->MountCreatureID[1] != 32981)
595 sAllianceTaxiNodesMask[field] |= submask;
596
597 if (node->MountCreatureID[0] == 32981 || node->MountCreatureID[1] == 32981)
598 sDeathKnightTaxiNodesMask[field] |= submask;
599
600 // old continent node (+ nodes virtually at old continents, check explicitly to avoid loading map files for zone info)
601 if (node->map_id < 2 || i == 82 || i == 83 || i == 93 || i == 94)
602 sOldContinentsNodesMask[field] |= submask;
603
604 // fix DK node at Ebon Hold and Shadow Vault flight master
605 if (i == 315 || i == 333)
606 ((TaxiNodesEntry*)node)->MountCreatureID[1] = 32981;
607 }
608 }
609
611 sTransportMgr->AddPathNodeToTransport(anim->TransportEntry, anim->TimeSeg, anim);
612
614 sTransportMgr->AddPathRotationToTransport(rot->TransportEntry, rot->TimeSeg, rot);
615
616 for (WMOAreaTableEntry const* entry : sWMOAreaTableStore)
617 sWMOAreaInfoByTripple[WMOAreaTableKey(entry->rootId, entry->adtId, entry->groupId)] = entry;
618
619 // error checks
620 if (bad_dbc_files.size() >= DBCFileCount)
621 {
622 LOG_ERROR("dbc", "Incorrect DataDir value in worldserver.conf or ALL required *.dbc files ({}) not found by path: {}dbc", DBCFileCount, dataPath);
623 exit(1);
624 }
625 else if (!bad_dbc_files.empty())
626 {
627 std::string str;
628 for (StoreProblemList::iterator i = bad_dbc_files.begin(); i != bad_dbc_files.end(); ++i)
629 str += *i + "\n";
630
631 LOG_ERROR("dbc", "Some required *.dbc files ({} from {}) not found or not compatible:\n{}", (uint32)bad_dbc_files.size(), DBCFileCount, str);
632 exit(1);
633 }
634
635 // Check loaded DBC files proper version
636 if (!sAreaTableStore.LookupEntry(4987) || // last area added in 3.3.5a
637 !sCharTitlesStore.LookupEntry(177) || // last char title added in 3.3.5a
638 !sGemPropertiesStore.LookupEntry(1629) || // last added spell in 3.3.5a
639 !sItemStore.LookupEntry(56806) || // last client known item added in 3.3.5a
640 !sItemExtendedCostStore.LookupEntry(2997) || // last item extended cost added in 3.3.5a
641 !sMapStore.LookupEntry(724) || // last map added in 3.3.5a
642 !sSpellStore.LookupEntry(80864) ) // last client known item added in 3.3.5a
643 {
644 LOG_ERROR("dbc", "You have _outdated_ DBC data. Please extract correct versions from current using client.");
645 exit(1);
646 }
647
648 LOG_INFO("server.loading", ">> Initialized {} Data Stores in {} ms", DBCFileCount, GetMSTimeDiffToNow(oldMSTime));
649 LOG_INFO("server.loading", " ");
650}
#define ASSERT
Definition: Errors.h:68
std::uint8_t uint8
Definition: Define.h:110
#define LOG_INFO(filterType__,...)
Definition: Log.h:165
#define LOG_ERROR(filterType__,...)
Definition: Log.h:157
uint32 GetMSTimeDiffToNow(uint32 oldMSTime)
Definition: Timer.h:131
uint32 getMSTime()
Definition: Timer.h:103
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< SpellShapeshiftEntry > sSpellShapeshiftStore(SpellShapeshiftfmt)
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:178
DBCStorage< ItemSetEntry > sItemSetStore(ItemSetEntryfmt)
DBCStorage< DestructibleModelDataEntry > sDestructibleModelDataStore(DestructibleModelDatafmt)
DBCStorage< GlyphSlotEntry > sGlyphSlotStore(GlyphSlotfmt)
TaxiPathSetBySource sTaxiPathSetBySource
Definition: DBCStores.cpp:182
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:151
TaxiMask sTaxiNodesMask
Definition: DBCStores.cpp:175
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:186
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:176
DBCStorage< SpellVisualEntry > sSpellVisualStore(SpellVisualfmt)
DBCStorage< OverrideSpellDataEntry > sOverrideSpellDataStore(OverrideSpellDatafmt)
DBCStorage< GameObjectDisplayInfoEntry > sGameObjectDisplayInfoStore(GameObjectDisplayInfofmt)
std::unordered_set< uint32 > sPetTalentSpells
Definition: DBCStores.cpp:168
TaxiMask sDeathKnightTaxiNodesMask
Definition: DBCStores.cpp:179
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< 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:201
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:199
PetFamilySpellsStore sPetFamilySpellsStore
Definition: DBCStores.cpp:152
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:177
DBCStorage< StableSlotPricesEntry > sStableSlotPricesStore(StableSlotPricesfmt)
std::list< uint32 > SimpleFactionsList
Definition: DBCStores.h:28
#define sTransportMgr
Definition: TransportMgr.h:163
#define sSpellMgr
Definition: SpellMgr.h:825
#define MAX_DIFFICULTY
Definition: DBCEnums.h:291
#define MAX_BATTLEGROUND_BRACKETS
Definition: DBCEnums.h:60
@ SKILL_LINE_ABILITY_LEARNED_ON_SKILL_LEARN
Definition: DBCEnums.h:369
#define MAX_TALENT_RANK
Definition: DBCStructure.h:1919
#define MAX_SPELL_EFFECTS
Definition: DBCStructure.h:1635
@ 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
Definition: DBCStructure.h:620
Definition: DBCStructure.h:898
Definition: DBCStructure.h:991
Definition: DBCStructure.h:1377
Definition: DBCStructure.h:1567
Definition: DBCStructure.h:1596
Definition: DBCStructure.h:1640
uint32 Id
Definition: DBCStructure.h:1641
uint32 Attributes
Definition: DBCStructure.h:1645
uint32 SpellLevel
Definition: DBCStructure.h:1680
Definition: DBCStructure.h:1772
int32 SpellID[MAX_DIFFICULTY]
Definition: DBCStructure.h:1774
Definition: DBCStructure.h:1924
Definition: DBCStructure.h:1941
uint32 petTalentMask
Definition: DBCStructure.h:1948
uint32 tabpage
Definition: DBCStructure.h:1949
uint32 ClassMask
Definition: DBCStructure.h:1947
Definition: DBCStructure.h:1954
uint32 map_id
Definition: DBCStructure.h:1956
uint32 MountCreatureID[2]
Definition: DBCStructure.h:1962
Definition: DBCStructure.h:1966
Definition: DBCStructure.h:1974
Definition: DBCStructure.h:2004
Definition: DBCStructure.h:2015
Definition: DBCStructure.h:2132

Referenced by World::SetInitialWorldSettings().

◆ Map2ZoneCoordinates()

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

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 
)
732{
733 WorldMapAreaEntry const* maEntry = sWorldMapAreaStore.LookupEntry(zone);
734
735 // if not listed then map coordinates (instance)
736 if (!maEntry)
737 return;
738
739 std::swap(x, y); // at client map coords swapped
740 x = x * ((maEntry->x2 - maEntry->x1) / 100) + maEntry->x1;
741 y = y * ((maEntry->y2 - maEntry->y1) / 100) + maEntry->y1; // client y coord from top to down
742}

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

◆ 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

◆ sSpellShapeshiftStore

DBCStorage<SpellShapeshiftEntry> sSpellShapeshiftStore
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