// // Generated By: dol2asm // Translation Unit: d/d_tresure // #include "d/d_tresure.h" #include "dol2asm.h" #include "dolphin/types.h" // // Types: // struct Vec {}; struct dTres_c { struct list_class {}; struct data_s {}; struct typeGroupData_c {}; /* 8009BBD8 */ void createWork(); /* 8009BC18 */ void create(); /* 8009BC60 */ void remove(); /* 8009BC6C */ void reset(); /* 8009BCB4 */ void addData(dTres_c::list_class*, s8); /* 8009BE28 */ void checkTreasureBox(dTres_c::data_s*); /* 8009C168 */ void onStatus(u8, int, int); /* 8009C1F0 */ void offStatus(u8, int, int); /* 8009C27C */ void getBossIconFloorNo(int*); /* 8009C360 */ void getFirstData(u8); /* 8009C39C */ void getNextData(dTres_c::typeGroupData_c*); /* 8009C3B4 */ void getNextData(dTres_c::typeGroupData_c const*); /* 8009C3CC */ void setPosition(int, u8, Vec const*, int); /* 8009C49C */ void getTypeGroupNoToType(u8); /* 8009C4B0 */ void getTypeToTypeGroupNo(u8); }; struct dSv_memBit_c { /* 80034934 */ void isDungeonItem(int) const; }; struct dSv_info_c { /* 80035360 */ void isSwitch(int, int) const; }; struct dMapInfo_n { /* 8003ED60 */ void correctionOriginPos(s8, Vec*); }; struct dMapInfo_c { /* 8003F40C */ void calcFloorNo(f32, bool, int); }; // // Forward References: // extern "C" void createWork__7dTres_cFv(); extern "C" void create__7dTres_cFv(); extern "C" void remove__7dTres_cFv(); extern "C" void reset__7dTres_cFv(); extern "C" void addData__7dTres_cFPQ27dTres_c10list_classSc(); extern "C" void checkTreasureBox__7dTres_cFPQ27dTres_c6data_s(); extern "C" void onStatus__7dTres_cFUcii(); extern "C" void offStatus__7dTres_cFUcii(); extern "C" void getBossIconFloorNo__7dTres_cFPi(); extern "C" void getFirstData__7dTres_cFUc(); extern "C" void getNextData__7dTres_cFPQ27dTres_c15typeGroupData_c(); extern "C" void getNextData__7dTres_cFPCQ27dTres_c15typeGroupData_c(); extern "C" void setPosition__7dTres_cFiUcPC3Veci(); extern "C" void getTypeGroupNoToType__7dTres_cFUc(); extern "C" void getTypeToTypeGroupNo__7dTres_cFUc(); extern "C" extern u8 mTypeGroupListAll__7dTres_c[204 + 4 /* padding */]; // // External References: // void mDoMtx_YrotS(f32 (*)[4], s16); void dPath_GetRoomPath(int, int); void* operator new[](u32); extern "C" void mDoMtx_YrotS__FPA4_fs(); extern "C" void isDungeonItem__12dSv_memBit_cCFi(); extern "C" void isSwitch__10dSv_info_cCFii(); extern "C" void correctionOriginPos__10dMapInfo_nFScP3Vec(); extern "C" void calcFloorNo__10dMapInfo_cFfbi(); extern "C" void dPath_GetRoomPath__Fii(); extern "C" void* __nwa__FUl(); extern "C" void PSMTXMultVec(); extern "C" void PSVECAdd(); extern "C" void PSVECSquareDistance(); extern "C" void __construct_new_array(); extern "C" void _savegpr_26(); extern "C" void _savegpr_27(); extern "C" void _savegpr_28(); extern "C" void _restgpr_26(); extern "C" void _restgpr_27(); extern "C" void _restgpr_28(); extern "C" extern u8 now__14mDoMtx_stack_c[48]; extern "C" extern u8 g_dComIfG_gameInfo[122384]; extern "C" extern u8 data_80450680[8]; extern "C" extern u32 __float_nan; // // Declarations: // /* ############################################################################################## */ /* 80450F98-80450F9C 0004+00 s=2 e=0 z=0 None .sbss mTypeGroupData__7dTres_c */ static u8 mTypeGroupData__7dTres_c[4]; /* 8009BBD8-8009BC18 0040+00 s=0 e=1 z=0 None .text createWork__7dTres_cFv */ // 8009BBE8: 802CECC4 (__nwa__FUl) // 8009BBFC: 80361F14 (__construct_new_array) // 8009BC00: 80450F98 (mTypeGroupData__7dTres_c) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dTres_c::createWork() { nofralloc #include "asm/d/d_tresure/createWork__7dTres_cFv.s" } #pragma pop /* 8009BC18-8009BC60 0048+00 s=0 e=1 z=0 None .text create__7dTres_cFv */ // 8009BC24: 804061C0 (g_dComIfG_gameInfo) // 8009BC28: 804061C0 (g_dComIfG_gameInfo) // 8009BC4C: 8009BC6C (reset__7dTres_cFv) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dTres_c::create() { nofralloc #include "asm/d/d_tresure/create__7dTres_cFv.s" } #pragma pop /* 8009BC60-8009BC6C 000C+00 s=0 e=1 z=0 None .text remove__7dTres_cFv */ // 8009BC64: 80450680 (data_80450680) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dTres_c::remove() { nofralloc #include "asm/d/d_tresure/remove__7dTres_cFv.s" } #pragma pop /* ############################################################################################## */ /* 80425438-80425508 00CC+04 s=6 e=3 z=0 None .bss mTypeGroupListAll__7dTres_c */ u8 mTypeGroupListAll__7dTres_c[204 + 4 /* padding */]; /* 80450F9C-80450FA0 0002+02 s=2 e=0 z=0 None .sbss mNum__7dTres_c */ static u8 mNum__7dTres_c[2 + 2 /* padding */]; /* 8009BC6C-8009BCB4 0048+00 s=2 e=0 z=0 None .text reset__7dTres_cFv */ // 8009BC6C: 80450680 (data_80450680) // 8009BC7C: 80450F9C (mNum__7dTres_c) // 8009BC80: 80450680 (data_80450680) // 8009BC88: 80425438 (mTypeGroupListAll__7dTres_c) // 8009BC8C: 80425438 (mTypeGroupListAll__7dTres_c) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dTres_c::reset() { nofralloc #include "asm/d/d_tresure/reset__7dTres_cFv.s" } #pragma pop /* 8009BCB4-8009BE28 0174+00 s=0 e=1 z=0 None .text addData__7dTres_cFPQ27dTres_c10list_classSc */ // 8009BCC4: 803621D0 (_savegpr_26) // 8009BCD0: 804061C0 (g_dComIfG_gameInfo) // 8009BCD4: 804061C0 (g_dComIfG_gameInfo) // 8009BCF8: 8009BC6C (reset__7dTres_cFv) // 8009BD00: 80450F98 (mTypeGroupData__7dTres_c) // 8009BD04: 80450F9C (mNum__7dTres_c) // 8009BD14: 80425438 (mTypeGroupListAll__7dTres_c) // 8009BD18: 80425438 (mTypeGroupListAll__7dTres_c) // 8009BD88: 8009C4B0 (getTypeToTypeGroupNo__7dTres_cFUc) // 8009BDE8: 8009BE28 (checkTreasureBox__7dTres_cFPQ27dTres_c6data_s) // 8009BDEC: 80450F9C (mNum__7dTres_c) // 8009BDF4: 80450F9C (mNum__7dTres_c) // 8009BE14: 8036221C (_restgpr_26) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dTres_c::addData(dTres_c::list_class* param_0, s8 param_1) { nofralloc #include "asm/d/d_tresure/addData__7dTres_cFPQ27dTres_c10list_classSc.s" } #pragma pop /* ############################################################################################## */ /* 80452BE8-80452BEC 0004+00 s=1 e=0 z=0 None .sdata2 @3839 */ SECTION_SDATA2 static f32 lit_3839 = 182.04444885253906f; /* 80452BEC-80452BF0 0004+00 s=1 e=0 z=0 None .sdata2 @3840 */ SECTION_SDATA2 static u8 lit_3840[4] = { 0x00, 0x00, 0x00, 0x00, }; /* 80452BF0-80452BF8 0008+00 s=1 e=0 z=0 None .sdata2 @3841 */ SECTION_SDATA2 static f64 lit_3841 = 0.5; /* 80452BF8-80452C00 0008+00 s=1 e=0 z=0 None .sdata2 @3842 */ SECTION_SDATA2 static f64 lit_3842 = 3.0; /* 80452C00-80452C08 0008+00 s=1 e=0 z=0 None .sdata2 @3843 */ SECTION_SDATA2 static u8 lit_3843[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; /* 80452C08-80452C10 0008+00 s=1 e=0 z=0 None .sdata2 @3845 */ SECTION_SDATA2 static f64 lit_3845 = 4503601774854144.0 /* cast s32 to float */; /* 8009BE28-8009C168 0340+00 s=1 e=0 z=0 None .text checkTreasureBox__7dTres_cFPQ27dTres_c6data_s */ // 8009BE38: 803621D0 (_savegpr_26) // 8009BE5C: 800517EC (dPath_GetRoomPath__Fii) // 8009BE7C: 804061C0 (g_dComIfG_gameInfo) // 8009BE80: 804061C0 (g_dComIfG_gameInfo) // 8009BE9C: 80035360 (isSwitch__10dSv_info_cCFii) // 8009BECC: 80452BE8 (lit_3839) // 8009BEDC: 80452C08 (lit_3845) // 8009BF54: 80452BEC (lit_3840) // 8009BF74: 8034739C (PSVECSquareDistance) // 8009BF78: 80452BEC (lit_3840) // 8009BF88: 80452BF0 (lit_3841) // 8009BF90: 80452BF8 (lit_3842) // 8009BFD8: 80452C00 (lit_3843) // 8009BFE4: 80450AE0 (__float_nan) // 8009BFE8: 80450AE0 (__float_nan) // 8009C054: 80450AE0 (__float_nan) // 8009C058: 80450AE0 (__float_nan) // 8009C05C: 80452BEC (lit_3840) // 8009C06C: 803DD470 (now__14mDoMtx_stack_c) // 8009C070: 803DD470 (now__14mDoMtx_stack_c) // 8009C078: 8000C3DC (mDoMtx_YrotS__FPA4_fs) // 8009C07C: 803DD470 (now__14mDoMtx_stack_c) // 8009C080: 803DD470 (now__14mDoMtx_stack_c) // 8009C08C: 80346D6C (PSMTXMultVec) // 8009C09C: 80347090 (PSVECAdd) // 8009C0E8: 8003ED60 (correctionOriginPos__10dMapInfo_nFScP3Vec) // 8009C0F0: 804061C0 (g_dComIfG_gameInfo) // 8009C0F4: 804061C0 (g_dComIfG_gameInfo) // 8009C104: 80035360 (isSwitch__10dSv_info_cCFii) // 8009C14C: 8003ED60 (correctionOriginPos__10dMapInfo_nFScP3Vec) // 8009C154: 8036221C (_restgpr_26) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dTres_c::checkTreasureBox(dTres_c::data_s* param_0) { nofralloc #include "asm/d/d_tresure/checkTreasureBox__7dTres_cFPQ27dTres_c6data_s.s" } #pragma pop /* 8009C168-8009C1F0 0088+00 s=0 e=0 z=3 None .text onStatus__7dTres_cFUcii */ // 8009C178: 803621D8 (_savegpr_28) // 8009C188: 8009C360 (getFirstData__7dTres_cFUc) // 8009C18C: 80425438 (mTypeGroupListAll__7dTres_c) // 8009C190: 80425438 (mTypeGroupListAll__7dTres_c) // 8009C1C8: 8009C39C (getNextData__7dTres_cFPQ27dTres_c15typeGroupData_c) // 8009C1DC: 80362224 (_restgpr_28) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dTres_c::onStatus(u8 param_0, int param_1, int param_2) { nofralloc #include "asm/d/d_tresure/onStatus__7dTres_cFUcii.s" } #pragma pop /* 8009C1F0-8009C27C 008C+00 s=0 e=0 z=3 None .text offStatus__7dTres_cFUcii */ // 8009C200: 803621D8 (_savegpr_28) // 8009C210: 8009C360 (getFirstData__7dTres_cFUc) // 8009C214: 80425438 (mTypeGroupListAll__7dTres_c) // 8009C218: 80425438 (mTypeGroupListAll__7dTres_c) // 8009C254: 8009C39C (getNextData__7dTres_cFPQ27dTres_c15typeGroupData_c) // 8009C268: 80362224 (_restgpr_28) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dTres_c::offStatus(u8 param_0, int param_1, int param_2) { nofralloc #include "asm/d/d_tresure/offStatus__7dTres_cFUcii.s" } #pragma pop /* 8009C27C-8009C360 00E4+00 s=0 e=1 z=0 None .text getBossIconFloorNo__7dTres_cFPi */ // 8009C28C: 803621D8 (_savegpr_28) // 8009C2B0: 8009C360 (getFirstData__7dTres_cFUc) // 8009C2BC: 804061C0 (g_dComIfG_gameInfo) // 8009C2C0: 804061C0 (g_dComIfG_gameInfo) // 8009C2D0: 80034934 (isDungeonItem__12dSv_memBit_cCFi) // 8009C2F4: 804061C0 (g_dComIfG_gameInfo) // 8009C2F8: 804061C0 (g_dComIfG_gameInfo) // 8009C304: 80035360 (isSwitch__10dSv_info_cCFii) // 8009C318: 80034934 (isDungeonItem__12dSv_memBit_cCFi) // 8009C334: 8003F40C (calcFloorNo__10dMapInfo_cFfbi) // 8009C34C: 80362224 (_restgpr_28) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dTres_c::getBossIconFloorNo(int* param_0) { nofralloc #include "asm/d/d_tresure/getBossIconFloorNo__7dTres_cFPi.s" } #pragma pop /* 8009C360-8009C39C 003C+00 s=4 e=4 z=0 None .text getFirstData__7dTres_cFUc */ // 8009C368: 80425438 (mTypeGroupListAll__7dTres_c) // 8009C36C: 80425438 (mTypeGroupListAll__7dTres_c) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dTres_c::getFirstData(u8 param_0) { nofralloc #include "asm/d/d_tresure/getFirstData__7dTres_cFUc.s" } #pragma pop /* 8009C39C-8009C3B4 0018+00 s=2 e=3 z=0 None .text * getNextData__7dTres_cFPQ27dTres_c15typeGroupData_c */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dTres_c::getNextData(dTres_c::typeGroupData_c* param_0) { nofralloc #include "asm/d/d_tresure/getNextData__7dTres_cFPQ27dTres_c15typeGroupData_c.s" } #pragma pop /* 8009C3B4-8009C3CC 0018+00 s=0 e=1 z=0 None .text * getNextData__7dTres_cFPCQ27dTres_c15typeGroupData_c */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dTres_c::getNextData(dTres_c::typeGroupData_c const* param_0) { nofralloc #include "asm/d/d_tresure/getNextData__7dTres_cFPCQ27dTres_c15typeGroupData_c.s" } #pragma pop /* 8009C3CC-8009C49C 00D0+00 s=0 e=0 z=14 None .text setPosition__7dTres_cFiUcPC3Veci */ // 8009C3DC: 803621D4 (_savegpr_27) // 8009C3F4: 8009C360 (getFirstData__7dTres_cFUc) // 8009C3FC: 80425438 (mTypeGroupListAll__7dTres_c) // 8009C400: 80425438 (mTypeGroupListAll__7dTres_c) // 8009C45C: 8003ED60 (correctionOriginPos__10dMapInfo_nFScP3Vec) // 8009C488: 80362220 (_restgpr_27) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dTres_c::setPosition(int param_0, u8 param_1, Vec const* param_2, int param_3) { nofralloc #include "asm/d/d_tresure/setPosition__7dTres_cFiUcPC3Veci.s" } #pragma pop /* ############################################################################################## */ /* 8037B0D8-8037B100 0022+06 s=2 e=0 z=0 None .rodata typeToTypeGroup__7dTres_c */ SECTION_RODATA static u8 const typeToTypeGroup__7dTres_c[34 + 6 /* padding */] = { 0xFF, 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x03, 0x04, 0x04, 0x05, 0x05, 0x06, 0x06, 0x07, 0x07, 0x08, 0x80, 0x09, 0x81, 0x0A, 0x82, 0x0B, 0x83, 0x0C, 0x84, 0x0D, 0x85, 0x0E, 0x87, 0x0F, 0x88, 0x10, /* padding */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; /* 8009C49C-8009C4B0 0014+00 s=0 e=1 z=0 None .text getTypeGroupNoToType__7dTres_cFUc */ // 8009C4A0: 8037B0D8 (typeToTypeGroup__7dTres_c) // 8009C4A4: 8037B0D8 (typeToTypeGroup__7dTres_c) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dTres_c::getTypeGroupNoToType(u8 param_0) { nofralloc #include "asm/d/d_tresure/getTypeGroupNoToType__7dTres_cFUc.s" } #pragma pop /* 8009C4B0-8009C4FC 004C+00 s=1 e=3 z=0 None .text getTypeToTypeGroupNo__7dTres_cFUc */ // 8009C4BC: 8037B0D8 (typeToTypeGroup__7dTres_c) // 8009C4C0: 8037B0D8 (typeToTypeGroup__7dTres_c) // 8009C4D8: 8037B0D8 (typeToTypeGroup__7dTres_c) // 8009C4DC: 8037B0D8 (typeToTypeGroup__7dTres_c) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dTres_c::getTypeToTypeGroupNo(u8 param_0) { nofralloc #include "asm/d/d_tresure/getTypeToTypeGroupNo__7dTres_cFUc.s" } #pragma pop