#pragma once #include "CAnimTreeSingleChild.hpp" #include "CTimeScaleFunctions.hpp" namespace urde { class CAnimTreeTimeScale : public CAnimTreeSingleChild { std::unique_ptr x18_timeScale; CCharAnimTime x20_curAccelTime; CCharAnimTime x28_targetAccelTime; CCharAnimTime x30_initialTime; public: CAnimTreeTimeScale(const std::weak_ptr& node, float timeScale, std::string_view name); CAnimTreeTimeScale(const std::weak_ptr& node, std::unique_ptr&& timeScale, const CCharAnimTime& time, std::string_view name); static std::string CreatePrimitiveName(const std::weak_ptr&, float, const CCharAnimTime&, float); CCharAnimTime GetRealLifeTime(const CCharAnimTime&) const; void VSetPhase(float); std::optional> VSimplified(); u32 VGetBoolPOIList(const CCharAnimTime& time, CBoolPOINode* listOut, u32 capacity, u32 iterator, u32) const; u32 VGetInt32POIList(const CCharAnimTime& time, CInt32POINode* listOut, u32 capacity, u32 iterator, u32) const; u32 VGetParticlePOIList(const CCharAnimTime& time, CParticlePOINode* listOut, u32 capacity, u32 iterator, u32) const; u32 VGetSoundPOIList(const CCharAnimTime& time, CSoundPOINode* listOut, u32 capacity, u32 iterator, u32) const; bool VGetBoolPOIState(const char* name) const; s32 VGetInt32POIState(const char* name) const; CParticleData::EParentedMode VGetParticlePOIState(const char* name) const; CAnimTreeEffectiveContribution VGetContributionOfHighestInfluence() const; std::shared_ptr VGetBestUnblendedChild() const; std::unique_ptr VClone() const; CSteadyStateAnimInfo VGetSteadyStateAnimInfo() const; CCharAnimTime VGetTimeRemaining() const; SAdvancementResults VAdvanceView(const CCharAnimTime& dt); }; } // namespace urde