diff options
| -rw-r--r-- | src/server/game/DataStores/DBCStores.cpp | 2 | ||||
| -rw-r--r-- | src/server/game/DataStores/DBCStores.h | 1 | ||||
| -rw-r--r-- | src/server/game/DataStores/DBCStructure.h | 8 | ||||
| -rw-r--r-- | src/server/game/DataStores/DBCfmt.h | 1 | ||||
| -rw-r--r-- | src/server/game/Entities/Object/Object.cpp | 9 | 
5 files changed, 17 insertions, 4 deletions
diff --git a/src/server/game/DataStores/DBCStores.cpp b/src/server/game/DataStores/DBCStores.cpp index e1f0c595b5f..9789574c23d 100644 --- a/src/server/game/DataStores/DBCStores.cpp +++ b/src/server/game/DataStores/DBCStores.cpp @@ -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 diff --git a/src/server/game/DataStores/DBCStores.h b/src/server/game/DataStores/DBCStores.h index 72c0c35f1cb..286c4d5e6c3 100644 --- a/src/server/game/DataStores/DBCStores.h +++ b/src/server/game/DataStores/DBCStores.h @@ -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; diff --git a/src/server/game/DataStores/DBCStructure.h b/src/server/game/DataStores/DBCStructure.h index 8c338f0cd1a..f8f140ff02b 100644 --- a/src/server/game/DataStores/DBCStructure.h +++ b/src/server/game/DataStores/DBCStructure.h @@ -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?) diff --git a/src/server/game/DataStores/DBCfmt.h b/src/server/game/DataStores/DBCfmt.h index e3b474bc27b..a67ec26ed7c 100644 --- a/src/server/game/DataStores/DBCfmt.h +++ b/src/server/game/DataStores/DBCfmt.h @@ -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"; diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp index f30d8af21b4..655af613220 100644 --- a/src/server/game/Entities/Object/Object.cpp +++ b/src/server/game/Entities/Object/Object.cpp @@ -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);  | 
