chore(Core/DBC): define unused unknown dbc fields (#19262)

* chore(Core/DBC): define unused unknown dbc fields

* Name unused unknown dbc fields using WDBX and wowdev.wiki

* rename SpellShapeshiftEntry to SpellShapeshiftFormEntry to properly match the DBC used

* rename sSpellShapeshiftStore to sSpellShapeshiftFormStore to properly match the DBC used

* Comment out unused field for GlyphPropertiesEntry

* Comment out unused field for MapEntry

* forgot one

* SpellShapeshiftfmt to SpellShapeshiftFormfmt

* SpellShapeshiftFormEntryfmt
This commit is contained in:
Kitzunu
2024-07-04 19:23:25 +02:00
committed by GitHub
parent 193e906a84
commit 385d7fd515
9 changed files with 100 additions and 98 deletions
+2 -2
View File
@@ -160,7 +160,7 @@ DBCStorage <SpellFocusObjectEntry> sSpellFocusObjectStore(SpellFocusObjectfmt);
DBCStorage <SpellRadiusEntry> sSpellRadiusStore(SpellRadiusfmt); DBCStorage <SpellRadiusEntry> sSpellRadiusStore(SpellRadiusfmt);
DBCStorage <SpellRangeEntry> sSpellRangeStore(SpellRangefmt); DBCStorage <SpellRangeEntry> sSpellRangeStore(SpellRangefmt);
DBCStorage <SpellRuneCostEntry> sSpellRuneCostStore(SpellRuneCostfmt); DBCStorage <SpellRuneCostEntry> sSpellRuneCostStore(SpellRuneCostfmt);
DBCStorage <SpellShapeshiftEntry> sSpellShapeshiftStore(SpellShapeshiftfmt); DBCStorage <SpellShapeshiftFormEntry> sSpellShapeshiftFormStore(SpellShapeshiftFormEntryfmt);
DBCStorage <SpellVisualEntry> sSpellVisualStore(SpellVisualfmt); DBCStorage <SpellVisualEntry> sSpellVisualStore(SpellVisualfmt);
DBCStorage <StableSlotPricesEntry> sStableSlotPricesStore(StableSlotPricesfmt); DBCStorage <StableSlotPricesEntry> sStableSlotPricesStore(StableSlotPricesfmt);
DBCStorage <SummonPropertiesEntry> sSummonPropertiesStore(SummonPropertiesfmt); DBCStorage <SummonPropertiesEntry> sSummonPropertiesStore(SummonPropertiesfmt);
@@ -363,7 +363,7 @@ void LoadDBCStores(const std::string& dataPath)
LOAD_DBC(sSpellRadiusStore, "SpellRadius.dbc", "spellradius_dbc"); LOAD_DBC(sSpellRadiusStore, "SpellRadius.dbc", "spellradius_dbc");
LOAD_DBC(sSpellRangeStore, "SpellRange.dbc", "spellrange_dbc"); LOAD_DBC(sSpellRangeStore, "SpellRange.dbc", "spellrange_dbc");
LOAD_DBC(sSpellRuneCostStore, "SpellRuneCost.dbc", "spellrunecost_dbc"); LOAD_DBC(sSpellRuneCostStore, "SpellRuneCost.dbc", "spellrunecost_dbc");
LOAD_DBC(sSpellShapeshiftStore, "SpellShapeshiftForm.dbc", "spellshapeshiftform_dbc"); LOAD_DBC(sSpellShapeshiftFormStore, "SpellShapeshiftForm.dbc", "spellshapeshiftform_dbc");
LOAD_DBC(sSpellVisualStore, "SpellVisual.dbc", "spellvisual_dbc"); LOAD_DBC(sSpellVisualStore, "SpellVisual.dbc", "spellvisual_dbc");
LOAD_DBC(sStableSlotPricesStore, "StableSlotPrices.dbc", "stableslotprices_dbc"); LOAD_DBC(sStableSlotPricesStore, "StableSlotPrices.dbc", "stableslotprices_dbc");
LOAD_DBC(sSummonPropertiesStore, "SummonProperties.dbc", "summonproperties_dbc"); LOAD_DBC(sSummonPropertiesStore, "SummonProperties.dbc", "summonproperties_dbc");
+2 -2
View File
@@ -134,7 +134,7 @@ extern DBCStorage <ItemLimitCategoryEntry> sItemLimitCategoryStore;
extern DBCStorage <ItemRandomPropertiesEntry> sItemRandomPropertiesStore; extern DBCStorage <ItemRandomPropertiesEntry> sItemRandomPropertiesStore;
extern DBCStorage <ItemRandomSuffixEntry> sItemRandomSuffixStore; extern DBCStorage <ItemRandomSuffixEntry> sItemRandomSuffixStore;
extern DBCStorage <ItemSetEntry> sItemSetStore; extern DBCStorage <ItemSetEntry> sItemSetStore;
extern DBCStorage <LFGDungeonEntry> sLFGDungeonStore; extern DBCStorage <LFGDungeonEntry> sLFGDungeonStore;
extern DBCStorage <LiquidTypeEntry> sLiquidTypeStore; extern DBCStorage <LiquidTypeEntry> sLiquidTypeStore;
extern DBCStorage <LockEntry> sLockStore; extern DBCStorage <LockEntry> sLockStore;
extern DBCStorage <MailTemplateEntry> sMailTemplateStore; extern DBCStorage <MailTemplateEntry> sMailTemplateStore;
@@ -170,7 +170,7 @@ extern std::unordered_set<uint32> sPetTalentSpells;
extern DBCStorage <SpellRadiusEntry> sSpellRadiusStore; extern DBCStorage <SpellRadiusEntry> sSpellRadiusStore;
extern DBCStorage <SpellRangeEntry> sSpellRangeStore; extern DBCStorage <SpellRangeEntry> sSpellRangeStore;
extern DBCStorage <SpellRuneCostEntry> sSpellRuneCostStore; extern DBCStorage <SpellRuneCostEntry> sSpellRuneCostStore;
extern DBCStorage <SpellShapeshiftEntry> sSpellShapeshiftStore; extern DBCStorage <SpellShapeshiftFormEntry> sSpellShapeshiftFormStore;
extern DBCStorage <SpellEntry> sSpellStore; extern DBCStorage <SpellEntry> sSpellStore;
extern DBCStorage <SpellVisualEntry> sSpellVisualStore; extern DBCStorage <SpellVisualEntry> sSpellVisualStore;
extern DBCStorage <StableSlotPricesEntry> sStableSlotPricesStore; extern DBCStorage <StableSlotPricesEntry> sStableSlotPricesStore;
+1 -1
View File
@@ -10519,7 +10519,7 @@ void Player::InitDataForForm(bool reapplyMods)
{ {
ShapeshiftForm form = GetShapeshiftForm(); ShapeshiftForm form = GetShapeshiftForm();
SpellShapeshiftEntry const* ssEntry = sSpellShapeshiftStore.LookupEntry(form); SpellShapeshiftFormEntry const* ssEntry = sSpellShapeshiftFormStore.LookupEntry(form);
if (ssEntry && ssEntry->attackSpeed) if (ssEntry && ssEntry->attackSpeed)
{ {
SetAttackTime(BASE_ATTACK, ssEntry->attackSpeed); SetAttackTime(BASE_ATTACK, ssEntry->attackSpeed);
+3 -3
View File
@@ -15173,7 +15173,7 @@ uint32 Unit::GetCreatureType() const
if (GetTypeId() == TYPEID_PLAYER) if (GetTypeId() == TYPEID_PLAYER)
{ {
ShapeshiftForm form = GetShapeshiftForm(); ShapeshiftForm form = GetShapeshiftForm();
SpellShapeshiftEntry const* ssEntry = sSpellShapeshiftStore.LookupEntry(form); SpellShapeshiftFormEntry const* ssEntry = sSpellShapeshiftFormStore.LookupEntry(form);
if (ssEntry && ssEntry->creatureType > 0) if (ssEntry && ssEntry->creatureType > 0)
return ssEntry->creatureType; return ssEntry->creatureType;
else else
@@ -19646,7 +19646,7 @@ uint32 Unit::GetModelForForm(ShapeshiftForm form, uint32 spellId) const
} }
uint32 modelid = 0; uint32 modelid = 0;
SpellShapeshiftEntry const* formEntry = sSpellShapeshiftStore.LookupEntry(form); SpellShapeshiftFormEntry const* formEntry = sSpellShapeshiftFormStore.LookupEntry(form);
if (formEntry && formEntry->modelID_A) if (formEntry && formEntry->modelID_A)
{ {
// Take the alliance modelid as default // Take the alliance modelid as default
@@ -21582,7 +21582,7 @@ bool Unit::IsInDisallowedMountForm() const
if (ShapeshiftForm form = GetShapeshiftForm()) if (ShapeshiftForm form = GetShapeshiftForm())
{ {
SpellShapeshiftEntry const* shapeshift = sSpellShapeshiftStore.LookupEntry(form); SpellShapeshiftFormEntry const* shapeshift = sSpellShapeshiftFormStore.LookupEntry(form);
if (!shapeshift) if (!shapeshift)
{ {
return true; return true;
@@ -2143,7 +2143,7 @@ void AuraEffect::HandleAuraModShapeshift(AuraApplication const* aurApp, uint8 mo
if (target->GetTypeId() == TYPEID_PLAYER) if (target->GetTypeId() == TYPEID_PLAYER)
{ {
SpellShapeshiftEntry const* shapeInfo = sSpellShapeshiftStore.LookupEntry(form); SpellShapeshiftFormEntry const* shapeInfo = sSpellShapeshiftFormStore.LookupEntry(form);
// Learn spells for shapeshift form - no need to send action bars or add spells to spellbook // Learn spells for shapeshift form - no need to send action bars or add spells to spellbook
for (uint8 i = 0; i < MAX_SHAPESHIFT_SPELLS; ++i) for (uint8 i = 0; i < MAX_SHAPESHIFT_SPELLS; ++i)
{ {
+1 -1
View File
@@ -5799,7 +5799,7 @@ SpellCastResult Spell::CheckCast(bool strict)
SpellEffectInfo const* effInfo = &m_spellInfo->Effects[effIndex]; SpellEffectInfo const* effInfo = &m_spellInfo->Effects[effIndex];
if (effInfo->ApplyAuraName == SPELL_AURA_MOD_SHAPESHIFT) if (effInfo->ApplyAuraName == SPELL_AURA_MOD_SHAPESHIFT)
{ {
SpellShapeshiftEntry const* shapeShiftEntry = sSpellShapeshiftStore.LookupEntry(effInfo->MiscValue); SpellShapeshiftFormEntry const* shapeShiftEntry = sSpellShapeshiftFormStore.LookupEntry(effInfo->MiscValue);
if (shapeShiftEntry && (shapeShiftEntry->flags1 & 1) == 0) // unk flag if (shapeShiftEntry && (shapeShiftEntry->flags1 & 1) == 0) // unk flag
checkMask |= VEHICLE_SEAT_FLAG_UNCONTROLLED; checkMask |= VEHICLE_SEAT_FLAG_UNCONTROLLED;
break; break;
+3 -3
View File
@@ -1435,10 +1435,10 @@ SpellCastResult SpellInfo::CheckShapeshift(uint32 form) const
return SPELL_CAST_OK; return SPELL_CAST_OK;
bool actAsShifted = false; bool actAsShifted = false;
SpellShapeshiftEntry const* shapeInfo = nullptr; SpellShapeshiftFormEntry const* shapeInfo = nullptr;
if (form > 0) if (form > 0)
{ {
shapeInfo = sSpellShapeshiftStore.LookupEntry(form); shapeInfo = sSpellShapeshiftFormStore.LookupEntry(form);
if (!shapeInfo) if (!shapeInfo)
{ {
LOG_ERROR("spells", "GetErrorAtShapeshiftedCast: unknown shapeshift {}", form); LOG_ERROR("spells", "GetErrorAtShapeshiftedCast: unknown shapeshift {}", form);
@@ -2437,7 +2437,7 @@ int32 SpellInfo::CalcPowerCost(Unit const* caster, SpellSchoolMask schoolMask, S
if (AttributesEx4 & SPELL_ATTR4_WEAPON_SPEED_COST_SCALING) if (AttributesEx4 & SPELL_ATTR4_WEAPON_SPEED_COST_SCALING)
{ {
uint32 speed = 0; uint32 speed = 0;
if (SpellShapeshiftEntry const* ss = sSpellShapeshiftStore.LookupEntry(caster->GetShapeshiftForm())) if (SpellShapeshiftFormEntry const* ss = sSpellShapeshiftFormStore.LookupEntry(caster->GetShapeshiftForm()))
speed = ss->attackSpeed; speed = ss->attackSpeed;
else else
{ {
+84 -82
View File
@@ -590,11 +590,11 @@ struct BarberShopStyleEntry
{ {
uint32 Id; // 0 uint32 Id; // 0
uint32 type; // 1 value 0 -> hair, value 2 -> facialhair uint32 type; // 1 value 0 -> hair, value 2 -> facialhair
//char const* name[16]; // 2-17 name of hair style //char const* displayNameLang[16]; // 2-17 name of hair style
//uint32 name_flags; // 18 //char const* displayNameLangMask; // 18
//uint32 unk_name[16]; // 19-34, all empty //char const* descriptionLang[16]; // 19-34, all empty
//uint32 unk_flags; // 35 //char const* descriptionLangMask; // 35
//float CostMultiplier; // 36 values 1 and 0.75 //float costModifier; // 36 values 1 and 0.75
uint32 race; // 37 race uint32 race; // 37 race
uint32 gender; // 38 0 -> male, 1 -> female uint32 gender; // 38 0 -> male, 1 -> female
uint32 hair_id; // 39 real ID to hair/facial hair uint32 hair_id; // 39 real ID to hair/facial hair
@@ -618,11 +618,11 @@ struct BattlemasterListEntry
struct CharStartOutfitEntry struct CharStartOutfitEntry
{ {
//uint32 Id; // 0 //uint32 ID; // 0
uint8 Race; // 1 uint8 Race; // 1
uint8 Class; // 2 uint8 Class; // 2
uint8 Gender; // 3 uint8 Gender; // 3
//uint8 Unused; // 4 //uint8 outfitID; // 4 unused
int32 ItemId[MAX_OUTFIT_ITEMS]; // 5-28 int32 ItemId[MAX_OUTFIT_ITEMS]; // 5-28
//int32 ItemDisplayId[MAX_OUTFIT_ITEMS]; // 29-52 not required at server side //int32 ItemDisplayId[MAX_OUTFIT_ITEMS]; // 29-52 not required at server side
//int32 ItemInventorySlot[MAX_OUTFIT_ITEMS]; // 53-76 not required at server side //int32 ItemInventorySlot[MAX_OUTFIT_ITEMS]; // 53-76 not required at server side
@@ -631,11 +631,11 @@ struct CharStartOutfitEntry
struct CharTitlesEntry struct CharTitlesEntry
{ {
uint32 ID; // 0, title ids, for example in Quest::GetCharTitleId() uint32 ID; // 0, title ids, for example in Quest::GetCharTitleId()
//uint32 unk1; // 1 flags? //uint32 conditionID; // 1 Never used by the client. Should be used serverside?
char const* nameMale[16]; // 2-17 char const* nameMale[16]; // 2-17
// 18 string flag, unused //uint32 nameLangMask // 18 string flag, unused
char const* nameFemale[16]; // 19-34 char const* nameFemale[16]; // 19-34
// 35 string flag, unused //uint32 nameLang1Mask // 35 string flag, unused
uint32 bit_index; // 36 used in PLAYER_CHOSEN_TITLE and 1<<index in PLAYER__FIELD_KNOWN_TITLES uint32 bit_index; // 36 used in PLAYER_CHOSEN_TITLE and 1<<index in PLAYER__FIELD_KNOWN_TITLES
}; };
@@ -687,7 +687,7 @@ struct ChrRacesEntry
uint32 TeamID; // 7 (7-Alliance 1-Horde) uint32 TeamID; // 7 (7-Alliance 1-Horde)
// 8-11 unused // 8-11 unused
uint32 CinematicSequence; // 12 id from CinematicSequences.dbc uint32 CinematicSequence; // 12 id from CinematicSequences.dbc
//uint32 unk_322; // 13 faction (0 alliance, 1 horde, 2 not available?) //uint32 alliance; // 13 faction (0 alliance, 1 horde, 2 not available?)
char const* name[16]; // 14-29 used for DBC language detection/selection char const* name[16]; // 14-29 used for DBC language detection/selection
// 30 string flags, unused // 30 string flags, unused
//char const* nameFemale[16]; // 31-46, if different from base (male) case //char const* nameFemale[16]; // 31-46, if different from base (male) case
@@ -712,9 +712,9 @@ struct CinematicCameraEntry
struct CinematicSequencesEntry struct CinematicSequencesEntry
{ {
uint32 Id; // 0 index uint32 Id; // 0 index
//uint32 unk1; // 1 always 0 //uint32 soundID; // 1 always 0
uint32 cinematicCamera; // 2 id in CinematicCamera.dbc uint32 cinematicCamera; // 2 id in CinematicCamera.dbc
// 3-9 always 0 //uint32 cinematicCamera // 3-9 always 0
}; };
struct CreatureDisplayInfoEntry struct CreatureDisplayInfoEntry
@@ -776,21 +776,30 @@ struct CreatureModelDataEntry
uint32 Id; uint32 Id;
uint32 Flags; uint32 Flags;
//char const* ModelPath //char const* ModelPath
//uint32 Unk1;
float Scale; // Used in calculation of unit collision data float Scale; // Used in calculation of unit collision data
//int32 Unk2 //int32 bloodID
//int32 Unk3 //int32 footprintTexureID
//uint32 Unk4 //float footprintTextureLength
//uint32 Unk5 //float footprinTextureWidth
//float Unk6 //float footprintParticleScale
//uint32 Unk7 //uint32 foleyMaterialID
//float Unk8 //float footstepShakeSize
//uint32 Unk9 //uint32 deathThudShakeSize
//uint32 Unk10 //uint32 soundID
float CollisionWidth; float CollisionWidth;
float CollisionHeight; float CollisionHeight;
float MountHeight; // Used in calculation of unit collision data when mounted float MountHeight; // Used in calculation of unit collision data when mounted
//float Unks[11] //float geoBoxMinX
//float geoBoxMinY
//float geoBoxMinZ
//float geoBoxMaxX
//float geoBoxMaxY
//float geoBoxMaxZ
//float worldEffectScale
//float attachedEffectScale
//float missileCollisionRadius
//float missileCollisionPush
//float missileCollisionRaise
inline bool HasFlag(CreatureModelDataFlags flag) const { return (Flags & flag) != 0; } inline bool HasFlag(CreatureModelDataFlags flag) const { return (Flags & flag) != 0; }
}; };
@@ -816,7 +825,7 @@ struct CreatureTypeEntry
struct CurrencyCategoryEntry struct CurrencyCategoryEntry
{ {
uint32 ID; // 0 uint32 ID; // 0
uint32 Unk1; // 1 0 for known categories and 3 for unknown one (3.0.9) uint32 flags; // 1 0 for known categories and 3 for unknown one (3.0.9)
char const* Name[16]; // 2-17 name char const* Name[16]; // 2-17 name
// // 18 string flags // // 18 string flags
}; };
@@ -858,11 +867,11 @@ struct DungeonEncounterEntry
uint32 id; // 0 unique id uint32 id; // 0 unique id
uint32 mapId; // 1 map id uint32 mapId; // 1 map id
uint32 difficulty; // 2 instance mode uint32 difficulty; // 2 instance mode
//uint32 unk0; // 3 //uint32 orderIndex; // 3
uint32 encounterIndex; // 4 encounter index for creating completed mask uint32 encounterIndex; // 4 encounter index for creating completed mask
char const* encounterName[16]; // 5-20 encounter name char const* encounterName[16]; // 5-20 encounter name
//uint32 nameFlags; // 21 //uint32 nameFlags; // 21
//uint32 unk1; // 22 //uint32 spellIconID; // 22
}; };
struct DurabilityCostsEntry struct DurabilityCostsEntry
@@ -906,7 +915,7 @@ struct FactionEntry
float spilloverRateIn; // 19 Faction gains incoming rep * spilloverRateIn float spilloverRateIn; // 19 Faction gains incoming rep * spilloverRateIn
float spilloverRateOut; // 20 Faction outputs rep * spilloverRateOut as spillover reputation float spilloverRateOut; // 20 Faction outputs rep * spilloverRateOut as spillover reputation
uint32 spilloverMaxRankIn; // 21 The highest rank the faction will profit from incoming spillover uint32 spilloverMaxRankIn; // 21 The highest rank the faction will profit from incoming spillover
//uint32 spilloverRank_unk; // 22 It does not seem to be the max standing at which a faction outputs spillover ...so no idea //uint32 parentFactionCap; // 22 It does not seem to be the max standing at which a faction outputs spillover ...so no idea
char const* name[16]; // 23-38 m_name_lang char const* name[16]; // 23-38 m_name_lang
// 39 string flags // 39 string flags
//char const* description[16]; // 40-55 m_description_lang //char const* description[16]; // 40-55 m_description_lang
@@ -991,7 +1000,7 @@ struct GameObjectDisplayInfoEntry
{ {
uint32 Displayid; // 0 m_ID uint32 Displayid; // 0 m_ID
char const* filename; // 1 char const* filename; // 1
//uint32 unk1[10]; //2-11 //uint32 sound[10]; //2-11
float minX; float minX;
float minY; float minY;
float minZ; float minZ;
@@ -1010,10 +1019,10 @@ struct GemPropertiesEntry
struct GlyphPropertiesEntry struct GlyphPropertiesEntry
{ {
uint32 Id; //uint32 Id;
uint32 SpellId; uint32 SpellId;
uint32 TypeFlags; uint32 TypeFlags;
uint32 Unk1; // GlyphIconId (SpellIcon.dbc) //uint32 spellIconID; // GlyphIconId (SpellIcon.dbc)
}; };
struct GlyphSlotEntry struct GlyphSlotEntry
@@ -1225,7 +1234,7 @@ struct ItemSetEntry
char const* name[16]; // 1-16 m_name_lang char const* name[16]; // 1-16 m_name_lang
// 17 string flags, unused // 17 string flags, unused
uint32 itemId[MAX_ITEM_SET_ITEMS]; // 18-27 m_itemID uint32 itemId[MAX_ITEM_SET_ITEMS]; // 18-27 m_itemID
//uint32 unknown[7]; // 28-34 unk, all 0 //uint32 itemID[7]; // 28-34
uint32 spells[MAX_ITEM_SET_SPELLS]; // 35-42 m_setSpellID uint32 spells[MAX_ITEM_SET_SPELLS]; // 35-42 m_setSpellID
uint32 items_to_triggerspell[MAX_ITEM_SET_SPELLS]; // 43-50 m_setThreshold uint32 items_to_triggerspell[MAX_ITEM_SET_SPELLS]; // 43-50 m_setThreshold
uint32 required_skill_id; // 51 m_requiredSkill uint32 required_skill_id; // 51 m_requiredSkill
@@ -1267,14 +1276,7 @@ struct LightEntry
float Z; float Z;
//float FalloffStart; //float FalloffStart;
//float FalloffEnd; //float FalloffEnd;
//uint32 SkyAndFog; //uint32 LightParamsID[8] // Reference to LightParams.dbc
//uint32 WaterSettings;
//uint32 SunsetParams;
//uint32 OtherParams;
//uint32 DeathParams;
//uint32 Unknown;
//uint32 Unknown;
//uint32 Unknown;
}; };
struct LiquidTypeEntry struct LiquidTypeEntry
@@ -1322,7 +1324,7 @@ struct MailTemplateEntry
struct MapEntry struct MapEntry
{ {
uint32 MapID; // 0 uint32 MapID; // 0
//char const* internalname; // 1 unused //char const* internalname; // 1 unused
uint32 map_type; // 2 uint32 map_type; // 2
uint32 Flags; // 3 uint32 Flags; // 3
// 4 0 or 1 for battlegrounds (not arenas) // 4 0 or 1 for battlegrounds (not arenas)
@@ -1339,12 +1341,12 @@ struct MapEntry
float entrance_x; // 60 entrance x coordinate (if exist single entry) float entrance_x; // 60 entrance x coordinate (if exist single entry)
float entrance_y; // 61 entrance y coordinate (if exist single entry) float entrance_y; // 61 entrance y coordinate (if exist single entry)
//uint32 TimeOfDayOverride; // 62 -1, 0 and 720 //uint32 TimeOfDayOverride; // 62 -1, 0 and 720
uint32 addon; // 63 (0-original maps, 1-tbc addon) uint32 expansionID; // 63 (0: Vanilla, 1:TBC, 2:WotLK)
uint32 unk_time; // 64 some kind of time? //uint32 raidOffset; // 64 some kind of time?
uint32 maxPlayers; // 65 max players, fallback if not present in MapDifficulty.dbc uint32 maxPlayers; // 65 max players, fallback if not present in MapDifficulty.dbc
// Helpers // Helpers
[[nodiscard]] uint32 Expansion() const { return addon; } [[nodiscard]] uint32 Expansion() const { return expansionID; }
[[nodiscard]] bool IsDungeon() const { return map_type == MAP_INSTANCE || map_type == MAP_RAID; } [[nodiscard]] bool IsDungeon() const { return map_type == MAP_INSTANCE || map_type == MAP_RAID; }
[[nodiscard]] bool IsNonRaidDungeon() const { return map_type == MAP_INSTANCE; } [[nodiscard]] bool IsNonRaidDungeon() const { return map_type == MAP_INSTANCE; }
@@ -1387,9 +1389,9 @@ struct MapDifficultyEntry
struct MovieEntry struct MovieEntry
{ {
uint32 Id; // 0 index uint32 Id; // 0 index
//char const* filename; // 1 //char const* filename; // 1
//uint32 unk2; // 2 always 100 //uint32 volume // 2 always 100
}; };
struct NamesReservedEntry struct NamesReservedEntry
@@ -1412,7 +1414,7 @@ struct OverrideSpellDataEntry
{ {
uint32 id; // 0 uint32 id; // 0
uint32 spellId[MAX_OVERRIDE_SPELL]; // 1-10 uint32 spellId[MAX_OVERRIDE_SPELL]; // 1-10
//uint32 unk0; // 11 //uint32 flags; // 11
}; };
struct PowerDisplayEntry struct PowerDisplayEntry
@@ -1622,7 +1624,7 @@ struct SoundEntriesEntry
//uint32 Type; // 1 m_soundType //uint32 Type; // 1 m_soundType
//char const* InternalName; // 2 m_name //char const* InternalName; // 2 m_name
//char const* FileName[10]; // 3-12 m_File[10] //char const* FileName[10]; // 3-12 m_File[10]
//uint32 Unk13[10]; // 13-22 m_Freq[10] //uint32 Freq[10]; // 13-22 m_Freq[10]
//char const* Path; // 23 m_DirectoryBase //char const* Path; // 23 m_DirectoryBase
// 24 m_volumeFloat // 24 m_volumeFloat
// 25 m_flags // 25 m_flags
@@ -1651,9 +1653,7 @@ struct SpellEntry
uint32 AttributesEx6; // 10 m_attributesExF uint32 AttributesEx6; // 10 m_attributesExF
uint32 AttributesEx7; // 11 m_attributesExG uint32 AttributesEx7; // 11 m_attributesExG
uint32 Stances; // 12 m_shapeshiftMask uint32 Stances; // 12 m_shapeshiftMask
// uint32 unk_320_2; // 13 3.2.0
uint32 StancesNot; // 14 m_shapeshiftExclude uint32 StancesNot; // 14 m_shapeshiftExclude
// uint32 unk_320_3; // 15 3.2.0
uint32 Targets; // 16 m_targets uint32 Targets; // 16 m_targets
uint32 TargetCreatureType; // 17 m_targetCreatureType uint32 TargetCreatureType; // 17 m_targetCreatureType
uint32 RequiresSpellFocus; // 18 m_requiresSpellFocus uint32 RequiresSpellFocus; // 18 m_requiresSpellFocus
@@ -1813,21 +1813,20 @@ struct SpellRuneCostEntry
#define MAX_SHAPESHIFT_SPELLS 8 #define MAX_SHAPESHIFT_SPELLS 8
struct SpellShapeshiftEntry struct SpellShapeshiftFormEntry
{ {
uint32 ID; // 0 uint32 ID; // 0
//uint32 buttonPosition; // 1 unused //uint32 bonusActionBar; // 1 unused
//char const* Name[16]; // 2-17 unused //char const* Name[16]; // 2-17 unused
//uint32 NameFlags; // 18 unused //uint32 NameFlags; // 18 unused
uint32 flags1; // 19 uint32 flags1; // 19
int32 creatureType; // 20 <= 0 humanoid, other normal creature types int32 creatureType; // 20 <= 0 humanoid, other normal creature types
//uint32 unk1; // 21 unused //uint32 attackIconID; // 21 unused
uint32 attackSpeed; // 22 uint32 attackSpeed; // 22
uint32 modelID_A; // 23 alliance modelid uint32 modelID_A; // 23 alliance modelid
uint32 modelID_H; // 24 horde modelid (only one form) uint32 modelID_H; // 24 horde modelid (only one form)
//uint32 unk3; // 25 unused //uint32 creatureDisplayID[2]; // 25-26 unused
//uint32 unk4; // 26 unused uint32 stanceSpell[MAX_SHAPESHIFT_SPELLS]; // 27 - 34
uint32 stanceSpell[MAX_SHAPESHIFT_SPELLS]; // 27 - 34 unused
}; };
struct SpellDurationEntry struct SpellDurationEntry
@@ -1927,14 +1926,14 @@ struct TalentEntry
uint32 Row; // 2 uint32 Row; // 2
uint32 Col; // 3 uint32 Col; // 3
std::array<uint32, MAX_TALENT_RANK> RankID; // 4-8 std::array<uint32, MAX_TALENT_RANK> RankID; // 4-8
// 9-12 not used, always 0, maybe not used high ranks // uint32 spellRank [4] // 9-12 not used, always 0, maybe not used high ranks
uint32 DependsOn; // 13 index in Talent.dbc (TalentEntry) uint32 DependsOn; // 13 preReqTalent1 index in Talent.dbc (TalentEntry)
// 14-15 not used // uint32 preReqTalent[2] // 14-15 not used
uint32 DependsOnRank; // 16 uint32 DependsOnRank; // 16 preReqRank1
// 17-18 not used // uint32 preReqRank[2] // 17-18 not used
uint32 addToSpellBook; // 19 also need disable higest ranks on reset talent tree uint32 addToSpellBook; // 19 also need disable higest ranks on reset talent tree
//uint32 unk2; // 20, all 0 //uint32 requiredSpellID; // 20, all 0
//uint64 allowForPet; // 21-22 its a 64 bit mask for pet 1<<m_categoryEnumID in CreatureFamily.dbc //uint64 categoryMask[2]; // 21-22 its a 64 bit mask for pet 1<<m_categoryEnumID in CreatureFamily.dbc
}; };
struct TalentTabEntry struct TalentTabEntry
@@ -2173,13 +2172,13 @@ struct WorldMapOverlayEntry
}; };
/* /*
struct WorldStateSounds struct WorldStateZoneSounds
{ {
uint32 ID; // 0 Worldstate uint32 ID; // 0
uint32 unk; // 1 uint32 WorldStateID; // 1
uint32 areaTable; // 2 uint32 WorldStateValue; // 2
uint32 WMOAreaTable; // 3 uint32 AreaID; // 3
uint32 zoneIntroMusicTable; // 4 uint32 WMOAreaID; // 4
uint32 zoneIntroMusic; // 5 uint32 zoneIntroMusic; // 5
uint32 zoneMusic; // 6 uint32 zoneMusic; // 6
uint32 soundAmbience; // 7 uint32 soundAmbience; // 7
@@ -2191,20 +2190,23 @@ struct WorldStateSounds
struct WorldStateUI struct WorldStateUI
{ {
uint32 ID; // 0 uint32 ID; // 0
uint32 map_id; // 1 Can be -1 to show up everywhere. uint32 mapID; // 1 Can be -1 to show up everywhere.
uint32 zone; // 2 Can be zero for "everywhere". uint32 zone; // 2 Can be zero for "everywhere".
uint32 phaseMask; // 3 Phase this WorldState is avaliable in uint32 phaseMask; // 3 Phase this WorldState is avaliable in
uint32 icon; // 4 The icon that is used in the interface. char const* icon; // 4 The icon that is used in the interface.
char const* textureFilename; // 5 char const* text; // 5-20 The text displayed in the UI.
char const* text; // 6-21 The worldstate text char const* textLangMask // 21
char const* description; // 22-38 Text shown when hovering mouse on icon char const* tooltip; // 22-37 Text shown when hovering mouse on icon
uint32 worldstateID; // 39 This is the actual ID used char const* tooltipLangMask // 38
uint32 type; // 40 0 = unknown, 1 = unknown, 2 = not shown in ui, 3 = wintergrasp uint32 worldStateID; // 39 This is the actual ID used
uint32 unk1; // 41 uint32 type; // 40 0 = unknown, 1 = unknown, 2 = battleground scores ("Captured flags", ...)
uint32 unk2; // 43 char const* dynamicIcon; // 41 Only set for warsong-gulch-flags.
uint32 unk3; // 44-58 char const* dynamicTooltip; // 42-57 Again, set for the flags. "Flag is picked up".
uint32 unk4; // 59-61 Used for some progress bars. char const* dynamicTooltipLangMask; // 58
uint32 unk7; // 62 Unused in 3.3.5a uint32 extendedUI; // 59 If set, then its "CAPTUREPOINT". Used for points that need to be tapped over time. (Progress: *%)
uint32 extendedUIStateVariable; // 60 This worldstate tells how far the captureing proceeded. 100: Alliance / left, 0: Horde / right
uint32 extendedUIStateVariableNeutral // 61 This state defines the grey part of the bar. In percent of the whole bar.
uint32 extendedUIStateVariable // 62 unused in 3.3.5
}; };
*/ */
+3 -3
View File
@@ -53,7 +53,7 @@ char constexpr FactionTemplateEntryfmt[] = "niiiiiiiiiiiii";
char constexpr GameObjectArtKitfmt[] = "nxxxxxxx"; char constexpr GameObjectArtKitfmt[] = "nxxxxxxx";
char constexpr GameObjectDisplayInfofmt[] = "nsxxxxxxxxxxffffffx"; char constexpr GameObjectDisplayInfofmt[] = "nsxxxxxxxxxxffffffx";
char constexpr GemPropertiesEntryfmt[] = "nixxi"; char constexpr GemPropertiesEntryfmt[] = "nixxi";
char constexpr GlyphPropertiesfmt[] = "niii"; char constexpr GlyphPropertiesfmt[] = "xiix";
char constexpr GlyphSlotfmt[] = "nii"; char constexpr GlyphSlotfmt[] = "nii";
char constexpr GtBarberShopCostBasefmt[] = "df"; char constexpr GtBarberShopCostBasefmt[] = "df";
char constexpr GtCombatRatingsfmt[] = "df"; char constexpr GtCombatRatingsfmt[] = "df";
@@ -82,7 +82,7 @@ char constexpr LightEntryfmt[] = "nifffxxxxxxxxxx";
char constexpr LiquidTypefmt[] = "nxxixixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; char constexpr LiquidTypefmt[] = "nxxixixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
char constexpr LockEntryfmt[] = "niiiiiiiiiiiiiiiiiiiiiiiixxxxxxxx"; char constexpr LockEntryfmt[] = "niiiiiiiiiiiiiiiiiiiiiiiixxxxxxxx";
char constexpr MailTemplateEntryfmt[] = "nxxxxxxxxxxxxxxxxxssssssssssssssssx"; char constexpr MailTemplateEntryfmt[] = "nxxxxxxxxxxxxxxxxxssssssssssssssssx";
char constexpr MapEntryfmt[] = "nxiixssssssssssssssssxixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxixiffxiii"; char constexpr MapEntryfmt[] = "nxiixssssssssssssssssxixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxixiffxixi";
char constexpr MapDifficultyEntryfmt[] = "diisxxxxxxxxxxxxxxxxiix"; char constexpr MapDifficultyEntryfmt[] = "diisxxxxxxxxxxxxxxxxiix";
char constexpr MovieEntryfmt[] = "nxx"; char constexpr MovieEntryfmt[] = "nxx";
char constexpr NamesReservedfmt[] = "xsx"; char constexpr NamesReservedfmt[] = "xsx";
@@ -112,7 +112,7 @@ char constexpr SpellItemEnchantmentConditionfmt[] = "nbbbbbxxxxxbbbbbbbbbbiiiiiX
char constexpr SpellRadiusfmt[] = "nfff"; char constexpr SpellRadiusfmt[] = "nfff";
char constexpr SpellRangefmt[] = "nffffixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; char constexpr SpellRangefmt[] = "nffffixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
char constexpr SpellRuneCostfmt[] = "niiii"; char constexpr SpellRuneCostfmt[] = "niiii";
char constexpr SpellShapeshiftfmt[] = "nxxxxxxxxxxxxxxxxxxiixiiixxiiiiiiii"; char constexpr SpellShapeshiftFormEntryfmt[] = "nxxxxxxxxxxxxxxxxxxiixiiixxiiiiiiii";
char constexpr SpellVisualfmt[] = "dxxxxxxiixxxxxxxxxxxxxxxxxxxxxxx"; char constexpr SpellVisualfmt[] = "dxxxxxxiixxxxxxxxxxxxxxxxxxxxxxx";
char constexpr StableSlotPricesfmt[] = "ni"; char constexpr StableSlotPricesfmt[] = "ni";
char constexpr SummonPropertiesfmt[] = "niiiii"; char constexpr SummonPropertiesfmt[] = "niiiii";