mirror of
https://github.com/PrimeDecomp/prime.git
synced 2025-12-13 17:26:08 +00:00
Match and link IAnimReader.cpp
This commit is contained in:
@@ -1,28 +1,34 @@
|
||||
#ifndef _IANIMREADER
|
||||
#define _IANIMREADER
|
||||
|
||||
#include "Kyoto/Math/CVector3f.hpp"
|
||||
#include "Kyoto/Math/CQuaternion.hpp"
|
||||
#include "Kyoto/Math/CVector3f.hpp"
|
||||
|
||||
#include "Kyoto/Animation/CCharAnimTime.hpp"
|
||||
#include "Kyoto/Particles/CParticleData.hpp"
|
||||
|
||||
#include "rstl/auto_ptr.hpp"
|
||||
#include "rstl/optional_object.hpp"
|
||||
#include "rstl/string.hpp"
|
||||
|
||||
struct SAdvancementDeltas {
|
||||
CVector3f x0_posDelta;
|
||||
CQuaternion xc_rotDelta;
|
||||
|
||||
static SAdvancementDeltas Interpolate(const SAdvancementDeltas& a, const SAdvancementDeltas& b, float oldWeight,
|
||||
float newWeight);
|
||||
static SAdvancementDeltas Blend(const SAdvancementDeltas& a, const SAdvancementDeltas& b, float w);
|
||||
SAdvancementDeltas() : x0_posDelta(CVector3f::Zero()), xc_rotDelta(CQuaternion::NoRotation()) {}
|
||||
static SAdvancementDeltas Interpolate(const SAdvancementDeltas& a, const SAdvancementDeltas& b,
|
||||
float oldWeight, float newWeight);
|
||||
static SAdvancementDeltas Blend(const SAdvancementDeltas& a, const SAdvancementDeltas& b,
|
||||
float w);
|
||||
};
|
||||
|
||||
struct SAdvancementResults {
|
||||
CCharAnimTime x0_remTime;
|
||||
SAdvancementDeltas x8_deltas;
|
||||
SAdvancementResults() {}
|
||||
SAdvancementResults(const CCharAnimTime& time) : x0_remTime(time) {}
|
||||
};
|
||||
|
||||
|
||||
class CSteadyStateAnimInfo {
|
||||
CCharAnimTime x0_duration;
|
||||
CVector3f x8_offset;
|
||||
@@ -45,9 +51,14 @@ struct CAnimTreeEffectiveContribution {
|
||||
u32 x34_dbIdx;
|
||||
|
||||
public:
|
||||
CAnimTreeEffectiveContribution(float cweight, const rstl::string& name, const CSteadyStateAnimInfo& ssInfo,
|
||||
const CCharAnimTime& remTime, u32 dbIdx)
|
||||
: x0_contributionWeight(cweight), x4_name(name), x14_ssInfo(ssInfo), x2c_remTime(remTime), x34_dbIdx(dbIdx) {}
|
||||
CAnimTreeEffectiveContribution(float cweight, const rstl::string& name,
|
||||
const CSteadyStateAnimInfo& ssInfo, const CCharAnimTime& remTime,
|
||||
u32 dbIdx)
|
||||
: x0_contributionWeight(cweight)
|
||||
, x4_name(name)
|
||||
, x14_ssInfo(ssInfo)
|
||||
, x2c_remTime(remTime)
|
||||
, x34_dbIdx(dbIdx) {}
|
||||
float GetContributionWeight() const { return x0_contributionWeight; }
|
||||
const rstl::string& GetPrimitiveName() const { return x4_name; }
|
||||
const CSteadyStateAnimInfo& GetSteadyStateAnimInfo() const { return x14_ssInfo; }
|
||||
@@ -73,22 +84,38 @@ public:
|
||||
virtual bool VHasOffset(const CSegId& seg) const = 0;
|
||||
virtual CVector3f VGetOffset(const CSegId& seg) const = 0;
|
||||
virtual CQuaternion VGetRotation(const CSegId& seg) const = 0;
|
||||
virtual size_t VGetBoolPOIList(const CCharAnimTime& time, CBoolPOINode* listOut, size_t capacity, size_t iterator,
|
||||
u32) const = 0;
|
||||
virtual size_t VGetInt32POIList(const CCharAnimTime& time, CInt32POINode* listOut, size_t capacity, size_t iterator,
|
||||
u32) const = 0;
|
||||
virtual size_t VGetParticlePOIList(const CCharAnimTime& time, CParticlePOINode* listOut, size_t capacity,
|
||||
size_t iterator, u32) const = 0;
|
||||
virtual size_t VGetSoundPOIList(const CCharAnimTime& time, CSoundPOINode* listOut, size_t capacity, size_t iterator,
|
||||
u32) const = 0;
|
||||
virtual uint VGetBoolPOIList(const CCharAnimTime& time, CBoolPOINode* listOut, uint capacity,
|
||||
uint iterator, uint) const = 0;
|
||||
virtual uint VGetInt32POIList(const CCharAnimTime& time, CInt32POINode* listOut, uint capacity,
|
||||
uint iterator, int) const = 0;
|
||||
virtual uint VGetParticlePOIList(const CCharAnimTime& time, CParticlePOINode* listOut,
|
||||
uint capacity, uint iterator, int) const = 0;
|
||||
virtual uint VGetSoundPOIList(const CCharAnimTime& time, CSoundPOINode* listOut, uint capacity,
|
||||
uint iterator, int) const = 0;
|
||||
virtual bool VGetBoolPOIState(const rstl::string& name) const = 0;
|
||||
virtual s32 VGetInt32POIState(const rstl::string& name) const = 0;
|
||||
// virtual CParticleData::EParentedMode VGetParticlePOIState(const rstl::string& name) const = 0;
|
||||
virtual CParticleData::EParentedMode VGetParticlePOIState(const rstl::string& name) const = 0;
|
||||
virtual void VGetSegStatementSet(const CSegIdList& list, CSegStatementSet& setOut) const = 0;
|
||||
virtual void VGetSegStatementSet(const CSegIdList& list, CSegStatementSet& setOut,
|
||||
const CCharAnimTime& time) const = 0;
|
||||
// virtual std::unique_ptr<IAnimReader> VClone() const = 0;
|
||||
virtual rstl::auto_ptr< IAnimReader > VClone() const = 0;
|
||||
virtual rstl::optional_object< rstl::auto_ptr< IAnimReader > > VSimplified();
|
||||
virtual void VSetPhase(float) = 0;
|
||||
virtual SAdvancementResults VGetAdvancementResults(const CCharAnimTime& aTime,
|
||||
const CCharAnimTime& bTime) const;
|
||||
virtual uint Depth() const = 0;
|
||||
|
||||
uint GetBoolPOIList(const CCharAnimTime& time, CBoolPOINode* listOut, uint capacity,
|
||||
uint iterator, int unk) const;
|
||||
|
||||
uint GetInt32POIList(const CCharAnimTime& time, CInt32POINode* listOut, uint capacity,
|
||||
uint iterator, int unk) const;
|
||||
|
||||
uint GetParticlePOIList(const CCharAnimTime& time, CParticlePOINode* listOut, uint capacity,
|
||||
uint iterator, int unk) const;
|
||||
|
||||
uint GetSoundPOIList(const CCharAnimTime& time, CSoundPOINode* listOut, uint capacity,
|
||||
uint iterator, int unk) const;
|
||||
};
|
||||
|
||||
|
||||
#endif // _IANIMREADER
|
||||
|
||||
Reference in New Issue
Block a user