diff --git a/config/SOUE01/splits.txt b/config/SOUE01/splits.txt index 829df06b..1f087339 100644 --- a/config/SOUE01/splits.txt +++ b/config/SOUE01/splits.txt @@ -381,6 +381,9 @@ nw4r/lyt/lyt_drawInfo.cpp: .data start:0x8056E7A8 end:0x8056E7B4 .sdata2 start:0x8057F2B8 end:0x8057F2C0 +nw4r/lyt/lyt_animation.cpp: + .text start:0x80490A40 end:0x80491FF4 + nw4r/lyt/lyt_resourceAccessor.cpp: .text start:0x80492000 end:0x80492058 .data start:0x8056E7E0 end:0x8056E7F8 diff --git a/configure.py b/configure.py index 4cea6302..88f585b2 100644 --- a/configure.py +++ b/configure.py @@ -363,6 +363,7 @@ config.libs = [ Object(Matching, "nw4r/lyt/lyt_material.cpp"), Object(Matching, "nw4r/lyt/lyt_texMap.cpp"), Object(Matching, "nw4r/lyt/lyt_drawInfo.cpp"), + Object(NonMatching, "nw4r/lyt/lyt_animation.cpp"), Object(Matching, "nw4r/lyt/lyt_resourceAccessor.cpp"), Object(Matching, "nw4r/lyt/lyt_arcResourceAccessor.cpp"), Object(Matching, "nw4r/lyt/lyt_common.cpp"), diff --git a/include/nw4r/lyt/lyt_animation.h b/include/nw4r/lyt/lyt_animation.h index fe11a440..4db537ea 100644 --- a/include/nw4r/lyt/lyt_animation.h +++ b/include/nw4r/lyt/lyt_animation.h @@ -2,12 +2,38 @@ #define NW4R_LYT_ANIMATION_H #include "common.h" #include +#include +#include #include #include #include namespace nw4r { namespace lyt { +class AnimTransform { +public: + AnimTransform(); + + u16 GetFrameSize() const; + bool IsLoopData() const; + virtual ~AnimTransform() = 0; // at 0x08 + virtual void SetResource(const res::AnimationBlock *pRes, ResourceAccessor *pResAccessor) = 0; // at 0x0C + virtual void SetResource(const res::AnimationBlock *pRes, ResourceAccessor *pResAccessor, // + u16 animNum) = 0; // at 0x10 + virtual void Bind(Pane *pPane, bool bRecursive, bool bDisable) = 0; // at 0x14 + virtual void Bind(Material *pMaterial, bool bDisable) = 0; // at 0x18 + virtual void Animate(u32 idx, Pane *pPane) = 0; // at 0x1C + virtual void Animate(u32 idx, Material *pMaterial) = 0; // at 0x20 + + res::AnimationBlock *GetAnimResource() const { + return mpRes; + } + + ut::LinkListNode mLink; // at 0x4 +protected: + res::AnimationBlock *mpRes; // at 0xC + f32 mFrame; // at 0x10 +}; class AnimResource { public: @@ -18,7 +44,7 @@ public: void Set(const void *anmResBuf); void Init(); u16 GetGroupNum() const; - const AnimationGroupRef *GetGroupArray() const; + AnimationGroupRef *GetGroupArray() const; bool IsDescendingBind() const; u16 GetAnimationShareInfoNum() const; AnimationShareInfo *GetAnimationShareInfoArray() const; @@ -42,6 +68,28 @@ private: const res::AnimationShareBlock *mpShareBlock; // at 0x0C }; +class AnimTransformBasic : public AnimTransform { +public: + AnimTransformBasic(); + AnimationLink *FindUnbindLink(AnimationLink *pLink); + + virtual ~AnimTransformBasic(); // at 0x08 + virtual void SetResource(const res::AnimationBlock *pRes, ResourceAccessor *pResAccessor); // at 0x0C + virtual void SetResource(const res::AnimationBlock *pRes, ResourceAccessor *pResAccessor, u16 animNum); // at 0x10 + virtual void Bind(Pane *pPane, bool bRecursive, bool bDisable); // at 0x14 + virtual void Bind(Material *pMaterial, bool bDisable); // at 0x18 + virtual void Animate(u32 idx, Pane *pPane); // at 0x1C + virtual void Animate(u32 idx, Material *pMaterial); // at 0x20 + + template + AnimationLink *Bind(T *pTarget, AnimationLink *pAnimLink, u16 idx, bool bDisable); + +private: + void *mpFileResAry; // at 0x14 + AnimationLink *mAnimLinkAry; // at 0x18 + u16 mAnimLinkNum; // at 0x1C +}; + namespace detail { class AnimPaneTree { public: @@ -68,30 +116,11 @@ private: u8 mAnimMatCnt; // at 0x26 }; -} // namespace detail +AnimationLink *FindAnimationLink(ut::LinkList *pAnimList, AnimTransform *pAnimTrans); +AnimationLink *FindAnimationLink(ut::LinkList *pAnimList, const AnimResource &animRes); +void UnbindAnimationLink(ut::LinkList *pAnimList, AnimTransform *pAnimTrans); +void UnbindAnimationLink(ut::LinkList *pAnimList, const AnimResource &animRes); -class AnimTransformBasic : public AnimTransform { -public: - AnimTransformBasic(); - virtual ~AnimTransformBasic(); // at 0x08 - virtual void SetResource(const res::AnimationBlock *pRes, ResourceAccessor *pResAccessor); // at 0x0C - virtual void SetResource(const res::AnimationBlock *pRes, ResourceAccessor *pResAccessor, u16 animNum); // at 0x10 - virtual void Bind(Pane *pPane, bool bRecursive); // at 0x14 - virtual void Bind(Material *pMaterial, bool bDisable); // at 0x18 - virtual void Animate(u32 idx, Pane *pPane); // at 0x1C - virtual void Animate(u32 idx, Material *pMaterial); // at 0x20 - -private: - void *mpFileResAry; // at 0x14 - AnimationLink *mAnimLinkAry; // at 0x18 - u16 mAnimLinkNum; // at 0x1C -}; - -namespace detail { -void UnbindAnimationLink(ut::LinkList *, AnimTransform *); -AnimationLink *FindAnimationLink(ut::LinkList *, AnimTransform *); -AnimationLink *FindAnimationLink(ut::LinkList *, const AnimResource &); -void UnbindAnimationLink(ut::LinkList *, AnimTransform *); } // namespace detail } // namespace lyt diff --git a/include/nw4r/lyt/lyt_layout.h b/include/nw4r/lyt/lyt_layout.h index 9cbeb585..74b970ad 100644 --- a/include/nw4r/lyt/lyt_layout.h +++ b/include/nw4r/lyt/lyt_layout.h @@ -9,7 +9,6 @@ #include #include - namespace nw4r { namespace lyt { diff --git a/include/nw4r/lyt/lyt_resources.h b/include/nw4r/lyt/lyt_resources.h index 851c6641..b90e101f 100644 --- a/include/nw4r/lyt/lyt_resources.h +++ b/include/nw4r/lyt/lyt_resources.h @@ -276,9 +276,40 @@ struct AnimationShareBlock { u8 padding[2]; // at 0x0E }; -// TODO -struct HermiteKey {}; -struct StepKey {}; +struct HermiteKey { + f32 frame; // at 0x0 + f32 value; // at 0x4 + f32 slope; // at 0x8 +}; + +struct StepKey { + f32 frame; // at 0x0 + u16 value; // at 0x4 + u16 padding; // at 0x6 +}; + +struct AnimationInfo { + u32 kind; // at 0x0 + u8 num; // at 0x4 + u8 padding[3]; // at 0x5 +}; + +struct AnimationTarget { + u8 id; // at 0x0 + u8 target; // at 0x1 + u8 curveType; // at 0x2 + u8 padding1; // at 0x3 + u16 keyNum; // at 0x4 + u16 padding2[2]; // at 0x6 + u32 keyOffset; // at 0x8 +}; + +struct AnimationContent { + char name[20]; // at 0x00 + u8 num; // at 0x14 + u8 type; // at 0x15 + u8 padding[2]; // at 0x17 +}; } // namespace res } // namespace lyt diff --git a/include/nw4r/lyt/lyt_types.h b/include/nw4r/lyt/lyt_types.h index 3f676c68..9648fde0 100644 --- a/include/nw4r/lyt/lyt_types.h +++ b/include/nw4r/lyt/lyt_types.h @@ -66,24 +66,6 @@ struct Size { inline bool operator==(const Size &a, const Size &b) { return (a.width == b.width && a.height == b.height); } -struct AnimTransform { - inline AnimTransform() : mLink(), mpRes(NULL), mFrame(0.0f) {} - - u16 GetFrameSize() const; - bool IsLoopData() const; - virtual ~AnimTransform() = 0; // at 0x08 - virtual void SetResource(const res::AnimationBlock *pRes, ResourceAccessor *pResAccessor) = 0; // at 0x0C - virtual void SetResource(const res::AnimationBlock *pRes, ResourceAccessor *pResAccessor, // - u16 animNum) = 0; // at 0x10 - virtual void Bind(Pane *pPane, bool bRecursive) = 0; // at 0x14 - virtual void Bind(Material *pMaterial, bool bDisable) = 0; // at 0x18 - virtual void Animate(u32 idx, Pane *pPane) = 0; // at 0x1C - virtual void Animate(u32 idx, Material *pMaterial) = 0; // at 0x20 - - ut::LinkListNode mLink; // at 0x4 - res::AnimationBlock *mpRes; // at 0xC - f32 mFrame; // at 0x10 -}; struct AnimationShareInfo { const char *GetTargetGroupName() const { return targetGroupName; diff --git a/include/nw4r/ut/ut_Color.h b/include/nw4r/ut/ut_Color.h index f41e9dbe..77b63b36 100644 --- a/include/nw4r/ut/ut_Color.h +++ b/include/nw4r/ut/ut_Color.h @@ -18,7 +18,7 @@ public: Set(red, green, blue, alpha); } Color(const GXColor &clr) { - *this = *(u32 *)&clr; + ToU32ref() = *(u32 *)&clr; } ~Color() {} @@ -35,7 +35,8 @@ public: } Color &operator=(const GXColor &c) { - *(u32 *)this = *(u32 *)&c; // TODO -> This Seems Maybe Wrong + ToU32ref() = *(u32 *)&c; // TODO -> This Seems Maybe Wrong + return *this; } Color operator|(u32 color) { diff --git a/src/nw4r/lyt/lyt_animation.cpp b/src/nw4r/lyt/lyt_animation.cpp index e69de29b..31c7e9ae 100644 --- a/src/nw4r/lyt/lyt_animation.cpp +++ b/src/nw4r/lyt/lyt_animation.cpp @@ -0,0 +1,292 @@ +#include +#include +#include + +namespace nw4r { +namespace lyt { +namespace { + +// GetStepCurveValue__27@unnamed@lyt_animation_cpp@FfPCQ44nw4r3lyt3res7StepKeyUl +// GetStepCurveValue__Q34nw4r3lyt27@unnamed@lyt_animation_cpp@FfPCQ44nw4r3lyt3res7StepKeyUl +u16 GetStepCurveValue(f32 frame, const res::StepKey *keyArray, u32 keySize) { + int ikeyL, ikeyR, ikeyCenter; + + const res::StepKey ¢erKey = keyArray[0]; +} + +// RIsSame__27@unnamed@lyt_animation_cpp@Ffff +// RIsSame__Q34nw4r3lyt27@unnamed@lyt_animation_cpp@Ffff +bool RIsSame(f32 a, f32 b, f32 tolerance) { + f32 c; +} + +// GetHermiteCurveValue__27@unnamed@lyt_animation_cpp@FfPCQ44nw4r3lyt3res10HermiteKeyUl +// GetHermiteCurveValue__Q34nw4r3lyt27@unnamed@lyt_animation_cpp@FfPCQ44nw4r3lyt3res10HermiteKeyUl +f32 GetHermiteCurveValue(f32 frame, const res::HermiteKey *keyArray, u32 keySize) { + int ikeyL, ikeyR, ikeyCenter; + const res::HermiteKey &key0 = keyArray[0]; + const res::HermiteKey &key1 = keyArray[0]; + f32 t1, t2; + f32 v0, v1; + f32 s0, s1; + f32 t1t1t2; + f32 t1t1t2t2; + f32 t1t1t1t2t2; + f32 t1t1t1t2t2t2; +} + +// AnimatePainSRT__27@unnamed@lyt_animation_cpp@FPQ34nw4r3lyt4PanePCQ44nw4r3lyt3res13AnimationInfoPCUlf +// AnimatePaneSRT__Q34nw4r3lyt27@unnamed@lyt_animation_cpp@FPQ34nw4r3lyt4PanePCQ44nw4r3lyt3res13AnimationInfoPCUlf +void AnimatePaneSRT(Pane *pPane, const res::AnimationInfo *pAnimInfo, const u32 *animTargetOffsets, f32 frame) { + int i; + const res::AnimationTarget *pAnimTarget; + const res::HermiteKey *keys; +} + +// AnimateVisibility__27@unnamed@lyt_animation_cpp@FPQ34nw4r3lyt4PanePCQ44nw4r3lyt3res13AnimationInfoPCUlf +// AnimateVisibility__Q34nw4r3lyt27@unnamed@lyt_animation_cpp@FPQ34nw4r3lyt4PanePCQ44nw4r3lyt3res13AnimationInfoPCUlf +void AnimateVisibility(Pane *pPane, const res::AnimationInfo *pAnimInfo, const u32 *animTargetOffsets, f32 frame) { + int i; + const res::AnimationTarget *pAnimTarget; + const res::StepKey *keys; +} + +// AnimateVertexColor__27@unnamed@lyt_animation_cpp@FPQ34nw4r3lyt4PanePCQ44nw4r3lyt3res13AnimationInfoPCUlf +// AnimateVertexColor__Q34nw4r3lyt27@unnamed@lyt_animation_cpp@FPQ34nw4r3lyt4PanePCQ44nw4r3lyt3res13AnimationInfoPCUlf +void AnimateVertexColor(Pane *pPane, const res::AnimationInfo *pAnimInfo, const u32 *animTargetOffsets, f32 frame) { + int i; + const res::AnimationTarget *pAnimTarget; + const res::HermiteKey *keys; + f32 value; + u8 u8Val; +} + +// AnimateMaterialColor__27@unnamed@lyt_animation_cpp@FPQ34nw4r3lyt8MaterialPCQ44nw4r3lyt3res13AnimationInfoPCUlf +// AnimateMaterialColor__Q34nw4r3lyt27@unnamed@lyt_animation_cpp@FPQ34nw4r3lyt8MaterialPCQ44nw4r3lyt3res13AnimationInfoPCUlf +void AnimateMaterialColor(Material *pMaterial, const res::AnimationInfo *pAnimInfo, const u32 *animTargetOffsets, + f32 frame) { + int i; + const res::AnimationTarget *pAnimTarget; + const res::HermiteKey *keys; + f32 value; + s16 s16Val; +} + +// AnimateTextureSRT__27@unnamed@lyt_animation_cpp@FPQ34nw4r3lyt8MaterialPCQ44nw4r3lyt3res13AnimationInfoPCUlf +// AnimateTextureSRT__Q34nw4r3lyt27@unnamed@lyt_animation_cpp@FPQ34nw4r3lyt8MaterialPCQ44nw4r3lyt3res13AnimationInfoPCUlf +void AnimateTextureSRT(Material *pMaterial, const res::AnimationInfo *pAnimInfo, const u32 *animTargetOffsets, + f32 frame) { + int i; + const res::AnimationTarget *pAnimTarget; + const res::HermiteKey *keys; +} + +// AnimateTexturePattern__27@unnamed@lyt_animation_cpp@FPQ34nw4r3lyt8MaterialPCQ44nw4r3lyt3res13AnimationInfoPCUlfPPv +// AnimateTexturePattern__Q34nw4r3lyt27@unnamed@lyt_animation_cpp@FPQ34nw4r3lyt8MaterialPCQ44nw4r3lyt3res13AnimationInfoPCUlfPPv +void AnimateTexturePattern(Material *pMaterial, const res::AnimationInfo *pAnimInfo, const u32 *animTargetOffsets, + f32 frame, void **tpls) { + int i; + const res::AnimationTarget *pAnimTarget; + const res::StepKey *keys; + u16 fileIdx; +} + +// AnimateIndTexSRT__27@unnamed@lyt_animation_cpp@FPQ34nw4r3lyt8MaterialPCQ44nw4r3lyt3res13AnimationInfoPCUlf +// AnimateIndTexSRT__Q34nw4r3lyt27@unnamed@lyt_animation_cpp@FPQ34nw4r3lyt8MaterialPCQ44nw4r3lyt3res13AnimationInfoPCUlf +void AnimateIndTexSRT(Material *pMaterial, const res::AnimationInfo *pAnimInfo, const u32 *animTargetOffsets, + f32 frame) { + int i; + const res::AnimationTarget *pAnimTarget; + const res::HermiteKey *keys; +} + +// IsBindAnimation__Q34nw4r3lyt27@unnamed@lyt_animation_cpp@FPQ34nw4r3lyt8MaterialPQ34nw4r3lyt13AnimTransform +bool IsBindAnimation(Material *pMaterial, AnimTransform *pAnimTrans) {} + +// IsBindAnimation__Q34nw4r3lyt27@unnamed@lyt_animation_cpp@FPQ34nw4r3lyt4PanePQ34nw4r3lyt13AnimTransform +bool IsBindAnimation(Pane *pPane, AnimTransform *pAnimTrans) {} + +} // namespace + +// __ct__Q34nw4r3lyt13AnimTransformFv +AnimTransform::AnimTransform() : mLink(), mpRes(NULL), mFrame(0.0f) {} + +// __dt__Q34nw4r3lyt13AnimTransformFv +AnimTransform::~AnimTransform() {} + +// GetFrameSize__Q34nw4r3lyt13AnimTransformCFv +u16 AnimTransform::GetFrameSize() const {} + +// IsLoopData__Q34nw4r3lyt13AnimTransformCFv +bool AnimTransform::IsLoopData() const {} + +// __ct__Q34nw4r3lyt18AnimTransformBasicFv +AnimTransformBasic::AnimTransformBasic() : AnimTransform() {} + +// __dt__Q34nw4r3lyt18AnimTransformBasicFv +AnimTransformBasic::~AnimTransformBasic() {} + +// SetResource__Q34nw4r3lyt18AnimTransformBasicFPCQ44nw4r3lyt3res14AnimationBlockPQ34nw4r3lyt16ResourceAccessor +void AnimTransformBasic::SetResource(const res::AnimationBlock *pRes, ResourceAccessor *pResAccessor) {} + +// SetResource__Q34nw4r3lyt18AnimTransformBasicFPCQ44nw4r3lyt3res14AnimationBlockPQ34nw4r3lyt16ResourceAccessorUs +void AnimTransformBasic::SetResource(const res::AnimationBlock *pRes, ResourceAccessor *pResAccessor, u16 animNum) { + const u32 *fineNameOffsets; + int i; + const char *fileName; +} + +// Bind__Q34nw4r3lyt18AnimTransformBasicFPQ34nw4r3lyt4Paneb +// Bind__Q34nw4r3lyt18AnimTransformBasicFPQ34nw4r3lyt4Panebb +void AnimTransformBasic::Bind(Pane *pPane, bool bRecursive, bool bDisable) { + AnimationLink *pCrAnimLink; + const u32 *animContOffsets; + u16 i; + // const res::AnimationContent &animCont; + Pane *pFindPane; + Material *pFindMat; +} + +// Bind__Q34nw4r3lyt18AnimTransformBasicFPQ34nw4r3lyt8Material +// Bind__Q34nw4r3lyt18AnimTransformBasicFPQ34nw4r3lyt8Materialb +void AnimTransformBasic::Bind(Material *pMaterial, bool bDisable) { + AnimationLink *pCrAnimLink; + const u32 *animContOffsets; + u16 i; + // const res::AnimationContent &animCont; +} + +// Animate__Q34nw4r3lyt18AnimTransformBasicFUlPQ34nw4r3lyt4Pane +void AnimTransformBasic::Animate(u32 idx, Pane *pPane) { + u32 animContOffsets; + res::AnimationContent *pAnimCont; + const u32 *animInfoOffsets; + int i; + res::AnimationInfo *pAnimInfo; + const u32 *animTargetOffsets; +} + +// Animate__Q34nw4r3lyt18AnimTransformBasicFUlPQ34nw4r3lyt8Material +void AnimTransformBasic::Animate(u32 idx, Material *pMaterial) { + u32 animContOffsets; + res::AnimationContent *pAnimCont; + const u32 *animInfoOffsets; + int i; + res::AnimationInfo *pAnimInfo; + const u32 *animTargetOffsets; +} + +// FindUnbindLink__Q34nw4r3lyt18AnimTransformBasicCFPQ34nw4r3lyt13AnimationLink +AnimationLink *AnimTransformBasic::FindUnbindLink(AnimationLink *pLink) {} + +// Bind__Q34nw4r3lyt18AnimTransformBasicFPQ34nw4r3lyt4PanePQ34nw4r3lyt13AnimationLinkUsb_PQ34nw4r3lyt13AnimationLink +// Bind__Q34nw4r3lyt18AnimTransformBasicFPQ34nw4r3lyt8MaterialPQ34nw4r3lyt13AnimationLinkUsb_PQ34nw4r3lyt13AnimationLink +template +AnimationLink *AnimTransformBasic::Bind(T *pTarget, AnimationLink *pAnimLink, u16 idx, bool bDisable) {} + +// __ct__Q34nw4r3lyt12AnimResourceFv +AnimResource::AnimResource() {} + +// Set__Q34nw4r3lyt12AnimResourceFPCv +void AnimResource::Set(const void *animResBuf) { + const res::BinaryFileHeader *pFileHeader; + const res::DataBlockHeader *pDataBlockHead; + int i; +} + +// Init__Q34nw4r3lyt12AnimResourceFv +void AnimResource::Init() {} + +// GetGroupNum__Q34nw4r3lyt12AnimResourceCFv +u16 AnimResource::GetGroupNum() const {} + +// GetGroupArray__Q34nw4r3lyt12AnimResourceCFv +AnimationGroupRef *AnimResource::GetGroupArray() const { + const AnimationGroupRef *groups; +} + +// IsDescendingBind__Q34nw4r3lyt12AnimResourceCFv +bool AnimResource::IsDescendingBind() const {} + +// GetAnimationShareInfoNum__Q34nw4r3lyt12AnimResourceCFv +u16 AnimResource::GetAnimationShareInfoNum() const {} + +// GetAnimationShareInfoArray__Q34nw4r3lyt12AnimResourceCFv +AnimationShareInfo *AnimResource::GetAnimationShareInfoArray() const {} + +// CalcAnimationNum__Q34nw4r3lyt12AnimResourceCFPQ34nw4r3lyt4Paneb +u16 AnimResource::CalcAnimationNum(Pane *pPane, bool bRecursive) const { + u16 linkNum; + const u32 *animContOffsets; + u16 i; + // const res::AnimationContent &animCont; + Pane *pFindPane; + Material *pFindMat; +} + +// CalcAnimationNum__Q34nw4r3lyt12AnimResourceCFPQ34nw4r3lyt5Groupb +u16 AnimResource::CalcAnimationNum(Group *pGroup, bool bRecursive) const { + u16 linkNum; + ut::LinkList paneList; + ut::LinkList::Iterator it; +} + +namespace detail { + +// FindAnimContent__Q44nw4r3lyt6detail12AnimPaneTreeFPCQ44nw4r3lyt3res14AnimationBlockPCcUc +u16 AnimPaneTree::FindAnimContent(const res::AnimationBlock *pAnimBlock, const char *animContName, u8 animContType) { + const u32 *animContOffsets; + u16 i; + const res::AnimationContent *pAnimCont; +} + +// Init__Q44nw4r3lyt6detail12AnimPaneTreeFv +void AnimPaneTree::Init() { + u8 i; +} + +// Set__Q44nw4r3lyt6detail12AnimPaneTreeFPQ34nw4r3lyt4PaneRCQ34nw4r3lyt12AnimResource +void AnimPaneTree::Set(Pane *pTargetPane, const AnimResource &animRes) { + u16 linkNum; + const res::AnimationBlock *pAnimBlock; + u16 animContIdx; + u8 animMatCnt; + u16 animMatIdxs[9]; + for (u8 i;;) {} + for (u8 i;;) {} +} + +// Bind__Q44nw4r3lyt6detail12AnimPaneTreeCFPQ34nw4r3lyt6LayoutPQ34nw4r3lyt4PanePQ34nw4r3lyt16ResourceAccessor +AnimTransform *AnimPaneTree::Bind(Layout *pLayout, Pane *pTargetPane, ResourceAccessor *pResAccessor) const { + AnimTransform *pAnimTrans; + AnimationLink *pCrAnimLink; + u8 animMatMax; + u8 i; + Material *pMaterial; +} + +// FindAnimationLink__Q34nw4r3lyt6detailFPQ34nw4r2ut38LinkListPQ34nw4r3lyt13AnimTransform +AnimationLink *FindAnimationLink(ut::LinkList *pAnimList, AnimTransform *pAnimTrans) { + // it +} + +// FindAnimationLink__Q34nw4r3lyt6detailFPQ34nw4r2ut38LinkListRCQ34nw4r3lyt12AnimResource +AnimationLink *FindAnimationLink(ut::LinkList *pAnimList, const AnimResource &animRes) { + // it +} + +// UnbindAnimationLink__Q34nw4r3lyt6detailFPQ34nw4r2ut38LinkListPQ34nw4r3lyt13AnimTransform +void UnbindAnimationLink(ut::LinkList *pAnimList, AnimTransform *pAnimTrans) { + // it, currIt +} + +// UnbindAnimationLink__Q34nw4r3lyt6detailFPQ34nw4r2ut38LinkListRCQ34nw4r3lyt12AnimResource +void UnbindAnimationLink(ut::LinkList *pAnimList, const AnimResource &animRes) { + // it, currIt +} + +} // namespace detail + +} // namespace lyt + +} // namespace nw4r diff --git a/src/nw4r/lyt/lyt_pane.cpp b/src/nw4r/lyt/lyt_pane.cpp index 02b26c4f..31364e9c 100644 --- a/src/nw4r/lyt/lyt_pane.cpp +++ b/src/nw4r/lyt/lyt_pane.cpp @@ -361,7 +361,7 @@ void Pane::AnimateSelf(u32 option) { // BindAnimation__Q34nw4r3lyt4PaneFPQ34nw4r3lyt13AnimTransformbb void Pane::BindAnimation(AnimTransform *pAnimTrans, bool bRecursive, bool bDisable) { - pAnimTrans->Bind(this, bRecursive); + pAnimTrans->Bind(this, bRecursive, bDisable); } // UnbindAnimation__Q34nw4r3lyt4PaneFPQ34nw4r3lyt13AnimTransformb