266 SF_LOG_ERROR(
"misc",
"Size of '%s' set by format string (%u) not equal size of C++ structure (%u).", filename.c_str(), fsize, rsize);
273inline void LoadDBC(
uint32& availableDbcLocales,
StoreProblemList& errors,
DBCStorage<T>& storage, std::string
const& dbcPath, std::string
const& filename, std::string
const* customFormat = NULL, std::string
const* customIndexName = NULL)
279 std::string dbcFilename = dbcPath + filename;
282 sql =
new SqlDbc(&filename, customFormat, customIndexName, storage.
GetFormat());
284 if (storage.
Load(dbcFilename.c_str(), sql))
288 if (!(availableDbcLocales & (1 << i)))
291 std::string localizedName(dbcPath);
293 localizedName.push_back(
'/');
294 localizedName.append(filename);
297 availableDbcLocales &= ~(1 << i);
303 if (FILE* f = fopen(dbcFilename.c_str(),
"rb"))
305 std::ostringstream stream;
306 stream << dbcFilename <<
" exists, and has " << storage.
GetFieldCount() <<
" field(s) (expected " << strlen(storage.
GetFormat()) <<
"). Extracted file might be from wrong client version or a database-update has been forgotten.";
307 std::string buf = stream.str();
308 errors.push_back(buf);
312 errors.push_back(dbcFilename);
322 std::string dbcPath = dataPath +
"dbc/";
325 uint32 availableDbcLocales = 0xFFFFFFFF;
327 LoadDBC(availableDbcLocales, bad_dbc_files,
sAreaStore, dbcPath,
"AreaTable.dbc");
338 if (area->m_ParentAreaID == 0 && area->m_ContinentID != 0 && area->m_ContinentID != 1 && area->m_ContinentID != 530 && area->m_ContinentID != 571 && area->m_ContinentID != 860 && area->m_ContinentID != 870)
339 sAreaFlagByMapID.insert(AreaFlagByMapID::value_type(area->m_ContinentID, area->m_AreaBit));
357 sCharStartOutfitMap[outfit->Race | (outfit->Class << 8) | (outfit->Gender << 16)] = outfit;
402 if (faction && faction->
team)
415 if (info->maxX < info->minX)
416 std::swap(*(
float*)(&info->maxX), *(
float*)(&info->minX));
417 if (info->maxY < info->minY)
418 std::swap(*(
float*)(&info->maxY), *(
float*)(&info->minY));
419 if (info->maxZ < info->minZ)
420 std::swap(*(
float*)(&info->maxZ), *(
float*)(&info->minZ));
517 sMapDifficultyMap[entry->MapId][entry->Difficulty] =
MapDifficulty(entry->Difficulty, entry->areaTriggerText, entry->resetTime, entry->maxPlayers, entry->areaTriggerText[0] > 0);
544 ASSERT(
false &&
"Need update MAX_BATTLEGROUND_BRACKETS by DBC data");
563 if (siteEntry->QuestPOIBlobId == pointEntry->BlobId)
564 sDigsitePOIPolygons[siteEntry->Id].push_back(std::make_pair(pointEntry->X, pointEntry->Y));
617 if (!spellEffectScaling)
623 std::map<std::string, uint32> classIdByName;
630 classIdByName.insert(std::make_pair(std::string(classEntry->
name), j));
642 std::map<std::string, uint32> ::const_iterator iter = classIdByName.find(std::string(skillEntry->
name));
643 if (iter == classIdByName.end())
725 for (
uint32 x = 0; x < 4; ++x)
730 SF_LOG_ERROR(
"sql.sql",
"spelldifficulty_dbc: spell %i at field id:%u at spellid%i does not exist in SpellStore (spell.dbc), loaded as 0", spellDiff->
SpellID[x], spellDiff->
ID, x);
740 for (
uint32 x = 0; x < 4; ++x)
745 for (
unsigned int i = 0; i <
sTalentStore.GetNumRows(); ++i)
764 if (!specializationInfo)
790 std::vector<uint32> pathLength;
791 pathLength.resize(pathCount);
795 if (pathLength[entry->path] < entry->index + 1)
796 pathLength[entry->path] = entry->index + 1;
810 std::set<uint32> spellPaths;
814 spellPaths.insert(sInfo->EffectMiscValue);
831 for (TaxiPathSetForSource::const_iterator dest_i = src_i->second.begin(); dest_i != src_i->second.end(); ++dest_i)
834 if (spellPaths.find(dest_i->second.ID) == spellPaths.end())
847 uint32 submask = 1 << ((i - 1) % 8);
858 if (node->
map_id < 2 || i == 82 || i == 83 || i == 93 || i == 94)
862 if (i == 315 || i == 333)
905 SF_LOG_ERROR(
"misc",
"Incorrect DataDir value in worldserver.conf or ALL required *.dbc files (%d) not found by path: %sdbc",
DBCFileCount, dataPath.c_str());
908 else if (!bad_dbc_files.empty())
911 for (StoreProblemList::iterator i = bad_dbc_files.begin(); i != bad_dbc_files.end(); ++i)
914 SF_LOG_ERROR(
"misc",
"Some required *.dbc files (%u from %d) not found or not compatible:\n%s", (
uint32)bad_dbc_files.size(),
DBCFileCount, str.c_str());
925 SF_LOG_ERROR(
"misc",
"You have _outdated_ DBC files. Please extract correct dbc files from client 5.4.8 18414.");
935 uint32 randPos = std::rand() % size;
956 return pet_family->
Name ? pet_family->
Name : NULL;
971 return pos->rank + 1;
1016 return raceEntry ? raceEntry->
name : NULL;
1022 return classEntry ? classEntry->
name : NULL;
1036 if (mapid != 530 && mapid != 571 && mapid != 732 && mapid != 1064)
1040 return wma->virtual_map_id >= 0 ? wma->virtual_map_id : wma->map_id;
1095 if (requiredTotemCategoryId == 0)
1097 if (itemTotemCategoryId == 0)
1122 x = x * ((maEntry->
x2 - maEntry->
x1) / 100) + maEntry->
x1;
1123 y = y * ((maEntry->
y2 - maEntry->
y1) / 100) + maEntry->
y1;
1134 x = (x - maEntry->
x1) / ((maEntry->
x2 - maEntry->
x1) / 100);
1135 y = (y - maEntry->
y1) / ((maEntry->
y2 - maEntry->
y1) / 100);
1143 return iter->second;
1150 if (iter->second == classId)
1157 std::list<uint32> spellList;
1164 const std::list<SkillLineAbilityEntry const*>& learnSpellList = classIter->second;
1165 for (std::list<SkillLineAbilityEntry const*>::const_iterator iter = learnSpellList.begin(); iter != learnSpellList.end(); ++iter)
1181 spellList.push_back(spellInfo->
Id);
1186 if (!specializationId)
1192 const std::vector<uint32>& learnSpellList = specIter->second;
1193 for (
int i = 0; i != learnSpellList.size(); i++)
1202 spellList.push_back(spellInfo->
Id);
1212 return &specIter->second;
1223 if (itr->second.empty())
1226 for (
auto& p : itr->second)
1232 if (difficulty->
flags & 0x02)
1236 return &itr->second.begin()->second;
1245 auto diffItr = itr->second.find(difficulty);
1246 if (diffItr == itr->second.end())
1249 return &diffItr->second;
1278 uint32 tmpDiff = difficulty;
1303 if (entry->mapId != mapid || entry->minLevel > level)
1307 if (entry->maxLevel >= level)
1311 if (!maxEntry || maxEntry->
maxLevel < entry->maxLevel)
1323 if (entry->mapId == mapid && entry->GetBracketId() ==
id)
1337 return 1 << liq->Type;
1344 std::map<uint32, CharStartOutfitEntry const*>::const_iterator itr =
sCharStartOutfitMap.find(race | (class_ << 8) | (gender << 16));
1360 switch (inventoryType)
1408 switch (inventoryType)
1422 return Armor[0][armorType];
1425 return Armor[1][armorType];
1427 return Armor[2][armorType];
1429 return Armor[3][armorType];
1431 return Armor[4][armorType];
1433 return Armor[5][armorType];
1435 return Armor[6][armorType];
1437 return Armor[7][armorType];
1451 if (!isCasterWeapon)
1460 *damageMultiplier = 0.3f;
1468 *damageMultiplier = 0.2f;
1473 *damageMultiplier = 0.3f;
1489 uint32 mask = 1 << subClass;
1493 *damageMultiplier = 0.2f;
1499 *damageMultiplier = 0.3f;
1503 *damageMultiplier = 0.3f;
1512 return &itr->second;
char const * localeNames[TOTAL_LOCALES]
const uint8 TOTAL_LOCALES
#define MAX_BATTLEGROUND_BRACKETS
@ ABILITY_LEARNED_ON_GET_RACE_OR_CLASS_SKILL
DBCStorage< DurabilityQualityEntry > sDurabilityQualityStore(DurabilityQualityfmt)
PhaseGroupContainer sPhasesByGroup
DBCStorage< AreaTableEntry > sAreaStore(AreaTableEntryfmt)
DBCStorage< MovieEntry > sMovieStore(MovieEntryfmt)
DBCStorage< SpellItemEnchantmentEntry > sSpellItemEnchantmentStore(SpellItemEnchantmentfmt)
DBCStorage< RandomPropertiesPointsEntry > sRandomPropertiesPointsStore(RandomPropertiesPointsfmt)
DBCStorage< CharTitlesEntry > sCharTitlesStore(CharTitlesEntryfmt)
std::map< uint32, uint32 > AreaFlagByMapID
DBCStorage< ResearchSiteEntry > sResearchSiteStore(ResearchSitefmt)
DBCStorage< NameGenEntry > sNameGenStore(NameGenfmt)
DBCStorage< VehicleSeatEntry > sVehicleSeatStore(VehicleSeatEntryfmt)
DBCStorage< ItemArmorQualityEntry > sItemArmorQualityStore(ItemArmorQualityfmt)
DBCStorage< FactionEntry > sFactionStore(FactionEntryfmt)
DBCStorage< SpellShapeshiftFormEntry > sSpellShapeshiftFormStore(SpellShapeshiftFormfmt)
DBCStorage< ChrPowerTypesEntry > sChrPowerTypesStore(ChrClassesXPowerTypesfmt)
DBCStorage< ScalingStatDistributionEntry > sScalingStatDistributionStore(ScalingStatDistributionfmt)
TaxiMask sAllianceTaxiNodesMask
DBCStorage< CriteriaTreeEntry > sCriteriaTreeStore(CriteriaTreefmt)
ContentLevels GetContentLevelsForMapAndZone(uint32 mapid, uint32 zoneId)
DBCStorage< ItemSetEntry > sItemSetStore(ItemSetEntryfmt)
DBCStorage< WorldSafeLocsEntry > sWorldSafeLocsStore(WorldSafeLocsEntryfmt)
static uint32 sSpecializationClassStore[MAX_CLASSES][4]
static AreaFlagByAreaID sAreaFlagByAreaID
DBCStorage< DestructibleModelDataEntry > sDestructibleModelDataStore(DestructibleModelDatafmt)
DBCStorage< GlyphSlotEntry > sGlyphSlotStore(GlyphSlotfmt)
TaxiPathSetBySource sTaxiPathSetBySource
DigsitePOIPolygon const * GetDigsitePOIPolygon(uint32 digsiteId)
DBCStorage< LFGDungeonEntry > sLFGDungeonStore(LFGDungeonEntryfmt)
DBCStorage< MailTemplateEntry > sMailTemplateStore(MailTemplateEntryfmt)
DBCStorage< GtChanceToSpellCritBaseEntry > sGtChanceToSpellCritBaseStore(GtChanceToSpellCritBasefmt)
DBCStorage< VehicleEntry > sVehicleStore(VehicleEntryfmt)
ClassBySkillIdStore sClassBySkillIdStore
void Zone2MapCoordinates(float &x, float &y, uint32 zone)
DBCStorage< ItemLimitCategoryEntry > sItemLimitCategoryStore(ItemLimitCategoryEntryfmt)
const std::string * GetRandomCharacterName(uint8 race, uint8 gender)
DBCStorage< SpellRadiusEntry > sSpellRadiusStore(SpellRadiusfmt)
DBCStorage< SpellLevelsEntry > sSpellLevelsStore(SpellLevelsEntryfmt)
DBCStorage< SummonPropertiesEntry > sSummonPropertiesStore(SummonPropertiesfmt)
void LoadDBC(uint32 &availableDbcLocales, StoreProblemList &errors, DBCStorage< T > &storage, std::string const &dbcPath, std::string const &filename, std::string const *customFormat=NULL, std::string const *customIndexName=NULL)
void Map2ZoneCoordinates(float &x, float &y, uint32 zone)
std::map< uint16, uint32 > AreaFlagByAreaID
std::map< uint32, SimpleFactionsList > FactionTeamMap
int32 GetAreaFlagByAreaID(uint32 area_id)
SpellEffectScallingByEffectId sSpellEffectScallingByEffectId
SpellCategoryStore sSpellsByCategoryStore
DBCStorage< UnitPowerBarEntry > sUnitPowerBarStore(UnitPowerBarfmt)
std::map< uint32, CharStartOutfitEntry const * > sCharStartOutfitMap
uint32 GetAreaFlagByMapId(uint32 mapid)
DBCStorage< SpellClassOptionsEntry > sSpellClassOptionsStore(SpellClassOptionsEntryfmt)
DBCStorage< QuestPOIPointEntry > sQuestPOIPointStore(QuestPOIPointfmt)
DBCStorage< ScalingStatValuesEntry > sScalingStatValuesStore(ScalingStatValuesfmt)
static DigsitePOIPolygonContainer sDigsitePOIPolygons
DBCStorage< GtOCTBaseHPByClassEntry > sGtOCTBaseHPByClassStore(GtOCTBaseHPByClassfmt)
DBCStorage< CharStartOutfitEntry > sCharStartOutfitStore(CharStartOutfitEntryfmt)
DBCStorage< QuestFactionRewEntry > sQuestFactionRewardStore(QuestFactionRewardfmt)
DBCStorage< SpellInterruptsEntry > sSpellInterruptsStore(SpellInterruptsEntryfmt)
DBCStorage< GtCombatRatingsEntry > sGtCombatRatingsStore(GtCombatRatingsfmt)
DBCStorage< LockEntry > sLockStore(LockEntryfmt)
DBCStorage< SpellAuraOptionsEntry > sSpellAuraOptionsStore(SpellAuraOptionsEntryfmt)
MapDifficulty const * GetMapDifficultyData(uint32 mapId, DifficultyID difficulty)
TaxiPathNodesByPath sTaxiPathNodesByPath
DBCStorage< SpellCategoryEntry > sSpellCategoryStore(SpellCategoryfmt)
DBCStorage< ChatChannelsEntry > sChatChannelsStore(ChatChannelsEntryfmt)
std::map< uint32, std::vector< uint32 > > SpecializationSpellsMap
DBCStorage< ItemDamageEntry > sItemDamageOneHandCasterStore(ItemDamagefmt)
bool IsTotemCategoryCompatiableWith(uint32 itemTotemCategoryId, uint32 requiredTotemCategoryId)
TalentSpellPos const * GetTalentSpellPos(uint32 spellId)
DBCStorage< BankBagSlotPricesEntry > sBankBagSlotPricesStore(BankBagSlotPricesEntryfmt)
DBCStorage< BattlemasterListEntry > sBattlemasterListStore(BattlemasterListEntryfmt)
static DBCStorage< TaxiPathNodeEntry > sTaxiPathNodeStore(TaxiPathNodeEntryfmt)
DBCStorage< CreatureSpellDataEntry > sCreatureSpellDataStore(CreatureSpellDatafmt)
MapDifficultyMap sMapDifficultyMap
char const * GetClassName(uint8 class_, uint8)
DBCStorage< CreatureDisplayInfoEntry > sCreatureDisplayInfoStore(CreatureDisplayInfofmt)
DBCStorage< SpellItemEnchantmentConditionEntry > sSpellItemEnchantmentConditionStore(SpellItemEnchantmentConditionfmt)
DBCStorage< SpellCastTimesEntry > sSpellCastTimesStore(SpellCastTimefmt)
DBCStorage< SpellRangeEntry > sSpellRangeStore(SpellRangefmt)
uint32 GetLiquidFlags(uint32 liquidType)
LFGDungeonEntry const * GetLFGDungeon(uint32 mapId, DifficultyID difficulty)
Returns LFGDungeonEntry for a specific map and difficulty. Will return first found entry if multiple ...
DBCStorage< MapDifficultyEntry > sMapDifficultyStore(MapDifficultyEntryfmt)
DBCStorage< BarberShopStyleEntry > sBarberShopStyleStore(BarberShopStyleEntryfmt)
DBCStorage< SpellMiscEntry > sSpellMiscStore(SpellMiscfmt)
DBCStorage< ChrRacesEntry > sChrRacesStore(ChrRacesEntryfmt)
DBCStorage< ImportPriceShieldEntry > sImportPriceShieldStore(ImportPriceShieldfmt)
DBCStorage< SpellRuneCostEntry > sSpellRuneCostStore(SpellRuneCostfmt)
NameGenVectorArraysMap sGenNameVectoArraysMap
uint32 GetTalentSpellCost(uint32 spellId)
DBCStorage< SpellTargetRestrictionsEntry > sSpellTargetRestrictionsStore(SpellTargetRestrictionsEntryfmt)
DBCStorage< GtChanceToSpellCritEntry > sGtChanceToSpellCritStore(GtChanceToSpellCritfmt)
std::map< WMOAreaTableTripple, WMOAreaTableEntry const * > WMOAreaInfoByTripple
DBCStorage< SpellDifficultyEntry > sSpellDifficultyStore(SpellDifficultyfmt)
TaxiMask sOldContinentsNodesMask
SpellsPerClassStore sSpellsPerClassStore
DBCStorage< SpellEquippedItemsEntry > sSpellEquippedItemsStore(SpellEquippedItemsEntryfmt)
DBCStorage< ModifierTreeEntry > sModifierTreeStore(ModifierTreefmt)
DBCStorage< SpellPowerEntry > sSpellPowerStore(SpellPowerEntryfmt)
DBCStorage< OverrideSpellDataEntry > sOverrideSpellDataStore(OverrideSpellDatafmt)
DBCStorage< GameObjectDisplayInfoEntry > sGameObjectDisplayInfoStore(GameObjectDisplayInfofmt)
DBCStorage< MountCapabilityEntry > sMountCapabilityStore(MountCapabilityfmt)
DBCStorage< SpellTotemsEntry > sSpellTotemsStore(SpellTotemsEntryfmt)
DBCStorage< ItemDamageEntry > sItemDamageRangedStore(ItemDamagefmt)
DBCStorage< ItemDamageEntry > sItemDamageAmmoStore(ItemDamagefmt)
PvPDifficultyEntry const * GetBattlegroundBracketByLevel(uint32 mapid, uint32 level)
TaxiMask sDeathKnightTaxiNodesMask
uint32 GetVirtualMapForMapAndZone(uint32 mapid, uint32 zoneId)
DBCStorage< AreaTriggerEntry > sAreaTriggerStore(AreaTriggerEntryfmt)
std::vector< uint32 > const * GetSpecializationSpells(uint32 specializationId)
char const * GetRaceName(uint8 race, uint8)
DBCStorage< ItemDisenchantLootEntry > sItemDisenchantLootStore(ItemDisenchantLootfmt)
DBCStorage< HolidaysEntry > sHolidaysStore(Holidaysfmt)
DBCStorage< ItemClassEntry > sItemClassStore(ItemClassfmt)
DBCStorage< ResearchBranchEntry > sResearchBranchStore(ResearchBranchfmt)
static AreaFlagByMapID sAreaFlagByMapID
DBCStorage< SpellShapeshiftEntry > sSpellShapeshiftStore(SpellShapeshiftEntryfmt)
DBCStorage< ResearchProjectEntry > sResearchProjectStore(ResearchProjectfmt)
DBCStorage< SpellAuraRestrictionsEntry > sSpellAuraRestrictionsStore(SpellAuraRestrictionsEntryfmt)
AreaTableEntry const * GetAreaEntryByAreaFlagAndMap(uint32 area_flag, uint32 map_id)
DBCStorage< PhaseGroupEntry > sPhaseGroupStore(PhaseGroupfmt)
DBCStorage< GtBattlePetXpEntry > sGtBattlePetXpStore(GtBattlePetXpfmt)
DBCStorage< GtOCTClassCombatRatingScalarEntry > sGtOCTClassCombatRatingScalarStore(GtOCTClassCombatRatingScalarfmt)
DBCStorage< BannedAddOnsEntry > sBannedAddOnsStore(BannedAddOnsfmt)
DBCStorage< WorldMapAreaEntry > sWorldMapAreaStore(WorldMapAreaEntryfmt)
DBCStorage< ItemRandomSuffixEntry > sItemRandomSuffixStore(ItemRandomSuffixfmt)
DBCStorage< SoundEntriesEntry > sSoundEntriesStore(SoundEntriesfmt)
uint32 GetSkillIdByClass(uint32 classId)
DBCStorage< EmotesTextEntry > sEmotesTextStore(EmotesTextEntryfmt)
DBCStorage< AchievementEntry > sAchievementStore(Achievementfmt)
DBCStorage< TotemCategoryEntry > sTotemCategoryStore(TotemCategoryEntryfmt)
DBCStorage< ItemDamageEntry > sItemDamageWandStore(ItemDamagefmt)
DBCStorage< ImportPriceArmorEntry > sImportPriceArmorStore(ImportPriceArmorfmt)
DBCStorage< TransportRotationEntry > sTransportRotationStore(TransportRotationfmt)
DBCStorage< QuestSortEntry > sQuestSortStore(QuestSortEntryfmt)
DBCStorage< GtRegenMPPerSptEntry > sGtRegenMPPerSptStore(GtRegenMPPerSptfmt)
std::set< uint32 > const & GetPhasesForGroup(uint32 group)
PvPDifficultyEntry const * GetBattlegroundBracketById(uint32 mapid, BattlegroundBracketId id)
DBCStorage< DurabilityCostsEntry > sDurabilityCostsStore(DurabilityCostsfmt)
DBCStorage< ItemPriceBaseEntry > sItemPriceBaseStore(ItemPriceBasefmt)
DBCStorage< WorldMapOverlayEntry > sWorldMapOverlayStore(WorldMapOverlayEntryfmt)
DBCStorage< SpellCastingRequirementsEntry > sSpellCastingRequirementsStore(SpellCastingRequirementsEntryfmt)
DBCStorage< GtChanceToMeleeCritBaseEntry > sGtChanceToMeleeCritBaseStore(GtChanceToMeleeCritBasefmt)
DBCStorage< ArmorLocationEntry > sArmorLocationStore(ArmorLocationfmt)
DBCStorage< ItemArmorTotalEntry > sItemArmorTotalStore(ItemArmorTotalfmt)
static FactionTeamMap sFactionTeamMap
DBCStorage< GemPropertiesEntry > sGemPropertiesStore(GemPropertiesEntryfmt)
MapDifficulty const * GetDownscaledMapDifficultyData(uint32 mapId, DifficultyID &difficulty)
DBCStorage< ItemRandomPropertiesEntry > sItemRandomPropertiesStore(ItemRandomPropertiesfmt)
SpecializationSpellsMap sSpecializationSpellsMap
DBCStorage< DifficultyEntry > sDifficultyStore(Difficultyfmt)
DBCStorage< DungeonEncounterEntry > sDungeonEncounterStore(DungeonEncounterfmt)
DBCStorage< GtNPCManaCostScalerEntry > sGtNPCManaCostScalerStore(GtNPCManaCostScalerfmt)
uint32 const * GetClassSpecializations(uint8 classId)
DBCStorage< SpellEntry > sSpellStore(SpellEntryfmt)
DBCStorage< AreaGroupEntry > sAreaGroupStore(AreaGroupEntryfmt)
DBCStorage< QuestXPEntry > sQuestXPStore(QuestXPfmt)
uint32 PowersByClass[MAX_CLASSES][MAX_POWERS]
uint32 GetPowerIndexByClass(uint32 powerType, uint32 classId)
DBCStorage< SkillLineEntry > sSkillLineStore(SkillLinefmt)
DBCStorage< PhaseEntry > sPhaseStore(PhaseEntryfmt)
DBCStorage< SpellEffectEntry > sSpellEffectStore(SpellEffectEntryfmt)
DBCStorage< CreatureFamilyEntry > sCreatureFamilyStore(CreatureFamilyfmt)
DBCStorage< FactionTemplateEntry > sFactionTemplateStore(FactionTemplateEntryfmt)
static bool LoadDBC_assert_print(uint32 fsize, uint32 rsize, const std::string &filename)
DBCStorage< ItemDamageEntry > sItemDamageThrownStore(ItemDamagefmt)
DBCStorage< TaxiPathEntry > sTaxiPathStore(TaxiPathEntryfmt)
DBCStorage< GtSpellScalingEntry > sGtSpellScalingStore(GtSpellScalingfmt)
DBCStorage< WMOAreaTableEntry > sWMOAreaTableStore(WMOAreaTableEntryfmt)
DBCStorage< GtOCTBaseMPByClassEntry > sGtOCTBaseMPByClassStore(GtOCTBaseMPByClassfmt)
DBCStorage< TalentEntry > sTalentStore(TalentEntryfmt)
DBCStorage< TaxiNodesEntry > sTaxiNodesStore(TaxiNodesEntryfmt)
DBCStorage< SpellDurationEntry > sSpellDurationStore(SpellDurationfmt)
DBCStorage< gtOCTHpPerStaminaEntry > sGtOCTHpPerStaminaStore(GtOCTHpPerStaminafmt)
DBCStorage< SpellFocusObjectEntry > sSpellFocusObjectStore(SpellFocusObjectfmt)
DBCStorage< AuctionHouseEntry > sAuctionHouseStore(AuctionHouseEntryfmt)
DBCStorage< ItemReforgeEntry > sItemReforgeStore(ItemReforgefmt)
char const * GetPetName(uint32 petfamily, uint32)
DBCStorage< TransportAnimationEntry > sTransportAnimationStore(TransportAnimationfmt)
DBCStorage< ItemDamageEntry > sItemDamageOneHandStore(ItemDamagefmt)
DBCStorage< ItemDamageEntry > sItemDamageTwoHandStore(ItemDamagefmt)
DBCStorage< ImportPriceQualityEntry > sImportPriceQualityStore(ImportPriceQualityfmt)
DBCStorage< ChrSpecializationEntry > sChrSpecializationStore(ChrSpecializationfmt)
DBCStorage< MapEntry > sMapStore(MapEntryfmt)
DBCStorage< SpellCooldownsEntry > sSpellCooldownsStore(SpellCooldownsEntryfmt)
CharStartOutfitEntry const * GetCharStartOutfitEntry(uint8 race, uint8 class_, uint8 gender)
MapDifficulty const * GetDefaultMapDifficulty(uint32 mapId)
TalentSpellPosMap sTalentSpellPosMap
DBCStorage< GlyphPropertiesEntry > sGlyphPropertiesStore(GlyphPropertiesfmt)
DBCStorage< CreatureModelDataEntry > sCreatureModelDataStore(CreatureModelDatafmt)
DBCStorage< SpellCategoriesEntry > sSpellCategoriesStore(SpellCategoriesEntryfmt)
std::list< uint32 > GetSpellsForLevels(uint32 classId, uint32 raceMask, uint32 specializationId, uint32 minLevel, uint32 maxLevel)
DBCStorage< CreatureTypeEntry > sCreatureTypeStore(CreatureTypefmt)
std::list< std::string > StoreProblemList
DBCStorage< MountTypeEntry > sMountTypeStore(MountTypefmt)
PetFamilySpellsStore sPetFamilySpellsStore
uint32 GetClassBySkillId(uint32 skillId)
AreaTableEntry const * GetAreaEntryByAreaID(uint32 area_id)
DBCStorage< CinematicSequencesEntry > sCinematicSequencesStore(CinematicSequencesEntryfmt)
DBCStorage< GtBarberShopCostBaseEntry > sGtBarberShopCostBaseStore(GtBarberShopCostBasefmt)
DBCStorage< CinematicCameraEntry > sCinematicCameraStore(CinematicCameraEntryfmt)
DBCStorage< SpecializationSpellsEntry > sSpecializationSpellsStore(SpecializationSpellsfmt)
DBCStorage< SpellEffectScalingEntry > sSpellEffectScalingStore(SpellEffectScalingfmt)
DBCStorage< GuildPerkSpellsEntry > sGuildPerkSpellsStore(GuildPerkSpellsfmt)
void LoadDBCStores(const std::string &dataPath)
DBCStorage< SkillLineAbilityEntry > sSkillLineAbilityStore(SkillLineAbilityfmt)
DBCStorage< ChrClassesEntry > sChrClassesStore(ChrClassesEntryfmt)
DBCStorage< CurrencyTypesEntry > sCurrencyTypesStore(CurrencyTypesfmt)
SimpleFactionsList const * GetFactionTeamList(uint32 faction)
DBCStorage< EmotesEntry > sEmotesStore(EmotesEntryfmt)
DBCStorage< GtChanceToMeleeCritEntry > sGtChanceToMeleeCritStore(GtChanceToMeleeCritfmt)
DBCStorage< LiquidTypeEntry > sLiquidTypeStore(LiquidTypefmt)
DBCStorage< ItemArmorShieldEntry > sItemArmorShieldStore(ItemArmorShieldfmt)
DBCStorage< PvPDifficultyEntry > sPvPDifficultyStore(PvPDifficultyfmt)
DBCStorage< SpellScalingEntry > sSpellScalingStore(SpellScalingEntryfmt)
DBCStorage< ImportPriceWeaponEntry > sImportPriceWeaponStore(ImportPriceWeaponfmt)
TaxiMask sHordeTaxiNodesMask
WMOAreaTableEntry const * GetWMOAreaTableEntryByTripple(int32 rootid, int32 adtid, int32 groupid)
uint32 GetMaxLevelForExpansion(uint32 expansion)
static WMOAreaInfoByTripple sWMOAreaInfoByTripple
DBCStorage< CriteriaEntry > sCriteriaStore(Criteriafmt)
DBCStorage< ItemDamageEntry > sItemDamageTwoHandCasterStore(ItemDamagefmt)
std::list< uint32 > SimpleFactionsList
std::unordered_map< uint32, std::unordered_map< uint32, MapDifficulty > > MapDifficultyMap
std::map< uint32, DigsitePOIPolygon > DigsitePOIPolygonContainer
std::vector< std::pair< int32, int32 > > DigsitePOIPolygon
std::unordered_map< uint32, std::set< uint32 > > PhaseGroupContainer
std::vector< TaxiPathNodeList > TaxiPathNodesByPath
std::map< uint32, PetFamilySpellsSet > PetFamilySpellsStore
std::map< uint32, VectorArray > NameGenVectorArraysMap
UNORDERED_MAP< uint32, uint32 > ClassBySkillIdStore
std::map< uint32, SpellCategorySet > SpellCategoryStore
std::map< uint32, TaxiPathSetForSource > TaxiPathSetBySource
UNORDERED_MAP< uint32, std::list< SkillLineAbilityEntry const * > > SpellsPerClassStore
UNORDERED_MAP< uint32, uint32 > SpellEffectScallingByEffectId
uint8 TaxiMask[TaxiMaskSize]
std::map< uint32, TalentSpellPos > TalentSpellPosMap
char const SpellItemEnchantmentConditionfmt[]
char const CreatureFamilyfmt[]
char const MapDifficultyEntryfmt[]
char const ItemSetEntryfmt[]
char const DungeonEncounterfmt[]
char const CharStartOutfitEntryfmt[]
char const GtBattlePetXpfmt[]
char const SpellMiscfmt[]
char const BarberShopStyleEntryfmt[]
char const BattlemasterListEntryfmt[]
char const LFGDungeonEntryfmt[]
char const CriteriaTreefmt[]
char const GtCombatRatingsfmt[]
char const AreaTableEntryfmt[]
char const EmotesEntryfmt[]
char const RandomPropertiesPointsfmt[]
char const EmotesTextEntryfmt[]
char const GtChanceToSpellCritBasefmt[]
char const ResearchBranchfmt[]
char const SkillLinefmt[]
char const GemPropertiesEntryfmt[]
char const SpellCooldownsEntryfmt[]
char const ChrSpecializationfmt[]
char const SpellShapeshiftFormfmt[]
char const SpellScalingEntryfmt[]
char const SpellFocusObjectfmt[]
char const GtRegenMPPerSptfmt[]
char const SummonPropertiesfmt[]
char const Difficultyfmt[]
char const ItemRandomSuffixfmt[]
char const SpecializationSpellsfmt[]
char const QuestSortEntryfmt[]
char const SpellClassOptionsEntryfmt[]
char const TransportRotationfmt[]
char const CinematicSequencesEntryfmt[]
char const ImportPriceWeaponfmt[]
char const DurabilityQualityfmt[]
char const PhaseEntryfmt[]
char const SpellDifficultyfmt[]
char const WorldMapOverlayEntryfmt[]
char const QuestPOIPointfmt[]
char const SpellRangefmt[]
char const ChrClassesXPowerTypesfmt[]
char const PhaseGroupfmt[]
char const MountTypefmt[]
char const ModifierTreefmt[]
char const SpellEffectScalingfmt[]
char const VehicleEntryfmt[]
char const WorldSafeLocsEntryfmt[]
char const DurabilityCostsfmt[]
char const GlyphSlotfmt[]
char const SpellAuraRestrictionsEntryfmt[]
char const ItemArmorTotalfmt[]
char const CharTitlesEntryfmt[]
char const SpellInterruptsEntryfmt[]
char const GtOCTBaseMPByClassfmt[]
char const SpellLevelsEntryfmt[]
char const QuestFactionRewardfmt[]
char const ItemDamagefmt[]
char const ImportPriceQualityfmt[]
char const SoundEntriesfmt[]
char const WMOAreaTableEntryfmt[]
char const ImportPriceShieldfmt[]
char const CreatureTypefmt[]
char const CinematicCameraEntryfmt[]
char const SpellRadiusfmt[]
char const SpellEquippedItemsEntryfmt[]
char const CurrencyTypesfmt[]
char const SpellPowerEntryfmt[]
char const ArmorLocationfmt[]
char const LockEntryfmt[]
char const SpellCategoriesEntryfmt[]
char const WorldMapAreaEntryfmt[]
char const GtOCTHpPerStaminafmt[]
char const CreatureDisplayInfofmt[]
char const ResearchProjectfmt[]
char const SpellDurationfmt[]
char const GameObjectDisplayInfofmt[]
char const SpellAuraOptionsEntryfmt[]
char const ItemArmorQualityfmt[]
char const SpellEntryfmt[]
char const GtOCTClassCombatRatingScalarfmt[]
char const GtBarberShopCostBasefmt[]
char const ChrClassesEntryfmt[]
char const UnitPowerBarfmt[]
char const SpellShapeshiftEntryfmt[]
char const TotemCategoryEntryfmt[]
char const AuctionHouseEntryfmt[]
char const ItemRandomPropertiesfmt[]
char const MountCapabilityfmt[]
char const TaxiPathNodeEntryfmt[]
char const TalentEntryfmt[]
char const BannedAddOnsfmt[]
char const MovieEntryfmt[]
char const TransportAnimationfmt[]
char const GtChanceToMeleeCritfmt[]
char const GtNPCManaCostScalerfmt[]
char const SpellRuneCostfmt[]
char const ItemLimitCategoryEntryfmt[]
char const AreaTriggerEntryfmt[]
char const LiquidTypefmt[]
char const BankBagSlotPricesEntryfmt[]
char const SpellItemEnchantmentfmt[]
char const MailTemplateEntryfmt[]
char const GlyphPropertiesfmt[]
char const FactionEntryfmt[]
char const ScalingStatValuesfmt[]
char const ItemClassfmt[]
char const SpellCastingRequirementsEntryfmt[]
char const PvPDifficultyfmt[]
char const ItemArmorShieldfmt[]
char const Achievementfmt[]
char const TaxiPathEntryfmt[]
char const TaxiNodesEntryfmt[]
char const GtOCTBaseHPByClassfmt[]
char const VehicleSeatEntryfmt[]
char const GtChanceToMeleeCritBasefmt[]
char const AreaGroupEntryfmt[]
char const GtSpellScalingfmt[]
char const ItemReforgefmt[]
char const SpellCategoryfmt[]
char const SpellCastTimefmt[]
char const GtChanceToSpellCritfmt[]
char const DestructibleModelDatafmt[]
char const ItemPriceBasefmt[]
char const SpellTotemsEntryfmt[]
char const OverrideSpellDatafmt[]
char const SpellTargetRestrictionsEntryfmt[]
char const GuildPerkSpellsfmt[]
char const SkillLineAbilityfmt[]
char const ItemDisenchantLootfmt[]
char const FactionTemplateEntryfmt[]
char const CreatureSpellDatafmt[]
char const ScalingStatDistributionfmt[]
char const ChatChannelsEntryfmt[]
char const ResearchSitefmt[]
char const ChrRacesEntryfmt[]
char const CreatureModelDatafmt[]
char const SpellEffectEntryfmt[]
char const ImportPriceArmorfmt[]
@ ITEM_SUBCLASS_WEAPON_MISCELLANEOUS
@ ITEM_SUBCLASS_WEAPON_CROSSBOW
@ ITEM_SUBCLASS_WEAPON_GUN
@ ITEM_SUBCLASS_WEAPON_AXE2
@ ITEM_SUBCLASS_WEAPON_SPEAR
@ ITEM_SUBCLASS_WEAPON_STAFF
@ ITEM_SUBCLASS_WEAPON_MACE
@ ITEM_SUBCLASS_WEAPON_EXOTIC2
@ ITEM_SUBCLASS_WEAPON_FISHING_POLE
@ ITEM_SUBCLASS_WEAPON_MACE2
@ ITEM_SUBCLASS_WEAPON_DAGGER
@ ITEM_SUBCLASS_WEAPON_BOW
@ ITEM_SUBCLASS_WEAPON_SWORD
@ ITEM_SUBCLASS_WEAPON_AXE
@ ITEM_SUBCLASS_WEAPON_Obsolete
@ ITEM_SUBCLASS_WEAPON_FIST_WEAPON
@ ITEM_SUBCLASS_WEAPON_WAND
@ ITEM_SUBCLASS_WEAPON_EXOTIC
@ ITEM_SUBCLASS_WEAPON_THROWN
@ ITEM_SUBCLASS_WEAPON_SWORD2
@ ITEM_SUBCLASS_WEAPON_POLEARM
#define SF_LOG_ERROR(filterType__,...)
#define SF_LOG_INFO(filterType__,...)
uint32 GetMSTimeDiffToNow(uint32 oldMSTime)
static uint32 GetFormatRecordSize(std::string format, int32 *index_pos=NULL)
char const * GetFormat() const
bool LoadStringsFrom(char const *fn)
uint32 GetFieldCount() const
bool Load(char const *fn, SqlDbc *sql)
uint32 GetDPSAndDamageMultiplier(uint32 subClass, bool isCasterWeapon, float *damageMultiplier) const
uint32 GetArmor(uint32 inventoryType, uint32 armorType) const
uint32 GetStatMultiplier(uint32 inventoryType) const
uint32 MountCreatureID[2]
WMOAreaTableTripple(int32 r, int32 a, int32 g)
bool operator<(const WMOAreaTableTripple &b) const