diff options
| author | TakaRikka <38417346+TakaRikka@users.noreply.github.com> | 2022-02-19 05:22:47 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-02-19 14:22:47 +0100 |
| commit | 9ba9d7c06cde1db164e3282550855880148dc940 (patch) | |
| tree | 4f548b05d3ca3296f5337e5ab13944ff24fd2907 /src | |
| parent | d85ab6d159201ae41110a7b80f3fcbdca0b8efeb (diff) | |
d_model / d_simple_model / d_stage + cleanup (#181)
* d_model / d_simple_model / cleanup
* d_stage work
* set up saveHIO / remove asm
* d_a_itembase
Diffstat (limited to 'src')
| -rw-r--r-- | src/d/a/d_a_alink.cpp | 1 | ||||
| -rw-r--r-- | src/d/a/d_a_itembase.cpp | 532 | ||||
| -rw-r--r-- | src/d/a/d_a_itembase_static.cpp | 90 | ||||
| -rw-r--r-- | src/d/com/d_com_inf_game.cpp | 1110 | ||||
| -rw-r--r-- | src/d/com/d_com_static.cpp | 39 | ||||
| -rw-r--r-- | src/d/d_drawlist.cpp | 10 | ||||
| -rw-r--r-- | src/d/d_item.cpp | 44 | ||||
| -rw-r--r-- | src/d/d_item_data.cpp | 4705 | ||||
| -rw-r--r-- | src/d/d_lib.cpp | 2 | ||||
| -rw-r--r-- | src/d/d_model.cpp | 240 | ||||
| -rw-r--r-- | src/d/d_simple_model.cpp | 381 | ||||
| -rw-r--r-- | src/d/d_stage.cpp | 1545 | ||||
| -rw-r--r-- | src/d/d_timer.cpp | 119 | ||||
| -rw-r--r-- | src/d/map/d_map_path_dmap.cpp | 110 | ||||
| -rw-r--r-- | src/d/meter/d_meter2.cpp | 4 | ||||
| -rw-r--r-- | src/d/meter/d_meter2_info.cpp | 4 | ||||
| -rw-r--r-- | src/d/meter/d_meter_map.cpp | 4 | ||||
| -rw-r--r-- | src/d/particle/d_particle.cpp | 1 | ||||
| -rw-r--r-- | src/d/save/d_save.cpp | 575 | ||||
| -rw-r--r-- | src/d/save/d_save_HIO.cpp | 192 | ||||
| -rw-r--r-- | src/m_Do/m_Do_ext.cpp | 26 |
21 files changed, 2842 insertions, 6892 deletions
diff --git a/src/d/a/d_a_alink.cpp b/src/d/a/d_a_alink.cpp index bbd6ff7cce..f2a6a563ac 100644 --- a/src/d/a/d_a_alink.cpp +++ b/src/d/a/d_a_alink.cpp @@ -3239,7 +3239,6 @@ extern "C" void entryTevRegAnimator__16J3DMaterialTableFP15J3DAnmTevRegKey(); extern "C" void load__20J3DAnmLoaderDataBaseFPCv24J3DAnmLoaderDataBaseFlag(); extern "C" void JMAEulerToQuat__FsssP10Quaternion(); extern "C" void GXClearVtxDesc(); -extern "C" void GXLoadNrmMtxImm(); extern "C" void __register_global_object(); extern "C" void __destroy_arr(); extern "C" void __construct_array(); diff --git a/src/d/a/d_a_itembase.cpp b/src/d/a/d_a_itembase.cpp index 969955a6dc..1c021d9f8c 100644 --- a/src/d/a/d_a_itembase.cpp +++ b/src/d/a/d_a_itembase.cpp @@ -4,393 +4,283 @@ // #include "d/a/d_a_itembase.h" +#include "d/com/d_com_inf_game.h" +#include "d/d_item_data.h" #include "dol2asm.h" #include "dolphin/types.h" // -// Types: -// - -struct request_of_phase_process_class {}; - -struct J3DMaterialTable {}; - -struct J3DAnmTexPattern {}; - -struct mDoExt_btpAnm { - /* 8000D54C */ void init(J3DMaterialTable*, J3DAnmTexPattern*, int, int, f32, s16, s16); - /* 8000D5E8 */ void entry(J3DMaterialTable*, s16); -}; - -struct J3DAnmTextureSRTKey {}; - -struct mDoExt_btkAnm { - /* 8000D63C */ void init(J3DMaterialTable*, J3DAnmTextureSRTKey*, int, int, f32, s16, s16); - /* 8000D6D8 */ void entry(J3DMaterialTable*, f32); -}; - -struct J3DAnmTevRegKey {}; - -struct mDoExt_brkAnm { - /* 8000D70C */ void init(J3DMaterialTable*, J3DAnmTevRegKey*, int, int, f32, s16, s16); - /* 8000D7A8 */ void entry(J3DMaterialTable*, f32); -}; - -struct J3DAnmColor {}; - -struct mDoExt_bpkAnm { - /* 8000D47C */ void init(J3DMaterialTable*, J3DAnmColor*, int, int, f32, s16, s16); - /* 8000D518 */ void entry(J3DMaterialTable*, f32); -}; - -struct J3DModelData {}; - -struct J3DAnmTransform {}; - -struct mDoExt_bckAnm { - /* 8000D7DC */ void init(J3DAnmTransform*, int, int, f32, s16, s16, bool); - /* 8000D9CC */ void entry(J3DModelData*, f32); -}; - -struct mDoExt_baseAnm { - /* 8000D428 */ void play(); -}; - -struct fopAc_ac_c {}; - -struct dKy_tevstr_c {}; - -struct cXyz {}; - -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 dItem_data { - static void* item_resource[1530]; - static u8 item_info[1020 + 4 /* padding */]; -}; - -struct dDlst_shadowControl_c { - static u8 mSimpleTexObj[32]; -}; - -struct cBgS_PolyInfo {}; - -struct _GXTexObj {}; - -struct J3DModel {}; - -struct J3DFrameCtrl { - /* 803283FC */ void init(s16); -}; - -// -// Forward References: -// - -extern "C" void DeleteBase__12daItemBase_cFPCc(); -extern "C" bool clothCreate__12daItemBase_cFv(); -extern "C" bool __CreateHeap__12daItemBase_cFv(); -extern "C" void CreateItemHeap__12daItemBase_cFPCcsssssss(); -extern "C" void DrawBase__12daItemBase_cFv(); -extern "C" void RotateYBase__12daItemBase_cFv(); -extern "C" void setListStart__12daItemBase_cFv(); -extern "C" void setListEnd__12daItemBase_cFv(); -extern "C" void settingBeforeDraw__12daItemBase_cFv(); -extern "C" void setTevStr__12daItemBase_cFv(); -extern "C" void setShadow__12daItemBase_cFv(); -extern "C" void animEntry__12daItemBase_cFv(); -extern "C" void animPlay__12daItemBase_cFffffff(); -extern "C" void chkFlag__12daItemBase_cFi(); -extern "C" void getTevFrm__12daItemBase_cFv(); -extern "C" void getBtpFrm__12daItemBase_cFv(); -extern "C" void getShadowSize__12daItemBase_cFv(); -extern "C" void getCollisionH__12daItemBase_cFv(); -extern "C" void getCollisionR__12daItemBase_cFv(); -extern "C" extern void* __vt__12daItemBase_c[17 + 1 /* padding */]; - -// // External References: // -extern "C" void play__14mDoExt_baseAnmFv(); -extern "C" void init__13mDoExt_bpkAnmFP16J3DMaterialTableP11J3DAnmColoriifss(); -extern "C" void entry__13mDoExt_bpkAnmFP16J3DMaterialTablef(); -extern "C" void init__13mDoExt_btpAnmFP16J3DMaterialTableP16J3DAnmTexPatterniifss(); -extern "C" void entry__13mDoExt_btpAnmFP16J3DMaterialTables(); -extern "C" void init__13mDoExt_btkAnmFP16J3DMaterialTableP19J3DAnmTextureSRTKeyiifss(); -extern "C" void entry__13mDoExt_btkAnmFP16J3DMaterialTablef(); -extern "C" void init__13mDoExt_brkAnmFP16J3DMaterialTableP15J3DAnmTevRegKeyiifss(); -extern "C" void entry__13mDoExt_brkAnmFP16J3DMaterialTablef(); -extern "C" void init__13mDoExt_bckAnmFP15J3DAnmTransformiifssb(); -extern "C" void entry__13mDoExt_bckAnmFP12J3DModelDataf(); -extern "C" void mDoExt_modelUpdateDL__FP8J3DModel(); -extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl(); -extern "C" void fopAcM_setEffectMtx__FPC10fopAc_ac_cPC12J3DModelData(); -extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfGd_setSimpleShadow__FP4cXyzffR13cBgS_PolyInfosfP9_GXTexObj(); -extern "C" void -dComIfGd_setShadow__FUlScP8J3DModelP4cXyzffffR13cBgS_PolyInfoP12dKy_tevstr_csfP9_GXTexObj(); -extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci(); -extern "C" void getData__12daItemBase_cFv(); -extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c(); -extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c(); -extern "C" void* __nw__FUl(); -extern "C" void init__12J3DFrameCtrlFs(); -extern "C" void _savefpr_27(); -extern "C" void _restfpr_27(); -extern "C" void _savegpr_21(); -extern "C" void _restgpr_21(); -extern "C" extern void* __vt__12J3DFrameCtrl[3]; -extern "C" void* item_resource__10dItem_data[1530]; -extern "C" u8 item_info__10dItem_data[1020 + 4 /* padding */]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; -extern "C" u8 mSimpleTexObj__21dDlst_shadowControl_c[32]; -extern "C" extern u8 g_env_light[4880]; -extern "C" extern u8 j3dSys[284]; +extern "C" extern dScnKy_env_light_c g_env_light; // // Declarations: // /* 80144724-8014474C 13F064 0028+00 0/0 1/1 8/8 .text DeleteBase__12daItemBase_cFPCc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daItemBase_c::DeleteBase(char const* param_0) { - nofralloc -#include "asm/d/a/d_a_itembase/DeleteBase__12daItemBase_cFPCc.s" +int daItemBase_c::DeleteBase(char const* res) { + dComIfG_resDelete(&mPhase, res); + return 1; } -#pragma pop /* 8014474C-80144754 13F08C 0008+00 1/0 1/0 9/0 .text clothCreate__12daItemBase_cFv */ -bool daItemBase_c::clothCreate() { - return true; +int daItemBase_c::clothCreate() { + return 1; } /* 80144754-8014475C 13F094 0008+00 1/0 1/0 3/0 .text __CreateHeap__12daItemBase_cFv */ -bool daItemBase_c::__CreateHeap() { - return true; +int daItemBase_c::__CreateHeap() { + return 1; } -/* ############################################################################################## */ -/* 804533A8-804533AC 0019A8 0004+00 2/2 0/0 0/0 .sdata2 @3881 */ -SECTION_SDATA2 static f32 lit_3881 = 1.0f; - /* 8014475C-80144B94 13F09C 0438+00 0/0 3/3 0/0 .text CreateItemHeap__12daItemBase_cFPCcsssssss */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daItemBase_c::CreateItemHeap(char const* param_0, s16 param_1, s16 param_2, s16 param_3, - s16 param_4, s16 param_5, s16 param_6, s16 param_7) { - nofralloc -#include "asm/d/a/d_a_itembase/CreateItemHeap__12daItemBase_cFPCcsssssss.s" +int daItemBase_c::CreateItemHeap(char const* arcName, s16 bmdName, s16 btkName, s16 bpkName, + s16 bckName, s16 bxaName, s16 brkName, s16 btpName) { + J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(arcName, bmdName); + + u32 flags = 0x11000084; + u32 uvar7 = 0x80000; + + if (btkName > 0) { + flags |= 0x200; + } + + if (bpkName > 0) { + flags |= 0x1; + } + + if (btpName > 0) { + flags |= 0x20000; + } + + if (chkFlag(4)) { + uvar7 = 0; + } + + mpModel = mDoExt_J3DModel__create(modelData, uvar7, flags); + + if (mpModel == NULL) { + return 0; + } else { + field_0x578 = NULL; + if (btkName > 0) { + J3DAnmTextureSRTKey* pbtk = + (J3DAnmTextureSRTKey*)dComIfG_getObjectRes(arcName, btkName); + field_0x578 = new mDoExt_btkAnm(); + + if (field_0x578 == NULL || !field_0x578->init(modelData, pbtk, 1, 2, 1.0f, 0, -1)) { + return 0; + } + } + + field_0x57c = NULL; + if (bpkName > 0) { + J3DAnmColor* pbpk = (J3DAnmColor*)dComIfG_getObjectRes(arcName, bpkName); + field_0x57c = new mDoExt_bpkAnm(); + + if (field_0x57c == NULL || !field_0x57c->init(modelData, pbpk, 1, 2, 1.0f, 0, -1)) { + return 0; + } + } + + field_0x584 = NULL; + if (bckName > 0) { + J3DAnmTransform* pbck = (J3DAnmTransform*)dComIfG_getObjectRes(arcName, bckName); + field_0x584 = new mDoExt_bckAnm(); + + if (field_0x584 == NULL || !field_0x584->init(pbck, 1, 2, 1.0f, 0, -1, false)) { + return 0; + } + } + + field_0x580 = NULL; + if (brkName > 0) { + J3DAnmTevRegKey* pbrk = (J3DAnmTevRegKey*)dComIfG_getObjectRes(arcName, brkName); + s8 tevFrm = getTevFrm(); + int tmp = 1; + if (tevFrm != -1) { + tmp = 0; + } + + field_0x580 = new mDoExt_brkAnm(); + + if (field_0x580 == NULL || !field_0x580->init(modelData, pbrk, tmp, 2, 1.0f, 0, -1)) { + return 0; + } + } + + field_0x588 = NULL; + if (btpName > 0) { + J3DAnmTexPattern* pbtp = (J3DAnmTexPattern*)dComIfG_getObjectRes(arcName, btpName); + field_0x588 = new mDoExt_btpAnm(); + + if (field_0x588 == NULL || !field_0x588->init(modelData, pbtp, 1, 2, 1.0f, 0, -1)) { + return 0; + } + } + + if (!clothCreate()) { + return 0; + } + } + + return __CreateHeap() ? 1 : 0; } -#pragma pop /* 80144B94-80144C30 13F4D4 009C+00 1/0 1/0 9/0 .text DrawBase__12daItemBase_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daItemBase_c::DrawBase() { - nofralloc -#include "asm/d/a/d_a_itembase/DrawBase__12daItemBase_cFv.s" +int daItemBase_c::DrawBase() { + setTevStr(); + animEntry(); + setListStart(); + settingBeforeDraw(); + mDoExt_modelUpdateDL(mpModel); + setListEnd(); + setShadow(); + return 1; } -#pragma pop /* 80144C30-80144C7C 13F570 004C+00 1/0 1/0 9/0 .text RotateYBase__12daItemBase_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daItemBase_c::RotateYBase() { - nofralloc -#include "asm/d/a/d_a_itembase/RotateYBase__12daItemBase_cFv.s" +void daItemBase_c::RotateYBase() { + mCollisionRot.y += (s16)(0xFFFF / getData().field_0x1c); } -#pragma pop /* 80144C7C-80144CA0 13F5BC 0024+00 1/0 1/0 5/0 .text setListStart__12daItemBase_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daItemBase_c::setListStart() { - nofralloc -#include "asm/d/a/d_a_itembase/setListStart__12daItemBase_cFv.s" +void daItemBase_c::setListStart() { + dComIfGd_setListDark(); } -#pragma pop /* 80144CA0-80144CC4 13F5E0 0024+00 1/1 0/0 0/0 .text setListEnd__12daItemBase_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daItemBase_c::setListEnd() { - nofralloc -#include "asm/d/a/d_a_itembase/setListEnd__12daItemBase_cFv.s" +void daItemBase_c::setListEnd() { + dComIfGd_setList(); } -#pragma pop /* 80144CC4-80144D18 13F604 0054+00 1/0 1/0 9/0 .text settingBeforeDraw__12daItemBase_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daItemBase_c::settingBeforeDraw() { - nofralloc -#include "asm/d/a/d_a_itembase/settingBeforeDraw__12daItemBase_cFv.s" +void daItemBase_c::settingBeforeDraw() { + if (chkFlag(4)) { + fopAcM_setEffectMtx(this, mpModel->getModelData()); + } } -#pragma pop /* 80144D18-80144D70 13F658 0058+00 1/0 0/0 8/0 .text setTevStr__12daItemBase_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daItemBase_c::setTevStr() { - nofralloc -#include "asm/d/a/d_a_itembase/setTevStr__12daItemBase_cFv.s" +void daItemBase_c::setTevStr() { + g_env_light.settingTevStruct(0, &mCurrent.mPosition, &mTevStr); + g_env_light.setLightTevColorType_MAJI(mpModel, &mTevStr); } -#pragma pop - -/* ############################################################################################## */ -/* 804533AC-804533B0 0019AC 0004+00 1/1 0/0 0/0 .sdata2 @3952 */ -SECTION_SDATA2 static u8 lit_3952[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; - -/* 804533B0-804533B8 0019B0 0004+04 1/1 0/0 0/0 .sdata2 @3953 */ -SECTION_SDATA2 static f32 lit_3953[1 + 1 /* padding */] = { - 150.0f, - /* padding */ - 0.0f, -}; - -/* 804533B8-804533C0 0019B8 0008+00 1/1 0/0 0/0 .sdata2 @3955 */ -SECTION_SDATA2 static f64 lit_3955 = 4503599627370496.0 /* cast u32 to float */; /* 80144D70-80144EDC 13F6B0 016C+00 1/0 1/0 9/1 .text setShadow__12daItemBase_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daItemBase_c::setShadow() { - nofralloc -#include "asm/d/a/d_a_itembase/setShadow__12daItemBase_cFv.s" +void daItemBase_c::setShadow() { + f32 scale = mScale.x * getShadowSize(); + + if (!chkFlag(0x10)) { + if (getShadowSize() != 0.0f) { + dComIfGd_setSimpleShadow(&mCurrent.mPosition, field_0x58c.GetGroundH(), scale, + field_0x58c.m_gnd, 0, 1.0f, + dDlst_shadowControl_c::getSimpleTex()); + } + } else { + f32 shadowSize = getShadowSize(); + if (shadowSize == 0.0f) { + shadowSize = 150.0f; + } + + field_0x91c = + dComIfGd_setShadow(field_0x91c, 3, mpModel, &mCurrent.mPosition, shadowSize, 0.0f, + mCurrent.mPosition.y, field_0x58c.GetGroundH(), field_0x58c.m_gnd, + &mTevStr, 0, 1.0f, dDlst_shadowControl_c::getSimpleTex()); + } } -#pragma pop - -/* ############################################################################################## */ -/* 804533C0-804533C8 0019C0 0008+00 1/1 0/0 0/0 .sdata2 @4041 */ -SECTION_SDATA2 static f64 lit_4041 = 4503601774854144.0 /* cast s32 to float */; /* 80144EDC-8014503C 13F81C 0160+00 1/0 1/0 9/0 .text animEntry__12daItemBase_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daItemBase_c::animEntry() { - nofralloc -#include "asm/d/a/d_a_itembase/animEntry__12daItemBase_cFv.s" +void daItemBase_c::animEntry() { + if (field_0x580 != NULL) { + s8 tevFrm = getTevFrm(); + if (tevFrm != -1) { + field_0x580->entry(mpModel->getModelData(), tevFrm); + } else { + field_0x580->entry(mpModel->getModelData()); + } + } + + if (field_0x588 != NULL) { + s8 btpFrm = getBtpFrm(); + if (btpFrm != -1) { + field_0x588->entry(mpModel->getModelData(), btpFrm); + } else { + field_0x588->entry(mpModel->getModelData()); + } + } + + if (field_0x578 != NULL) { + field_0x578->entry(mpModel->getModelData()); + } + + if (field_0x584 != NULL) { + field_0x584->entry(mpModel->getModelData()); + } + + if (field_0x57c != NULL) { + field_0x57c->entry(mpModel->getModelData()); + } } -#pragma pop /* 8014503C-80145144 13F97C 0108+00 0/0 2/2 4/4 .text animPlay__12daItemBase_cFffffff */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daItemBase_c::animPlay(f32 param_0, f32 param_1, f32 param_2, f32 param_3, f32 param_4, - f32 param_5) { - nofralloc -#include "asm/d/a/d_a_itembase/animPlay__12daItemBase_cFffffff.s" +void daItemBase_c::animPlay(f32 btkSpeed, f32 bpkSpeed, f32 bckSpeed, f32 param_3, f32 brkSpeed, + f32 btpSpeed) { + if (field_0x580 != NULL && getTevFrm() == -1) { + field_0x580->setPlaySpeed(brkSpeed); + field_0x580->play(); + } + + if (field_0x588 != NULL && getBtpFrm() == -1) { + field_0x588->setPlaySpeed(btpSpeed); + field_0x588->play(); + } + + if (field_0x578 != NULL) { + field_0x578->setPlaySpeed(btkSpeed); + field_0x578->play(); + } + + if (field_0x57c != NULL) { + field_0x57c->setPlaySpeed(bpkSpeed); + field_0x57c->play(); + } + + if (field_0x584 != NULL) { + field_0x584->setPlaySpeed(bckSpeed); + field_0x584->play(); + } } -#pragma pop /* 80145144-80145164 13FA84 0020+00 1/0 1/0 8/0 .text chkFlag__12daItemBase_cFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daItemBase_c::chkFlag(int param_0) { - nofralloc -#include "asm/d/a/d_a_itembase/chkFlag__12daItemBase_cFi.s" +BOOL daItemBase_c::chkFlag(int flag) { + return dItem_data::chkFlag(m_itemNo, flag); } -#pragma pop /* 80145164-80145180 13FAA4 001C+00 1/0 1/0 8/0 .text getTevFrm__12daItemBase_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daItemBase_c::getTevFrm() { - nofralloc -#include "asm/d/a/d_a_itembase/getTevFrm__12daItemBase_cFv.s" +s8 daItemBase_c::getTevFrm() { + return dItem_data::getTevFrm(m_itemNo); } -#pragma pop /* 80145180-8014519C 13FAC0 001C+00 1/0 1/0 8/0 .text getBtpFrm__12daItemBase_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daItemBase_c::getBtpFrm() { - nofralloc -#include "asm/d/a/d_a_itembase/getBtpFrm__12daItemBase_cFv.s" +s8 daItemBase_c::getBtpFrm() { + return dItem_data::getBtpFrm(m_itemNo); } -#pragma pop /* 8014519C-801451B4 13FADC 0018+00 1/0 1/0 8/0 .text getShadowSize__12daItemBase_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daItemBase_c::getShadowSize() { - nofralloc -#include "asm/d/a/d_a_itembase/getShadowSize__12daItemBase_cFv.s" +u8 daItemBase_c::getShadowSize() { + return dItem_data::getShadowSize(m_itemNo); } -#pragma pop /* 801451B4-801451D0 13FAF4 001C+00 1/0 1/0 8/0 .text getCollisionH__12daItemBase_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daItemBase_c::getCollisionH() { - nofralloc -#include "asm/d/a/d_a_itembase/getCollisionH__12daItemBase_cFv.s" +u8 daItemBase_c::getCollisionH() { + return dItem_data::getH(m_itemNo); } -#pragma pop /* 801451D0-801451EC 13FB10 001C+00 1/0 1/0 8/0 .text getCollisionR__12daItemBase_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daItemBase_c::getCollisionR() { - nofralloc -#include "asm/d/a/d_a_itembase/getCollisionR__12daItemBase_cFv.s" +u8 daItemBase_c::getCollisionR() { + return dItem_data::getR(m_itemNo); } -#pragma pop - -/* ############################################################################################## */ -/* 803B3610-803B3658 010730 0044+04 0/0 1/1 9/9 .data __vt__12daItemBase_c */ -SECTION_DATA extern void* __vt__12daItemBase_c[17 + 1 /* padding */] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)DrawBase__12daItemBase_cFv, - (void*)setListStart__12daItemBase_cFv, - (void*)settingBeforeDraw__12daItemBase_cFv, - (void*)setTevStr__12daItemBase_cFv, - (void*)setShadow__12daItemBase_cFv, - (void*)animEntry__12daItemBase_cFv, - (void*)RotateYBase__12daItemBase_cFv, - (void*)clothCreate__12daItemBase_cFv, - (void*)__CreateHeap__12daItemBase_cFv, - (void*)chkFlag__12daItemBase_cFi, - (void*)getTevFrm__12daItemBase_cFv, - (void*)getBtpFrm__12daItemBase_cFv, - (void*)getShadowSize__12daItemBase_cFv, - (void*)getCollisionH__12daItemBase_cFv, - (void*)getCollisionR__12daItemBase_cFv, - /* padding */ - NULL, -}; diff --git a/src/d/a/d_a_itembase_static.cpp b/src/d/a/d_a_itembase_static.cpp index b8e002a6cb..303c5dd202 100644 --- a/src/d/a/d_a_itembase_static.cpp +++ b/src/d/a/d_a_itembase_static.cpp @@ -5,57 +5,20 @@ #include "d/a/d_a_itembase_static.h" #include "SSystem/SComponent/c_lib.h" +#include "d/d_item_data.h" #include "dol2asm.h" #include "dolphin/types.h" -// -// Types: -// - -struct fopAc_ac_c {}; - -struct dItem_data { - static void* item_resource[1530]; - static void* field_item_res[1020]; -}; - -// -// Forward References: -// - -extern "C" void getItemNo__12daItemBase_cFv(); -extern "C" void hide__12daItemBase_cFv(); -extern "C" void show__12daItemBase_cFv(); -extern "C" void changeDraw__12daItemBase_cFv(); -extern "C" void chkDraw__12daItemBase_cFv(); -extern "C" void dead__12daItemBase_cFv(); -extern "C" void chkDead__12daItemBase_cFv(); -extern "C" void CheckItemCreateHeap__FP10fopAc_ac_c(); -extern "C" void CheckFieldItemCreateHeap__FP10fopAc_ac_c(); -extern "C" u8 const m_data__12daItemBase_c[56]; - -// -// External References: -// - -extern "C" void CreateItemHeap__12daItemBase_cFPCcsssssss(); -extern "C" void* item_resource__10dItem_data[1530]; -extern "C" void* field_item_res__10dItem_data[1020]; - -// -// Declarations: -// - u8 daItemBase_c::getItemNo() { - return mItemNo; + return m_itemNo; } void daItemBase_c::hide() { - cLib_offBit(unk2347, 1); + cLib_offBit(field_0x92b, 1); } void daItemBase_c::show() { - cLib_onBit(unk2347, 1); + cLib_onBit(field_0x92b, 1); } void daItemBase_c::changeDraw() { @@ -67,44 +30,43 @@ void daItemBase_c::changeDraw() { } u8 daItemBase_c::chkDraw() { - return cLib_checkBit(unk2347, 1) != 0; + return cLib_checkBit(field_0x92b, 1) != 0; } void daItemBase_c::dead() { - cLib_onBit(unk2347, 2); + cLib_onBit(field_0x92b, 2); } u8 daItemBase_c::chkDead() { - return cLib_checkBit(unk2347, 2) != 0; + return cLib_checkBit(field_0x92b, 2) != 0; } /* 80037B0C-80037B78 03244C 006C+00 0/0 0/0 1/1 .text CheckItemCreateHeap__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void CheckItemCreateHeap(fopAc_ac_c* param_0) { - nofralloc -#include "asm/d/a/d_a_itembase_static/CheckItemCreateHeap__FP10fopAc_ac_c.s" +void CheckItemCreateHeap(fopAc_ac_c* actor) { + daItemBase_c* item = static_cast<daItemBase_c*>(actor); + + u8 item_no = item->getItemNo(); + item->CreateItemHeap(dItem_data::getArcName(item_no), dItem_data::getBmdName(item_no), + dItem_data::getBtkName(item_no), dItem_data::getBpkName(item_no), + dItem_data::getBckName(item_no), dItem_data::getBxaName(item_no), + dItem_data::getBrkName(item_no), dItem_data::getBtpName(item_no)); } -#pragma pop /* 80037B78-80037BE0 0324B8 0068+00 0/0 1/1 7/7 .text CheckFieldItemCreateHeap__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void CheckFieldItemCreateHeap(fopAc_ac_c* param_0) { - nofralloc -#include "asm/d/a/d_a_itembase_static/CheckFieldItemCreateHeap__FP10fopAc_ac_c.s" +void CheckFieldItemCreateHeap(fopAc_ac_c* actor) { + daItemBase_c* item = static_cast<daItemBase_c*>(actor); + + u8 item_no = item->getItemNo(); + item->CreateItemHeap(dItem_data::getFieldArc(item_no), dItem_data::getItemBmdName(item_no), + dItem_data::getItemBtkName(item_no), dItem_data::getItemBpkName(item_no), + dItem_data::getItemBckName(item_no), dItem_data::getItemBxaName(item_no), + dItem_data::getItemBrkName(item_no), dItem_data::getItemBtpName(item_no)); } -#pragma pop /* ############################################################################################## */ /* 803792B0-803792E8 005910 0038+00 0/0 1/1 0/0 .rodata m_data__12daItemBase_c */ -SECTION_RODATA u8 const daItemBase_c::m_data[56] = { - 0xC0, 0x90, 0x00, 0x00, 0x3F, 0x1E, 0xB8, 0x52, 0x42, 0x34, 0x00, 0x00, 0x41, 0x20, - 0x00, 0x00, 0x40, 0xC0, 0x00, 0x00, 0x00, 0x01, 0x00, 0xF0, 0x00, 0x3C, 0x0F, 0xA0, - 0x00, 0x78, 0x00, 0x00, 0xC0, 0x80, 0x00, 0x00, 0x40, 0x60, 0x00, 0x00, 0x04, 0x4C, - 0x0B, 0xB8, 0x41, 0xB8, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x0A, -}; +SECTION_RODATA daItemBase_data const daItemBase_c::m_data = { + -4.5f, 0.62f, 45.0f, 10.0f, 6.0f, 1, 240, 60, 4000, + 120, -4.0f, 3.5f, 1100, 3000, 23.0f, -6.0f, 13, 10}; COMPILER_STRIP_GATE(0x803792B0, &daItemBase_c::m_data); diff --git a/src/d/com/d_com_inf_game.cpp b/src/d/com/d_com_inf_game.cpp index f1b59bb10b..9a783342b5 100644 --- a/src/d/com/d_com_inf_game.cpp +++ b/src/d/com/d_com_inf_game.cpp @@ -5,38 +5,13 @@ #include "d/com/d_com_inf_game.h" #include "d/d_item.h" +#include "d/d_procname.h" +#include "d/d_timer.h" #include "d/kankyo/d_kankyo.h" #include "d/meter/d_meter2_info.h" #include "dol2asm.h" #include "dolphin/types.h" - -// -// Types: -// - -struct scene_class {}; - -struct dSmplMdl_draw_c { - /* 80048CB4 */ dSmplMdl_draw_c(); - /* 80048E0C */ void draw(); - /* 80048EBC */ void entry(J3DModel*, int); - /* 80048F70 */ void addModel(J3DModelData*, int, u8); - /* 80049058 */ void removeModel(J3DModelData*, int); -}; - -struct dComIfG_resLoader_c { - /* 8002F314 */ dComIfG_resLoader_c(); - /* 8002F328 */ ~dComIfG_resLoader_c(); - /* 8002F3B4 */ void load(char const**, JKRHeap*); -}; - -struct Z2SeqMgr { - /* 802AF408 */ void bgmStop(u32, s32); -}; - -struct Z2AudioMgr { - static u8 mAudioMgrPtr[4 + 4 /* padding */]; -}; +#include "m_Do/m_Do_audio.h" // // Forward References: @@ -230,7 +205,7 @@ extern "C" void __dt__8cM3dGCylFv(); extern "C" void __dt__8cM3dGAabFv(); extern "C" void __dt__15cCcD_DivideInfoFv(); extern "C" extern char const* const d_com_d_com_inf_game__stringBase0; -extern "C" extern u32 g_saftyWhiteColor; +extern "C" extern GXColor g_saftyWhiteColor; // // External References: @@ -374,7 +349,7 @@ extern "C" extern void* __vt__14cCcD_ShapeAttr[22]; extern "C" extern void* __vt__4cCcS[12]; extern "C" u8 m_cpadInfo__8mDoCPd_c[256]; extern "C" u8 mStatus__20dStage_roomControl_c[65792]; -extern "C" extern u8 g_env_light[4880]; +extern "C" extern dScnKy_env_light_c g_env_light; extern "C" u8 mFader__13mDoGph_gInf_c[4]; extern "C" u8 mResetData__6mDoRst[4 + 4 /* padding */]; extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; @@ -425,8 +400,8 @@ void dComIfG_play_c::init() { mGameoverStatus = 0; } -void dComIfGp_checkItemGet(u8 param_0, int param_1) { - checkItemGet(param_0, param_1); +void dComIfGp_checkItemGet(u8 i_itemNo, int param_1) { + checkItemGet(i_itemNo, param_1); } void dComIfG_play_c::itemInit() { @@ -449,8 +424,8 @@ void dComIfG_play_c::itemInit() { mNowVibration = dComIfGs_getOptVibration(); } -void dComIfG_play_c::setItemBombNumCount(u8 i_item, s16 pCount) { - mItemBombNumCount[i_item] += pCount; +void dComIfG_play_c::setItemBombNumCount(u8 i_item, s16 count) { + mItemBombNumCount[i_item] += count; } s16 dComIfG_play_c::getItemBombNumCount(u8 i_item) { @@ -461,23 +436,23 @@ void dComIfG_play_c::clearItemBombNumCount(u8 i_item) { mItemBombNumCount[i_item] = 0; } -void dComIfG_play_c::setNowVibration(u8 pStatus) { - mNowVibration = pStatus; +void dComIfG_play_c::setNowVibration(u8 vib_status) { + mNowVibration = vib_status; } u32 dComIfG_play_c::getNowVibration() { return mNowVibration; } -void dComIfG_play_c::setStartStage(dStage_startStage_c* pStartStage) { +void dComIfG_play_c::setStartStage(dStage_startStage_c* p_startStage) { mLayerOld = mStartStage.getLayer(); - mStartStage = *pStartStage; + mStartStage = *p_startStage; } /* 8002B3F4-8002B434 025D34 0040+00 1/1 0/0 0/0 .text dComIfG_get_timelayer__FPi */ -void dComIfG_get_timelayer(int* pLayer) { - if (dKy_daynight_check__Fv()) { - *pLayer += 1; +void dComIfG_get_timelayer(int* layer) { + if (dKy_daynight_check()) { + *layer += 1; } } @@ -1163,7 +1138,8 @@ int dComIfG_play_c::getLayerNo_common_common(const char* stageName, int roomId, #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm int dComIfG_play_c::getLayerNo_common_common(char const* param_0, int param_1, int param_2) { +asm int dComIfG_play_c::getLayerNo_common_common(char const* i_stageName, int i_roomID, + int i_layerOverride) { nofralloc #include "asm/d/com/d_com_inf_game/getLayerNo_common_common__14dComIfG_play_cFPCcii.s" } @@ -1183,104 +1159,74 @@ int dComIfG_play_c::getLayerNo_common(char const* i_stageName, int i_roomID, int /* 8002C97C-8002C9D8 0272BC 005C+00 1/1 22/22 68/68 .text getLayerNo__14dComIfG_play_cFi */ -#ifdef NONMATCHING -int dComIfG_play_c::getLayerNo(int param_0) { - int roomNo = dComIfGp_roomControl_getStayNo(); +int dComIfG_play_c::getLayerNo(int) { + s32 roomNo = dComIfGp_roomControl_getStayNo(); - if (roomNo <= -1) { + if ((s8)roomNo <= -1) { roomNo = dComIfGp_getStartStageRoomNo(); } - int layer = dComIfGp_getStartStageLayer(); - const char* stage = dComIfGp_getStartStageName(); - - return getLayerNo_common(stage, roomNo, layer); -} -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int dComIfG_play_c::getLayerNo(int param_0) { - nofralloc -#include "asm/d/com/d_com_inf_game/getLayerNo__14dComIfG_play_cFi.s" + return getLayerNo_common(dComIfGp_getStartStageName(), roomNo, dComIfGp_getStartStageLayer()); } -#pragma pop -#endif /* 8002C9D8-8002CA1C 027318 0044+00 0/0 1/1 0/0 .text createParticle__14dComIfG_play_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dComIfG_play_c::createParticle() { - nofralloc -#include "asm/d/com/d_com_inf_game/createParticle__14dComIfG_play_cFv.s" +void dComIfG_play_c::createParticle() { + mParticle = new dPa_control_c(); } -#pragma pop /* 8002CA1C-8002CA70 02735C 0054+00 0/0 1/1 0/0 .text createSimpleModel__14dComIfG_play_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm u32 dComIfG_play_c::createSimpleModel() { - nofralloc -#include "asm/d/com/d_com_inf_game/createSimpleModel__14dComIfG_play_cFv.s" +dSmplMdl_draw_c* dComIfG_play_c::createSimpleModel() { + if (mSimpleModel == NULL) { + mSimpleModel = new dSmplMdl_draw_c(); + } + return mSimpleModel; } -#pragma pop /* 8002CA70-8002CAC4 0273B0 0054+00 0/0 1/1 0/0 .text deleteSimpleModel__14dComIfG_play_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dComIfG_play_c::deleteSimpleModel() { - nofralloc -#include "asm/d/com/d_com_inf_game/deleteSimpleModel__14dComIfG_play_cFv.s" +void dComIfG_play_c::deleteSimpleModel() { + if (mSimpleModel != NULL) { + delete mSimpleModel; + mSimpleModel = NULL; + } } -#pragma pop /* 8002CAC4-8002CAF0 027404 002C+00 0/0 1/1 0/0 .text drawSimpleModel__14dComIfG_play_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dComIfG_play_c::drawSimpleModel() { - nofralloc -#include "asm/d/com/d_com_inf_game/drawSimpleModel__14dComIfG_play_cFv.s" +void dComIfG_play_c::drawSimpleModel() { + if (mSimpleModel != NULL) { + mSimpleModel->draw(); + } } -#pragma pop /* 8002CAF0-8002CB30 027430 0040+00 0/0 0/0 16/16 .text * addSimpleModel__14dComIfG_play_cFP12J3DModelDataiUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm u32 dComIfG_play_c::addSimpleModel(J3DModelData* param_0, int param_1, u8 param_2) { - nofralloc -#include "asm/d/com/d_com_inf_game/addSimpleModel__14dComIfG_play_cFP12J3DModelDataiUc.s" +int dComIfG_play_c::addSimpleModel(J3DModelData* i_modelData, int roomNo, u8 drawBG) { + if (mSimpleModel != NULL && mSimpleModel->addModel(i_modelData, roomNo, drawBG)) { + return 1; + } + + return -1; } -#pragma pop /* 8002CB30-8002CB68 027470 0038+00 0/0 0/0 16/16 .text * removeSimpleModel__14dComIfG_play_cFP12J3DModelDatai */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm u32 dComIfG_play_c::removeSimpleModel(J3DModelData* param_0, int param_1) { - nofralloc -#include "asm/d/com/d_com_inf_game/removeSimpleModel__14dComIfG_play_cFP12J3DModelDatai.s" +int dComIfG_play_c::removeSimpleModel(J3DModelData* i_modelData, int roomNo) { + if (mSimpleModel != NULL) { + mSimpleModel->removeModel(i_modelData, roomNo); + return 1; + } + + return 0; } -#pragma pop /* 8002CB68-8002CB94 0274A8 002C+00 0/0 0/0 16/16 .text * entrySimpleModel__14dComIfG_play_cFP8J3DModeli */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm u32 dComIfG_play_c::entrySimpleModel(J3DModel* param_0, int param_1) { - nofralloc -#include "asm/d/com/d_com_inf_game/entrySimpleModel__14dComIfG_play_cFP8J3DModeli.s" +void dComIfG_play_c::entrySimpleModel(J3DModel* i_model, int roomNo) { + if (mSimpleModel != NULL) { + mSimpleModel->entry(i_model, roomNo); + } } -#pragma pop void dComIfG_play_c::setTimerNowTimeMs(int time) { mTimerInfo.mTimerNowTimeMs = time; @@ -1315,8 +1261,8 @@ u8 dComIfG_play_c::getTimerType() { } /* 8002CBD4-8002CBDC -00001 0008+00 0/0 0/0 0/0 .text setTimerPtr__14dComIfG_play_cFP8dTimer_c */ -void dComIfG_play_c::setTimerPtr(dTimer_c* pTimerPtr) { - mTimerInfo.mTimerPtr = pTimerPtr; +void dComIfG_play_c::setTimerPtr(dTimer_c* ptr) { + mTimerInfo.mTimerPtr = ptr; } /* 8002CBDC-8002CBE4 02751C 0008+00 6/6 7/7 15/15 .text getTimerPtr__14dComIfG_play_cFv @@ -1339,13 +1285,6 @@ void dComIfG_inf_c::ct() { field_0x1de0a = 0xFF; } -/* ############################################################################################## */ -/* 80378F38-80378F38 005598 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80379043 = "F_SP102"; -#pragma pop - /* 80450600-80450604 000080 0004+00 0/0 18/18 2/2 .sdata g_clearColor */ SECTION_SDATA extern GXColor g_clearColor = {0, 0, 0, 0}; @@ -1354,35 +1293,43 @@ SECTION_SDATA extern GXColor g_blackColor = {0, 0, 0, 255}; /* 8002CC54-8002CD44 027594 00F0+00 1/1 1/1 0/0 .text dComIfG_changeOpeningScene__FP11scene_classs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dComIfG_changeOpeningScene(scene_class* param_0, s16 param_1) { - nofralloc -#include "asm/d/com/d_com_inf_game/dComIfG_changeOpeningScene__FP11scene_classs.s" +int dComIfG_changeOpeningScene(scene_class* scene, s16 procName) { + dComIfGp_offEnableNextStage(); + dComIfGp_setNextStage("F_SP102", 100, 0, 10); + mDoAud_setSceneName(dComIfGp_getNextStageName(), dComIfGp_getNextStageRoomNo(), + dComIfGp_getNextStageLayer()); + dComIfGs_setRestartRoomParam(0); + + if (mDoGph_gInf_c::getFader()->getStatus() == 1) { + mDoGph_gInf_c::setFadeColor(*(JUtility::TColor*)&g_blackColor); + } + + fopScnM_ChangeReq(scene, procName, 0, 30); + fopScnM_ReRequest(procName, 0); + + return 1; } -#pragma pop /* 8002CD44-8002CDB8 027684 0074+00 0/0 2/2 0/0 .text dComIfG_resetToOpening__FP11scene_class */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm BOOL dComIfG_resetToOpening(scene_class* param_0) { - nofralloc -#include "asm/d/com/d_com_inf_game/dComIfG_resetToOpening__FP11scene_class.s" +BOOL dComIfG_resetToOpening(scene_class* scene) { + if (mDoRst::isReturnToMenu() || !mDoRst::isReset() || + mDoGph_gInf_c::getFader()->getStatus() == 2) { + return 0; + } + + dComIfG_changeOpeningScene(scene, PROC_OPENING_SCENE); + mDoAud_bgmStop(30); + mDoAud_resetProcess(); + return 1; } -#pragma pop static int phase_1(char* arc_name) { - int ret; - if (!dComIfG_setObjectRes(arc_name, 0, NULL)) { OSReport_Error("%s.arc Read Error !!\n", arc_name); - ret = 5; - } else { - ret = 2; + return 5; } - return ret; + + return 2; } /* 8002CE38-8002CEB4 027778 007C+00 1/0 0/0 0/0 .text phase_2__FPc */ @@ -1398,55 +1345,35 @@ static int phase_2(char* arc_name) { } /* 8002CEB4-8002CEBC 0277F4 0008+00 1/0 0/0 0/0 .text phase_3__FPc */ -static int phase_3(char* param_0) { +static int phase_3(char*) { return 4; } -typedef int (*dComIfG_phaseMethod)(char*); -typedef int (*dComIfG_phaseMethod0)(phaseParam_c*); - -/* ############################################################################################## */ -/* 803A71B8-803A71C4 -00001 000C+00 1/1 0/0 0/0 .data l_method$5017 */ -SECTION_DATA static dComIfG_phaseMethod l_method_5017[3] = { - phase_1, - phase_2, - phase_3, -}; - /* 8002CEBC-8002CEFC 0277FC 0040+00 0/0 7/7 550/550 .text * dComIfG_resLoad__FP30request_of_phase_process_classPCc */ -#ifdef NONMATCHING -int dComIfG_resLoad(request_of_phase_process_class* param_0, char const* param_1) { - if (param_0->mPhaseStep == 2) { +int dComIfG_resLoad(request_of_phase_process_class* i_phase, char const* arc_name) { + static int (*l_method[3])(void*) = {(int (*)(void*))phase_1, (int (*)(void*))phase_2, + (int (*)(void*))phase_3}; + + if (i_phase->mPhaseStep == 2) { return 4; - } else { - dComLbG_PhaseHandler(param_0, &l_method_5017[0], (void*)param_1); } - return 0; -} -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dComIfG_resLoad(request_of_phase_process_class* param_0, char const* param_1) { - nofralloc -#include "asm/d/com/d_com_inf_game/dComIfG_resLoad__FP30request_of_phase_process_classPCc.s" + + return dComLbG_PhaseHandler(i_phase, l_method, (void*)arc_name); } -#pragma pop -#endif /* 8002CEFC-8002CF5C 02783C 0060+00 1/0 0/0 0/0 .text phase_01__FP12phaseParam_c */ -static int phase_01(phaseParam_c* param_0) { - if (dComIfG_setObjectRes(param_0->field_0x0, 0, param_0->heap) == 0) { +static int phase_01(phaseParam_c* phase) { + if (dComIfG_setObjectRes(phase->mResName, 0, phase->mpHeap) == 0) { return 5; - } else { - return 2; } + + return 2; } /* 8002CF5C-8002CFB8 02789C 005C+00 1/0 0/0 0/0 .text phase_02__FP12phaseParam_c */ -static int phase_02(phaseParam_c* param_0) { - int syncStatus = dComIfG_syncObjectRes(param_0->field_0x0); +static int phase_02(phaseParam_c* phase) { + int syncStatus = dComIfG_syncObjectRes(phase->mResName); if (syncStatus < 0) { return 5; } else { @@ -1455,90 +1382,102 @@ static int phase_02(phaseParam_c* param_0) { } /* 8002CFB8-8002CFC0 0278F8 0008+00 1/0 0/0 0/0 .text phase_03__FP12phaseParam_c */ -static int phase_03(phaseParam_c* param_0) { +static int phase_03(phaseParam_c*) { return false; } -/* ############################################################################################## */ -/* 803A71C4-803A71D0 -00001 000C+00 1/1 0/0 0/0 .data l_method$5051 */ -SECTION_DATA static dComIfG_phaseMethod0 l_method_5051[3] = { - phase_01, - phase_02, - phase_03, -}; - /* 8002CFC0-8002D008 027900 0048+00 1/1 3/3 0/0 .text * dComIfG_resLoad__FP30request_of_phase_process_classPCcP7JKRHeap */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dComIfG_resLoad(request_of_phase_process_class* param_0, char const* param_1, - JKRHeap* param_2) { - nofralloc -#include "asm/d/com/d_com_inf_game/dComIfG_resLoad__FP30request_of_phase_process_classPCcP7JKRHeap.s" +int dComIfG_resLoad(request_of_phase_process_class* i_phase, char const* resName, JKRHeap* heap) { + static int (*l_method[3])(void*) = {(int (*)(void*))phase_01, (int (*)(void*))phase_02, + (int (*)(void*))phase_03}; + + if (i_phase->mPhaseStep == 2) { + return 4; + } + + phaseParam_c param(resName, heap); + return dComLbG_PhaseHandler(i_phase, l_method, ¶m); } -#pragma pop /* 8002D008-8002D06C 027948 0064+00 1/1 10/10 540/540 .text * dComIfG_resDelete__FP30request_of_phase_process_classPCc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dComIfG_resDelete(request_of_phase_process_class* param_0, char const* param_1) { - nofralloc -#include "asm/d/com/d_com_inf_game/dComIfG_resDelete__FP30request_of_phase_process_classPCc.s" +int dComIfG_resDelete(request_of_phase_process_class* i_phase, char const* resName) { + if (i_phase->mPhaseStep != 2) { + return 0; + } + + dComIfG_deleteObjectResMain(resName); + i_phase->mPhaseStep = 0; + return 1; } -#pragma pop -u8 dComIfGp_getReverb(int param_0) { - return dStage_roomRead_dt_c_GetReverbStage(*dComIfGp_getStageRoom(), param_0); +u8 dComIfGp_getReverb(int roomNo) { + return dStage_roomRead_dt_c_GetReverbStage(*dComIfGp_getStageRoom(), roomNo); } -/* ############################################################################################## */ -/* 80451D00-80451D04 000300 0004+00 2/2 0/0 0/0 .sdata2 @5090 */ -SECTION_SDATA2 static f32 lit_5090 = -1000000000.0f; +inline int dComIfGd_setSimpleShadow(cXyz* pos, f32 param_1, f32 param_2, cXyz* param_3, s16 angle, + f32 param_5, _GXTexObj* tex) { + return g_dComIfG_gameInfo.drawlist.setSimpleShadow(pos, param_1, param_2, param_3, angle, + param_5, tex); +} /* 8002D0B4-8002D1AC 0279F4 00F8+00 0/0 3/3 34/34 .text * dComIfGd_setSimpleShadow__FP4cXyzffR13cBgS_PolyInfosfP9_GXTexObj */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dComIfGd_setSimpleShadow(cXyz* param_0, f32 param_1, f32 param_2, cBgS_PolyInfo& param_3, - s16 param_4, f32 param_5, _GXTexObj* param_6) { - nofralloc -#include "asm/d/com/d_com_inf_game/dComIfGd_setSimpleShadow__FP4cXyzffR13cBgS_PolyInfosfP9_GXTexObj.s" +int dComIfGd_setSimpleShadow(cXyz* pos, f32 param_1, f32 param_2, cBgS_PolyInfo& param_3, s16 angle, + f32 param_5, _GXTexObj* tex) { + if (param_3.ChkSetInfo() && -1000000000.0f != param_1) { + cM3dGPla plane; + dComIfG_Bgsp().GetTriPla(param_3, &plane); + + return dComIfGd_setSimpleShadow(pos, param_1, param_2, &plane.mNormal, angle, param_5, tex); + } else { + return 0; + } } -#pragma pop /* 8002D1AC-8002D25C 027AEC 00B0+00 0/0 0/0 1/1 .text dComIfGp_getMapTrans__FiPfPfPs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dComIfGp_getMapTrans(int param_0, f32* param_1, f32* param_2, s16* param_3) { - nofralloc -#include "asm/d/com/d_com_inf_game/dComIfGp_getMapTrans__FiPfPfPs.s" +int dComIfGp_getMapTrans(int roomNo, f32* transX, f32* transY, s16* angle) { + dStage_Multi_c* multi = dComIfGp_getMulti(); + if (multi == NULL) { + return 0; + } + + dStage_Mult_info* info = multi->mInfo; + for (int i = 0; i < multi->field_0x0; i++) { + if (roomNo == info->mRoomNo) { + *transX = info->mTransX; + *transY = info->mTransY; + *angle = info->mAngle; + return 1; + } + info++; + } + + return 0; } -#pragma pop /* 8002D25C-8002D2AC 027B9C 0050+00 0/0 3/3 3/3 .text dComIfGp_getRoomCamera__Fi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dComIfGp_getRoomCamera(int param_0) { - nofralloc -#include "asm/d/com/d_com_inf_game/dComIfGp_getRoomCamera__Fi.s" +stage_camera_class* dComIfGp_getRoomCamera(int roomNo) { + dStage_roomStatus_c* status = dComIfGp_roomControl_getStatusRoomDt(roomNo); + + if (status == NULL) { + return NULL; + } + + return status->mRoomDt.getCamera(); } -#pragma pop /* 8002D2AC-8002D2FC 027BEC 0050+00 0/0 3/3 3/3 .text dComIfGp_getRoomArrow__Fi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dComIfGp_getRoomArrow(int param_0) { - nofralloc -#include "asm/d/com/d_com_inf_game/dComIfGp_getRoomArrow__Fi.s" +stage_arrow_class* dComIfGp_getRoomArrow(int roomNo) { + dStage_roomStatus_c* status = dComIfGp_roomControl_getStatusRoomDt(roomNo); + + if (status == NULL) { + return NULL; + } + + return status->mRoomDt.getArrow(); } -#pragma pop /* ############################################################################################## */ /* 80378F38-80378F38 005598 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ @@ -1548,29 +1487,82 @@ SECTION_DEAD static char const* const stringBase_80379089 = ""; #pragma pop /* 8002D2FC-8002D554 027C3C 0258+00 2/2 7/7 4/4 .text dComIfGp_setNextStage__FPCcsScScfUliScsii */ +// 1 out of order instruction, small regalloc +#ifdef NONMATCHING +void dComIfGp_setNextStage(char const* stage, s16 point, s8 roomNo, s8 layer, f32 lastSpeed, + u32 lastMode, int param_6, s8 wipe, s16 lastAngle, int param_9, + int param_10) { + u32 mode = lastMode; + + if (layer >= 15) { + layer = -1; + } + + if (dComIfGs_isPlayerFieldLastStayFieldDataExistFlag() && + daPy_getLinkPlayerActorClass() != NULL) { + s8 curPoint = (s8)daPy_getLinkPlayerActorClass()->mCurrent.mRoomNo; + cXyz pos = dMapInfo_n::getMapPlayerPos(); + s16 angle = daPy_getLinkPlayerActorClass()->mCollisionRot.y; + u8 level = dComIfGp_getNowLevel(); + dComIfGs_setPlayerFieldLastStayInfo(dComIfGp_getStartStageName(), pos, angle, curPoint, + level); + } + + if (!strcmp(stage, "F_SP121") && roomNo == 13 && (point == 99 || point == 98) && layer == 2) { + dComIfGs_setKeyNum(6, 2); + } else { + dComIfGs_setKeyNum(6, 0); + } + + if (daAlink_getAlinkActorClass() != NULL) { + daAlink_getAlinkActorClass()->setLastSceneMode(&mode); + } + + if (strcmp(dMeter2Info_getSaveStageName(), "") && + strcmp(stage, dMeter2Info_getSaveStageName())) { + dMeter2Info_setSaveStageName(""); + } + + u8 wipe_speed; + switch (param_10) { + case 0: + wipe_speed = 26; + break; + case 1: + wipe_speed = 13; + break; + case 2: + wipe_speed = 6; + break; + case 3: + wipe_speed = 1; + break; + default: + wipe_speed = 26; + break; + } + + g_dComIfG_gameInfo.play.setNextStage(stage, roomNo, point, layer, wipe, wipe_speed); + g_dComIfG_gameInfo.info.getRestart().setLastSceneInfo(lastSpeed, mode, lastAngle); + if (param_6 != 0) { + dComIfGs_setStartPoint(point); + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dComIfGp_setNextStage(char const* param_0, s16 param_1, s8 param_2, s8 param_3, - f32 param_4, u32 param_5, int param_6, s8 param_7, s16 param_8, - int param_9, int param_10) { +asm void dComIfGp_setNextStage(char const* stage, s16 point, s8 roomNo, s8 layer, f32 lastSpeed, + u32 lastMode, int param_6, s8 wipe, s16 lastAngle, int param_9, + int param_10) { nofralloc #include "asm/d/com/d_com_inf_game/dComIfGp_setNextStage__FPCcsScScfUliScsii.s" } #pragma pop +#endif -/* ############################################################################################## */ -/* 80451D04-80451D08 000304 0004+00 2/2 0/0 0/0 .sdata2 @5226 */ -SECTION_SDATA2 static u8 lit_5226[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; - -void dComIfGp_setNextStage(char const* param_0, s16 param_1, s8 param_2, s8 param_3) { - dComIfGp_setNextStage(param_0, param_1, param_2, param_3, FLOAT_LABEL(lit_5226), 0, 1, 0, 0, 1, - 0); +void dComIfGp_setNextStage(char const* stage, s16 point, s8 roomNo, s8 layer) { + dComIfGp_setNextStage(stage, point, roomNo, layer, 0.0f, 0, 1, 0, 0, 1, 0); } BOOL dComIfGs_isStageTbox(int i_stageNo, int i_no) { @@ -1652,15 +1644,32 @@ s8 dComIfGs_sense_type_change_Get() { return g_dComIfG_gameInfo.field_0x1ddfa; } +inline void dComIfGs_onSvZoneSwitch(int zoneNo, int swBit) { + g_dComIfG_gameInfo.info.getZone(zoneNo).getZoneBit().onSwitch(swBit); +} + /* 8002D94C-8002D9B0 02828C 0064+00 0/0 1/1 17/17 .text dComIfGs_onZoneSwitch__Fii */ +#ifdef NONMATCHING +void dComIfGs_onZoneSwitch(int swBit, int roomNo) { + if (roomNo < 0) { + return; + } + + if (dComIfGp_roomControl_getStayNo() >= 0) { + int zoneNo = dStage_roomControl_c::getZoneNo(roomNo); + dComIfGs_onSvZoneSwitch(zoneNo, swBit); + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dComIfGs_onZoneSwitch(int param_0, int param_1) { +asm void dComIfGs_onZoneSwitch(int swBit, int roomNo) { nofralloc #include "asm/d/com/d_com_inf_game/dComIfGs_onZoneSwitch__Fii.s" } #pragma pop +#endif int dStage_roomControl_c::getZoneNo(int i_roomNo) { return mStatus[i_roomNo].getZoneNo(); @@ -1750,73 +1759,94 @@ void dComIfGs_setMixItemIndex(int i_no, u8 item_index) { } /* 8002DD3C-8002DDC8 02867C 008C+00 3/3 1/1 0/0 .text dComIfGs_getSelectMixItemNoArrowIndex__Fi */ -#ifdef NONMATCHING -u8 dComIfGs_getSelectMixItemNoArrowIndex(int p1) { - u8 item_index = dComIfGs_getSelectItemIndex(p1); - u8 mix_index = dComIfGs_getMixItemIndex(p1); +u8 dComIfGs_getSelectMixItemNoArrowIndex(int index) { + u8 item_index = dComIfGs_getSelectItemIndex(index); + u8 mix_index = dComIfGs_getMixItemIndex(index); - if (item_index >= 0xf && item_index < 0x12) { + if (item_index >= SLOT_15 && item_index < SLOT_18) { return item_index; } - else if (mix_index != 255 && (mix_index >= 0xf && mix_index < 0x12)) { - return 255; + if (mix_index != NO_ITEM && mix_index >= SLOT_15 && mix_index < SLOT_18) { + return mix_index; } - // return p1; -} -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm u8 dComIfGs_getSelectMixItemNoArrowIndex(int param_0) { - nofralloc -#include "asm/d/com/d_com_inf_game/dComIfGs_getSelectMixItemNoArrowIndex__Fi.s" + return NO_ITEM; } -#pragma pop -#endif u8 dComIfGs_getMixItemIndex(int i_no) { return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().getMixItemIndex(i_no); } /* 8002DDF4-8002DF1C 028734 0128+00 1/1 13/13 0/0 .text dComIfGp_setSelectItem__Fi */ -void dComIfGp_setSelectItem(int idx) { - if (idx == 2) { - if (dComIfGs_getSelectItemIndex(idx) != 0xFF) { - u8 selectItemIdx = dComIfGs_getSelectItemIndex(idx); - g_dComIfG_gameInfo.play.setSelectItem(idx, selectItemIdx); - - if (selectItemIdx == 0xFF) { - dComIfGs_setSelectItemIndex(idx, -1); +void dComIfGp_setSelectItem(int index) { + if (index == SELECT_ITEM_DOWN) { + if (dComIfGs_getSelectItemIndex(index) != NO_ITEM) { + u8 selectItemIdx = dComIfGs_getSelectItemIndex(index); + g_dComIfG_gameInfo.play.setSelectItem(index, selectItemIdx); + + if (selectItemIdx == NO_ITEM) { + dComIfGs_setSelectItemIndex(index, NO_ITEM); } } else { - g_dComIfG_gameInfo.play.setSelectItem(idx, -1); + g_dComIfG_gameInfo.play.setSelectItem(index, NO_ITEM); } - } else { - if (dComIfGs_getSelectItemIndex(idx) != 0xFF) { - u8 selectItemIdx = dComIfGs_getSelectItemIndex(idx); - u8 item = dComIfGs_getItem(selectItemIdx, 0); - g_dComIfG_gameInfo.play.setSelectItem(idx, item); + } else if (dComIfGs_getSelectItemIndex(index) != NO_ITEM) { + u8 item = dComIfGs_getItem(dComIfGs_getSelectItemIndex(index), false); + g_dComIfG_gameInfo.play.setSelectItem(index, item); - if (item == 0xFF) { - dComIfGs_setSelectItemIndex(idx, -1); - } - } else { - g_dComIfG_gameInfo.play.setSelectItem(idx, -1); + if (item == NO_ITEM) { + dComIfGs_setSelectItemIndex(index, NO_ITEM); } + } else { + g_dComIfG_gameInfo.play.setSelectItem(index, NO_ITEM); } } /* 8002DF1C-8002E048 02885C 012C+00 4/4 19/19 0/0 .text dComIfGp_getSelectItem__Fi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm u8 dComIfGp_getSelectItem(int param_0) { - nofralloc -#include "asm/d/com/d_com_inf_game/dComIfGp_getSelectItem__Fi.s" +u8 dComIfGp_getSelectItem(int index) { + u8 playItem = g_dComIfG_gameInfo.play.getSelectItem(index); + + if ((index == SELECT_ITEM_X || index == SELECT_ITEM_Y) && + dComIfGs_getMixItemIndex(index) != NO_ITEM) { + u8 saveItem = dComIfGs_getItem(dComIfGs_getMixItemIndex(index), false); + + if (saveItem == BOW) { + saveItem = playItem; + playItem = BOW; + } else if (saveItem == FISHING_ROD_1) { + saveItem = playItem; + playItem = FISHING_ROD_1; + } + + if (playItem == BOW) { + switch (saveItem) { + case NORMAL_BOMB: + case WATER_BOMB: + case POKE_BOMB: + playItem = BOMB_ARROW; + break; + case HAWK_EYE: + playItem = HAWK_ARROW; + break; + } + } else if (playItem == FISHING_ROD_1) { + switch (saveItem) { + case BEE_CHILD: + playItem = BEE_ROD; + break; + case WORM: + playItem = WORM_ROD; + break; + case ZORAS_JEWEL: + playItem = JEWEL_ROD; + break; + } + } + } + + return playItem; } -#pragma pop void dComIfGp_mapShow() { dComIfGs_offEventBit(0x1D01); @@ -1831,33 +1861,32 @@ bool dComIfGp_checkMapShow() { } /* 8002E0E0-8002E188 028A20 00A8+00 0/0 9/9 0/0 .text dComIfGp_setHeapLockFlag__FUc */ -s32 dComIfGp_setHeapLockFlag(u8 param_0) { - if (param_0 == 7 || param_0 == 8) { +s32 dComIfGp_setHeapLockFlag(u8 flag) { + if (flag == 7 || flag == 8) { if (!dComIfGp_isHeapLockFlag()) { dComIfGp_createSubExpHeap2D(); } g_dComIfG_gameInfo.play.setHeapLockFlag(5); - int check = dComIfGp_checkEmptySubHeap2D(); - if (check >= 0) { - dComIfGp_setSubHeapLockFlag(check, param_0); + int heapIndex = dComIfGp_checkEmptySubHeap2D(); + if (heapIndex >= 0) { + dComIfGp_setSubHeapLockFlag(heapIndex, flag); } + } else if (flag == 0) { + dComIfGp_offHeapLockFlag(0); } else { - if (param_0 == 0) { - dComIfGp_offHeapLockFlag(0); - } else { - g_dComIfG_gameInfo.play.setHeapLockFlag(param_0); - } + g_dComIfG_gameInfo.play.setHeapLockFlag(flag); } + return 1; } -s32 dComIfGp_offHeapLockFlag(int param_0) { +s32 dComIfGp_offHeapLockFlag(int flag) { if (dComIfGp_isHeapLockFlag() == 5) { - if (param_0 == 7 || param_0 == 8) { - int check = dComIfGp_searchUseSubHeap2D(param_0); - if (check >= 0) { - dComIfGp_setSubHeapLockFlag(check, 0); + if (flag == 7 || flag == 8) { + int heapIndex = dComIfGp_searchUseSubHeap2D(flag); + if (heapIndex >= 0) { + dComIfGp_setSubHeapLockFlag(heapIndex, 0); } if (!dComIfGp_getSubHeapLockFlag(0) && !dComIfGp_getSubHeapLockFlag(1)) { @@ -1868,6 +1897,7 @@ s32 dComIfGp_offHeapLockFlag(int param_0) { } else { g_dComIfG_gameInfo.play.offHeapLockFlag(); } + return 1; } @@ -1903,10 +1933,10 @@ int dComIfGp_checkEmptySubHeap2D() { return -1; } -int dComIfGp_searchUseSubHeap2D(int param_0) { +int dComIfGp_searchUseSubHeap2D(int flag) { if (dComIfGp_isHeapLockFlag() == 5) { for (int i = 0; i < 2; i++) { - if (param_0 == dComIfGp_getSubHeapLockFlag(i)) { + if (flag == dComIfGp_getSubHeapLockFlag(i)) { return i; } } @@ -1914,10 +1944,10 @@ int dComIfGp_searchUseSubHeap2D(int param_0) { return -1; } -JKRExpHeap* dComIfGp_getSubHeap2D(int param_0) { +JKRExpHeap* dComIfGp_getSubHeap2D(int flag) { if (dComIfGp_isHeapLockFlag() == 5) { for (int i = 0; i < 2; i++) { - if (param_0 == dComIfGp_getSubHeapLockFlag(i)) { + if (flag == dComIfGp_getSubHeapLockFlag(i)) { return dComIfGp_getSubExpHeap2D(i); } } @@ -1925,20 +1955,19 @@ JKRExpHeap* dComIfGp_getSubHeap2D(int param_0) { return NULL; } -static u8 l_itemno[24] = { - M_BEETLE, F_BEETLE, M_BUTTERFLY, F_BUTTERFLY, M_STAG_BEETLE, F_STAG_BEETLE, - M_GRASSHOPPER, F_GRASSHOPPER, M_NANAFUSHI, F_NANAFUSHI, M_DANGOMUSHI, F_DANGOMUSHI, - M_MANTIS, F_MANTIS, M_LADYBUG, F_LADYBUG, M_SNAIL, F_SNAIL, - M_DRAGONFLY, F_DRAGONFLY, M_ANT, F_ANT, M_MAYFLY, F_MAYFLY, -}; - int dComIfGs_checkGetInsectNum() { + static u8 l_itemno[24] = { + M_BEETLE, F_BEETLE, M_BUTTERFLY, F_BUTTERFLY, M_STAG_BEETLE, F_STAG_BEETLE, + M_GRASSHOPPER, F_GRASSHOPPER, M_NANAFUSHI, F_NANAFUSHI, M_DANGOMUSHI, F_DANGOMUSHI, + M_MANTIS, F_MANTIS, M_LADYBUG, F_LADYBUG, M_SNAIL, F_SNAIL, + M_DRAGONFLY, F_DRAGONFLY, M_ANT, F_ANT, M_MAYFLY, F_MAYFLY, + }; + int insectCount = 0; - u8* insectList = &l_itemno[0]; - u8 insectId; + u8* insectList = l_itemno; for (int i = 0; i < ARRAY_SIZE(l_itemno); i++) { - insectId = *insectList; + u8 insectId = *insectList; insectList++; if (dComIfGs_isItemFirstBit(insectId) && dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x191 + i])) { @@ -1948,21 +1977,24 @@ int dComIfGs_checkGetInsectNum() { return insectCount; } -u8 dComIfGs_checkGetItem(u8 i_no) { +u8 dComIfGs_checkGetItem(u8 i_itemNo) { u8 count = 0; for (int i = 0; i < 60; i++) { - if (i_no == dComIfGs_getItem(i, true)) { + if (i_itemNo == dComIfGs_getItem(i, true)) { count++; } } - if (dComIfGs_getSelectEquipClothes() == i_no) { + + if (dComIfGs_getSelectEquipClothes() == i_itemNo) { count++; } - if (dComIfGs_getSelectEquipSword() == i_no) { + + if (dComIfGs_getSelectEquipSword() == i_itemNo) { count++; } - if (dComIfGs_getSelectEquipShield() == i_no) { + + if (dComIfGs_getSelectEquipShield() == i_itemNo) { count++; } @@ -1974,18 +2006,18 @@ u8 dComIfGs_getBottleMax() { } /* 8002E5C0-8002E688 028F00 00C8+00 0/0 11/11 0/0 .text dComIfGp_getSelectItemNum__Fi */ -int dComIfGp_getSelectItemNum(int param_0) { - u8 selectItem = dComIfGp_getSelectItem(param_0); +int dComIfGp_getSelectItemNum(int index) { + u8 selectItem = dComIfGp_getSelectItem(index); int itemNum = 0; if (selectItem == NORMAL_BOMB || selectItem == WATER_BOMB || selectItem == POKE_BOMB || selectItem == BOMB_ARROW) { - selectItem = dComIfGs_getSelectMixItemNoArrowIndex(param_0) - SLOT_15; + selectItem = dComIfGs_getSelectMixItemNoArrowIndex(index) - SLOT_15; itemNum = dComIfGs_getBombNum(selectItem); } else if (selectItem == PACHINKO) { itemNum = dComIfGs_getPachinkoNum(); } else if (selectItem == BEE_CHILD) { - selectItem = dComIfGs_getSelectItemIndex(param_0); + selectItem = dComIfGs_getSelectItemIndex(index); itemNum = dComIfGs_getBottleNum(selectItem - SLOT_11); } @@ -1993,8 +2025,8 @@ int dComIfGp_getSelectItemNum(int param_0) { } /* 8002E688-8002E714 028FC8 008C+00 0/0 5/5 0/0 .text dComIfGp_getSelectItemMaxNum__Fi */ -int dComIfGp_getSelectItemMaxNum(int param_0) { - u8 selectItem = dComIfGp_getSelectItem(param_0); +int dComIfGp_getSelectItemMaxNum(int index) { + u8 selectItem = dComIfGp_getSelectItem(index); int itemNum = 0; if (selectItem == BOMB_BAG_LV1) { @@ -2012,98 +2044,73 @@ int dComIfGp_getSelectItemMaxNum(int param_0) { } /* 8002E714-8002E83C 029054 0128+00 0/0 2/2 0/0 .text dComIfGp_setSelectItemNum__Fis */ -// two swapped instructions -#ifdef NONMATCHING -void dComIfGp_setSelectItemNum(int param_0, s16 param_1) { - u8 selectItem = dComIfGp_getSelectItem(param_0); - u8 selectMixItem; - int itemNum; +void dComIfGp_setSelectItemNum(int index, s16 num) { + u8 selectItem = dComIfGp_getSelectItem(index); if (selectItem == NORMAL_BOMB || selectItem == WATER_BOMB || selectItem == POKE_BOMB || selectItem == BOMB_ARROW) { - selectMixItem = dComIfGs_getSelectMixItemNoArrowIndex(param_0) - SLOT_15; - itemNum = dComIfGs_getBombMax(selectItem); + u8 mix_index = dComIfGs_getSelectMixItemNoArrowIndex(index) - SLOT_15; - if (itemNum > param_1) { - param_1 = dComIfGs_getBombMax(selectItem); + if (num > dComIfGs_getBombMax(selectItem)) { + num = dComIfGs_getBombMax(selectItem); } - dComIfGs_setBombNum(selectMixItem, param_1); + dComIfGs_setBombNum(mix_index, num); } else if (selectItem == PACHINKO) { - dComIfGs_setPachinkoNum(param_1); + dComIfGs_setPachinkoNum(num); } else if (selectItem == BEE_CHILD) { - selectItem = dComIfGs_getSelectItemIndex(param_0) - SLOT_11; - itemNum = dComIfGs_getBottleMax(); + u8 bottle_idx = dComIfGs_getSelectItemIndex(index) - SLOT_11; - if (itemNum > param_1) { - param_1 = dComIfGs_getBottleMax(); + if (num > dComIfGs_getBottleMax()) { + num = dComIfGs_getBottleMax(); } - dComIfGs_setBottleNum(selectItem, param_1); + dComIfGs_setBottleNum(bottle_idx, num); } } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dComIfGp_setSelectItemNum(int param_0, s16 param_1) { - nofralloc -#include "asm/d/com/d_com_inf_game/dComIfGp_setSelectItemNum__Fis.s" -} -#pragma pop -#endif /* 8002E83C-8002E910 02917C 00D4+00 0/0 5/5 0/0 .text dComIfGp_addSelectItemNum__Fis */ -void dComIfGp_addSelectItemNum(int param_0, s16 param_1) { - u8 selectItem = dComIfGp_getSelectItem(param_0); - u8 selectMixItem; - int itemNum; +void dComIfGp_addSelectItemNum(int index, s16 num) { + u8 selectItem = dComIfGp_getSelectItem(index); if (selectItem == NORMAL_BOMB || selectItem == WATER_BOMB || selectItem == POKE_BOMB || selectItem == BOMB_ARROW) { - selectMixItem = dComIfGs_getSelectMixItemNoArrowIndex(param_0) - SLOT_15; - dComIfGp_setItemBombNumCount(selectMixItem, param_1); + u8 mix_index = dComIfGs_getSelectMixItemNoArrowIndex(index) - SLOT_15; + dComIfGp_setItemBombNumCount(mix_index, num); } else if (selectItem == PACHINKO) { - dComIfGp_setItemPachinkoNumCount(param_1); + dComIfGp_setItemPachinkoNumCount(num); } else if (selectItem == BEE_CHILD) { - selectItem = dComIfGs_getSelectItemIndex(param_0); - dComIfGs_addBottleNum(selectItem - SLOT_11, param_1); + selectItem = dComIfGs_getSelectItemIndex(index); + dComIfGs_addBottleNum(selectItem - SLOT_11, num); } } +inline int dComIfGd_setRealShadow(u32 param_0, s8 param_1, J3DModel* param_2, cXyz* param_3, + f32 param_4, f32 param_5, dKy_tevstr_c* param_6) { + return g_dComIfG_gameInfo.drawlist.setRealShadow(param_0, param_1, param_2, param_3, param_4, + param_5, param_6); +} + /* 8002E910-8002E974 029250 0064+00 0/0 5/5 137/137 .text * dComIfGd_setShadow__FUlScP8J3DModelP4cXyzffffR13cBgS_PolyInfoP12dKy_tevstr_csfP9_GXTexObj */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dComIfGd_setShadow(u32 param_0, s8 param_1, J3DModel* param_2, cXyz* param_3, f32 param_4, - f32 param_5, f32 param_6, f32 param_7, cBgS_PolyInfo& param_8, - dKy_tevstr_c* param_9, s16 param_10, f32 param_11, - _GXTexObj* param_12) { - nofralloc -#include "asm/d/com/d_com_inf_game/dComIfGd_setShadow__FUlScP8J3DModelP4cXyzffffR13cBgS_PolyInfoP12dKy_tevstr_csfP9_GXTexObj.s" +int dComIfGd_setShadow(u32 param_0, s8 param_1, J3DModel* param_2, cXyz* param_3, f32 param_4, + f32 param_5, f32 param_6, f32 param_7, cBgS_PolyInfo& param_8, + dKy_tevstr_c* param_9, s16 param_10, f32 param_11, _GXTexObj* param_12) { + if (param_7 <= -1000000000.0f) { + return 0; + } else { + return dComIfGd_setRealShadow(param_0, param_1, param_2, param_3, param_4, + param_6 - param_7, param_9); + } } -#pragma pop /* 8002E974-8002E9D4 0292B4 0060+00 0/0 1/1 0/0 .text dComIfGs_gameStart__Fv */ -// instruction in wrong place -#ifdef NONMATCHING void dComIfGs_gameStart() { dComIfGp_offEnableNextStage(); s8 roomNo = g_dComIfG_gameInfo.info.getPlayer().getPlayerReturnPlace().getRoomNo(); - u8 status = g_dComIfG_gameInfo.info.getPlayer().getPlayerReturnPlace().getPlayerStatus(); + s16 point = g_dComIfG_gameInfo.info.getPlayer().getPlayerReturnPlace().getPlayerStatus(); char* name = g_dComIfG_gameInfo.info.getPlayer().getPlayerReturnPlace().getName(); - dComIfGp_setNextStage(name, status, roomNo, -1, FLOAT_LABEL(lit_5226), 0, 1, 0, 0, 0, 0); -} -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dComIfGs_gameStart() { - nofralloc -#include "asm/d/com/d_com_inf_game/dComIfGs_gameStart__Fv.s" + dComIfGp_setNextStage(name, point, roomNo, -1, 0.0f, 0, 1, 0, 0, 0, 0); } -#pragma pop -#endif u32 dComIfG_getTrigA(u32 pad) { return mDoCPd_c::getTrigA(pad); @@ -2152,23 +2159,28 @@ BOOL dComIfGp_isLightDropMapVisible() { } /* 8002EE60-8002EEB0 0297A0 0050+00 1/1 11/11 0/0 .text dComIfGp_getNowLevel__Fv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dComIfGp_getNowLevel() { - nofralloc -#include "asm/d/com/d_com_inf_game/dComIfGp_getNowLevel__Fv.s" +u8 dComIfGp_getNowLevel() { + int roomNo = -1; + if (daPy_getLinkPlayerActorClass() != NULL) { + roomNo = fopAcM_GetRoomNo(daPy_getLinkPlayerActorClass()); + } + + if (roomNo < 0) { + roomNo = dComIfGp_getStartStageRoomNo(); + } + + return dStage_roomControl_c::getRegionNo(roomNo); } -#pragma pop -void dComIfGs_setSelectEquipClothes(u8 item) { - g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().setSelectEquip(COLLECT_CLOTHING, item); +void dComIfGs_setSelectEquipClothes(u8 i_itemNo) { + g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().setSelectEquip(COLLECT_CLOTHING, + i_itemNo); } /* 8002EEC0-8002EF94 029800 00D4+00 0/0 4/4 1/1 .text dComIfGs_setSelectEquipSword__FUc */ -void dComIfGs_setSelectEquipSword(u8 i_itemId) { - switch (i_itemId) { +void dComIfGs_setSelectEquipSword(u8 i_itemNo) { + switch (i_itemNo) { case SWORD: dComIfGs_setCollectSword(COLLECT_ORDON_SWORD); break; @@ -2183,13 +2195,13 @@ void dComIfGs_setSelectEquipSword(u8 i_itemId) { break; } - g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().setSelectEquip(1, i_itemId); + g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().setSelectEquip(COLLECT_SWORD, i_itemNo); } /* 8002EF94-8002F040 0298D4 00AC+00 0/0 2/2 0/0 .text dComIfGs_setSelectEquipShield__FUc */ -void dComIfGs_setSelectEquipShield(u8 i_itemId) { - switch (i_itemId) { +void dComIfGs_setSelectEquipShield(u8 i_itemNo) { + switch (i_itemNo) { case WOOD_SHIELD: dComIfGs_setCollectShield(COLLECT_WOODEN_SHIELD); break; @@ -2201,7 +2213,7 @@ void dComIfGs_setSelectEquipShield(u8 i_itemId) { break; } - g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().setSelectEquip(2, i_itemId); + g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().setSelectEquip(COLLECT_SHIELD, i_itemNo); } void dComIfGs_setKeyNum(int i_stageNo, u8 keyNum) { @@ -2218,31 +2230,31 @@ void dComIfGs_setKeyNum(int i_stageNo, u8 keyNum) { /* 8002F0E0-8002F128 029A20 0048+00 1/1 0/0 0/0 .text dComIfGs_setWarpItemData__FiPCc4cXyzsScUcUc */ -static void dComIfGs_setWarpItemData(int param_0, char const* param_1, cXyz param_2, s16 param_3, - s8 param_4, u8 param_5, u8 param_6) { - g_dComIfG_gameInfo.play.setWarpItemData(param_1, param_2, param_3, param_4, param_5, param_6); +static void dComIfGs_setWarpItemData(int param_0, char const* stage, cXyz pos, s16 angle, s8 roomNo, + u8 param_5, u8 param_6) { + g_dComIfG_gameInfo.play.setWarpItemData(stage, pos, angle, roomNo, param_5, param_6); } -void dComIfG_play_c::setWarpItemData(char const* param_0, cXyz param_1, s16 param_2, s8 param_3, - u8 param_4, u8 param_5) { - strcpy(field_0x4F94, param_0); - field_0x4f9c.set(param_1); - field_0x4fa8 = param_2; - field_0x4faa = param_3; +void dComIfG_play_c::setWarpItemData(char const* stage, cXyz pos, s16 angle, s8 roomNo, u8 param_4, + u8 param_5) { + strcpy(mWarpItemStage, stage); + mWarpItemPos.set(pos); + mWarpItemAngle = angle; + mWarpItemRoom = roomNo; field_0x4fac = param_5; field_0x4fab = param_4; } -void dComIfGs_setWarpItemData(char const* param_0, cXyz param_1, s16 param_2, s8 param_3, - u8 param_4, u8 param_5) { - dComIfGs_setWarpItemData(0, param_0, param_1, param_2, param_3, param_4, param_5); - dComIfGs_setLastWarpMarkItemData(param_0, param_1, param_2, param_3, param_4, param_5); +void dComIfGs_setWarpItemData(char const* stage, cXyz pos, s16 angle, s8 roomNo, u8 param_4, + u8 param_5) { + dComIfGs_setWarpItemData(0, stage, pos, angle, roomNo, param_4, param_5); + dComIfGs_setLastWarpMarkItemData(stage, pos, angle, roomNo, param_4, param_5); } -void dComIfGs_setLastWarpMarkItemData(const char* stage, cXyz pos, s16 angle, s8 room, u8 unk1, +void dComIfGs_setLastWarpMarkItemData(const char* stage, cXyz pos, s16 angle, s8 roomNo, u8 unk1, u8 unk2) { g_dComIfG_gameInfo.info.getPlayer().getPlayerLastMarkInfo().setWarpItemData(stage, pos, angle, - room, unk1, unk2); + roomNo, unk1, unk2); } const char* dComIfGs_getWarpStageName() { @@ -2250,20 +2262,9 @@ const char* dComIfGs_getWarpStageName() { } /* 8002F2BC-8002F2CC 029BFC 0010+00 0/0 1/1 0/0 .text dComIfGs_getWarpPlayerPos__Fv */ -#ifdef NONMATCHING -cXyz dComIfGs_getWarpPlayerPos() { +cXyz& dComIfGs_getWarpPlayerPos() { return dComIfGs_getLastWarpMarkPlayerPos(); } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm cXyz& dComIfGs_getWarpPlayerPos() { - nofralloc -#include "asm/d/com/d_com_inf_game/dComIfGs_getWarpPlayerPos__Fv.s" -} -#pragma pop -#endif s16 dComIfGs_getWarpPlayerAngleY() { return dComIfGs_getLastWarpMarkPlayerAngleY(); @@ -2277,39 +2278,42 @@ BOOL dComIfGs_getWarpMarkFlag() { return dComIfGs_getLastWarpAcceptStage() >= 0; } -void dComIfGs_setWarpMarkFlag(u8 param_0) { +void dComIfGs_setWarpMarkFlag(u8) { /* empty function */ } /* 8002F314-8002F328 029C54 0014+00 0/0 0/0 1/1 .text __ct__19dComIfG_resLoader_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dComIfG_resLoader_c::dComIfG_resLoader_c() { - nofralloc -#include "asm/d/com/d_com_inf_game/__ct__19dComIfG_resLoader_cFv.s" +dComIfG_resLoader_c::dComIfG_resLoader_c() { + field_0x0 = NULL; + field_0x4.mPhaseStep = 0; + field_0xc = 0; } -#pragma pop /* 8002F328-8002F3B4 029C68 008C+00 0/0 0/0 1/1 .text __dt__19dComIfG_resLoader_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dComIfG_resLoader_c::~dComIfG_resLoader_c() { - nofralloc -#include "asm/d/com/d_com_inf_game/__dt__19dComIfG_resLoader_cFv.s" +dComIfG_resLoader_c::~dComIfG_resLoader_c() { + if (field_0x0 != NULL) { + for (int i = field_0xc; i >= 0; i--) { + dComIfG_resDelete(&field_0x4, field_0x0[i]); + field_0x4.mPhaseStep = 2; + } + } } -#pragma pop /* 8002F3B4-8002F434 029CF4 0080+00 0/0 0/0 1/1 .text load__19dComIfG_resLoader_cFPPCcP7JKRHeap */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dComIfG_resLoader_c::load(char const** param_0, JKRHeap* param_1) { - nofralloc -#include "asm/d/com/d_com_inf_game/load__19dComIfG_resLoader_cFPPCcP7JKRHeap.s" +int dComIfG_resLoader_c::load(char const** param_0, JKRHeap* heap) { + field_0x0 = param_0; + + int ret = dComIfG_resLoad(&field_0x4, field_0x0[field_0xc], heap); + if (ret == 4) { + if (field_0x0[field_0xc + 1][0] != 0) { + field_0xc++; + field_0x4.mPhaseStep = 0; + ret = 0; + } + } + + return ret; } -#pragma pop /* 8002F434-8002F478 029D74 0044+00 0/0 12/12 12/12 .text dComIfG_getStageRes__FPCc */ void* dComIfG_getStageRes(char const* resName) { @@ -2321,15 +2325,14 @@ void* dComIfG_getOldStageRes(char const* resName) { return dComIfG_getStageRes("Xtg_00", resName); } -static char buf[32]; - -char* dComIfG_getRoomArcName(int param_0) { - sprintf((char*)buf, (char*)"R%02d_00", param_0); +char* dComIfG_getRoomArcName(int roomNo) { + static char buf[32]; + sprintf(buf, "R%02d_00", roomNo); return buf; } /* 8002F500-8002F504 029E40 0004+00 0/0 1/1 0/0 .text dComIfGp_ret_wp_set__FSc */ -void dComIfGp_ret_wp_set(s8 param_0) { +void dComIfGp_ret_wp_set(s8) { /* empty function */ } @@ -2341,121 +2344,125 @@ u8 dComIfGp_world_dark_get() { return g_dComIfG_gameInfo.mWorldDark; } -int dComIfG_TimerStart(int param_0, s16 param_1) { - int uvar2; - - if (param_0 == dComIfG_getTimerMode()) { +int dComIfG_TimerStart(int mode, s16 time) { + if (mode == dComIfG_getTimerMode()) { dTimer_c* timer = dComIfG_getTimerPtr(); if (timer != NULL) { - if (param_1 == 0) { - timer->start(param_0); + if (time == 0) { + timer->start(mode); } else { - timer->start(param_0, param_1); + timer->start(mode, time); } - uvar2 = 1; + return 1; } else { - uvar2 = 0; + return 0; } - } else { - uvar2 = 0; } - return uvar2; -} -int dComIfG_TimerStop(int param_0) { - int uvar2; + return 0; +} - if (param_0 == dComIfG_getTimerMode()) { +int dComIfG_TimerStop(int mode) { + if (mode == dComIfG_getTimerMode()) { dTimer_c* timer = dComIfG_getTimerPtr(); if (timer != NULL) { timer->stop(4); - uvar2 = 1; + return 1; } else { - uvar2 = 0; + return 0; } - } else { - uvar2 = 0; } - return uvar2; -} -int dComIfG_TimerReStart(int param_0) { - int uvar2; + return 0; +} - if (param_0 == dComIfG_getTimerMode()) { +int dComIfG_TimerReStart(int mode) { + if (mode == dComIfG_getTimerMode()) { dTimer_c* timer = dComIfG_getTimerPtr(); if (timer != NULL) { timer->restart(4); - uvar2 = 1; + return 1; } else { - uvar2 = 0; + return 0; } - } else { - uvar2 = 0; } - return uvar2; -} -int dComIfG_TimerEnd(int param_0, int param_1) { - int uvar2; + return 0; +} - if (param_0 == dComIfG_getTimerMode()) { +int dComIfG_TimerEnd(int mode, int param_1) { + if (mode == dComIfG_getTimerMode()) { dTimer_c* timer = dComIfG_getTimerPtr(); if (timer != NULL) { timer->end(param_1); - uvar2 = 1; + return 1; } else { - uvar2 = 0; + return 0; } - } else { - uvar2 = 0; } - return uvar2; + + return 0; } /* 8002F72C-8002F79C 02A06C 0070+00 0/0 0/0 2/2 .text dComIfG_TimerDeleteCheck__Fi */ -int dComIfG_TimerDeleteCheck(int param_0) { - int uvar2; - - if (param_0 == dComIfG_getTimerMode()) { +int dComIfG_TimerDeleteCheck(int mode) { + if (mode == dComIfG_getTimerMode()) { dTimer_c* timer = dComIfG_getTimerPtr(); if (timer != NULL) { - uvar2 = timer->deleteCheck(); + return timer->deleteCheck(); } else { - uvar2 = 0; + return 0; } - } else { - uvar2 = 0; } - return uvar2; -} -int dComIfG_TimerDeleteRequest(int param_0) { - int uvar2; + return 0; +} - if (param_0 == dComIfG_getTimerMode()) { +int dComIfG_TimerDeleteRequest(int mode) { + if (mode == dComIfG_getTimerMode()) { dTimer_c* timer = dComIfG_getTimerPtr(); if (timer != NULL) { timer->deleteRequest(); - uvar2 = 1; + return 1; } else { - uvar2 = 0; + return 0; } - } else { - uvar2 = 0; } - return uvar2; + + return 0; } /* 8002F810-8002F9F0 02A150 01E0+00 0/0 1/1 0/0 .text dComIfGs_Wolf_Change_Check__Fv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dComIfGs_Wolf_Change_Check() { - nofralloc -#include "asm/d/com/d_com_inf_game/dComIfGs_Wolf_Change_Check__Fv.s" +u8 dComIfGs_Wolf_Change_Check() { + u8 is_wolf = false; + + // Transforming Unlocked + if (dComIfGs_isEventBit(0x0D04)) { + is_wolf = dComIfGs_getTransformStatus(); + } else if (dComIfGs_isTransformLV(0) && !dComIfGs_isDarkClearLV(0)) { + is_wolf = true; + } else if (dComIfGs_isTransformLV(1) && !dComIfGs_isDarkClearLV(1)) { + is_wolf = true; + } else if (dComIfGs_isTransformLV(2) && !dComIfGs_isDarkClearLV(2)) { + is_wolf = true; + } else if (dComIfGs_isTransformLV(3) && !dComIfGs_isDarkClearLV(3)) { + is_wolf = true; + } + + // Stage is Hyrule Field and Room is Eldin Gorge Entrance + if (!strcmp(dComIfGp_getStartStageName(), "F_SP121") && dComIfGp_getStartStageRoomNo() == 2 && + dComIfGp_getStartStagePoint() == 10 && !dComIfGs_isSaveSwitch(12)) { + is_wolf = false; + } + // Stage is Hyrule Field and Room is North Lanayru - Eldin Entrance + else if (!strcmp(dComIfGp_getStartStageName(), "F_SP121") && + dComIfGp_getStartStageRoomNo() == 9 && dComIfGp_getStartStagePoint() == 10 && + !dComIfGs_isSaveSwitch(13)) { + is_wolf = false; + } + + return is_wolf; } -#pragma pop void dComIfGs_PolyDamageOff_Set(s8 param_0) { g_dComIfG_gameInfo.field_0x1ddfb = param_0; @@ -2483,6 +2490,16 @@ SECTION_SDATA2 static f64 lit_7580 = 0.6; /* 8002FA54-8002FA84 02A394 0030+00 0/0 4/4 96/96 .text dComIfGs_wolfeye_effect_check__Fv */ +#ifdef NONMATCHING +int dComIfGs_wolfeye_effect_check() { + BOOL ret = 0; + if (g_env_light.field_0xf3d == 1 && g_env_light.field_0xf40 > 0.6) { + ret = 1; + } + + return ret; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -2491,6 +2508,7 @@ asm void dComIfGs_wolfeye_effect_check() { #include "asm/d/com/d_com_inf_game/dComIfGs_wolfeye_effect_check__Fv.s" } #pragma pop +#endif void dComIfGs_Grass_hide_Set(s8 param_0) { g_dComIfG_gameInfo.field_0x1ddfc = param_0; @@ -2523,6 +2541,16 @@ BOOL dComIfGp_TransportWarp_check() { /* 8002FB20-8002FB80 02A460 0060+00 2/2 6/6 0/0 .text * dComLbG_PhaseHandler__FP30request_of_phase_process_classPPFPv_iPv */ +#ifdef NONMATCHING +int dComLbG_PhaseHandler(request_of_phase_process_class* param_0, int (**param_1)(void*), + void* param_2) { + int ret = cPhs_Handler(param_0, param_1, param_2); + if (ret != 2 && ret < 2) { + return ret; + } + return dComLbG_PhaseHandler(param_0, param_1, param_2); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -2532,6 +2560,7 @@ asm int dComLbG_PhaseHandler(request_of_phase_process_class* param_0, int (**par #include "asm/d/com/d_com_inf_game/dComLbG_PhaseHandler__FP30request_of_phase_process_classPPFPv_iPv.s" } #pragma pop +#endif /* 8002FB80-8002FC3C 02A4C0 00BC+00 0/0 1/1 1/1 .text dComIfGs_onVisitedRoom__Fi */ #pragma push @@ -2553,41 +2582,44 @@ asm void dComIfGs_offVisitedRoom(int param_0) { } #pragma pop +inline BOOL dComIfGs_isSaveVisitedRoom(int param_0, int param_1) { + return g_dComIfG_gameInfo.info.getSavedata().getSave2(param_0)->isVisitedRoom(param_1); +} + /* 8002FC98-8002FCF4 02A5D8 005C+00 0/0 1/1 0/0 .text dComIfGs_isVisitedRoom__Fi */ +// instructions swapped +#ifdef NONMATCHING +BOOL dComIfGs_isVisitedRoom(int param_0) { + int stayNo = dComIfGp_roomControl_getStayNo(); + dStage_FileList2_dt_c* fileList = dStage_roomControl_c::getFileList2(stayNo); + return dComIfGs_isSaveVisitedRoom(fileList->field_0x13, param_0); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dComIfGs_isVisitedRoom(int param_0) { +asm BOOL dComIfGs_isVisitedRoom(int param_0) { nofralloc #include "asm/d/com/d_com_inf_game/dComIfGs_isVisitedRoom__Fi.s" } #pragma pop +#endif /* 8002FCF4-8002FD08 02A634 0014+00 0/0 1/1 0/0 .text dComIfGs_staffroll_next_go__Fv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dComIfGs_staffroll_next_go() { - nofralloc -#include "asm/d/com/d_com_inf_game/dComIfGs_staffroll_next_go__Fv.s" +void dComIfGs_staffroll_next_go() { + g_env_light.field_0x130c = true; } -#pragma pop /* 8002FD08-8002FD18 02A648 0010+00 0/0 1/1 0/0 .text dComIfGs_staffroll_next_go_check__Fv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dComIfGs_staffroll_next_go_check() { - nofralloc -#include "asm/d/com/d_com_inf_game/dComIfGs_staffroll_next_go_check__Fv.s" +u8 dComIfGs_staffroll_next_go_check() { + return g_env_light.field_0x130c; } -#pragma pop /* ############################################################################################## */ /* 80450608-8045060C 000088 0004+00 0/0 6/6 11/11 .sdata g_whiteColor */ SECTION_SDATA extern GXColor g_whiteColor = {255, 255, 255, 255}; /* 8045060C-80450610 00008C 0004+00 0/0 3/3 3/3 .sdata g_saftyWhiteColor */ -SECTION_SDATA extern u32 g_saftyWhiteColor = 0xA0A0A0FF; +SECTION_SDATA extern GXColor g_saftyWhiteColor = {160, 160, 160, 255}; /* 80378F38-80378F38 005598 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/src/d/com/d_com_static.cpp b/src/d/com/d_com_static.cpp index 27327c3133..2a29c0b36c 100644 --- a/src/d/com/d_com_static.cpp +++ b/src/d/com/d_com_static.cpp @@ -11,19 +11,12 @@ // Types: // -struct fopAc_ac_c {}; - struct daYkgr_c { static u8 m_aim_rate[4]; static u8 m_path[4]; static u8 m_emitter[4]; }; -struct cXyz { - /* 80009184 */ ~cXyz(); - /* 800125DC */ cXyz(); -}; - struct daTagStream_c { /* 800318B4 */ void checkArea(cXyz const*); @@ -45,34 +38,6 @@ struct daTagMagne_c { static u8 mTagMagne[4]; }; -struct daSus_c { - struct data_c { - /* 80030F14 */ void set(s8, cXyz const&, cXyz const&, u8, u8, u8); - /* 80030FBC */ void reset(); - /* 80030FCC */ void isSwitch(); - /* 800310C8 */ void check(fopAc_ac_c*); - /* 80031038 */ void check(cXyz const&); - /* 80031150 */ void execute(); - /* 80031F28 */ ~data_c(); - /* 80031F64 */ data_c(); - }; - - struct room_c { - /* 80031190 */ void add(daSus_c::data_c*); - /* 800311FC */ void reset(); - /* 80031EE4 */ room_c(); - }; - - /* 80031248 */ void newData(s8, cXyz const&, cXyz const&, u8, u8, u8); - /* 800313BC */ void reset(); - /* 800314D4 */ void check(fopAc_ac_c*); - /* 80031434 */ void check(s8, cXyz const&); - /* 800315A4 */ void execute(); - - static u8 mData[1152]; - static u8 mRoom[256]; -}; - struct daSetBgObj_c { /* 80031870 */ void getArcName(fopAc_ac_c*); }; @@ -100,8 +65,6 @@ struct daObjCarry_c { static u8 mRoomNo[5 + 3 /* padding */]; }; -struct J3DModel {}; - struct daMirror_c { /* 8003194C */ void entry(J3DModel*); /* 80031990 */ void remove(); @@ -418,7 +381,7 @@ asm void daSus_c::reset() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daSus_c::check(s8 param_0, cXyz const& param_1) { +asm bool daSus_c::check(s8 param_0, cXyz const& param_1) { nofralloc #include "asm/d/com/d_com_static/check__7daSus_cFScRC4cXyz.s" } diff --git a/src/d/d_drawlist.cpp b/src/d/d_drawlist.cpp index ba99320c4d..200e2f485b 100644 --- a/src/d/d_drawlist.cpp +++ b/src/d/d_drawlist.cpp @@ -2663,8 +2663,8 @@ SECTION_SDATA2 static f32 lit_5553 = 0.0010000000474974513f; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dDlst_shadowControl_c::setReal(u32 param_0, s8 param_1, J3DModel* param_2, cXyz* param_3, - f32 param_4, f32 param_5, dKy_tevstr_c* param_6) { +asm int dDlst_shadowControl_c::setReal(u32 param_0, s8 param_1, J3DModel* param_2, cXyz* param_3, + f32 param_4, f32 param_5, dKy_tevstr_c* param_6) { nofralloc #include "asm/d/d_drawlist/setReal__21dDlst_shadowControl_cFUlScP8J3DModelP4cXyzffP12dKy_tevstr_c.s" } @@ -2686,8 +2686,8 @@ asm void dDlst_shadowControl_c::addReal(u32 param_0, J3DModel* param_1) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dDlst_shadowControl_c::setSimple(cXyz* param_0, f32 param_1, f32 param_2, cXyz* param_3, - s16 param_4, f32 param_5, _GXTexObj* param_6) { +asm int dDlst_shadowControl_c::setSimple(cXyz* param_0, f32 param_1, f32 param_2, cXyz* param_3, + s16 param_4, f32 param_5, _GXTexObj* param_6) { nofralloc #include "asm/d/d_drawlist/setSimple__21dDlst_shadowControl_cFP4cXyzffP4cXyzsfP9_GXTexObj.s" } @@ -2695,7 +2695,7 @@ asm void dDlst_shadowControl_c::setSimple(cXyz* param_0, f32 param_1, f32 param_ /* ############################################################################################## */ /* 804248D0-804248F0 0515F0 0020+00 1/1 6/6 173/173 .bss mSimpleTexObj__21dDlst_shadowControl_c */ -u8 dDlst_shadowControl_c::mSimpleTexObj[32]; +GXTexObj dDlst_shadowControl_c::mSimpleTexObj; /* 80055FE8-80056018 050928 0030+00 0/0 1/1 0/0 .text * setSimpleTex__21dDlst_shadowControl_cFPC7ResTIMG */ diff --git a/src/d/d_item.cpp b/src/d/d_item.cpp index ba8f9ba134..517b0a82ae 100644 --- a/src/d/d_item.cpp +++ b/src/d/d_item.cpp @@ -1185,7 +1185,7 @@ void item_func_TKS_LETTER() { } void item_func_WEAR_CASUAL() { - dComIfGs_setSelectEquipClothes(WEARS_CASUAL); + dComIfGs_setSelectEquipClothes(WEAR_CASUAL); } void item_func_WEAR_KOKIRI() { @@ -1238,10 +1238,9 @@ void item_func_HAWK_EYE() { #ifdef NONMATCHING void item_func_WOOD_STICK() { dComIfGs_setCollectSword(COLLECT_WOODEN_SWORD); - dComIfGs_setSelectEquipSword__FUc(WOOD_STICK); + dComIfGs_setSelectEquipSword(WOOD_STICK); - s8 stayNo = dComIfGp_roomControl_getStayNo(); - dComIfGs_onSwitch(28, stayNo); // wrong order + dComIfGs_onSwitch(28, dComIfGp_roomControl_getStayNo()); // wrong order } #else #pragma push @@ -1868,7 +1867,7 @@ s32 item_getcheck_func_TKS_LETTER() { } s32 item_getcheck_func_WEAR_CASUAL() { - return dComIfGs_isItemFirstBit(WEARS_CASUAL); + return dComIfGs_isItemFirstBit(WEAR_CASUAL); } s32 item_getcheck_func_WEAR_KOKIRI() { @@ -2471,12 +2470,10 @@ s32 isArrow(u8 item_no) { } /* 8009B708-8009B77C 096048 0074+00 0/0 4/4 1/1 .text isBottleItem__FUc */ -// probably wrong cases or order -#ifdef NONMATCHING bool isBottleItem(u8 item_no) { - bool is_bottle_item; - switch (item_no) { + case OIL_BOTTLE3: + case EMPTY_BOTTLE: case RED_BOTTLE: case GREEN_BOTTLE: case BLUE_BOTTLE: @@ -2489,10 +2486,8 @@ bool isBottleItem(u8 item_no) { case UGLY_SOUP: case HOT_SPRING: case FAIRY: - case HOT_SPRING_2: - case OIL2: - case OIL: case FAIRY_DROP: + case WORM: case BEE_CHILD: case CHUCHU_RARE: case CHUCHU_RED: @@ -2503,29 +2498,16 @@ bool isBottleItem(u8 item_no) { case LV1_SOUP: case LV2_SOUP: case LV3_SOUP: - case CHUCHU_YELLOW2: - case OIL_BOTTLE3: - case SHOP_BEE_CHILD: case CHUCHU_BLACK: - is_bottle_item = true; - break; + case POU_FIRE1: + case POU_FIRE2: + case POU_FIRE3: + case POU_FIRE4: + return true; default: - is_bottle_item = false; - break; + return false; } - - return is_bottle_item; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void isBottleItem(u8 param_0) { - nofralloc -#include "asm/d/d_item/isBottleItem__FUc.s" -} -#pragma pop -#endif BOOL isHeart(u8 item_no) { BOOL is_heart = false; diff --git a/src/d/d_item_data.cpp b/src/d/d_item_data.cpp index 79eebb7429..4b03cce87a 100644 --- a/src/d/d_item_data.cpp +++ b/src/d/d_item_data.cpp @@ -8,16 +8,6 @@ #include "dolphin/types.h" // -// Types: -// - -struct dItem_data { - static void* item_resource[1530]; - static void* field_item_res[1020]; - static u8 item_info[1020 + 4 /* padding */]; -}; - -// // Forward References: // @@ -27,4147 +17,580 @@ extern "C" void* field_item_res__10dItem_data[1020]; extern "C" u8 item_info__10dItem_data[1020 + 4 /* padding */]; // -// External References: -// - -// // Declarations: // -/* ############################################################################################## */ -/* 8037AD68-8037AD72 0073C8 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AD68 = "F_gD_rupy"; -#pragma pop - -/* 8037AD72-8037AD7C 0073D2 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AD72 = "O_gD_bomb"; -#pragma pop - -/* 8037AD7C-8037AD86 0073DC 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AD7C = "O_gD_arow"; -#pragma pop - -/* 8037AD86-8037AD90 0073E6 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AD86 = "O_gD_tane"; -#pragma pop - -/* 8037AD90-8037AD98 0073F0 0008+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AD90 = "O_gD_PG"; -#pragma pop - -/* 8037AD98-8037ADA0 0073F8 0008+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AD98 = "O_gD_BI"; -#pragma pop - -/* 8037ADA0-8037ADA9 007400 0009+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037ADA0 = "T_gD_key"; -#pragma pop - -/* 8037ADA9-8037ADB3 007409 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037ADA9 = "O_gD_hutk"; -#pragma pop - -/* 8037ADB3-8037ADBD 007413 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037ADB3 = "O_gD_hutu"; -#pragma pop - -/* 8037ADBD-8037ADC6 00741D 0009+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037ADBD = "T_gD_map"; -#pragma pop - -/* 8037ADC6-8037ADD0 007426 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037ADC6 = "T_gD_kmps"; -#pragma pop - -/* 8037ADD0-8037ADD9 007430 0009+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037ADD0 = "O_gD_TKS"; -#pragma pop - -/* 8037ADD9-8037ADE3 007439 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037ADD9 = "T_gD_bkey"; -#pragma pop - -/* 8037ADE3-8037ADEC 007443 0009+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037ADE3 = "O_gD_TKC"; -#pragma pop - -/* 8037ADEC-8037ADF5 00744C 0009+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037ADEC = "O_gD_SWA"; -#pragma pop - -/* 8037ADF5-8037ADFE 007455 0009+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037ADF5 = "T_gD_SHB"; -#pragma pop - -/* 8037ADFE-8037AE07 00745E 0009+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037ADFE = "O_gD_SHC"; -#pragma pop - -/* 8037AE07-8037AE10 007467 0009+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AE07 = "O_gD_SHA"; -#pragma pop - -/* 8037AE10-8037AE1A 007470 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AE10 = "O_gD_mem2"; -#pragma pop - -/* 8037AE1A-8037AE24 00747A 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AE1A = "O_gD_marm"; -#pragma pop - -/* 8037AE24-8037AE2E 007484 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AE24 = "O_gD_zora"; -#pragma pop - -/* 8037AE2E-8037AE38 00748E 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AE2E = "O_gD_Injy"; -#pragma pop - -/* 8037AE38-8037AE42 007498 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AE38 = "O_gD_puL2"; -#pragma pop - -/* 8037AE42-8037AE4C 0074A2 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AE42 = "O_gD_puL3"; -#pragma pop - -/* 8037AE4C-8037AE56 0074AC 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AE4C = "O_gD_sang"; -#pragma pop - -/* 8037AE56-8037AE60 0074B6 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AE56 = "O_gD_hawk"; -#pragma pop - -/* 8037AE60-8037AE69 0074C0 0009+00 2/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AE60 = "O_gD_SWB"; -#pragma pop - -/* 8037AE69-8037AE73 0074C9 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AE69 = "O_gD_boom"; -#pragma pop - -/* 8037AE73-8037AE7B 0074D3 0008+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AE73 = "O_gD_SP"; -#pragma pop - -/* 8037AE7B-8037AE83 0074DB 0008+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AE7B = "O_gD_IB"; -#pragma pop - -/* 8037AE83-8037AE8C 0074E3 0009+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AE83 = "O_gD_bow"; -#pragma pop - -/* 8037AE8C-8037AE94 0074EC 0008+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AE8C = "O_gD_HS"; -#pragma pop - -/* 8037AE94-8037AE9E 0074F4 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AE94 = "O_gD_boot"; -#pragma pop - -/* 8037AE9E-8037AEA8 0074FE 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AE9E = "O_gD_CROD"; -#pragma pop - -/* 8037AEA8-8037AEB0 007508 0008+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AEA8 = "T_gD_kt"; -#pragma pop - -/* 8037AEB0-8037AEBA 007510 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AEB0 = "O_gD_uktr"; -#pragma pop - -/* 8037AEBA-8037AEC4 00751A 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AEBA = "O_gD_pach"; -#pragma pop - -/* 8037AEC4-8037AECE 007524 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AEC4 = "O_gD_bmL2"; -#pragma pop - -/* 8037AECE-8037AED8 00752E 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AECE = "O_gD_bomc"; -#pragma pop - -/* 8037AED8-8037AEE2 007538 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AED8 = "O_gD_quL1"; -#pragma pop - -/* 8037AEE2-8037AEEC 007542 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AEE2 = "O_gD_quL2"; -#pragma pop - -/* 8037AEEC-8037AEF6 00754C 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AEEC = "O_gD_quL3"; -#pragma pop - -/* 8037AEF6-8037AF00 007556 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AEF6 = "O_gD_bott"; -#pragma pop - -/* 8037AF00-8037AF09 007560 0009+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AF00 = "Obj_kntr"; -#pragma pop - -/* 8037AF09-8037AF13 007569 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AF09 = "O_gD_lttr"; -#pragma pop - -/* 8037AF13-8037AF1D 007573 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AF13 = "O_gD_bill"; -#pragma pop - -/* 8037AF1D-8037AF27 00757D 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AF1D = "O_gD_wood"; -#pragma pop - -/* 8037AF27-8037AF31 007587 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AF27 = "O_gD_pend"; -#pragma pop - -/* 8037AF31-8037AF3B 007591 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AF31 = "O_gD_hk_s"; -#pragma pop - -/* 8037AF3B-8037AF45 00759B 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AF3B = "N_gD_Lpod"; -#pragma pop - -/* 8037AF45-8037AF4F 0075A5 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AF45 = "O_gD_kabo"; -#pragma pop - -/* 8037AF4F-8037AF59 0075AF 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AF4F = "O_gD_kabm"; -#pragma pop - -/* 8037AF59-8037AF63 0075B9 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AF59 = "O_gD_choo"; -#pragma pop - -/* 8037AF63-8037AF6D 0075C3 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AF63 = "O_gD_chom"; -#pragma pop - -/* 8037AF6D-8037AF77 0075CD 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AF6D = "O_gD_kuwo"; -#pragma pop - -/* 8037AF77-8037AF81 0075D7 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AF77 = "O_gD_kuwm"; -#pragma pop - -/* 8037AF81-8037AF8B 0075E1 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AF81 = "O_gD_bato"; -#pragma pop - -/* 8037AF8B-8037AF95 0075EB 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AF8B = "O_gD_batm"; -#pragma pop - -/* 8037AF95-8037AF9F 0075F5 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AF95 = "O_gD_nano"; -#pragma pop - -/* 8037AF9F-8037AFA9 0075FF 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AF9F = "O_gD_nanm"; -#pragma pop - -/* 8037AFA9-8037AFB3 007609 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AFA9 = "O_gD_dano"; -#pragma pop - -/* 8037AFB3-8037AFBD 007613 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AFB3 = "O_gD_danm"; -#pragma pop - -/* 8037AFBD-8037AFC7 00761D 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AFBD = "O_gD_kamo"; -#pragma pop - -/* 8037AFC7-8037AFD1 007627 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AFC7 = "O_gD_kamm"; -#pragma pop - -/* 8037AFD1-8037AFDB 007631 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AFD1 = "O_gD_teno"; -#pragma pop - -/* 8037AFDB-8037AFE5 00763B 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AFDB = "O_gD_tenm"; -#pragma pop - -/* 8037AFE5-8037AFEF 007645 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AFE5 = "O_gD_kato"; -#pragma pop - -/* 8037AFEF-8037AFF9 00764F 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AFEF = "O_gD_katm"; -#pragma pop - -/* 8037AFF9-8037B003 007659 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037AFF9 = "O_gD_tono"; -#pragma pop - -/* 8037B003-8037B00D 007663 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037B003 = "O_gD_tonm"; -#pragma pop - -/* 8037B00D-8037B017 00766D 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037B00D = "O_gD_ario"; -#pragma pop - -/* 8037B017-8037B021 007677 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037B017 = "O_gD_arim"; -#pragma pop - -/* 8037B021-8037B02B 007681 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037B021 = "O_gD_kago"; -#pragma pop - -/* 8037B02B-8037B035 00768B 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037B02B = "O_gD_kagm"; -#pragma pop - -/* 8037B035-8037B03F 007695 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037B035 = "O_gD_tama"; -#pragma pop - -/* 8037B03F-8037B049 00769F 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037B03F = "O_gD_komo"; -#pragma pop - -/* 8037B049-8037B053 0076A9 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037B049 = "O_gD_pump"; -#pragma pop - -/* 8037B053-8037B05D 0076B3 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037B053 = "O_gD_chee"; -#pragma pop - -/* 8037B05D-8037B067 0076BD 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037B05D = "O_gD_bkey"; -#pragma pop - -/* 8037B067-8037B071 0076C7 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037B067 = "D_MKey_01"; -#pragma pop - -/* 8037B071-8037B07B 0076D1 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037B071 = "D_MKey_02"; -#pragma pop - -/* 8037B07B-8037B085 0076DB 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037B07B = "D_MKey_03"; -#pragma pop - -/* 8037B085-8037B08F 0076E5 000A+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037B085 = "O_gD_Mkey"; -#pragma pop - -/* 8037B08F-8037B096 0076EF 0007+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037B08F = "Always"; -#pragma pop - -/* 8037B096-8037B09E 0076F6 0008+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037B096 = "T_g_key"; -#pragma pop - -/* 8037B09E-8037B0A7 0076FE 0009+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037B09E = "T_g_bkey"; -#pragma pop - -/* 8037B0A7-8037B0AF 007707 0008+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037B0A7 = "O_g_SWA"; -#pragma pop - -/* 8037B0AF-8037B0B7 00770F 0008+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037B0AF = "T_g_SHB"; -#pragma pop - -/* 8037B0B7-8037B0C0 007717 0009+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037B0B7 = "O_g_ZORA"; -#pragma pop - -/* 8037B0C0-8037B0C7 007720 0007+00 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037B0C0 = "T_g_kt"; -#pragma pop - -/* 8037B0C7-8037B0D0 007727 0007+02 1/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8037B0C7 = "O_wood"; -/* @stringBase0 padding */ -SECTION_DEAD static char const* const pad_8037B0CE = "\0"; -#pragma pop - /* 803AC5A0-803ADD88 -00001 17E8+00 0/0 10/10 2/2 .data item_resource__10dItem_data */ -SECTION_DATA void* dItem_data::item_resource[1530] = { - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D3C00, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF01FF, - (void*)0x002D3C00, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF02FF, - (void*)0x002D3C00, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF03FF, - (void*)0x002D3C00, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF04FF, - (void*)0x002D3C00, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF05FF, - (void*)0x002D3C00, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF06FF, - (void*)0x002D3C00, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0xA), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x000C6400, - (void*)0x019F0000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0xA), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x000C6400, - (void*)0x019F0000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0xA), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x000C6400, - (void*)0x019F0000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0xA), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x000C6400, - (void*)0x019F0000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x14), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x00536400, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x14), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x00536400, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x14), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x00536400, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x14), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x00536400, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x1E), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x005C6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x28), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x000D6400, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x28), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x000D6400, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x28), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x000D6400, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x28), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x000D6400, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x30), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x000B6400, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x30), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x000B6400, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x30), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x000B6400, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x30), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x000B6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x38), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x006E6400, - (void*)0x00790000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x41), - (void*)0x0008FFFF, - (void*)0x0005000B, - (void*)0xFFFFFFFF, - (void*)0x00506400, - (void*)0x01940000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x4B), - (void*)0x0008FFFF, - (void*)0x0005000B, - (void*)0xFFFFFFFF, - (void*)0x00516400, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x55), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x00716400, - (void*)0x01970000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x5E), - (void*)0x0007FFFF, - (void*)0x0004FFFF, - (void*)0xFFFFFFFF, - (void*)0x006F6400, - (void*)0x01980000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x68), - (void*)0x0008FFFF, - (void*)0x0005FFFF, - (void*)0x000BFFFF, - (void*)0x00286400, - (void*)0x01910000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x71), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x00216400, - (void*)0xFFFF0000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x7B), - (void*)0x0009000C, - (void*)0x0006FFFF, - (void*)0x000FFFFF, - (void*)0x00266400, - (void*)0x01910000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x84), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x00706E00, - (void*)0x01950000, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x00426E00, - (void*)0x01B20000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x8D), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x00746E00, - (void*)0x01B50000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x96), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x00406E00, - (void*)0x01960000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x9F), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x003C6400, - (void*)0x01B40000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0xA8), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x00226400, - (void*)0x01A80000, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x006B6400, - (void*)0x01920000, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x006B6400, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0xB2), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x00416400, - (void*)0x01A90000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0xBC), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x004D6400, - (void*)0x01AA0000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0xC6), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x002D6400, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x68), - (void*)0x0008FFFF, - (void*)0x0005FFFF, - (void*)0xFFFFFFFF, - (void*)0x00286400, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0xD0), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x00476400, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0xD0), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x00486400, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0xDA), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x00496400, - (void*)0x01AD0000, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x00506400, - (void*)0x019F0000, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x00506400, - (void*)0x01AF0000, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x00506400, - (void*)0x01B00000, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x00506400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x00726E00, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)0x01B30000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0xE4), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x002A6400, - (void*)0x01940000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0xEE), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x00596400, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0xF8), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x00246E00, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x101), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x00626E00, - (void*)0x01AB0000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x10B), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x002B5F00, - (void*)0x01A60000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x113), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x00207800, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x11B), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x00696400, - (void*)0x01A50000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x124), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x006A7800, - (void*)0x01AC0000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x12C), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x00256400, - (void*)0x01A70000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x136), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x00166E00, - (void*)0x019E0000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x124), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x002C8200, - (void*)0x01B50000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x140), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x006C6E00, - (void*)0x01930000, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x00426E00, - (void*)0x01B60000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x148), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x00186400, - (void*)0x01B70000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x152), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x005B6400, - (void*)0x01B80000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x136), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x00166E00, - (void*)0x01B90000, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)0x01BA0000, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)0x01970000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x15C), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x00566400, - (void*)0x01980000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x166), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFF00FF, - (void*)0x00556400, - (void*)0x01BD0000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x166), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x00556400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x00566400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x170), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x004A6400, - (void*)0x01B10000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x17A), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x004B6400, - (void*)0x01F00000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x184), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x004C6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x004E6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x000C6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x00596400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x00196400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x001B6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x001A6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x001C6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x001D6400, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x18E), - (void*)0x0006000C, - (void*)0xFFFF0009, - (void*)0x000F0002, - (void*)0x00115000, - (void*)0x01BE0000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x18E), - (void*)0x0006000C, - (void*)0xFFFF0009, - (void*)0x000F0000, - (void*)0x00115000, - (void*)0x01BF0000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x18E), - (void*)0x0006000C, - (void*)0xFFFF0009, - (void*)0x000F0100, - (void*)0x00115000, - (void*)0x01C00000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x18E), - (void*)0x0006000C, - (void*)0xFFFF0009, - (void*)0x000F0200, - (void*)0x00115000, - (void*)0x01C10000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x18E), - (void*)0x0006000C, - (void*)0xFFFF0009, - (void*)0x000F0300, - (void*)0x00115000, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x18E), - (void*)0x0006000C, - (void*)0xFFFF0009, - (void*)0x000F0301, - (void*)0x00125000, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x18E), - (void*)0x0006000C, - (void*)0xFFFF0009, - (void*)0x000F0400, - (void*)0x00115000, - (void*)0x01A10000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x18E), - (void*)0x0006000C, - (void*)0xFFFF0009, - (void*)0x000F0500, - (void*)0x00115000, - (void*)0x01AE0000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x18E), - (void*)0x0006000C, - (void*)0xFFFF0009, - (void*)0x000F0400, - (void*)0x00115000, - (void*)0x01A10000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x18E), - (void*)0x0006000C, - (void*)0xFFFF0009, - (void*)0x000F0000, - (void*)0x00115000, - (void*)0x01BF0000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x18E), - (void*)0x0006000C, - (void*)0xFFFF0009, - (void*)0x000F0800, - (void*)0x00115000, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x18E), - (void*)0x0006000C, - (void*)0xFFFF0009, - (void*)0x000F0500, - (void*)0x00115000, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x00115000, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x18E), - (void*)0x0006000C, - (void*)0xFFFF0009, - (void*)0x000F0500, - (void*)0x00115000, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x198), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x006C6E00, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x198), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x006C6E00, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x15C), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x000C6400, - (void*)0x01980000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x28), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x000D6400, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x30), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x000B6400, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x18E), - (void*)0x0006000C, - (void*)0xFFFF0009, - (void*)0x000F0B00, - (void*)0x00115000, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x00115000, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x18E), - (void*)0x0006000C, - (void*)0xFFFF0009, - (void*)0x000F0B00, - (void*)0x00115000, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x00115000, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x18E), - (void*)0x0006000C, - (void*)0xFFFF0009, - (void*)0x000F0700, - (void*)0x00115000, - (void*)0x01BF0000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x18E), - (void*)0x0006000C, - (void*)0xFFFF0009, - (void*)0x000F0000, - (void*)0x00115000, - (void*)0x01BF0000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x18E), - (void*)0x0006000C, - (void*)0xFFFF0009, - (void*)0x000F0200, - (void*)0x00115000, - (void*)0x01BF0000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x18E), - (void*)0x0006000C, - (void*)0xFFFF0009, - (void*)0x000F0100, - (void*)0x00115000, - (void*)0x01BF0000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x18E), - (void*)0x0006000C, - (void*)0xFFFF0009, - (void*)0x000F0400, - (void*)0x00115000, - (void*)0x01BF0000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x18E), - (void*)0x0006000C, - (void*)0xFFFF0009, - (void*)0x000F0600, - (void*)0x00115000, - (void*)0x01BF0000, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x00135000, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x00135000, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x00135000, - (void*)0x01CF0000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x1A1), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x005A6400, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x1AB), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x00546400, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x1B5), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x00586400, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x1BF), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x005D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x005D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)0x01D30000, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)0x01D20000, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0xA8), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x00226400, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0xA8), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x00226400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x006C6E00, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x18E), - (void*)0x0006000C, - (void*)0xFFFF0009, - (void*)0x000F0400, - (void*)0x00115000, - (void*)0x01A10000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x1C9), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x00115000, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x00115000, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x1D3), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x00526400, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x1D3), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x00526400, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x1D3), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x00526400, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x1D3), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x00526400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x00115000, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x1DD), - (void*)0x0005000B, - (void*)0xFFFF0008, - (void*)0xFFFFFFFF, - (void*)0x00305000, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x1E7), - (void*)0x0005000B, - (void*)0xFFFF0008, - (void*)0xFFFFFFFF, - (void*)0x002F5000, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x1F1), - (void*)0x0009000F, - (void*)0x0006000C, - (void*)0xFFFFFFFF, - (void*)0x00085000, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x1FB), - (void*)0x0009000F, - (void*)0x0006000C, - (void*)0xFFFFFFFF, - (void*)0x00075000, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x205), - (void*)0x0005000B, - (void*)0xFFFF0008, - (void*)0xFFFFFFFF, - (void*)0x00385000, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x20F), - (void*)0x0005000B, - (void*)0xFFFF0008, - (void*)0xFFFFFFFF, - (void*)0x00375000, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x219), - (void*)0x0005000B, - (void*)0xFFFF0008, - (void*)0xFFFFFFFF, - (void*)0x00065000, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x223), - (void*)0x0005000B, - (void*)0xFFFF0008, - (void*)0xFFFFFFFF, - (void*)0x00055000, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x22D), - (void*)0x0005000B, - (void*)0xFFFF0008, - (void*)0xFFFFFFFF, - (void*)0x003B5000, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x237), - (void*)0x0005000B, - (void*)0xFFFF0008, - (void*)0xFFFFFFFF, - (void*)0x003A5000, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x241), - (void*)0x0005000B, - (void*)0xFFFF0008, - (void*)0xFFFFFFFF, - (void*)0x000A5000, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x24B), - (void*)0x0005000B, - (void*)0xFFFF0008, - (void*)0xFFFFFFFF, - (void*)0x00095000, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x255), - (void*)0x0005000B, - (void*)0xFFFF0008, - (void*)0xFFFFFFFF, - (void*)0x00345000, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x25F), - (void*)0x0005000B, - (void*)0xFFFF0008, - (void*)0xFFFFFFFF, - (void*)0x00335000, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x269), - (void*)0x0005000B, - (void*)0xFFFF0008, - (void*)0xFFFFFFFF, - (void*)0x005F5000, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x273), - (void*)0x0005000B, - (void*)0xFFFF0008, - (void*)0xFFFFFFFF, - (void*)0x005E5000, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x27D), - (void*)0x0005000B, - (void*)0xFFFF0008, - (void*)0xFFFFFFFF, - (void*)0x00365000, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x287), - (void*)0x0005000B, - (void*)0xFFFF0008, - (void*)0xFFFFFFFF, - (void*)0x00355000, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x291), - (void*)0x0009000F, - (void*)0x0006000C, - (void*)0xFFFFFFFF, - (void*)0x00615000, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x29B), - (void*)0x0009000F, - (void*)0x0006000C, - (void*)0xFFFFFFFF, - (void*)0x00605000, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x2A5), - (void*)0x0005000B, - (void*)0xFFFF0008, - (void*)0xFFFFFFFF, - (void*)0x00045000, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x2AF), - (void*)0x0005000B, - (void*)0xFFFF0008, - (void*)0xFFFFFFFF, - (void*)0x00035000, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x2B9), - (void*)0x0009000F, - (void*)0x0006000C, - (void*)0xFFFFFFFF, - (void*)0x00325000, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x2C3), - (void*)0x0009000F, - (void*)0x0006000C, - (void*)0xFFFFFFFF, - (void*)0x00315000, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x2CD), - (void*)0x0005000B, - (void*)0xFFFF0008, - (void*)0xFFFFFFFF, - (void*)0x003E6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x002D6400, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x2D7), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x004F6400, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x2D7), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x004F6400, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x2D7), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x004F6400, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x7B), - (void*)0x0009000C, - (void*)0x0006FFFF, - (void*)0x000FFFFF, - (void*)0x00266400, - (void*)0x01910000, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF04FF, - (void*)0x002D3C00, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x38), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x006E6400, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x18E), - (void*)0x0006000C, - (void*)0xFFFF0009, - (void*)0x000F0002, - (void*)0x00115000, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x18E), - (void*)0x0006000C, - (void*)0xFFFF0009, - (void*)0x000F0002, - (void*)0x00115000, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x18E), - (void*)0x0006000C, - (void*)0xFFFF0009, - (void*)0x000F0002, - (void*)0x00115000, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x18E), - (void*)0x0006000C, - (void*)0xFFFF0009, - (void*)0x000F0002, - (void*)0x00115000, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x38), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x006E6400, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x2E1), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x00296400, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x2EB), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x00156400, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x2F5), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x003F6400, - (void*)NULL, - (void*)&d_d_item_data__stringBase0, - (void*)0x0004FFFF, - (void*)0xFFFF0007, - (void*)0xFFFF00FF, - (void*)0x003C6400, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x140), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x006C6E00, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x2FF), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x00437800, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x309), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x00457800, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x313), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x00467800, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x38), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x006E6400, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x31D), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x00177800, - (void*)NULL, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x38), - (void*)0x0003FFFF, - (void*)0xFFFFFFFF, - (void*)0xFFFFFFFF, - (void*)0x006E6400, - (void*)NULL, +SECTION_DATA dItem_itemResource dItem_data::item_resource[255] = { + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x3C, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x1, 0xFF, 0x002D, 0x3C, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x2, 0xFF, 0x002D, 0x3C, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x3, 0xFF, 0x002D, 0x3C, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x4, 0xFF, 0x002D, 0x3C, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x5, 0xFF, 0x002D, 0x3C, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x6, 0xFF, 0x002D, 0x3C, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"O_gD_bomb", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x000C, 0x64, 0x019F}, + {"O_gD_bomb", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x000C, 0x64, 0x019F}, + {"O_gD_bomb", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x000C, 0x64, 0x019F}, + {"O_gD_bomb", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x000C, 0x64, 0x019F}, + {"O_gD_arow", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0053, 0x64, 0x0000}, + {"O_gD_arow", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0053, 0x64, 0x0000}, + {"O_gD_arow", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0053, 0x64, 0x0000}, + {"O_gD_arow", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0053, 0x64, 0x0000}, + {"O_gD_tane", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x005C, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"O_gD_PG", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x000D, 0x64, 0x0000}, + {"O_gD_PG", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x000D, 0x64, 0x0000}, + {"O_gD_PG", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x000D, 0x64, 0x0000}, + {"O_gD_PG", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x000D, 0x64, 0x0000}, + {"O_gD_BI", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x000B, 0x64, 0x0000}, + {"O_gD_BI", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x000B, 0x64, 0x0000}, + {"O_gD_BI", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x000B, 0x64, 0x0000}, + {"O_gD_BI", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x000B, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"T_gD_key", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x006E, 0x64, 0x0079}, + {"O_gD_hutk", 0x0008, 0xFFFF, 0x0005, 0x000B, 0xFFFF, 0xFF, 0xFF, 0x0050, 0x64, 0x0194}, + {"O_gD_hutu", 0x0008, 0xFFFF, 0x0005, 0x000B, 0xFFFF, 0xFF, 0xFF, 0x0051, 0x64, 0x0000}, + {"T_gD_map", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0071, 0x64, 0x0197}, + {"T_gD_kmps", 0x0007, 0xFFFF, 0x0004, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x006F, 0x64, 0x0198}, + {"O_gD_TKS", 0x0008, 0xFFFF, 0x0005, 0xFFFF, 0x000B, 0xFF, 0xFF, 0x0028, 0x64, 0x0191}, + {"T_gD_bkey", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0021, 0x64, 0xFFFF}, + {"O_gD_TKC", 0x0009, 0x000C, 0x0006, 0xFFFF, 0x000F, 0xFF, 0xFF, 0x0026, 0x64, 0x0191}, + {"O_gD_SWA", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0070, 0x6E, 0x0195}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x0042, 0x6E, 0x01B2}, + {"T_gD_SHB", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0074, 0x6E, 0x01B5}, + {"O_gD_SHC", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0040, 0x6E, 0x0196}, + {"O_gD_SHA", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x003C, 0x64, 0x01B4}, + {"O_gD_mem2", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0022, 0x64, 0x01A8}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x006B, 0x64, 0x0192}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x006B, 0x64, 0x0000}, + {"O_gD_marm", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0041, 0x64, 0x01A9}, + {"O_gD_zora", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x004D, 0x64, 0x01AA}, + {"O_gD_Injy", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x002D, 0x64, 0x0000}, + {"O_gD_TKS", 0x0008, 0xFFFF, 0x0005, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0028, 0x64, 0x0000}, + {"O_gD_puL2", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0047, 0x64, 0x0000}, + {"O_gD_puL2", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0048, 0x64, 0x0000}, + {"O_gD_puL3", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0049, 0x64, 0x01AD}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x0050, 0x64, 0x019F}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x0050, 0x64, 0x01AF}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x0050, 0x64, 0x01B0}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x0050, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x0072, 0x6E, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x01B3}, + {"O_gD_sang", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x002A, 0x64, 0x0194}, + {"O_gD_hawk", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0059, 0x64, 0x0000}, + {"O_gD_SWB", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0024, 0x6E, 0x0000}, + {"O_gD_boom", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0062, 0x6E, 0x01AB}, + {"O_gD_SP", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x002B, 0x5F, 0x01A6}, + {"O_gD_IB", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0020, 0x78, 0x0000}, + {"O_gD_bow", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0069, 0x64, 0x01A5}, + {"O_gD_HS", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x006A, 0x78, 0x01AC}, + {"O_gD_boot", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0025, 0x64, 0x01A7}, + {"O_gD_CROD", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0016, 0x6E, 0x019E}, + {"O_gD_HS", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x002C, 0x82, 0x01B5}, + {"T_gD_kt", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x006C, 0x6E, 0x0193}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x0042, 0x6E, 0x01B6}, + {"O_gD_uktr", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0018, 0x64, 0x01B7}, + {"O_gD_pach", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x005B, 0x64, 0x01B8}, + {"O_gD_CROD", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0016, 0x6E, 0x01B9}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x01BA}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0197}, + {"O_gD_bmL2", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0056, 0x64, 0x0198}, + {"O_gD_bomc", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0, 0xFF, 0x0055, 0x64, 0x01BD}, + {"O_gD_bomc", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0055, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x0056, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"O_gD_quL1", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x004A, 0x64, 0x01B1}, + {"O_gD_quL2", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x004B, 0x64, 0x01F0}, + {"O_gD_quL3", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x004C, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x004E, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x000C, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x0059, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x0019, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x001B, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x001A, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x001C, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x001D, 0x64, 0x0000}, + {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0x0, 0x2, 0x0011, 0x50, 0x01BE}, + {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0x0, 0x0, 0x0011, 0x50, 0x01BF}, + {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0x1, 0x0, 0x0011, 0x50, 0x01C0}, + {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0x2, 0x0, 0x0011, 0x50, 0x01C1}, + {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0x3, 0x0, 0x0011, 0x50, 0x0000}, + {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0x3, 0x1, 0x0012, 0x50, 0x0000}, + {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0x4, 0x0, 0x0011, 0x50, 0x01A1}, + {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0x5, 0x0, 0x0011, 0x50, 0x01AE}, + {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0x4, 0x0, 0x0011, 0x50, 0x01A1}, + {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0x0, 0x0, 0x0011, 0x50, 0x01BF}, + {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0x8, 0x0, 0x0011, 0x50, 0x0000}, + {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0x5, 0x0, 0x0011, 0x50, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x0011, 0x50, 0x0000}, + {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0x5, 0x0, 0x0011, 0x50, 0x0000}, + {"Obj_kntr", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x006C, 0x6E, 0x0000}, + {"Obj_kntr", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x006C, 0x6E, 0x0000}, + {"O_gD_bmL2", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x000C, 0x64, 0x0198}, + {"O_gD_PG", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x000D, 0x64, 0x0000}, + {"O_gD_BI", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x000B, 0x64, 0x0000}, + {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0xB, 0x0, 0x0011, 0x50, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x0011, 0x50, 0x0000}, + {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0xB, 0x0, 0x0011, 0x50, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x0011, 0x50, 0x0000}, + {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0x7, 0x0, 0x0011, 0x50, 0x01BF}, + {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0x0, 0x0, 0x0011, 0x50, 0x01BF}, + {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0x2, 0x0, 0x0011, 0x50, 0x01BF}, + {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0x1, 0x0, 0x0011, 0x50, 0x01BF}, + {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0x4, 0x0, 0x0011, 0x50, 0x01BF}, + {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0x6, 0x0, 0x0011, 0x50, 0x01BF}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x0013, 0x50, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x0013, 0x50, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x0013, 0x50, 0x01CF}, + {"O_gD_lttr", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x005A, 0x64, 0x0000}, + {"O_gD_bill", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0054, 0x64, 0x0000}, + {"O_gD_wood", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0058, 0x64, 0x0000}, + {"O_gD_pend", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x005D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x005D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x01D3}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x01D2}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"O_gD_mem2", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0022, 0x64, 0x0000}, + {"O_gD_mem2", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0022, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x006C, 0x6E, 0x0000}, + {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0x4, 0x0, 0x0011, 0x50, 0x01A1}, + {"O_gD_hk_s", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0011, 0x50, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x0011, 0x50, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"N_gD_Lpod", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0052, 0x64, 0x0000}, + {"N_gD_Lpod", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0052, 0x64, 0x0000}, + {"N_gD_Lpod", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0052, 0x64, 0x0000}, + {"N_gD_Lpod", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0052, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x0011, 0x50, 0x0000}, + {"O_gD_kabo", 0x0005, 0x000B, 0xFFFF, 0x0008, 0xFFFF, 0xFF, 0xFF, 0x0030, 0x50, 0x0000}, + {"O_gD_kabm", 0x0005, 0x000B, 0xFFFF, 0x0008, 0xFFFF, 0xFF, 0xFF, 0x002F, 0x50, 0x0000}, + {"O_gD_choo", 0x0009, 0x000F, 0x0006, 0x000C, 0xFFFF, 0xFF, 0xFF, 0x0008, 0x50, 0x0000}, + {"O_gD_chom", 0x0009, 0x000F, 0x0006, 0x000C, 0xFFFF, 0xFF, 0xFF, 0x0007, 0x50, 0x0000}, + {"O_gD_kuwo", 0x0005, 0x000B, 0xFFFF, 0x0008, 0xFFFF, 0xFF, 0xFF, 0x0038, 0x50, 0x0000}, + {"O_gD_kuwm", 0x0005, 0x000B, 0xFFFF, 0x0008, 0xFFFF, 0xFF, 0xFF, 0x0037, 0x50, 0x0000}, + {"O_gD_bato", 0x0005, 0x000B, 0xFFFF, 0x0008, 0xFFFF, 0xFF, 0xFF, 0x0006, 0x50, 0x0000}, + {"O_gD_batm", 0x0005, 0x000B, 0xFFFF, 0x0008, 0xFFFF, 0xFF, 0xFF, 0x0005, 0x50, 0x0000}, + {"O_gD_nano", 0x0005, 0x000B, 0xFFFF, 0x0008, 0xFFFF, 0xFF, 0xFF, 0x003B, 0x50, 0x0000}, + {"O_gD_nanm", 0x0005, 0x000B, 0xFFFF, 0x0008, 0xFFFF, 0xFF, 0xFF, 0x003A, 0x50, 0x0000}, + {"O_gD_dano", 0x0005, 0x000B, 0xFFFF, 0x0008, 0xFFFF, 0xFF, 0xFF, 0x000A, 0x50, 0x0000}, + {"O_gD_danm", 0x0005, 0x000B, 0xFFFF, 0x0008, 0xFFFF, 0xFF, 0xFF, 0x0009, 0x50, 0x0000}, + {"O_gD_kamo", 0x0005, 0x000B, 0xFFFF, 0x0008, 0xFFFF, 0xFF, 0xFF, 0x0034, 0x50, 0x0000}, + {"O_gD_kamm", 0x0005, 0x000B, 0xFFFF, 0x0008, 0xFFFF, 0xFF, 0xFF, 0x0033, 0x50, 0x0000}, + {"O_gD_teno", 0x0005, 0x000B, 0xFFFF, 0x0008, 0xFFFF, 0xFF, 0xFF, 0x005F, 0x50, 0x0000}, + {"O_gD_tenm", 0x0005, 0x000B, 0xFFFF, 0x0008, 0xFFFF, 0xFF, 0xFF, 0x005E, 0x50, 0x0000}, + {"O_gD_kato", 0x0005, 0x000B, 0xFFFF, 0x0008, 0xFFFF, 0xFF, 0xFF, 0x0036, 0x50, 0x0000}, + {"O_gD_katm", 0x0005, 0x000B, 0xFFFF, 0x0008, 0xFFFF, 0xFF, 0xFF, 0x0035, 0x50, 0x0000}, + {"O_gD_tono", 0x0009, 0x000F, 0x0006, 0x000C, 0xFFFF, 0xFF, 0xFF, 0x0061, 0x50, 0x0000}, + {"O_gD_tonm", 0x0009, 0x000F, 0x0006, 0x000C, 0xFFFF, 0xFF, 0xFF, 0x0060, 0x50, 0x0000}, + {"O_gD_ario", 0x0005, 0x000B, 0xFFFF, 0x0008, 0xFFFF, 0xFF, 0xFF, 0x0004, 0x50, 0x0000}, + {"O_gD_arim", 0x0005, 0x000B, 0xFFFF, 0x0008, 0xFFFF, 0xFF, 0xFF, 0x0003, 0x50, 0x0000}, + {"O_gD_kago", 0x0009, 0x000F, 0x0006, 0x000C, 0xFFFF, 0xFF, 0xFF, 0x0032, 0x50, 0x0000}, + {"O_gD_kagm", 0x0009, 0x000F, 0x0006, 0x000C, 0xFFFF, 0xFF, 0xFF, 0x0031, 0x50, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"O_gD_tama", 0x0005, 0x000B, 0xFFFF, 0x0008, 0xFFFF, 0xFF, 0xFF, 0x003E, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, + {"O_gD_komo", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x004F, 0x64, 0x0000}, + {"O_gD_komo", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x004F, 0x64, 0x0000}, + {"O_gD_komo", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x004F, 0x64, 0x0000}, + {"O_gD_TKC", 0x0009, 0x000C, 0x0006, 0xFFFF, 0x000F, 0xFF, 0xFF, 0x0026, 0x64, 0x0191}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x4, 0xFF, 0x002D, 0x3C, 0x0000}, + {"T_gD_key", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x006E, 0x64, 0x0000}, + {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0x0, 0x2, 0x0011, 0x50, 0x0000}, + {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0x0, 0x2, 0x0011, 0x50, 0x0000}, + {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0x0, 0x2, 0x0011, 0x50, 0x0000}, + {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0x0, 0x2, 0x0011, 0x50, 0x0000}, + {"T_gD_key", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x006E, 0x64, 0x0000}, + {"O_gD_pump", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0029, 0x64, 0x0000}, + {"O_gD_chee", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0015, 0x64, 0x0000}, + {"O_gD_bkey", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x003F, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x003C, 0x64, 0x0000}, + {"T_gD_kt", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x006C, 0x6E, 0x0000}, + {"D_MKey_01", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0043, 0x78, 0x0000}, + {"D_MKey_02", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0045, 0x78, 0x0000}, + {"D_MKey_03", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0046, 0x78, 0x0000}, + {"T_gD_key", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x006E, 0x64, 0x0000}, + {"O_gD_Mkey", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0017, 0x78, 0x0000}, + {"T_gD_key", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x006E, 0x64, 0x0000}, }; /* 803ADD88-803AED78 -00001 0FF0+00 0/0 3/3 14/14 .data field_item_res__10dItem_data */ -SECTION_DATA void* dItem_data::field_item_res[1020] = { - (void*)(((char*)&d_d_item_data__stringBase0) + 0x327), - (void*)0x0014FFFF, - (void*)0x0030FF00, - (void*)0x10000000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x327), - (void*)0x0017FFFF, - (void*)0x00310000, - (void*)0x10000000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x327), - (void*)0x0017FFFF, - (void*)0x00310100, - (void*)0x10000000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x327), - (void*)0x0017FFFF, - (void*)0x00310200, - (void*)0x10000000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x327), - (void*)0x0017FFFF, - (void*)0x00310300, - (void*)0x10000000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x327), - (void*)0x0017FFFF, - (void*)0x00310400, - (void*)0x10000000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x327), - (void*)0x0017FFFF, - (void*)0x00310500, - (void*)0x10000000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x327), - (void*)0x0017FFFF, - (void*)0x00310600, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x327), - (void*)0x0023FFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x327), - (void*)0x0023FFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x327), - (void*)0x0023FFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x327), - (void*)0x0022FFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x327), - (void*)0x0024FFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x327), - (void*)0x0014FFFF, - (void*)0x0030FF00, - (void*)0x10000000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x32E), - (void*)0x0003FFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x327), - (void*)0x0015000D, - (void*)0x0033FF00, - (void*)0x10000000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x327), - (void*)0x0016000E, - (void*)0x0034FF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x336), - (void*)0x0003FFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x33F), - (void*)0x0003FFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x347), - (void*)0x0003FFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x34F), - (void*)0x0003FFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0xF8), - (void*)0x0003FFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x358), - (void*)0x0003FFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x35F), - (void*)0x0004FFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x358), - (void*)0x0003FFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, - (void*)(((char*)&d_d_item_data__stringBase0) + 0x32E), - (void*)0x0003FFFF, - (void*)0xFFFFFF00, - (void*)0x10000000, +SECTION_DATA dItem_fieldItemResource dItem_data::field_item_res[255] = { + {"Always", 0x0014, 0xFFFF, 0x0030, 0xFF, 0x1000}, + {"Always", 0x0017, 0xFFFF, 0x0031, 0x0, 0x1000}, + {"Always", 0x0017, 0xFFFF, 0x0031, 0x1, 0x1000}, + {"Always", 0x0017, 0xFFFF, 0x0031, 0x2, 0x1000}, + {"Always", 0x0017, 0xFFFF, 0x0031, 0x3, 0x1000}, + {"Always", 0x0017, 0xFFFF, 0x0031, 0x4, 0x1000}, + {"Always", 0x0017, 0xFFFF, 0x0031, 0x5, 0x1000}, + {"Always", 0x0017, 0xFFFF, 0x0031, 0x6, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {"Always", 0x0023, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {"Always", 0x0023, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {"Always", 0x0023, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {"Always", 0x0022, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {"Always", 0x0024, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {"Always", 0x0014, 0xFFFF, 0x0030, 0xFF, 0x1000}, + {"T_g_key", 0x0003, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {"Always", 0x0015, 0x000D, 0x0033, 0xFF, 0x1000}, + {"Always", 0x0016, 0x000E, 0x0034, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {"T_g_bkey", 0x0003, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {"O_g_SWA", 0x0003, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {"T_g_SHB", 0x0003, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {"O_g_ZORA", 0x0003, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {"O_gD_SWB", 0x0003, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {"T_g_kt", 0x0003, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {"O_wood", 0x0004, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {"T_g_kt", 0x0003, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {"T_g_key", 0x0003, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, }; /* 803AED78-803AF178 00BE98 03FC+04 0/0 9/9 9/9 .data item_info__10dItem_data */ -SECTION_DATA u8 dItem_data::item_info[1020 + 4 /* padding */] = { - 0x0F, - 0x28, - 0x1E, - 0x04, - 0x14, - 0x46, - 0x1E, - 0x04, - 0x14, - 0x46, - 0x1E, - 0x04, - 0x14, - 0x46, - 0x1E, - 0x04, - 0x14, - 0x46, - 0x1E, - 0x04, - 0x14, - 0x46, - 0x1E, - 0x04, - 0x14, - 0x46, - 0x1E, - 0x04, - 0x14, - 0x46, - 0x1E, - 0x04, - 0x14, - 0x28, - 0x1E, - 0x04, - 0x14, - 0x28, - 0x1E, - 0x04, - 0x28, - 0x3C, - 0x1E, - 0x00, - 0x28, - 0x3C, - 0x1E, - 0x00, - 0x28, - 0x3C, - 0x1E, - 0x00, - 0x28, - 0x3C, - 0x1E, - 0x00, - 0x14, - 0x50, - 0x32, - 0x00, - 0x14, - 0x50, - 0x32, - 0x00, - 0x14, - 0x50, - 0x32, - 0x00, - 0x14, - 0x50, - 0x32, - 0x00, - 0x23, - 0x46, - 0x1E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x96, - 0x28, - 0x1E, - 0x11, - 0xE6, - 0x64, - 0x32, - 0x15, - 0xE6, - 0x64, - 0x32, - 0x15, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x44, - 0x00, - 0x00, - 0x00, - 0x00, - 0x96, - 0x00, - 0x00, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x96, - 0x3C, - 0x3C, - 0x11, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x96, - 0xFF, - 0xFF, - 0x13, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x96, - 0x32, - 0x14, - 0x15, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x46, - 0x1E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x1E, - 0x32, - 0x28, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x96, - 0x32, - 0x14, - 0x15, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, - 0x00, +SECTION_DATA dItem_itemInfo dItem_data::item_info[255] = { + {15, 40, 30, 4}, {20, 70, 30, 4}, {20, 70, 30, 4}, {20, 70, 30, 4}, {20, 70, 30, 4}, + {20, 70, 30, 4}, {20, 70, 30, 4}, {20, 70, 30, 4}, {20, 40, 30, 4}, {20, 40, 30, 4}, + {40, 60, 30, 0}, {40, 60, 30, 0}, {40, 60, 30, 0}, {40, 60, 30, 0}, {20, 80, 50, 0}, + {20, 80, 50, 0}, {20, 80, 50, 0}, {20, 80, 50, 0}, {35, 70, 30, 0}, {0, 0, 0, 4}, + {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, + {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, + {0, 0, 0, 4}, {0, 0, 0, 4}, {150, 40, 30, 17}, {230, 100, 50, 21}, {230, 100, 50, 21}, + {0, 0, 0, 64}, {0, 0, 0, 68}, {0, 0, 0, 0}, {150, 0, 0, 85}, {0, 0, 0, 0}, + {0, 0, 0, 0}, {0, 0, 0, 4}, {150, 60, 60, 17}, {0, 0, 0, 0}, {0, 0, 0, 0}, + {0, 0, 0, 0}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 0}, {0, 0, 0, 0}, + {0, 0, 0, 4}, {0, 0, 0, 0}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, + {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, + {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 0}, {0, 0, 0, 0}, {150, 255, 255, 19}, + {0, 0, 0, 64}, {0, 0, 0, 4}, {0, 0, 0, 64}, {0, 0, 0, 64}, {0, 0, 0, 64}, + {0, 0, 0, 64}, {0, 0, 0, 64}, {150, 50, 20, 21}, {0, 0, 0, 4}, {0, 0, 0, 0}, + {0, 0, 0, 0}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 0}, + {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 0}, + {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, + {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, + {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, + {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, + {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, + {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, + {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, + {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, + {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, + {0, 70, 30, 0}, {0, 0, 0, 0}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, + {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, + {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 0}, + {0, 0, 0, 0}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, + {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, + {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, + {30, 50, 40, 5}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, + {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, + {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, + {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, + {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, + {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, + {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, + {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, + {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, + {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, + {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, + {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, + {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 0}, + {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, + {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 0}, {0, 0, 0, 0}, + {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 4}, {0, 0, 0, 0}, {0, 0, 0, 4}, + {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 4}, {0, 0, 0, 0}, {0, 0, 0, 4}, + {0, 0, 0, 0}, {0, 0, 0, 4}, {0, 0, 0, 4}, {150, 50, 20, 21}, {0, 0, 0, 0}, + {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, }; /* 8037AD68-8037AD68 0073C8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/src/d/d_lib.cpp b/src/d/d_lib.cpp index 22a375a9f9..882afebe9a 100644 --- a/src/d/d_lib.cpp +++ b/src/d/d_lib.cpp @@ -287,7 +287,7 @@ asm void dLib_checkActorInRectangle(fopAc_ac_c* param_0, fopAc_ac_c* param_1, cX #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dLib_getExpandSizeFromAramArchive(JKRAramArchive* param_0, char const* param_1) { +asm u32 dLib_getExpandSizeFromAramArchive(JKRAramArchive* param_0, char const* param_1) { nofralloc #include "asm/d/d_lib/dLib_getExpandSizeFromAramArchive__FP14JKRAramArchivePCc.s" } diff --git a/src/d/d_model.cpp b/src/d/d_model.cpp index fb8b968a2f..ce00b54a32 100644 --- a/src/d/d_model.cpp +++ b/src/d/d_model.cpp @@ -8,54 +8,6 @@ #include "dolphin/types.h" // -// Types: -// - -struct dStage_roomControl_c { - static u8 mStatus[65792]; -}; - -struct dMdl_obj_c {}; - -struct dKy_tevstr_c {}; - -struct J3DModelData {}; - -struct dMdl_mng_c { - /* 8009C6DC */ void search(J3DModelData*, u16, dKy_tevstr_c*); - /* 8009C724 */ void entry(J3DModelData*, u16, dKy_tevstr_c*); - /* 8009C8D8 */ void entry(J3DModelData*, u16, int); - /* 8009C7AC */ void create(); - /* 8009C864 */ void remove(); - /* 8009C8C0 */ void reset(); - - static u8 m_myObj[4 + 4 /* padding */]; -}; - -struct dMdl_c { - /* 8009C4FC */ void draw(); - /* 8009C650 */ void create(J3DModelData*, u16, dKy_tevstr_c*); - /* 8009C668 */ void entryObj(dMdl_obj_c*); - /* 8009C808 */ ~dMdl_c(); - /* 8009C930 */ dMdl_c(); -}; - -struct J3DShape { - /* 80315300 */ void loadPreDrawSetting() const; - - static u8 sOldVcdVatCmd[4]; -}; - -struct J3DPacket; -struct J3DDrawBuffer { - /* 8032548C */ void entryImm(J3DPacket*, u16); -}; - -struct J3DPacket { - /* 80312750 */ bool entry(J3DDrawBuffer*); -}; - -// // Forward References: // @@ -84,11 +36,6 @@ extern "C" void __dl__FPv(); extern "C" bool entry__9J3DPacketFP13J3DDrawBuffer(); extern "C" void loadPreDrawSetting__8J3DShapeCFv(); extern "C" void entryImm__13J3DDrawBufferFP9J3DPacketUs(); -extern "C" void PSMTXConcat(); -extern "C" void GXSetChanAmbColor(); -extern "C" void GXSetChanMatColor(); -extern "C" void GXLoadPosMtxImm(); -extern "C" void GXLoadNrmMtxImm(); extern "C" void __destroy_arr(); extern "C" void __construct_array(); extern "C" void _savegpr_27(); @@ -97,144 +44,147 @@ extern "C" void _restgpr_27(); extern "C" void _restgpr_28(); extern "C" extern void* __vt__9J3DPacket[5]; extern "C" u8 mStatus__20dStage_roomControl_c[65792]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; -extern "C" extern u8 j3dSys[284]; -extern "C" extern u32 g_whiteColor; extern "C" u8 sOldVcdVatCmd__8J3DShape[4]; // // Declarations: // -/* ############################################################################################## */ -/* 80456B70-80456B78 000010 0004+04 1/1 0/0 0/0 .sbss2 @3621 */ -SECTION_SBSS2 static u8 lit_3621[4 + 4 /* padding */]; - /* 8009C4FC-8009C650 096E3C 0154+00 1/0 0/0 0/0 .text draw__6dMdl_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMdl_c::draw() { - nofralloc -#include "asm/d/d_model/draw__6dMdl_cFv.s" +void dMdl_c::draw() { + j3dSys.setVtxPos(mpModelData->getVtxPosArray()); + j3dSys.setVtxNrm(mpModelData->getVtxNrmArray()); + j3dSys.setVtxCol(mpModelData->getVtxColorArray(0)); + J3DShape::resetVcdVatCache(); + + J3DShape* shape = mpModelData->getMaterialNodePointer(mMaterialId)->getShape(); + mpModelData->getMaterialNodePointer(mMaterialId)->loadSharedDL(); + shape->loadPreDrawSetting(); + + GXColor amb_color = {mpTevstr->field_0x348.r, mpTevstr->field_0x348.g, mpTevstr->field_0x348.b, + mpTevstr->field_0x348.a}; + GXSetChanAmbColor(GX_COLOR0A0, amb_color); + GXSetChanMatColor(GX_COLOR0A0, g_whiteColor); + dKy_setLight_nowroom_actor(mpTevstr); + dKy_setLight_again(); + dKy_GxFog_tevstr_set(mpTevstr); + + Mtx m; + for (dMdl_obj_c* obj = mpModelObj; obj != NULL; obj = obj->mpObj) { + PSMTXConcat(j3dSys.getViewMtx(), obj->getMtx(), m); + GXLoadPosMtxImm(m, GX_PNMTX0); + GXLoadNrmMtxImm(m, GX_PNMTX0); + shape->simpleDrawCache(); + } + + field_0x1a = false; } -#pragma pop /* 8009C650-8009C668 096F90 0018+00 1/1 0/0 1/1 .text * create__6dMdl_cFP12J3DModelDataUsP12dKy_tevstr_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMdl_c::create(J3DModelData* param_0, u16 param_1, dKy_tevstr_c* param_2) { - nofralloc -#include "asm/d/d_model/create__6dMdl_cFP12J3DModelDataUsP12dKy_tevstr_c.s" +void dMdl_c::create(J3DModelData* i_modelData, u16 i_materialId, dKy_tevstr_c* i_tevstr) { + mpModelData = i_modelData; + mMaterialId = i_materialId; + mpTevstr = i_tevstr; + field_0x1a = false; } -#pragma pop /* 8009C668-8009C6DC 096FA8 0074+00 0/0 0/0 5/5 .text entryObj__6dMdl_cFP10dMdl_obj_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMdl_c::entryObj(dMdl_obj_c* param_0) { - nofralloc -#include "asm/d/d_model/entryObj__6dMdl_cFP10dMdl_obj_c.s" +void dMdl_c::entryObj(dMdl_obj_c* i_obj) { + if (!field_0x1a) { + dComIfGd_getListPacket()->entryImm(this, 0); + field_0x1a = true; + mpModelObj = NULL; + } + + i_obj->mpObj = mpModelObj; + mpModelObj = i_obj; } -#pragma pop /* 8009C6DC-8009C724 09701C 0048+00 1/1 0/0 0/0 .text * search__10dMdl_mng_cFP12J3DModelDataUsP12dKy_tevstr_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMdl_mng_c::search(J3DModelData* param_0, u16 param_1, dKy_tevstr_c* param_2) { - nofralloc -#include "asm/d/d_model/search__10dMdl_mng_cFP12J3DModelDataUsP12dKy_tevstr_c.s" +dMdl_c* dMdl_mng_c::search(J3DModelData* i_modelData, u16 i_materialId, dKy_tevstr_c* i_tevstr) { + dMdl_c* model = field_0x0; + for (int i = field_0x80; i > 0; i--) { + if (model->getModelData() == i_modelData && model->getMaterialId() == i_materialId && + model->getTevstr() == i_tevstr) { + return model; + } + model++; + } + return NULL; } -#pragma pop /* 8009C724-8009C7AC 097064 0088+00 1/1 0/0 0/0 .text * entry__10dMdl_mng_cFP12J3DModelDataUsP12dKy_tevstr_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMdl_mng_c::entry(J3DModelData* param_0, u16 param_1, dKy_tevstr_c* param_2) { - nofralloc -#include "asm/d/d_model/entry__10dMdl_mng_cFP12J3DModelDataUsP12dKy_tevstr_c.s" +dMdl_c* dMdl_mng_c::entry(J3DModelData* i_modelData, u16 i_materialId, dKy_tevstr_c* i_tevstr) { + dMdl_c* model = search(i_modelData, i_materialId, i_tevstr); + + if (model == NULL) { + if (field_0x80 >= 4) { + return NULL; + } else { + model = &field_0x0[field_0x80]; + model->create(i_modelData, i_materialId, i_tevstr); + field_0x80++; + } + } + + return model; } -#pragma pop /* ############################################################################################## */ /* 80450FA0-80450FA8 0004A0 0004+04 4/4 0/0 0/0 .sbss m_myObj__10dMdl_mng_c */ -u8 dMdl_mng_c::m_myObj[4 + 4 /* padding */]; +dMdl_mng_c* dMdl_mng_c::m_myObj; /* 8009C7AC-8009C808 0970EC 005C+00 0/0 1/1 0/0 .text create__10dMdl_mng_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMdl_mng_c::create() { - nofralloc -#include "asm/d/d_model/create__10dMdl_mng_cFv.s" +void dMdl_mng_c::create() { + m_myObj = new dMdl_mng_c(); } -#pragma pop - -/* ############################################################################################## */ -/* 803AF978-803AF990 00CA98 0014+04 2/2 0/0 1/1 .data __vt__6dMdl_c */ -SECTION_DATA extern void* __vt__6dMdl_c[5 + 1 /* padding */] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)entry__9J3DPacketFP13J3DDrawBuffer, - (void*)draw__6dMdl_cFv, - (void*)__dt__6dMdl_cFv, - /* padding */ - NULL, -}; /* 8009C808-8009C864 097148 005C+00 3/2 0/0 0/0 .text __dt__6dMdl_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dMdl_c::~dMdl_c() { - nofralloc -#include "asm/d/d_model/__dt__6dMdl_cFv.s" -} -#pragma pop +dMdl_c::~dMdl_c() {} /* 8009C864-8009C8C0 0971A4 005C+00 0/0 1/1 0/0 .text remove__10dMdl_mng_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMdl_mng_c::remove() { - nofralloc -#include "asm/d/d_model/remove__10dMdl_mng_cFv.s" +void dMdl_mng_c::remove() { + if (m_myObj != NULL) { + delete m_myObj; + m_myObj = NULL; + } } -#pragma pop /* 8009C8C0-8009C8D8 097200 0018+00 0/0 1/1 0/0 .text reset__10dMdl_mng_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMdl_mng_c::reset() { - nofralloc -#include "asm/d/d_model/reset__10dMdl_mng_cFv.s" +void dMdl_mng_c::reset() { + if (m_myObj == NULL) { + return; + } + + m_myObj->field_0x80 = 0; } -#pragma pop /* 8009C8D8-8009C930 097218 0058+00 0/0 0/0 4/4 .text entry__10dMdl_mng_cFP12J3DModelDataUsi */ +// missing mr instructions +#ifdef NONMATCHING +dMdl_c* dMdl_mng_c::entry(J3DModelData* i_modelData, u16 i_materialId, int i_roomNo) { + if (m_myObj == NULL) { + return NULL; + } + + return entry(i_modelData, i_materialId, dComIfGp_roomControl_getTevStr(i_roomNo)); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMdl_mng_c::entry(J3DModelData* param_0, u16 param_1, int param_2) { +asm dMdl_c* dMdl_mng_c::entry(J3DModelData* param_0, u16 param_1, int param_2) { nofralloc #include "asm/d/d_model/entry__10dMdl_mng_cFP12J3DModelDataUsi.s" } #pragma pop +#endif /* 8009C930-8009C964 097270 0034+00 1/1 0/0 0/0 .text __ct__6dMdl_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dMdl_c::dMdl_c() { - nofralloc -#include "asm/d/d_model/__ct__6dMdl_cFv.s" +dMdl_c::dMdl_c() { + mpModelData = NULL; + mMaterialId = 0; } -#pragma pop diff --git a/src/d/d_simple_model.cpp b/src/d/d_simple_model.cpp index 46f79ed3fe..9ad7bf70ef 100644 --- a/src/d/d_simple_model.cpp +++ b/src/d/d_simple_model.cpp @@ -4,100 +4,16 @@ // #include "d/d_simple_model.h" +#include "d/com/d_com_inf_game.h" #include "dol2asm.h" #include "dolphin/types.h" - -// -// Types: -// - -struct modelList_c {}; - -struct J3DModelData {}; - -struct diff_model_c { - /* 80048D60 */ diff_model_c(); - /* 800490EC */ void create(J3DModelData*, int, u8); - /* 800491F4 */ void getModelData(); - /* 80049210 */ void remove(int); - /* 80049270 */ void draw(); - /* 80049368 */ void init(); - /* 80049388 */ void isSame(J3DModelData*, int); - /* 800493FC */ void getRoomNo(); - /* 80049408 */ void insert(modelList_c*); -}; - -struct dStage_roomControl_c { - static u8 mStatus[65792]; -}; - -struct J3DModel {}; - -struct dSmplMdl_draw_c { - /* 80048CB4 */ dSmplMdl_draw_c(); - /* 80048D80 */ ~dSmplMdl_draw_c(); - /* 80048E0C */ void draw(); - /* 80048EBC */ void entry(J3DModel*, int); - /* 80048F70 */ void addModel(J3DModelData*, int, u8); - /* 80049058 */ void removeModel(J3DModelData*, int); -}; - -struct dKy_tevstr_c {}; - -struct dScnKy_env_light_c { - /* 801A4DA0 */ void setLightTevColorType_MAJI(J3DModelData*, dKy_tevstr_c*); -}; - -struct JKRSolidHeap {}; - -// -// Forward References: -// - -extern "C" static void dSmplMdl_modelUpdateDL__FP8J3DModel(); -extern "C" void __ct__15dSmplMdl_draw_cFv(); -extern "C" void __ct__12diff_model_cFv(); -extern "C" void __dt__15dSmplMdl_draw_cFv(); -extern "C" void draw__15dSmplMdl_draw_cFv(); -extern "C" void entry__15dSmplMdl_draw_cFP8J3DModeli(); -extern "C" void addModel__15dSmplMdl_draw_cFP12J3DModelDataiUc(); -extern "C" void removeModel__15dSmplMdl_draw_cFP12J3DModelDatai(); -extern "C" void create__12diff_model_cFP12J3DModelDataiUc(); -extern "C" void getModelData__12diff_model_cFv(); -extern "C" void remove__12diff_model_cFi(); -extern "C" void draw__12diff_model_cFv(); -extern "C" void init__12diff_model_cFv(); -extern "C" void isSame__12diff_model_cFP12J3DModelDatai(); -extern "C" void getRoomNo__12diff_model_cFv(); -extern "C" void insert__12diff_model_cFP11modelList_c(); +#include "m_Do/m_Do_mtx.h" // // External References: // -extern "C" void mDoExt_modelUpdateDL__FP8J3DModel(); -extern "C" void mDoExt_createSolidHeapFromGameToCurrent__FUlUl(); -extern "C" void mDoExt_adjustSolidHeapToSystem__FP12JKRSolidHeap(); -extern "C" void mDoExt_destroySolidHeap__FP12JKRSolidHeap(); -extern "C" void mDoExt_restoreCurrentHeap__Fv(); -extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl(); -extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c(); -extern "C" void __dl__FPv(); -extern "C" void PSMTXCopy(); -extern "C" void __construct_array(); -extern "C" void _savegpr_25(); -extern "C" void _savegpr_26(); -extern "C" void _savegpr_28(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_25(); -extern "C" void _restgpr_26(); -extern "C" void _restgpr_28(); -extern "C" void _restgpr_29(); -extern "C" extern u8 g_mDoMtx_identity[48 + 24 /* padding */]; -extern "C" u8 mStatus__20dStage_roomControl_c[65792]; -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 dScnKy_env_light_c g_env_light; // // Declarations: @@ -105,181 +21,212 @@ extern "C" extern u8 j3dSys[284]; /* 80048C54-80048CB4 043594 0060+00 1/1 0/0 0/0 .text dSmplMdl_modelUpdateDL__FP8J3DModel */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void dSmplMdl_modelUpdateDL(J3DModel* param_0) { - nofralloc -#include "asm/d/d_simple_model/dSmplMdl_modelUpdateDL__FP8J3DModel.s" +static void dSmplMdl_modelUpdateDL(J3DModel* i_model) { + i_model->calc(); + i_model->entry(); + i_model->viewCalc(); } -#pragma pop - -/* ############################################################################################## */ -/* 803A82F8-803A8308 005418 000C+04 2/2 0/0 0/0 .data __vt__15dSmplMdl_draw_c */ -SECTION_DATA extern void* __vt__15dSmplMdl_draw_c[3 + 1 /* padding */] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__15dSmplMdl_draw_cFv, - /* padding */ - NULL, -}; /* 80048CB4-80048D60 0435F4 00AC+00 0/0 1/1 0/0 .text __ct__15dSmplMdl_draw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dSmplMdl_draw_c::dSmplMdl_draw_c() { - nofralloc -#include "asm/d/d_simple_model/__ct__15dSmplMdl_draw_cFv.s" +dSmplMdl_draw_c::dSmplMdl_draw_c() { + for (int i = 0; i < 8; i++) { + mModel[i].init(); + } + + for (int i = 0; i < 500; i++) { + mList[i].init(); + } + + mListCount = 0; } -#pragma pop /* 80048D60-80048D80 0436A0 0020+00 1/1 0/0 0/0 .text __ct__12diff_model_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm diff_model_c::diff_model_c() { - nofralloc -#include "asm/d/d_simple_model/__ct__12diff_model_cFv.s" +diff_model_c::diff_model_c() { + mpHeap = NULL; + mpModel = NULL; + mCreateNum = 0; + mpList = NULL; + mRoomNo = 63; } -#pragma pop /* 80048D80-80048E0C 0436C0 008C+00 1/0 0/0 0/0 .text __dt__15dSmplMdl_draw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dSmplMdl_draw_c::~dSmplMdl_draw_c() { - nofralloc -#include "asm/d/d_simple_model/__dt__15dSmplMdl_draw_cFv.s" +dSmplMdl_draw_c::~dSmplMdl_draw_c() { + for (int i = 0; i < 8; i++) { + if (mModel[i].getModel() != NULL) { + mModel[i].remove(1); + } + } } -#pragma pop /* 80048E0C-80048EBC 04374C 00B0+00 0/0 1/1 0/0 .text draw__15dSmplMdl_draw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dSmplMdl_draw_c::draw() { - nofralloc -#include "asm/d/d_simple_model/draw__15dSmplMdl_draw_cFv.s" +void dSmplMdl_draw_c::draw() { + for (int i = 0; i < 8; i++) { + if (mModel[i].getModel() != NULL) { + mModel[i].draw(); + } + } + mListCount = 0; + + for (int i = 0; i < 500; i++) { + mList[i].init(); + } + + for (int i = 0; i < 8; i++) { + mModel[i].insert(NULL); + } } -#pragma pop /* 80048EBC-80048F70 0437FC 00B4+00 0/0 1/1 0/0 .text entry__15dSmplMdl_draw_cFP8J3DModeli */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dSmplMdl_draw_c::entry(J3DModel* param_0, int param_1) { - nofralloc -#include "asm/d/d_simple_model/entry__15dSmplMdl_draw_cFP8J3DModeli.s" +void dSmplMdl_draw_c::entry(J3DModel* i_model, int roomNo) { + if (i_model != NULL && mListCount < 500) { + mList[mListCount].set(i_model); + for (int i = 0; i < 8; i++) { + if (mModel[i].isSame(i_model->getModelData(), roomNo)) { + mModel[i].insert(&mList[mListCount]); + break; + } + } + mListCount++; + } } -#pragma pop /* 80048F70-80049058 0438B0 00E8+00 0/0 1/1 0/0 .text * addModel__15dSmplMdl_draw_cFP12J3DModelDataiUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dSmplMdl_draw_c::addModel(J3DModelData* param_0, int param_1, u8 param_2) { - nofralloc -#include "asm/d/d_simple_model/addModel__15dSmplMdl_draw_cFP12J3DModelDataiUc.s" +BOOL dSmplMdl_draw_c::addModel(J3DModelData* i_modelData, int roomNo, u8 drawBG) { + for (int i = 0; i < 8; i++) { + if (mModel[i].isSame(i_modelData, roomNo)) { + return mModel[i].create(i_modelData, roomNo, drawBG) ? TRUE : FALSE; + } + } + + for (int i = 0; i < 8; i++) { + if (mModel[i].getModelData() == NULL) { + return mModel[i].create(i_modelData, roomNo, drawBG) ? TRUE : FALSE; + } + } + + return 0; } -#pragma pop /* 80049058-800490EC 043998 0094+00 0/0 1/1 0/0 .text * removeModel__15dSmplMdl_draw_cFP12J3DModelDatai */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dSmplMdl_draw_c::removeModel(J3DModelData* param_0, int param_1) { - nofralloc -#include "asm/d/d_simple_model/removeModel__15dSmplMdl_draw_cFP12J3DModelDatai.s" -} -#pragma pop +int dSmplMdl_draw_c::removeModel(J3DModelData* i_modelData, int roomNo) { + if (i_modelData == NULL) { + return 0; + } + + for (int i = 0; i < 8; i++) { + if (mModel[i].isSame(i_modelData, roomNo)) { + mModel[i].remove(0); + return 0; + } + } -/* ############################################################################################## */ -/* 80451F38-80451F40 000538 0004+04 1/1 0/0 0/0 .sdata2 @3763 */ -SECTION_SDATA2 static f32 lit_3763[1 + 1 /* padding */] = { - 0.0f, - /* padding */ - 0.0f, -}; + return 0; +} /* 800490EC-800491F4 043A2C 0108+00 1/1 0/0 0/0 .text create__12diff_model_cFP12J3DModelDataiUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void diff_model_c::create(J3DModelData* param_0, int param_1, u8 param_2) { - nofralloc -#include "asm/d/d_simple_model/create__12diff_model_cFP12J3DModelDataiUc.s" +BOOL diff_model_c::create(J3DModelData* i_modelData, int roomNo, u8 drawBG) { + if (mpHeap == NULL) { + mpHeap = mDoExt_createSolidHeapFromGameToCurrent(0x2000, 0x20); + + if (mpHeap != NULL) { + mpModel = mDoExt_J3DModel__create(i_modelData, 0x80000, 0x11000084); + + if (mpModel == NULL) { + remove(1); + mDoExt_restoreCurrentHeap(); + } else { + mpModel->setBaseScale(cXyz(0.0f, 0.0f, 0.0f)); + mpModel->i_setBaseTRMtx(g_mDoMtx_identity); + mCreateNum++; + mDoExt_adjustSolidHeapToSystem(mpHeap); + mRoomNo = roomNo; + mDrawBG = drawBG; + return 1; + } + } + } else { + mCreateNum++; + return 1; + } + + return 0; } -#pragma pop /* 800491F4-80049210 043B34 001C+00 2/2 0/0 0/0 .text getModelData__12diff_model_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void diff_model_c::getModelData() { - nofralloc -#include "asm/d/d_simple_model/getModelData__12diff_model_cFv.s" +J3DModelData* diff_model_c::getModelData() { + if (mpModel != NULL) { + return mpModel->getModelData(); + } + return NULL; } -#pragma pop /* 80049210-80049270 043B50 0060+00 3/3 0/0 0/0 .text remove__12diff_model_cFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void diff_model_c::remove(int param_0) { - nofralloc -#include "asm/d/d_simple_model/remove__12diff_model_cFi.s" +void diff_model_c::remove(int param_0) { + mCreateNum--; + + if (mCreateNum == 0 || param_0 != 0) { + JKRSolidHeap* heap = mpHeap; + if (heap != NULL) { + mDoExt_destroySolidHeap(heap); + init(); + } + } } -#pragma pop /* 80049270-80049368 043BB0 00F8+00 1/1 0/0 0/0 .text draw__12diff_model_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void diff_model_c::draw() { - nofralloc -#include "asm/d/d_simple_model/draw__12diff_model_cFv.s" +void diff_model_c::draw() { + modelList_c* list = mpList; + if (list != NULL) { + if (dComIfGp_roomControl_checkStatusFlag(getRoomNo(), 0x10)) { + dKy_tevstr_c* tevstr = dComIfGp_roomControl_getTevStr(getRoomNo()); + g_env_light.setLightTevColorType_MAJI(mpModel, tevstr); + + if (mDrawBG == 1) { + dComIfGd_setListBG(); + } + + for (; list != NULL; list = list->field_0x4) { + dSmplMdl_modelUpdateDL(list->mpModel); + } + mDoExt_modelUpdateDL(mpModel); + dComIfGd_setList(); + } + } } -#pragma pop /* 80049368-80049388 043CA8 0020+00 2/2 0/0 0/0 .text init__12diff_model_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void diff_model_c::init() { - nofralloc -#include "asm/d/d_simple_model/init__12diff_model_cFv.s" +void diff_model_c::init() { + mpModel = NULL; + mpHeap = NULL; + mpList = NULL; + mCreateNum = 0; + mRoomNo = 63; } -#pragma pop /* 80049388-800493FC 043CC8 0074+00 3/3 0/0 0/0 .text isSame__12diff_model_cFP12J3DModelDatai */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void diff_model_c::isSame(J3DModelData* param_0, int param_1) { - nofralloc -#include "asm/d/d_simple_model/isSame__12diff_model_cFP12J3DModelDatai.s" +BOOL diff_model_c::isSame(J3DModelData* i_modelData, int roomNo) { + if (mpModel != NULL) { + return getModelData() == i_modelData && roomNo == getRoomNo(); + } + + return FALSE; } -#pragma pop /* 800493FC-80049408 043D3C 000C+00 2/2 0/0 0/0 .text getRoomNo__12diff_model_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void diff_model_c::getRoomNo() { - nofralloc -#include "asm/d/d_simple_model/getRoomNo__12diff_model_cFv.s" +s32 diff_model_c::getRoomNo() { + return mRoomNo; } -#pragma pop /* 80049408-80049420 043D48 0018+00 2/2 0/0 0/0 .text insert__12diff_model_cFP11modelList_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void diff_model_c::insert(modelList_c* param_0) { - nofralloc -#include "asm/d/d_simple_model/insert__12diff_model_cFP11modelList_c.s" +void diff_model_c::insert(modelList_c* list) { + modelList_c* prev = mpList; + mpList = list; + + if (list == NULL) { + return; + } + + list->field_0x4 = prev; } -#pragma pop diff --git a/src/d/d_stage.cpp b/src/d/d_stage.cpp index 4d519a0d6b..cdcd6314fe 100644 --- a/src/d/d_stage.cpp +++ b/src/d/d_stage.cpp @@ -4,33 +4,20 @@ // #include "d/d_stage.h" -#include "d/d_procname.h" +#include "JSystem/JKernel/JKRAramArchive.h" +#include "SSystem/SComponent/c_malloc.h" #include "d/com/d_com_inf_game.h" +#include "d/com/d_com_static.h" +#include "d/d_procname.h" +#include "d/save/d_save_HIO.h" #include "dol2asm.h" #include "dolphin/types.h" +#include "f_op/f_op_kankyo_mng.h" +#include "f_op/f_op_msg_mng.h" #include "m_Do/m_Do_ext.h" #include "m_Do/m_Do_reset.h" // -// Types: -// - -struct daSus_c { - /* 80031434 */ void check(s8, cXyz const&); - /* 800315A4 */ void execute(); -}; - -struct dSvBit_HIO_c { - /* 8025C1F8 */ void init(); -}; - -struct cMl { - /* 80263228 */ void memalignB(int, u32); -}; - -struct JKRAramArchive {}; - -// // Forward References: // @@ -411,13 +398,17 @@ extern "C" void _restgpr_27(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); extern "C" extern J3DLightInfo const j3dDefaultLightInfo; -extern "C" extern u8 g_save_bit_HIO[1184 + 4 /* padding */]; +extern "C" extern dSvBit_HIO_c g_save_bit_HIO; extern "C" u8 mResetData__6mDoRst[4 + 4 /* padding */]; // // Declarations: // +inline u8 dStage_stagInfo_GetSaveTbl(stage_stag_info_class* param_0) { + return param_0->field_0x09 >> 1 & 0x1f; +} + inline dStage_stageDt_c* dComIfGp_getStage() { return &g_dComIfG_gameInfo.play.getStage(); } @@ -452,16 +443,14 @@ dStage_KeepDoorInfo* dStage_GetKeepDoorInfo() { return &DoorInfo; } -static u8 dStage_isBossStage(dStage_dt_c* param_0) { - u8 isBossStg; - stage_stag_info_class* pstag = param_0->getStagInfo(); +static u8 dStage_isBossStage(dStage_dt_c* stageDt) { + stage_stag_info_class* pstag = stageDt->getStagInfo(); - if (pstag == 0) { - isBossStg = false; - } else { - isBossStg = dStage_stagInfo_GetSTType(pstag) == 3; + if (pstag == NULL) { + return false; } - return isBossStg; + + return dStage_stagInfo_GetSTType(pstag) == 3; } /* 80023F50-80023F84 01E890 0034+00 1/1 0/0 0/1 .text dStage_KeepDoorInfoInit__FP11dStage_dt_c */ @@ -482,13 +471,6 @@ static asm void dStage_KeepDoorInfoProc(dStage_dt_c* param_0, stage_tgsc_class* } #pragma pop -/* ############################################################################################## */ -/* 803F5778-803F5784 022498 000C+00 0/1 0/0 0/0 .bss @3981 */ -// #pragma push -// #pragma force_active on -// static u8 lit_3981[12]; -// #pragma pop - /* 803F5784-803F6088 0224A4 0904+00 3/4 0/0 0/0 .bss l_RoomKeepDoorInfo */ static dStage_KeepDoorInfo l_RoomKeepDoorInfo; @@ -513,23 +495,11 @@ static asm void dStage_RoomKeepDoorInfoProc(dStage_dt_c* param_0, stage_tgsc_cla /* 80024174-8002419C 01EAB4 0028+00 2/0 0/0 0/0 .text * dStage_RoomKeepDoorInit__FP11dStage_dt_cPviPv */ -#ifdef NONMATCHING -static int dStage_RoomKeepDoorInit(dStage_dt_c* param_0, void* param_1, int param_2, +static int dStage_RoomKeepDoorInit(dStage_dt_c* stageDt, void* i_data, int entryNum, void* param_3) { - dStage_RoomKeepDoorInfoProc(param_0, (stage_tgsc_class*)param_1); + dStage_RoomKeepDoorInfoProc(stageDt, (stage_tgsc_class*)((char*)i_data + 4)); return 1; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm int dStage_RoomKeepDoorInit(dStage_dt_c* param_0, void* param_1, int param_2, - void* param_3) { - nofralloc -#include "asm/d/d_stage/dStage_RoomKeepDoorInit__FP11dStage_dt_cPviPv.s" -} -#pragma pop -#endif void dStage_startStage_c::set(const char* i_Name, s8 i_RoomNo, s16 i_Point, s8 i_Layer) { strcpy(mName, i_Name); @@ -538,14 +508,6 @@ void dStage_startStage_c::set(const char* i_Name, s8 i_RoomNo, s16 i_Point, s8 i mLayer = i_Layer; } -/* ############################################################################################## */ -/* 80378A50-80378A50 0050B0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80378ADD = "name.bin"; -SECTION_DEAD static char const* const stringBase_80378AE6 = "bank.bin"; -#pragma pop - /* 803F6094-80406194 022DB4 10100+00 12/12 31/31 16/16 .bss mStatus__20dStage_roomControl_c */ dStage_roomStatus_c dStage_roomControl_c::mStatus[0x40]; @@ -557,19 +519,16 @@ u32 dStage_roomControl_c::mProcID; /* 80450D64-80450D68 -00001 0004+00 6/6 94/94 101/101 .sbss None */ /* 80450D64 0001+00 data_80450D64 None */ -/* 80450D65 0001+00 data_80450D65 None */ -/* 80450D66 0001+00 data_80450D66 None */ -/* 80450D67 0001+00 data_80450D67 None */ s8 struct_80450D64; -#pragma push -#pragma force_active on -s8 sLastStayNo; +/* 80450D65 0001+00 data_80450D65 None */ +s8 gLastStayNo; -s8 sNextStayNo; -#pragma pop +/* 80450D66 0001+00 data_80450D66 None */ +s8 gNextStayNo; -s8 sTimePass; +/* 80450D67 0001+00 data_80450D67 None */ +s8 gTimePass; /* 80450D68-80450D6C 000268 0004+00 2/2 2/2 1/1 .sbss None */ u8 data_80450D68; @@ -581,38 +540,48 @@ char* dStage_roomControl_c::mArcBankName; char* dStage_roomControl_c::mArcBankData; /* 800241E8-80024338 01EB28 0150+00 1/1 0/0 0/4 .text init__20dStage_roomControl_cFv */ -#ifdef NONMATCHING void dStage_roomControl_c::init() { - if (-1 < dComIfGp_getStartStagePoint()) { - dComIfGs_initZone(); + struct_80450D64 = -1; + gLastStayNo = -1; + gNextStayNo = -1; + data_80450D68 = 0; + data_804505F0 = -1; + + if (dComIfGp_getStartStagePoint() >= 0 || dComIfGp_getStartStagePoint() == -4) { + initZone(); } - dStage_roomStatus_c* status = &mStatus[0]; - + dStage_roomStatus_c* status = mStatus; for (int i = 0; i < 0x40; i++) { status->mRoomDt.init(); status->mRoomDt.initFileList2(); - status->unk_0x3F4[0] = 0; - status->unk_0x3F4[1] = 0; + setStatusFlag(i, 0); + status->mDraw = false; + + if (status->mZoneNo >= 0) { + dComIfGs_clearRoomSwitch(status->mZoneNo); + dComIfGs_clearRoomItem(status->mZoneNo); + } + + status->mMemBlockID = -1; + status->field_0x400 = 0; + status++; + } + + mArcBankName = (char*)dComIfG_getStageRes("name.bin"); + mArcBankData = (char*)dComIfG_getStageRes("bank.bin"); + + if (mArcBankName == NULL) { + mArcBankData = NULL; } } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dStage_roomControl_c::init() { - nofralloc -#include "asm/d/d_stage/init__20dStage_roomControl_cFv.s" -} -#pragma pop -#endif /* 80024338-80024384 01EC78 004C+00 1/1 1/1 0/7 .text initZone__20dStage_roomControl_cFv */ void dStage_roomControl_c::initZone() { dComIfGs_initZone(); - dStage_roomStatus_c* status = &mStatus[0]; + dStage_roomStatus_c* status = mStatus; for (int i = 0; i < 0x40; i++) { status->mZoneNo = -1; status++; @@ -1568,10 +1537,10 @@ SECTION_DATA static FuncTable l_layerFuncTable_5131[2] = { }; /* 803A6638-803A6644 -00001 000C+00 1/1 0/0 0/0 .data l_funcTable$5136 */ -SECTION_DATA static FuncTable l_funcTable_5136 = {"STAG", dStage_stagInfoInit}; +SECTION_DATA static FuncTable l_funcTable_5136[1] = {"STAG", dStage_stagInfoInit}; /* 803A6644-803A6650 -00001 000C+00 1/1 0/0 0/0 .data l_layerFuncTableA$5141 */ -SECTION_DATA static FuncTable l_layerFuncTableA = {"SON0", dStage_soundInfoInit}; +SECTION_DATA static FuncTable l_layerFuncTableA[1] = {"SON0", dStage_soundInfoInit}; /* 803A6650-803A668C -00001 003C+00 1/1 0/0 0/0 .data l_envLayerFuncTable$5142 */ SECTION_DATA static FuncTable l_envLayerFuncTable[5] = { @@ -1636,7 +1605,6 @@ SECTION_DATA JKRExpHeap* dStage_roomControl_c::mMemoryBlock[19] = { }; /* 800243B0-800243E8 01ECF0 0038+00 0/0 3/3 1/1 .text getMemoryBlock__20dStage_roomControl_cFi */ -#ifdef NONMATCHING JKRExpHeap* dStage_roomControl_c::getMemoryBlock(int i_roomNo) { int blockId = getMemoryBlockID(i_roomNo); @@ -1645,44 +1613,24 @@ JKRExpHeap* dStage_roomControl_c::getMemoryBlock(int i_roomNo) { } return mMemoryBlock[blockId]; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRExpHeap* dStage_roomControl_c::getMemoryBlock(int param_0) { - nofralloc -#include "asm/d/d_stage/getMemoryBlock__20dStage_roomControl_cFi.s" -} -#pragma pop -#endif /* 800243E8-80024424 01ED28 003C+00 2/2 0/0 0/0 .text setStayNo__20dStage_roomControl_cFi */ -#ifdef NONMATCHING -void dStage_roomControl_c::setStayNo(int param_0) { - sLastStayNo = struct_80450D64; - struct_80450D64 = param_0; +void dStage_roomControl_c::setStayNo(int stayNo) { + gLastStayNo = struct_80450D64; + struct_80450D64 = stayNo; + gNextStayNo = struct_80450D64; - if (struct_80450D64 > -1) { - sNextStayNo = struct_80450D64; + if (struct_80450D64 < 0) { + return; } - sNextStayNo = struct_80450D64; - mStatus[struct_80450D64].unk_0x3F4[1] = 1; -} -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dStage_roomControl_c::setStayNo(int param_0) { - nofralloc -#include "asm/d/d_stage/setStayNo__20dStage_roomControl_cFi.s" + + onStatusDraw(struct_80450D64); } -#pragma pop -#endif /* 80024424-8002442C 01ED64 0008+00 0/0 0/0 1/1 .text setNextStayNo__20dStage_roomControl_cFi */ void dStage_roomControl_c::setNextStayNo(int nextStayNo) { - sNextStayNo = nextStayNo; + gNextStayNo = nextStayNo; } static int stayRoomCheck(int param_0, u8* param_1, int param_2) { @@ -1696,14 +1644,21 @@ static int stayRoomCheck(int param_0, u8* param_1, int param_2) { } /* 80024460-800244E8 01EDA0 0088+00 1/1 0/0 0/0 .text createRoomScene__Fi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void createRoomScene(int param_0) { - nofralloc -#include "asm/d/d_stage/createRoomScene__Fi.s" +static int createRoomScene(int param_0) { + int* ptr = (int*)JKRHeap::alloc(4, -4, NULL); + + if (ptr == NULL) { + return 0; + } + *ptr = param_0; + + if (!fopScnM_CreateReq(PROC_ROOM_SCENE, 0x7FFF, 0, (u32)ptr)) { + JKRHeap::free(ptr, NULL); + return 0; + } + + return 1; } -#pragma pop /* 800244E8-8002451C 01EE28 0034+00 0/0 0/0 8/13 .text checkRoomDisp__20dStage_roomControl_cCFi */ bool dStage_roomControl_c::checkRoomDisp(int i_roomNo) const { @@ -1717,32 +1672,42 @@ bool dStage_roomControl_c::checkRoomDisp(int i_roomNo) const { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dStage_roomControl_c::loadRoom(int param_0, u8* param_1, bool param_2) { +asm int dStage_roomControl_c::loadRoom(int param_0, u8* param_1, bool param_2) { nofralloc #include "asm/d/d_stage/loadRoom__20dStage_roomControl_cFiPUcb.s" } #pragma pop /* 8002471C-8002483C 01F05C 0120+00 1/1 0/0 0/3 .text zoneCountCheck__20dStage_roomControl_cCFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dStage_roomControl_c::zoneCountCheck(int param_0) const { - nofralloc -#include "asm/d/d_stage/zoneCountCheck__20dStage_roomControl_cCFi.s" +void dStage_roomControl_c::zoneCountCheck(int stayNo) const { + dStage_roomStatus_c* status = mStatus; + for (int i = 0; i < 0x40; i++) { + if (status->mZoneNo >= 0 && status->mZoneCount > 0) { + dComIfGs_clearRoomSwitch(status->mZoneNo); + dComIfGs_clearRoomItem(status->mZoneNo); + + if (dStage_stagInfo_GetSTType(dComIfGp_getStage()->getStagInfo()) != 0 && + stayNo != gLastStayNo) { + if (--status->mZoneCount == 0) { + dComIfGs_removeZone(status->mZoneNo); + status->mZoneNo = -1; + } + } + } + status++; + } + setStayNo(stayNo); } -#pragma pop stage_stag_info_class* dStage_stageDt_c::getStagInfo() const { return mStagInfo; } -JKRExpHeap* dStage_roomControl_c::createMemoryBlock(int param_0, u32 param_1) { - if (mMemoryBlock[param_0] == NULL) { - JKRHeap* tmp = mDoExt_getArchiveHeap(); - mMemoryBlock[param_0] = JKRExpHeap::create(param_1, tmp, false); +JKRExpHeap* dStage_roomControl_c::createMemoryBlock(int index, u32 param_1) { + if (mMemoryBlock[index] == NULL) { + mMemoryBlock[index] = JKRExpHeap::create(param_1, mDoExt_getArchiveHeap(), false); } - return mMemoryBlock[param_0]; + return mMemoryBlock[index]; } void dStage_roomControl_c::destroyMemoryBlock() { @@ -1780,8 +1745,8 @@ SECTION_DATA char dStage_roomControl_c::mArcBank[32][10] = { }; /* 8002490C-80024940 01F24C 0034+00 1/1 1/1 0/2 .text setArcBank__20dStage_roomControl_cFiPCc */ -void dStage_roomControl_c::setArcBank(int i_bank, char const* param_1) { - strncpy(&mArcBank[i_bank][0], param_1, 9); +void dStage_roomControl_c::setArcBank(int i_bank, char const* bankName) { + strncpy(&mArcBank[i_bank][0], bankName, 9); } /* 80024940-80024954 01F280 0014+00 1/1 1/1 0/1 .text getArcBank__20dStage_roomControl_cFi */ @@ -1802,14 +1767,14 @@ SECTION_DEAD static char const* const stringBase_80378AF0 = */ // regalloc #ifdef NONMATCHING -int dStage_roomControl_c::resetArchiveBank(int i_bank) { +bool dStage_roomControl_c::resetArchiveBank(int i_bank) { for (; i_bank < 32; i_bank++) { char* bank = getArcBank(i_bank); if (strcmp(bank, "")) { s32 syncStatus = dComIfG_syncObjectRes(bank); if (syncStatus < 0) { - OSReport_Error("Bank[%d] : %s.arc Sync Read Error !!\n", bank, i_bank); + OSReport_Error("Bank[%d] : %s.arc Sync Read Error !!\n", i_bank, bank); } else { if (syncStatus > 0) { return 0; @@ -1834,60 +1799,59 @@ asm bool dStage_roomControl_c::resetArchiveBank(int param_0) { /* 80024A34-80024ABC 01F374 0088+00 1/1 0/0 0/2 .text * create__Q220dStage_roomControl_c9roomDzs_cFUc */ -#ifdef NONMATCHING -void dStage_roomControl_c::roomDzs_c::create(u8 param_0) { - JKRExpHeap* archeap = mDoExt_getArchiveHeap(); - JKRHeap** heap = new (archeap, -4) JKRHeap*[param_0]; - m_dzs = heap; - - JKRHeap* heap2 = (JKRHeap*)m_dzs; - - if (heap2 != NULL) { - for (u8 i = 0; i < param_0; i++) { - heap2 = heap[i]; +void dStage_roomControl_c::roomDzs_c::create(u8 i_num) { + m_dzs = new (mDoExt_getArchiveHeap(), -4) void*[i_num]; + + if (m_dzs != NULL) { + u32** dzs = (u32**)m_dzs; + for (u8 i = 0; i < i_num; i++) { + *dzs = NULL; + dzs++; } - m_num = param_0; + m_num = i_num; } } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dStage_roomControl_c::roomDzs_c::create(u8 param_0) { - nofralloc -#include "asm/d/d_stage/create__Q220dStage_roomControl_c9roomDzs_cFUc.s" -} -#pragma pop -#endif /* 80024ABC-80024B44 01F3FC 0088+00 1/1 0/0 0/0 .text remove__Q220dStage_roomControl_c9roomDzs_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dStage_roomControl_c::roomDzs_c::remove() { - nofralloc -#include "asm/d/d_stage/remove__Q220dStage_roomControl_c9roomDzs_cFv.s" +void dStage_roomControl_c::roomDzs_c::remove() { + if (m_num != 0) { + u32** dzs = (u32**)m_dzs; + for (u8 i = 0; i < m_num; i++) { + if (*dzs != NULL) { + mDoExt_getArchiveHeap()->free(*dzs); + } + dzs++; + } + delete[] m_dzs; + m_num = 0; + } } -#pragma pop - -/* ############################################################################################## */ -/* 80378A50-80378A50 0050B0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80378B16 = "%s/room%d.dzs"; -#pragma pop /* 80024B44-80024C1C 01F484 00D8+00 1/1 0/0 0/1 .text add__Q220dStage_roomControl_c9roomDzs_cFUcUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dStage_roomControl_c::roomDzs_c::add(u8 param_0, u8 param_1) { - nofralloc -#include "asm/d/d_stage/add__Q220dStage_roomControl_c9roomDzs_cFUcUc.s" +void* dStage_roomControl_c::roomDzs_c::add(u8 i_num, u8 roomNo) { + if (m_num == 0) { + return NULL; + } + + void** dzs = m_dzs; + if (dzs[i_num] == NULL) { + char dzsName[20]; + sprintf(dzsName, "%s/room%d.dzs", dComIfGp_getStartStageName(), roomNo); + + u32 expandSize = + dLib_getExpandSizeFromAramArchive(dComIfGp_getFieldMapArchive2(), (const char*)dzsName); + void* dzs_buf = mDoExt_getArchiveHeap()->alloc(expandSize, -0x20); + dzs[i_num] = dzs_buf; + + if (dzs[i_num] != NULL) { + dComIfGp_getFieldMapArchive2()->readResource(dzs[i_num], expandSize, dzsName); + } + } + + return dzs[i_num]; } -#pragma pop void dStage_stageDt_c::init() { mCamera = NULL; @@ -1954,18 +1918,24 @@ void dStage_roomDt_c::init() { } /* 80024D10-80024DB0 01F650 00A0+00 1/1 0/0 0/0 .text dStage_roomInit__Fi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void dStage_roomInit(int param_0) { - nofralloc -#include "asm/d/d_stage/dStage_roomInit__Fi.s" +static int dStage_roomInit(int stayNo) { + dComIfGp_roomControl_setStayNo(stayNo); + + roomRead_class* room = dComIfGp_getStageRoom(); + if (room != NULL && room->field_0x0 > stayNo) { + int time_pass = dStage_roomRead_dt_c_GetTimePass(*room->field_0x4[stayNo]); + dComIfGp_roomControl_setTimePass(time_pass); + + return dComIfGp_roomControl_loadRoom(room->field_0x4[stayNo]->field_0x0, + room->field_0x4[stayNo]->field_0x4, true); + } + + return 1; } -#pragma pop /* 80024DB0-80024DB8 01F6F0 0008+00 2/2 0/0 0/0 .text SetTimePass__20dStage_roomControl_cFi */ void dStage_roomControl_c::SetTimePass(int isPassing) { - sTimePass = isPassing; + gTimePass = isPassing; } roomRead_class* dStage_stageDt_c::getRoom() const { @@ -2023,8 +1993,7 @@ static void dStage_actorCreate(stage_actor_data_class* param_0, fopAcM_prm_class param_1->mSubtype = actorInf->mSubtype; s16 objName = actorInf->mProcName; - // "hider" actor - if (objName == 0x30F) { + if (objName == PROC_SUSPEND) { actor = (fopAc_ac_c*)fopAcM_FastCreate(objName, 0, NULL, param_1); if (actor != NULL) { @@ -2037,25 +2006,20 @@ static void dStage_actorCreate(stage_actor_data_class* param_0, fopAcM_prm_class } } -/* ############################################################################################## */ -/* 80451C90-80451C94 000290 0004+00 2/2 0/0 0/0 .sdata2 @4270 */ -SECTION_SDATA2 static u8 lit_4270[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; - /* 80024F98-80025004 01F8D8 006C+00 1/1 0/0 0/0 .text * dStage_cameraCreate__FP24stage_camera2_data_classii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void dStage_cameraCreate(stage_camera2_data_class* param_0, int param_1, int param_2) { - nofralloc -#include "asm/d/d_stage/dStage_cameraCreate__FP24stage_camera2_data_classii.s" +static int dStage_cameraCreate(stage_camera2_data_class* camera, int i_cameraIdx, int param_2) { + camera = static_cast<stage_camera2_data_class*>(cMl::memalignB(-4, 0x18)); + + if (camera != NULL) { + camera->field_0x4 = 0.0f; + camera->field_0x8 = 0.0f; + camera->field_0x4 = 0.0f; + camera->field_0x0 = param_2; + fopCamM_Create(i_cameraIdx, PROC_CAMERA, camera); + } + return 1; } -#pragma pop stage_actor_class* dStage_roomDt_c::getPlayer() const { return mPlayer; @@ -2065,52 +2029,96 @@ stage_actor_class* dStage_stageDt_c::getPlayer() const { return mPlayer; } -/* ############################################################################################## */ -/* 80378A50-80378A50 0050B0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80378B2B = "S_MV000"; -#pragma pop - /* 80025014-800252B8 01F954 02A4+00 2/0 0/0 0/0 .text dStage_playerInit__FP11dStage_dt_cPviPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm int dStage_playerInit(dStage_dt_c* param_0, void* param_1, int param_2, void* param_3) { - nofralloc -#include "asm/d/d_stage/dStage_playerInit__FP11dStage_dt_cPviPv.s" +static int dStage_playerInit(dStage_dt_c* stageDt, void* i_data, int num, void* param_3) { + stage_actor_class* player = (stage_actor_class*)((int*)i_data + 1); + stage_actor_data_class* player_data = player->mEntries; + stageDt->setPlayer(player); + stageDt->setPlayerNum(num); + + if (dComIfGp_getPlayer(0) != NULL || dComIfGp_getStartStageRoomNo() != stageDt->getRoomNo()) { + return 1; + } + + fopAcM_prm_class* appen = fopAcM_CreateAppend(); + + int point = dComIfGp_getStartStagePoint(); + u32 roomParam = dComIfGs_getRestartRoomParam(); + if (point == -2 || point == -3) { + appen->mParameter = dComIfGs_getTurnRestartParam(); + appen->mPos = dComIfGs_getTurnRestartPos(); + appen->mAngle.set(0, dComIfGs_getTurnRestartAngleY(), -0x100); + } else if (point == -1) { + appen->mParameter = roomParam; + appen->mPos = dComIfGs_getRestartRoomPos(); + appen->mAngle.set(0, dComIfGs_getRestartRoomAngleY(), -0x100); + } else { + int unk; + if (point == -4) { + unk = dComIfGs_getTurnRestartAngleY(); + } else { + unk = point; + } + + for (int i = 0; i < num; i++) { + if ((u8)player_data->mAngle.z == unk) { + break; + } + player_data++; + } + + appen->mParameter = player_data->mParameter; + appen->mPos = player_data->mSpawnPos; + appen->mAngle = player_data->mAngle; + appen->mEnemyNo = player_data->mEnemyNo; + + if (point == -4) { + appen->mParameter = dComIfGs_getTurnRestartParam(); + } else if (roomParam != 0) { + appen->mParameter = (roomParam & 0xFFFFFFC0) | (dComIfGp_getStartStageRoomNo() & 0x3F); + } else if (roomParam == 0) { + appen->mParameter = + (appen->mParameter & 0xFFFFFFC0) | (dComIfGp_getStartStageRoomNo() & 0x3F); + } + } + + dComIfGs_setRestartRoomParam(0); + appen->mEnemyNo = 0xFFFF; + appen->mRoomNo = -1; + + dComIfGp_getStartStage()->set(dComIfGp_getStartStageName(), appen->mParameter & 0x3F, + dComIfGp_getStartStagePoint(), dComIfGp_getStartStageLayer()); + dStage_actorCreate(player_data, appen); + + base_process_class* ac = + (base_process_class*)fopScnM_SearchByID(dStage_roomControl_c::getProcID()); + if (ac->mProcName == PROC_PLAY_SCENE) { + if (strcmp(dComIfGp_getStartStageName(), "S_MV000")) { + fopMsgM_Create(PROC_METER2, NULL, NULL); + } + } + + return 1; } -#pragma pop /* 800252B8-80025308 01FBF8 0050+00 1/0 0/0 0/0 .text dStage_cameraInit__FP11dStage_dt_cPviPv */ -#ifdef NONMATCHING -static int dStage_cameraInit(dStage_dt_c* param_0, void* param_1, int param_2, void* param_3) { - unkTest* tmp = (unkTest*)param_1; - param_0->setCamera((stage_camera_class*)tmp->field_0x4); - dStage_cameraCreate((stage_camera2_data_class*)tmp->field_0x4, 0, 0); +static int dStage_cameraInit(dStage_dt_c* stageDt, void* i_data, int param_2, void* param_3) { + stage_camera_class* camera = (stage_camera_class*)((char*)i_data + 4); + stageDt->setCamera(camera); + dStage_cameraCreate(camera->field_0x4, 0, 0); return 1; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm int dStage_cameraInit(dStage_dt_c* param_0, void* param_1, int param_2, void* param_3) { - nofralloc -#include "asm/d/d_stage/dStage_cameraInit__FP11dStage_dt_cPviPv.s" -} -#pragma pop -#endif /* 80025308-8002533C 01FC48 0034+00 1/0 0/0 0/0 .text dStage_RoomCameraInit__FP11dStage_dt_cPviPv */ -static int dStage_RoomCameraInit(dStage_dt_c* i_stage, void* param_1, int param_2, void* param_3) { - i_stage->setCamera((stage_camera_class*)param_1 + 4); +static int dStage_RoomCameraInit(dStage_dt_c* i_stage, void* i_data, int param_2, void* param_3) { + i_stage->setCamera((stage_camera_class*)((char*)i_data + 4)); return 1; } /* 8002533C-80025370 01FC7C 0034+00 2/0 0/0 0/0 .text dStage_arrowInit__FP11dStage_dt_cPviPv */ -static int dStage_arrowInit(dStage_dt_c* i_stage, void* param_1, int param_2, void* param_3) { - i_stage->setArrow((stage_arrow_class*)param_1 + 4); +static int dStage_arrowInit(dStage_dt_c* i_stage, void* i_data, int param_2, void* param_3) { + i_stage->setArrow((stage_arrow_class*)((char*)i_data + 4)); return 1; } @@ -2119,89 +2127,68 @@ static int dStage_arrowInit(dStage_dt_c* i_stage, void* param_1, int param_2, vo #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm int dStage_roomDt_c::getMapInfo2(int param_0) const { +asm stage_map_info_class* dStage_roomDt_c::getMapInfo2(int param_0) const { nofralloc #include "asm/d/d_stage/getMapInfo2__15dStage_roomDt_cCFi.s" } #pragma pop /* 800253FC-80025404 01FD3C 0008+00 1/0 0/0 0/0 .text getMapInfoBase__15dStage_roomDt_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm stage_map_info_dummy_class* dStage_roomDt_c::getMapInfoBase() const { - nofralloc -#include "asm/d/d_stage/getMapInfoBase__15dStage_roomDt_cCFv.s" +stage_map_info_dummy_class* dStage_roomDt_c::getMapInfoBase() const { + return mMapInfoBase; } -#pragma pop /* 80025404-80025490 01FD44 008C+00 1/0 0/0 0/0 .text getMapInfo2__16dStage_stageDt_cCFi */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm int dStage_stageDt_c::getMapInfo2(int param_0) const { +asm stage_map_info_class* dStage_stageDt_c::getMapInfo2(int param_0) const { nofralloc #include "asm/d/d_stage/getMapInfo2__16dStage_stageDt_cCFi.s" } #pragma pop /* 80025490-80025498 01FDD0 0008+00 1/0 0/0 0/0 .text getMapInfoBase__16dStage_stageDt_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm stage_map_info_dummy_class* dStage_stageDt_c::getMapInfoBase() const { - nofralloc -#include "asm/d/d_stage/getMapInfoBase__16dStage_stageDt_cCFv.s" +stage_map_info_dummy_class* dStage_stageDt_c::getMapInfoBase() const { + return mMapInfoBase; } -#pragma pop /* 80025498-800254CC 01FDD8 0034+00 1/0 0/0 0/0 .text dStage_paletteInfoInit__FP11dStage_dt_cPviPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm int dStage_paletteInfoInit(dStage_dt_c* param_0, void* param_1, int param_2, - void* param_3) { - nofralloc -#include "asm/d/d_stage/dStage_paletteInfoInit__FP11dStage_dt_cPviPv.s" +static int dStage_paletteInfoInit(dStage_dt_c* stageDt, void* i_data, int param_2, void* param_3) { + dStage_nodeHeader* pal_info = (dStage_nodeHeader*)(i_data); + stageDt->setPaletteInfo((stage_palette_info_class*)pal_info->m_offset); + return 1; } -#pragma pop /* 800254CC-80025500 01FE0C 0034+00 1/0 0/0 0/1 .text dStage_pselectInfoInit__FP11dStage_dt_cPviPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm int dStage_pselectInfoInit(dStage_dt_c* param_0, void* param_1, int param_2, - void* param_3) { - nofralloc -#include "asm/d/d_stage/dStage_pselectInfoInit__FP11dStage_dt_cPviPv.s" +static int dStage_pselectInfoInit(dStage_dt_c* stageDt, void* i_data, int param_2, void* param_3) { + dStage_nodeHeader* psel_info = (dStage_nodeHeader*)(i_data); + stageDt->setPselectInfo((stage_pselect_info_class*)psel_info->m_offset); + return 1; } -#pragma pop /* 80025500-80025534 01FE40 0034+00 1/0 0/0 0/1 .text dStage_envrInfoInit__FP11dStage_dt_cPviPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm int dStage_envrInfoInit(dStage_dt_c* param_0, void* param_1, int param_2, - void* param_3) { - nofralloc -#include "asm/d/d_stage/dStage_envrInfoInit__FP11dStage_dt_cPviPv.s" +static int dStage_envrInfoInit(dStage_dt_c* stageDt, void* i_data, int param_2, void* param_3) { + dStage_nodeHeader* envr_info = (dStage_nodeHeader*)(i_data); + stageDt->setEnvrInfo((stage_envr_info_class*)envr_info->m_offset); + return 1; } -#pragma pop /* 80025534-8002556C 01FE74 0038+00 1/0 0/0 0/2 .text dStage_filiInfo2Init__FP11dStage_dt_cPviPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm int dStage_filiInfo2Init(dStage_dt_c* param_0, void* param_1, int param_2, - void* param_3) { - nofralloc -#include "asm/d/d_stage/dStage_filiInfo2Init__FP11dStage_dt_cPviPv.s" +static int dStage_filiInfo2Init(dStage_dt_c* stageDt, void* i_data, int entryNum, void* param_3) { + if (entryNum == 0) { + return 1; + } + + dStage_nodeHeader* fili_info = (dStage_nodeHeader*)(i_data); + dStage_roomControl_c::setFileList2(stageDt->getRoomNo(), + (dStage_FileList2_dt_c*)fili_info->m_offset); + return 1; } -#pragma pop /* 8002556C-8002558C 01FEAC 0020+00 1/0 0/0 0/0 .text * dStage_fieldMapFiliInfo2Init__FP11dStage_dt_cPviPv */ @@ -2216,181 +2203,265 @@ static asm int dStage_fieldMapFiliInfo2Init(dStage_dt_c* param_0, void* param_1, #pragma pop /* 8002558C-800255E0 01FECC 0054+00 2/0 0/0 0/0 .text dStage_filiInfoInit__FP11dStage_dt_cPviPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm int dStage_filiInfoInit(dStage_dt_c* param_0, void* param_1, int param_2, - void* param_3) { - nofralloc -#include "asm/d/d_stage/dStage_filiInfoInit__FP11dStage_dt_cPviPv.s" +static int dStage_filiInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum, void* param_3) { + if (entryNum == 0) { + stageDt->setFileListInfo(NULL); + } else { + dStage_nodeHeader* fili_info = (dStage_nodeHeader*)(i_data); + stageDt->setFileListInfo((dStage_FileList_dt_c*)fili_info->m_offset); + } + + return 1; } -#pragma pop /* 800255E0-80025614 01FF20 0034+00 2/0 0/0 0/0 .text dStage_vrboxInfoInit__FP11dStage_dt_cPviPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm int dStage_vrboxInfoInit(dStage_dt_c* param_0, void* param_1, int param_2, - void* param_3) { - nofralloc -#include "asm/d/d_stage/dStage_vrboxInfoInit__FP11dStage_dt_cPviPv.s" +static int dStage_vrboxInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum, void* param_3) { + dStage_nodeHeader* vrbox_info = (dStage_nodeHeader*)(i_data); + stageDt->setVrboxInfo((stage_vrbox_info_class*)vrbox_info->m_offset); + return 1; } -#pragma pop /* 80025614-80025648 01FF54 0034+00 1/0 0/0 0/0 .text * dStage_vrboxcolInfoInit__FP11dStage_dt_cPviPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm int dStage_vrboxcolInfoInit(dStage_dt_c* param_0, void* param_1, int param_2, - void* param_3) { - nofralloc -#include "asm/d/d_stage/dStage_vrboxcolInfoInit__FP11dStage_dt_cPviPv.s" +static int dStage_vrboxcolInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum, + void* param_3) { + dStage_nodeHeader* vrcol_info = (dStage_nodeHeader*)(i_data); + stageDt->setVrboxcolInfo((stage_vrboxcol_info_class*)vrcol_info->m_offset); + return 1; } -#pragma pop /* 80025648-800256AC 01FF88 0064+00 2/0 0/0 0/0 .text dStage_plightInfoInit__FP11dStage_dt_cPviPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm int dStage_plightInfoInit(dStage_dt_c* param_0, void* param_1, int param_2, - void* param_3) { - nofralloc -#include "asm/d/d_stage/dStage_plightInfoInit__FP11dStage_dt_cPviPv.s" +static int dStage_plightInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum, void* param_3) { + dStage_nodeHeader* plight_info = (dStage_nodeHeader*)(i_data); + stageDt->setPlightInfo((stage_plight_info_class*)plight_info->m_offset); + stageDt->setPlightNumInfo(entryNum); + return 1; } -#pragma pop /* 800256AC-80025738 01FFEC 008C+00 1/0 0/0 0/0 .text dStage_lgtvInfoInit__FP11dStage_dt_cPviPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm int dStage_lgtvInfoInit(dStage_dt_c* param_0, void* param_1, int param_2, - void* param_3) { - nofralloc -#include "asm/d/d_stage/dStage_lgtvInfoInit__FP11dStage_dt_cPviPv.s" +static int dStage_lgtvInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum, void* param_3) { + stageDt->setLightVecInfoNum(entryNum); + + if (entryNum == 0) { + stageDt->setLightVecInfo(NULL); + } else { + dStage_nodeHeader* lgtv_info = (dStage_nodeHeader*)(i_data); + stageDt->setLightVecInfo((stage_pure_lightvec_info_class*)lgtv_info->m_offset); + } + + return 1; } -#pragma pop /* 80025738-80025744 020078 000C+00 0/0 1/1 0/0 .text * dStage_stagInfo_GetParticleNo__FP21stage_stag_info_classi */ +#ifdef NONMATCHING +u8 dStage_stagInfo_GetParticleNo(stage_stag_info_class* p_info, int layer) { + return p_info[layer].mParticleNo; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm u8 dStage_stagInfo_GetParticleNo(stage_stag_info_class* param_0, int param_1) { +asm u8 dStage_stagInfo_GetParticleNo(stage_stag_info_class* p_info, int layer) { nofralloc #include "asm/d/d_stage/dStage_stagInfo_GetParticleNo__FP21stage_stag_info_classi.s" } #pragma pop - -/* ############################################################################################## */ -/* 80378A50-80378A50 0050B0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80378B33 = "Xtg_00"; -#pragma pop +#endif /* 80025744-8002582C 020084 00E8+00 1/0 0/0 0/0 .text dStage_stagInfoInit__FP11dStage_dt_cPviPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm int dStage_stagInfoInit(dStage_dt_c* param_0, void* param_1, int param_2, +static int dStage_stagInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum, void* param_3) { - nofralloc -#include "asm/d/d_stage/dStage_stagInfoInit__FP11dStage_dt_cPviPv.s" + dStage_nodeHeader* stag_info = (dStage_nodeHeader*)(i_data); + stageDt->setStagInfo((stage_stag_info_class*)stag_info->m_offset); + + if (!dStage_isBossStage(stageDt)) { + dComIfG_deleteStageRes("Xtg_00"); + dComIfGp_resetOldMulti(); + } + + int stageNo = dStage_stagInfo_GetSaveTbl(stageDt->getStagInfo()); + dComIfGs_getSave(stageNo); + g_save_bit_HIO.init(); + dComIfGs_initDan(stageNo); + dStage_KeepDoorInfoInit(stageDt); + return 1; } -#pragma pop /* 8002582C-80025838 02016C 000C+00 1/0 0/0 0/0 .text resetOldMulti__16dStage_stageDt_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dStage_stageDt_c::resetOldMulti() { - nofralloc -#include "asm/d/d_stage/resetOldMulti__16dStage_stageDt_cFv.s" +void dStage_stageDt_c::resetOldMulti() { + mOldMulti = NULL; } -#pragma pop /* 80025838-8002586C 020178 0034+00 2/0 0/0 0/0 .text dStage_sclsInfoInit__FP11dStage_dt_cPviPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm int dStage_sclsInfoInit(dStage_dt_c* param_0, void* param_1, int param_2, - void* param_3) { - nofralloc -#include "asm/d/d_stage/dStage_sclsInfoInit__FP11dStage_dt_cPviPv.s" +static int dStage_sclsInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum, void* param_3) { + stageDt->setSclsInfo((stage_scls_info_dummy_class*)((char*)i_data + 4)); + return 1; } -#pragma pop /* 8002586C-80025958 0201AC 00EC+00 1/0 0/0 0/0 .text * dStage_actorCommonLayerInit__FP11dStage_dt_cPviPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm int dStage_actorCommonLayerInit(dStage_dt_c* param_0, void* param_1, int param_2, - void* param_3) { - nofralloc -#include "asm/d/d_stage/dStage_actorCommonLayerInit__FP11dStage_dt_cPviPv.s" +static int dStage_actorCommonLayerInit(dStage_dt_c* stageDt, void* i_data, int entryNum, + void* param_3) { + stage_actor_class* actor = (stage_actor_class*)((int*)i_data + 1); + stage_actor_data_class* actor_data = actor->mEntries; + + for (int i = 0; i < actor->mEntryNum; i++) { + if (!dComIfGs_isActor(actor_data->mEnemyNo, stageDt->getRoomNo())) { + if (!daSus_c::check(stageDt->getRoomNo(), actor_data->mSpawnPos)) { + fopAcM_prm_class* appen = fopAcM_CreateAppend(); + + if (appen != NULL) { + appen->mParameter = actor_data->mParameter; + appen->mPos = actor_data->mSpawnPos; + appen->mAngle = actor_data->mAngle; + appen->mEnemyNo = actor_data->mEnemyNo; + appen->mRoomNo = stageDt->getRoomNo(); + dStage_actorCreate(actor_data, appen); + } + } + } + actor_data++; + } + + return 1; } -#pragma pop /* 80025958-80025A38 020298 00E0+00 1/0 0/0 0/0 .text * dStage_tgscCommonLayerInit__FP11dStage_dt_cPviPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm int dStage_tgscCommonLayerInit(dStage_dt_c* param_0, void* param_1, int param_2, - void* param_3) { - nofralloc -#include "asm/d/d_stage/dStage_tgscCommonLayerInit__FP11dStage_dt_cPviPv.s" +static int dStage_tgscCommonLayerInit(dStage_dt_c* stageDt, void* i_data, int entryNum, + void* param_3) { + stage_tgsc_class* actor = (stage_tgsc_class*)((int*)i_data + 1); + stage_tgsc_data_class* actor_data = actor->mData; + + for (int i = 0; i < actor->mEntryNum; i++) { + if (!daSus_c::check(stageDt->getRoomNo(), actor_data->mSpawnPos)) { + fopAcM_prm_class* appen = fopAcM_CreateAppend(); + + if (appen != NULL) { + appen->mParameter = actor_data->mParameter; + appen->mPos = actor_data->mSpawnPos; + appen->mAngle = actor_data->mAngle; + appen->mEnemyNo = actor_data->mEnemyNo; + appen->mRoomNo = stageDt->getRoomNo(); + appen->mScale[0] = actor_data->field_0x20; + appen->mScale[1] = actor_data->field_0x21; + appen->mScale[2] = actor_data->field_0x22; + dStage_actorCreate(actor_data, appen); + } + } + actor_data++; + } + + return 1; } -#pragma pop /* 80025A38-80025B24 020378 00EC+00 3/2 0/0 0/0 .text dStage_actorInit__FP11dStage_dt_cPviPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm int dStage_actorInit(dStage_dt_c* param_0, void* param_1, int param_2, void* param_3) { - nofralloc -#include "asm/d/d_stage/dStage_actorInit__FP11dStage_dt_cPviPv.s" +static int dStage_actorInit(dStage_dt_c* stageDt, void* i_data, int entryNum, void* param_3) { + stage_actor_class* actor = (stage_actor_class*)((int*)i_data + 1); + stage_actor_data_class* actor_data = actor->mEntries; + + for (int i = 0; i < actor->mEntryNum; i++) { + if (!dComIfGs_isActor(actor_data->mEnemyNo, stageDt->getRoomNo())) { + if (!daSus_c::check(stageDt->getRoomNo(), actor_data->mSpawnPos)) { + fopAcM_prm_class* appen = fopAcM_CreateAppend(); + + if (appen != NULL) { + appen->mParameter = actor_data->mParameter; + appen->mPos = actor_data->mSpawnPos; + appen->mAngle = actor_data->mAngle; + appen->mEnemyNo = actor_data->mEnemyNo; + appen->mRoomNo = stageDt->getRoomNo(); + dStage_actorCreate(actor_data, appen); + } + } + } + actor_data++; + } + + return 1; } -#pragma pop /* 80025B24-80025BFC 020464 00D8+00 1/0 0/0 0/0 .text * dStage_actorInit_always__FP11dStage_dt_cPviPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm int dStage_actorInit_always(dStage_dt_c* param_0, void* param_1, int param_2, - void* param_3) { - nofralloc -#include "asm/d/d_stage/dStage_actorInit_always__FP11dStage_dt_cPviPv.s" +static int dStage_actorInit_always(dStage_dt_c* stageDt, void* i_data, int entryNum, + void* param_3) { + stage_actor_class* actor = (stage_actor_class*)((int*)i_data + 1); + stage_actor_data_class* actor_data = actor->mEntries; + + for (int i = 0; i < actor->mEntryNum; i++) { + if (!dComIfGs_isActor(actor_data->mEnemyNo, stageDt->getRoomNo())) { + fopAcM_prm_class* appen = fopAcM_CreateAppend(); + + if (appen != NULL) { + appen->mParameter = actor_data->mParameter; + appen->mPos = actor_data->mSpawnPos; + appen->mAngle = actor_data->mAngle; + appen->mEnemyNo = actor_data->mEnemyNo; + appen->mRoomNo = stageDt->getRoomNo(); + dStage_actorCreate(actor_data, appen); + } + } + actor_data++; + } + + return 1; } -#pragma pop /* 80025BFC-80025CDC 02053C 00E0+00 4/1 0/0 0/0 .text dStage_tgscInfoInit__FP11dStage_dt_cPviPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm int dStage_tgscInfoInit(dStage_dt_c* param_0, void* param_1, int param_2, - void* param_3) { - nofralloc -#include "asm/d/d_stage/dStage_tgscInfoInit__FP11dStage_dt_cPviPv.s" +static int dStage_tgscInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum, void* param_3) { + stage_tgsc_class* actor = (stage_tgsc_class*)((int*)i_data + 1); + stage_tgsc_data_class* actor_data = actor->mData; + + for (int i = 0; i < actor->mEntryNum; i++) { + if (!daSus_c::check(stageDt->getRoomNo(), actor_data->mSpawnPos)) { + fopAcM_prm_class* appen = fopAcM_CreateAppend(); + + if (appen != NULL) { + appen->mParameter = actor_data->mParameter; + appen->mPos = actor_data->mSpawnPos; + appen->mAngle = actor_data->mAngle; + appen->mEnemyNo = actor_data->mEnemyNo; + appen->mRoomNo = stageDt->getRoomNo(); + appen->mScale[0] = actor_data->field_0x20; + appen->mScale[1] = actor_data->field_0x21; + appen->mScale[2] = actor_data->field_0x22; + dStage_actorCreate(actor_data, appen); + } + } + actor_data++; + } + + return 1; } -#pragma pop /* 80025CDC-80025DA8 02061C 00CC+00 1/1 0/0 0/0 .text dStage_doorInfoInit__FP11dStage_dt_cPviPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm int dStage_doorInfoInit(dStage_dt_c* param_0, void* param_1, int param_2, - void* param_3) { - nofralloc -#include "asm/d/d_stage/dStage_doorInfoInit__FP11dStage_dt_cPviPv.s" +static int dStage_doorInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum, void* param_3) { + stage_tgsc_class* actor = (stage_tgsc_class*)((int*)i_data + 1); + stage_tgsc_data_class* actor_data = actor->mData; + + for (int i = 0; i < actor->mEntryNum; i++) { + fopAcM_prm_class* appen = fopAcM_CreateAppend(); + + if (appen != NULL) { + appen->mParameter = actor_data->mParameter; + appen->mPos = actor_data->mSpawnPos; + appen->mAngle = actor_data->mAngle; + appen->mEnemyNo = actor_data->mEnemyNo; + appen->mRoomNo = stageDt->getRoomNo(); + appen->mScale[0] = actor_data->field_0x20; + appen->mScale[1] = actor_data->field_0x21; + appen->mScale[2] = actor_data->field_0x22; + dStage_actorCreate(actor_data, appen); + } + actor_data++; + } + + return 1; } -#pragma pop /* 80025DA8-80025E40 0206E8 0098+00 2/0 0/0 0/0 .text dStage_roomReadInit__FP11dStage_dt_cPviPv */ #pragma push @@ -2405,25 +2476,19 @@ static asm int dStage_roomReadInit(dStage_dt_c* param_0, void* param_1, int para /* 80025E40-80025E70 020780 0030+00 0/0 1/1 0/0 .text * dStage_roomRead_dt_c_GetReverbStage__FR14roomRead_classi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm u8 dStage_roomRead_dt_c_GetReverbStage(roomRead_class& param_0, int param_1) { - nofralloc -#include "asm/d/d_stage/dStage_roomRead_dt_c_GetReverbStage__FR14roomRead_classi.s" +u8 dStage_roomRead_dt_c_GetReverbStage(roomRead_class& room, int index) { + if (index < 0 || index >= room.field_0x0) { + index = 0; + } + + return dStage_roomRead_dt_c_GetReverb(*room.field_0x4[index]); } -#pragma pop /* 80025E70-80025EA4 0207B0 0034+00 1/0 0/0 0/0 .text dStage_ppntInfoInit__FP11dStage_dt_cPviPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm int dStage_ppntInfoInit(dStage_dt_c* param_0, void* param_1, int param_2, - void* param_3) { - nofralloc -#include "asm/d/d_stage/dStage_ppntInfoInit__FP11dStage_dt_cPviPv.s" +static int dStage_ppntInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum, void* param_3) { + stageDt->setPntInfo((dStage_dPnt_c*)((char*)i_data + 4)); + return 1; } -#pragma pop /* 80025EA4-80025F44 0207E4 00A0+00 1/0 0/0 0/0 .text dStage_pathInfoInit__FP11dStage_dt_cPviPv */ #pragma push @@ -2437,15 +2502,10 @@ static asm int dStage_pathInfoInit(dStage_dt_c* param_0, void* param_1, int para #pragma pop /* 80025F44-80025F78 020884 0034+00 2/0 0/0 0/0 .text dStage_rppnInfoInit__FP11dStage_dt_cPviPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm int dStage_rppnInfoInit(dStage_dt_c* param_0, void* param_1, int param_2, - void* param_3) { - nofralloc -#include "asm/d/d_stage/dStage_rppnInfoInit__FP11dStage_dt_cPviPv.s" +static int dStage_rppnInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum, void* param_3) { + stageDt->setPnt2Info((dStage_dPnt_c*)((char*)i_data + 4)); + return 1; } -#pragma pop /* 80025F78-80026018 0208B8 00A0+00 2/0 0/0 0/0 .text dStage_rpatInfoInit__FP11dStage_dt_cPviPv */ #pragma push @@ -2460,115 +2520,81 @@ static asm int dStage_rpatInfoInit(dStage_dt_c* param_0, void* param_1, int para /* 80026018-8002604C 020958 0034+00 1/0 0/0 0/0 .text dStage_soundInfoInit__FP11dStage_dt_cPviPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm int dStage_soundInfoInit(dStage_dt_c* param_0, void* param_1, int param_2, - void* param_3) { - nofralloc -#include "asm/d/d_stage/dStage_soundInfoInit__FP11dStage_dt_cPviPv.s" +static int dStage_soundInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum, void* param_3) { + stageDt->setSoundInf((dStage_SoundInfo_c*)((char*)i_data + 4)); + return 1; } -#pragma pop /* 8002604C-80026080 02098C 0034+00 2/0 0/0 0/0 .text dStage_soundInfoInitCL__FP11dStage_dt_cPviPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm int dStage_soundInfoInitCL(dStage_dt_c* param_0, void* param_1, int param_2, - void* param_3) { - nofralloc -#include "asm/d/d_stage/dStage_soundInfoInitCL__FP11dStage_dt_cPviPv.s" +static int dStage_soundInfoInitCL(dStage_dt_c* stageDt, void* i_data, int entryNum, void* param_3) { + stageDt->setSoundInfCL((dStage_SoundInfo_c*)((char*)i_data + 4)); + return 1; } -#pragma pop /* 80026080-800260B4 0209C0 0034+00 3/3 0/0 0/0 .text dStage_setLayerTagName__FP9FuncTableii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void dStage_setLayerTagName(FuncTable* param_0, int param_1, int param_2) { - nofralloc -#include "asm/d/d_stage/dStage_setLayerTagName__FP9FuncTableii.s" -} -#pragma pop +static void dStage_setLayerTagName(FuncTable* funcTbl, int tblSize, int i_layerNo) { + char layerTag; + if (i_layerNo < 10) { + layerTag = '0'; + } else { + layerTag = 'W'; + } + layerTag = i_layerNo + layerTag; -/* ############################################################################################## */ -/* 80378A50-80378A50 0050B0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80378B3A = "dStage_dt_c_decode: i_data is NULL\n"; -#pragma pop + for (int i = 0; i < tblSize; i++) { + funcTbl->identifier[3] = layerTag; + funcTbl++; + } +} /* 800260B4-8002617C 0209F4 00C8+00 9/9 0/0 0/0 .text * dStage_dt_c_decode__FPvP11dStage_dt_cP9FuncTablei */ -// no idea -#ifdef NONMATCHING -static void dStage_dt_c_decode(void* i_data, dStage_dt_c* i_stage, FuncTable* param_2, - int param_3) { - int* ptr; - +static void dStage_dt_c_decode(void* i_data, dStage_dt_c* i_stage, FuncTable* funcTbl, + int tblSize) { if (i_data != NULL) { - int ivar4 = 0; - ptr = (int*)i_data + 1; - for (int i = 0; i < param_3; i += 12) { - for (int j = 0; j < (int)ptr; j += 12) { - if ((int)ptr == ivar4) { - param_2->function(i_stage, (void*)ptr, param_3, i_data); + for (int i = 0; i < tblSize; i++) { + dStage_fileHeader* file = ((dStage_fileHeader*)i_data); + dStage_nodeHeader* node = ((dStage_nodeHeader*)(file + 1)); + + FuncTable* nodeFunc = funcTbl + i; + + for (int j = 0; j < file->chunkCount; j++) { + if ((int)node->m_tag == *(int*)nodeFunc->identifier) { + if (nodeFunc->function != NULL) { + nodeFunc->function(i_stage, node, node->m_entryNum, i_data); + } + break; } + node++; } - ivar4++; } + } else { + OSReport_Error("dStage_dt_c_decode: i_data is NULL\n"); } - - OSReport_Error("dStage_dt_c_decode: i_data is NULL\n"); -} -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void dStage_dt_c_decode(void* param_0, dStage_dt_c* param_1, FuncTable* param_2, - int param_3) { - nofralloc -#include "asm/d/d_stage/dStage_dt_c_decode__FPvP11dStage_dt_cP9FuncTablei.s" } -#pragma pop -#endif /* 8002617C-800261B0 020ABC 0034+00 1/0 0/0 0/0 .text dStage_stEventInfoInit__FP11dStage_dt_cPviPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm int dStage_stEventInfoInit(dStage_dt_c* param_0, void* param_1, int param_2, - void* param_3) { - nofralloc -#include "asm/d/d_stage/dStage_stEventInfoInit__FP11dStage_dt_cPviPv.s" +static int dStage_stEventInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum, void* param_3) { + stageDt->setMapEventInfo((dStage_MapEventInfo_c*)((char*)i_data + 4)); + return 1; } -#pragma pop /* 800261B0-800261E4 020AF0 0034+00 1/0 0/0 0/0 .text * dStage_mapEventInfoInit__FP11dStage_dt_cPviPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm int dStage_mapEventInfoInit(dStage_dt_c* param_0, void* param_1, int param_2, - void* param_3) { - nofralloc -#include "asm/d/d_stage/dStage_mapEventInfoInit__FP11dStage_dt_cPviPv.s" +static int dStage_mapEventInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum, + void* param_3) { + stageDt->setMapEventInfo((dStage_MapEventInfo_c*)((char*)i_data + 4)); + return 1; } -#pragma pop /* 800261E4-80026218 020B24 0034+00 2/0 0/0 0/0 .text dStage_floorInfoInit__FP11dStage_dt_cPviPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm int dStage_floorInfoInit(dStage_dt_c* param_0, void* param_1, int param_2, - void* param_3) { - nofralloc -#include "asm/d/d_stage/dStage_floorInfoInit__FP11dStage_dt_cPviPv.s" +static int dStage_floorInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum, void* param_3) { + stageDt->setFloorInfo((dStage_FloorInfo_c*)((char*)i_data + 4)); + return 1; } -#pragma pop /* 80026218-80026298 020B58 0080+00 1/0 0/0 0/9 .text dStage_memaInfoInit__FP11dStage_dt_cPviPv */ #pragma push @@ -2594,15 +2620,11 @@ static asm int dStage_mecoInfoInit(dStage_dt_c* param_0, void* param_1, int para /* 8002631C-8002634C 020C5C 0030+00 2/0 0/0 0/0 .text * dStage_stageKeepTresureInit__FP11dStage_dt_cPviPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm int dStage_stageKeepTresureInit(dStage_dt_c* param_0, void* param_1, int param_2, - void* param_3) { - nofralloc -#include "asm/d/d_stage/dStage_stageKeepTresureInit__FP11dStage_dt_cPviPv.s" +static int dStage_stageKeepTresureInit(dStage_dt_c* stageDt, void* i_data, int entryNum, + void* param_3) { + dTres_c::addData((dTres_c::list_class*)((char*)i_data + 4), stageDt->getRoomNo()); + return 1; } -#pragma pop /* 8002634C-8002635C 020C8C 0010+00 1/0 0/0 0/0 .text * dStage_fieldMapTresureInit__FP11dStage_dt_cPviPv */ @@ -2617,14 +2639,16 @@ static asm int dStage_fieldMapTresureInit(dStage_dt_c* param_0, void* param_1, i #pragma pop /* 8002635C-800263A0 020C9C 0044+00 4/4 0/0 0/0 .text dStage_dt_c_offsetToPtr__FPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void dStage_dt_c_offsetToPtr(void* param_0) { - nofralloc -#include "asm/d/d_stage/dStage_dt_c_offsetToPtr__FPv.s" +static void dStage_dt_c_offsetToPtr(void* i_data) { + dStage_nodeHeader* p_node = (dStage_nodeHeader*)((int*)i_data + 1); + + for (int i = 0; i < ((dStage_fileHeader*)i_data)->chunkCount; i++) { + if (p_node->m_offset != 0 && p_node->m_offset < 0x80000000) { + p_node->m_offset += (u32)i_data; + } + p_node++; + } } -#pragma pop /* 800263A0-800263D0 020CE0 0030+00 1/0 0/0 0/0 .text dStage_mapPathInit__FP11dStage_dt_cPviPv */ #pragma push @@ -2660,133 +2684,131 @@ static asm int dStage_fieldMapMapPathInit(dStage_dt_c* param_0, void* param_1, i } #pragma pop -/* ############################################################################################## */ -/* 80378A50-80378A50 0050B0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80378B5E = "room%d.dzs"; -#pragma pop - /* 80450D74-80450D7C 000274 0008+00 3/3 0/0 0/0 .sbss m_roomDzs__20dStage_roomControl_c */ dStage_roomControl_c::roomDzs_c dStage_roomControl_c::m_roomDzs; /* 8002645C-800265DC 020D9C 0180+00 1/1 0/0 0/0 .text readMult__FP11dStage_dt_cP14dStage_Multi_cb */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void readMult(dStage_dt_c* param_0, dStage_Multi_c* param_1, bool param_2) { - nofralloc -#include "asm/d/d_stage/readMult__FP11dStage_dt_cP14dStage_Multi_cb.s" +static void readMult(dStage_dt_c* stageDt, dStage_Multi_c* multi, bool useOldRes) { + if (multi != NULL) { + dStage_Mult_info* info = multi->mInfo; + + if (dStage_stagInfo_GetUpButton(dComIfGp_getStage()->getStagInfo()) == 0 || + dStage_stagInfo_GetUpButton(dComIfGp_getStage()->getStagInfo()) == 6) { + dStage_roomControl_c::m_roomDzs.create(multi->field_0x0); + } + + for (s8 i = 0; i < multi->field_0x0; i++) { + void* dzs = dStage_roomControl_c::addRoomDzs(i, info->mRoomNo); + + if (dzs == NULL) { + char dzsName[11]; + sprintf(dzsName, "room%d.dzs", info->mRoomNo); + + if (useOldRes) { + dzs = dComIfG_getOldStageRes(dzsName); + } else { + dzs = dComIfG_getStageRes(dzsName); + } + } + + if (dzs != NULL) { + dStage_dt_c_offsetToPtr(dzs); + stageDt->setRoomNo(info->mRoomNo); + dStage_dt_c_decode(dzs, stageDt, l_roomFuncTable, 4); + dStage_setLayerTagName(l_layerFuncTable_5053, 3, dComIfG_play_c::getLayerNo(0)); + dStage_dt_c_decode(dzs, stageDt, l_layerFuncTable_5053, 3); + } + + info++; + } + } } -#pragma pop /* 800265DC-80026670 020F1C 0094+00 1/0 0/0 0/0 .text dStage_multInfoInit__FP11dStage_dt_cPviPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm int dStage_multInfoInit(dStage_dt_c* param_0, void* param_1, int param_2, - void* param_3) { - nofralloc -#include "asm/d/d_stage/dStage_multInfoInit__FP11dStage_dt_cPviPv.s" +static int dStage_multInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum, void* param_3) { + stageDt->setMulti((dStage_Multi_c*)((char*)i_data + 4)); + dStage_initRoomKeepDoorInfo(); + + readMult(stageDt, stageDt->getMulti(), false); + readMult(stageDt, stageDt->getOldMulti(), true); + stageDt->setRoomNo(-1); + + return 1; } -#pragma pop /* 80026670-800266A4 020FB0 0034+00 1/0 0/0 0/0 .text dStage_lbnkInfoInit__FP11dStage_dt_cPviPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm int dStage_lbnkInfoInit(dStage_dt_c* param_0, void* param_1, int param_2, - void* param_3) { - nofralloc -#include "asm/d/d_stage/dStage_lbnkInfoInit__FP11dStage_dt_cPviPv.s" +static int dStage_lbnkInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum, void* param_3) { + stageDt->setLbnk((dStage_Lbnk_c*)((char*)i_data + 4)); + return 1; } -#pragma pop /* 800266A4-8002670C 020FE4 0068+00 1/0 0/0 0/0 .text dStage_roomTresureInit__FP11dStage_dt_cPviPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm int dStage_roomTresureInit(dStage_dt_c* param_0, void* param_1, int param_2, - void* param_3) { - nofralloc -#include "asm/d/d_stage/dStage_roomTresureInit__FP11dStage_dt_cPviPv.s" +static int dStage_roomTresureInit(dStage_dt_c* stageDt, void* i_data, int entryNum, void* param_3) { + stageDt->setTresure((stage_tresure_class*)((char*)i_data + 4)); + dStage_actorInit(stageDt, i_data, entryNum, param_3); + return 1; } -#pragma pop /* 8002670C-80026730 02104C 0024+00 1/0 0/0 0/0 .text * dStage_layerTresureInit__FP11dStage_dt_cPviPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm int dStage_layerTresureInit(dStage_dt_c* param_0, void* param_1, int param_2, - void* param_3) { - nofralloc -#include "asm/d/d_stage/dStage_layerTresureInit__FP11dStage_dt_cPviPv.s" +static int dStage_layerTresureInit(dStage_dt_c* stageDt, void* i_data, int entryNum, + void* param_3) { + dStage_actorInit(stageDt, i_data, entryNum, param_3); + return 1; } -#pragma pop /* 80026730-80026764 021070 0034+00 1/0 0/0 0/0 .text dStage_dmapInfoInit__FP11dStage_dt_cPviPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm int dStage_dmapInfoInit(dStage_dt_c* param_0, void* param_1, int param_2, - void* param_3) { - nofralloc -#include "asm/d/d_stage/dStage_dmapInfoInit__FP11dStage_dt_cPviPv.s" +static int dStage_dmapInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum, void* param_3) { + stageDt->setDMap((dStage_DMap_c*)((char*)i_data + 4)); + return 1; } -#pragma pop /* 80026764-800267DC 0210A4 0078+00 1/0 0/0 0/0 .text * dStage_stageDrtgInfoInit__FP11dStage_dt_cPviPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm int dStage_stageDrtgInfoInit(dStage_dt_c* param_0, void* param_1, int param_2, - void* param_3) { - nofralloc -#include "asm/d/d_stage/dStage_stageDrtgInfoInit__FP11dStage_dt_cPviPv.s" +static int dStage_stageDrtgInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum, + void* param_3) { + stageDt->setDrTg((stage_tgsc_class*)((char*)i_data + 4)); + dStage_tgscInfoInit(stageDt, i_data, entryNum, param_3); + dStage_KeepDoorInfoProc(stageDt, (stage_tgsc_class*)((char*)i_data + 4)); + return 1; } -#pragma pop /* 800267DC-80026844 02111C 0068+00 2/0 0/0 0/0 .text * dStage_roomDrtgInfoInit__FP11dStage_dt_cPviPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm int dStage_roomDrtgInfoInit(dStage_dt_c* param_0, void* param_1, int param_2, - void* param_3) { - nofralloc -#include "asm/d/d_stage/dStage_roomDrtgInfoInit__FP11dStage_dt_cPviPv.s" +static int dStage_roomDrtgInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum, + void* param_3) { + stageDt->setDrTg((stage_tgsc_class*)((char*)i_data + 4)); + dStage_doorInfoInit(stageDt, i_data, entryNum, param_3); + return 1; } -#pragma pop /* 80026844-80026898 021184 0054+00 1/0 0/0 0/0 .text dStage_elstInfoInit__FP11dStage_dt_cPviPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm int dStage_elstInfoInit(dStage_dt_c* param_0, void* param_1, int param_2, - void* param_3) { - nofralloc -#include "asm/d/d_stage/dStage_elstInfoInit__FP11dStage_dt_cPviPv.s" +static int dStage_elstInfoInit(dStage_dt_c* stageDt, void* i_data, int param_2, void* param_3) { + dStage_Elst_c* elst = (dStage_Elst_c*)((char*)i_data + 4); + + if (param_2 == 0) { + stageDt->setElst(NULL); + } else { + stageDt->setElst(elst); + } + + return 1; } -#pragma pop /* 80026898-80026914 0211D8 007C+00 1/1 0/0 0/0 .text dKankyo_create__Fv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void dKankyo_create() { - nofralloc -#include "asm/d/d_stage/dKankyo_create__Fv.s" +static void dKankyo_create() { + fopKyM_fastCreate(PROC_KANKYO, NULL, NULL, NULL, NULL); + fopKyM_fastCreate(PROC_KYEFF, NULL, NULL, NULL, NULL); + fopKyM_fastCreate(PROC_KYEFF2, NULL, NULL, NULL, NULL); + fopKyM_fastCreate(PROC_ENVSE, NULL, NULL, NULL, NULL); } -#pragma pop /* 80026914-80026940 021254 002C+00 1/1 0/0 0/0 .text layerMemoryInfoLoader__FPvP11dStage_dt_ci */ static void layerMemoryInfoLoader(void* i_data, dStage_dt_c* i_stage, int param_2) { - dStage_dt_c_decode(i_data, i_stage, &l_layerFuncTable_5131[0], 2); + dStage_dt_c_decode(i_data, i_stage, l_layerFuncTable_5131, 2); } /* 80026940-800269B4 021280 0074+00 1/1 0/0 0/0 .text @@ -2794,83 +2816,77 @@ static void layerMemoryInfoLoader(void* i_data, dStage_dt_c* i_stage, int param_ static void dStage_dt_c_stageInitLoader(void* i_data, dStage_dt_c* i_stage) { dStage_dt_c_offsetToPtr(i_data); i_stage->init(); - dStage_dt_c_decode(i_data, i_stage, &l_funcTable_5136, 1); + dStage_dt_c_decode(i_data, i_stage, l_funcTable_5136, 1); layerMemoryInfoLoader(i_data, i_stage, -1); } /* 800269B4-80026AE8 0212F4 0134+00 2/2 0/0 0/0 .text layerTableLoader__FPvP11dStage_dt_ci */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void layerTableLoader(void* param_0, dStage_dt_c* param_1, int param_2) { - nofralloc -#include "asm/d/d_stage/layerTableLoader__FPvP11dStage_dt_ci.s" +static void layerTableLoader(void* i_data, dStage_dt_c* stageDt, int roomNo) { + int newRoomNo; + if (roomNo != -1) { + newRoomNo = roomNo; + } else { + newRoomNo = dComIfGp_getStartStageRoomNo(); + } + + dStage_setLayerTagName(l_layerFuncTableA, ARRAY_SIZE(l_layerFuncTableA), + dComIfG_play_c::getLayerNo(0)); + dStage_dt_c_decode(i_data, stageDt, l_layerFuncTableA, ARRAY_SIZE(l_layerFuncTableA)); + + dStage_Elst_c* elst = dComIfGp_getStage()->getElst(); + if (elst != NULL && newRoomNo >= 0 && elst->field_0x0 > newRoomNo) { + dStage_Elst_c::unkData* d = elst->field_0x4; + int layer = dComIfG_play_c::getLayerNo(0); + dStage_setLayerTagName(l_envLayerFuncTable, ARRAY_SIZE(l_envLayerFuncTable), + d[newRoomNo].field_0x0[layer]); + dStage_dt_c_decode(i_data, stageDt, l_envLayerFuncTable, ARRAY_SIZE(l_envLayerFuncTable)); + } else { + dStage_setLayerTagName(l_envLayerFuncTable, ARRAY_SIZE(l_envLayerFuncTable), 0); + dStage_dt_c_decode(i_data, stageDt, l_envLayerFuncTable, ARRAY_SIZE(l_envLayerFuncTable)); + } } -#pragma pop /* 80026AE8-80026AF0 021428 0008+00 1/0 0/0 0/0 .text getElst__16dStage_stageDt_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dStage_Elst_c* dStage_stageDt_c::getElst() { - nofralloc -#include "asm/d/d_stage/getElst__16dStage_stageDt_cFv.s" +dStage_Elst_c* dStage_stageDt_c::getElst() { + return mElst; } -#pragma pop /* 80026AF0-80026B58 021430 0068+00 2/2 0/0 0/0 .text layerActorLoader__FPvP11dStage_dt_ci */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void layerActorLoader(void* param_0, dStage_dt_c* param_1, int param_2) { - nofralloc -#include "asm/d/d_stage/layerActorLoader__FPvP11dStage_dt_ci.s" +static void layerActorLoader(void* i_data, dStage_dt_c* stageDt, int param_2) { + dStage_setLayerTagName(l_layerFuncTable_5158, 4, dComIfG_play_c::getLayerNo(0)); + dStage_dt_c_decode(i_data, stageDt, l_layerFuncTable_5158, 4); } -#pragma pop /* 80026B58-80026BBC 021498 0064+00 1/1 0/0 0/0 .text dStage_dt_c_stageLoader__FPvP11dStage_dt_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void dStage_dt_c_stageLoader(void* param_0, dStage_dt_c* param_1) { - nofralloc -#include "asm/d/d_stage/dStage_dt_c_stageLoader__FPvP11dStage_dt_c.s" +static void dStage_dt_c_stageLoader(void* i_data, dStage_dt_c* stageDt) { + dStage_dt_c_decode(i_data, stageDt, l_funcTable_5163, 26); + layerTableLoader(i_data, stageDt, -1); + layerActorLoader(i_data, stageDt, -1); } -#pragma pop /* 80026BBC-80026C34 0214FC 0078+00 0/0 1/1 0/0 .text dStage_dt_c_roomLoader__FPvP11dStage_dt_ci */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dStage_dt_c_roomLoader(void* param_0, dStage_dt_c* param_1, int param_2) { - nofralloc -#include "asm/d/d_stage/dStage_dt_c_roomLoader__FPvP11dStage_dt_ci.s" +void dStage_dt_c_roomLoader(void* i_data, dStage_dt_c* stageDt, int param_2) { + dStage_dt_c_offsetToPtr(i_data); + stageDt->init(); + dStage_dt_c_decode(i_data, stageDt, l_funcTable_5168, 14); + layerTableLoader(i_data, stageDt, param_2); } -#pragma pop /* 80026C34-80026C8C 021574 0058+00 0/0 1/1 0/0 .text dStage_dt_c_roomReLoader__FPvP11dStage_dt_ci */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dStage_dt_c_roomReLoader(void* param_0, dStage_dt_c* param_1, int param_2) { - nofralloc -#include "asm/d/d_stage/dStage_dt_c_roomReLoader__FPvP11dStage_dt_ci.s" +void dStage_dt_c_roomReLoader(void* i_data, dStage_dt_c* stageDt, int param_2) { + dStage_dt_c_decode(i_data, stageDt, l_funcTable_5173, 8); + layerActorLoader(i_data, stageDt, param_2); } -#pragma pop /* 80026C8C-80026CDC 0215CC 0050+00 0/0 1/1 0/0 .text * dStage_dt_c_fieldMapLoader__FPvP11dStage_dt_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dStage_dt_c_fieldMapLoader(void* param_0, dStage_dt_c* param_1) { - nofralloc -#include "asm/d/d_stage/dStage_dt_c_fieldMapLoader__FPvP11dStage_dt_c.s" +void dStage_dt_c_fieldMapLoader(void* i_data, dStage_dt_c* i_stage) { + dStage_dt_c_offsetToPtr(i_data); + dStage_dt_c_decode(i_data, i_stage, l_funcTable_5178, 3); } -#pragma pop /* 80026CDC-80026D38 02161C 005C+00 0/0 1/1 0/0 .text dStage_infoCreate__Fv */ void dStage_infoCreate() { @@ -2880,77 +2896,109 @@ void dStage_infoCreate() { dStage_dt_c_stageInitLoader(stageRsrc, dComIfGp_getStage()); } -/* ############################################################################################## */ -/* 80378A50-80378A50 0050B0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80378B73 = "vrbox_sora.bmd"; -#pragma pop - /* 80406194-804061A0 032EB4 000A+02 2/2 14/14 7/7 .bss mDemoArcName__20dStage_roomControl_c */ char dStage_roomControl_c::mDemoArcName[10]; /* 80026D38-80026DF8 021678 00C0+00 0/0 1/1 0/0 .text dStage_Create__Fv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dStage_Create() { - nofralloc -#include "asm/d/d_stage/dStage_Create__Fv.s" -} -#pragma pop +void dStage_Create() { + void* stageRsrc = dComIfG_getStageRes("stage.dzs"); + dStage_dt_c_stageLoader(stageRsrc, dComIfGp_getStage()); + daSus_c::execute(); -/* ############################################################################################## */ -/* 80378A50-80378A50 0050B0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80378B82 = "Stg_00"; -SECTION_DEAD static char const* const stringBase_80378B89 = "Event"; -#pragma pop + if (dComIfGp_getStartStageRoomNo() >= 0) { + dStage_roomInit(dComIfGp_getStartStageRoomNo()); + } + + *dStage_roomControl_c::getDemoArcName() = NULL; + dKankyo_create(); + + if (dComIfG_getStageRes("vrbox_sora.bmd")) { + fpcSCtRq_Request(fpcLy_CurrentLayer(), PROC_VRBOX, NULL, NULL, NULL); + fpcSCtRq_Request(fpcLy_CurrentLayer(), PROC_VRBOX2, NULL, NULL, NULL); + } + + dComIfGp_evmng_create(); +} /* 80026DF8-80026FDC 021738 01E4+00 0/0 1/1 0/7 .text dStage_Delete__Fv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dStage_Delete() { - nofralloc -#include "asm/d/d_stage/dStage_Delete__Fv.s" +void dStage_Delete() { + if (*dStage_roomControl_c::getDemoArcName() != NULL) { + dComIfG_deleteObjectResMain(dStage_roomControl_c::getDemoArcName()); + } + + int stageNo = dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()); + dComIfGs_putSave(stageNo); + dStage_roomControl_c::removeRoomDzs(); + + if (mDoRst::isReset() || !dComIfGp_isEnableNextStage() || + strcmp(dComIfGp_getNextStageName(), dComIfGp_getStartStageName())) { + dStage_roomControl_c::destroyMemoryBlock(); + + if (dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) == 1) { + dRes_info_c* info = dComIfG_getStageResInfo("Stg_00"); + *info->getArchiveName() = 'X'; + dComIfGp_setOldMulti(); + } else { + dComIfG_deleteStageRes("Stg_00"); + dComIfG_deleteStageRes("Xtg_00"); + dComIfGp_resetOldMulti(); + } + } + + dComIfG_deleteObjectResMain("Event"); + dComIfG_deleteObjectResMain(dComIfGp_getCameraParamFileName(0)); + dComIfGp_evmng_remove(); + dComIfGp_getStage()->init(); } -#pragma pop /* 80026FDC-80026FE8 02191C 000C+00 1/0 0/0 0/0 .text setOldMulti__16dStage_stageDt_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dStage_stageDt_c::setOldMulti() { - nofralloc -#include "asm/d/d_stage/setOldMulti__16dStage_stageDt_cFv.s" +void dStage_stageDt_c::setOldMulti() { + mOldMulti = mMulti; } -#pragma pop /* 80026FE8-800270FC 021928 0114+00 0/0 1/1 1/1 .text dStage_RoomCheck__FP11cBgS_GndChk */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dStage_RoomCheck(cBgS_GndChk* param_0) { - nofralloc -#include "asm/d/d_stage/dStage_RoomCheck__FP11cBgS_GndChk.s" +int dStage_RoomCheck(cBgS_GndChk* gndChk) { + int roomReadId = dStage_roomControl_c::getRoomReadId(); + int roomId; + + if (gndChk == NULL) { + roomId = roomReadId; + } else { + roomId = dComIfG_Bgsp().GetRoomId(*gndChk); + } + + if (roomId < 0) { + return 0; + } + + if (roomId != dComIfGp_roomControl_getStayNo()) { + dComIfGp_roomControl_zoneCountCheck(roomId); + } + + if (roomReadId < 0) { + roomReadId = dComIfGp_roomControl_getStayNo(); + } + + roomRead_class* room = dComIfGp_getStageRoom(); + if (room != NULL && room->field_0x0 > roomReadId) { + int timePass = + dStage_roomRead_dt_c_GetTimePass(*room->field_0x4[dComIfGp_roomControl_getStayNo()]); + dComIfGp_roomControl_setTimePass(timePass); + + roomRead_data_class* room_data = room->field_0x4[roomReadId]; + return dComIfGp_roomControl_loadRoom(room_data->field_0x0, room_data->field_0x4, false); + } + + return 1; } -#pragma pop /* 800270FC-80027170 021A3C 0074+00 0/0 1/1 0/0 .text * dStage_changeSceneExitId__FR13cBgS_PolyInfofUlScs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dStage_changeSceneExitId(cBgS_PolyInfo& param_0, f32 param_1, u32 param_2, s8 param_3, - s16 param_4) { - nofralloc -#include "asm/d/d_stage/dStage_changeSceneExitId__FR13cBgS_PolyInfofUlScs.s" +void dStage_changeSceneExitId(cBgS_PolyInfo& param_0, f32 speed, u32 mode, s8 roomNo, s16 angle) { + dStage_changeScene(dComIfG_Bgsp().GetExitId(param_0), speed, mode, roomNo, angle, -1); } -#pragma pop /* ############################################################################################## */ /* 80451C94-80451C98 000294 0004+00 2/2 0/0 0/0 .sdata2 @5315 */ @@ -2961,37 +3009,65 @@ SECTION_SDATA2 static f64 lit_5317 = 4503601774854144.0 /* cast s32 to float */; /* 80027170-800272E0 021AB0 0170+00 1/1 10/10 63/63 .text dStage_changeScene__FifUlScsi */ +// scls info types might be wrong or inlines wrong +#ifdef NONMATCHING +int dStage_changeScene(int i_exitId, f32 speed, u32 mode, s8 room_no, s16 angle, int param_5) { + stage_scls_info_dummy_class* scls; + + if (room_no == -1) { + scls = dComIfGp_getStageSclsInfo(); + } else { + scls = dComIfGp_roomControl_getStatusRoomDt(room_no)->mRoomDt.getSclsInfo(); + } + + if (scls == NULL) { + return 0; + } + + stage_scls_info_class* scls_info = &scls->mEntries[i_exitId]; + u8 wipe = dStage_sclsInfo_getWipe(scls_info); + int wipe_time = dStage_sclsInfo_getWipeTime(scls_info); + s8 layer = dStage_sclsInfo_getSceneLayer(scls_info); + int timeH = dStage_sclsInfo_getTimeH(scls_info); + + if (layer >= 15) { + layer = -1; + } + + if (layer == -1 && param_5 != -1) { + layer = param_5; + } + + if (timeH < 31) { + dKy_set_nexttime(15.0f * timeH); + } + + dComIfGp_setNextStage(scls_info->mStage, scls_info->mStart, scls_info->mRoom, layer, speed, + mode, 1, wipe == 15 ? 0 : wipe, angle, 1, wipe_time); + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dStage_changeScene(int param_0, f32 param_1, u32 param_2, s8 param_3, s16 param_4, - int param_5) { +asm int dStage_changeScene(int i_exitId, f32 speed, u32 mode, s8 room_no, s16 angle, int param_5) { nofralloc #include "asm/d/d_stage/dStage_changeScene__FifUlScsi.s" } #pragma pop +#endif /* 800272E0-800272E8 021C20 0008+00 1/0 0/0 0/0 .text getSclsInfo__15dStage_roomDt_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm stage_scls_info_dummy_class* dStage_roomDt_c::getSclsInfo() const { - nofralloc -#include "asm/d/d_stage/getSclsInfo__15dStage_roomDt_cCFv.s" +stage_scls_info_dummy_class* dStage_roomDt_c::getSclsInfo() const { + return mSclsInfo; } -#pragma pop /* 800272E8-800272F0 021C28 0008+00 1/0 0/0 0/0 .text getSclsInfo__16dStage_stageDt_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm stage_scls_info_dummy_class* dStage_stageDt_c::getSclsInfo() const { - nofralloc -#include "asm/d/d_stage/getSclsInfo__16dStage_stageDt_cCFv.s" +stage_scls_info_dummy_class* dStage_stageDt_c::getSclsInfo() const { + return mSclsInfo; } -#pragma pop /* ############################################################################################## */ /* 80378A50-80378A50 0050B0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ @@ -3013,14 +3089,11 @@ asm void dStage_changeScene4Event(int param_0, s8 param_1, int param_2, bool par #pragma pop /* 800274B0-80027524 021DF0 0074+00 0/0 1/1 0/0 .text dStage_restartRoom__FUlUli */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dStage_restartRoom(u32 param_0, u32 param_1, int param_2) { - nofralloc -#include "asm/d/d_stage/dStage_restartRoom__FUlUli.s" +void dStage_restartRoom(u32 roomParam, u32 mode, int param_2) { + dComIfGp_setNextStage(dComIfGp_getStartStageName(), -1, dComIfGs_getRestartRoomNo(), -1, 0.0f, + mode, 0, 0, 0, param_2, 0); + dComIfGs_setRestartRoomParam(roomParam); } -#pragma pop void dStage_roomDt_c::setCamera(stage_camera_class* i_Camera) { mCamera = i_Camera; diff --git a/src/d/d_timer.cpp b/src/d/d_timer.cpp index e38ccefd7a..66f360b7ab 100644 --- a/src/d/d_timer.cpp +++ b/src/d/d_timer.cpp @@ -4,6 +4,7 @@ // #include "d/d_timer.h" +#include "d/com/d_com_inf_game.h" #include "dol2asm.h" #include "dolphin/types.h" @@ -11,75 +12,10 @@ // Types: // -struct request_of_phase_process_class {}; - -struct msg_class {}; - -struct cXyz {}; - -struct dTimer_c { - /* 8025CA0C */ void _create(); - /* 8025CF04 */ void _execute(); - /* 8025D33C */ void _draw(); - /* 8025D3BC */ void _delete(); - /* 8025D524 */ void deleteCheck(); - /* 8025D618 */ void start(int, s16); - /* 8025D538 */ void start(int); - /* 8025D7C0 */ void stock_start(s16); - /* 8025D708 */ void stock_start(); - /* 8025D7E8 */ void stop(u8); - /* 8025D86C */ void restart(u8); - /* 8025D920 */ void end(int); - /* 8025D9E0 */ void deleteRequest(); - /* 8025D9F0 */ void getTimeMs(); - /* 8025DA54 */ void getLimitTimeMs(); - /* 8025DA9C */ void getRestTimeMs(); - /* 8025DB10 */ void isStart(); - /* 802613DC */ void createGetIn(cXyz); -}; - -struct dRes_info_c {}; - -struct dRes_control_c { - /* 8003C1E4 */ void getResInfo(char const*, dRes_info_c*, int); -}; - struct dMsgObject_c { /* 8023822C */ void getStatus(); }; -struct JMSMesgEntry_c {}; - -struct dMeter2Info_c { - /* 8021C250 */ void getString(u32, char*, JMSMesgEntry_c*); -}; - -struct JUtility { - struct TColor {}; -}; - -struct dMeter2Draw_c { - /* 802140DC */ void drawPikari(f32, f32, f32*, f32, JUtility::TColor, JUtility::TColor, - JUtility::TColor, JUtility::TColor, f32, u8); -}; - -struct dLib_time_c { - /* 80032804 */ void getTime(); -}; - -struct dDlst_base_c {}; - -struct dDlst_list_c { - /* 80056794 */ void set(dDlst_base_c**&, dDlst_base_c**&, dDlst_base_c*); -}; - -struct J2DPane { - /* 802F7AFC */ void getParentPane(); - /* 802F7FCC */ void animationTransform(); -}; - -struct JKRArchive {}; - struct dDlst_TimerScrnDraw_c { /* 8025DB38 */ dDlst_TimerScrnDraw_c(); /* 8025DBE0 */ void setHIO(); @@ -109,18 +45,6 @@ struct dDlst_TimerScrnDraw_c { /* 80261394 */ ~dDlst_TimerScrnDraw_c(); }; -struct dComIfG_play_c { - /* 8002CB9C */ void getTimerNowTimeMs(); - /* 8002CBAC */ void getTimerLimitTimeMs(); - /* 8002CBBC */ void getTimerMode(); - /* 8002CBCC */ void getTimerType(); - /* 8002CBDC */ void getTimerPtr(); -}; - -struct JAISoundID {}; - -struct Vec {}; - struct Z2SeMgr { /* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8); }; @@ -129,44 +53,10 @@ struct Z2AudioMgr { static u8 mAudioMgrPtr[4 + 4 /* padding */]; }; -struct JKRHeap { - /* 802CE784 */ void getTotalFreeSize(); -}; - -struct JKRFileLoader { - /* 802D4270 */ void getGlbResource(char const*, JKRFileLoader*); -}; - -struct JKRExpHeap {}; - -struct J2DTextBox { - /* 80300658 */ void getStringPtr() const; -}; - -struct J2DGrafContext {}; - -struct J2DScreen { - /* 802F8498 */ J2DScreen(); - /* 802F8648 */ void setPriority(char const*, u32, JKRArchive*); - /* 802F8ED4 */ void draw(f32, f32, J2DGrafContext const*); -}; - struct J2DAnmLoaderDataBase { /* 80308A6C */ void load(void const*); }; -struct CPaneMgrAlpha { - /* 802555C8 */ void show(); - /* 80255608 */ void hide(); - /* 802557D0 */ void setAlphaRate(f32); -}; - -struct CPaneMgr { - /* 80253984 */ CPaneMgr(J2DScreen*, u64, u8, JKRExpHeap*); - /* 802545B0 */ void paneTrans(f32, f32); - /* 80254EBC */ void getGlobalVtxCenter(J2DPane*, bool, s16); -}; - // // Forward References: // @@ -298,14 +188,9 @@ extern "C" void _restgpr_26(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); extern "C" void __div2i(); -extern "C" void strcmp(); -extern "C" void strcpy(); extern "C" extern void* g_fopMsg_Method[5 + 1 /* padding */]; -extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */]; extern "C" extern void* __vt__12dDlst_base_c[3]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; extern "C" extern u8 g_drawHIO[3880]; -extern "C" extern u8 g_meter2_info[248]; extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; // @@ -378,7 +263,7 @@ asm void dTimer_c::_delete() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dTimer_c::deleteCheck() { +asm int dTimer_c::deleteCheck() { nofralloc #include "asm/d/d_timer/deleteCheck__8dTimer_cFv.s" } diff --git a/src/d/map/d_map_path_dmap.cpp b/src/d/map/d_map_path_dmap.cpp index 45e5aa933b..b9025f1b1c 100644 --- a/src/d/map/d_map_path_dmap.cpp +++ b/src/d/map/d_map_path_dmap.cpp @@ -4,19 +4,16 @@ // #include "d/map/d_map_path_dmap.h" +#include "d/com/d_com_inf_game.h" +#include "d/meter/d_meter_HIO.h" #include "dol2asm.h" #include "dolphin/types.h" +#include "m_Do/m_Do_mtx.h" // // Types: // -struct mDoMtx_stack_c { - /* 8000CE38 */ void scaleM(f32, f32, f32); - - static u8 now[48]; -}; - struct dMpath_n { struct dTexObjAggregate_c { /* 8003C85C */ void create(); @@ -181,76 +178,64 @@ extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); extern "C" u8 now__14mDoMtx_stack_c[48]; extern "C" u8 mStatus__20dStage_roomControl_c[65792]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; extern "C" u8 m_texObjAgg__8dMpath_n[28]; extern "C" u8 mTypeGroupListAll__7dTres_c[204 + 4 /* padding */]; -extern "C" extern u8 g_fmapHIO[1188]; // // Declarations: // /* 8003ECA0-8003ECD8 0395E0 0038+00 0/0 3/3 0/0 .text chkGetCompass__10dMapInfo_nFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMapInfo_n::chkGetCompass() { - nofralloc -#include "asm/d/map/d_map_path_dmap/chkGetCompass__10dMapInfo_nFv.s" +bool dMapInfo_n::chkGetCompass() { + return dComIfGs_isDungeonItemCompass() ? true : false; } -#pragma pop /* 8003ECD8-8003ED10 039618 0038+00 0/0 4/4 0/0 .text chkGetMap__10dMapInfo_nFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMapInfo_n::chkGetMap() { - nofralloc -#include "asm/d/map/d_map_path_dmap/chkGetMap__10dMapInfo_nFv.s" +bool dMapInfo_n::chkGetMap() { + return dComIfGs_isDungeonItemMap() ? true : false; } -#pragma pop /* 8003ED10-8003ED60 039650 0050+00 2/2 7/7 0/0 .text isVisitedRoom__10dMapInfo_nFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMapInfo_n::isVisitedRoom(int param_0) { - nofralloc -#include "asm/d/map/d_map_path_dmap/isVisitedRoom__10dMapInfo_nFi.s" +bool dMapInfo_n::isVisitedRoom(int i_roomNo) { + return g_fmapHIO.mAllRegionsUnlocked || dComIfGs_isVisitedRoom(i_roomNo); } -#pragma pop /* 8003ED60-8003EDC0 0396A0 0060+00 1/1 2/2 0/0 .text correctionOriginPos__10dMapInfo_nFScP3Vec */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMapInfo_n::correctionOriginPos(s8 param_0, Vec* param_1) { - nofralloc -#include "asm/d/map/d_map_path_dmap/correctionOriginPos__10dMapInfo_nFScP3Vec.s" +void dMapInfo_n::correctionOriginPos(s8 i_roomNo, Vec* pos_p) { + dStage_FileList2_dt_c* filelist = dStage_roomControl_c::getFileList2(i_roomNo); + + if (pos_p != NULL) { + rotAngle(filelist, pos_p); + offsetPlus(filelist, pos_p); + } } -#pragma pop /* 8003EDC0-8003EDEC 039700 002C+00 3/3 0/0 0/0 .text * offsetPlus__10dMapInfo_nFPC21dStage_FileList2_dt_cP3Vec */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMapInfo_n::offsetPlus(dStage_FileList2_dt_c const* param_0, Vec* param_1) { - nofralloc -#include "asm/d/map/d_map_path_dmap/offsetPlus__10dMapInfo_nFPC21dStage_FileList2_dt_cP3Vec.s" +void dMapInfo_n::offsetPlus(dStage_FileList2_dt_c const* filelist, Vec* p_pos) { + if (filelist == NULL) { + return; + } + + p_pos->x += filelist->field_0x14; + p_pos->z += filelist->field_0x18; } -#pragma pop /* 8003EDEC-8003EE5C 03972C 0070+00 3/3 0/0 0/0 .text * rotAngle__10dMapInfo_nFPC21dStage_FileList2_dt_cP3Vec */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMapInfo_n::rotAngle(dStage_FileList2_dt_c const* param_0, Vec* param_1) { - nofralloc -#include "asm/d/map/d_map_path_dmap/rotAngle__10dMapInfo_nFPC21dStage_FileList2_dt_cP3Vec.s" +void dMapInfo_n::rotAngle(dStage_FileList2_dt_c const* filelist, Vec* p_pos) { + s16 rot = 0; + + if (filelist != NULL) { + rot = filelist->field_0x1c; + } + mDoMtx_stack_c::YrotS(rot); + + Vec mult; + mDoMtx_stack_c::multVec(p_pos, &mult); + + *p_pos = mult; } -#pragma pop /* ############################################################################################## */ /* 80451E28-80451E2C 000428 0004+00 6/6 0/0 0/0 .sdata2 @3796 */ @@ -262,6 +247,30 @@ SECTION_SDATA2 static u8 lit_3796[4] = { }; /* 8003EE5C-8003EF20 03979C 00C4+00 1/1 6/6 0/0 .text getMapPlayerPos__10dMapInfo_nFv */ +// stayNo / mStatus loads switched +#ifdef NONMATCHING +Vec dMapInfo_n::getMapPlayerPos() { + Vec pos; + fopAc_ac_c* player = daPy_getPlayerActorClass(); + if (player != NULL) { + pos = player->mCurrent.mPosition; + } else { + f32 tmp = FLOAT_LABEL(lit_3796); + pos.x = tmp; + pos.y = tmp; + pos.z = tmp; + } + + s8 stayNo = dComIfGp_roomControl_getStayNo(); + dStage_FileList2_dt_c* fileList2_p = dStage_roomControl_c::getFileList2(stayNo); + if (fileList2_p != NULL) { + rotAngle(fileList2_p, &pos); + offsetPlus(fileList2_p, &pos); + } + + return pos; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -270,6 +279,7 @@ asm Vec dMapInfo_n::getMapPlayerPos() { #include "asm/d/map/d_map_path_dmap/getMapPlayerPos__10dMapInfo_nFv.s" } #pragma pop +#endif /* 8003EF20-8003EF70 039860 0050+00 1/1 1/1 0/0 .text getMapPlayerAngleY__10dMapInfo_nFv */ diff --git a/src/d/meter/d_meter2.cpp b/src/d/meter/d_meter2.cpp index 106a3431ed..067832a2eb 100644 --- a/src/d/meter/d_meter2.cpp +++ b/src/d/meter/d_meter2.cpp @@ -1351,10 +1351,6 @@ asm void dMeter2_c::alphaAnimeButtonCross() { } #pragma pop -inline daPy_py_c* daPy_getPlayerActorClass() { - return (daPy_py_c*)dComIfGp_getPlayer(0); -} - inline u16 dComIfGp_event_checkHind(u16 flag) { if (!dComIfGp_event_runCheck()) { return false; diff --git a/src/d/meter/d_meter2_info.cpp b/src/d/meter/d_meter2_info.cpp index d4b84b17fd..2b4848736c 100644 --- a/src/d/meter/d_meter2_info.cpp +++ b/src/d/meter/d_meter2_info.cpp @@ -1274,8 +1274,8 @@ asm void dMeter2Info_getPixel(f32 param_0, f32 param_1, f32 param_2, f32 param_3 /* 8021E4B0-8021E530 218DF0 0080+00 0/0 2/2 1/1 .text dMeter2Info_setCloth__FUcb */ void dMeter2Info_setCloth(u8 i_clothId, bool param_1) { - if ((int)i_clothId >= MAGIC_LV1 || (int)i_clothId < WEARS_CASUAL) { - i_clothId = WEARS_CASUAL; + if ((int)i_clothId >= MAGIC_LV1 || (int)i_clothId < WEAR_CASUAL) { + i_clothId = WEAR_CASUAL; param_1 = false; } diff --git a/src/d/meter/d_meter_map.cpp b/src/d/meter/d_meter_map.cpp index e333a537ab..20834e0cdf 100644 --- a/src/d/meter/d_meter_map.cpp +++ b/src/d/meter/d_meter_map.cpp @@ -106,10 +106,6 @@ inline dStage_stageDt_c* dComIfGp_getStage() { return &g_dComIfG_gameInfo.play.getStage(); } -inline daPy_py_c* daPy_getPlayerActorClass() { - return (daPy_py_c*)dComIfGp_getPlayer(0); -} - inline BOOL dComIfGs_isEventBit(u16 id) { return g_dComIfG_gameInfo.info.getEvent().isEventBit(id); } diff --git a/src/d/particle/d_particle.cpp b/src/d/particle/d_particle.cpp index fc0a5455da..b44228ba19 100644 --- a/src/d/particle/d_particle.cpp +++ b/src/d/particle/d_particle.cpp @@ -443,7 +443,6 @@ extern "C" void entryTexNoAnimator__16J3DMaterialTableFP16J3DAnmTexPattern(); extern "C" void entryTevRegAnimator__16J3DMaterialTableFP15J3DAnmTevRegKey(); extern "C" void GXInvalidateVtxCache(); extern "C" void GXFlush(); -extern "C" void GXLoadNrmMtxImm(); extern "C" void __register_global_object(); extern "C" void __destroy_new_array(); extern "C" void __construct_array(); diff --git a/src/d/save/d_save.cpp b/src/d/save/d_save.cpp index bef3b669f6..19f288b34e 100644 --- a/src/d/save/d_save.cpp +++ b/src/d/save/d_save.cpp @@ -228,8 +228,8 @@ inline BOOL dComIfGs_isEventBit(u16 id) { return g_dComIfG_gameInfo.info.getSavedata().getEvent().isEventBit(id); } -static u8 dSv_item_rename(u8 item_id) { - switch (item_id) { +static u8 dSv_item_rename(u8 i_itemNo) { + switch (i_itemNo) { case OIL_BOTTLE_2: return OIL_BOTTLE; case RED_BOTTLE_2: @@ -237,7 +237,7 @@ static u8 dSv_item_rename(u8 item_id) { case OIL2: return OIL; default: - return item_id; + return i_itemNo; } } @@ -259,7 +259,7 @@ void dSv_player_status_a_c::init() { mSelectEquip[i] = 0; } - mSelectEquip[COLLECT_CLOTHING] = WEARS_CASUAL; + mSelectEquip[COLLECT_CLOTHING] = WEAR_CASUAL; mSelectEquip[COLLECT_SWORD] = NO_ITEM; mSelectEquip[COLLECT_SHIELD] = NO_ITEM; mSelectEquip[COLLECT_SMELL] = NO_ITEM; @@ -269,33 +269,33 @@ void dSv_player_status_a_c::init() { mMagic = 0; mMagicFlag = 0; unk29 = 0; - mTransformStatus = 0; + mTransformStatus = TF_STATUS_HUMAN; for (int i = 0; i < 3; i++) { unk31[i] = 0; } } -void dSv_player_status_a_c::setSelectItemIndex(signed int i_no, u8 item_index) { +void dSv_player_status_a_c::setSelectItemIndex(int i_no, u8 item_index) { if (i_no < MAX_SELECT_ITEM) { mSelectItem[i_no] = item_index; } } -u8 dSv_player_status_a_c::getSelectItemIndex(signed int i_no) const { +u8 dSv_player_status_a_c::getSelectItemIndex(int i_no) const { if (i_no < MAX_SELECT_ITEM) { return mSelectItem[i_no]; } return 0; } -void dSv_player_status_a_c::setMixItemIndex(signed int i_no, u8 item_index) { +void dSv_player_status_a_c::setMixItemIndex(int i_no, u8 item_index) { if (i_no < MAX_SELECT_ITEM) { mMixItem[i_no] = item_index; } } -u8 dSv_player_status_a_c::getMixItemIndex(signed int i_no) const { +u8 dSv_player_status_a_c::getMixItemIndex(int i_no) const { if (i_no < MAX_SELECT_ITEM) { return mMixItem[i_no]; } @@ -318,7 +318,7 @@ u16 dSv_player_status_a_c::getRupeeMax() const { BOOL dSv_player_status_a_c::isMagicFlag(u8 i_magic) const { if (i_magic == 0) { - return dComIfGs_isEventBit(0x2304); + return dComIfGs_isEventBit(0x2304); // Magic Unlocked } return (mMagicFlag & (u8)(1 << i_magic)) ? TRUE : FALSE; } @@ -360,12 +360,11 @@ void dSv_horse_place_c::init() { mRoomNo = 0; } -void dSv_horse_place_c::set(const char* i_name, const cXyz& i_position, s16 i_x_rot, - signed char i_room_id) { +void dSv_horse_place_c::set(const char* i_name, const cXyz& i_pos, s16 i_angle, s8 i_roomNo) { strcpy(mName, i_name); - mPos = i_position; - mAngleY = i_x_rot; - mRoomNo = i_room_id; + mPos = i_pos; + mAngleY = i_angle; + mRoomNo = i_roomNo; } void dSv_player_return_place_c::init() { @@ -376,10 +375,10 @@ void dSv_player_return_place_c::init() { unk11 = 0; } -void dSv_player_return_place_c::set(const char* i_name, s8 i_room_id, u8 i_spawn_id) { +void dSv_player_return_place_c::set(const char* i_name, s8 i_roomNo, u8 i_status) { strcpy(mName, i_name); - mRoomNo = i_room_id; - mPlayerStatus = i_spawn_id; + mRoomNo = i_roomNo; + mPlayerStatus = i_status; } void dSv_player_field_last_stay_info_c::init() { @@ -396,30 +395,24 @@ void dSv_player_field_last_stay_info_c::init() { } } -void dSv_player_field_last_stay_info_c::set(const char* i_name, const cXyz& i_last_position, - s16 i_last_angle, signed char i_last_spawn_id, - u8 i_last_room_id) { +void dSv_player_field_last_stay_info_c::set(const char* i_name, const cXyz& i_pos, s16 i_angle, + s8 i_spawn, u8 i_regionNo) { strcpy(mName, i_name); - - mPos = i_last_position; - mAngleY = i_last_angle; - mLastSpawnId = i_last_spawn_id; - mRegionNo = i_last_room_id; + mPos = i_pos; + mAngleY = i_angle; + mLastSpawnId = i_spawn; + mRegionNo = i_regionNo; } -void dSv_player_field_last_stay_info_c::onRegionBit(int i_region_bit) { - if (i_region_bit < 0) { - return; +void dSv_player_field_last_stay_info_c::onRegionBit(int i_region) { + if (i_region >= 0 && i_region < 8) { + mRegion |= (u8)(1 << i_region); } - if (8 <= i_region_bit) { - return; - } - mRegion |= (u8)(1 << i_region_bit); } -BOOL dSv_player_field_last_stay_info_c::isRegionBit(int i_region_bit) const { - if ((i_region_bit >= 0) && (i_region_bit < 8)) { - return (mRegion & (u8)(1 << i_region_bit)) ? TRUE : FALSE; +BOOL dSv_player_field_last_stay_info_c::isRegionBit(int i_region) const { + if (i_region >= 0 && i_region < 8) { + return (mRegion & (u8)(1 << i_region)) ? TRUE : FALSE; } return false; } @@ -437,107 +430,104 @@ void dSv_player_last_mark_info_c::init() { } } -void dSv_player_last_mark_info_c::setWarpItemData(const char* i_ooccoo_stage, - const cXyz& i_ooccoo_position, s16 i_ooccoo_angle, - s8 i_ooccoo_room_id, u8 unk1, u8 unk2) { - strcpy(mName, i_ooccoo_stage); - mPos.set(i_ooccoo_position); - mAngleY = i_ooccoo_angle; - mRoomNo = i_ooccoo_room_id; +void dSv_player_last_mark_info_c::setWarpItemData(const char* i_name, const cXyz& i_pos, + s16 i_angle, s8 i_roomNo, u8 unk1, u8 unk2) { + strcpy(mName, i_name); + mPos.set(i_pos); + mAngleY = i_angle; + mRoomNo = i_roomNo; } void dSv_player_item_c::init() { - for (int i = 0; i < 24; i++) { + for (int i = 0; i < MAX_ITEM_SLOTS; i++) { mItems[i] = NO_ITEM; mItemSlots[i] = NO_ITEM; } } -void dSv_player_item_c::setItem(int item_slot, u8 item_id) { +void dSv_player_item_c::setItem(int item_slot, u8 i_itemNo) { if (item_slot < MAX_ITEM_SLOTS) { - mItems[item_slot] = item_id; + mItems[item_slot] = i_itemNo; setLineUpItem(); } - int select_item_index = DEFAULT_SELECT_ITEM_INDEX; - - do { - if (item_slot == dComIfGs_getSelectItemIndex(select_item_index)) { - dComIfGp_setSelectItem(select_item_index); + for (int i = DEFAULT_SELECT_ITEM_INDEX; i < MAX_SELECT_ITEM - 1; i++) { + if (item_slot == dComIfGs_getSelectItemIndex(i)) { + dComIfGp_setSelectItem(i); } - select_item_index++; - } while (select_item_index < MAX_SELECT_ITEM - 1); + } } -u8 dSv_player_item_c::getItem(int item_idx, bool isComboItem) const { - if (item_idx < MAX_ITEM_SLOTS) { - if (isComboItem) { - for (int i = 0; i < 2; i++) { - if ((dComIfGs_getSelectItemIndex(i) == item_idx || - item_idx == dComIfGs_getMixItemIndex(i)) && +u8 dSv_player_item_c::getItem(int slot_no, bool check_combo) const { + if (slot_no < MAX_ITEM_SLOTS) { + if (check_combo) { + for (int i = 0; i < SELECT_ITEM_NUM; i++) { + if ((slot_no == dComIfGs_getSelectItemIndex(i) || + slot_no == dComIfGs_getMixItemIndex(i)) && dComIfGs_getMixItemIndex(i) != NO_ITEM) { - u8 item_id_2 = mItems[dComIfGs_getSelectItemIndex(i)]; - u8 item_id_1 = mItems[dComIfGs_getMixItemIndex(i)]; + u8 select_item = mItems[dComIfGs_getSelectItemIndex(i)]; + u8 mix_item = mItems[dComIfGs_getMixItemIndex(i)]; // Get Bomb arrow check: Bow + Normal Bombs - if ((item_id_2 == BOW && item_id_1 == NORMAL_BOMB) || - (item_id_1 == BOW && item_id_2 == NORMAL_BOMB)) { + if ((select_item == BOW && mix_item == NORMAL_BOMB) || + (mix_item == BOW && select_item == NORMAL_BOMB)) { return BOMB_ARROW; } // Get Bomb arrow check: Bow + Water Bombs - if ((item_id_2 == BOW && item_id_1 == WATER_BOMB) || - (item_id_1 == BOW && item_id_2 == WATER_BOMB)) { + if ((select_item == BOW && mix_item == WATER_BOMB) || + (mix_item == BOW && select_item == WATER_BOMB)) { return BOMB_ARROW; } // Get Bomb arrow check: Bow + Bomblings - if ((item_id_2 == BOW && item_id_1 == POKE_BOMB) || - (item_id_1 == BOW && item_id_2 == POKE_BOMB)) { + if ((select_item == BOW && mix_item == POKE_BOMB) || + (mix_item == BOW && select_item == POKE_BOMB)) { return BOMB_ARROW; } // Get Hawkeye check - if ((item_id_2 == BOW && item_id_1 == HAWK_EYE) || - (item_id_1 == BOW && item_id_2 == HAWK_EYE)) { + if ((select_item == BOW && mix_item == HAWK_EYE) || + (mix_item == BOW && select_item == HAWK_EYE)) { return HAWK_ARROW; } // Get Rod w/ bee larva - if ((item_id_2 == FISHING_ROD_1 && item_id_1 == BEE_CHILD) || - (item_id_1 == FISHING_ROD_1 && item_id_2 == BEE_CHILD)) { + if ((select_item == FISHING_ROD_1 && mix_item == BEE_CHILD) || + (mix_item == FISHING_ROD_1 && select_item == BEE_CHILD)) { return BEE_ROD; } // Get Rod w/ coral earring - if ((item_id_2 == FISHING_ROD_1 && item_id_1 == ZORAS_JEWEL) || - (item_id_1 == FISHING_ROD_1 && item_id_2 == ZORAS_JEWEL)) { + if ((select_item == FISHING_ROD_1 && mix_item == ZORAS_JEWEL) || + (mix_item == FISHING_ROD_1 && select_item == ZORAS_JEWEL)) { return JEWEL_ROD; } // Get Rod w/ worm - if ((item_id_2 == FISHING_ROD_1 && item_id_1 == WORM) || - (item_id_1 == FISHING_ROD_1 && item_id_2 == WORM)) { + if ((select_item == FISHING_ROD_1 && mix_item == WORM) || + (mix_item == FISHING_ROD_1 && select_item == WORM)) { return WORM_ROD; } - if (i == 3) { + // This block will only run on the Wii version + if (i == SELECT_ITEM_B) { if (dComIfGs_getSelectItemIndex(i) == 0 && dComIfGs_getMixItemIndex(i) == 0) { - dComIfGs_setSelectItemIndex(i, 0xFF); - dComIfGs_setMixItemIndex(i, 0xFF); - return 0xFF; + dComIfGs_setSelectItemIndex(i, NO_ITEM); + dComIfGs_setMixItemIndex(i, NO_ITEM); + return NO_ITEM; } } // Uncertain combination item===>%d, %d\n - OSReport_Error("合成アイテム不定===>%d, %d\n", item_id_2, item_id_1); + OSReport_Error("合成アイテム不定===>%d, %d\n", select_item, mix_item); } } } - return mItems[item_idx]; - } else { - return NO_ITEM; + return mItems[slot_no]; } + + return NO_ITEM; } static u8 i_item_lst[23] = {0x0A, 0x08, 0x06, 0x02, 0x09, 0x04, 0x03, 0x00, 0x01, 0x17, 0x14, 0x05, @@ -556,7 +546,7 @@ void dSv_player_item_c::setLineUpItem() { for (int i1 = 0; i1 < 23; i1++) { if (mItems[i_item_lst[i1]] != NO_ITEM) { - mItemSlots[i2] = i_item_lst[i2]; + mItemSlots[i2] = i_item_lst[i1]; i2++; } } @@ -572,36 +562,32 @@ asm void dSv_player_item_c::setLineUpItem() { #pragma pop #endif -u8 dSv_player_item_c::getLineUpItem(int slot_number) const { - if (slot_number < MAX_ITEM_SLOTS) { - return mItemSlots[slot_number]; +u8 dSv_player_item_c::getLineUpItem(int slot_no) const { + if (slot_no < MAX_ITEM_SLOTS) { + return mItemSlots[slot_no]; } return NO_ITEM; } /* 80033370-80033450 02DCB0 00E0+00 1/1 2/2 0/0 .text setBottleItemIn__17dSv_player_item_cFUcUc */ #ifdef NONMATCHING -void dSv_player_item_c::setBottleItemIn(u8 i_item_id_1, u8 i_item_id_2) { - u8 current_item_index; - u8 new_item_index; - - current_item_index = dSv_item_rename(i_item_id_1); - new_item_index = dSv_item_rename(i_item_id_2); +void dSv_player_item_c::setBottleItemIn(u8 curItemIn, u8 newItemIn) { + u8 cur_item = dSv_item_rename(curItemIn); + u8 new_item = dSv_item_rename(newItemIn); for (int i = 0; i < 4; i++) { - // sanitize input to make sure it's only a bottle - if (current_item_index == items[i + SLOT_11]) { - setItem(i + SLOT_11, new_item_index); - // if hotsprings water, turn on the timer - if (new_item_index == 107) { + if (cur_item == mItems[i + SLOT_11]) { + setItem(i + SLOT_11, new_item); + if (new_item == HOT_SPRING) { dMeter2Info_setHotSpringTimer(i + SLOT_11); } - for (int j = 0; j < 4; j++) { - j = getSelectItemIndex(i); - if (i + SLOT_11 == j) { - dComIfGp_setSelectItem__Fi(j); + + for (int j = 0; j < 3; j++) { + if (i + SLOT_11 == dComIfGs_getSelectItemIndex(j)) { + dComIfGp_setSelectItem(j); } } + return; } } } @@ -609,7 +595,7 @@ void dSv_player_item_c::setBottleItemIn(u8 i_item_id_1, u8 i_item_id_2) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dSv_player_item_c::setBottleItemIn(u8 param_0, u8 param_1) { +asm void dSv_player_item_c::setBottleItemIn(u8 curItemIn, u8 newItemIn) { nofralloc #include "asm/d/save/d_save/setBottleItemIn__17dSv_player_item_cFUcUc.s" } @@ -620,15 +606,14 @@ asm void dSv_player_item_c::setBottleItemIn(u8 param_0, u8 param_1) { * setEmptyBottleItemIn__17dSv_player_item_cFUc */ // this is 1 instruction off #ifdef NONMATCHING -void dSv_player_item_c::setEmptyBottleItemIn(u8 i_item_id) { - setBottleItemIn(EMPTY_BOTTLE, dSv_item_rename(i_item_id)); - return; +void dSv_player_item_c::setEmptyBottleItemIn(u8 i_itemNo) { + setBottleItemIn(EMPTY_BOTTLE, dSv_item_rename(i_itemNo)); } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dSv_player_item_c::setEmptyBottleItemIn(u8 param_0) { +asm void dSv_player_item_c::setEmptyBottleItemIn(u8 i_itemNo) { nofralloc #include "asm/d/save/d_save/setEmptyBottleItemIn__17dSv_player_item_cFUc.s" } @@ -644,10 +629,10 @@ void dSv_player_item_c::setEmptyBottle() { } } -void dSv_player_item_c::setEmptyBottle(u8 item_id) { +void dSv_player_item_c::setEmptyBottle(u8 i_itemNo) { for (int i = 0; i < 4; i++) { if (dComIfGs_getItem((u8)(i + SLOT_11), true) == NO_ITEM) { - dComIfGs_setItem((u8)(i + SLOT_11), item_id); + dComIfGs_setItem((u8)(i + SLOT_11), i_itemNo); return; } } @@ -657,46 +642,40 @@ void dSv_player_item_c::setEmptyBottle(u8 item_id) { * setEquipBottleItemIn__17dSv_player_item_cFUcUc */ // one instruction #ifdef NONMATCHING -void dSv_player_item_c::setEquipBottleItemIn(u8 param_0, u8 param_1) { - u8 item = dSv_item_rename(param_1); - u8 selectItemIdx; - if (dComIfGs_getSelectItemIndex(param_0) >= 11 && dComIfGs_getSelectItemIndex(param_0) <= 14) { - if (item == HOT_SPRING) { - selectItemIdx = dComIfGs_getSelectItemIndex(param_0); - dMeter2Info_setHotSpringTimer(selectItemIdx); - } - - selectItemIdx = dComIfGs_getSelectItemIndex(param_0); - setItem(selectItemIdx, item); +void dSv_player_item_c::setEquipBottleItemIn(u8 curItemIn, u8 newItemIn) { + u8 new_item = dSv_item_rename(newItemIn); - selectItemIdx = dComIfGs_getSelectItemIndex(param_0); - dComIfGs_setItem(selectItemIdx, item); + if (dComIfGs_getSelectItemIndex(curItemIn) >= SLOT_11 && + dComIfGs_getSelectItemIndex(curItemIn) <= SLOT_14) { + if (new_item == HOT_SPRING) { + dMeter2Info_setHotSpringTimer(dComIfGs_getSelectItemIndex(curItemIn)); + } - selectItemIdx = dComIfGs_getSelectItemIndex(param_0); - dComIfGp_setItem(selectItemIdx, item); - dComIfGp_setSelectItem(param_0); + setItem(dComIfGs_getSelectItemIndex(curItemIn), new_item); + dComIfGs_setItem(dComIfGs_getSelectItemIndex(curItemIn), new_item); + dComIfGp_setItem(dComIfGs_getSelectItemIndex(curItemIn), new_item); + dComIfGp_setSelectItem(curItemIn); } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dSv_player_item_c::setEquipBottleItemIn(u8 param_0, u8 param_1) { +asm void dSv_player_item_c::setEquipBottleItemIn(u8 curItemIn, u8 newItemIn) { nofralloc #include "asm/d/save/d_save/setEquipBottleItemIn__17dSv_player_item_cFUcUc.s" } #pragma pop #endif -void dSv_player_item_c::setEquipBottleItemEmpty(u8 selected_index) { - setEquipBottleItemIn(selected_index, EMPTY_BOTTLE); +void dSv_player_item_c::setEquipBottleItemEmpty(u8 curItemIn) { + setEquipBottleItemIn(curItemIn, EMPTY_BOTTLE); } -u8 dSv_player_item_c::checkBottle(u8 i_item_id) { - u8 item_id; +u8 dSv_player_item_c::checkBottle(u8 i_itemNo) { u8 num_bottles = 0; + u8 item_id = dSv_item_rename(i_itemNo); - item_id = dSv_item_rename(i_item_id); for (int i = 0; i < BOTTLE_MAX; i++) { if (item_id == mItems[i + SLOT_11]) { num_bottles++; @@ -790,31 +769,27 @@ BOOL dSv_player_item_c::checkInsectBottle() { } u8 dSv_player_item_c::checkEmptyBottle() { - u8 num = 0; + u8 bottleNum = 0; for (int i = 0; i < BOTTLE_MAX; i++) { - // Loop through the bottle slots (11 - 14) and increment counter for every empty bottle if (mItems[i + SLOT_11] == EMPTY_BOTTLE) { - num++; + bottleNum++; } } - return num; + return bottleNum; } -void dSv_player_item_c::setBombBagItemIn(u8 param_0, u8 param_1, bool param_2) { - int i = 0; - for (; i < 3; i++) { - if (param_0 == mItems[i + SLOT_15]) { - setItem(i + SLOT_15, param_1); +void dSv_player_item_c::setBombBagItemIn(u8 curBomb, u8 newBomb, bool setNum) { + for (int i = 0; i < 3; i++) { + if (curBomb == mItems[i + SLOT_15]) { + setItem(i + SLOT_15, newBomb); - if (param_2 == 1 && param_1 != BOMB_BAG_LV1) { - u8 bombMax = dComIfGs_getBombMax(param_1); - dComIfGs_setBombNum(i, bombMax); + if (setNum == true && newBomb != BOMB_BAG_LV1) { + dComIfGs_setBombNum(i, dComIfGs_getBombMax(newBomb)); } for (int j = 0; j < 3; j++) { - u8 selectItem = dComIfGs_getSelectItemIndex(j); - if (i + SLOT_15 == selectItem) { + if (i + SLOT_15 == dComIfGs_getSelectItemIndex(j)) { dComIfGp_setSelectItem(j); } } @@ -823,23 +798,20 @@ void dSv_player_item_c::setBombBagItemIn(u8 param_0, u8 param_1, bool param_2) { } } -void dSv_player_item_c::setBombBagItemIn(u8 param_0, u8 param_1, u8 param_2, bool param_3) { - int i = 0; - for (; i < 3; i++) { - if (param_0 == mItems[i + SLOT_15]) { - setItem(i + SLOT_15, param_1); +void dSv_player_item_c::setBombBagItemIn(u8 curBomb, u8 newBomb, u8 bombNum, bool setNum) { + for (int i = 0; i < 3; i++) { + if (curBomb == mItems[i + SLOT_15]) { + setItem(i + SLOT_15, newBomb); - if (param_3 == 1 && param_1 != BOMB_BAG_LV1) { - u8 bombMax = dComIfGs_getBombMax(param_1); - if (param_2 > bombMax) { - param_2 = dComIfGs_getBombMax(param_1); + if (setNum == 1 && newBomb != BOMB_BAG_LV1) { + if (bombNum > dComIfGs_getBombMax(newBomb)) { + bombNum = dComIfGs_getBombMax(newBomb); } - dComIfGs_setBombNum(i, param_2); + dComIfGs_setBombNum(i, bombNum); } for (int j = 0; j < 3; j++) { - u8 selectItem = dComIfGs_getSelectItemIndex(j); - if (i + SLOT_15 == selectItem) { + if (i + SLOT_15 == dComIfGs_getSelectItemIndex(j)) { dComIfGp_setSelectItem(j); } } @@ -848,72 +820,66 @@ void dSv_player_item_c::setBombBagItemIn(u8 param_0, u8 param_1, u8 param_2, boo } } -void dSv_player_item_c::setEmptyBombBagItemIn(u8 param_1, bool param_2) { - setBombBagItemIn(BOMB_BAG_LV1, param_1, param_2); +void dSv_player_item_c::setEmptyBombBagItemIn(u8 newBomb, bool setNum) { + setBombBagItemIn(BOMB_BAG_LV1, newBomb, setNum); } -void dSv_player_item_c::setEmptyBombBagItemIn(u8 param_1, u8 param_2, bool param_3) { - setBombBagItemIn(BOMB_BAG_LV1, param_1, param_2, param_3); +void dSv_player_item_c::setEmptyBombBagItemIn(u8 newBomb, u8 bombNum, bool setNum) { + setBombBagItemIn(BOMB_BAG_LV1, newBomb, bombNum, setNum); } void dSv_player_item_c::setEmptyBombBag() { for (int i = 0; i < 3; i++) { - if (dComIfGs_getItem((u8)(i + SLOT_15), true) == 0xff) { + if (dComIfGs_getItem((u8)(i + SLOT_15), true) == NO_ITEM) { dComIfGs_setItem((u8)(i + SLOT_15), BOMB_BAG_LV1); return; } } } -void dSv_player_item_c::setEmptyBombBag(u8 param_0, u8 param_1) { +void dSv_player_item_c::setEmptyBombBag(u8 newBomb, u8 bombNum) { for (int i = 0; i < 3; i++) { - if (dComIfGs_getItem((u8)(i + SLOT_15), true) == 0xff) { - dComIfGs_setItem((u8)(i + SLOT_15), param_0); + if (dComIfGs_getItem((u8)(i + SLOT_15), true) == NO_ITEM) { + dComIfGs_setItem((u8)(i + SLOT_15), newBomb); - if (param_0 == BOMB_BAG_LV1) { + if (newBomb == BOMB_BAG_LV1) { return; } - if (param_1 > dComIfGs_getBombMax(param_0)) { - param_1 = dComIfGs_getBombMax(param_0); + if (bombNum > dComIfGs_getBombMax(newBomb)) { + bombNum = dComIfGs_getBombMax(newBomb); } - dComIfGs_setBombNum(i, param_1); + dComIfGs_setBombNum(i, bombNum); return; } } } -u8 dSv_player_item_c::checkBombBag(u8 param_1) { - u8 counter = 0; +u8 dSv_player_item_c::checkBombBag(u8 i_itemNo) { + u8 bombBags = 0; for (int i = 0; i < BOMB_BAG_MAX; i++) { - // Loop through the bomb bag slots (15 - 17) and increment counter for every match - if (param_1 == mItems[i + SLOT_15]) { - counter++; + if (i_itemNo == mItems[i + SLOT_15]) { + bombBags++; } } - return counter; + return bombBags; } -void dSv_player_item_c::setWarashibeItem(u8 i_item_id) { - u32 select_item_index; - - dComIfGs_setItem(SLOT_21, i_item_id); - dComIfGp_setItem(SLOT_21, i_item_id); +void dSv_player_item_c::setWarashibeItem(u8 i_itemNo) { + dComIfGs_setItem(SLOT_21, i_itemNo); + dComIfGp_setItem(SLOT_21, i_itemNo); for (int i = 0; i < 4; i++) { - select_item_index = dComIfGs_getSelectItemIndex((u8)i); - if (select_item_index == SLOT_21) { + if (dComIfGs_getSelectItemIndex((u8)i) == SLOT_21) { dComIfGp_setSelectItem((u8)i); } } } void dSv_player_item_c::setRodTypeLevelUp() { - int current_fishing_rod_item_id = mItems[SLOT_20]; - - switch (current_fishing_rod_item_id) { + switch (mItems[SLOT_20]) { case BEE_ROD: { mItems[SLOT_20] = JEWEL_BEE_ROD; break; @@ -933,8 +899,8 @@ void dSv_player_item_c::setRodTypeLevelUp() { } } -void dSv_player_item_c::setBaitItem(u8 param_1) { - switch (param_1) { +void dSv_player_item_c::setBaitItem(u8 i_itemNo) { + switch (i_itemNo) { case BEE_CHILD: { dComIfGs_isItemFirstBit(ZORAS_JEWEL) ? mItems[SLOT_20] = JEWEL_BEE_ROD : mItems[SLOT_20] = BEE_ROD; @@ -966,17 +932,14 @@ void dSv_player_get_item_c::init() { /* 80033E60-80033E94 02E7A0 0034+00 0/0 3/3 1/1 .text onFirstBit__21dSv_player_get_item_cFUc */ // this is a few instructions off #ifdef NONMATCHING -void dSv_player_get_item_c::onFirstBit(u8 i_itemno) { - int tmp = (int)i_itemno; - int tmp2 = (i_itemno >> 3) & 0xE0; - // int uVar1 = ; - mItemFlags[tmp2] |= 1 << (tmp & 0x1F); +void dSv_player_get_item_c::onFirstBit(u8 i_itemNo) { + mItemFlags[i_itemNo >> 5] |= (1 << (i_itemNo & 0x1F)); } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dSv_player_get_item_c::onFirstBit(u8 param_0) { +asm void dSv_player_get_item_c::onFirstBit(u8 i_itemNo) { nofralloc #include "asm/d/save/d_save/onFirstBit__21dSv_player_get_item_cFUc.s" } @@ -987,7 +950,7 @@ asm void dSv_player_get_item_c::onFirstBit(u8 param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dSv_player_get_item_c::offFirstBit(u8 param_0) { +asm void dSv_player_get_item_c::offFirstBit(u8 i_itemNo) { nofralloc #include "asm/d/save/d_save/offFirstBit__21dSv_player_get_item_cFUc.s" } @@ -997,7 +960,7 @@ asm void dSv_player_get_item_c::offFirstBit(u8 param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm int dSv_player_get_item_c::isFirstBit(u8 param_0) const { +asm int dSv_player_get_item_c::isFirstBit(u8 i_itemNo) const { nofralloc #include "asm/d/save/d_save/isFirstBit__21dSv_player_get_item_cCFUc.s" } @@ -1033,18 +996,19 @@ void dSv_player_item_record_c::setBottleNum(u8 i_bottleIdx, u8 bottle_num) { mBottleNum[i_bottleIdx] = bottle_num; } -u8 dSv_player_item_record_c::addBottleNum(u8 i_bottleIdx, s16 param_2) { - int iVar3 = mBottleNum[i_bottleIdx] + param_2; +u8 dSv_player_item_record_c::addBottleNum(u8 i_bottleIdx, s16 num) { + int bottleNum = mBottleNum[i_bottleIdx] + num; - dComIfGs_getItem((u8)(i_bottleIdx + 0xB), true); + dComIfGs_getItem((u8)(i_bottleIdx + SLOT_11), true); - if (iVar3 < 0) { + if (bottleNum < 0) { mBottleNum[i_bottleIdx] = 0; - } else if (iVar3 > dComIfGs_getBottleMax()) { + } else if (bottleNum > dComIfGs_getBottleMax()) { mBottleNum[i_bottleIdx] = dComIfGs_getBottleMax(); } else { - mBottleNum[i_bottleIdx] = iVar3; + mBottleNum[i_bottleIdx] = bottleNum; } + return mBottleNum[i_bottleIdx]; } @@ -1076,21 +1040,19 @@ void dSv_player_item_max_c::setBombNum(u8 bomb_id, u8 bomb_max) { } } -u8 dSv_player_item_max_c::getBombNum(u8 param_1) const { - u8 iVar3; - - iVar3 = 0x1; +u8 dSv_player_item_max_c::getBombNum(u8 bombId) const { + u8 lv_multiplier = 1; if (dComIfGs_isItemFirstBit(BOMB_BAG_LV2)) { - iVar3 = 0x2; + lv_multiplier = 2; } - switch (param_1) { + switch (bombId) { case NORMAL_BOMB: - return (u8)(mItemMax[NORMAL_BOMB_MAX] * iVar3); + return (u8)(mItemMax[NORMAL_BOMB_MAX] * lv_multiplier); case WATER_BOMB: - return (u8)(mItemMax[WATER_BOMB_MAX] * iVar3); + return (u8)(mItemMax[WATER_BOMB_MAX] * lv_multiplier); case POKE_BOMB: - return (u8)(mItemMax[POKE_BOMB_MAX] * iVar3); + return (u8)(mItemMax[POKE_BOMB_MAX] * lv_multiplier); default: return 0; } @@ -1152,27 +1114,27 @@ void dSv_light_drop_c::init() { } } -void dSv_light_drop_c::setLightDropNum(u8 i_nowLevel, u8 param_2) { - if ((i_nowLevel < LIGHT_DROP_STAGE) || (i_nowLevel > 6)) { - mLightDropNum[i_nowLevel] = param_2; +void dSv_light_drop_c::setLightDropNum(u8 i_nowLevel, u8 dropNum) { + if (i_nowLevel < LIGHT_DROP_STAGE || i_nowLevel > 6) { + mLightDropNum[i_nowLevel] = dropNum; } } u8 dSv_light_drop_c::getLightDropNum(u8 i_nowLevel) const { - if ((i_nowLevel >= LIGHT_DROP_STAGE) && (i_nowLevel <= 6)) { + if (i_nowLevel >= LIGHT_DROP_STAGE && i_nowLevel <= 6) { return 0; } return mLightDropNum[i_nowLevel]; } void dSv_light_drop_c::onLightDropGetFlag(u8 i_nowLevel) { - if ((i_nowLevel < LIGHT_DROP_STAGE) || (i_nowLevel > 6)) { + if (i_nowLevel < LIGHT_DROP_STAGE || i_nowLevel > 6) { mLightDropGetFlag |= (u8)(1 << i_nowLevel); } } BOOL dSv_light_drop_c::isLightDropGetFlag(u8 i_nowLevel) const { - if ((i_nowLevel >= LIGHT_DROP_STAGE) && (i_nowLevel <= 6)) { + if (i_nowLevel >= LIGHT_DROP_STAGE && i_nowLevel <= 6) { return 0; } return mLightDropGetFlag & (u8)(1 << i_nowLevel) ? TRUE : FALSE; @@ -1190,15 +1152,15 @@ void dSv_letter_info_c::init() { } void dSv_letter_info_c::onLetterGetFlag(int i_no) { - mLetterGetFlags[i_no >> 0x5] |= 0x1 << (i_no & 0x1F); + mLetterGetFlags[i_no >> 5] |= 1 << (i_no & 0x1F); } BOOL dSv_letter_info_c::isLetterGetFlag(int i_no) const { - return mLetterGetFlags[i_no >> 0x5] & (1 << (i_no & 0x1F)) ? TRUE : FALSE; + return mLetterGetFlags[i_no >> 5] & (1 << (i_no & 0x1F)) ? TRUE : FALSE; } void dSv_letter_info_c::onLetterReadFlag(int i_no) { - mLetterReadFlags[i_no >> 0x5] |= 0x1 << (i_no & 0x1F); + mLetterReadFlags[i_no >> 5] |= 1 << (i_no & 0x1F); } BOOL dSv_letter_info_c::isLetterReadFlag(int i_no) const { @@ -1219,8 +1181,8 @@ void dSv_fishing_info_c::addFishCount(u8 fish_index) { } void dSv_player_info_c::init() { - dMeter2Info_getString(0x382, (char*)mPlayerName, NULL); - dMeter2Info_getString(0x383, (char*)mHorseName, NULL); + dMeter2Info_getString(0x382, mPlayerName, NULL); // Link + dMeter2Info_getString(0x383, mHorseName, NULL); // Epona unk4 = 0; unk0 = 0; @@ -1235,11 +1197,9 @@ void dSv_player_info_c::init() { } void dSv_player_config_c::init() { - u32 os_soundMode; - unk0 = 1; - os_soundMode = OSGetSoundMode(); - if (os_soundMode == SOUND_MODE_MONO) { + + if (OSGetSoundMode() == SOUND_MODE_MONO) { mSoundMode = SOUND_MODE_MONO; Z2AudioMgr::mAudioMgrPtr->setOutputMode(SOUND_MODE_MONO); } else { @@ -1321,7 +1281,7 @@ void dSv_memBit_c::offTbox(int i_no) { } BOOL dSv_memBit_c::isTbox(int i_no) const { - return 1 << (i_no & 0x1f) & mTbox[i_no >> 0x5] ? TRUE : FALSE; + return 1 << (i_no & 0x1f) & mTbox[i_no >> 5] ? TRUE : FALSE; } void dSv_memBit_c::onSwitch(int i_no) { @@ -1332,22 +1292,22 @@ void dSv_memBit_c::offSwitch(int i_no) { } BOOL dSv_memBit_c::isSwitch(int i_no) const { - return (mSwitch[i_no >> 0x5] & 0x1 << (i_no & 0x1F)) ? TRUE : FALSE; + return (mSwitch[i_no >> 5] & 1 << (i_no & 0x1F)) ? TRUE : FALSE; } /* 8003488C-800348C4 02F1CC 0038+00 1/1 0/0 0/0 .text revSwitch__12dSv_memBit_cFi */ // instruction in wrong place #ifdef NONMATCHING BOOL dSv_memBit_c::revSwitch(int i_no) { - unsigned int tmp = 1 << (i_no & 0x1F); - (mTbox + (i_no >> 0x5))[0x2] ^= tmp; - return (mTbox + (i_no >> 0x5))[0x2] & tmp ? TRUE : FALSE; + u32 tmp = 1 << (i_no & 0x1F); + mSwitch[i_no >> 5] ^= tmp; + return mSwitch[i_no >> 5] & tmp ? TRUE : FALSE; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm int dSv_memBit_c::revSwitch(int param_0) { +asm int dSv_memBit_c::revSwitch(int i_no) { nofralloc #include "asm/d/save/d_save/revSwitch__12dSv_memBit_cFi.s" } @@ -1359,7 +1319,7 @@ void dSv_memBit_c::onItem(int i_no) { } BOOL dSv_memBit_c::isItem(int i_no) const { - return (mItem[i_no >> 0x5] & 1 << (i_no & 0x1F)) ? TRUE : FALSE; + return (mItem[i_no >> 5] & 1 << (i_no & 0x1F)) ? TRUE : FALSE; } void dSv_memBit_c::onDungeonItem(int i_no) { @@ -1389,14 +1349,13 @@ BOOL dSv_event_c::isEventBit(u16 i_no) const { return mEvent[(i_no >> 8)] & (i_no & 0xFF) ? TRUE : FALSE; } -void dSv_event_c::setEventReg(u16 param_1, u8 param_2) { - u8 uVar1 = (param_1 >> 8); - mEvent[uVar1] &= ~(u8)param_1; - mEvent[uVar1] |= param_2; +void dSv_event_c::setEventReg(u16 i_reg, u8 i_no) { + mEvent[i_reg >> 8] &= ~(u8)i_reg; + mEvent[i_reg >> 8] |= i_no; } -u8 dSv_event_c::getEventReg(u16 param_1) const { - return (u8)param_1 & mEvent[param_1 >> 8]; +u8 dSv_event_c::getEventReg(u16 i_reg) const { + return (u8)i_reg & mEvent[i_reg >> 8]; } void dSv_MiniGame_c::init() { @@ -1429,8 +1388,8 @@ void dSv_memory2_c::offVisitedRoom(int i_no) { mVisitedRoom[i_no >> 5] &= ~(1 << (i_no & 0x1F)); } -BOOL dSv_memory2_c::isVisitedRoom(int param_1) { - return (1 << (param_1 & 0x1F) & mVisitedRoom[param_1 >> 5]) ? TRUE : FALSE; +BOOL dSv_memory2_c::isVisitedRoom(int i_no) { + return (1 << (i_no & 0x1F) & mVisitedRoom[i_no >> 5]) ? TRUE : FALSE; } bool dSv_danBit_c::init(s8 i_stage) { @@ -1466,7 +1425,7 @@ void dSv_danBit_c::offSwitch(int i_no) { } BOOL dSv_danBit_c::isSwitch(int i_no) const { - return mSwitch[i_no >> 0x5] & (0x1 << (i_no & 0x1F)) ? TRUE : FALSE; + return mSwitch[i_no >> 5] & (1 << (i_no & 0x1F)) ? TRUE : FALSE; } BOOL dSv_danBit_c::revSwitch(int i_no) { @@ -1521,14 +1480,14 @@ BOOL dSv_zoneBit_c::isSwitch(int i_no) const { #ifdef NONMATCHING BOOL dSv_zoneBit_c::revSwitch(int i_no) { int uVar1 = 1 << (i_no & 0xF); - switch_bitfield[i_no >> 4] ^= uVar1; - return switch_bitfield[i_no >> 4] & uVar1 ? TRUE : FALSE; + mSwitch[i_no >> 4] ^= uVar1; + return mSwitch[i_no >> 4] & uVar1 ? TRUE : FALSE; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm int dSv_zoneBit_c::revSwitch(int param_0) { +asm int dSv_zoneBit_c::revSwitch(int i_no) { nofralloc #include "asm/d/save/d_save/revSwitch__13dSv_zoneBit_cFi.s" } @@ -1646,11 +1605,11 @@ void dSv_info_c::initZone() { } } -u32 dSv_info_c::createZone(int param_1) { +u32 dSv_info_c::createZone(int i_roomNo) { dSv_zone_c* zone = mZone; for (int i = 0; i < 0x20; zone++, i++) { if (zone->getRoomNo() < 0) { - zone->init(param_1); + zone->init(i_roomNo); return i; } } @@ -1658,129 +1617,125 @@ u32 dSv_info_c::createZone(int param_1) { } void dSv_info_c::onSwitch(int i_no, int i_roomNo) { - if ((i_no == -1) || (i_no == 0xFF)) { + if (i_no == -1 || i_no == 255) { return; } - if (i_no < 0x80) { + if (i_no < MEMORY_SWITCH) { mMemory.getBit().onSwitch(i_no); - } else if (i_no < 0xc0) { - mDan.onSwitch(i_no - 0x80); + } else if (i_no < (MEMORY_SWITCH + DAN_SWITCH)) { + mDan.onSwitch(i_no - MEMORY_SWITCH); } else { int zoneId = dStage_roomControl_c::getZoneNo(i_roomNo); - if (i_no < 0xE0) { - mZone[zoneId].getZoneBit().onSwitch(i_no - 0xC0); + if (i_no < (MEMORY_SWITCH + DAN_SWITCH + ZONE_SWITCH)) { + mZone[zoneId].getZoneBit().onSwitch(i_no - (MEMORY_SWITCH + DAN_SWITCH)); } else { - mZone[zoneId].getZoneBit().onOneSwitch(i_no - 0xE0); + mZone[zoneId].getZoneBit().onOneSwitch(i_no - + (MEMORY_SWITCH + DAN_SWITCH + ZONE_SWITCH)); } } } void dSv_info_c::offSwitch(int i_no, int i_roomNo) { - if ((i_no == -1) || (i_no == 0xFF)) { + if (i_no == -1 || i_no == 255) { return; } - if (i_no < 0x80) { + if (i_no < MEMORY_SWITCH) { mMemory.getBit().offSwitch(i_no); - } else if (i_no < 0xc0) { - mDan.offSwitch(i_no - 0x80); + } else if (i_no < (MEMORY_SWITCH + DAN_SWITCH)) { + mDan.offSwitch(i_no - MEMORY_SWITCH); } else { int zoneId = dStage_roomControl_c::getZoneNo(i_roomNo); - if (i_no < 0xE0) { - mZone[zoneId].getZoneBit().offSwitch(i_no - 0xC0); + if (i_no < (MEMORY_SWITCH + DAN_SWITCH + ZONE_SWITCH)) { + mZone[zoneId].getZoneBit().offSwitch(i_no - (MEMORY_SWITCH + DAN_SWITCH)); } else { - mZone[zoneId].getZoneBit().offOneSwitch(i_no - 0xE0); + mZone[zoneId].getZoneBit().offOneSwitch(i_no - + (MEMORY_SWITCH + DAN_SWITCH + ZONE_SWITCH)); } } } BOOL dSv_info_c::isSwitch(int i_no, int i_roomNo) const { - int value; - if ((i_no == -1) || (i_no == 0xFF)) { + if (i_no == -1 || i_no == 255) { return FALSE; } - if (i_no < 0x80) { - value = mMemory.getBit().isSwitch(i_no); - } else if (i_no < 0xc0) { - value = mDan.isSwitch(i_no - 0x80); + if (i_no < MEMORY_SWITCH) { + return mMemory.getBit().isSwitch(i_no); + } else if (i_no < (MEMORY_SWITCH + DAN_SWITCH)) { + return mDan.isSwitch(i_no - MEMORY_SWITCH); } else { int zoneId = dStage_roomControl_c::getZoneNo(i_roomNo); - if ((zoneId < 0) || (zoneId >= 0x20)) { - value = FALSE; + if (zoneId < 0 || zoneId >= ZONE_MAX) { + return FALSE; } else { - if (i_no < 0xE0) { - value = mZone[zoneId].getBit().isSwitch(i_no - 0xC0); + if (i_no < (MEMORY_SWITCH + DAN_SWITCH + ZONE_SWITCH)) { + return mZone[zoneId].getBit().isSwitch(i_no - (MEMORY_SWITCH + DAN_SWITCH)); } else { - value = mZone[zoneId].getBit().isOneSwitch(i_no - 0xE0); + return mZone[zoneId].getBit().isOneSwitch( + i_no - (MEMORY_SWITCH + DAN_SWITCH + ZONE_SWITCH)); } } } - return value; } BOOL dSv_info_c::revSwitch(int i_no, int i_roomNo) { - int value; - if ((i_no == -1) || (i_no == 0xFF)) { + if (i_no == -1 || i_no == 255) { return FALSE; } - if (i_no < 0x80) { - value = mMemory.getBit().revSwitch(i_no); - } else if (i_no < 0xC0) { - value = mDan.revSwitch(i_no - 0x80); + if (i_no < MEMORY_SWITCH) { + return mMemory.getBit().revSwitch(i_no); + } else if (i_no < (MEMORY_SWITCH + DAN_SWITCH)) { + return mDan.revSwitch(i_no - MEMORY_SWITCH); } else { int zoneNo = dStage_roomControl_c::getZoneNo(i_roomNo); - if (i_no < 0xE0) { - value = mZone[zoneNo].getZoneBit().revSwitch(i_no - 0xC0); + if (i_no < (MEMORY_SWITCH + DAN_SWITCH + ZONE_SWITCH)) { + return mZone[zoneNo].getZoneBit().revSwitch(i_no - (MEMORY_SWITCH + DAN_SWITCH)); } else { - value = mZone[zoneNo].getZoneBit().revOneSwitch(i_no - 0xE0); + return mZone[zoneNo].getZoneBit().revOneSwitch( + i_no - (MEMORY_SWITCH + DAN_SWITCH + ZONE_SWITCH)); } } - - return value; } void dSv_info_c::onItem(int i_no, int i_roomNo) { - if ((i_no == -1) || (i_no == 0xFF)) { + if (i_no == -1 || i_no == 255) { return; } - if (i_no < 0x80) { + if (i_no < MEMORY_ITEM) { mDan.onItem(i_no); - } else if (i_no < 0xA0) { - mMemory.getBit().onItem(i_no - 0x80); + } else if (i_no < (MEMORY_ITEM + DAN_ITEM)) { + mMemory.getBit().onItem(i_no - MEMORY_ITEM); } else { int zoneNo = dStage_roomControl_c::getZoneNo(i_roomNo); - if (i_no < 0xC0) { - mZone[zoneNo].getZoneBit().onItem(i_no - 0xA0); + if (i_no < (MEMORY_ITEM + DAN_ITEM + ZONE_ITEM)) { + mZone[zoneNo].getZoneBit().onItem(i_no - (MEMORY_ITEM + DAN_ITEM)); } else { - mZone[zoneNo].getZoneBit().onOneItem(i_no - 0xC0); + mZone[zoneNo].getZoneBit().onOneItem(i_no - (MEMORY_ITEM + DAN_ITEM + ZONE_ITEM)); } } } BOOL dSv_info_c::isItem(int i_no, int i_roomNo) const { - int value; - if ((i_no == -1) || (i_no == 0xFF)) { + if (i_no == -1 || i_no == 255) { return FALSE; } - if (i_no < 0x80) { - value = mDan.isItem(i_no); - } else if (i_no < 0xA0) { - value = mMemory.getBit().isItem(i_no - 0x80); + if (i_no < MEMORY_ITEM) { + return mDan.isItem(i_no); + } else if (i_no < (MEMORY_ITEM + DAN_ITEM)) { + return mMemory.getBit().isItem(i_no - MEMORY_ITEM); } else { int zoneNo = dStage_roomControl_c::getZoneNo(i_roomNo); - if (i_no < 0xC0) { - value = mZone[zoneNo].getBit().isItem(i_no - 0xA0); + if (i_no < (MEMORY_ITEM + DAN_ITEM + ZONE_ITEM)) { + return mZone[zoneNo].getBit().isItem(i_no - (MEMORY_ITEM + DAN_ITEM)); } else { - value = mZone[zoneNo].getBit().isOneItem(i_no - 0xC0); + return mZone[zoneNo].getBit().isOneItem(i_no - (MEMORY_ITEM + DAN_ITEM + ZONE_ITEM)); } } - - return value; } void dSv_info_c::onActor(int i_id, int i_roomNo) { @@ -1821,7 +1776,7 @@ SECTION_DEAD static char const* const stringBase_8037926C = "SAVE size:%d\n"; /* 80035798-80035A04 0300D8 026C+00 0/0 1/1 0/0 .text memory_to_card__10dSv_info_cFPci */ // lots of regalloc issues #ifdef NONMATCHING -int dSv_info_c::memory_to_card(char* card_ptr, int data_num) { +int dSv_info_c::memory_to_card(char* card_ptr, int dataNum) { bool lantern_not_recovered = false; s32 lantern_stolen; s32 lantern_dropped; @@ -1843,7 +1798,7 @@ int dSv_info_c::memory_to_card(char* card_ptr, int data_num) { phi_r30 = true; } - char* save_ptr = card_ptr + (data_num * 0xA94); // 0xA94 = Quest Log size + char* save_ptr = card_ptr + (dataNum * 0xA94); // 0xA94 = Quest Log size dSv_save_c* savedata = dComIfGs_getSaveData(); s64 play_time = (OSGetTime() - dComIfGs_getSaveStartTime()); @@ -1879,7 +1834,7 @@ int dSv_info_c::memory_to_card(char* card_ptr, int data_num) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm int dSv_info_c::memory_to_card(char* param_0, int param_1) { +asm int dSv_info_c::memory_to_card(char* card_ptr, int dataNum) { nofralloc #include "asm/d/save/d_save/memory_to_card__10dSv_info_cFPci.s" } @@ -1896,8 +1851,8 @@ SECTION_DEAD static char const* const stringBase_8037927A = "LOAD size:%d\n"; /* 80035A04-80035BD0 030344 01CC+00 0/0 2/2 0/0 .text card_to_memory__10dSv_info_cFPci */ // memcpy param loads out of order #ifdef NONMATCHING -int dSv_info_c::card_to_memory(char* param_0, int param_1) { - memcpy(dComIfGs_getSaveData(), param_0 + param_1 * 0xa94, sizeof(dSv_save_c)); +int dSv_info_c::card_to_memory(char* card_ptr, int dataNum) { + memcpy(dComIfGs_getSaveData(), card_ptr + dataNum * 0xa94, sizeof(dSv_save_c)); if (OSGetSoundMode() == SOUND_MODE_MONO) { g_dComIfG_gameInfo.info.getPlayer().getConfig().setSound(SOUND_MODE_MONO); @@ -1940,7 +1895,7 @@ int dSv_info_c::card_to_memory(char* param_0, int param_1) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm int dSv_info_c::card_to_memory(char* param_0, int param_1) { +asm int dSv_info_c::card_to_memory(char* card_ptr, int dataNum) { nofralloc #include "asm/d/save/d_save/card_to_memory__10dSv_info_cFPci.s" } @@ -1959,8 +1914,8 @@ SECTION_DEAD static char const* const pad_80379296 = "\0"; /* 80035BD0-80035C88 030510 00B8+00 0/0 3/3 0/0 .text initdata_to_card__10dSv_info_cFPci */ #ifdef NONMATCHING -int dSv_info_c::initdata_to_card(char* param_0, int fileNo) { - char* ptr = param_0 + (fileNo * 0xa94); +int dSv_info_c::initdata_to_card(char* card_ptr, int dataNum) { + char* ptr = card_ptr + (dataNum * 0xa94); dSv_save_c tmp; tmp.init(); @@ -1974,7 +1929,7 @@ int dSv_info_c::initdata_to_card(char* param_0, int fileNo) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm int dSv_info_c::initdata_to_card(char* param_0, int param_1) { +asm int dSv_info_c::initdata_to_card(char* card_ptr, int dataNum) { nofralloc #include "asm/d/save/d_save/initdata_to_card__10dSv_info_cFPci.s" } diff --git a/src/d/save/d_save_HIO.cpp b/src/d/save/d_save_HIO.cpp index 7194c85059..f7092ae539 100644 --- a/src/d/save/d_save_HIO.cpp +++ b/src/d/save/d_save_HIO.cpp @@ -4,128 +4,11 @@ // #include "d/save/d_save_HIO.h" +#include "d/com/d_com_inf_game.h" #include "dol2asm.h" #include "dolphin/types.h" // -// Types: -// - -struct dSv_player_status_b_c { - /* 80032BB0 */ void isDarkClearLV(int) const; - /* 80032BEC */ void isTransformLV(int) const; -}; - -struct dSv_memBit_c { - /* 800347E8 */ void isTbox(int) const; - /* 80034860 */ void isSwitch(int) const; - /* 800348EC */ void isItem(int) const; -}; - -struct dSv_light_drop_c { - /* 80034340 */ void getLightDropNum(u8) const; - /* 8003439C */ void isLightDropGetFlag(u8) const; -}; - -struct dSv_event_c { - /* 800349BC */ void isEventBit(u16) const; -}; - -struct dSv_danBit_c { - /* 80034BE8 */ void isSwitch(int) const; - /* 80034C74 */ void isItem(int) const; -}; - -struct dSvBit_childTreasureHIO_c { - /* 8025C874 */ ~dSvBit_childTreasureHIO_c(); -}; - -struct dSvBit_childTransformHIO_c { - /* 8025C0A0 */ dSvBit_childTransformHIO_c(); - /* 8025C0D4 */ void init(); - /* 8025C2E4 */ ~dSvBit_childTransformHIO_c(); -}; - -struct dSvBit_childTbPerfectionHIO_c { - /* 8025BF68 */ dSvBit_childTbPerfectionHIO_c(); - /* 8025BF9C */ void init(); - /* 8025C374 */ ~dSvBit_childTbPerfectionHIO_c(); -}; - -struct dSvBit_childSwitchHIO_c { - /* 8025C970 */ ~dSvBit_childSwitchHIO_c(); -}; - -struct dSvBit_childSwZoneHIO_c { - /* 8025BCB0 */ dSvBit_childSwZoneHIO_c(); - /* 8025BCE4 */ void init(); - /* 8025C524 */ ~dSvBit_childSwZoneHIO_c(); -}; - -struct dSvBit_childSwPerfectionHIO_c { - /* 8025BB78 */ dSvBit_childSwPerfectionHIO_c(); - /* 8025BBAC */ void init(); - /* 8025C5B4 */ ~dSvBit_childSwPerfectionHIO_c(); -}; - -struct dSvBit_childSwOneZoneHIO_c { - /* 8025BD10 */ dSvBit_childSwOneZoneHIO_c(); - /* 8025BD44 */ void init(); - /* 8025C4DC */ ~dSvBit_childSwOneZoneHIO_c(); -}; - -struct dSvBit_childSwDungeonHIO_c { - /* 8025BC14 */ dSvBit_childSwDungeonHIO_c(); - /* 8025BC48 */ void init(); - /* 8025C56C */ ~dSvBit_childSwDungeonHIO_c(); -}; - -struct dSvBit_childOtherHIO_c { - /* 8025C13C */ dSvBit_childOtherHIO_c(); - /* 8025C178 */ void init(); - /* 8025C29C */ ~dSvBit_childOtherHIO_c(); -}; - -struct dSvBit_childItemHIO_c { - /* 8025C8D4 */ ~dSvBit_childItemHIO_c(); -}; - -struct dSvBit_childItZoneHIO_c { - /* 8025BEA8 */ dSvBit_childItZoneHIO_c(); - /* 8025BEDC */ void init(); - /* 8025C404 */ ~dSvBit_childItZoneHIO_c(); -}; - -struct dSvBit_childItPerfectionHIO_c { - /* 8025BD70 */ dSvBit_childItPerfectionHIO_c(); - /* 8025BDA4 */ void init(); - /* 8025C494 */ ~dSvBit_childItPerfectionHIO_c(); -}; - -struct dSvBit_childItOneZoneHIO_c { - /* 8025BF08 */ dSvBit_childItOneZoneHIO_c(); - /* 8025BF3C */ void init(); - /* 8025C3BC */ ~dSvBit_childItOneZoneHIO_c(); -}; - -struct dSvBit_childItDungeonHIO_c { - /* 8025BE0C */ dSvBit_childItDungeonHIO_c(); - /* 8025BE40 */ void init(); - /* 8025C44C */ ~dSvBit_childItDungeonHIO_c(); -}; - -struct dSvBit_childDarknessHIO_c { - /* 8025C004 */ dSvBit_childDarknessHIO_c(); - /* 8025C038 */ void init(); - /* 8025C32C */ ~dSvBit_childDarknessHIO_c(); -}; - -struct dSvBit_HIO_c { - /* 8025C1F8 */ void init(); - /* 8025C6FC */ ~dSvBit_HIO_c(); -}; - -// // Forward References: // @@ -190,7 +73,6 @@ extern "C" void __dl__FPv(); extern "C" void __register_global_object(); extern "C" void _savegpr_29(); extern "C" void _restgpr_29(); -extern "C" extern u8 g_dComIfG_gameInfo[122384]; // // Declarations: @@ -288,14 +170,12 @@ SECTION_DATA extern void* __vt__29dSvBit_childSwPerfectionHIO_c[3] = { }; /* 8025BB78-8025BBAC 2564B8 0034+00 1/1 0/0 0/0 .text __ct__29dSvBit_childSwPerfectionHIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dSvBit_childSwPerfectionHIO_c::dSvBit_childSwPerfectionHIO_c() { - nofralloc -#include "asm/d/save/d_save_HIO/__ct__29dSvBit_childSwPerfectionHIO_cFv.s" +dSvBit_childSwPerfectionHIO_c::dSvBit_childSwPerfectionHIO_c() { + for (int i = 0; i < 0x80; i++) { + field_0x5[i] = false; + field_0x85[i] = false; + } } -#pragma pop /* 8025BBAC-8025BC14 2564EC 0068+00 1/1 0/0 0/0 .text init__29dSvBit_childSwPerfectionHIO_cFv */ #pragma push @@ -452,14 +332,12 @@ asm void dSvBit_childItOneZoneHIO_c::init() { #pragma pop /* 8025BF68-8025BF9C 2568A8 0034+00 1/1 0/0 0/0 .text __ct__29dSvBit_childTbPerfectionHIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dSvBit_childTbPerfectionHIO_c::dSvBit_childTbPerfectionHIO_c() { - nofralloc -#include "asm/d/save/d_save_HIO/__ct__29dSvBit_childTbPerfectionHIO_cFv.s" +dSvBit_childTbPerfectionHIO_c::dSvBit_childTbPerfectionHIO_c() { + for (int i = 0; i < 0x40; i++) { + field_0x5[i] = false; + field_0x45[i] = false; + } } -#pragma pop /* 8025BF9C-8025C004 2568DC 0068+00 1/1 0/0 0/0 .text init__29dSvBit_childTbPerfectionHIO_cFv */ #pragma push @@ -547,7 +425,8 @@ asm void dSvBit_HIO_c::init() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dSvBit_childOtherHIO_c::~dSvBit_childOtherHIO_c() { +// asm dSvBit_childOtherHIO_c::~dSvBit_childOtherHIO_c() { +extern "C" asm void __dt__22dSvBit_childOtherHIO_cFv() { nofralloc #include "asm/d/save/d_save_HIO/__dt__22dSvBit_childOtherHIO_cFv.s" } @@ -557,7 +436,8 @@ asm dSvBit_childOtherHIO_c::~dSvBit_childOtherHIO_c() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dSvBit_childTransformHIO_c::~dSvBit_childTransformHIO_c() { +// asm dSvBit_childTransformHIO_c::~dSvBit_childTransformHIO_c() { +extern "C" asm void __dt__26dSvBit_childTransformHIO_cFv() { nofralloc #include "asm/d/save/d_save_HIO/__dt__26dSvBit_childTransformHIO_cFv.s" } @@ -568,7 +448,8 @@ asm dSvBit_childTransformHIO_c::~dSvBit_childTransformHIO_c() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dSvBit_childDarknessHIO_c::~dSvBit_childDarknessHIO_c() { +// asm dSvBit_childDarknessHIO_c::~dSvBit_childDarknessHIO_c() { +extern "C" asm void __dt__25dSvBit_childDarknessHIO_cFv() { nofralloc #include "asm/d/save/d_save_HIO/__dt__25dSvBit_childDarknessHIO_cFv.s" } @@ -578,7 +459,8 @@ asm dSvBit_childDarknessHIO_c::~dSvBit_childDarknessHIO_c() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dSvBit_childTbPerfectionHIO_c::~dSvBit_childTbPerfectionHIO_c() { +// asm dSvBit_childTbPerfectionHIO_c::~dSvBit_childTbPerfectionHIO_c() { +extern "C" asm void __dt__29dSvBit_childTbPerfectionHIO_cFv() { nofralloc #include "asm/d/save/d_save_HIO/__dt__29dSvBit_childTbPerfectionHIO_cFv.s" } @@ -588,7 +470,8 @@ asm dSvBit_childTbPerfectionHIO_c::~dSvBit_childTbPerfectionHIO_c() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dSvBit_childItOneZoneHIO_c::~dSvBit_childItOneZoneHIO_c() { +// asm dSvBit_childItOneZoneHIO_c::~dSvBit_childItOneZoneHIO_c() { +extern "C" asm void __dt__26dSvBit_childItOneZoneHIO_cFv() { nofralloc #include "asm/d/save/d_save_HIO/__dt__26dSvBit_childItOneZoneHIO_cFv.s" } @@ -599,7 +482,8 @@ asm dSvBit_childItOneZoneHIO_c::~dSvBit_childItOneZoneHIO_c() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dSvBit_childItZoneHIO_c::~dSvBit_childItZoneHIO_c() { +// asm dSvBit_childItZoneHIO_c::~dSvBit_childItZoneHIO_c() { +extern "C" asm void __dt__23dSvBit_childItZoneHIO_cFv() { nofralloc #include "asm/d/save/d_save_HIO/__dt__23dSvBit_childItZoneHIO_cFv.s" } @@ -609,7 +493,8 @@ asm dSvBit_childItZoneHIO_c::~dSvBit_childItZoneHIO_c() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dSvBit_childItDungeonHIO_c::~dSvBit_childItDungeonHIO_c() { +// asm dSvBit_childItDungeonHIO_c::~dSvBit_childItDungeonHIO_c() { +extern "C" asm void __dt__26dSvBit_childItDungeonHIO_cFv() { nofralloc #include "asm/d/save/d_save_HIO/__dt__26dSvBit_childItDungeonHIO_cFv.s" } @@ -619,7 +504,8 @@ asm dSvBit_childItDungeonHIO_c::~dSvBit_childItDungeonHIO_c() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dSvBit_childItPerfectionHIO_c::~dSvBit_childItPerfectionHIO_c() { +// asm dSvBit_childItPerfectionHIO_c::~dSvBit_childItPerfectionHIO_c() { +extern "C" asm void __dt__29dSvBit_childItPerfectionHIO_cFv() { nofralloc #include "asm/d/save/d_save_HIO/__dt__29dSvBit_childItPerfectionHIO_cFv.s" } @@ -629,7 +515,8 @@ asm dSvBit_childItPerfectionHIO_c::~dSvBit_childItPerfectionHIO_c() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dSvBit_childSwOneZoneHIO_c::~dSvBit_childSwOneZoneHIO_c() { +// asm dSvBit_childSwOneZoneHIO_c::~dSvBit_childSwOneZoneHIO_c() { +extern "C" asm void __dt__26dSvBit_childSwOneZoneHIO_cFv() { nofralloc #include "asm/d/save/d_save_HIO/__dt__26dSvBit_childSwOneZoneHIO_cFv.s" } @@ -640,7 +527,8 @@ asm dSvBit_childSwOneZoneHIO_c::~dSvBit_childSwOneZoneHIO_c() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dSvBit_childSwZoneHIO_c::~dSvBit_childSwZoneHIO_c() { +// asm dSvBit_childSwZoneHIO_c::~dSvBit_childSwZoneHIO_c() { +extern "C" asm void __dt__23dSvBit_childSwZoneHIO_cFv() { nofralloc #include "asm/d/save/d_save_HIO/__dt__23dSvBit_childSwZoneHIO_cFv.s" } @@ -650,7 +538,8 @@ asm dSvBit_childSwZoneHIO_c::~dSvBit_childSwZoneHIO_c() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dSvBit_childSwDungeonHIO_c::~dSvBit_childSwDungeonHIO_c() { +// asm dSvBit_childSwDungeonHIO_c::~dSvBit_childSwDungeonHIO_c() { +extern "C" asm void __dt__26dSvBit_childSwDungeonHIO_cFv() { nofralloc #include "asm/d/save/d_save_HIO/__dt__26dSvBit_childSwDungeonHIO_cFv.s" } @@ -660,7 +549,8 @@ asm dSvBit_childSwDungeonHIO_c::~dSvBit_childSwDungeonHIO_c() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dSvBit_childSwPerfectionHIO_c::~dSvBit_childSwPerfectionHIO_c() { +// asm dSvBit_childSwPerfectionHIO_c::~dSvBit_childSwPerfectionHIO_c() { +extern "C" asm void __dt__29dSvBit_childSwPerfectionHIO_cFv() { nofralloc #include "asm/d/save/d_save_HIO/__dt__29dSvBit_childSwPerfectionHIO_cFv.s" } @@ -722,7 +612,8 @@ REGISTER_CTORS(0x8025C5FC, __sinit_d_save_HIO_cpp); #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dSvBit_HIO_c::~dSvBit_HIO_c() { +// asm dSvBit_HIO_c::~dSvBit_HIO_c() { +extern "C" asm void __dt__12dSvBit_HIO_cFv() { nofralloc #include "asm/d/save/d_save_HIO/__dt__12dSvBit_HIO_cFv.s" } @@ -733,7 +624,8 @@ asm dSvBit_HIO_c::~dSvBit_HIO_c() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dSvBit_childTreasureHIO_c::~dSvBit_childTreasureHIO_c() { +// asm dSvBit_childTreasureHIO_c::~dSvBit_childTreasureHIO_c() { +extern "C" asm void __dt__25dSvBit_childTreasureHIO_cFv() { nofralloc #include "asm/d/save/d_save_HIO/__dt__25dSvBit_childTreasureHIO_cFv.s" } @@ -743,7 +635,8 @@ asm dSvBit_childTreasureHIO_c::~dSvBit_childTreasureHIO_c() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dSvBit_childItemHIO_c::~dSvBit_childItemHIO_c() { +// asm dSvBit_childItemHIO_c::~dSvBit_childItemHIO_c() { +extern "C" asm void __dt__21dSvBit_childItemHIO_cFv() { nofralloc #include "asm/d/save/d_save_HIO/__dt__21dSvBit_childItemHIO_cFv.s" } @@ -754,7 +647,8 @@ asm dSvBit_childItemHIO_c::~dSvBit_childItemHIO_c() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dSvBit_childSwitchHIO_c::~dSvBit_childSwitchHIO_c() { +// asm dSvBit_childSwitchHIO_c::~dSvBit_childSwitchHIO_c() { +extern "C" asm void __dt__23dSvBit_childSwitchHIO_cFv() { nofralloc #include "asm/d/save/d_save_HIO/__dt__23dSvBit_childSwitchHIO_cFv.s" } diff --git a/src/m_Do/m_Do_ext.cpp b/src/m_Do/m_Do_ext.cpp index dc2924dfa1..08ec75cdfc 100644 --- a/src/m_Do/m_Do_ext.cpp +++ b/src/m_Do/m_Do_ext.cpp @@ -18,11 +18,6 @@ // Types: // -struct mDoExt_btpAnm { - /* 8000D54C */ void init(J3DMaterialTable*, J3DAnmTexPattern*, int, int, f32, s16, s16); - /* 8000D5E8 */ void entry(J3DMaterialTable*, s16); -}; - struct mDoExt_blkAnm { /* 8000DA08 */ void init(J3DDeformData*, J3DAnmCluster*, int, int, f32, s16, s16); }; @@ -530,7 +525,6 @@ extern "C" void GXClearVtxDesc(); extern "C" void GXGetTexObjWidth(); extern "C" void GXGetTexObjHeight(); extern "C" void GXSetTexCoordScaleManually(); -extern "C" void GXLoadNrmMtxImm(); extern "C" void __construct_new_array(); extern "C" void _savegpr_15(); extern "C" void _savegpr_18(); @@ -632,8 +626,8 @@ asm void mDoExt_baseAnm::play() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void mDoExt_bpkAnm::init(J3DMaterialTable* param_0, J3DAnmColor* param_1, int param_2, - int param_3, f32 param_4, s16 param_5, s16 param_6) { +asm int mDoExt_bpkAnm::init(J3DMaterialTable* param_0, J3DAnmColor* param_1, int param_2, + int param_3, f32 param_4, s16 param_5, s16 param_6) { nofralloc #include "asm/m_Do/m_Do_ext/init__13mDoExt_bpkAnmFP16J3DMaterialTableP11J3DAnmColoriifss.s" } @@ -655,8 +649,8 @@ asm void mDoExt_bpkAnm::entry(J3DMaterialTable* param_0, f32 param_1) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void mDoExt_btpAnm::init(J3DMaterialTable* param_0, J3DAnmTexPattern* param_1, int param_2, - int param_3, f32 param_4, s16 param_5, s16 param_6) { +asm int mDoExt_btpAnm::init(J3DMaterialTable* param_0, J3DAnmTexPattern* param_1, int param_2, + int param_3, f32 param_4, s16 param_5, s16 param_6) { nofralloc #include "asm/m_Do/m_Do_ext/init__13mDoExt_btpAnmFP16J3DMaterialTableP16J3DAnmTexPatterniifss.s" } @@ -678,8 +672,8 @@ asm void mDoExt_btpAnm::entry(J3DMaterialTable* param_0, s16 param_1) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void mDoExt_btkAnm::init(J3DMaterialTable* param_0, J3DAnmTextureSRTKey* param_1, int param_2, - int param_3, f32 param_4, s16 param_5, s16 param_6) { +asm int mDoExt_btkAnm::init(J3DMaterialTable* param_0, J3DAnmTextureSRTKey* param_1, int param_2, + int param_3, f32 param_4, s16 param_5, s16 param_6) { nofralloc #include "asm/m_Do/m_Do_ext/init__13mDoExt_btkAnmFP16J3DMaterialTableP19J3DAnmTextureSRTKeyiifss.s" } @@ -701,8 +695,8 @@ asm void mDoExt_btkAnm::entry(J3DMaterialTable* param_0, f32 param_1) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void mDoExt_brkAnm::init(J3DMaterialTable* param_0, J3DAnmTevRegKey* param_1, int param_2, - int param_3, f32 param_4, s16 param_5, s16 param_6) { +asm int mDoExt_brkAnm::init(J3DMaterialTable* param_0, J3DAnmTevRegKey* param_1, int param_2, + int param_3, f32 param_4, s16 param_5, s16 param_6) { nofralloc #include "asm/m_Do/m_Do_ext/init__13mDoExt_brkAnmFP16J3DMaterialTableP15J3DAnmTevRegKeyiifss.s" } @@ -1452,8 +1446,8 @@ SECTION_DATA extern void* __vt__10J3DMtxCalc[11 + 1 /* padding */] = { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void mDoExt_bckAnm::init(J3DAnmTransform* param_0, int param_1, int param_2, f32 param_3, - s16 param_4, s16 param_5, bool param_6) { +asm int mDoExt_bckAnm::init(J3DAnmTransform* param_0, int param_1, int param_2, f32 param_3, + s16 param_4, s16 param_5, bool param_6) { nofralloc #include "asm/m_Do/m_Do_ext/init__13mDoExt_bckAnmFP15J3DAnmTransformiifssb.s" } |
