aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Globals/ObjectMgr.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2024-08-17 12:40:27 +0200
committerShauren <shauren.trinity@gmail.com>2024-08-17 12:40:27 +0200
commitedb20999a3b414ebe1b89410f08f2434e8da1cdb (patch)
treeb12ed325f926bd7a98bd6a4e819c1a5ba6ae933b /src/server/game/Globals/ObjectMgr.cpp
parent1f952893fc82bc677058737f77de710c426c60ee (diff)
Core/Utils: Unwrap non-copyable pointers (unique_ptr) from Trinity::Containers::MapGetValuePtr
Diffstat (limited to 'src/server/game/Globals/ObjectMgr.cpp')
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp41
1 files changed, 19 insertions, 22 deletions
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index 673a1678fe0..4ad5aabf6d9 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -3706,18 +3706,18 @@ PetLevelInfo const* ObjectMgr::GetPetLevelInfo(uint32 creature_id, uint8 level)
void ObjectMgr::PlayerCreateInfoAddItemHelper(uint32 race_, uint32 class_, uint32 itemId, int32 count)
{
- std::unique_ptr<PlayerInfo>* playerInfo = Trinity::Containers::MapGetValuePtr(_playerInfo, { Races(race_), Classes(class_) });
+ PlayerInfo* playerInfo = Trinity::Containers::MapGetValuePtr(_playerInfo, { Races(race_), Classes(class_) });
if (!playerInfo)
return;
if (count > 0)
- playerInfo->get()->item.emplace_back(itemId, count);
+ playerInfo->item.emplace_back(itemId, count);
else
{
if (count < -1)
TC_LOG_ERROR("sql.sql", "Invalid count {} specified on item {} be removed from original player create info (use -1)!", count, itemId);
- PlayerCreateInfoItems& items = playerInfo->get()->item;
+ PlayerCreateInfoItems& items = playerInfo->item;
auto erased = std::remove_if(items.begin(), items.end(), [itemId](PlayerCreateInfoItem const& item) { return item.item_id == itemId; });
if (erased == items.end())
@@ -3886,7 +3886,7 @@ void ObjectMgr::LoadPlayerInfo()
if (auto const& playerInfo = Trinity::Containers::MapGetValuePtr(_playerInfo, { Races(raceIndex), Classes(characterLoadout->ChrClassID) }))
{
- playerInfo->get()->itemContext = ItemContext(characterLoadout->ItemContext);
+ playerInfo->itemContext = ItemContext(characterLoadout->ItemContext);
for (ItemTemplate const* itemTemplate : *items)
{
@@ -3912,7 +3912,7 @@ void ObjectMgr::LoadPlayerInfo()
count = itemTemplate->GetMaxStackSize();
}
- playerInfo->get()->item.emplace_back(itemTemplate->GetId(), count);
+ playerInfo->item.emplace_back(itemTemplate->GetId(), count);
}
}
}
@@ -4000,7 +4000,7 @@ void ObjectMgr::LoadPlayerInfo()
for (uint32 classIndex = CLASS_WARRIOR; classIndex < MAX_CLASSES; ++classIndex)
if (rcInfo->ClassMask == -1 || rcInfo->ClassMask == 0 || ((1 << (classIndex - 1)) & rcInfo->ClassMask))
if (auto const& playerInfo = Trinity::Containers::MapGetValuePtr(_playerInfo, { Races(raceIndex), Classes(classIndex) }))
- playerInfo->get()->skills.push_back(rcInfo);
+ playerInfo->skills.push_back(rcInfo);
TC_LOG_INFO("server.loading", ">> Loaded player create skills in {} ms", GetMSTimeDiffToNow(oldMSTime));
}
@@ -4049,7 +4049,7 @@ void ObjectMgr::LoadPlayerInfo()
{
if (auto const& playerInfo = Trinity::Containers::MapGetValuePtr(_playerInfo, { Races(raceIndex), Classes(classIndex) }))
{
- playerInfo->get()->customSpells.push_back(spellId);
+ playerInfo->customSpells.push_back(spellId);
++count;
}
// We need something better here, the check is not accounting for spells used by multiple races/classes but not all of them.
@@ -4116,7 +4116,7 @@ void ObjectMgr::LoadPlayerInfo()
{
if (auto const& playerInfo = Trinity::Containers::MapGetValuePtr(_playerInfo, { Races(raceIndex), Classes(classIndex) }))
{
- playerInfo->get()->castSpells[playerCreateMode].push_back(spellId);
+ playerInfo->castSpells[playerCreateMode].push_back(spellId);
++count;
}
}
@@ -4164,7 +4164,7 @@ void ObjectMgr::LoadPlayerInfo()
}
if (auto const& playerInfo = Trinity::Containers::MapGetValuePtr(_playerInfo, { Races(current_race), Classes(current_class) }))
- playerInfo->get()->action.push_back(PlayerCreateInfoAction(fields[2].GetUInt16(), fields[3].GetUInt32(), fields[4].GetUInt16()));
+ playerInfo->action.push_back(PlayerCreateInfoAction(fields[2].GetUInt16(), fields[3].GetUInt32(), fields[4].GetUInt16()));
++count;
}
@@ -4247,10 +4247,10 @@ void ObjectMgr::LoadPlayerInfo()
{
if (auto const& playerInfo = Trinity::Containers::MapGetValuePtr(_playerInfo, { Races(race), Classes(current_class) }))
{
- if (!playerInfo->get()->levelInfo)
- playerInfo->get()->levelInfo = std::make_unique<PlayerLevelInfo[]>(sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL));
+ if (!playerInfo->levelInfo)
+ playerInfo->levelInfo = std::make_unique<PlayerLevelInfo[]>(sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL));
- PlayerLevelInfo& levelInfo = playerInfo->get()->levelInfo[current_level - 1];
+ PlayerLevelInfo& levelInfo = playerInfo->levelInfo[current_level - 1];
for (uint8 i = 0; i < MAX_STATS; ++i)
levelInfo.stats[i] = fields[i + 2].GetUInt16() + raceStatModifiers[race].StatModifier[i];
}
@@ -4299,7 +4299,7 @@ void ObjectMgr::LoadPlayerInfo()
continue;
// fatal error if no level 1 data
- if (!playerInfo->get()->levelInfo || playerInfo->get()->levelInfo[0].stats[0] == 0)
+ if (!playerInfo->levelInfo || playerInfo->levelInfo[0].stats[0] == 0)
{
TC_LOG_ERROR("sql.sql", "Race {} Class {} Level 1 does not have stats data!", race, class_);
ABORT();
@@ -4308,10 +4308,10 @@ void ObjectMgr::LoadPlayerInfo()
// fill level gaps
for (uint8 level = 1; level < sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL); ++level)
{
- if (playerInfo->get()->levelInfo[level].stats[0] == 0)
+ if (playerInfo->levelInfo[level].stats[0] == 0)
{
TC_LOG_ERROR("sql.sql", "Race {} Class {} Level {} does not have stats data. Using stats data of level {}.", race, class_, level + 1, level);
- playerInfo->get()->levelInfo[level] = playerInfo->get()->levelInfo[level - 1];
+ playerInfo->levelInfo[level] = playerInfo->levelInfo[level - 1];
}
}
}
@@ -4400,12 +4400,12 @@ void ObjectMgr::GetPlayerLevelInfo(uint32 race, uint32 class_, uint8 level, Play
if (level < 1 || race >= MAX_RACES || class_ >= MAX_CLASSES)
return;
- auto const& pInfo = Trinity::Containers::MapGetValuePtr(_playerInfo, { Races(race), Classes(class_) });
+ PlayerInfo const* pInfo = Trinity::Containers::MapGetValuePtr(_playerInfo, {Races(race), Classes(class_)});
if (!pInfo)
return;
if (level <= sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL))
- *info = pInfo->get()->levelInfo[level - 1];
+ *info = pInfo->levelInfo[level - 1];
else
BuildPlayerLevelInfo(race, class_, level, info);
}
@@ -4413,7 +4413,7 @@ void ObjectMgr::GetPlayerLevelInfo(uint32 race, uint32 class_, uint8 level, Play
void ObjectMgr::BuildPlayerLevelInfo(uint8 race, uint8 _class, uint8 level, PlayerLevelInfo* info) const
{
// base data (last known level)
- *info = ASSERT_NOTNULL(Trinity::Containers::MapGetValuePtr(_playerInfo, { Races(race), Classes(_class) }))->get()->levelInfo[sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL) - 1];
+ *info = ASSERT_NOTNULL(Trinity::Containers::MapGetValuePtr(_playerInfo, { Races(race), Classes(_class) }))->levelInfo[sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL) - 1];
// if conversion from uint32 to uint8 causes unexpected behaviour, change lvl to uint32
for (uint8 lvl = sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL) - 1; lvl < level; ++lvl)
@@ -10620,10 +10620,7 @@ PlayerInfo const* ObjectMgr::GetPlayerInfo(uint32 race, uint32 class_) const
return nullptr;
if (class_ >= MAX_CLASSES)
return nullptr;
- auto const& info = Trinity::Containers::MapGetValuePtr(_playerInfo, { Races(race), Classes(class_) });
- if (!info)
- return nullptr;
- return info->get();
+ return Trinity::Containers::MapGetValuePtr(_playerInfo, { Races(race), Classes(class_) });
}
void ObjectMgr::LoadRaceAndClassExpansionRequirements()