diff options
Diffstat (limited to 'src/game/DBCStructure.h')
-rw-r--r-- | src/game/DBCStructure.h | 183 |
1 files changed, 0 insertions, 183 deletions
diff --git a/src/game/DBCStructure.h b/src/game/DBCStructure.h index 7e459c61e8b..98f4dfd3744 100644 --- a/src/game/DBCStructure.h +++ b/src/game/DBCStructure.h @@ -17,27 +17,21 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - #ifndef MANGOS_DBCSTRUCTURE_H #define MANGOS_DBCSTRUCTURE_H - #include "DBCEnums.h" #include "Platform/Define.h" #include "Util.h" - #include <map> #include <set> #include <vector> - // Structures using to access raw DBC data and required packing to portability - // GCC have alternative #pragma pack(N) syntax and old gcc version not support pack(push,N), also any gcc version not support it at some platform #if defined( __GNUC__ ) #pragma pack(1) #else #pragma pack(push,1) #endif - struct AchievementEntry { uint32 ID; // 0 @@ -58,7 +52,6 @@ struct AchievementEntry uint32 count; // 60 - need this count of completed criterias (own or referenced achievement criterias) uint32 refAchievement; // 61 - referenced achievement (counting of all completed criterias) }; - struct AchievementCategoryEntry { uint32 ID; // 0 @@ -67,7 +60,6 @@ struct AchievementCategoryEntry //uint32 name_flags; // 18 //uint32 sortOrder; // 19 }; - struct AchievementCriteriaEntry { uint32 ID; // 0 @@ -82,7 +74,6 @@ struct AchievementCriteriaEntry uint32 creatureID; // 3 uint32 creatureCount; // 4 } kill_creature; - // ACHIEVEMENT_CRITERIA_TYPE_WIN_BG = 1 struct { @@ -93,105 +84,89 @@ struct AchievementCriteriaEntry uint32 additionalRequirement2_type; // 7 additional requirement 2 type uint32 additionalRequirement2_value; // 8 additional requirement 1 value } win_bg; - // ACHIEVEMENT_CRITERIA_TYPE_REACH_LEVEL = 5 struct { uint32 unused; // 3 uint32 level; // 4 } reach_level; - // ACHIEVEMENT_CRITERIA_TYPE_REACH_SKILL_LEVEL = 7 struct { uint32 skillID; // 3 uint32 skillLevel; // 4 } reach_skill_level; - // ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_ACHIEVEMENT = 8 struct { uint32 linkedAchievement; // 3 } complete_achievement; - // ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_QUEST_COUNT = 9 struct { uint32 unused; // 3 uint32 totalQuestCount; // 4 } complete_quest_count; - // ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_DAILY_QUEST_DAILY = 10 struct { uint32 unused; // 3 uint32 numberOfDays; // 4 } complete_daily_quest_daily; - // ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_QUESTS_IN_ZONE = 11 struct { uint32 zoneID; // 3 uint32 questCount; // 4 } complete_quests_in_zone; - // ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_DAILY_QUEST = 14 struct { uint32 unused; // 3 uint32 questCount; // 4 } complete_daily_quest; - // ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_BATTLEGROUND = 15 struct { uint32 mapID; // 3 } complete_battleground; - // ACHIEVEMENT_CRITERIA_TYPE_DEATH_AT_MAP = 16 struct { uint32 mapID; // 3 } death_at_map; - // ACHIEVEMENT_CRITERIA_TYPE_DEATH_IN_DUNGEON = 18 struct { uint32 manLimit; // 3 } death_in_dungeon; - // ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_RAID = 19 struct { uint32 groupSize; // 3 can be 5, 10 or 25 } complete_raid; - // ACHIEVEMENT_CRITERIA_TYPE_KILLED_BY_CREATURE = 20 struct { uint32 creatureEntry; // 3 } killed_by_creature; - // ACHIEVEMENT_CRITERIA_TYPE_FALL_WITHOUT_DYING = 24 struct { uint32 unused; // 3 uint32 fallHeight; // 4 } fall_without_dying; - // ACHIEVEMENT_CRITERIA_TYPE_DEATHS_FROM = 26 struct { uint32 type; // 3, see enum EnviromentalDamage } death_from; - // ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_QUEST = 27 struct { uint32 questID; // 3 uint32 questCount; // 4 } complete_quest; - // ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET = 28 // ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET2 = 69 struct @@ -199,7 +174,6 @@ struct AchievementCriteriaEntry uint32 spellID; // 3 uint32 spellCount; // 4 } be_spell_target; - // ACHIEVEMENT_CRITERIA_TYPE_CAST_SPELL = 29 // ACHIEVEMENT_CRITERIA_TYPE_CAST_SPELL2 = 110 struct @@ -207,39 +181,33 @@ struct AchievementCriteriaEntry uint32 spellID; // 3 uint32 castCount; // 4 } cast_spell; - // ACHIEVEMENT_CRITERIA_TYPE_HONORABLE_KILL_AT_AREA = 31 struct { uint32 areaID; // 3 Reference to AreaTable.dbc uint32 killCount; // 4 } honorable_kill_at_area; - // ACHIEVEMENT_CRITERIA_TYPE_WIN_ARENA = 32 struct { uint32 mapID; // 3 Reference to Map.dbc } win_arena; - // ACHIEVEMENT_CRITERIA_TYPE_PLAY_ARENA = 33 struct { uint32 mapID; // 3 Reference to Map.dbc } play_arena; - // ACHIEVEMENT_CRITERIA_TYPE_LEARN_SPELL = 34 struct { uint32 spellID; // 3 Reference to Map.dbc } learn_spell; - // ACHIEVEMENT_CRITERIA_TYPE_OWN_ITEM = 36 struct { uint32 itemID; // 3 uint32 itemCount; // 4 } own_item; - // ACHIEVEMENT_CRITERIA_TYPE_WIN_RATED_ARENA = 37 struct { @@ -247,90 +215,77 @@ struct AchievementCriteriaEntry uint32 count; // 4 uint32 flag; // 5 4=in a row } win_rated_arena; - // ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_TEAM_RATING = 38 struct { uint32 teamtype; // 3 {2,3,5} } highest_team_rating; - // ACHIEVEMENT_CRITERIA_TYPE_REACH_TEAM_RATING = 39 struct { uint32 teamtype; // 3 {2,3,5} uint32 teamrating; // 4 } reach_team_rating; - // ACHIEVEMENT_CRITERIA_TYPE_LEARN_SKILL_LEVEL = 40 struct { uint32 skillID; // 3 uint32 skillLevel; // 4 apprentice=1, journeyman=2, expert=3, artisan=4, master=5, grand master=6 } learn_skill_level; - // ACHIEVEMENT_CRITERIA_TYPE_USE_ITEM = 41 struct { uint32 itemID; // 3 uint32 itemCount; // 4 } use_item; - // ACHIEVEMENT_CRITERIA_TYPE_LOOT_ITEM = 42 struct { uint32 itemID; // 3 uint32 itemCount; // 4 } loot_item; - // ACHIEVEMENT_CRITERIA_TYPE_EXPLORE_AREA = 43 struct { // TODO: This rank is _NOT_ the index from AreaTable.dbc uint32 areaReference; // 3 } explore_area; - // ACHIEVEMENT_CRITERIA_TYPE_OWN_RANK = 44 struct { // TODO: This rank is _NOT_ the index from CharTitles.dbc uint32 rank; // 3 } own_rank; - // ACHIEVEMENT_CRITERIA_TYPE_BUY_BANK_SLOT = 45 struct { uint32 unused; // 3 uint32 numberOfSlots; // 4 } buy_bank_slot; - // ACHIEVEMENT_CRITERIA_TYPE_GAIN_REPUTATION = 46 struct { uint32 factionID; // 3 uint32 reputationAmount; // 4 Total reputation amount, so 42000 = exalted } gain_reputation; - // ACHIEVEMENT_CRITERIA_TYPE_GAIN_EXALTED_REPUTATION= 47 struct { uint32 unused; // 3 uint32 numberOfExaltedFactions; // 4 } gain_exalted_reputation; - // ACHIEVEMENT_CRITERIA_TYPE_VISIT_BARBER_SHOP = 48 struct { uint32 unused; // 3 uint32 numberOfVisits; // 4 } visit_barber; - // ACHIEVEMENT_CRITERIA_TYPE_EQUIP_EPIC_ITEM = 49 // TODO: where is the required itemlevel stored? struct { uint32 itemSlot; // 3 } equip_epic_item; - // ACHIEVEMENT_CRITERIA_TYPE_ROLL_NEED_ON_LOOT = 50 struct { @@ -343,21 +298,18 @@ struct AchievementCriteriaEntry uint32 rollValue; // 3 uint32 count; // 4 } roll_greed_on_loot; - // ACHIEVEMENT_CRITERIA_TYPE_HK_CLASS = 52 struct { uint32 classID; // 3 uint32 count; // 4 } hk_class; - // ACHIEVEMENT_CRITERIA_TYPE_HK_RACE = 53 struct { uint32 raceID; // 3 uint32 count; // 4 } hk_race; - // ACHIEVEMENT_CRITERIA_TYPE_DO_EMOTE = 54 // TODO: where is the information about the target stored? struct @@ -375,14 +327,12 @@ struct AchievementCriteriaEntry uint32 flag; // 5 =3 for battleground healing uint32 mapid; // 6 } healing_done; - // ACHIEVEMENT_CRITERIA_TYPE_EQUIP_ITEM = 57 struct { uint32 itemID; // 3 uint32 count; // 4 } equip_item; - // ACHIEVEMENT_CRITERIA_TYPE_MONEY_FROM_QUEST_REWARD= 62 struct { @@ -390,21 +340,18 @@ struct AchievementCriteriaEntry uint32 goldInCopper; // 4 } quest_reward_money; - // ACHIEVEMENT_CRITERIA_TYPE_LOOT_MONEY = 67 struct { uint32 unused; // 3 uint32 goldInCopper; // 4 } loot_money; - // ACHIEVEMENT_CRITERIA_TYPE_USE_GAMEOBJECT = 68 struct { uint32 goEntry; // 3 uint32 useCount; // 4 } use_gameobject; - // ACHIEVEMENT_CRITERIA_TYPE_SPECIAL_PVP_KILL = 70 // TODO: are those special criteria stored in the dbc or do we have to add another sql table? struct @@ -412,73 +359,62 @@ struct AchievementCriteriaEntry uint32 unused; // 3 uint32 killCount; // 4 } special_pvp_kill; - // ACHIEVEMENT_CRITERIA_TYPE_FISH_IN_GAMEOBJECT = 72 struct { uint32 goEntry; // 3 uint32 lootCount; // 4 } fish_in_gameobject; - // ACHIEVEMENT_CRITERIA_TYPE_LEARN_SKILLLINE_SPELLS = 75 struct { uint32 skillLine; // 3 uint32 spellCount; // 4 } learn_skillline_spell; - // ACHIEVEMENT_CRITERIA_TYPE_WIN_DUEL = 76 struct { uint32 unused; // 3 uint32 duelCount; // 4 } win_duel; - // ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_POWER = 96 struct { uint32 powerType; // 3 mana=0, 1=rage, 3=energy, 6=runic power } highest_power; - // ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_STAT = 97 struct { uint32 statType; // 3 4=spirit, 3=int, 2=stamina, 1=agi, 0=strength } highest_stat; - // ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_SPELLPOWER = 98 struct { uint32 spellSchool; // 3 } highest_spellpower; - // ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_RATING = 100 struct { uint32 ratingType; // 3 } highest_rating; - // ACHIEVEMENT_CRITERIA_TYPE_LOOT_TYPE = 109 struct { uint32 lootType; // 3 3=fishing, 2=pickpocket, 4=disentchant uint32 lootTypeCount; // 4 } loot_type; - // ACHIEVEMENT_CRITERIA_TYPE_LEARN_SKILL_LINE = 112 struct { uint32 skillLine; // 3 uint32 spellCount; // 4 } learn_skill_line; - // ACHIEVEMENT_CRITERIA_TYPE_EARN_HONORABLE_KILL = 113 struct { uint32 unused; // 3 uint32 killCount; // 4 } honorable_kill; - struct { uint32 field3; // 3 main requirement @@ -499,7 +435,6 @@ struct AchievementCriteriaEntry uint32 timeLimit; // 29 time limit in seconds //uint32 showOrder; // 30 show order }; - struct AreaTableEntry { uint32 ID; // 0 @@ -512,7 +447,6 @@ struct AreaTableEntry char* area_name[16]; // 11-26 // 27, string flags, unused uint32 team; // 28 - // helpers bool IsSanctuary() const { @@ -521,14 +455,12 @@ struct AreaTableEntry return (flags & AREA_FLAG_SANCTUARY); } }; - struct AreaGroupEntry { uint32 AreaGroupId; // 0 uint32 AreaId[6]; // 1-6 uint32 nextGroup; // 7 index of next group }; - struct AreaPOIEntry { uint32 id; //0 @@ -546,7 +478,6 @@ struct AreaPOIEntry uint32 worldState; //52 //uint32 val2; //53 }; - struct AreaTriggerEntry { uint32 id; // 0 m_ID @@ -560,7 +491,6 @@ struct AreaTriggerEntry float box_z; // 8 m_box_heigh float box_orientation; // 9 m_box_yaw }; - struct AuctionHouseEntry { uint32 houseId; // 0 index @@ -570,13 +500,11 @@ struct AuctionHouseEntry //char* name[16]; // 4-19 // 20 string flag, unused }; - struct BankBagSlotPricesEntry { uint32 ID; uint32 price; }; - struct BarberShopStyleEntry { uint32 Id; // 0 @@ -590,7 +518,6 @@ struct BarberShopStyleEntry uint32 gender; // 38 0 -> male, 1 -> female uint32 hair_id; // 39 real ID to hair/facial hair }; - struct BattlemasterListEntry { uint32 id; // 0 @@ -607,9 +534,7 @@ struct BattlemasterListEntry // 33 unused //uint32 unk; // 34 new 3.1 }; - #define MAX_OUTFIT_ITEMS 24 - struct CharStartOutfitEntry { //uint32 Id; // 0 @@ -621,7 +546,6 @@ struct CharStartOutfitEntry //uint32 Unknown2; // 39 //uint32 Unknown3; // 40 }; - struct CharTitlesEntry { uint32 ID; // 0, title ids, for example in Quest::GetCharTitleId() @@ -632,7 +556,6 @@ struct CharTitlesEntry // 35 string flag, unused uint32 bit_index; // 36 used in PLAYER_CHOSEN_TITLE and 1<<index in PLAYER__FIELD_KNOWN_TITLES }; - struct ChatChannelsEntry { uint32 ChannelID; // 0 @@ -642,7 +565,6 @@ struct ChatChannelsEntry //char* name[16]; // 20-35 unused // 36 string flag, unused }; - struct ChrClassesEntry { uint32 ClassID; // 0 @@ -661,7 +583,6 @@ struct ChrClassesEntry uint32 CinematicSequence; // 58 id from CinematicSequences.dbc uint32 addon; // 59 (0 - original race, 1 - tbc addon, ...) }; - struct ChrRacesEntry { uint32 RaceID; // 0 @@ -683,7 +604,6 @@ struct ChrRacesEntry // 65-67 unused uint32 addon; // 68 (0 - original race, 1 - tbc addon, ...) }; - /* not used struct CinematicCameraEntry { @@ -696,7 +616,6 @@ struct CinematicCameraEntry float unk6; // 6 speed? }; */ - struct CinematicSequencesEntry { uint32 Id; // 0 index @@ -704,7 +623,6 @@ struct CinematicSequencesEntry //uint32 cinematicCamera; // 2 id in CinematicCamera.dbc // 3-9 always 0 }; - struct CreatureDisplayInfoEntry { uint32 Displayid; // 0 m_ID @@ -722,7 +640,6 @@ struct CreatureDisplayInfoEntry // 14 m_creatureGeosetData // 15 m_objectEffectPackageID }; - struct CreatureFamilyEntry { uint32 ID; // 0 m_ID @@ -738,16 +655,13 @@ struct CreatureFamilyEntry // 26 string flags // 27 m_iconFile }; - #define MAX_CREATURE_SPELL_DATA_SLOT 4 - struct CreatureSpellDataEntry { uint32 ID; // 0 m_ID uint32 spellId[MAX_CREATURE_SPELL_DATA_SLOT]; // 1-4 m_spells[4] //uint32 availability[MAX_CREATURE_SPELL_DATA_SLOT]; // 4-7 m_availability[4] }; - struct CreatureTypeEntry { uint32 ID; // 0 m_ID @@ -755,7 +669,6 @@ struct CreatureTypeEntry // 17 string flags //uint32 no_expirience; // 18 no exp? critters, non-combat pets, gas cloud. }; - /* not used struct CurrencyCategoryEntry { @@ -765,7 +678,6 @@ struct CurrencyCategoryEntry // // 18 string flags }; */ - struct CurrencyTypesEntry { //uint32 ID; // 0 not used @@ -773,19 +685,16 @@ struct CurrencyTypesEntry //uint32 Category; // 2 may be category uint32 BitIndex; // 3 bit index in PLAYER_FIELD_KNOWN_CURRENCIES (1 << (index-1)) }; - struct DurabilityCostsEntry { uint32 Itemlvl; // 0 uint32 multiplier[29]; // 1-29 }; - struct DurabilityQualityEntry { uint32 Id; // 0 float quality_mod; // 1 }; - struct EmotesEntry { uint32 Id; // 0 @@ -796,13 +705,11 @@ struct EmotesEntry uint32 UnitStandState; // 5, uncomfirmed, may be enum UnitStandStateType //uint32 SoundId; // 6, ref to soundEntries }; - struct EmotesTextEntry { uint32 Id; uint32 textid; }; - struct FactionEntry { uint32 ID; // 0 m_ID @@ -817,7 +724,6 @@ struct FactionEntry //char* description[16]; // 36-51 m_description_lang // 52 string flags }; - struct FactionTemplateEntry { uint32 ID; // 0 m_ID @@ -829,7 +735,6 @@ struct FactionTemplateEntry uint32 enemyFaction[4]; // 6 m_enemies[4] uint32 friendFaction[4]; // 10 m_friend[4] //------------------------------------------------------- end structure - // helpers bool IsFriendlyTo(FactionTemplateEntry const& entry) const { @@ -871,7 +776,6 @@ struct FactionTemplateEntry } bool IsContestedGuardFaction() const { return (factionFlags & FACTION_TEMPLATE_FLAG_CONTESTED_GUARD)!=0; } }; - struct GameObjectDisplayInfoEntry { uint32 Displayid; // 0 m_ID @@ -885,14 +789,12 @@ struct GameObjectDisplayInfoEntry float maxZ; //uint32 transport; //18 }; - struct GemPropertiesEntry { uint32 ID; uint32 spellitemenchantement; uint32 color; }; - struct GlyphPropertiesEntry { uint32 Id; @@ -900,67 +802,54 @@ struct GlyphPropertiesEntry uint32 TypeFlags; uint32 Unk1; // GlyphIconId (SpellIcon.dbc) }; - struct GlyphSlotEntry { uint32 Id; uint32 TypeFlags; uint32 Order; }; - // All Gt* DBC store data for 100 levels, some by 100 per class/race #define GT_MAX_LEVEL 100 - struct GtBarberShopCostBaseEntry { float cost; }; - struct GtCombatRatingsEntry { float ratio; }; - struct GtChanceToMeleeCritBaseEntry { float base; }; - struct GtChanceToMeleeCritEntry { float ratio; }; - struct GtChanceToSpellCritBaseEntry { float base; }; - struct GtChanceToSpellCritEntry { float ratio; }; - struct GtOCTRegenHPEntry { float ratio; }; - //struct GtOCTRegenMPEntry //{ // float ratio; //}; - struct GtRegenHPPerSptEntry { float ratio; }; - struct GtRegenMPPerSptEntry { float ratio; }; - /* no used struct HolidayDescriptionsEntry { @@ -969,7 +858,6 @@ struct HolidayDescriptionsEntry // 17 name flags }; */ - /* no used struct HolidayNamesEntry { @@ -978,7 +866,6 @@ struct HolidayNamesEntry // 17 name flags }; */ - struct HolidaysEntry { uint32 ID; // 0, holiday id @@ -995,7 +882,6 @@ struct HolidaysEntry //uint32 unk53; // 53 //uint32 unk54; // 54 }; - struct ItemEntry { uint32 ID; // 0 @@ -1007,14 +893,12 @@ struct ItemEntry uint32 InventoryType; // 6 uint32 Sheath; // 7 }; - struct ItemBagFamilyEntry { uint32 ID; // 0 //char* name[16] // 1-16 m_name_lang // // 17 name flags }; - struct ItemDisplayInfoEntry { uint32 ID; // 0 m_ID @@ -1030,7 +914,6 @@ struct ItemDisplayInfoEntry // 10 m_itemVisual[8] // 11 m_particleColorID }; - //struct ItemCondExtCostsEntry //{ // uint32 ID; @@ -1038,7 +921,6 @@ struct ItemDisplayInfoEntry // uint32 itemextendedcostentry; // ItemPrototype::ExtendedCost // uint32 arenaseason; // arena season number(1-4) //}; - struct ItemExtendedCostEntry { uint32 ID; // 0 extended-cost entry id @@ -1048,7 +930,6 @@ struct ItemExtendedCostEntry uint32 reqitemcount[5]; // 8-12 required count of 1st item uint32 reqpersonalarenarating; // 13 required personal arena rating }; - struct ItemLimitCategoryEntry { uint32 ID; // 0 Id @@ -1057,7 +938,6 @@ struct ItemLimitCategoryEntry uint32 maxCount; // 18, max allowed equipped as item or in gem slot //uint32 unk; // 19, 1 for gems only... }; - struct ItemRandomPropertiesEntry { uint32 ID; // 0 m_ID @@ -1066,7 +946,6 @@ struct ItemRandomPropertiesEntry //char* nameSuffix[16] // 7-22 m_name_lang // 23 name flags }; - struct ItemRandomSuffixEntry { uint32 ID; // 0 m_ID @@ -1076,7 +955,6 @@ struct ItemRandomSuffixEntry uint32 enchant_id[5]; // 19-21 m_enchantment uint32 prefix[5]; // 22-24 m_allocationPct }; - struct ItemSetEntry { //uint32 id // 0 m_ID @@ -1088,9 +966,7 @@ struct ItemSetEntry uint32 required_skill_id; // 51 m_requiredSkill uint32 required_skill_value; // 52 m_requiredSkillRank }; - #define MAX_LOCK_CASE 8 - struct LockEntry { uint32 ID; // 0 m_ID @@ -1099,7 +975,6 @@ struct LockEntry uint32 Skill[MAX_LOCK_CASE]; // 17-24 m_Skill //uint32 Action[MAX_LOCK_CASE]; // 25-32 m_Action }; - struct MailTemplateEntry { uint32 ID; // 0 @@ -1107,7 +982,6 @@ struct MailTemplateEntry // 17 name flags, unused //char* content[16]; // 18-33 }; - struct MapEntry { uint32 MapID; // 0 @@ -1138,10 +1012,8 @@ struct MapEntry // 115 -1, 0 and 720 uint32 addon; // 116 (0-original maps,1-tbc addon) // 117 some kind of time? - // Helpers uint32 Expansion() const { return addon; } - bool IsDungeon() const { return map_type == MAP_INSTANCE || map_type == MAP_RAID; } bool IsNonRaidDungeon() const { return map_type == MAP_INSTANCE; } bool Instanceable() const { return map_type == MAP_INSTANCE || map_type == MAP_RAID || map_type == MAP_BATTLEGROUND || map_type == MAP_ARENA; } @@ -1151,7 +1023,6 @@ struct MapEntry bool IsBattleGroundOrArena() const { return map_type == MAP_BATTLEGROUND || map_type == MAP_ARENA; } bool SupportsHeroicMode() const { return resetTimeHeroic != 0; } bool HasResetTime() const { return resetTimeHeroic || resetTimeRaid; } - bool IsMountAllowed() const { return !IsDungeon() || @@ -1160,27 +1031,23 @@ struct MapEntry MapID==568 || MapID==580 || MapID==615 || // ZulAman, Sunwell Plateau, Obsidian Sanctrum MapID==616; // Eye Of Eternity } - bool IsContinent() const { return MapID == 0 || MapID == 1 || MapID == 530 || MapID == 571; } }; - struct MovieEntry { uint32 Id; // 0 index //char* filename; // 1 //uint32 unk2; // 2 always 100 }; - struct QuestSortEntry { uint32 id; // 0 m_ID //char* name[16]; // 1-16 m_SortName_lang // 17 name flags }; - struct RandomPropertiesPointsEntry { //uint32 Id; // 0 hidden key @@ -1189,7 +1056,6 @@ struct RandomPropertiesPointsEntry uint32 RarePropertiesPoints[5]; // 7-11 uint32 UncommonPropertiesPoints[5]; // 12-16 }; - struct ScalingStatDistributionEntry { uint32 Id; @@ -1197,7 +1063,6 @@ struct ScalingStatDistributionEntry uint32 Modifier[10]; uint32 MaxLevel; }; - struct ScalingStatValuesEntry { uint32 Id; @@ -1207,7 +1072,6 @@ struct ScalingStatValuesEntry uint32 dpsMod[6]; // DPS mod for level uint32 spellBonus; // not sure.. TODO: need more info about uint32 feralBonus; // Feral AP bonus - uint32 getssdMultiplier(uint32 mask) const { if (mask&0x001F) @@ -1255,14 +1119,12 @@ struct ScalingStatValuesEntry return 0; } }; - //struct SkillLineCategoryEntry{ // uint32 id; // 0 m_ID // char* name[16]; // 1-17 m_name_lang // // 18 string flag // uint32 displayOrder; // 19 m_sortIndex //}; - //struct SkillRaceClassInfoEntry{ // uint32 id; // 0 m_ID // uint32 skillId; // 1 m_skillID @@ -1273,13 +1135,11 @@ struct ScalingStatValuesEntry // uint32 skillTierId; // 6 m_skillTierID // uint32 skillCostID; // 7 m_skillCostIndex //}; - //struct SkillTiersEntry{ // uint32 id; // 0 m_ID // uint32 skillValue[16]; // 1-17 m_cost // uint32 maxSkillValue[16]; // 18-32 m_valueMax //}; - struct SkillLineEntry { uint32 id; // 0 m_ID @@ -1294,7 +1154,6 @@ struct SkillLineEntry // 54 string flags uint32 canLink; // 55 m_canLink (prof. with recipes }; - struct SkillLineAbilityEntry { uint32 id; // 0 m_ID @@ -1311,7 +1170,6 @@ struct SkillLineAbilityEntry uint32 min_value; // 11 m_trivialSkillLineRankLow //uint32 characterPoints[2]; // 12-13 m_characterPoints[2] }; - struct SoundEntriesEntry { uint32 Id; // 0 m_ID @@ -1327,9 +1185,7 @@ struct SoundEntriesEntry // 28 m_EAXDef // 29 new in 3.1 }; - #define MAX_SPELL_EFFECTS 3 - struct SpellEntry { uint32 Id; // 0 m_ID @@ -1437,20 +1293,16 @@ struct SpellEntry uint32 runeCostID; // 229 m_runeCostID //uint32 spellMissileID; // 230 m_spellMissileID not used //uint32 PowerDisplayId; // 231 PowerDisplay.dbc, new in 3.1 - // helpers int32 CalculateSimpleValue(uint8 eff) const { return EffectBasePoints[eff]+int32(EffectBaseDice[eff]); } - private: // prevent creating custom entries (copy data from original in fact) SpellEntry(SpellEntry const&); // DON'T must have implementation }; - typedef std::set<uint32> SpellCategorySet; typedef std::map<uint32,SpellCategorySet > SpellCategoryStore; typedef std::set<uint32> PetFamilySpellsSet; typedef std::map<uint32,PetFamilySpellsSet > PetFamilySpellsStore; - struct SpellCastTimesEntry { uint32 ID; // 0 @@ -1458,14 +1310,12 @@ struct SpellCastTimesEntry //float CastTimePerLevel; // 2 unsure / per skill? //int32 MinCastTime; // 3 unsure }; - struct SpellFocusObjectEntry { uint32 ID; // 0 //char* Name[16]; // 1-15 unused // 16 string flags, unused }; - struct SpellRadiusEntry { uint32 ID; @@ -1473,7 +1323,6 @@ struct SpellRadiusEntry //uint32 Unk //always 0 float radiusFriend; }; - struct SpellRangeEntry { uint32 ID; @@ -1487,19 +1336,15 @@ struct SpellRangeEntry //char* Name2[16]; // 25-40 unused // 41 string flags, unused }; - struct SpellRuneCostEntry { uint32 ID; // 0 uint32 RuneCost[3]; // 1-3 (0=blood, 1=frost, 2=unholy) uint32 runePowerGain; // 4 - bool NoRuneCost() const { return RuneCost[0] == 0 && RuneCost[1] == 0 && RuneCost[2] == 0; } bool NoRunicPowerGain() const { return runePowerGain == 0; } }; - #define MAX_SHAPESHIFT_SPELLS 8 - struct SpellShapeshiftEntry { uint32 ID; // 0 @@ -1516,13 +1361,11 @@ struct SpellShapeshiftEntry //uint32 unk4; // 26 unused uint32 stanceSpell[MAX_SHAPESHIFT_SPELLS]; // 27 - 34 unused }; - struct SpellDurationEntry { uint32 ID; int32 Duration[3]; }; - struct SpellItemEnchantmentEntry { uint32 ID; // 0 m_ID @@ -1541,7 +1384,6 @@ struct SpellItemEnchantmentEntry //uint32 requiredSkillValue; // 36 m_requiredSkillRank // 37 new in 3.1 }; - struct SpellItemEnchantmentConditionEntry { uint32 ID; // 0 m_ID @@ -1552,13 +1394,11 @@ struct SpellItemEnchantmentConditionEntry uint32 Value[5]; // 21-25 m_rt_operand[5] //uint8 Logic[5] // 25-30 m_logic[5] }; - struct StableSlotPricesEntry { uint32 Slot; uint32 Price; }; - struct SummonPropertiesEntry { uint32 Id; // 0 @@ -1568,10 +1408,8 @@ struct SummonPropertiesEntry uint32 Slot; // 4, 0-6 uint32 Flags; // 5 }; - #define MAX_TALENT_RANK 5 #define MAX_PET_TALENT_RANK 3 // use in calculations, expected <= MAX_TALENT_RANK - struct TalentEntry { uint32 TalentID; // 0 @@ -1588,7 +1426,6 @@ struct TalentEntry //uint32 unk2; // 20, all 0 //uint64 allowForPet; // 21 its a 64 bit mask for pet 1<<m_categoryEnumID in CreatureFamily.dbc }; - struct TalentTabEntry { uint32 TalentTabID; // 0 @@ -1601,7 +1438,6 @@ struct TalentTabEntry uint32 tabpage; // 22 //char* internalname; // 23 }; - struct TaxiNodesEntry { uint32 ID; // 0 m_ID @@ -1613,7 +1449,6 @@ struct TaxiNodesEntry // 22 string flags uint32 MountCreatureID[2]; // 23-24 m_MountCreatureID[2] }; - struct TaxiPathEntry { uint32 ID; // 0 m_ID @@ -1621,7 +1456,6 @@ struct TaxiPathEntry uint32 to; // 2 m_ToTaxiNode uint32 price; // 3 m_Cost }; - struct TaxiPathNodeEntry { // 0 m_ID @@ -1636,7 +1470,6 @@ struct TaxiPathNodeEntry // 9 m_arrivalEventID // 10 m_departureEventID }; - struct TotemCategoryEntry { uint32 ID; // 0 @@ -1645,7 +1478,6 @@ struct TotemCategoryEntry uint32 categoryType; // 18 (one for specialization) uint32 categoryMask; // 19 (compatibility mask for same type: different for totems, compatible from high to low for rods) }; - struct VehicleEntry { uint32 m_ID; // 0 @@ -1682,7 +1514,6 @@ struct VehicleEntry // 38, new in 3.1 // 39, new in 3.1 }; - struct VehicleSeatEntry { uint32 m_ID; // 0 @@ -1732,10 +1563,8 @@ struct VehicleSeatEntry int32 m_uiSkin; // 44 uint32 m_flagsB; // 45 // 46-57 added in 3.1, floats mostly - bool IsUsable() const { return m_flags & 0x2000000; } }; - struct WorldMapAreaEntry { //uint32 ID; // 0 @@ -1749,9 +1578,7 @@ struct WorldMapAreaEntry int32 virtual_map_id; // 8 -1 (map_id have correct map) other: virtual map where zone show (map_id - where zone in fact internally) // int32 dungeonMap_id; // 9 pointer to DungeonMap.dbc (owerride x1,x2,y1,y2 coordinates) }; - #define MAX_WORLD_MAP_OVERLAY_AREA_IDX 4 - struct WorldMapOverlayEntry { uint32 ID; // 0 @@ -1761,7 +1588,6 @@ struct WorldMapOverlayEntry //char* internal_name // 8 // 9-16 some ints }; - struct WorldSafeLocsEntry { uint32 ID; // 0 @@ -1772,42 +1598,34 @@ struct WorldSafeLocsEntry //char* name[16] // 5-20 name, unused // 21 name flags, unused }; - // GCC have alternative #pragma pack() syntax and old gcc version not support pack(pop), also any gcc version not support it at some platform #if defined( __GNUC__ ) #pragma pack() #else #pragma pack(pop) #endif - // Structures not used for casting to loaded DBC data and not required then packing struct TalentSpellPos { TalentSpellPos() : talent_id(0), rank(0) {} TalentSpellPos(uint16 _talent_id, uint8 _rank) : talent_id(_talent_id), rank(_rank) {} - uint16 talent_id; uint8 rank; }; - typedef std::map<uint32,TalentSpellPos> TalentSpellPosMap; - struct TaxiPathBySourceAndDestination { TaxiPathBySourceAndDestination() : ID(0),price(0) {} TaxiPathBySourceAndDestination(uint32 _id,uint32 _price) : ID(_id),price(_price) {} - uint32 ID; uint32 price; }; typedef std::map<uint32,TaxiPathBySourceAndDestination> TaxiPathSetForSource; typedef std::map<uint32,TaxiPathSetForSource> TaxiPathSetBySource; - struct TaxiPathNode { TaxiPathNode() : mapid(0), x(0),y(0),z(0),actionFlag(0),delay(0) {} TaxiPathNode(uint32 _mapid, float _x, float _y, float _z, uint32 _actionFlag, uint32 _delay) : mapid(_mapid), x(_x),y(_y),z(_z),actionFlag(_actionFlag),delay(_delay) {} - uint32 mapid; float x; float y; @@ -1817,7 +1635,6 @@ struct TaxiPathNode }; typedef std::vector<TaxiPathNode> TaxiPathNodeList; typedef std::vector<TaxiPathNodeList> TaxiPathNodesByPath; - #define TaxiMaskSize 12 typedef uint32 TaxiMask[TaxiMaskSize]; #endif |