aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Globals/ObjectMgr.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2019-01-04 00:08:26 +0100
committerShauren <shauren.trinity@gmail.com>2019-01-04 00:08:26 +0100
commit74d51b92630eb4a0f5fc0082b7252019acd90460 (patch)
treeb3364446415845bf216fdf4db73ee86d5f831774 /src/server/game/Globals/ObjectMgr.cpp
parent19791a35df11e2c5c42ee437bfc13466c708ea43 (diff)
Core/Creatures: Fixed trainer requirements
Closes #22906
Diffstat (limited to 'src/server/game/Globals/ObjectMgr.cpp')
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index f4277e3ffec..df4cdc346c2 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -8742,6 +8742,34 @@ void ObjectMgr::LoadTrainers()
spellsByTrainer.erase(spellsItr);
}
+ switch (trainerType)
+ {
+ case Trainer::Type::Class:
+ case Trainer::Type::Pet:
+ if (requirement && !sChrClassesStore.LookupEntry(requirement))
+ {
+ TC_LOG_ERROR("sql.sql", "Table `trainer` references non-existing class requirement %u for TrainerId %u, ignoring", requirement, trainerId);
+ continue;
+ }
+ break;
+ case Trainer::Type::Mount:
+ if (requirement && !sChrRacesStore.LookupEntry(requirement))
+ {
+ TC_LOG_ERROR("sql.sql", "Table `trainer` references non-existing race requirement %u for TrainerId %u, ignoring", requirement, trainerId);
+ continue;
+ }
+ break;
+ case Trainer::Type::Tradeskill:
+ if (requirement && !sSpellMgr->GetSpellInfo(requirement))
+ {
+ TC_LOG_ERROR("sql.sql", "Table `trainer` references non-existing spell requirement %u for TrainerId %u, ignoring", requirement, trainerId);
+ continue;
+ }
+ break;
+ default:
+ break;
+ }
+
_trainers.emplace(std::piecewise_construct, std::forward_as_tuple(trainerId), std::forward_as_tuple(trainerId, trainerType, requirement, std::move(greeting), std::move(spells)));
} while (trainersResult->NextRow());
}