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
29class Multi2D : public sead::IDisposer // vtbl Address: 0x100E2A1C
30{
31public:
32 // Address: 0x026711C8
33 void createLayoutObj(sead::Heap* heap);
34
35 // Address: 0x0267122C
36 void animResRegister(const sead::SafeString& anim_res_name);
37
38 // Address: 0x02671680
39 nw::lyt::Animator* animStartSetup(s32 anim_index, const sead::SafeString& anim_res_name, nw::lyt::Animator::PlayType type);
40 // Address: 0x02671730
41 nw::lyt::Animator* reverseAnimeStartSetup(s32 anim_index, const sead::SafeString& anim_res_name, nw::lyt::Animator::PlayType type);
42
43 // Address: 0x026717E0
44 nw::lyt::Animator* groupAnimeStartSetup(s32 anim_index, const sead::SafeString& anim_res_name, s32 group, nw::lyt::Animator::PlayType type);
45 // Address: 0x026718A8
46 nw::lyt::Animator* groupReverseAnimeStartSetup(s32 anim_index, const sead::SafeString& anim_res_name, s32 group, nw::lyt::Animator::PlayType type);
47
48 // Address: 0x02671970
49 s32 getAnimGroupIndex(const sead::SafeString& anim_res_name, const sead::SafeString& group_name) const;
50
51 // Address: 0x02671AD4
52 const sead::SafeString& getAnimResName(s32 anim_index) const;
53
54 // Address: 0x02671AF4
55 nw::lyt::Animator* getAnimatorObj(s32 anim_index);
56
57 // Address: 0x02671B14
58 void setAnimFrame(s32 anim_index, f32 frame);
59 // Address: 0x02671B38
60 f32 getAnimFrame(s32 anim_index) const;
61
62 // Address: 0x02671B5C
63 void animEndSetup(s32 anim_index);
64
65 // Address: 0x02671BEC
66 f32 getAnimFrameSize(s32 anim_index) const;
67
68 // Address: 0x02671C48
69 nw::lyt::Pane* getRootPane();
70
71 // Address: 0x02671C54
72 void animResRegister(const sead::SafeString* anim_res_names, const s32& anim_res_num);
73
74 // Address: 0x02671D3C
75 void NPaneRegister(nw::lyt::Pane** panes, const sead::SafeString* names, const s32& num);
76 // Address: 0x02671E90
77 void PPaneRegister(nw::lyt::Picture** panes, const sead::SafeString* names, const s32& num);
78 // Address: 0x02672010
79 void TPaneRegister(TextBox** panes, const sead::SafeString* names, const s32& num);
80 // Address: 0x02672164
81 void BPaneRegister(nw::lyt::Bounding** panes, const sead::SafeString* names, const s32& num);
82 // Address: 0x026722B8
83 void WPaneRegister(nw::lyt::Window** panes, const sead::SafeString* names, const s32 num); // Whoops, somebody forgot the `&`
84
85 // Address: 0x026724D8
86 void PaRootPaneRegister(nw::lyt::Pane** panes, const sead::SafeString* parts_pane_names, const s32& num);
87 // Address: 0x02672544
88 void PaTPaneRegister(TextBox** panes, const sead::SafeString& parts_pane_name, const sead::SafeString* names, const s32& num);
89 // Address: 0x026725B8
90 void PaBPaneRegister(nw::lyt::Bounding** panes, const sead::SafeString& parts_pane_name, const sead::SafeString* names, const s32& num);
91 // Address: 0x0267262C
92 void PaPPaneRegister(nw::lyt::Picture** panes, const sead::SafeString& parts_pane_name, const sead::SafeString* names, const s32& num);
93 // Address: 0x026726A0
94 void PaNPaneRegister(nw::lyt::Pane** panes, const sead::SafeString& parts_pane_name, const sead::SafeString* names, const s32& num);
95
96 // Address: 0x02672828
97 void PaPaneRegister(nw::lyt::Parts** panes, const sead::SafeString* names, const s32& num);
98
99 // Address: 0x02672890
100 void animPlay(const sead::Matrix34f& view_mtx, const sead::Matrix34f* model_mtx = nullptr);
101 // Address: 0x02672A4C
102 void animPlay(s32 view_layer_id, const sead::Matrix34f* model_mtx = nullptr); // See: LayerMgr::Layer
103
104 // Address: 0x02672A78
105 void setPlayerColor(const sead::SafeString& color_anim_res_name, s32 player_no, s32 view_layer_id, bool force_5th_color);
106
107 // Address: 0x02672C90
108 void setTextBoxMessageFromTextID(TextBox& text_box, bool is_urcc);
109
110 // Address: 0x02672CE8
112
113 // Address: 0x02672D14
114 void draw(const sead::Matrix44f& proj_mtx);
115
116protected:
117 struct AnimRes
118 {
119 nw::lyt::GroupArrayAnimator* group_array_animator;
122 };
123 static_assert(sizeof(AnimRes) == 0xC);
124
132 static_assert(sizeof(Animation) == 0x14);
133
134protected:
135 // Address: 0x02672D5C
136 Multi2D(Animation* anim_buf, s32 anim_buf_size);
137 // Address: 0x02672E98
139
140 // Address: 0x0267153C
141 void animStartBaseSetup_(s32 anim_index, const sead::SafeString& anim_res_name, nw::lyt::Animator::PlayType type, f32 speed, nw::lyt::Animator* animator);
142
143 // Address: 0x02671CCC
144 nw::lyt::Pane* findPaneByName_(const sead::SafeString& name);
145 // Address: 0x02671DA4
146 nw::lyt::Picture* findPictureByName_(const sead::SafeString& name);
147 // Address: 0x02671EF8
148 TextBox* findTextBoxByName_(const sead::SafeString& name);
149 // Address: 0x02672078
150 nw::lyt::Bounding* findBoundingByName_(const sead::SafeString& name);
151 // Address: 0x026721CC
152 nw::lyt::Window* findWindowByName_(const sead::SafeString& name);
153 // Address: 0x0267273C
154 nw::lyt::Parts* findPartsByName_(const sead::SafeString& name);
155
156 // Address: 0x02672410
157 PartsLayoutObj* findPartsLayoutByPaneName_(const sead::SafeString& name);
158
159 // Address: 0x02672324
160 LayoutObj* getPartsLayoutObj_(const sead::SafeString& parts_pane_name);
161
162protected:
163 LayoutObj* mObj;
167 64,
168 AnimRes,
169 32
173};
174static_assert(sizeof(Multi2D) == 0xE88);
175
176class AnimText;
177class ArcResAccMulti;
178class FlexibleTextBox;
180
181class AnimLayoutBase : public Multi2D // vtbl Address: 0x100E2A2C
182{
183public:
184 // Address: 0x02672F04
185 AnimLayoutBase(Animation* anim_buf, s32 anim_buf_size);
186 // Address: 0x02672F80
188
189 // Address: 0x02673008
190 void readResource(const sead::SafeString& res_name);
191
192 // Address: 0x02673050
193 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);
194
195protected:
196 ArcResAccMulti* mResAcc;
197};
198static_assert(sizeof(AnimLayoutBase) == 0xE8C);
199
200class PartsAnimLayoutBase : public Multi2D // vtbl Address: 0x100E29D0
201{
202public:
203 // Address: 0x02673124
204 PartsAnimLayoutBase(Animation* anim_buf, s32 anim_buf_size);
205
206 // Address: 0x026731A0
207 void createLayoutObj(const Multi2D& parent, const sead::SafeString& parts_name);
208
209protected:
210 // Address: 0x02673198
211 void setLayoutObj_(LayoutObj* obj);
212};
213static_assert(sizeof(PartsAnimLayoutBase) == 0xE88);
214
215template <s32 N>
217{
218public:
221 {
222 }
223
224protected:
226};
227
228template <s32 N>
230{
231public:
236
237protected:
239};
Definition AnimLayout.h:182
AnimLayoutBase(Animation *anim_buf, s32 anim_buf_size)
void readResource(const sead::SafeString &res_name)
ArcResAccMulti * mResAcc
Definition AnimLayout.h:196
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:217
Animation mAnimation[N]
Definition AnimLayout.h:225
AnimLayout()
Definition AnimLayout.h:219
Definition AnimLayout.h:30
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:165
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:164
sead::Buffer< Animation > mAnimBuffer
Definition AnimLayout.h:171
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:170
nw::lyt::Picture * findPictureByName_(const sead::SafeString &name)
nw::lyt::Window * findWindowByName_(const sead::SafeString &name)
TagProcessor mTagProcessor
Definition AnimLayout.h:172
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:163
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:201
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:230
PartsAnimLayout()
Definition AnimLayout.h:232
Animation mAnimation[N]
Definition AnimLayout.h:238
Definition UtilCursorButtonMgr.h:6
Definition AnimLayout.h:118
nw::lyt::GroupArrayAnimator * group_array_animator
Definition AnimLayout.h:119
u32 group_num
Definition AnimLayout.h:120
nw::lyt::Animator ** animators
Definition AnimLayout.h:121
Definition AnimLayout.h:126
bool oneshot_playback_done
Definition AnimLayout.h:130
sead::SafeString anim_res_name
Definition AnimLayout.h:128
nw::lyt::Animator * animator
Definition AnimLayout.h:127
u32 _c
Definition AnimLayout.h:129