aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2017-04-17 00:03:44 +0200
committerShauren <shauren.trinity@gmail.com>2017-04-17 00:03:44 +0200
commit0b9548a1cc429a336481edaf0b447d86aeb15c9b (patch)
tree636deb1563fc9e23891fe4444248eec68103c3ab /src/server/game/Entities
parent7e8583ee8146d2a28d332d515df28a39a2911c01 (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.cpp10
-rw-r--r--src/server/game/Entities/Player/CinematicMgr.cpp27
-rw-r--r--src/server/game/Entities/Player/CinematicMgr.h6
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__