refactor: replace unique_ptr to shared_ptr

This commit is contained in:
k0t9i
2023-02-10 18:49:47 +04:00
parent bb4538794b
commit 81e26a7e52
13 changed files with 51 additions and 67 deletions

View File

@@ -22,14 +22,8 @@ namespace Interlude
{
std::unique_lock<std::shared_timed_mutex>(m_Mutex);
std::map<uint32_t, Entities::AbnormalEffect*> skillPtrs;
for (const auto& kvp : m_Effects)
{
skillPtrs[kvp.first] = kvp.second.get();
}
const auto objects = m_EntityFinder.FindEntities<Entities::AbnormalEffect*>(skillPtrs, [this](Entities::AbnormalEffect* item) {
return std::make_unique<Entities::AbnormalEffect>(item);
const auto objects = m_EntityFinder.FindEntities<std::shared_ptr<Entities::AbnormalEffect>>(m_Effects, [this](std::shared_ptr<Entities::AbnormalEffect> item) {
return std::make_shared<Entities::AbnormalEffect>(item.get());
});
auto result = std::vector<std::shared_ptr<DTO::EntityState>>();
@@ -90,7 +84,7 @@ namespace Interlude
const auto level = skillInfo[i + 1];
auto effect = m_Factory.Create(effectId, level);
m_Effects.emplace(effect->GetId(), std::move(effect));
m_Effects.emplace(effect->GetId(), effect);
ids[effectId] = effectId;
}
@@ -113,7 +107,7 @@ namespace Interlude
private:
const AbnormalEffectFactory& m_Factory;
std::map<uint32_t, std::unique_ptr<Entities::AbnormalEffect>> m_Effects;
std::map<uint32_t, std::shared_ptr<Entities::AbnormalEffect>> m_Effects;
std::shared_timed_mutex m_Mutex;
EntityFinder& m_EntityFinder;
};

View File

@@ -26,14 +26,8 @@ namespace Interlude
{
std::unique_lock<std::shared_timed_mutex>(m_Mutex);
std::map<uint32_t, Entities::BaseItem*> itemPtrs;
for (const auto& kvp : m_Items)
{
itemPtrs[kvp.first] = kvp.second.get();
}
const auto objects = m_EntityFinder.FindEntities<Entities::BaseItem*>(itemPtrs, [this](Entities::BaseItem* item) {
return m_Factory.CreateFromPointer(item);
const auto objects = m_EntityFinder.FindEntities<std::shared_ptr<Entities::BaseItem>>(m_Items, [this](std::shared_ptr<Entities::BaseItem> item) {
return m_Factory.Copy(item);
});
auto result = std::vector<std::shared_ptr<DTO::EntityState>>();
@@ -152,7 +146,7 @@ namespace Interlude
auto item = m_Factory.Create(data);
if (m_Items.find(data.objectId) == m_Items.end())
{
m_Items.emplace(data.objectId, std::move(item));
m_Items.emplace(data.objectId, item);
}
else
{
@@ -211,7 +205,7 @@ namespace Interlude
private:
const ItemFactory& m_Factory;
std::map<uint32_t, std::unique_ptr<Entities::BaseItem>> m_Items;
std::map<uint32_t, std::shared_ptr<Entities::BaseItem>> m_Items;
std::map<uint32_t, uint32_t> m_NewItems;
bool m_IsNewCycle = true;
uint32_t m_UsedSkillId = 0;

View File

@@ -27,14 +27,8 @@ namespace Interlude
{
std::unique_lock<std::shared_timed_mutex>(m_Mutex);
std::map<uint32_t, Entities::Skill*> skillPtrs;
for (const auto& kvp : m_Skills)
{
skillPtrs[kvp.first] = kvp.second.get();
}
const auto objects = m_EntityFinder.FindEntities<Entities::Skill*>(skillPtrs, [this](Entities::Skill* item) {
return std::make_unique<Entities::Skill>(item);
const auto objects = m_EntityFinder.FindEntities<std::shared_ptr<Entities::Skill>>(m_Skills, [this](std::shared_ptr<Entities::Skill> item) {
return std::make_shared<Entities::Skill>(item.get());
});
auto result = std::vector<std::shared_ptr<DTO::EntityState>>();
@@ -141,7 +135,7 @@ namespace Interlude
);
if (m_Skills.find(skillId) == m_Skills.end())
{
m_Skills.emplace(skill->GetId(), std::move(skill));
m_Skills.emplace(skill->GetId(), skill);
}
else
{
@@ -245,7 +239,7 @@ namespace Interlude
private:
const SkillFactory& m_Factory;
std::map<uint32_t, std::unique_ptr<Entities::Skill>> m_Skills;
std::map<uint32_t, std::shared_ptr<Entities::Skill>> m_Skills;
std::map<uint32_t, uint32_t> m_NewSkills;
bool m_IsNewCycle = true;
uint32_t m_UsedSkillId = 0;