#include "LimbFactory.h" #include "Context.h" #include "resourcebridge.h" #include "../type/Limb.h" #include "ResourceUtil.h" namespace SF64 { std::shared_ptr ResourceFactoryBinaryLimbV0::ReadResource(std::shared_ptr file) { if (!FileHasValidFormatAndReader(file)) { return nullptr; } auto limb = std::make_shared(file->InitData); auto reader = std::get>(file->Reader); uint64_t dlist = reader->ReadUInt64(); limb->mData.dList = LoadChild(dlist); limb->mData.trans.x = reader->ReadFloat(); limb->mData.trans.y = reader->ReadFloat(); limb->mData.trans.z = reader->ReadFloat(); limb->mData.rot.x = reader->ReadInt16(); limb->mData.rot.y = reader->ReadInt16(); limb->mData.rot.z = reader->ReadInt16(); limb->mData.sibling = LoadChild(reader->ReadUInt64()); limb->mData.child = LoadChild(reader->ReadUInt64()); return limb; } } // namespace LUS