aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Globals/ObjectMgr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Globals/ObjectMgr.cpp')
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index 86d1bfafbf2..91f81825f14 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -8090,6 +8090,41 @@ uint32 ObjectMgr::GetXPForLevel(uint8 level) const
return 0;
}
+int32 ObjectMgr::GetFishingBaseSkillLevel(AreaTableEntry const* areaEntry) const
+{
+ if (!areaEntry)
+ return 0;
+
+ // Get level for the area
+ FishingBaseSkillContainer::const_iterator itr = _fishingBaseForAreaStore.find(areaEntry->ID);
+ if (itr != _fishingBaseForAreaStore.end())
+ return itr->second;
+
+ // If there is no data for the current area and it has a parent area, get data from the last (recursive)
+ if (AreaTableEntry const* parentAreaEntry = sAreaTableStore.LookupEntry(areaEntry->ParentAreaID))
+ return GetFishingBaseSkillLevel(parentAreaEntry);
+
+ TC_LOG_ERROR("sql.sql", "Fishable areaId {} is not properly defined in `skill_fishing_base_level`.", areaEntry->ID);
+
+ return 0;
+}
+
+ContentTuningEntry const* ObjectMgr::GetContentTuningForArea(AreaTableEntry const* areaEntry) const
+{
+ if (!areaEntry)
+ return nullptr;
+
+ // Get ContentTuning for the area
+ if (ContentTuningEntry const* contentTuning = sContentTuningStore.LookupEntry(areaEntry->ContentTuningID))
+ return contentTuning;
+
+ // If there is no data for the current area and it has a parent area, get data from the last (recursive)
+ if (AreaTableEntry const* parentAreaEntry = sAreaTableStore.LookupEntry(areaEntry->ParentAreaID))
+ return GetContentTuningForArea(parentAreaEntry);
+
+ return nullptr;
+}
+
void ObjectMgr::LoadPetNames()
{
uint32 oldMSTime = getMSTime();