Updated DBC Formats

This commit is contained in:
Antz 2020-02-23 22:45:22 +00:00
parent 808886fe75
commit 1e9fb1715d
3 changed files with 63 additions and 32 deletions

View file

@ -891,13 +891,45 @@ void LoadDBCStores(const std::string& dataPath)
} }
// Check loaded DBC files proper version // Check loaded DBC files proper version
if (!sAreaStore.LookupEntry(5491) || // last area (areaflag) added in 5.4.8 (18414) std::string failedModules = "";
!sCharTitlesStore.LookupEntry(389) || // last char title added in 5.4.8 (18414) bool startupFailed=false;
!sGemPropertiesStore.LookupEntry(2467) || // last gem property added in 5.4.8 (18414)
!sMapStore.LookupEntry(1173) || // last map added in 5.4.8 (18414) // last area (areaflag) added in 5.4.8 (18414)
!sSpellStore.LookupEntry(163227) ) // last added spell in 5.4.8 (18414) //if (!sAreaStore.LookupEntry(5491))
//{
// startupFailed=true;
// failedModules += "AreaTable.dbc";
//}
// last char title added in 5.4.8 (18414)
//if (!sCharTitlesStore.LookupEntry(389))
//{
// startupFailed=true;
// failedModules += ",CharTitles.dbc";
//}
//// last gem property added in 5.4.8 (18414)
//if (!sGemPropertiesStore.LookupEntry(2467))
//{
// startupFailed=true;
// failedModules += ",GemProperties.dbc";
//}
// last map added in 5.4.8 (18414)
if (!sMapStore.LookupEntry(1173))
{
startupFailed=true;
failedModules += ",Map.dbc";
}
// last added spell in 5.4.8 (18414)
if (!sSpellStore.LookupEntry(163227))
{
startupFailed=true;
failedModules += ",SpellStore.dbc";
}
if(startupFailed)
{ {
sLog.outError("\nYou have mixed version DBC files. Please re-extract DBC files for one from client build: %s", AcceptableClientBuildsListStr().c_str()); sLog.outError("\nYou have mixed version DBC files. Please re-extract DBC files for one from client build: %s", AcceptableClientBuildsListStr().c_str());
sLog.outError("\nThe Following modules failed the checksum: %s", failedModules);
Log::WaitBeforeContinueIfNeed(); Log::WaitBeforeContinueIfNeed();
exit(1); exit(1);
} }

View file

@ -2001,22 +2001,21 @@ struct SpellPowerEntry
// 12 5.x // 12 5.x
}; };
// SpellScaling.dbc // SpellScaling.dbc
struct SpellScalingEntry struct SpellScalingEntry
{ {
//uint32 Id; // 0 m_ID //uint32 Id; // 0 m_ID
uint32 castTimeMin; // 1 int32 castTimeMin; // 1
uint32 castTimeMax; // 2 int32 castTimeMax; // 2
uint32 castScalingMaxLevel; // 3 int32 castScalingMaxLevel; // 3
uint32 playerClass; // 4 (index * 100) + charLevel => gtSpellScaling.dbc int32 playerClass; // 4 (index * 100) + charLevel => gtSpellScaling.dbc
float coeff1[3]; // 5-7 float coeff1; // 5-7
float coeff2[3]; // 8-10 float coeff2; // 8-10
float coeff3[3]; // 11-13 float coeff3; // 11-13
float coefBase; // 14 some coefficient, mostly 1.0f //float coefBase; // 14 some coefficient, mostly 1.0f
uint32 coefLevelBase; // 15 some level int32 coefLevelBase; // 15 some level
bool IsScalableEffect(SpellEffectIndex i) const { return coeff1[i] != 0.0f; }; // bool IsScalableEffect(SpellEffectIndex i) const { return coeff1[i] != 0.0f; };
}; };
// SpellShapeshift.dbc // SpellShapeshift.dbc

View file

@ -27,35 +27,35 @@
const char Achievementfmt[]= "niiissiiiiisiix"; const char Achievementfmt[]= "niiissiiiiisiix";
const char AchievementCriteriafmt[]="niiiiiiiixsiiiiixxxxxxx"; const char AchievementCriteriafmt[]="niiiiiiiixsiiiiixxxxxxx";
const char AreaTableEntryfmt[] = "iiinixxxxxxxisiiiiixxxxxxxxx"; // TODO: NEED TO CONFIRM THIS const char AreaTableEntryfmt[] = "iiinixxxxxxxisiiiiixxxxxxxxxxx"; // TODO: NEED TO CONFIRM THIS
const char AreaGroupEntryfmt[] = "niiiiiii"; const char AreaGroupEntryfmt[] = "niiiiiii";
const char AreaTriggerEntryfmt[]="nifffxxxfffffxxx"; const char AreaTriggerEntryfmt[]="nifffxxxfffffxxx";
const char ArmorLocationfmt[]="nfffff"; const char ArmorLocationfmt[]="nfffff";
const char AuctionHouseEntryfmt[]= "niiix"; const char AuctionHouseEntryfmt[]= "niiix";
const char BankBagSlotPricesEntryfmt[] = "ni"; const char BankBagSlotPricesEntryfmt[] = "ni";
const char BarberShopStyleEntryfmt[]= "nixxxiii"; const char BarberShopStyleEntryfmt[]= "nixxxiii";
const char BattlemasterListEntryfmt[]="niiiiiiiiiiiiiiiiixsii"; // TODO: NEED TO CONFIRM THIS const char BattlemasterListEntryfmt[]="niiiiiiiiiiiiiiiiixsiiiiiiiixx"; // TODO: NEED TO CONFIRM THIS
const char CharStartOutfitEntryfmt[]= "diiiiiiiiiiiiiiiiiiiiiiiiixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; const char CharStartOutfitEntryfmt[]= "diiiiiiiiiiiiiiiiiiiiiiiiixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
const char CharTitlesEntryfmt[]="nxsxix"; const char CharTitlesEntryfmt[]="nxsxix";
const char ChatChannelsEntryfmt[]="iixsx"; const char ChatChannelsEntryfmt[]="iixsx";
// ChatChannelsEntryfmt, index not used (more compact store) // ChatChannelsEntryfmt, index not used (more compact store)
const char ChrClassesEntryfmt[]="nixsxxxixiiiixxxx"; // TODO: NEED TO CONFIRM THIS const char ChrClassesEntryfmt[]="nixsxxxixiiiixxxxx"; // TODO: NEED TO CONFIRM THIS
const char ChrRacesEntryfmt[]="nxixiixixxxxixsxxxxxixxxxxxxxxxxxxxx"; const char ChrRacesEntryfmt[]="nxixiixixxxxixsxxxxxixxxxxxxxxxxxxxx";
const char ChrClassesXPowerTypesfmt[]="nii"; const char ChrClassesXPowerTypesfmt[]="nii";
const char CinematicSequencesEntryfmt[] = "nxxxxxxxxx"; const char CinematicSequencesEntryfmt[] = "nxxxxxxxxx";
const char CreatureDisplayInfofmt[]="nixifxxxxxxxxxxxxxx"; // TODO: NEED TO CONFIRM THIS const char CreatureDisplayInfofmt[]="nixifxxxxxxxxxxxxxxx"; // TODO: NEED TO CONFIRM THIS
const char CreatureDisplayInfoExtrafmt[] = "nixxxxxxxxxxxxxxxxxxx"; const char CreatureDisplayInfoExtrafmt[] = "nixxxxxxxxxxxxxxxxxxx";
const char CreatureFamilyfmt[]="nfifiiiiixsx"; const char CreatureFamilyfmt[]="nfifiiiiixsx";
const char CreatureSpellDatafmt[] = "niiiixxxx"; const char CreatureSpellDatafmt[] = "niiiixxxx";
const char DestructibleModelDataFmt[] = "nixxxixxxxixxxxixxxxxxxx"; const char DestructibleModelDataFmt[] = "nixxxixxxxixxxxixxxxixxx";
const char DungeonEncounterfmt[]="niiiisxx"; // TODO: NEED TO CONFIRM THIS const char DungeonEncounterfmt[]="niiiisxx"; // TODO: NEED TO CONFIRM THIS
const char CreatureTypefmt[]="nxx"; const char CreatureTypefmt[]="nxx";
const char CurrencyTypesfmt[]="nisxxxxiiix"; // TODO: NEED TO CONFIRM THIS const char CurrencyTypesfmt[]="nisxxxxiiixx"; // TODO: NEED TO CONFIRM THIS
const char DurabilityCostsfmt[] = "niiiiiiiiiiiiiiiiiiiiiiiiiiiii"; const char DurabilityCostsfmt[] = "niiiiiiiiiiiiiiiiiiiiiiiiiiiii";
const char DurabilityQualityfmt[] = "nf"; const char DurabilityQualityfmt[] = "nf";
const char EmotesEntryfmt[]="nxxiiixx"; const char EmotesEntryfmt[]="nxxiiixx";
const char EmotesTextEntryfmt[] = "nxixxxxxxxxxxxxxxxx"; const char EmotesTextEntryfmt[] = "nxixxxxxxxxxxxxxxxx";
const char FactionEntryfmt[]="niiiiiiiiiiiiiiiiiiffixsxx"; // TODO: NEED TO CONFIRM THIS const char FactionEntryfmt[]="niiiiiiiiiiiiiiiiiiffixsxxxx"; // TODO: NEED TO CONFIRM THIS
const char FactionTemplateEntryfmt[] = "niiiiiiiiiiiii"; const char FactionTemplateEntryfmt[] = "niiiiiiiiiiiii";
const char GameObjectDisplayInfofmt[]="nsxxxxxxxxxxffffffxxx"; const char GameObjectDisplayInfofmt[]="nsxxxxxxxxxxffffffxxx";
const char GemPropertiesEntryfmt[]="nixxix"; const char GemPropertiesEntryfmt[]="nixxix";
@ -77,7 +77,7 @@ const char GtSpellScalingfmt[]="df";
const char GtOCTBaseHPByClassfmt[]="df"; const char GtOCTBaseHPByClassfmt[]="df";
const char GtOCTBaseMPByClassfmt[]="df"; const char GtOCTBaseMPByClassfmt[]="df";
const char Holidaysfmt[] = "nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; const char Holidaysfmt[] = "nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
const char ItemClassfmt[]="nxfs"; const char ItemClassfmt[]="nifs";
const char ItemArmorQualityfmt[]="nfffffffi"; const char ItemArmorQualityfmt[]="nfffffffi";
const char ItemArmorShieldfmt[]="nifffffff"; const char ItemArmorShieldfmt[]="nifffffff";
const char ItemArmorTotalfmt[]="niffff"; const char ItemArmorTotalfmt[]="niffff";
@ -94,7 +94,7 @@ const char LiquidTypefmt[] = "nxxixixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
const char LockEntryfmt[] = "niiiiiiiiiiiiiiiiiiiiiiiixxxxxxxx"; const char LockEntryfmt[] = "niiiiiiiiiiiiiiiiiiiiiiiixxxxxxxx";
const char MailTemplateEntryfmt[]="nxs"; const char MailTemplateEntryfmt[]="nxs";
const char MapEntryfmt[]="nsiiisissififfiiiii"; // 5.4.8 const char MapEntryfmt[]="nsiiisissififfiiiii"; // 5.4.8
const char MapDifficultyEntryfmt[]="niisii"; // TODO: NEED TO CONFIRM THIS const char MapDifficultyEntryfmt[]="niisiis"; // TODO: NEED TO CONFIRM THIS
const char MountCapabilityfmt[]="niiiiiii"; const char MountCapabilityfmt[]="niiiiiii";
const char MountTypefmt[]="niiiiiiiiiiiiiiiiiiiiiiii"; const char MountTypefmt[]="niiiiiiiiiiiiiiiiiiiiiiii";
const char MovieEntryfmt[]="nxxxx"; const char MovieEntryfmt[]="nxxxx";
@ -107,16 +107,16 @@ const char Phasefmt[]="nii";
const char PvPDifficultyfmt[] = "diiiii"; const char PvPDifficultyfmt[] = "diiiii";
const char RandomPropertiesPointsfmt[] = "niiiiiiiiiiiiiii"; const char RandomPropertiesPointsfmt[] = "niiiiiiiiiiiiiii";
const char ScalingStatDistributionfmt[]="niiiiiiiiiiiiiiiiiiiixi"; const char ScalingStatDistributionfmt[]="niiiiiiiiiiiiiiiiiiiixi";
const char ScalingStatValuesfmt[]="iniiiiiixiiiiiiiiiiiiiixxxxxxxxxxxxxxxxxxxxxxxxx"; // TODO: NEED TO CONFIRM THIS const char ScalingStatValuesfmt[]="iniiiiiixiiiiiiiiiiiiiixxxxxxxxxxxxxxxxxxxxxxxxxx"; // TODO: NEED TO CONFIRM THIS
const char SkillLinefmt[]="nisxixix"; // TODO: NEED TO CONFIRM THIS const char SkillLinefmt[]="nisxixixx"; // TODO: NEED TO CONFIRM THIS
const char SkillLineAbilityfmt[]="niiiiiiiiixxx"; const char SkillLineAbilityfmt[]="niiiixxiiiiii";
const char SkillRaceClassInfofmt[]="diiiiixx"; const char SkillRaceClassInfofmt[]="diiiiixx";
const char SoundEntriesfmt[]="nisxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; // TODO: NEED TO CONFIRM THIS const char SoundEntriesfmt[]="nisxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; // TODO: NEED TO CONFIRM THIS
const char SpellCastTimefmt[]="niii"; const char SpellCastTimefmt[]="niii";
const char SpellDurationfmt[] = "niii"; const char SpellDurationfmt[] = "niii";
const char SpellDifficultyfmt[] = "niiii"; const char SpellDifficultyfmt[] = "niiii";
const char SpellEntryfmt[]="nssxxixxxiiiiiiiiiiiiiixi"; const char SpellEntryfmt[]="nssxxixxxiiiiiiiiiiiiiixi";
const char SpellAuraOptionsEntryfmt[]="dxxiiii"; // TODO: NEED TO CONFIRM THIS const char SpellAuraOptionsEntryfmt[]="dxxiiiixx"; // TODO: NEED TO CONFIRM THIS
const char SpellAuraRestrictionsEntryfmt[]="dxxiiiiiiii"; const char SpellAuraRestrictionsEntryfmt[]="dxxiiiiiiii";
const char SpellCastingRequirementsEntryfmt[]="dixxixi"; const char SpellCastingRequirementsEntryfmt[]="dixxixi";
const char SpellCategoriesEntryfmt[]="dxxiiiiiix"; const char SpellCategoriesEntryfmt[]="dxxiiiiiix";
@ -134,7 +134,7 @@ const char SpellTotemsEntryfmt[]="diiii";
const char SpellFocusObjectfmt[]="nx"; const char SpellFocusObjectfmt[]="nx";
const char SpellItemEnchantmentfmt[]="nxiiiiiiiiisiiiixxixxxxxx"; // TODO: NEED TO CONFIRM THIS const char SpellItemEnchantmentfmt[]="nxiiiiiiiiisiiiixxixxxxxx"; // TODO: NEED TO CONFIRM THIS
const char SpellItemEnchantmentConditionfmt[] = "nbbbbbxxxxxbbbbbbbbbbiiiiiXXXXX"; const char SpellItemEnchantmentConditionfmt[] = "nbbbbbxxxxxbbbbbbbbbbiiiiiXXXXX";
const char SpellMiscfmt[]="dxxiiiiiiiiiiiiiiiiifiii"; // TODO: NEED TO CONFIRM THIS const char SpellMiscfmt[]="dxxiiiiiiiiiiiiiiiiifiiiii"; // TODO: NEED TO CONFIRM THIS
const char SpellRadiusfmt[]="nfxxx"; const char SpellRadiusfmt[]="nfxxx";
const char SpellRangefmt[]="nffffxxx"; const char SpellRangefmt[]="nffffxxx";
const char SpellRuneCostfmt[]="niiixi"; const char SpellRuneCostfmt[]="niiixi";
@ -144,7 +144,7 @@ const char SummonPropertiesfmt[] = "niiiii";
const char TalentEntryfmt[]="niiiiiiiiixxixxxxxx"; const char TalentEntryfmt[]="niiiiiiiiixxixxxxxx";
const char TalentTabEntryfmt[]="nxxiiixxiii"; const char TalentTabEntryfmt[]="nxxiiixxiii";
const char TalentTreePrimarySpellsfmt[]="diix"; const char TalentTreePrimarySpellsfmt[]="diix";
const char TaxiNodesEntryfmt[]="nifffsiixxx"; // TODO: NEED TO CONFIRM THIS const char TaxiNodesEntryfmt[]="nifffsiixxxx"; // TODO: NEED TO CONFIRM THIS
const char TaxiPathEntryfmt[] = "niii"; const char TaxiPathEntryfmt[] = "niii";
const char TaxiPathNodeEntryfmt[] = "diiifffiiii"; const char TaxiPathNodeEntryfmt[] = "diiifffiiii";
const char TotemCategoryEntryfmt[]="nxii"; const char TotemCategoryEntryfmt[]="nxii";