// // Generated By: dol2asm // Translation Unit: d/d_k_wmark // #include "d/d_k_wmark.h" #include "dol2asm.h" #include "dolphin/types.h" // // Types: // struct kankyo_class {}; struct cXyz { /* 80009184 */ ~cXyz(); /* 80267128 */ void atan2sX_Z() const; }; struct fopAcM_gc_c { /* 8001DCBC */ void gndCheck(cXyz const*); }; struct dkWmark_c { /* 80261640 */ ~dkWmark_c(); /* 802616C4 */ void setMatrix(); }; 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 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: // static void dkWmark_Create(kankyo_class*); static void dkWmark_Delete(dkWmark_c*); static void dkWmark_Execute(dkWmark_c*); static void dkWmark_Draw(dkWmark_c*); 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 */]; // // External References: // void mDoMtx_ZXYrotM(f32 (*)[4], s16, s16, s16); void mDoExt_modelUpdateDL(J3DModel*); void mDoExt_createSolidHeapFromGameToCurrent(u32, u32); void mDoExt_adjustSolidHeap(JKRSolidHeap*); void mDoExt_destroySolidHeap(JKRSolidHeap*); void mDoExt_restoreCurrentHeap(); void mDoExt_J3DModel__create(J3DModelData*, u32, u32); void fopKyM_Delete(void*); void dKy_tevstr_init(dKy_tevstr_c*, s8, u8); void cM_atan2s(f32, f32); void operator delete(void*); 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" extern u8 now__14mDoMtx_stack_c[48]; extern "C" extern u8 mClipper__14mDoLib_clipper[92]; extern "C" extern 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" extern u8 sincosTable___5JMath[65536]; extern "C" extern u32 __float_nan; extern "C" extern f32 mGroundY__11fopAcM_gc_c; extern "C" extern u8 struct_80450D64[4]; // // Declarations: // /* ############################################################################################## */ /* 8039A488-8039A494 000C+00 s=1 e=0 z=0 None .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, }; /* 8039A494-8039A4A0 0006+06 s=1 e=0 z=0 None .rodata @stringBase0 */ #pragma push #pragma force_active on #pragma section ".dead" SECTION_DEAD 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 000C+00 s=1 e=0 z=0 None .bss @3644 */ static u8 lit_3644[12]; /* 80430C9C-80430CA8 000C+00 s=1 e=0 z=0 None .bss * wolfFootScale$localstatic3$create__9dkWmark_cFv */ static f32 data_80430C9C[3]; /* 80451130-80451134 0004+00 s=2 e=0 z=0 None .sbss m_nowID__9dkWmark_c */ static u8 m_nowID__9dkWmark_c[4]; /* 80451134-80451138 0004+00 s=1 e=0 z=0 None .sbss None */ static u8 data_80451134[4]; /* 80454FB0-80454FB4 0004+00 s=1 e=0 z=0 None .sdata2 @3718 */ SECTION_SDATA2 static f32 lit_3718 = 11.0f / 10.0f; /* 80454FB4-80454FB8 0004+00 s=2 e=0 z=0 None .sdata2 @3719 */ SECTION_SDATA2 static f32 lit_3719 = 1.0f; /* 80454FB8-80454FBC 0004+00 s=1 e=0 z=0 None .sdata2 @3720 */ SECTION_SDATA2 static f32 lit_3720 = 3.0f / 5.0f; /* 8026141C-80261640 0224+00 s=1 e=0 z=0 None .text dkWmark_Create__FP12kankyo_class */ // 80261434: 80451134 (data_80451134) // 80261440: 80454FB0 (lit_3718) // 80261444: 80430C9C (data_80430C9C) // 80261448: 80430C9C (data_80430C9C) // 8026144C: 80454FB4 (lit_3719) // 80261454: 80454FB8 (lit_3720) // 8026145C: 80009184 (__dt__4cXyzFv) // 80261460: 80009184 (__dt__4cXyzFv) // 80261464: 80430C90 (lit_3644) // 80261468: 80430C90 (lit_3644) // 8026146C: 80361C24 (__register_global_object) // 80261474: 80451134 (data_80451134) // 80261488: 803A1EC8 (j3dDefaultLightInfo) // 8026148C: 803A1EC8 (j3dDefaultLightInfo) // 80261490: 803256C4 (__as__12J3DLightInfoFRC12J3DLightInfo) // 80261498: 80018C0C (__ct__11J3DLightObjFv) // 8026149C: 80018C0C (__ct__11J3DLightObjFv) // 802614AC: 80361D60 (__construct_array) // 802614FC: 8000F044 (mDoExt_createSolidHeapFromGameToCurrent__FUlUl) // 80261510: 8039A494 (d_d_k_wmark__stringBase0) // 80261514: 8039A494 (d_d_k_wmark__stringBase0) // 8026151C: 804061C0 (g_dComIfG_gameInfo) // 80261520: 804061C0 (g_dComIfG_gameInfo) // 80261530: 8003C2EC (getRes__14dRes_control_cFPCclP11dRes_info_ci) // 80261540: 80014C54 (mDoExt_J3DModel__create__FP12J3DModelDataUlUl) // 80261548: 8000F1F4 (mDoExt_restoreCurrentHeap__Fv) // 80261550: 8000F08C (mDoExt_adjustSolidHeap__FP12JKRSolidHeap) // 80261580: 804061C0 (g_dComIfG_gameInfo) // 80261584: 804061C0 (g_dComIfG_gameInfo) // 80261598: 80430C9C (data_80430C9C) // 8026159C: 80430C9C (data_80430C9C) // 802615B8: 802616C4 (setMatrix__9dkWmark_cFv) // 802615E8: 80451130 (m_nowID__9dkWmark_c) // 802615F0: 80451130 (m_nowID__9dkWmark_c) // 802615F8: 80451130 (m_nowID__9dkWmark_c) // 80261608: 80454FB4 (lit_3719) // 80261614: 80450D64 (struct_80450D64) // 80261620: 801A88EC (dKy_tevstr_init__FP12dKy_tevstr_cScUc) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm static void dkWmark_Create(kankyo_class* param_0) { nofralloc #include "asm/d/d_k_wmark/dkWmark_Create__FP12kankyo_class.s" } #pragma pop /* 80261640-8026169C 005C+00 s=1 e=0 z=0 None .text __dt__9dkWmark_cFv */ // 8026166C: 8000F18C (mDoExt_destroySolidHeap__FP12JKRSolidHeap) // 8026167C: 802CED3C (__dl__FPv) #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 0028+00 s=1 e=0 z=0 None .text dkWmark_Delete__FP9dkWmark_c */ // 802616AC: 80261640 (__dt__9dkWmark_cFv) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm static void dkWmark_Delete(dkWmark_c* param_0) { nofralloc #include "asm/d/d_k_wmark/dkWmark_Delete__FP9dkWmark_c.s" } #pragma pop /* ############################################################################################## */ /* 80454FBC-80454FC0 0004+00 s=1 e=0 z=0 None .sdata2 @3844 */ SECTION_SDATA2 static f32 lit_3844 = 100.0f; /* 80454FC0-80454FC8 0004+04 s=2 e=0 z=0 None .sdata2 @3845 */ SECTION_SDATA2 static f32 lit_3845[1 + 1 /* padding */] = { 0.0f, /* padding */ 0.0f, }; /* 80454FC8-80454FD0 0008+00 s=1 e=0 z=0 None .sdata2 @3846 */ SECTION_SDATA2 static f64 lit_3846 = 0.5; /* 80454FD0-80454FD8 0008+00 s=1 e=0 z=0 None .sdata2 @3847 */ SECTION_SDATA2 static f64 lit_3847 = 3.0; /* 80454FD8-80454FE0 0008+00 s=1 e=0 z=0 None .sdata2 @3848 */ SECTION_SDATA2 static u8 lit_3848[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; /* 802616C4-80261964 02A0+00 s=2 e=0 z=0 None .text setMatrix__9dkWmark_cFv */ // 802616DC: 803621D0 (_savegpr_26) // 802616E8: 80454FBC (lit_3844) // 80261708: 8001DCBC (gndCheck__11fopAcM_gc_cFPC4cXyz) // 80261714: 80450CD0 (mGroundY__11fopAcM_gc_c) // 8026171C: 803A37C0 (__vt__8cM3dGPla) // 80261720: 803A37C0 (__vt__8cM3dGPla) // 80261728: 804061C0 (g_dComIfG_gameInfo) // 8026172C: 804061C0 (g_dComIfG_gameInfo) // 80261738: 803F1CC4 (mGndCheck__11fopAcM_gc_c) // 8026173C: 803F1CC4 (mGndCheck__11fopAcM_gc_c) // 8026174C: 80074744 (GetTriPla__4cBgSCFRC13cBgS_PolyInfoP8cM3dGPla) // 80261754: 80267128 (atan2sX_Z__4cXyzCFv) // 8026176C: 80454FC0 (lit_3845) // 80261780: 80347138 (PSVECSquareMag) // 80261784: 80454FC0 (lit_3845) // 80261794: 80454FC8 (lit_3846) // 8026179C: 80454FD0 (lit_3847) // 802617E4: 80454FD8 (lit_3848) // 802617F0: 80450AE0 (__float_nan) // 802617F4: 80450AE0 (__float_nan) // 80261860: 80450AE0 (__float_nan) // 80261864: 80450AE0 (__float_nan) // 80261870: 803DD470 (now__14mDoMtx_stack_c) // 80261874: 803DD470 (now__14mDoMtx_stack_c) // 8026187C: 80454FB4 (lit_3719) // 8026188C: 803468E8 (PSMTXTrans) // 80261894: 80439A20 (sincosTable___5JMath) // 80261898: 80439A20 (sincosTable___5JMath) // 802618AC: 80267674 (cM_atan2s__Fff) // 802618B8: 80439A20 (sincosTable___5JMath) // 802618BC: 80439A20 (sincosTable___5JMath) // 802618D0: 80267674 (cM_atan2s__Fff) // 802618D8: 803DD470 (now__14mDoMtx_stack_c) // 802618DC: 803DD470 (now__14mDoMtx_stack_c) // 802618E8: 8000C2A0 (mDoMtx_ZXYrotM__FPA4_fsss) // 802618EC: 803DD470 (now__14mDoMtx_stack_c) // 802618F0: 803DD470 (now__14mDoMtx_stack_c) // 802618FC: 803464B0 (PSMTXCopy) // 80261908: 80074ABC (ChkMoveBG__4dBgSFRC13cBgS_PolyInfo) // 80261928: 803A37C0 (__vt__8cM3dGPla) // 8026192C: 803A37C0 (__vt__8cM3dGPla) // 80261950: 8036221C (_restgpr_26) #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 0004+00 s=1 e=0 z=0 None .sdata2 @3873 */ SECTION_SDATA2 static f32 lit_3873 = 1.0f / 50.0f; /* 80261964-80261A18 00B4+00 s=1 e=0 z=0 None .text dkWmark_Execute__FP9dkWmark_c */ // 80261984: 80451130 (m_nowID__9dkWmark_c) // 80261990: 803650D0 (abs) // 802619B4: 80454FE0 (lit_3873) // 802619C4: 80454FC0 (lit_3845) // 802619E4: 802616C4 (setMatrix__9dkWmark_cFv) // 802619F4: 8001F748 (fopKyM_Delete__FPv) // 802619F8: 80454FC0 (lit_3845) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm static void dkWmark_Execute(dkWmark_c* param_0) { nofralloc #include "asm/d/d_k_wmark/dkWmark_Execute__FP9dkWmark_c.s" } #pragma pop /* ############################################################################################## */ /* 80454FE4-80454FE8 0004+00 s=1 e=0 z=0 None .sdata2 @3906 */ SECTION_SDATA2 static f32 lit_3906 = 50.0f; /* 80454FE8-80454FF0 0008+00 s=1 e=0 z=0 None .sdata2 @3908 */ SECTION_SDATA2 static f64 lit_3908 = 4503599627370496.0 /* cast u32 to float */; /* 80261A18-80261B54 013C+00 s=1 e=0 z=0 None .text dkWmark_Draw__FP9dkWmark_c */ // 80261A2C: 80454FE4 (lit_3906) // 80261A50: 803DD8E4 (mClipper__14mDoLib_clipper) // 80261A54: 803DD8E4 (mClipper__14mDoLib_clipper) // 80261A58: 80434AC8 (j3dSys) // 80261A5C: 80434AC8 (j3dSys) // 80261A64: 802738FC (clip__11J3DUClipperCFPA4_Cf3Vecf) // 80261A78: 8042CA54 (g_env_light) // 80261A7C: 8042CA54 (g_env_light) // 80261A8C: 801A37C4 (settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c) // 80261A90: 8042CA54 (g_env_light) // 80261A94: 8042CA54 (g_env_light) // 80261AA4: 801A4DA0 //(setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c) 80261AB0: // 8039A488 (data_8039A488) 80261AB4: 8039A488 (data_8039A488) 80261AD8: 80454FE8 (lit_3908) // 80261B38: 8000DCC4 (mDoExt_modelUpdateDL__FP8J3DModel) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm static void dkWmark_Draw(dkWmark_c* param_0) { nofralloc #include "asm/d/d_k_wmark/dkWmark_Draw__FP9dkWmark_c.s" } #pragma pop /* ############################################################################################## */ /* 803C3430-803C3444 0014+00 s=1 e=0 z=0 None .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 0028+04 s=0 e=0 z=1 None .data g_profile_WMARK */ SECTION_DATA 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, };