New Super Mario Bros. U Headers
Loading...
Searching...
No Matches
AnimLayout.h
Go to the documentation of this file.
1#pragma once
2
3#include <layout_sys/LayoutAllocator.h>
4#include <layout_sys/TagProcessor.h>
5
6#include <container/seadBuffer.h>
7#include <container/seadStrTreeMap.h>
8#include <heap/seadDisposer.h>
9#include <math/seadMatrix.h>
10
11#include <nw/lyt/lyt_Animator.h>
12#include <nw/lyt/lyt_DrawInfo.h>
13
14namespace nw { namespace lyt {
15
16class Bounding;
17class GroupArrayAnimator;
18class Pane;
19class Parts;
20class Picture;
21class Window;
22
23} }
24
25class LayoutObj;
26class PartsLayoutObj;
27class TextBox;
28
29// vtbl Address: 0x100E2A1C
30class Multi2D : public sead::IDisposer
31{
32public:
33 // Address: 0x026711C8
34 void createLayoutObj(sead::Heap* heap);
35
36 // Address: 0x0267122C
37 void animResRegister(const sead::SafeString& anim_res_name);
38
39 // Address: 0x02671680
40 nw::lyt::Animator* animStartSetup(s32 anim_index, const sead::SafeString& anim_res_name, nw::lyt::Animator::PlayType type);
41 // Address: 0x02671730
42 nw::lyt::Animator* reverseAnimeStartSetup(s32 anim_index, const sead::SafeString& anim_res_name, nw::lyt::Animator::PlayType type);
43
44 // Address: 0x026717E0
45 nw::lyt::Animator* groupAnimeStartSetup(s32 anim_index, const sead::SafeString& anim_res_name, s32 group, nw::lyt::Animator::PlayType type);
46 // Address: 0x026718A8
47 nw::lyt::Animator* groupReverseAnimeStartSetup(s32 anim_index, const sead::SafeString& anim_res_name, s32 group, nw::lyt::Animator::PlayType type);
48
49 // Address: 0x02671970
50 s32 getAnimGroupIndex(const sead::SafeString& anim_res_name, const sead::SafeString& group_name) const;
51
52 // Address: 0x02671AD4
53 const sead::SafeString& getAnimResName(s32 anim_index) const;
54
55 // Address: 0x02671AF4
56 nw::lyt::Animator* getAnimatorObj(s32 anim_index);
57
58 // Address: 0x02671B14
59 void setAnimFrame(s32 anim_index, f32 frame);
60 // Address: 0x02671B38
61 f32 getAnimFrame(s32 anim_index) const;
62
63 // Address: 0x02671B5C
64 void animEndSetup(s32 anim_index);
65
66 // Address: 0x02671BEC
67 f32 getAnimFrameSize(s32 anim_index) const;
68
69 // Address: 0x02671C48
71
72 // Address: 0x02671C54
73 void animResRegister(const sead::SafeString* anim_res_names, const s32& anim_res_num);
74
75 // Address: 0x02671D3C
76 void NPaneRegister(nw::lyt::Pane** panes, const sead::SafeString* names, const s32& num);
77 // Address: 0x02671E90
78 void PPaneRegister(nw::lyt::Picture** panes, const sead::SafeString* names, const s32& num);
79 // Address: 0x02672010
80 void TPaneRegister(TextBox** panes, const sead::SafeString* names, const s32& num);
81 // Address: 0x02672164
82 void BPaneRegister(nw::lyt::Bounding** panes, const sead::SafeString* names, const s32& num);
83 // Address: 0x026722B8
84 void WPaneRegister(nw::lyt::Window** panes, const sead::SafeString* names, const s32 num); // Whoops, somebody forgot the `&`
85
86 // Address: 0x026724D8
87 void PaRootPaneRegister(nw::lyt::Pane** panes, const sead::SafeString* parts_pane_names, const s32& num);
88 // Address: 0x02672544
89 void PaTPaneRegister(TextBox** panes, const sead::SafeString& parts_pane_name, const sead::SafeString* names, const s32& num);
90 // Address: 0x026725B8
91 void PaBPaneRegister(nw::lyt::Bounding** panes, const sead::SafeString& parts_pane_name, const sead::SafeString* names, const s32& num);
92 // Address: 0x0267262C
93 void PaPPaneRegister(nw::lyt::Picture** panes, const sead::SafeString& parts_pane_name, const sead::SafeString* names, const s32& num);
94 // Address: 0x026726A0
95 void PaNPaneRegister(nw::lyt::Pane** panes, const sead::SafeString& parts_pane_name, const sead::SafeString* names, const s32& num);
96
97 // Address: 0x02672828
98 void PaPaneRegister(nw::lyt::Parts** panes, const sead::SafeString* names, const s32& num);
99
100 // Address: 0x02672890
101 void animPlay(const sead::Matrix34f& view_mtx, const sead::Matrix34f* model_mtx = nullptr);
102 // Address: 0x02672A4C
103 void animPlay(s32 view_layer_id, const sead::Matrix34f* model_mtx = nullptr); // See: LayerMgr::Layer
104
105 // Address: 0x02672A78
106 void setPlayerColor(const sead::SafeString& color_anim_res_name, s32 player_no, s32 view_layer_id, bool force_5th_color);
107
108 // Address: 0x02672C90
109 void setTextBoxMessageFromTextID(TextBox& text_box, bool is_urcc);
110
111 // Address: 0x02672CE8
113
114 // Address: 0x02672D14
115 void draw(const sead::Matrix44f& proj_mtx);
116
117protected:
118 struct AnimRes
119 {
120 nw::lyt::GroupArrayAnimator* group_array_animator;
123 };
124 static_assert(sizeof(AnimRes) == 0xC);
125
133 static_assert(sizeof(Animation) == 0x14);
134
135protected:
136 // Address: 0x02672D5C
137 Multi2D(Animation* anim_buf, s32 anim_buf_size);
138 // Address: 0x02672E98
140
141 // Address: 0x0267153C
142 void animStartBaseSetup_(s32 anim_index, const sead::SafeString& anim_res_name, nw::lyt::Animator::PlayType type, f32 speed, nw::lyt::Animator* animator);
143
144 // Address: 0x02671CCC
145 nw::lyt::Pane* findPaneByName_(const sead::SafeString& name);
146 // Address: 0x02671DA4
147 nw::lyt::Picture* findPictureByName_(const sead::SafeString& name);
148 // Address: 0x02671EF8
149 TextBox* findTextBoxByName_(const sead::SafeString& name);
150 // Address: 0x02672078
151 nw::lyt::Bounding* findBoundingByName_(const sead::SafeString& name);
152 // Address: 0x026721CC
153 nw::lyt::Window* findWindowByName_(const sead::SafeString& name);
154 // Address: 0x0267273C
155 nw::lyt::Parts* findPartsByName_(const sead::SafeString& name);
156
157 // Address: 0x02672410
158 PartsLayoutObj* findPartsLayoutByPaneName_(const sead::SafeString& name);
159
160 // Address: 0x02672324
161 LayoutObj* getPartsLayoutObj_(const sead::SafeString& parts_pane_name);
162
163protected:
164 LayoutObj* mObj;
168 64,
169 AnimRes,
170 32
174};
175static_assert(sizeof(Multi2D) == 0xE88);
176
177class AnimText;
178class ArcResAccMulti;
179class FlexibleTextBox;
181
182// vtbl Address: 0x100E2A2C
184{
185public:
186 // Address: 0x02672F04
187 AnimLayoutBase(Animation* anim_buf, s32 anim_buf_size);
188 // Address: 0x02672F80
190
191 // Address: 0x02673008
192 void readResource(const sead::SafeString& res_name);
193
194 // Address: 0x02673050
195 void build(const sead::SafeString& lyt_filename, UtilCursorButtonMgr* cursor_btn_mgr = nullptr, sead::OffsetList<FlexibleTextBox>* flexible_text_box_list = nullptr, sead::OffsetList<AnimText>* anim_text_list = nullptr);
196
197protected:
198 ArcResAccMulti* mResAcc;
199};
200static_assert(sizeof(AnimLayoutBase) == 0xE8C);
201
202// vtbl Address: 0x100E29D0
204{
205public:
206 // Address: 0x02673124
207 PartsAnimLayoutBase(Animation* anim_buf, s32 anim_buf_size);
208
209 // Address: 0x026731A0
210 void createLayoutObj(const Multi2D& parent, const sead::SafeString& parts_name);
211
212protected:
213 // Address: 0x02673198
214 void setLayoutObj_(LayoutObj* obj);
215};
216static_assert(sizeof(PartsAnimLayoutBase) == 0xE88);
217
218template <s32 N>
220{
221public:
224 {
225 }
226
227protected:
229};
230
231template <s32 N>
233{
234public:
239
240protected:
242};
Definition AnimLayout.h:184
AnimLayoutBase(Animation *anim_buf, s32 anim_buf_size)
void readResource(const sead::SafeString &res_name)
ArcResAccMulti * mResAcc
Definition AnimLayout.h:198
void build(const sead::SafeString &lyt_filename, UtilCursorButtonMgr *cursor_btn_mgr=nullptr, sead::OffsetList< FlexibleTextBox > *flexible_text_box_list=nullptr, sead::OffsetList< AnimText > *anim_text_list=nullptr)
~AnimLayoutBase() override
Definition AnimLayout.h:220
Animation mAnimation[N]
Definition AnimLayout.h:228
AnimLayout()
Definition AnimLayout.h:222
Definition AnimLayout.h:31
nw::lyt::Animator * reverseAnimeStartSetup(s32 anim_index, const sead::SafeString &anim_res_name, nw::lyt::Animator::PlayType type)
void NPaneRegister(nw::lyt::Pane **panes, const sead::SafeString *names, const s32 &num)
nw::lyt::Pane * findPaneByName_(const sead::SafeString &name)
nw::lyt::DrawInfo mDrawInfo
Definition AnimLayout.h:166
void animPlay(const sead::Matrix34f &view_mtx, const sead::Matrix34f *model_mtx=nullptr)
PartsLayoutObj * findPartsLayoutByPaneName_(const sead::SafeString &name)
nw::lyt::Parts * findPartsByName_(const sead::SafeString &name)
void WPaneRegister(nw::lyt::Window **panes, const sead::SafeString *names, const s32 num)
nw::lyt::Animator * groupAnimeStartSetup(s32 anim_index, const sead::SafeString &anim_res_name, s32 group, nw::lyt::Animator::PlayType type)
nw::lyt::Bounding * findBoundingByName_(const sead::SafeString &name)
void setAnimFrame(s32 anim_index, f32 frame)
void animResRegister(const sead::SafeString *anim_res_names, const s32 &anim_res_num)
void BPaneRegister(nw::lyt::Bounding **panes, const sead::SafeString *names, const s32 &num)
void TPaneRegister(TextBox **panes, const sead::SafeString *names, const s32 &num)
void PaBPaneRegister(nw::lyt::Bounding **panes, const sead::SafeString &parts_pane_name, const sead::SafeString *names, const s32 &num)
TextBox * findTextBoxByName_(const sead::SafeString &name)
LayoutAllocator mAllocator
Definition AnimLayout.h:165
sead::Buffer< Animation > mAnimBuffer
Definition AnimLayout.h:172
void PaNPaneRegister(nw::lyt::Pane **panes, const sead::SafeString &parts_pane_name, const sead::SafeString *names, const s32 &num)
f32 getAnimFrame(s32 anim_index) const
void PaTPaneRegister(TextBox **panes, const sead::SafeString &parts_pane_name, const sead::SafeString *names, const s32 &num)
s32 getAnimGroupIndex(const sead::SafeString &anim_res_name, const sead::SafeString &group_name) const
void initializeLayoutObj_()
void setTextBoxMessageFromTextID(TextBox &text_box, bool is_urcc)
void animEndSetup(s32 anim_index)
Multi2D(Animation *anim_buf, s32 anim_buf_size)
void PaPaneRegister(nw::lyt::Parts **panes, const sead::SafeString *names, const s32 &num)
void animStartBaseSetup_(s32 anim_index, const sead::SafeString &anim_res_name, nw::lyt::Animator::PlayType type, f32 speed, nw::lyt::Animator *animator)
LayoutObj * getPartsLayoutObj_(const sead::SafeString &parts_pane_name)
~Multi2D() override
nw::lyt::Animator * getAnimatorObj(s32 anim_index)
nw::lyt::Animator * animStartSetup(s32 anim_index, const sead::SafeString &anim_res_name, nw::lyt::Animator::PlayType type)
void animResRegister(const sead::SafeString &anim_res_name)
void animPlay(s32 view_layer_id, const sead::Matrix34f *model_mtx=nullptr)
void createLayoutObj(sead::Heap *heap)
nw::lyt::Pane * getRootPane()
sead::FixedStrTreeMap< 64, AnimRes, 32 > mAnimResMap
Definition AnimLayout.h:171
nw::lyt::Picture * findPictureByName_(const sead::SafeString &name)
nw::lyt::Window * findWindowByName_(const sead::SafeString &name)
TagProcessor mTagProcessor
Definition AnimLayout.h:173
nw::lyt::Animator * groupReverseAnimeStartSetup(s32 anim_index, const sead::SafeString &anim_res_name, s32 group, nw::lyt::Animator::PlayType type)
LayoutObj * mObj
Definition AnimLayout.h:164
const sead::SafeString & getAnimResName(s32 anim_index) const
void draw(const sead::Matrix44f &proj_mtx)
void PaPPaneRegister(nw::lyt::Picture **panes, const sead::SafeString &parts_pane_name, const sead::SafeString *names, const s32 &num)
void setPlayerColor(const sead::SafeString &color_anim_res_name, s32 player_no, s32 view_layer_id, bool force_5th_color)
f32 getAnimFrameSize(s32 anim_index) const
void PaRootPaneRegister(nw::lyt::Pane **panes, const sead::SafeString *parts_pane_names, const s32 &num)
void PPaneRegister(nw::lyt::Picture **panes, const sead::SafeString *names, const s32 &num)
Definition AnimLayout.h:204
void setLayoutObj_(LayoutObj *obj)
void createLayoutObj(const Multi2D &parent, const sead::SafeString &parts_name)
PartsAnimLayoutBase(Animation *anim_buf, s32 anim_buf_size)
Definition AnimLayout.h:233
PartsAnimLayout()
Definition AnimLayout.h:235
Animation mAnimation[N]
Definition AnimLayout.h:241
Definition TextBox.h:9
Definition UtilCursorButtonMgr.h:6
Definition AnimLayout.h:119
nw::lyt::GroupArrayAnimator * group_array_animator
Definition AnimLayout.h:120
u32 group_num
Definition AnimLayout.h:121
nw::lyt::Animator ** animators
Definition AnimLayout.h:122
Definition AnimLayout.h:127
bool oneshot_playback_done
Definition AnimLayout.h:131
sead::SafeString anim_res_name
Definition AnimLayout.h:129
nw::lyt::Animator * animator
Definition AnimLayout.h:128
u32 _c
Definition AnimLayout.h:130