diff options
author | Shauren <shauren.trinity@gmail.com> | 2020-03-10 18:43:34 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2020-03-10 18:43:34 +0100 |
commit | f30e06db8a66aef1f1589a9d2e681c1bc582bb74 (patch) | |
tree | a912b8fab7543e601c2a4deaf80b3033c02c3cb7 /src | |
parent | 4a5b09f75c364721d9a3f2da28feb7cce9a6de1e (diff) |
Core/Misc: Fixed animation issues after 8.3.0
Closes #24222
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/DataStores/DB2Stores.cpp | 7 | ||||
-rw-r--r-- | src/server/game/DataStores/DB2Stores.h | 1 | ||||
-rw-r--r-- | src/server/game/Entities/Creature/Creature.cpp | 2 | ||||
-rw-r--r-- | src/server/game/Entities/GameObject/GameObject.cpp | 2 | ||||
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 2 |
5 files changed, 11 insertions, 3 deletions
diff --git a/src/server/game/DataStores/DB2Stores.cpp b/src/server/game/DataStores/DB2Stores.cpp index 7de7f78c9a4..f1aeebd006a 100644 --- a/src/server/game/DataStores/DB2Stores.cpp +++ b/src/server/game/DataStores/DB2Stores.cpp @@ -1467,6 +1467,13 @@ std::vector<uint8> const* DB2Manager::GetHotfixBlobData(uint32 tableHash, int32 return Trinity::Containers::MapGetValuePtr(_hotfixBlob, std::make_pair(tableHash, recordId)); } +uint32 DB2Manager::GetEmptyAnimStateID() const +{ + return 1484; + // TEMP: well... AnimationData.db2 in 8.3.0 has more rows than max hardcoded anim id in client + // return sAnimationDataStore.GetNumRows(); +} + void DB2Manager::InsertNewHotfix(uint32 tableHash, uint32 recordId) { _hotfixData[++_maxHotfixId].emplace_back(tableHash, recordId); diff --git a/src/server/game/DataStores/DB2Stores.h b/src/server/game/DataStores/DB2Stores.h index 1baabb7ab18..9b02a371bae 100644 --- a/src/server/game/DataStores/DB2Stores.h +++ b/src/server/game/DataStores/DB2Stores.h @@ -269,6 +269,7 @@ public: HotfixContainer const& GetHotfixData() const; std::vector<uint8> const* GetHotfixBlobData(uint32 tableHash, int32 recordId); + uint32 GetEmptyAnimStateID() const; std::vector<uint32> GetAreasForGroup(uint32 areaGroupId) const; static bool IsInArea(uint32 objectAreaId, uint32 areaId); std::vector<ArtifactPowerEntry const*> GetArtifactPowers(uint8 artifactId) const; diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index 04239a5dad9..c86f015895f 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -523,7 +523,7 @@ bool Creature::UpdateEntry(uint32 entry, CreatureData const* data /*= nullptr*/, SetDynamicFlags(dynamicFlags); - SetUpdateFieldValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::StateAnimID), sAnimationDataStore.GetNumRows()); + SetUpdateFieldValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::StateAnimID), sDB2Manager.GetEmptyAnimStateID()); SetBaseAttackTime(BASE_ATTACK, cInfo->BaseAttackTime); SetBaseAttackTime(OFF_ATTACK, cInfo->BaseAttackTime); diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp index aff0353d479..80312590101 100644 --- a/src/server/game/Entities/GameObject/GameObject.cpp +++ b/src/server/game/Entities/GameObject/GameObject.cpp @@ -340,7 +340,7 @@ bool GameObject::Create(uint32 entry, Map* map, Position const& pos, QuaternionD SetGoState(goState); SetGoArtKit(artKit); - SetUpdateFieldValue(m_values.ModifyValue(&GameObject::m_gameObjectData).ModifyValue(&UF::GameObjectData::SpawnTrackingStateAnimID), sAnimationDataStore.GetNumRows()); + SetUpdateFieldValue(m_values.ModifyValue(&GameObject::m_gameObjectData).ModifyValue(&UF::GameObjectData::SpawnTrackingStateAnimID), sDB2Manager.GetEmptyAnimStateID()); switch (goInfo->type) { diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index f77044efab9..a820218f6ed 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -22611,7 +22611,7 @@ void Player::InitDisplayIds() TC_LOG_ERROR("entities.player", "Player::InitDisplayIds: Player '%s' (%s) has invalid gender %u", GetName().c_str(), GetGUID().ToString().c_str(), gender); } - SetUpdateFieldValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::StateAnimID), sAnimationDataStore.GetNumRows()); + SetUpdateFieldValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::StateAnimID), sDB2Manager.GetEmptyAnimStateID()); } inline bool Player::_StoreOrEquipNewItem(uint32 vendorslot, uint32 item, uint8 count, uint8 bag, uint8 slot, int64 price, ItemTemplate const* pProto, Creature* pVendor, VendorItem const* crItem, bool bStore) |