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
if (!sAreaStore.LookupEntry(5491) || // last area (areaflag) added in 5.4.8 (18414)
!sCharTitlesStore.LookupEntry(389) || // last char title added in 5.4.8 (18414)
!sGemPropertiesStore.LookupEntry(2467) || // last gem property added in 5.4.8 (18414)
!sMapStore.LookupEntry(1173) || // last map added in 5.4.8 (18414)
!sSpellStore.LookupEntry(163227) ) // last added spell in 5.4.8 (18414)
std::string failedModules = "";
bool startupFailed=false;
// last area (areaflag) added 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("\nThe Following modules failed the checksum: %s", failedModules);
Log::WaitBeforeContinueIfNeed();
exit(1);
}

View file

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

View file

@ -27,35 +27,35 @@
const char Achievementfmt[]= "niiissiiiiisiix";
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 AreaTriggerEntryfmt[]="nifffxxxfffffxxx";
const char ArmorLocationfmt[]="nfffff";
const char AuctionHouseEntryfmt[]= "niiix";
const char BankBagSlotPricesEntryfmt[] = "ni";
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 CharTitlesEntryfmt[]="nxsxix";
const char ChatChannelsEntryfmt[]="iixsx";
// 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 ChrClassesXPowerTypesfmt[]="nii";
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 CreatureFamilyfmt[]="nfifiiiiixsx";
const char CreatureSpellDatafmt[] = "niiiixxxx";
const char DestructibleModelDataFmt[] = "nixxxixxxxixxxxixxxxxxxx";
const char DestructibleModelDataFmt[] = "nixxxixxxxixxxxixxxxixxx";
const char DungeonEncounterfmt[]="niiiisxx"; // TODO: NEED TO CONFIRM THIS
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 DurabilityQualityfmt[] = "nf";
const char EmotesEntryfmt[]="nxxiiixx";
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 GameObjectDisplayInfofmt[]="nsxxxxxxxxxxffffffxxx";
const char GemPropertiesEntryfmt[]="nixxix";
@ -77,7 +77,7 @@ const char GtSpellScalingfmt[]="df";
const char GtOCTBaseHPByClassfmt[]="df";
const char GtOCTBaseMPByClassfmt[]="df";
const char Holidaysfmt[] = "nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
const char ItemClassfmt[]="nxfs";
const char ItemClassfmt[]="nifs";
const char ItemArmorQualityfmt[]="nfffffffi";
const char ItemArmorShieldfmt[]="nifffffff";
const char ItemArmorTotalfmt[]="niffff";
@ -94,7 +94,7 @@ const char LiquidTypefmt[] = "nxxixixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
const char LockEntryfmt[] = "niiiiiiiiiiiiiiiiiiiiiiiixxxxxxxx";
const char MailTemplateEntryfmt[]="nxs";
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 MountTypefmt[]="niiiiiiiiiiiiiiiiiiiiiiii";
const char MovieEntryfmt[]="nxxxx";
@ -107,16 +107,16 @@ const char Phasefmt[]="nii";
const char PvPDifficultyfmt[] = "diiiii";
const char RandomPropertiesPointsfmt[] = "niiiiiiiiiiiiiii";
const char ScalingStatDistributionfmt[]="niiiiiiiiiiiiiiiiiiiixi";
const char ScalingStatValuesfmt[]="iniiiiiixiiiiiiiiiiiiiixxxxxxxxxxxxxxxxxxxxxxxxx"; // TODO: NEED TO CONFIRM THIS
const char SkillLinefmt[]="nisxixix"; // TODO: NEED TO CONFIRM THIS
const char SkillLineAbilityfmt[]="niiiiiiiiixxx";
const char ScalingStatValuesfmt[]="iniiiiiixiiiiiiiiiiiiiixxxxxxxxxxxxxxxxxxxxxxxxxx"; // TODO: NEED TO CONFIRM THIS
const char SkillLinefmt[]="nisxixixx"; // TODO: NEED TO CONFIRM THIS
const char SkillLineAbilityfmt[]="niiiixxiiiiii";
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 SpellDurationfmt[] = "niii";
const char SpellDifficultyfmt[] = "niiii";
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 SpellCastingRequirementsEntryfmt[]="dixxixi";
const char SpellCategoriesEntryfmt[]="dxxiiiiiix";
@ -134,7 +134,7 @@ const char SpellTotemsEntryfmt[]="diiii";
const char SpellFocusObjectfmt[]="nx";
const char SpellItemEnchantmentfmt[]="nxiiiiiiiiisiiiixxixxxxxx"; // TODO: NEED TO CONFIRM THIS
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 SpellRangefmt[]="nffffxxx";
const char SpellRuneCostfmt[]="niiixi";
@ -144,7 +144,7 @@ const char SummonPropertiesfmt[] = "niiiii";
const char TalentEntryfmt[]="niiiiiiiiixxixxxxxx";
const char TalentTabEntryfmt[]="nxxiiixxiii";
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 TaxiPathNodeEntryfmt[] = "diiifffiiii";
const char TotemCategoryEntryfmt[]="nxii";