mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-12-08 21:07:42 +00:00
New code style refactor
This commit is contained in:
@@ -2,84 +2,65 @@
|
||||
#include "IVParamObj.hpp"
|
||||
#include "CToken.hpp"
|
||||
|
||||
namespace urde
|
||||
{
|
||||
namespace urde {
|
||||
|
||||
CSimplePool::CSimplePool(IFactory& factory)
|
||||
: x18_factory(factory), x1c_paramXfer(new TObjOwnerParam<IObjectStore*>(this))
|
||||
{}
|
||||
: x18_factory(factory), x1c_paramXfer(new TObjOwnerParam<IObjectStore*>(this)) {}
|
||||
|
||||
CSimplePool::~CSimplePool()
|
||||
{
|
||||
assert(x8_resources.empty() && "Dangling CSimplePool resources detected");
|
||||
CSimplePool::~CSimplePool() { assert(x8_resources.empty() && "Dangling CSimplePool resources detected"); }
|
||||
|
||||
CToken CSimplePool::GetObj(const SObjectTag& tag, const CVParamTransfer& paramXfer) {
|
||||
if (!tag)
|
||||
return {};
|
||||
|
||||
auto iter = x8_resources.find(tag);
|
||||
if (iter != x8_resources.end())
|
||||
return CToken(iter->second);
|
||||
|
||||
CObjectReference* ret = new CObjectReference(*this, std::unique_ptr<IObj>(), tag, paramXfer);
|
||||
x8_resources.emplace(std::make_pair<SObjectTag, CObjectReference*>((SObjectTag)tag, std::move(ret)));
|
||||
return CToken(ret);
|
||||
}
|
||||
|
||||
CToken CSimplePool::GetObj(const SObjectTag& tag, const CVParamTransfer& paramXfer)
|
||||
{
|
||||
if (!tag)
|
||||
return {};
|
||||
CToken CSimplePool::GetObj(const SObjectTag& tag) { return GetObj(tag, x1c_paramXfer); }
|
||||
|
||||
auto iter = x8_resources.find(tag);
|
||||
if (iter != x8_resources.end())
|
||||
return CToken(iter->second);
|
||||
CToken CSimplePool::GetObj(std::string_view resourceName) { return GetObj(resourceName, x1c_paramXfer); }
|
||||
|
||||
CObjectReference* ret = new CObjectReference(*this, std::unique_ptr<IObj>(), tag, paramXfer);
|
||||
x8_resources.emplace(std::make_pair<SObjectTag, CObjectReference*>((SObjectTag)tag, std::move(ret)));
|
||||
return CToken(ret);
|
||||
CToken CSimplePool::GetObj(std::string_view resourceName, const CVParamTransfer& paramXfer) {
|
||||
const SObjectTag* tag = x18_factory.GetResourceIdByName(resourceName);
|
||||
if (!tag)
|
||||
return {};
|
||||
return GetObj(*tag, paramXfer);
|
||||
}
|
||||
|
||||
CToken CSimplePool::GetObj(const SObjectTag& tag)
|
||||
{
|
||||
return GetObj(tag, x1c_paramXfer);
|
||||
bool CSimplePool::HasObject(const SObjectTag& tag) const {
|
||||
auto iter = x8_resources.find(tag);
|
||||
if (iter != x8_resources.cend())
|
||||
return true;
|
||||
return x18_factory.CanBuild(tag);
|
||||
}
|
||||
|
||||
CToken CSimplePool::GetObj(std::string_view resourceName)
|
||||
{
|
||||
return GetObj(resourceName, x1c_paramXfer);
|
||||
bool CSimplePool::ObjectIsLive(const SObjectTag& tag) const {
|
||||
auto iter = x8_resources.find(tag);
|
||||
if (iter == x8_resources.cend())
|
||||
return false;
|
||||
return iter->second->IsLoaded();
|
||||
}
|
||||
|
||||
CToken CSimplePool::GetObj(std::string_view resourceName, const CVParamTransfer& paramXfer)
|
||||
{
|
||||
const SObjectTag* tag = x18_factory.GetResourceIdByName(resourceName);
|
||||
if (!tag)
|
||||
return {};
|
||||
return GetObj(*tag, paramXfer);
|
||||
void CSimplePool::Flush() {}
|
||||
|
||||
void CSimplePool::ObjectUnreferenced(const SObjectTag& tag) {
|
||||
auto iter = x8_resources.find(tag);
|
||||
if (iter != x8_resources.end())
|
||||
x8_resources.erase(iter);
|
||||
}
|
||||
|
||||
bool CSimplePool::HasObject(const SObjectTag& tag) const
|
||||
{
|
||||
auto iter = x8_resources.find(tag);
|
||||
if (iter != x8_resources.cend())
|
||||
return true;
|
||||
return x18_factory.CanBuild(tag);
|
||||
std::vector<SObjectTag> CSimplePool::GetReferencedTags() const {
|
||||
std::vector<SObjectTag> ret;
|
||||
ret.reserve(x8_resources.size());
|
||||
for (const auto& obj : x8_resources)
|
||||
ret.push_back(obj.first);
|
||||
return ret;
|
||||
}
|
||||
|
||||
bool CSimplePool::ObjectIsLive(const SObjectTag& tag) const
|
||||
{
|
||||
auto iter = x8_resources.find(tag);
|
||||
if (iter == x8_resources.cend())
|
||||
return false;
|
||||
return iter->second->IsLoaded();
|
||||
}
|
||||
|
||||
void CSimplePool::Flush()
|
||||
{
|
||||
}
|
||||
|
||||
void CSimplePool::ObjectUnreferenced(const SObjectTag& tag)
|
||||
{
|
||||
auto iter = x8_resources.find(tag);
|
||||
if (iter != x8_resources.end())
|
||||
x8_resources.erase(iter);
|
||||
}
|
||||
|
||||
std::vector<SObjectTag> CSimplePool::GetReferencedTags() const
|
||||
{
|
||||
std::vector<SObjectTag> ret;
|
||||
ret.reserve(x8_resources.size());
|
||||
for (const auto& obj : x8_resources)
|
||||
ret.push_back(obj.first);
|
||||
return ret;
|
||||
}
|
||||
|
||||
}
|
||||
} // namespace urde
|
||||
|
||||
Reference in New Issue
Block a user