diff options
author | ariel- <ariel-@users.noreply.github.com> | 2017-03-16 01:27:13 -0300 |
---|---|---|
committer | funjoker <funjoker109@gmail.com> | 2020-04-24 17:18:48 +0200 |
commit | c03373c59fd4103096936a19d8dd668959620a29 (patch) | |
tree | b7644162a566fd40b81e0a79b2f82e9deead0d0d | |
parent | feb8205d6a78549b60ac8c0c2e394fdcb8e33cc8 (diff) |
Core/Quests: changed quest_template_addon.NextQuestID to unsigned
- No reason to keep this anymore after 4349adf0f25210e5b26201523a09bc26b4a83394, this is a broken functionality.
(cherry picked from commit dca276716fecb819fec668f59954113a77f9e393)
-rw-r--r-- | sql/updates/world/master/2020_04_14_01_world_2017_03_16_02_world.sql | 5 | ||||
-rw-r--r-- | src/server/game/Globals/ObjectMgr.cpp | 9 | ||||
-rw-r--r-- | src/server/game/Quests/QuestDef.cpp | 2 | ||||
-rw-r--r-- | src/server/game/Quests/QuestDef.h | 4 |
4 files changed, 11 insertions, 9 deletions
diff --git a/sql/updates/world/master/2020_04_14_01_world_2017_03_16_02_world.sql b/sql/updates/world/master/2020_04_14_01_world_2017_03_16_02_world.sql new file mode 100644 index 00000000000..08df52bf003 --- /dev/null +++ b/sql/updates/world/master/2020_04_14_01_world_2017_03_16_02_world.sql @@ -0,0 +1,5 @@ +UPDATE `quest_template_addon` SET `NextQuestID`='12225' WHERE `ID` IN (12222, 12223); +UPDATE `quest_template_addon` SET `NextQuestID`='0' WHERE `ID`=8554; +UPDATE `quest_template_addon` SET `NextQuestID`='0' WHERE `ID`=618; +UPDATE `quest_template_addon` SET `NextQuestID`='0' WHERE `ID`=415; +ALTER TABLE `quest_template_addon` CHANGE `NextQuestID` `NextQuestID` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT 0; diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index 3971062fe57..2c05f4662c3 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -4623,14 +4623,11 @@ void ObjectMgr::LoadQuests() if (qinfo->_nextQuestID) { - QuestMap::iterator qNextItr = _questTemplates.find(abs(qinfo->GetNextQuestId())); + auto qNextItr = _questTemplates.find(qinfo->GetNextQuestId()); if (qNextItr == _questTemplates.end()) - TC_LOG_ERROR("sql.sql", "Quest %d has NextQuestId %i, but no such quest", qinfo->GetQuestId(), qinfo->GetNextQuestId()); + TC_LOG_ERROR("sql.sql", "Quest %d has NextQuestId %u, but no such quest", qinfo->GetQuestId(), qinfo->GetNextQuestId()); else - { - int32 signedQuestId = qinfo->_nextQuestID < 0 ? -int32(qinfo->GetQuestId()) : int32(qinfo->GetQuestId()); - qNextItr->second->PrevQuests.push_back(signedQuestId); - } + qNextItr->second->PrevQuests.push_back(static_cast<int32>(qinfo->GetQuestId())); } if (qinfo->_exclusiveGroup) diff --git a/src/server/game/Quests/QuestDef.cpp b/src/server/game/Quests/QuestDef.cpp index 115c72c83d2..28685dc58ec 100644 --- a/src/server/game/Quests/QuestDef.cpp +++ b/src/server/game/Quests/QuestDef.cpp @@ -191,7 +191,7 @@ void Quest::LoadQuestTemplateAddon(Field* fields) _allowableClasses = fields[2].GetUInt32(); _sourceSpellID = fields[3].GetUInt32(); _prevQuestID = fields[4].GetInt32(); - _nextQuestID = fields[5].GetInt32(); + _nextQuestID = fields[5].GetUInt32(); _exclusiveGroup = fields[6].GetInt32(); _rewardMailTemplateId = fields[7].GetUInt32(); _rewardMailDelay = fields[8].GetUInt32(); diff --git a/src/server/game/Quests/QuestDef.h b/src/server/game/Quests/QuestDef.h index 04ee9468b72..8157f647627 100644 --- a/src/server/game/Quests/QuestDef.h +++ b/src/server/game/Quests/QuestDef.h @@ -387,7 +387,7 @@ class TC_GAME_API Quest uint32 GetSuggestedPlayers() const { return _suggestedPlayers; } uint32 GetLimitTime() const { return _limitTime; } int32 GetPrevQuestId() const { return _prevQuestID; } - int32 GetNextQuestId() const { return _nextQuestID; } + uint32 GetNextQuestId() const { return _nextQuestID; } int32 GetExclusiveGroup() const { return _exclusiveGroup; } uint32 GetNextQuestInChain() const { return _nextQuestInChain; } int32 GetRewArenaPoints() const {return _rewardArenaPoints; } @@ -580,7 +580,7 @@ class TC_GAME_API Quest uint32 _allowableClasses = 0; uint32 _sourceSpellID = 0; int32 _prevQuestID = 0; - int32 _nextQuestID = 0; + uint32 _nextQuestID = 0; int32 _exclusiveGroup = 0; uint32 _rewardMailTemplateId = 0; uint32 _rewardMailDelay = 0; |