#pragma once #include "RetroTypes.hpp" #include "CAnimTreeTweenBase.hpp" namespace urde { class CAnimTreeTransition : public CAnimTreeTweenBase { protected: CCharAnimTime x24_transDur; CCharAnimTime x2c_timeInTrans; bool x34_runA; bool x35_loopA; bool x36_initialized = false; SAdvancementResults AdvanceViewForTransitionalPeriod(const CCharAnimTime& time); public: static std::string CreatePrimitiveName(const std::weak_ptr&, const std::weak_ptr&, float); CAnimTreeTransition(bool b1, const std::weak_ptr& a, const std::weak_ptr& b, const CCharAnimTime& transDur, const CCharAnimTime& timeInTrans, bool runA, bool loopA, int flags, std::string_view name, bool initialized); CAnimTreeTransition(bool b1, const std::weak_ptr& a, const std::weak_ptr& b, const CCharAnimTime& transDur, bool runA, int flags, std::string_view name); std::shared_ptr VGetBestUnblendedChild() const; CCharAnimTime VGetTimeRemaining() const; CSteadyStateAnimInfo VGetSteadyStateAnimInfo() const; std::unique_ptr VClone() const; std::optional> VSimplified(); std::optional> VReverseSimplified(); SAdvancementResults VAdvanceView(const CCharAnimTime& a); void SetBlendingWeight(float w); float VGetBlendingWeight() const; }; } // namespace urde