24class AnmObjTexSrt :
public AnmObj {
26 AnmObjTexSrt(
MEMAllocator* pAllocator, u16* pBindingBuf,
int numBinding);
27 virtual void G3dProc(ulong task, ulong param,
void* pInfo) = 0;
28 virtual ~AnmObjTexSrt() {}
30 virtual void SetFrame(f32 frame) = 0;
31 virtual f32 GetFrame()
const = 0;
32 virtual void UpdateFrame() = 0;
34 virtual void SetUpdateRate(f32 rate) = 0;
35 virtual f32 GetUpdateRate()
const = 0;
37 virtual bool Bind(
const ResMdl mdl) = 0;
38 virtual void Release();
45 virtual void DetachAll();
47 bool TestExistence(ulong idx)
const;
48 bool TestDefined(ulong idx)
const;
52 BINDING_ID_MASK = (1 << 14) - 1,
53 BINDING_INVALID = (1 << 14),
54 BINDING_UNDEFINED = (1 << 15),
58 static const int MAX_CHILD = 4;
64 NW4R_G3D_RTTI_DECL_DERIVED(AnmObjTexSrt, AnmObj);
108class AnmObjTexSrtOverride :
public AnmObjTexSrtNode {
110 static AnmObjTexSrtOverride* Construct(
MEMAllocator* pAllocator,
size_t* pSize,
111 ResMdl mdl,
int numChildren);
113 AnmObjTexSrtOverride(
MEMAllocator* pAllocator, u16* pBindingBuf,
116 : AnmObjTexSrtNode(pAllocator, pBindingBuf, numBinding, ppChildrenBuf,
119 virtual ~AnmObjTexSrtOverride() {}
124 NW4R_G3D_RTTI_DECL_DERIVED(AnmObjTexSrtOverride, AnmObjTexSrtNode);
132class AnmObjTexSrtRes :
public AnmObjTexSrt,
protected FrameCtrl {
134 static AnmObjTexSrtRes* Construct(
MEMAllocator* pAllocator,
size_t* pSize,
138 u16* pBindingBuf,
int numBinding,
140 virtual void G3dProc(ulong task, ulong param,
void* pInfo);
141 virtual ~AnmObjTexSrtRes() {}
143 virtual void SetFrame(f32 frame);
144 virtual f32 GetFrame()
const;
145 virtual void UpdateFrame();
147 virtual void SetUpdateRate(f32 rate);
148 virtual f32 GetUpdateRate()
const;
150 virtual bool Bind(
const ResMdl mdl);
161 void SetPlayPolicy(PlayPolicyFunc pFunc) {
162 FrameCtrl::SetPlayPolicy(pFunc);
169 NW4R_G3D_RTTI_DECL_DERIVED(AnmObjTexSrtRes, AnmObjTexSrt);