261{
263
264 std::string dbcPath = dataPath + "dbc/";
265
267 uint32 availableDbcLocales = 0xFFFFFFFF;
268
269#define LOAD_DBC(store, file, dbtable) LoadDBC(availableDbcLocales, bad_dbc_files, store, dbcPath, file, dbtable)
270
317
324
383
384#undef LOAD_DBC
385
387 sCharStartOutfitMap[outfit->Race | (outfit->Class << 8) | (outfit->Gender << 16)] = outfit;
388
390 {
391 if (faction->team)
392 {
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
413
416 ASSERT(
false &&
"Need update MAX_BATTLEGROUND_BRACKETS by DBC data");
417
419 if (i->Category)
421
423 {
425 {
427 }
428 }
429
431 {
434 {
436 {
437 if (skillLine->SkillLine != cFamily->skillLine[0] && skillLine->SkillLine != cFamily->skillLine[1])
438 {
439 continue;
440 }
441
443 {
444 continue;
445 }
446
448 {
449 continue;
450 }
451
453 }
454 }
455 }
456
457
459 {
461
463
465 {
466 if (spellDiff->SpellID[x] <= 0 || !
sSpellStore.LookupEntry(spellDiff->SpellID[x]))
467 {
468 if (spellDiff->SpellID[x] > 0)
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
472 }
473 else
474 newEntry.
SpellID[x] = spellDiff->SpellID[x];
475 }
476
478 continue;
479
483 }
484
485
487 {
489
491 {
492 if (talentInfo->RankID[j])
493 {
495
497 {
499 }
500 }
501 }
502 }
503
504
505 {
506
508 {
510 if (!talentTabInfo)
511 continue;
512
513
515 continue;
516
517
519 if (talentTabInfo->
ClassMask & (1 << (cls - 1)))
521 }
522 }
523
527
528
530 std::vector<uint32> pathLength;
531 pathLength.resize(pathCount);
532
535 if (pathLength[entry->path] < entry->index + 1)
536 pathLength[entry->path] = entry->index + 1;
537
538
542
543
546
547
548
549 {
550 std::set<uint32> spellPaths;
554 spellPaths.insert(sInfo->EffectMiscValue[j]);
555
561
563 {
565 if (!node)
566 continue;
567
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
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
588 uint32 submask = 1 << ((i - 1) % 32);
590
593
596
599
600
601 if (node->
map_id < 2 || i == 82 || i == 83 || i == 93 || i == 94)
603
604
605 if (i == 315 || i == 333)
607 }
608 }
609
611 sTransportMgr->AddPathNodeToTransport(anim->TransportEntry, anim->TimeSeg, anim);
612
614 sTransportMgr->AddPathRotationToTransport(rot->TransportEntry, rot->TimeSeg, rot);
615
618
619
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
643 {
644 LOG_ERROR(
"dbc",
"You have _outdated_ DBC data. Please extract correct versions from current using client.");
645 exit(1);
646 }
647
650}
std::uint8_t uint8
Definition: Define.h:110
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< LFGDungeonEntry > sLFGDungeonStore(LFGDungeonEntryfmt)
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
std::tuple< int16, int8, int32 > WMOAreaTableKey
Definition: DBCStores.cpp:34
std::map< uint32, CharStartOutfitEntry const * > sCharStartOutfitMap
Definition: DBCStores.cpp:51
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)
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)
MapDifficultyMap sMapDifficultyMap
Definition: DBCStores.cpp:121
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)
SkillRaceClassInfoMap SkillRaceClassInfoBySkill
Definition: DBCStores.cpp:143
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< WorldMapAreaEntry > sWorldMapAreaStore(WorldMapAreaEntryfmt)
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< LightEntry > sLightStore(LightEntryfmt)
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)
static FactionTeamMap sFactionTeamMap
Definition: DBCStores.cpp:75
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< CreatureFamilyEntry > sCreatureFamilyStore(CreatureFamilyfmt)
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)
TalentSpellPosMap sTalentSpellPosMap
Definition: DBCStores.cpp:167
DBCStorage< GlyphPropertiesEntry > sGlyphPropertiesStore(GlyphPropertiesfmt)
DBCStorage< CreatureModelDataEntry > sCreatureModelDataStore(CreatureModelDatafmt)
static uint32 sTalentTabPages[MAX_CLASSES][3]
Definition: DBCStores.cpp:172
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)
DBCStorage< LiquidTypeEntry > sLiquidTypeStore(LiquidTypefmt)
DBCStorage< PvPDifficultyEntry > sPvPDifficultyStore(PvPDifficultyfmt)
TaxiMask sHordeTaxiNodesMask
Definition: DBCStores.cpp:177
DBCStorage< StableSlotPricesEntry > sStableSlotPricesStore(StableSlotPricesfmt)
static WMOAreaInfoByTripple sWMOAreaInfoByTripple
Definition: DBCStores.cpp:41
std::list< uint32 > SimpleFactionsList
Definition: DBCStores.h:28
uint32 MAKE_PAIR32(uint16 l, uint16 h)
Definition: ObjectDefines.h:87
#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:754
Definition: DBCStructure.h:898
Definition: DBCStructure.h:991
Definition: DBCStructure.h:1377
Definition: DBCStructure.h:1429
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:2004
Definition: DBCStructure.h:2015
Definition: DBCStructure.h:2132
Definition: DBCStructure.h:2220
Definition: DBCStructure.h:2230