2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-12-09 06:27:43 +00:00

Additional ANIM integration

This commit is contained in:
Jack Andersen
2016-08-26 18:54:53 -10:00
parent c5ddb51dfc
commit f76324a029
13 changed files with 230 additions and 19 deletions

View File

@@ -4,12 +4,13 @@
#include "RetroTypes.hpp"
#include "zeus/CVector3f.hpp"
#include "CAnimSource.hpp"
#include "CFBStreamedCompression.hpp"
#include "CFactoryMgr.hpp"
namespace urde
{
class IObjectStore;
class CAnimSourceReaderBase;
class IAnimReader;
enum class EAnimFormat
{
@@ -26,7 +27,7 @@ class CAnimFormatUnion
EAnimFormat x0_format;
intptr_t _align = 0;
};
u8 x4_storage[sizeof(CAnimSource)];
u8 x4_storage[std::max(sizeof(CAnimSource), sizeof(CFBStreamedCompression))];
static void SubConstruct(u8* storage, EAnimFormat fmt,
CInputStream& in, IObjectStore& store);
public:
@@ -41,8 +42,8 @@ class CAllFormatsAnimSource : public CAnimFormatUnion
SObjectTag x74_tag;
public:
CAllFormatsAnimSource(CInputStream& in, IObjectStore& store, const SObjectTag& tag);
static std::shared_ptr<CAnimSourceReaderBase> GetNewReader(const TLockedToken<CAllFormatsAnimSource>& tok,
const CCharAnimTime& startTime);
static std::shared_ptr<IAnimReader> GetNewReader(const TLockedToken<CAllFormatsAnimSource>& tok,
const CCharAnimTime& startTime);
};
CFactoryFnReturn AnimSourceFactory(const SObjectTag& tag, CInputStream& in, const CVParamTransfer& params);