metaforce/Runtime/Character/CAssetFactory.cpp

95 lines
3.1 KiB
C++
Raw Normal View History

#include "CAssetFactory.hpp"
2016-04-15 03:02:21 +00:00
#include "CAnimCharacterSet.hpp"
#include "CCharacterFactory.hpp"
#include "GameGlobalObjects.hpp"
#include "CModelData.hpp"
2016-08-23 03:12:50 +00:00
#include "Character/CCharLayoutInfo.hpp"
2016-03-04 23:04:53 +00:00
namespace urde
{
2016-04-15 03:02:21 +00:00
CFactoryFnReturn CCharacterFactoryBuilder::CDummyFactory::Build(const SObjectTag& tag,
const CVParamTransfer&,
CObjectReference* selfRef)
2016-04-15 03:02:21 +00:00
{
TLockedToken<CAnimCharacterSet> ancs =
g_SimplePool->GetObj({SBIG('ANCS'), tag.id});
return TToken<CCharacterFactory>::GetIObjObjectFor(
std::make_unique<CCharacterFactory>(*g_SimplePool, *ancs.GetObj(), tag.id));
}
void CCharacterFactoryBuilder::CDummyFactory::BuildAsync(const SObjectTag& tag,
const CVParamTransfer& parms,
std::unique_ptr<IObj>* objOut,
CObjectReference* selfRef)
2016-04-15 03:02:21 +00:00
{
*objOut = Build(tag, parms, selfRef);
2016-04-15 03:02:21 +00:00
}
void CCharacterFactoryBuilder::CDummyFactory::CancelBuild(const SObjectTag&)
{
}
bool CCharacterFactoryBuilder::CDummyFactory::CanBuild(const SObjectTag&)
{
return true;
}
2017-11-13 06:19:18 +00:00
const SObjectTag* CCharacterFactoryBuilder::CDummyFactory::GetResourceIdByName(std::string_view) const
2016-04-15 03:02:21 +00:00
{
return nullptr;
}
2017-08-13 05:26:14 +00:00
FourCC CCharacterFactoryBuilder::CDummyFactory::GetResourceTypeById(CAssetId id) const
2016-04-15 03:02:21 +00:00
{
return {};
}
2016-09-25 01:58:20 +00:00
void CCharacterFactoryBuilder::CDummyFactory::EnumerateResources(
const std::function<bool(const SObjectTag&)>& lambda) const
{
}
void CCharacterFactoryBuilder::CDummyFactory::EnumerateNamedResources(
2017-11-13 06:19:18 +00:00
const std::function<bool(std::string_view, const SObjectTag&)>& lambda) const
2016-09-25 01:58:20 +00:00
{
}
u32 CCharacterFactoryBuilder::CDummyFactory::ResourceSize(const urde::SObjectTag& tag)
{
return 0;
}
2017-10-27 10:10:32 +00:00
std::shared_ptr<IDvdRequest> CCharacterFactoryBuilder::CDummyFactory::LoadResourceAsync(const urde::SObjectTag& tag,
void* target)
{
2017-10-27 10:10:32 +00:00
return {};
}
2017-10-27 10:10:32 +00:00
std::shared_ptr<IDvdRequest> CCharacterFactoryBuilder::CDummyFactory::LoadResourcePartAsync(const urde::SObjectTag& tag,
2017-11-05 02:08:05 +00:00
u32 off, u32 size,
2017-10-27 10:10:32 +00:00
void* target)
{
2017-10-27 10:10:32 +00:00
return {};
}
std::unique_ptr<u8[]> CCharacterFactoryBuilder::CDummyFactory::LoadResourceSync(const urde::SObjectTag& tag)
{
return {};
}
2017-11-05 02:08:05 +00:00
std::unique_ptr<u8[]> CCharacterFactoryBuilder::CDummyFactory::LoadNewResourcePartSync(const urde::SObjectTag& tag,
u32 off, u32 size)
{
return {};
}
2016-04-15 03:02:21 +00:00
CCharacterFactoryBuilder::CCharacterFactoryBuilder() : x4_dummyStore(x0_dummyFactory) {}
TToken<CCharacterFactory> CCharacterFactoryBuilder::GetFactory(const CAnimRes& res)
{
return x4_dummyStore.GetObj({SBIG('ANCS'), res.GetId()});
2016-04-15 03:02:21 +00:00
}
}