mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-23 10:26:28 +01:00
Core/DataStores: Load AnimKit.dbc to validate anim kit usage
This commit is contained in:
@@ -60,6 +60,7 @@ static AreaFlagByMapID sAreaFlagByMapID; // for instances wit
|
||||
static WMOAreaInfoByTripple sWMOAreaInfoByTripple;
|
||||
|
||||
DBCStorage <AchievementEntry> sAchievementStore(Achievementfmt);
|
||||
DBCStorage <AnimKitEntry> sAnimKitStore(AnimKitfmt);
|
||||
DBCStorage <AreaTriggerEntry> sAreaTriggerStore(AreaTriggerEntryfmt);
|
||||
DBCStorage <ArmorLocationEntry> sArmorLocationStore(ArmorLocationfmt);
|
||||
DBCStorage <AuctionHouseEntry> sAuctionHouseStore(AuctionHouseEntryfmt);
|
||||
@@ -369,6 +370,7 @@ void LoadDBCStores(const std::string& dataPath)
|
||||
}
|
||||
|
||||
LoadDBC(availableDbcLocales, bad_dbc_files, sAchievementStore, dbcPath, "Achievement.dbc"/*, &CustomAchievementfmt, &CustomAchievementIndex*/);//19116
|
||||
LoadDBC(availableDbcLocales, bad_dbc_files, sAnimKitStore, dbcPath, "AnimKit.dbc");//19865
|
||||
LoadDBC(availableDbcLocales, bad_dbc_files, sAreaTriggerStore, dbcPath, "AreaTrigger.dbc");//19116
|
||||
LoadDBC(availableDbcLocales, bad_dbc_files, sAuctionHouseStore, dbcPath, "AuctionHouse.dbc");//19116
|
||||
LoadDBC(availableDbcLocales, bad_dbc_files, sArmorLocationStore, dbcPath, "ArmorLocation.dbc");//19116
|
||||
|
||||
@@ -123,6 +123,7 @@ private:
|
||||
};
|
||||
|
||||
extern DBCStorage <AchievementEntry> sAchievementStore;
|
||||
extern DBCStorage <AnimKitEntry> sAnimKitStore;
|
||||
extern DBCStorage <AreaTableEntry> sAreaStore;// recommend access using functions
|
||||
extern DBCStorage <AreaTriggerEntry> sAreaTriggerStore;
|
||||
extern DBCStorage <ArmorLocationEntry> sArmorLocationStore;
|
||||
|
||||
@@ -50,12 +50,12 @@ struct AchievementEntry
|
||||
uint32 CriteriaTree; // 14
|
||||
};
|
||||
|
||||
struct AchievementCategoryEntry
|
||||
struct AnimKitEntry
|
||||
{
|
||||
uint32 ID; // 0
|
||||
uint32 Parent; // 1 -1 for main category
|
||||
//char* Name_lang; // 2
|
||||
//uint32 UIOrder; // 3
|
||||
//uint32 OneShotDuration; // 1
|
||||
//uint32 OneShotStopAnimKitID; // 2
|
||||
//uint32 LowDefAnimKitID; // 3
|
||||
};
|
||||
|
||||
// Temporary define until max depth is found somewhere (adt?)
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
char const Achievementfmt[] = "niixsxiixixxiii";
|
||||
const std::string CustomAchievementfmt = "pppaaaapapaapp";
|
||||
const std::string CustomAchievementIndex = "ID";
|
||||
char const AnimKitfmt[] = "nxxx";
|
||||
char const AreaTableEntryfmt[] = "iiiniixxxxxxisiiiiixxxxxxxxxx";
|
||||
char const AreaTriggerEntryfmt[] = "nifffxxxfffffxxxx";
|
||||
char const ArmorLocationfmt[] = "nfffff";
|
||||
|
||||
@@ -3107,6 +3107,9 @@ void WorldObject::SetAIAnimKitId(uint16 animKitId)
|
||||
if (m_aiAnimKitId == animKitId)
|
||||
return;
|
||||
|
||||
if (animKitId && !sAnimKitStore.LookupEntry(animKitId))
|
||||
return;
|
||||
|
||||
m_aiAnimKitId = animKitId;
|
||||
|
||||
WorldPacket data(SMSG_SET_AI_ANIM_KIT, 8 + 2);
|
||||
@@ -3120,6 +3123,9 @@ void WorldObject::SetMovementAnimKitId(uint16 animKitId)
|
||||
if (m_movementAnimKitId == animKitId)
|
||||
return;
|
||||
|
||||
if (animKitId && !sAnimKitStore.LookupEntry(animKitId))
|
||||
return;
|
||||
|
||||
m_movementAnimKitId = animKitId;
|
||||
|
||||
WorldPacket data(SMSG_SET_MOVEMENT_ANIM_KIT, 8 + 2);
|
||||
@@ -3133,6 +3139,9 @@ void WorldObject::SetMeleeAnimKitId(uint16 animKitId)
|
||||
if (m_meleeAnimKitId == animKitId)
|
||||
return;
|
||||
|
||||
if (animKitId && !sAnimKitStore.LookupEntry(animKitId))
|
||||
return;
|
||||
|
||||
m_meleeAnimKitId = animKitId;
|
||||
|
||||
WorldPacket data(SMSG_SET_MELEE_ANIM_KIT, 8 + 2);
|
||||
|
||||
Reference in New Issue
Block a user