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

Various ANIM reader imps

This commit is contained in:
Jack Andersen
2016-04-11 13:35:37 -10:00
parent b10bd229e6
commit faacffba77
21 changed files with 613 additions and 16 deletions

View File

@@ -0,0 +1,40 @@
#ifndef __PSHAG_CALLFORMATANIMSOURCE_HPP__
#define __PSHAG_CALLFORMATANIMSOURCE_HPP__
#include "RetroTypes.hpp"
#include "zeus/CVector3f.hpp"
#include "CAnimSource.hpp"
namespace urde
{
class IObjectStore;
enum class EAnimFormat
{
Uncompressed,
Unknown,
BitstreamCompressed
};
class CAnimFormatUnion
{
EAnimFormat x0_format;
u8 x4_storage[sizeof(CAnimSource)];
static void SubConstruct(u8* storage, EAnimFormat fmt,
CInputStream& in, IObjectStore& store);
public:
CAnimFormatUnion(CInputStream& in, IObjectStore& store);
operator CAnimSource&() {return *reinterpret_cast<CAnimSource*>(x4_storage);}
};
class CAllFormatsAnimSource : public CAnimFormatUnion
{
zeus::CVector3f x68_;
SObjectTag x74_tag;
public:
CAllFormatsAnimSource(CInputStream& in, IObjectStore& store, const SObjectTag& tag);
};
}
#endif // __PSHAG_CALLFORMATANIMSOURCE_HPP__