New Super Mario Bros. U Headers
Loading...
Searching...
No Matches
PlayerModel.h
Go to the documentation of this file.
1#pragma once
2
3#include <graphics/AnimExpDecayCalcRatio.h>
4#include <player/PlayerEnum.h>
5#include <player/PlayerModelBase.h>
6
15static_assert(sizeof(PlayerObjectResHIO) == 0x74);
16
17class PlayerModel : public PlayerModelBase // vtbl Address: 0x1016BA2C
18{
19 // getRuntimeTypeInfoStatic()::typeInfo initialization guard variable Address: 0x101E9D28
20 // getRuntimeTypeInfoStatic()::typeInfo Address: 0x101EBA74
21 SEAD_RTTI_OVERRIDE(PlayerModel, PlayerModelBase)
22
23public:
31 static_assert(sizeof(ColorType) == 4);
32
61 static_assert(cJointID_Num == 24);
62
69
75
76public:
77 // Address: 0x0291A230
78 PlayerModel(const PlayerObjectResHIO& res_hio, Type type, PlayerMode mode, SceneType scene_type, bool override_lightmap);
79
80 virtual ~PlayerModel()
81 {
82 }
83
84 // Address: 0x02920A18
86
87 // Address: 0x0291A3D8
88 void draw() override;
89
90 // Address: 0x0291A420
91 f32 getBaseScale() override;
92
93 // Address: 0x0291A444
94 void setModelDrawBufferIndex(s32 idx_opa, s32 idx_xlu) override;
95 // Address: 0x0291A530
96 void setModelDrawFlagDirect(u32 flag) override;
97
98 // Address: 0x0291A720
99 void setDark(DarkTargetType type, f32 value) override;
100
101 // Address: 0x0291A744
103 // Address: 0x0291A768
105
107 {
108 return mPlayerMode;
109 }
110
111 // Address: 0x0291AC9C
112 void setPlayerMode(PlayerMode mode);
113
114 // Address: 0x0291ADF0
115 bool getHeadPropelJointMtx(sead::Matrixf* mtx);
116
117 // Address: 0x0291AE58
119 // Address: 0x0291AFAC
121
122 // Address: 0x0291AFF4
123 bool isFaceRot();
124 // Address: 0x0291B004
126
127 virtual void setColorType(ColorType color_type, bool keep_head_konst3) = 0;
128
129 virtual void setMiiColor(PlayerCharacter mii_color)
130 {
131 }
132
133 virtual void setCapMode(CapMode mode)
134 {
135 }
136
137 virtual void updateBonusCap()
138 {
139 }
140
141 virtual void setMusaPtoNmlAnm()
142 {
143 }
144
145 virtual void setPlayerNo(s32 player_no)
146 {
147 mPlayerNo = player_no;
148 }
149
150 virtual void setMiiCapVisible(bool visible)
151 {
152 }
153
154 virtual bool isMiiCapVisible()
155 {
156 return false;
157 }
158
160 {
161 return mNowModeModel;
162 }
163
164 // Address: 0x0291BEEC
165 virtual void setModeModel(PlayerModeModel mode_mdl);
166
167 // Address: 0x0291BF94
168 void setTexAnmType(TexAnmType type) override;
169
170 virtual void setTexAnmTypeImpl(TexAnmType type) = 0;
171
172 // Address: 0x0291C4D8
173 bool setPersonalAnm(ModelResource** anm_res, sead::BufferedSafeString* anm_name, s32 anm_id, bool body) override;
174 // Address: 0x0291DDE4
175 bool setPersonalRideAnm(ModelResource** anm_res, sead::BufferedSafeString* anm_name, s32 anm_id) override;
176
177 // Address: 0x0291E8C0
178 void setAnm(s32 anm_id, f32 rate, f32 blend_duration = 0.0f, f32 frame = 0.0f) override;
179 // Address: 0x0291E9A8
180 void setFootAnmImpl(const ModelResource* anm_res, const sead::SafeString& anm_name, FrameCtrl::PlayMode mode, f32 rate, f32 frame, f32 blend_duration) override;
181 // Address: 0x0291EB30
182 void setBodyAnmImpl(const ModelResource* anm_res, const sead::SafeString& anm_name, FrameCtrl::PlayMode mode, f32 rate, f32 frame, f32 blend_duration) override;
183 // Address: 0x0291ED04
184 void releaseBodyAnm(f32 blend_duration) override;
185 // Address: 0x0291EF78
186 void setCarryBodyAnm(f32 blend_duration, bool bubble_reset_frame) override;
187
188 // Address: 0x0291F180
190
192 virtual f32 vf144() = 0;
193
194 // Address: 0x0291F6B8
195 virtual void onPMusaChange();
196
197 // Address: 0x0291F8F8
198 virtual void setStarAnm();
199 // Address: 0x0291FB58
201 // Address: 0x0291FB64
203
204 virtual f32 getTevColor0Alpha(s32 idx_material) = 0;
205 virtual void setTevColor0Alpha(s32 idx_material, f32 value) = 0;
206
207 // Address: 0x0291FB9C
208 virtual void setInvTevColor0(f32 value);
209 // Address: 0x0291FD90
210 virtual void setTevKColor3(f32 value);
211
212 // Address: 0x0291FF7C
213 virtual void setJointMap();
214
215 // Address: 0x02920118
216 void getJointMtx(sead::Matrixf* mtx, const sead::SafeString& name) override;
217
218 void setPropelRollAngle(const Angle& angle)
219 {
220 mPropelRollAngle = angle;
221 }
222
223 void setPropelRollSpeed(const Angle& speed)
224 {
225 mPropelRollSpeed = speed;
226 }
227
228 void setPropelScale(f32 scale)
229 {
230 mPropelScale = scale;
231 }
232
233 AnimModel* getBodyModel(PlayerModeModel mode_mdl)
234 {
235 return mModelArray[mode_mdl];
236 }
237
238 AnimModel* getHeadModel(PlayerModeModel mode_mdl)
239 {
240 return mModelArray[mode_mdl];
241 }
242
243protected:
272};
273static_assert(sizeof(PlayerModel) == 0x218);
Definition PlayerModel.h:18
Angle mFaceAngle
Definition PlayerModel.h:257
PlayerModeModel mOldModeModel
Definition PlayerModel.h:248
virtual void setJointMap()
s32 mFaceRotFrameCnt
Definition PlayerModel.h:260
virtual void setTevColor0Alpha(s32 idx_material, f32 value)=0
virtual bool isMiiCapVisible()
Definition PlayerModel.h:154
bool getHeadPropelJointMtx(sead::Matrixf *mtx)
virtual void setPlayerNo(s32 player_no)
Definition PlayerModel.h:145
virtual void setTexAnmTypeImpl(TexAnmType type)=0
virtual void setMusaPtoNmlAnm()
Definition PlayerModel.h:141
void setTexAnmType(TexAnmType type) override
AnimModel * getHeadModel(PlayerModeModel mode_mdl)
Definition PlayerModel.h:238
DarkTargetType mDarkTargetType
Definition PlayerModel.h:268
virtual void removeStarAnm_OldModeModel()
bool setPersonalAnm(ModelResource **anm_res, sead::BufferedSafeString *anm_name, s32 anm_id, bool body) override
PlayerMode getPlayerMode()
Definition PlayerModel.h:106
bool isFaceRot()
sead::BitFlag32 mEnvTypeFlag
Definition PlayerModel.h:270
bool checkChange_MusaPtoNml()
virtual void setInvTevColor0(f32 value)
virtual void updateBonusCap()
Definition PlayerModel.h:137
bool mClampFaceRotTimer
Definition PlayerModel.h:261
PlayerMode mPlayerModeOverride
Definition PlayerModel.h:255
AnimExpDecayCalcRatio mCalcRatio
Definition PlayerModel.h:253
void setAnm(s32 anm_id, f32 rate, f32 blend_duration=0.0f, f32 frame=0.0f) override
void getJointMtx(sead::Matrixf *mtx, const sead::SafeString &name) override
void onStarAnm() override
virtual void setTevKColor3(f32 value)
f32 getBaseScale() override
sead::SafeArray< AnimModel *, cPlayerModeModel_Num > mModelArray
Definition PlayerModel.h:244
void setPropelRollAngle(const Angle &angle)
Definition PlayerModel.h:218
void setDark(DarkTargetType type, f32 value) override
void setModelDrawFlagDirect(u32 flag) override
virtual void setMiiColor(PlayerCharacter mii_color)
Definition PlayerModel.h:129
virtual f32 getAimMotionShareScale()=0
JointID
Definition PlayerModel.h:34
@ cJointID_LegL2
Definition PlayerModel.h:38
@ cJointID_WingLegR
Definition PlayerModel.h:53
@ cJointID_LegL1
Definition PlayerModel.h:37
@ cJointID_LegR2
Definition PlayerModel.h:41
@ cJointID_ArmR2
Definition PlayerModel.h:48
@ cJointID_ArmL2
Definition PlayerModel.h:45
@ cJointID_WingArmR
Definition PlayerModel.h:55
@ cJointID_AnkleR1
Definition PlayerModel.h:42
@ cJointID_WingTail2
Definition PlayerModel.h:58
@ cJointID_Face1
Definition PlayerModel.h:51
@ cJointID_AnkleL1
Definition PlayerModel.h:39
@ cJointID_ArmR1
Definition PlayerModel.h:47
@ cJointID_Num
Definition PlayerModel.h:59
@ cJointID_Spin
Definition PlayerModel.h:43
@ cJointID_CapPosition
Definition PlayerModel.h:50
@ cJointID_WingLegL
Definition PlayerModel.h:52
@ cJointID_WingTail1
Definition PlayerModel.h:57
@ cJointID_Wing
Definition PlayerModel.h:56
@ cJointID_SklRoot
Definition PlayerModel.h:36
@ cJointID_ArmL1
Definition PlayerModel.h:44
@ cJointID_WristR1
Definition PlayerModel.h:49
@ cJointID_WingArmL
Definition PlayerModel.h:54
@ cJointID_WristL1
Definition PlayerModel.h:46
@ cJointID_AllRoot
Definition PlayerModel.h:35
@ cJointID_LegR1
Definition PlayerModel.h:40
void setPropelScale(f32 scale)
Definition PlayerModel.h:228
void postChange_MusaPtoNml()
sead::SafeArray< AnimModel *, cPlayerModeModel_Num > mHeadModelArray
Definition PlayerModel.h:245
void calc2Impl() override
f32 mBlendRate_v1
Definition PlayerModel.h:266
void setBodyAnmImpl(const ModelResource *anm_res, const sead::SafeString &anm_name, FrameCtrl::PlayMode mode, f32 rate, f32 frame, f32 blend_duration) override
sead::SafeArray< s32, cJointID_Num > mJointMap
Definition PlayerModel.h:251
ColorType mColorType
Definition PlayerModel.h:256
bool setPersonalRideAnm(ModelResource **anm_res, sead::BufferedSafeString *anm_name, s32 anm_id) override
Angle mFaceAngleTarget
Definition PlayerModel.h:258
EnvTypeFlag
Definition PlayerModel.h:71
@ cEnvTypeFlag_Star
Definition PlayerModel.h:72
@ cEnvTypeFlag_P
Definition PlayerModel.h:73
void offStarAnm() override
f32 mDarkColorValue
Definition PlayerModel.h:269
f32 mBlendRate_v0
Definition PlayerModel.h:265
f32 mBlendRate_v2
Definition PlayerModel.h:267
virtual void onPMusaChange()
Angle mPropelRollSpeed
Definition PlayerModel.h:263
Angle mPropelRollAngle
Definition PlayerModel.h:262
virtual ~PlayerModel()
Definition PlayerModel.h:80
void setClampFaceRot()
sead::BitFlag16 mModeModelLoadFlag
Definition PlayerModel.h:250
void setFootAnmImpl(const ModelResource *anm_res, const sead::SafeString &anm_name, FrameCtrl::PlayMode mode, f32 rate, f32 frame, f32 blend_duration) override
virtual void setCapMode(CapMode mode)
Definition PlayerModel.h:133
void setPlayerMode(PlayerMode mode)
AnimModel * mHeadModel
Definition PlayerModel.h:247
void draw() override
virtual void setModeModel(PlayerModeModel mode_mdl)
void setPropelRollSpeed(const Angle &speed)
Definition PlayerModel.h:223
EnvType
Definition PlayerModel.h:64
@ cEnvType_Normal
Definition PlayerModel.h:65
@ cEnvType_Star
Definition PlayerModel.h:66
@ cEnvType_P
Definition PlayerModel.h:67
s32 mFaceRotTimer
Definition PlayerModel.h:259
virtual void removeStarAnm_NowModeModel()
PlayerModel(const PlayerObjectResHIO &res_hio, Type type, PlayerMode mode, SceneType scene_type, bool override_lightmap)
virtual void setStarAnm()
PlayerModeModel mNowModeModel
Definition PlayerModel.h:249
virtual f32 vf144()=0
bool mOverrideLightMap
Definition PlayerModel.h:271
const PlayerObjectResHIO & mResHio
Definition PlayerModel.h:246
void setAnmBind() override
PlayerMode mPlayerMode
Definition PlayerModel.h:254
f32 mPropelScale
Definition PlayerModel.h:264
PlayerModeModel getModeModel()
Definition PlayerModel.h:159
void setCarryBodyAnm(f32 blend_duration, bool bubble_reset_frame) override
virtual void setColorType(ColorType color_type, bool keep_head_konst3)=0
s32 mPlayerNo
Definition PlayerModel.h:252
void setModelDrawBufferIndex(s32 idx_opa, s32 idx_xlu) override
void releaseBodyAnm(f32 blend_duration) override
AnimModel * getBodyModel(PlayerModeModel mode_mdl)
Definition PlayerModel.h:233
virtual void setMiiCapVisible(bool visible)
Definition PlayerModel.h:150
virtual f32 getTevColor0Alpha(s32 idx_material)=0
Definition PlayerModel.h:8
sead::SafeString anm_res_key
Definition PlayerModel.h:10
sead::SafeString body_mdl_name[cPlayerModeModel_Num]
Definition PlayerModel.h:11
sead::SafeString model_res_key
Definition PlayerModel.h:9
f32 head_top_offs[cPlayerModeModel_Num]
Definition PlayerModel.h:13
sead::SafeString head_mdl_name[cPlayerModeModel_Num]
Definition PlayerModel.h:12