diff options
| author | Shauren <shauren.trinity@gmail.com> | 2017-04-17 00:03:44 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2017-04-17 00:03:44 +0200 |
| commit | 0b9548a1cc429a336481edaf0b447d86aeb15c9b (patch) | |
| tree | 636deb1563fc9e23891fe4444248eec68103c3ab /src/server/game/Entities | |
| parent | 7e8583ee8146d2a28d332d515df28a39a2911c01 (diff) | |
Core: Updated GameTables to 7.2.0
Tools/Extractors: Updated to 7.2.0
Tools/ConnectionPatcher: Updated patterns to 7.2.0
Supported version is now 7.2.0.23911
Diffstat (limited to 'src/server/game/Entities')
| -rw-r--r-- | src/server/game/Entities/Item/Item.cpp | 10 | ||||
| -rw-r--r-- | src/server/game/Entities/Player/CinematicMgr.cpp | 27 | ||||
| -rw-r--r-- | src/server/game/Entities/Player/CinematicMgr.h | 6 |
3 files changed, 21 insertions, 22 deletions
diff --git a/src/server/game/Entities/Item/Item.cpp b/src/server/game/Entities/Item/Item.cpp index 58be06c21bf..407b0f4bf51 100644 --- a/src/server/game/Entities/Item/Item.cpp +++ b/src/server/game/Entities/Item/Item.cpp @@ -2417,13 +2417,15 @@ void Item::GiveArtifactXp(uint64 amount, Item* sourceItem, uint32 artifactCatego { if (ArtifactCategoryEntry const* artifactCategory = sArtifactCategoryStore.LookupEntry(artifactCategoryId)) { - uint32 artifactKnowledgeLevel = 0; + uint32 artifactKnowledgeLevel = 1; if (sourceItem && sourceItem->GetModifier(ITEM_MODIFIER_ARTIFACT_KNOWLEDGE_LEVEL)) - artifactKnowledgeLevel = sourceItem->GetModifier(ITEM_MODIFIER_ARTIFACT_KNOWLEDGE_LEVEL) - 1; + artifactKnowledgeLevel = sourceItem->GetModifier(ITEM_MODIFIER_ARTIFACT_KNOWLEDGE_LEVEL); else - artifactKnowledgeLevel = owner->GetCurrency(artifactCategory->ArtifactKnowledgeCurrencyID); + artifactKnowledgeLevel = owner->GetCurrency(artifactCategory->ArtifactKnowledgeCurrencyID) + 1; + + if (GtArtifactKnowledgeMultiplierEntry const* artifactKnowledge = sArtifactKnowledgeMultiplierGameTable.GetRow(artifactKnowledgeLevel)) + amount = uint64(amount * artifactKnowledge->Multiplier); - amount = uint64(amount * sDB2Manager.GetCurveValueAt(artifactCategory->ArtifactKnowledgeMultiplierCurveID, artifactKnowledgeLevel)); if (amount >= 5000) amount = 50 * (amount / 50); else if (amount >= 1000) diff --git a/src/server/game/Entities/Player/CinematicMgr.cpp b/src/server/game/Entities/Player/CinematicMgr.cpp index f0da551c43b..cbb7d933e99 100644 --- a/src/server/game/Entities/Player/CinematicMgr.cpp +++ b/src/server/game/Entities/Player/CinematicMgr.cpp @@ -17,6 +17,7 @@ #include "CinematicMgr.h" #include "Creature.h" +#include "M2Stores.h" #include "Player.h" #include "TemporarySummon.h" @@ -44,21 +45,21 @@ void CinematicMgr::BeginCinematic() if (m_activeCinematicCameraId == 0) return; - auto itr = sFlyByCameraStore.find(m_activeCinematicCameraId); - if (itr != sFlyByCameraStore.end()) + if (std::vector<FlyByCamera> const* flyByCameras = GetFlyByCameras(m_activeCinematicCameraId)) { // Initialize diff, and set camera m_cinematicDiff = 0; - m_cinematicCamera = &itr->second; + m_cinematicCamera = flyByCameras; - FlyByCameraCollection::const_iterator camitr = m_cinematicCamera->begin(); - if (camitr != m_cinematicCamera->end()) + auto camitr = m_cinematicCamera->begin(); + if (!m_cinematicCamera->empty()) { - Position pos(camitr->locations.x, camitr->locations.y, camitr->locations.z, camitr->locations.w); + FlyByCamera const& firstCamera = m_cinematicCamera->front(); + Position pos(firstCamera.locations.x, firstCamera.locations.y, firstCamera.locations.z, firstCamera.locations.w); if (!pos.IsPositionValid()) return; - player->GetMap()->LoadGrid(camitr->locations.x, camitr->locations.y); + player->GetMap()->LoadGrid(firstCamera.locations.x, firstCamera.locations.y); m_CinematicObject = player->SummonCreature(VISUAL_WAYPOINT, pos.m_positionX, pos.m_positionY, pos.m_positionZ, 0.0f, TEMPSUMMON_TIMED_DESPAWN, 5 * MINUTE * IN_MILLISECONDS); if (m_CinematicObject) { @@ -67,11 +68,7 @@ void CinematicMgr::BeginCinematic() } // Get cinematic length - FlyByCameraCollection::const_reverse_iterator camrevitr = m_cinematicCamera->rbegin(); - if (camrevitr != m_cinematicCamera->rend()) - m_cinematicLength = camrevitr->timeStamp; - else - m_cinematicLength = 0; + m_cinematicLength = m_cinematicCamera->back().timeStamp; } } } @@ -105,7 +102,7 @@ void CinematicMgr::UpdateCinematicLocation(uint32 /*diff*/) uint32 nextTimestamp = 0; // Obtain direction of travel - for (FlyByCamera cam : *m_cinematicCamera) + for (FlyByCamera const& cam : *m_cinematicCamera) { if (cam.timeStamp > m_cinematicDiff) { @@ -128,7 +125,7 @@ void CinematicMgr::UpdateCinematicLocation(uint32 /*diff*/) workDiff += static_cast<int32>(float(CINEMATIC_LOOKAHEAD) * cos(angle)); // Get an iterator to the last entry in the cameras, to make sure we don't go beyond the end - FlyByCameraCollection::const_reverse_iterator endItr = m_cinematicCamera->rbegin(); + auto endItr = m_cinematicCamera->rbegin(); if (endItr != m_cinematicCamera->rend() && workDiff > static_cast<int32>(endItr->timeStamp)) workDiff = endItr->timeStamp; @@ -137,7 +134,7 @@ void CinematicMgr::UpdateCinematicLocation(uint32 /*diff*/) workDiff = m_cinematicDiff; // Obtain the previous and next waypoint based on timestamp - for (FlyByCamera cam : *m_cinematicCamera) + for (FlyByCamera const& cam : *m_cinematicCamera) { if (static_cast<int32>(cam.timeStamp) >= workDiff) { diff --git a/src/server/game/Entities/Player/CinematicMgr.h b/src/server/game/Entities/Player/CinematicMgr.h index e27369f6bd5..2c5bcd6f883 100644 --- a/src/server/game/Entities/Player/CinematicMgr.h +++ b/src/server/game/Entities/Player/CinematicMgr.h @@ -20,12 +20,12 @@ #include "Define.h" #include "Object.h" -#include "M2Stores.h" #define CINEMATIC_LOOKAHEAD (2 * IN_MILLISECONDS) #define CINEMATIC_UPDATEDIFF 500 class Player; +struct FlyByCamera; class TC_GAME_API CinematicMgr { @@ -50,9 +50,9 @@ protected: uint32 m_lastCinematicCheck; uint32 m_activeCinematicCameraId; uint32 m_cinematicLength; - FlyByCameraCollection* m_cinematicCamera; + std::vector<FlyByCamera> const* m_cinematicCamera; Position m_remoteSightPosition; - TempSummon* m_CinematicObject; + TempSummon* m_CinematicObject; }; #endif // CinematicMgr_h__ |
