metaforce/Runtime/Character/CAssetFactory.cpp

68 lines
2.8 KiB
C++
Raw Permalink Normal View History

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