NSMBW-Decomp
A decompilation of New Super Mario Bros. Wii
Loading...
Searching...
No Matches
mdl.hpp
1#pragma once
2#include <game/mLib/m_3d/calc_ratio.hpp>
3#include <game/mLib/m_3d/smdl.hpp>
4#include <nw4r/g3d.h>
5
6namespace m3d {
7 class mdl_c : public smdl_c {
8
9 class callback_c {
10 public:
11 virtual ~callback_c();
12 virtual void timingA(ulong nodeId, nw4r::g3d::ChrAnmResult *anmRes, nw4r::g3d::ResMdl resMdl);
13 virtual void timingB(ulong nodeId, nw4r::g3d::WorldMtxManip *manip, nw4r::g3d::ResMdl resMdl);
14 virtual void timingC(nw4r::math::MTX34 *mtx, nw4r::g3d::ResMdl resMdl);
15 };
16
17 class mdlCallback_c {
18 public:
19 mdlCallback_c();
20 virtual ~mdlCallback_c();
21
22 virtual void ExecCallbackA(nw4r::g3d::ChrAnmResult *anmRes, nw4r::g3d::ResMdl resMdl, nw4r::g3d::FuncObjCalcWorld *cw);
23 virtual void ExecCallbackB(nw4r::g3d::WorldMtxManip *manip, nw4r::g3d::ResMdl resMdl, nw4r::g3d::FuncObjCalcWorld *cw);
24 virtual void ExecCallbackC(nw4r::math::MTX34 *mtx, nw4r::g3d::ResMdl resMdl, nw4r::g3d::FuncObjCalcWorld *cw);
25
26 bool create(nw4r::g3d::ResMdl resMdl, mAllocator_c *allocator, size_t *pSize);
27 void remove();
28 void setBlendFrame(float blendFrame);
29 void calcBlend();
30
31 calcRatio_c mCalcRatio;
32 int mNodeCount;
33 nw4r::g3d::ChrAnmResult *mpNodeResults;
34 callback_c *mpCallback;
35 mAllocator_c *mpAllocator;
36 };
37
38 public:
39 mdl_c();
40 virtual ~mdl_c();
41
42 virtual void remove();
43
44 bool create(nw4r::g3d::ResMdl resMdl, mAllocator_c *allocator, ulong bufferOption, int viewCount, size_t *pSize);
45 void setCallback(callback_c *callback);
46
47 void setAnm(m3d::banm_c &anm);
48 void setAnm(m3d::banm_c &anm, float blendFrame);
49
50 void play();
51
52 private:
53 mdlCallback_c mCallback;
54 };
55}
Class to smoothly blend between two values.
An allocator class that wraps an EGG:Allocator .
mLib 3D library
Definition anm_chr.hpp:5