1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
|
//
// Generated By: dol2asm
// Translation Unit: d/meter/d_meter_hakusha
//
#include "d/meter/d_meter_hakusha.h"
#include "dol2asm.h"
#include "dolphin/types.h"
//
// Types:
//
struct dMeterSub_c {
/* 80194138 */ bool isDead();
};
struct dMeterHakusha_c {
/* 8020C320 */ dMeterHakusha_c(void*);
/* 8020C384 */ ~dMeterHakusha_c();
/* 8020C400 */ void _create();
/* 8020C808 */ void _execute(u32);
/* 8020C850 */ void draw();
/* 8020CABC */ void _delete();
/* 8020CC58 */ void alphaAnimeHakusha(u32);
/* 8020CD6C */ void updateHakusha();
/* 8020D258 */ void setAlphaHakushaAnimeMin();
/* 8020D308 */ void setAlphaHakushaAnimeMax();
/* 8020D3B8 */ void setAlphaButtonAnimeMin();
/* 8020D41C */ void setAlphaButtonAnimeMax();
/* 8020D480 */ void getHakushaNum();
};
struct JUtility {
struct TColor {};
};
struct CPaneMgrAlpha {
/* 802555C8 */ void show();
/* 80255608 */ void hide();
/* 802557D0 */ void setAlphaRate(f32);
/* 80255828 */ void getAlphaRate();
};
struct dMeter2Draw_c {
/* 8021462C */ void drawPikariHakusha(f32, f32, f32, f32, JUtility::TColor, JUtility::TColor,
JUtility::TColor, JUtility::TColor);
/* 8021A9C8 */ void setAlphaAnimeMin(CPaneMgrAlpha*, s16);
/* 8021AAA4 */ void setAlphaAnimeMax(CPaneMgrAlpha*, s16);
};
struct dComIfG_play_c {
/* 8002C97C */ void getLayerNo(int);
};
struct JKRExpHeap {};
struct JKRArchive {};
struct J2DGrafContext {};
struct J2DScreen {
/* 802F8498 */ J2DScreen();
/* 802F8648 */ void setPriority(char const*, u32, JKRArchive*);
/* 802F8ED4 */ void draw(f32, f32, J2DGrafContext const*);
};
struct J2DPane {};
struct CPaneMgr {
/* 80253984 */ CPaneMgr(J2DScreen*, u64, u8, JKRExpHeap*);
/* 802545B0 */ void paneTrans(f32, f32);
/* 80254EBC */ void getGlobalVtxCenter(J2DPane*, bool, s16);
};
//
// Forward References:
//
extern "C" void __ct__15dMeterHakusha_cFPv();
extern "C" void __dt__15dMeterHakusha_cFv();
extern "C" void _create__15dMeterHakusha_cFv();
extern "C" void _execute__15dMeterHakusha_cFUl();
extern "C" void draw__15dMeterHakusha_cFv();
extern "C" void _delete__15dMeterHakusha_cFv();
extern "C" void alphaAnimeHakusha__15dMeterHakusha_cFUl();
extern "C" void updateHakusha__15dMeterHakusha_cFv();
extern "C" void setAlphaHakushaAnimeMin__15dMeterHakusha_cFv();
extern "C" void setAlphaHakushaAnimeMax__15dMeterHakusha_cFv();
extern "C" void setAlphaButtonAnimeMin__15dMeterHakusha_cFv();
extern "C" void setAlphaButtonAnimeMax__15dMeterHakusha_cFv();
extern "C" void getHakushaNum__15dMeterHakusha_cFv();
extern "C" extern char const* const d_meter_d_meter_hakusha__stringBase0;
//
// External References:
//
extern "C" void getLayerNo__14dComIfG_play_cFi();
extern "C" bool isDead__11dMeterSub_cFv();
extern "C" void
drawPikariHakusha__13dMeter2Draw_cFffffQ28JUtility6TColorQ28JUtility6TColorQ28JUtility6TColorQ28JUtility6TColor();
extern "C" void setAlphaAnimeMin__13dMeter2Draw_cFP13CPaneMgrAlphas();
extern "C" void setAlphaAnimeMax__13dMeter2Draw_cFP13CPaneMgrAlphas();
extern "C" void __ct__8CPaneMgrFP9J2DScreenUxUcP10JKRExpHeap();
extern "C" void paneTrans__8CPaneMgrFff();
extern "C" void getGlobalVtxCenter__8CPaneMgrFP7J2DPanebs();
extern "C" void dPaneClass_showNullPane__FP9J2DScreen();
extern "C" void show__13CPaneMgrAlphaFv();
extern "C" void hide__13CPaneMgrAlphaFv();
extern "C" void setAlphaRate__13CPaneMgrAlphaFf();
extern "C" void getAlphaRate__13CPaneMgrAlphaFv();
extern "C" void* __nw__FUl();
extern "C" void __dl__FPv();
extern "C" void __ct__9J2DScreenFv();
extern "C" void setPriority__9J2DScreenFPCcUlP10JKRArchive();
extern "C" void draw__9J2DScreenFffPC14J2DGrafContext();
extern "C" void _savegpr_24();
extern "C" void _savegpr_26();
extern "C" void _savegpr_27();
extern "C" void _restgpr_24();
extern "C" void _restgpr_26();
extern "C" void _restgpr_27();
extern "C" void strcmp();
extern "C" extern void* __vt__12dDlst_base_c[3];
extern "C" extern void* __vt__11dMeterSub_c[8 + 3 /* padding */];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern u8 g_drawHIO[3880];
extern "C" extern u8 g_meter2_info[248];
//
// Declarations:
//
/* ############################################################################################## */
/* 803BF288-803BF2B8 01C3A8 0030+00 1/1 0/0 0/0 .data haku_tag$3719 */
SECTION_DATA static u8 haku_tag[48] = {
0x68, 0x61, 0x6B, 0x75, 0x5F, 0x6E, 0x30, 0x30, 0x68, 0x61, 0x6B, 0x75, 0x5F, 0x6E, 0x30, 0x31,
0x68, 0x61, 0x6B, 0x75, 0x5F, 0x6E, 0x30, 0x32, 0x68, 0x61, 0x6B, 0x75, 0x5F, 0x6E, 0x30, 0x33,
0x68, 0x61, 0x6B, 0x75, 0x5F, 0x6E, 0x30, 0x34, 0x68, 0x61, 0x6B, 0x75, 0x5F, 0x6E, 0x30, 0x35,
};
/* 803BF2B8-803BF2D8 01C3D8 0020+00 2/2 0/0 0/0 .data __vt__15dMeterHakusha_c */
SECTION_DATA extern void* __vt__15dMeterHakusha_c[8] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)draw__15dMeterHakusha_cFv,
(void*)__dt__15dMeterHakusha_cFv,
(void*)_create__15dMeterHakusha_cFv,
(void*)_execute__15dMeterHakusha_cFUl,
(void*)_delete__15dMeterHakusha_cFv,
(void*)isDead__11dMeterSub_cFv,
};
/* 8020C320-8020C384 206C60 0064+00 0/0 1/1 0/0 .text __ct__15dMeterHakusha_cFPv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dMeterHakusha_c::dMeterHakusha_c(void* param_0) {
nofralloc
#include "asm/d/meter/d_meter_hakusha/__ct__15dMeterHakusha_cFPv.s"
}
#pragma pop
/* 8020C384-8020C400 206CC4 007C+00 1/0 0/0 0/0 .text __dt__15dMeterHakusha_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dMeterHakusha_c::~dMeterHakusha_c() {
nofralloc
#include "asm/d/meter/d_meter_hakusha/__dt__15dMeterHakusha_cFv.s"
}
#pragma pop
/* ############################################################################################## */
/* 803981B0-803981B0 024810 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_803981B0 = "zelda_game_image_hakusha_parts.blo";
SECTION_DEAD static char const* const stringBase_803981D3 = "zelda_game_image_hakusha_a_btn.blo";
SECTION_DEAD static char const* const stringBase_803981F6 = "F_SP108";
#pragma pop
/* 80454800-80454804 002E00 0004+00 6/6 0/0 0/0 .sdata2 @3793 */
SECTION_SDATA2 static u8 lit_3793[4] = {
0x00,
0x00,
0x00,
0x00,
};
/* 80454804-80454808 002E04 0004+00 2/2 0/0 0/0 .sdata2 @3794 */
SECTION_SDATA2 static f32 lit_3794 = 28.399999618530273f;
/* 8020C400-8020C808 206D40 0408+00 1/0 0/0 0/0 .text _create__15dMeterHakusha_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeterHakusha_c::_create() {
nofralloc
#include "asm/d/meter/d_meter_hakusha/_create__15dMeterHakusha_cFv.s"
}
#pragma pop
/* 8020C808-8020C850 207148 0048+00 1/0 0/0 0/0 .text _execute__15dMeterHakusha_cFUl */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeterHakusha_c::_execute(u32 param_0) {
nofralloc
#include "asm/d/meter/d_meter_hakusha/_execute__15dMeterHakusha_cFUl.s"
}
#pragma pop
/* 8020C850-8020CABC 207190 026C+00 1/0 0/0 0/0 .text draw__15dMeterHakusha_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeterHakusha_c::draw() {
nofralloc
#include "asm/d/meter/d_meter_hakusha/draw__15dMeterHakusha_cFv.s"
}
#pragma pop
/* ############################################################################################## */
/* 80454808-8045480C 002E08 0004+00 3/3 0/0 0/0 .sdata2 @3936 */
SECTION_SDATA2 static f32 lit_3936 = 1.0f;
/* 8020CABC-8020CC58 2073FC 019C+00 1/0 0/0 0/0 .text _delete__15dMeterHakusha_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeterHakusha_c::_delete() {
nofralloc
#include "asm/d/meter/d_meter_hakusha/_delete__15dMeterHakusha_cFv.s"
}
#pragma pop
/* ############################################################################################## */
/* 803981B0-803981B0 024810 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_803981FE = "F_SP00";
/* @stringBase0 padding */
SECTION_DEAD static char const* const pad_80398205 = "\0\0";
#pragma pop
/* 8020CC58-8020CD6C 207598 0114+00 1/1 0/0 0/0 .text alphaAnimeHakusha__15dMeterHakusha_cFUl */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeterHakusha_c::alphaAnimeHakusha(u32 param_0) {
nofralloc
#include "asm/d/meter/d_meter_hakusha/alphaAnimeHakusha__15dMeterHakusha_cFUl.s"
}
#pragma pop
/* ############################################################################################## */
/* 8045480C-80454810 002E0C 0004+00 1/1 0/0 0/0 .sdata2 @4094 */
SECTION_SDATA2 static f32 lit_4094 = 18.0f;
/* 80454810-80454814 002E10 0004+00 1/1 0/0 0/0 .sdata2 @4095 */
SECTION_SDATA2 static f32 lit_4095 = 28.0f;
/* 80454814-80454818 002E14 0004+00 1/1 0/0 0/0 .sdata2 @4096 */
SECTION_SDATA2 static f32 lit_4096 = 20.0f;
/* 80454818-80454820 002E18 0008+00 1/1 0/0 0/0 .sdata2 @4098 */
SECTION_SDATA2 static f64 lit_4098 = 4503601774854144.0 /* cast s32 to float */;
/* 8020CD6C-8020D258 2076AC 04EC+00 1/1 0/0 0/0 .text updateHakusha__15dMeterHakusha_cFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeterHakusha_c::updateHakusha() {
nofralloc
#include "asm/d/meter/d_meter_hakusha/updateHakusha__15dMeterHakusha_cFv.s"
}
#pragma pop
/* 8020D258-8020D308 207B98 00B0+00 1/1 0/0 0/0 .text setAlphaHakushaAnimeMin__15dMeterHakusha_cFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeterHakusha_c::setAlphaHakushaAnimeMin() {
nofralloc
#include "asm/d/meter/d_meter_hakusha/setAlphaHakushaAnimeMin__15dMeterHakusha_cFv.s"
}
#pragma pop
/* 8020D308-8020D3B8 207C48 00B0+00 1/1 0/0 0/0 .text setAlphaHakushaAnimeMax__15dMeterHakusha_cFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeterHakusha_c::setAlphaHakushaAnimeMax() {
nofralloc
#include "asm/d/meter/d_meter_hakusha/setAlphaHakushaAnimeMax__15dMeterHakusha_cFv.s"
}
#pragma pop
/* 8020D3B8-8020D41C 207CF8 0064+00 1/1 0/0 0/0 .text setAlphaButtonAnimeMin__15dMeterHakusha_cFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeterHakusha_c::setAlphaButtonAnimeMin() {
nofralloc
#include "asm/d/meter/d_meter_hakusha/setAlphaButtonAnimeMin__15dMeterHakusha_cFv.s"
}
#pragma pop
/* 8020D41C-8020D480 207D5C 0064+00 1/1 0/0 0/0 .text setAlphaButtonAnimeMax__15dMeterHakusha_cFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeterHakusha_c::setAlphaButtonAnimeMax() {
nofralloc
#include "asm/d/meter/d_meter_hakusha/setAlphaButtonAnimeMax__15dMeterHakusha_cFv.s"
}
#pragma pop
/* 8020D480-8020D49C 207DC0 001C+00 2/2 0/0 0/0 .text getHakushaNum__15dMeterHakusha_cFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeterHakusha_c::getHakushaNum() {
nofralloc
#include "asm/d/meter/d_meter_hakusha/getHakushaNum__15dMeterHakusha_cFv.s"
}
#pragma pop
/* 803981B0-803981B0 024810 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|