mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-12-09 06:27:43 +00:00
New code style refactor
This commit is contained in:
@@ -6,50 +6,42 @@
|
||||
#include "CFBStreamedCompression.hpp"
|
||||
#include "CFactoryMgr.hpp"
|
||||
|
||||
namespace urde
|
||||
{
|
||||
namespace urde {
|
||||
class IObjectStore;
|
||||
class IAnimReader;
|
||||
|
||||
enum class EAnimFormat
|
||||
{
|
||||
Uncompressed,
|
||||
Unknown,
|
||||
BitstreamCompressed,
|
||||
BitstreamCompressed24
|
||||
enum class EAnimFormat { Uncompressed, Unknown, BitstreamCompressed, BitstreamCompressed24 };
|
||||
|
||||
class CAnimFormatUnion {
|
||||
friend class CAllFormatsAnimSource;
|
||||
union {
|
||||
EAnimFormat x0_format;
|
||||
u8 _align[16];
|
||||
};
|
||||
u8 x4_storage[std::max(sizeof(CAnimSource), sizeof(CFBStreamedCompression))];
|
||||
static void SubConstruct(u8* storage, EAnimFormat fmt, CInputStream& in, IObjectStore& store);
|
||||
|
||||
public:
|
||||
CAnimFormatUnion(CInputStream& in, IObjectStore& store);
|
||||
~CAnimFormatUnion();
|
||||
EAnimFormat GetFormat() const { return x0_format; }
|
||||
const CAnimSource& GetAsCAnimSource() const { return *reinterpret_cast<const CAnimSource*>(x4_storage); }
|
||||
const CFBStreamedCompression& GetAsCFBStreamedCompression() const {
|
||||
return *reinterpret_cast<const CFBStreamedCompression*>(x4_storage);
|
||||
}
|
||||
};
|
||||
|
||||
class CAnimFormatUnion
|
||||
{
|
||||
friend class CAllFormatsAnimSource;
|
||||
union
|
||||
{
|
||||
EAnimFormat x0_format;
|
||||
u8 _align[16];
|
||||
};
|
||||
u8 x4_storage[std::max(sizeof(CAnimSource), sizeof(CFBStreamedCompression))];
|
||||
static void SubConstruct(u8* storage, EAnimFormat fmt,
|
||||
CInputStream& in, IObjectStore& store);
|
||||
public:
|
||||
CAnimFormatUnion(CInputStream& in, IObjectStore& store);
|
||||
~CAnimFormatUnion();
|
||||
EAnimFormat GetFormat() const { return x0_format; }
|
||||
const CAnimSource& GetAsCAnimSource() const { return *reinterpret_cast<const CAnimSource*>(x4_storage); }
|
||||
const CFBStreamedCompression& GetAsCFBStreamedCompression() const { return *reinterpret_cast<const CFBStreamedCompression*>(x4_storage); }
|
||||
};
|
||||
class CAllFormatsAnimSource : public CAnimFormatUnion {
|
||||
zeus::CVector3f x68_;
|
||||
SObjectTag x74_tag;
|
||||
|
||||
class CAllFormatsAnimSource : public CAnimFormatUnion
|
||||
{
|
||||
zeus::CVector3f x68_;
|
||||
SObjectTag x74_tag;
|
||||
public:
|
||||
CAllFormatsAnimSource(CInputStream& in, IObjectStore& store, const SObjectTag& tag);
|
||||
static std::shared_ptr<IAnimReader> GetNewReader(const TLockedToken<CAllFormatsAnimSource>& tok,
|
||||
const CCharAnimTime& startTime);
|
||||
CAllFormatsAnimSource(CInputStream& in, IObjectStore& store, const SObjectTag& tag);
|
||||
static std::shared_ptr<IAnimReader> GetNewReader(const TLockedToken<CAllFormatsAnimSource>& tok,
|
||||
const CCharAnimTime& startTime);
|
||||
};
|
||||
|
||||
CFactoryFnReturn AnimSourceFactory(const SObjectTag& tag, CInputStream& in, const CVParamTransfer& params,
|
||||
CObjectReference* selfRef);
|
||||
|
||||
}
|
||||
|
||||
} // namespace urde
|
||||
|
||||
Reference in New Issue
Block a user