#ifndef M3D_M_ANMTEXPAT_H #define M3D_M_ANMTEXPAT_H #include "m/m3d/m_bmdl.h" #include "m/m3d/m_fanm.h" #include "nw4r/g3d/g3d_anmtexpat.h" namespace m3d { class anmTexPat_c : public banm_c { class child_c : public fanm_c { public: child_c() {} virtual ~child_c(); virtual int getType() const override; static u32 heapCost(nw4r::g3d::ResMdl, nw4r::g3d::ResAnmTexPat, bool); bool create(nw4r::g3d::ResMdl, nw4r::g3d::ResAnmTexPat, mAllocator_c *, u32 *); void setAnm(m3d::bmdl_c &, nw4r::g3d::ResAnmTexPat, m3d::playMode_e); void releaseAnm(); void setFrmCtrlDefault(nw4r::g3d::ResAnmTexPat &, playMode_e); }; public: anmTexPat_c() : mpChildren(nullptr) {} virtual ~anmTexPat_c(); virtual int getType() const override; virtual void remove() override; virtual void play() override; bool create(nw4r::g3d::ResMdl, nw4r::g3d::ResAnmTexPat, mAllocator_c *, u32 *, s32); static u32 heapCost(nw4r::g3d::ResMdl, nw4r::g3d::ResAnmTexPat, s32, bool); void setAnm(bmdl_c &, nw4r::g3d::ResAnmTexPat, s32, playMode_e); void play(s32); f32 getFrame(s32) const; void setFrame(f32, s32); void setRate(f32, s32); bool isStop(s32) const; f32 getFrameMax(s32) const; void setFrameStart(f32, s32); private: child_c *mpChildren; }; } // namespace m3d #endif