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