aboutsummaryrefslogtreecommitdiff
path: root/src/server/game
diff options
context:
space:
mode:
authorShinDarth <borzifrancesco@gmail.com>2014-10-18 13:05:47 +0200
committerShinDarth <borzifrancesco@gmail.com>2014-10-18 18:37:39 +0200
commite806fc8a02dbde324dd9654b0165a7cac5ae7086 (patch)
tree1eda6d5ec3adc207cbbdac6860ec20d63d7b5cb1 /src/server/game
parent2523b476190438e446f76c522efbdce329dd08bf (diff)
Core/Quest: implement Quest Tracker
Diffstat (limited to 'src/server/game')
-rw-r--r--src/server/game/Entities/Player/Player.cpp25
-rw-r--r--src/server/game/Handlers/QuestHandler.cpp11
-rw-r--r--src/server/game/World/World.cpp2
-rw-r--r--src/server/game/World/World.h1
4 files changed, 39 insertions, 0 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 74863b7e6f2..5fa10578328 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -61,6 +61,7 @@
#include "Pet.h"
#include "QuestDef.h"
#include "ReputationMgr.h"
+#include "revision.h"
#include "SkillDiscovery.h"
#include "SocialMgr.h"
#include "Spell.h"
@@ -15235,6 +15236,19 @@ void Player::AddQuest(Quest const* quest, Object* questGiver)
StartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_QUEST, quest_id);
SendQuestUpdate(quest_id);
+
+ if (sWorld->getBoolConfig(CONFIG_QUEST_ENABLE_QUEST_TRACKER)) // check if Quest Tracker is enabled
+ {
+ // prepare Quest Tracker datas
+ PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_QUEST_TRACK);
+ stmt->setUInt32(0, quest_id);
+ stmt->setUInt32(1, GetGUIDLow());
+ stmt->setString(2, _HASH);
+ stmt->setString(3, _DATE);
+
+ // add to Quest Tracker
+ CharacterDatabase.Execute(stmt);
+ }
}
void Player::CompleteQuest(uint32 quest_id)
@@ -15255,6 +15269,17 @@ void Player::CompleteQuest(uint32 quest_id)
SendQuestComplete(quest_id);
}
}
+
+ if (sWorld->getBoolConfig(CONFIG_QUEST_ENABLE_QUEST_TRACKER)) // check if Quest Tracker is enabled
+ {
+ // prepare Quest Tracker datas
+ PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_QUEST_TRACK_COMPLETE_TIME);
+ stmt->setUInt32(0, quest_id);
+ stmt->setUInt32(1, GetGUIDLow());
+
+ // add to Quest Tracker
+ CharacterDatabase.Execute(stmt);
+ }
}
void Player::IncompleteQuest(uint32 quest_id)
diff --git a/src/server/game/Handlers/QuestHandler.cpp b/src/server/game/Handlers/QuestHandler.cpp
index e4e1c9988f1..7872ac6aed6 100644
--- a/src/server/game/Handlers/QuestHandler.cpp
+++ b/src/server/game/Handlers/QuestHandler.cpp
@@ -420,6 +420,17 @@ void WorldSession::HandleQuestLogRemoveQuest(WorldPacket& recvData)
_player->RemoveTimedAchievement(ACHIEVEMENT_TIMED_TYPE_QUEST, questId);
TC_LOG_INFO("network", "Player %u abandoned quest %u", _player->GetGUIDLow(), questId);
+
+ if (sWorld->getBoolConfig(CONFIG_QUEST_ENABLE_QUEST_TRACKER)) // check if Quest Tracker is enabled
+ {
+ // prepare Quest Tracker datas
+ PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_QUEST_TRACK_ABANDON_TIME);
+ stmt->setUInt32(0, questId);
+ stmt->setUInt32(1, _player->GetGUIDLow());
+
+ // add to Quest Tracker
+ CharacterDatabase.Execute(stmt);
+ }
}
_player->SetQuestSlot(slot, 0);
diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp
index 33c5042fc8d..ae474ef29b6 100644
--- a/src/server/game/World/World.cpp
+++ b/src/server/game/World/World.cpp
@@ -963,6 +963,8 @@ void World::LoadConfigSettings(bool reload)
m_int_configs[CONFIG_WORLD_BOSS_LEVEL_DIFF] = sConfigMgr->GetIntDefault("WorldBossLevelDiff", 3);
+ m_bool_configs[CONFIG_QUEST_ENABLE_QUEST_TRACKER] = sConfigMgr->GetBoolDefault("Quests.EnableQuestTracker", false);
+
// note: disable value (-1) will assigned as 0xFFFFFFF, to prevent overflow at calculations limit it to max possible player level MAX_LEVEL(100)
m_int_configs[CONFIG_QUEST_LOW_LEVEL_HIDE_DIFF] = sConfigMgr->GetIntDefault("Quests.LowLevelHideDiff", 4);
if (m_int_configs[CONFIG_QUEST_LOW_LEVEL_HIDE_DIFF] > MAX_LEVEL)
diff --git a/src/server/game/World/World.h b/src/server/game/World/World.h
index b9c30302f4d..5c97b8f5653 100644
--- a/src/server/game/World/World.h
+++ b/src/server/game/World/World.h
@@ -149,6 +149,7 @@ enum WorldBoolConfigs
CONFIG_PDUMP_NO_OVERWRITE,
CONFIG_QUEST_IGNORE_AUTO_ACCEPT,
CONFIG_QUEST_IGNORE_AUTO_COMPLETE,
+ CONFIG_QUEST_ENABLE_QUEST_TRACKER,
CONFIG_WARDEN_ENABLED,
CONFIG_ENABLE_MMAPS,
CONFIG_WINTERGRASP_ENABLE,