266{
268
269 std::string dbcPath = dataPath + "dbc/";
270
272 uint32 availableDbcLocales = 0xFFFFFFFF;
273
274#define LOAD_DBC(store, file, dbtable) LoadDBC(availableDbcLocales, bad_dbc_files, store, dbcPath, file, dbtable)
275
324
331
390
391#undef LOAD_DBC
392
395
397 {
398 if (faction->team)
399 {
401 flist.push_back(faction->ID);
402 }
403 }
404
406 {
407 if (info->maxX < info->minX)
408 std::swap(*(float*)(&info->maxX), *(float*)(&info->minX));
409
410 if (info->maxY < info->minY)
411 std::swap(*(float*)(&info->maxY), *(float*)(&info->minY));
412
413 if (info->maxZ < info->minZ)
414 std::swap(*(float*)(&info->maxZ), *(float*)(&info->minZ));
415 }
416
418 {
419 EmotesTextSoundKey key(emoteTextSound->EmotesTextId, emoteTextSound->RaceId, emoteTextSound->SexId);
421 }
422
423
426
429 ASSERT(false &&
"Need update MAX_BATTLEGROUND_BRACKETS by DBC data");
430
432 if (i->Category)
434
436 {
438 {
440 }
441 }
442
444 {
447 {
449 {
450 if (skillLine->SkillLine != cFamily->skillLine[0] && skillLine->SkillLine != cFamily->skillLine[1])
451 {
452 continue;
453 }
454
456 {
457 continue;
458 }
459
461 {
462 continue;
463 }
464
466 }
467 }
468 }
469
472
473
475 {
477
479
481 {
482 if (spellDiff->SpellID[x] <= 0 || !
sSpellStore.LookupEntry(spellDiff->SpellID[x]))
483 {
484 if (spellDiff->SpellID[x] > 0)
485 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);
486
488 }
489 else
490 newEntry.
SpellID[x] = spellDiff->SpellID[x];
491 }
492
494 continue;
495
499 }
500
501
503 {
505
507 {
508 if (talentInfo->RankID[j])
509 {
511
513 {
515 }
516 }
517 }
518 }
519
520
521 {
522
524 {
526 if (!talentTabInfo)
527 continue;
528
529
531 continue;
532
533
535 if (talentTabInfo->
ClassMask & (1 << (cls - 1)))
537 }
538 }
539
543
544
546 std::vector<uint32> pathLength;
547 pathLength.resize(pathCount);
548
551 if (pathLength[entry->path] < entry->index + 1)
552 pathLength[entry->path] = entry->index + 1;
553
554
558
559
562
563
564
565 {
566 std::set<uint32> spellPaths;
570 spellPaths.insert(sInfo->EffectMiscValue[j]);
571
577
579 {
581 if (!node)
582 continue;
583
586 {
587 bool ok = false;
588 for (TaxiPathSetForSource::const_iterator dest_i = src_i->second.begin(); dest_i != src_i->second.end(); ++dest_i)
589 {
590
591 if (dest_i->second->price || spellPaths.find(dest_i->second->ID) == spellPaths.end())
592 {
593 ok = true;
594 break;
595 }
596 }
597
598 if (!ok)
599 continue;
600 }
601
602
604 uint32 submask = 1 << ((i - 1) % 32);
606
609
612
615
616
617 if (node->
map_id < 2 || i == 82 || i == 83 || i == 93 || i == 94)
619
620
621 if (i == 315 || i == 333)
623 }
624 }
625
627 sTransportMgr->AddPathNodeToTransport(anim->TransportEntry, anim->TimeSeg, anim);
628
630 sTransportMgr->AddPathRotationToTransport(rot->TransportEntry, rot->TimeSeg, rot);
631
634
635
637 {
638 LOG_ERROR(
"dbc",
"Incorrect DataDir value in worldserver.conf or ALL required *.dbc files ({}) not found by path: {}dbc",
DBCFileCount, dataPath);
639 exit(1);
640 }
641 else if (!bad_dbc_files.empty())
642 {
643 std::string str;
644 for (StoreProblemList::iterator i = bad_dbc_files.begin(); i != bad_dbc_files.end(); ++i)
645 str += *i + "\n";
646
647 LOG_ERROR(
"dbc",
"Some required *.dbc files ({} from {}) not found or not compatible:\n{}", (
uint32)bad_dbc_files.size(),
DBCFileCount, str);
648 exit(1);
649 }
650
651
659 {
660 LOG_ERROR(
"dbc",
"You have _outdated_ DBC data. Please extract correct versions from current using client.");
661 exit(1);
662 }
663
666}
#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
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:183
DBCStorage< ItemSetEntry > sItemSetStore(ItemSetEntryfmt)
DBCStorage< DestructibleModelDataEntry > sDestructibleModelDataStore(DestructibleModelDatafmt)
DBCStorage< GlyphSlotEntry > sGlyphSlotStore(GlyphSlotfmt)
TaxiPathSetBySource sTaxiPathSetBySource
Definition DBCStores.cpp:187
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:156
TaxiMask sTaxiNodesMask
Definition DBCStores.cpp:180
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:191
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:181
DBCStorage< SpellVisualEntry > sSpellVisualStore(SpellVisualfmt)
DBCStorage< OverrideSpellDataEntry > sOverrideSpellDataStore(OverrideSpellDatafmt)
DBCStorage< GameObjectDisplayInfoEntry > sGameObjectDisplayInfoStore(GameObjectDisplayInfofmt)
std::unordered_set< uint32 > sPetTalentSpells
Definition DBCStores.cpp:173
TaxiMask sDeathKnightTaxiNodesMask
Definition DBCStores.cpp:184
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< CharSectionsEntry > sCharSectionsStore(CharSectionsEntryfmt)
DBCStorage< GemPropertiesEntry > sGemPropertiesStore(GemPropertiesEntryfmt)
DBCStorage< ItemRandomPropertiesEntry > sItemRandomPropertiesStore(ItemRandomPropertiesfmt)
uint32 DBCFileCount
Definition DBCStores.cpp:206
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< EmotesTextSoundEntry > sEmotesTextSoundStore(EmotesTextSoundEntryfmt)
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:204
PetFamilySpellsStore sPetFamilySpellsStore
Definition DBCStores.cpp:157
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:182
DBCStorage< StableSlotPricesEntry > sStableSlotPricesStore(StableSlotPricesfmt)
std::list< uint32 > SimpleFactionsList
Definition DBCStores.h:28
#define MAX_TALENT_RANK
Definition DBCStructure.h:1954
#define MAX_SPELL_EFFECTS
Definition DBCStructure.h:1673
std::uint8_t uint8
Definition Define.h:109
#define ASSERT
Definition Errors.h:68
#define LOG_INFO(filterType__,...)
Definition Log.h:153
#define LOG_ERROR(filterType__,...)
Definition Log.h:145
@ Race
Requires the player to be a specific race.
@ Class
Requires the player to be a specific class.
@ SPELL_EFFECT_SEND_TAXI
Definition SharedDefines.h:889
Gender
Definition SharedDefines.h:60
@ SPELL_ATTR0_PASSIVE
Definition SharedDefines.h:376
#define MAX_CLASSES
Definition SharedDefines.h:140
#define CLASSMASK_ALL_PLAYABLE
Definition SharedDefines.h:142
#define sSpellMgr
Definition SpellMgr.h:847
uint32 GetMSTimeDiffToNow(uint32 oldMSTime)
Definition Timer.h:131
uint32 getMSTime()
Definition Timer.h:103
#define sTransportMgr
Definition TransportMgr.h:165
Definition DBCStructure.h:620
Definition DBCStructure.h:934
Definition DBCStructure.h:943
Definition DBCStructure.h:1039
Definition DBCStructure.h:1415
Definition DBCStructure.h:1634
Definition DBCStructure.h:1605
Definition DBCStructure.h:1808
int32 SpellID[MAX_DIFFICULTY]
Definition DBCStructure.h:1810
Definition DBCStructure.h:1678
uint32 Id
Definition DBCStructure.h:1679
uint32 Attributes
Definition DBCStructure.h:1683
uint32 SpellLevel
Definition DBCStructure.h:1716
Definition DBCStructure.h:1959
Definition DBCStructure.h:1976
uint32 petTalentMask
Definition DBCStructure.h:1983
uint32 tabpage
Definition DBCStructure.h:1984
uint32 ClassMask
Definition DBCStructure.h:1982
Definition DBCStructure.h:1989
uint32 map_id
Definition DBCStructure.h:1991
uint32 MountCreatureID[2]
Definition DBCStructure.h:1997
Definition DBCStructure.h:2001
Definition DBCStructure.h:2009
Definition DBCStructure.h:2039
Definition DBCStructure.h:2050
Definition DBCStructure.h:2167