mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-12-09 17:47:43 +00:00
Additional animation tree imps
This commit is contained in:
@@ -16,13 +16,14 @@ class CFBStreamedCompression
|
||||
friend class CFBStreamedAnimReaderTotals;
|
||||
friend class CFBStreamedPairOfTotals;
|
||||
|
||||
public:
|
||||
struct Header
|
||||
{
|
||||
u32 unk0;
|
||||
float duration;
|
||||
float interval;
|
||||
u32 rootBoneId;
|
||||
u32 unk2;
|
||||
u32 looping;
|
||||
u32 rotDiv;
|
||||
float translationMult;
|
||||
u32 boneChannelCount;
|
||||
@@ -38,8 +39,8 @@ class CFBStreamedCompression
|
||||
interval = in.readFloatBig();
|
||||
/* rootBoneId */
|
||||
rootBoneId = in.readUint32Big();
|
||||
/* unk2 */
|
||||
unk2 = in.readUint32Big();
|
||||
/* looping */
|
||||
looping = in.readUint32Big();
|
||||
/* rotDiv */
|
||||
rotDiv = in.readUint32Big();
|
||||
/* translationMult */
|
||||
@@ -51,6 +52,7 @@ class CFBStreamedCompression
|
||||
}
|
||||
};
|
||||
|
||||
private:
|
||||
bool m_pc;
|
||||
u32 x0_scratchSize;
|
||||
ResId x4_evnt;
|
||||
@@ -61,10 +63,18 @@ class CFBStreamedCompression
|
||||
u8* ReadBoneChannelDescriptors(u8* out, CInputStream& in);
|
||||
u32 ComputeBitstreamWords(const u8* chans);
|
||||
std::unique_ptr<u32[]> GetRotationsAndOffsets(u32 words, CInputStream& in);
|
||||
|
||||
public:
|
||||
CFBStreamedCompression(CInputStream& in, IObjectStore& objStore, bool pc);
|
||||
CCharAnimTime GetAnimationDuration() const { return reinterpret_cast<const Header*>(xc_rotsAndOffs.get())->duration; }
|
||||
const TLockedToken<CAnimPOIData>& GetPOIToken() const { return x8_evntToken; }
|
||||
const Header& MainHeader() const { return *reinterpret_cast<const Header*>(xc_rotsAndOffs.get()); }
|
||||
bool IsLooping() const { return MainHeader().looping; }
|
||||
CCharAnimTime GetAnimationDuration() const { return MainHeader().duration; }
|
||||
const zeus::CVector3f& GetRootOffset() const { return x14_rootOffset; }
|
||||
bool HasPOIData() const { return x8_evntToken; }
|
||||
const std::vector<CBoolPOINode>& GetBoolPOIStream() const { return x8_evntToken->GetBoolPOIStream(); }
|
||||
const std::vector<CInt32POINode>& GetInt32POIStream() const { return x8_evntToken->GetInt32POIStream(); }
|
||||
const std::vector<CParticlePOINode>& GetParticlePOIStream() const { return x8_evntToken->GetParticlePOIStream(); }
|
||||
const std::vector<CSoundPOINode>& GetSoundPOIStream() const { return x8_evntToken->GetSoundPOIStream(); }
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user