summaryrefslogtreecommitdiff
path: root/src/d/d_k_wmark.cpp
blob: b36b703b5ba9d0b418095c5b5d2325481b5abff8 (plain)
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
//
// Generated By: dol2asm
// Translation Unit: d/d_k_wmark
//

#include "d/d_k_wmark.h"
#include "dol2asm.h"
#include "dolphin/types.h"

//
// Types:
//

struct mDoMtx_stack_c {
    static u8 now[48];
};

struct mDoLib_clipper {
    static u8 mClipper[92];
};

struct kankyo_class {};

struct cXyz {
    /* 80009184 */ ~cXyz();
    /* 80267128 */ void atan2sX_Z() const;
};

struct fopAcM_gc_c {
    /* 8001DCBC */ void gndCheck(cXyz const*);

    static u8 mGndCheck[84];
    static f32 mGroundY;
};

struct dkWmark_c {
    /* 80261640 */ ~dkWmark_c();
    /* 802616C4 */ void setMatrix();

    static u8 m_nowID[4];
};

struct dKy_tevstr_c {};

struct J3DModelData {};

struct dScnKy_env_light_c {
    /* 801A37C4 */ void settingTevStruct(int, cXyz*, dKy_tevstr_c*);
    /* 801A4DA0 */ void setLightTevColorType_MAJI(J3DModelData*, dKy_tevstr_c*);
};

struct dRes_info_c {};

struct dRes_control_c {
    /* 8003C2EC */ void getRes(char const*, s32, dRes_info_c*, int);
};

struct cBgS_PolyInfo {};

struct dBgS {
    /* 80074ABC */ void ChkMoveBG(cBgS_PolyInfo const&);
};

struct cM3dGPla {};

struct cBgS {
    /* 80074744 */ void GetTriPla(cBgS_PolyInfo const&, cM3dGPla*) const;
};

struct Vec {};

struct JMath {
    static u8 sincosTable_[65536];
};

struct JKRSolidHeap {};

struct J3DUClipper {
    /* 802738FC */ void clip(f32 const (*)[4], Vec, f32) const;
};

struct J3DModel {};

struct J3DLightObj {
    /* 80018C0C */ J3DLightObj();
};

struct J3DLightInfo {
    /* 803256C4 */ void operator=(J3DLightInfo const&);
};

//
// Forward References:
//

extern "C" static void dkWmark_Create__FP12kankyo_class();
extern "C" void __dt__9dkWmark_cFv();
extern "C" static void dkWmark_Delete__FP9dkWmark_c();
extern "C" void setMatrix__9dkWmark_cFv();
extern "C" static void dkWmark_Execute__FP9dkWmark_c();
extern "C" static void dkWmark_Draw__FP9dkWmark_c();
extern "C" extern char const* const d_d_k_wmark__stringBase0;
extern "C" extern void* g_profile_WMARK[10 + 1 /* padding */];
extern "C" u8 m_nowID__9dkWmark_c[4];

//
// External References:
//

extern "C" void __dt__4cXyzFv();
extern "C" void mDoMtx_ZXYrotM__FPA4_fsss();
extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
extern "C" void mDoExt_createSolidHeapFromGameToCurrent__FUlUl();
extern "C" void mDoExt_adjustSolidHeap__FP12JKRSolidHeap();
extern "C" void mDoExt_destroySolidHeap__FP12JKRSolidHeap();
extern "C" void mDoExt_restoreCurrentHeap__Fv();
extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
extern "C" void __ct__11J3DLightObjFv();
extern "C" void gndCheck__11fopAcM_gc_cFPC4cXyz();
extern "C" void fopKyM_Delete__FPv();
extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
extern "C" void GetTriPla__4cBgSCFRC13cBgS_PolyInfoP8cM3dGPla();
extern "C" void ChkMoveBG__4dBgSFRC13cBgS_PolyInfo();
extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
extern "C" void dKy_tevstr_init__FP12dKy_tevstr_cScUc();
extern "C" void atan2sX_Z__4cXyzCFv();
extern "C" void cM_atan2s__Fff();
extern "C" void clip__11J3DUClipperCFPA4_Cf3Vecf();
extern "C" void __dl__FPv();
extern "C" void __as__12J3DLightInfoFRC12J3DLightInfo();
extern "C" void PSMTXCopy();
extern "C" void PSMTXTrans();
extern "C" void PSVECSquareMag();
extern "C" void __register_global_object();
extern "C" void __construct_array();
extern "C" void _savegpr_26();
extern "C" void _restgpr_26();
extern "C" void abs();
extern "C" extern u8 const j3dDefaultLightInfo[52];
extern "C" extern void* __vt__8cM3dGPla[3];
extern "C" extern void* g_fopKy_Method[5 + 1 /* padding */];
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
extern "C" u8 now__14mDoMtx_stack_c[48];
extern "C" u8 mClipper__14mDoLib_clipper[92];
extern "C" u8 mGndCheck__11fopAcM_gc_c[84];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern u8 g_env_light[4880];
extern "C" extern u8 j3dSys[284];
extern "C" u8 sincosTable___5JMath[65536];
extern "C" extern u32 __float_nan;
extern "C" f32 mGroundY__11fopAcM_gc_c;
extern "C" extern u8 mStayNo__20dStage_roomControl_c[4];

//
// Declarations:
//

/* ############################################################################################## */
/* 8039A494-8039A494 026AF4 0000+00 0/0 0/0 0/0 .rodata          @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_8039A494 = "Alink";
/* @stringBase0 padding */
SECTION_DEAD static char const* const pad_8039A49A = "\0\0\0\0\0";
#pragma pop

/* 80430C90-80430C9C 05D9B0 000C+00 1/1 0/0 0/0 .bss             @3644 */
static u8 lit_3644[12];

/* 80430C9C-80430CA8 05D9BC 000C+00 1/1 0/0 0/0 .bss
 * wolfFootScale$localstatic3$create__9dkWmark_cFv              */
static f32 data_80430C9C[3];

/* 80451130-80451134 000630 0004+00 2/2 0/0 0/0 .sbss            m_nowID__9dkWmark_c */
u8 dkWmark_c::m_nowID[4];

/* 80451134-80451138 000634 0004+00 1/1 0/0 0/0 .sbss            None */
static u8 data_80451134[4];

/* 80454FB0-80454FB4 0035B0 0004+00 1/1 0/0 0/0 .sdata2          @3718 */
SECTION_SDATA2 static f32 lit_3718 = 11.0f / 10.0f;

/* 80454FB4-80454FB8 0035B4 0004+00 2/2 0/0 0/0 .sdata2          @3719 */
SECTION_SDATA2 static f32 lit_3719 = 1.0f;

/* 80454FB8-80454FBC 0035B8 0004+00 1/1 0/0 0/0 .sdata2          @3720 */
SECTION_SDATA2 static f32 lit_3720 = 3.0f / 5.0f;

/* 8026141C-80261640 25BD5C 0224+00 1/0 0/0 0/0 .text            dkWmark_Create__FP12kankyo_class */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dkWmark_Create(kankyo_class* param_0) {
    nofralloc
#include "asm/d/d_k_wmark/dkWmark_Create__FP12kankyo_class.s"
}
#pragma pop

/* 80261640-8026169C 25BF80 005C+00 1/1 0/0 0/0 .text            __dt__9dkWmark_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dkWmark_c::~dkWmark_c() {
    nofralloc
#include "asm/d/d_k_wmark/__dt__9dkWmark_cFv.s"
}
#pragma pop

/* 8026169C-802616C4 25BFDC 0028+00 1/0 0/0 0/0 .text            dkWmark_Delete__FP9dkWmark_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dkWmark_Delete(dkWmark_c* param_0) {
    nofralloc
#include "asm/d/d_k_wmark/dkWmark_Delete__FP9dkWmark_c.s"
}
#pragma pop

/* ############################################################################################## */
/* 80454FBC-80454FC0 0035BC 0004+00 1/1 0/0 0/0 .sdata2          @3844 */
SECTION_SDATA2 static f32 lit_3844 = 100.0f;

/* 80454FC0-80454FC8 0035C0 0004+04 2/2 0/0 0/0 .sdata2          @3845 */
SECTION_SDATA2 static f32 lit_3845[1 + 1 /* padding */] = {
    0.0f,
    /* padding */
    0.0f,
};

/* 80454FC8-80454FD0 0035C8 0008+00 1/1 0/0 0/0 .sdata2          @3846 */
SECTION_SDATA2 static f64 lit_3846 = 0.5;

/* 80454FD0-80454FD8 0035D0 0008+00 1/1 0/0 0/0 .sdata2          @3847 */
SECTION_SDATA2 static f64 lit_3847 = 3.0;

/* 80454FD8-80454FE0 0035D8 0008+00 1/1 0/0 0/0 .sdata2          @3848 */
SECTION_SDATA2 static u8 lit_3848[8] = {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};

/* 802616C4-80261964 25C004 02A0+00 2/2 0/0 0/0 .text            setMatrix__9dkWmark_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dkWmark_c::setMatrix() {
    nofralloc
#include "asm/d/d_k_wmark/setMatrix__9dkWmark_cFv.s"
}
#pragma pop

/* ############################################################################################## */
/* 80454FE0-80454FE4 0035E0 0004+00 1/1 0/0 0/0 .sdata2          @3873 */
SECTION_SDATA2 static f32 lit_3873 = 1.0f / 50.0f;

/* 80261964-80261A18 25C2A4 00B4+00 1/0 0/0 0/0 .text            dkWmark_Execute__FP9dkWmark_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dkWmark_Execute(dkWmark_c* param_0) {
    nofralloc
#include "asm/d/d_k_wmark/dkWmark_Execute__FP9dkWmark_c.s"
}
#pragma pop

/* ############################################################################################## */
/* 8039A488-8039A494 026AE8 000C+00 1/1 0/0 0/0 .rodata kColor$localstatic3$draw__9dkWmark_cFv */
SECTION_RODATA static u8 const data_8039A488[12] = {
    0x00, 0x00, 0x00, 0x82, 0x5F, 0x4B, 0x32, 0x3C, 0x64, 0x6E, 0x78, 0x28,
};
COMPILER_STRIP_GATE(0x8039A488, &data_8039A488);

/* 80454FE4-80454FE8 0035E4 0004+00 1/1 0/0 0/0 .sdata2          @3906 */
SECTION_SDATA2 static f32 lit_3906 = 50.0f;

/* 80454FE8-80454FF0 0035E8 0008+00 1/1 0/0 0/0 .sdata2          @3908 */
SECTION_SDATA2 static f64 lit_3908 = 4503599627370496.0 /* cast u32 to float */;

/* 80261A18-80261B54 25C358 013C+00 1/0 0/0 0/0 .text            dkWmark_Draw__FP9dkWmark_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dkWmark_Draw(dkWmark_c* param_0) {
    nofralloc
#include "asm/d/d_k_wmark/dkWmark_Draw__FP9dkWmark_c.s"
}
#pragma pop

/* ############################################################################################## */
/* 803C3430-803C3444 -00001 0014+00 1/0 0/0 0/0 .data            l_dkWmark_Method */
SECTION_DATA static void* l_dkWmark_Method[5] = {
    (void*)dkWmark_Create__FP12kankyo_class, (void*)dkWmark_Delete__FP9dkWmark_c,
    (void*)dkWmark_Execute__FP9dkWmark_c,    (void*)NULL,
    (void*)dkWmark_Draw__FP9dkWmark_c,
};

/* 803C3444-803C3470 -00001 0028+04 0/0 0/0 1/0 .data            g_profile_WMARK */
SECTION_DATA extern void* g_profile_WMARK[10 + 1 /* padding */] = {
    (void*)0xFFFFFFFD,
    (void*)0x0009FFFD,
    (void*)0x03030000,
    (void*)&g_fpcLf_Method,
    (void*)0x00000498,
    (void*)NULL,
    (void*)NULL,
    (void*)&g_fopKy_Method,
    (void*)0x02F80000,
    (void*)&l_dkWmark_Method,
    /* padding */
    NULL,
};

/* 8039A494-8039A494 026AF4 0000+00 0/0 0/0 0/0 .rodata          @stringBase0 */