diff --git a/include/JSystem/J3DGraphAnimator/J3DAnimation.h b/include/JSystem/J3DGraphAnimator/J3DAnimation.h index cfb35d9bb..2a72dd72b 100644 --- a/include/JSystem/J3DGraphAnimator/J3DAnimation.h +++ b/include/JSystem/J3DGraphAnimator/J3DAnimation.h @@ -286,8 +286,10 @@ struct J3DAnmTransformKeyData { /* 0x08 */ u8 mAttribute; /* 0x09 */ u8 mDecShift; /* 0x0A */ s16 mFrameMax; - /* 0x0C */ u16 field_0xc; - /* 0x10 */ int field_0x10; + /* 0x0C */ u16 mTableCount; + /* 0x0E */ u16 mScaleCount; + /* 0x10 */ u16 mRotCount; + /* 0x12 */ u16 mTransCount; /* 0x14 */ s32 mTableOffset; /* 0x18 */ s32 mScaleOffset; /* 0x1c */ s32 mRotOffset; diff --git a/include/JSystem/J3DGraphLoader/J3DJointFactory.h b/include/JSystem/J3DGraphLoader/J3DJointFactory.h index ca203805a..53f237296 100644 --- a/include/JSystem/J3DGraphLoader/J3DJointFactory.h +++ b/include/JSystem/J3DGraphLoader/J3DJointFactory.h @@ -17,7 +17,7 @@ struct J3DJointInitData { }; // Size: 0x30 struct J3DJointBlock { - /* 0x00 */ u8 mMagic[4]; + /* 0x00 */ u32 mMagic; /* 0x04 */ u32 mSize; /* 0x08 */ u16 mJointNum; diff --git a/include/JSystem/J3DGraphLoader/J3DShapeFactory.h b/include/JSystem/J3DGraphLoader/J3DShapeFactory.h index 5407ae263..65e462287 100644 --- a/include/JSystem/J3DGraphLoader/J3DShapeFactory.h +++ b/include/JSystem/J3DGraphLoader/J3DShapeFactory.h @@ -32,7 +32,7 @@ struct J3DShapeDrawInitData { }; struct J3DShapeBlock { - /* 0x00 */ u8 mMagic[4]; + /* 0x00 */ u32 mMagic; /* 0x04 */ u32 mSize; /* 0x08 */ u16 mShapeNum; diff --git a/include/d/actor/d_a_obj_movebox.h b/include/d/actor/d_a_obj_movebox.h index 718b5e6a1..cc7e50ccc 100644 --- a/include/d/actor/d_a_obj_movebox.h +++ b/include/d/actor/d_a_obj_movebox.h @@ -82,7 +82,6 @@ namespace daObjMovebox { }; Bgc_c(); - ~Bgc_c(); void gnd_pos(const Act_c*, const BgcSrc_c*, int, f32); void wrt_pos(const cXyz&); void wall_pos(const Act_c*, const BgcSrc_c*, int, s16, f32); diff --git a/include/d/d_map.h b/include/d/d_map.h index af7f2e474..fd001568b 100644 --- a/include/d/d_map.h +++ b/include/d/d_map.h @@ -626,6 +626,7 @@ public: }; BOOL dMap_GetTopBottomFloorNo(dStage_dt_c* stag, u8* bottom_p, u8* top_p); +u8 dMap_GetFloorNoForDmap(dStage_dt_c*, int, f32); u8 dMap_GetFloorNo(dStage_dt_c*, f32); inline void dMap_drawPoint(u8 param_1, f32 param_2, f32 param_3, f32 param_4, s8 param_5, s16 param_6, u8 param_7, u8 param_8, u8 param_9) { diff --git a/include/d/d_minigame_terminater.h b/include/d/d_minigame_terminater.h index bc3420ebd..b6798b2af 100644 --- a/include/d/d_minigame_terminater.h +++ b/include/d/d_minigame_terminater.h @@ -1,16 +1,16 @@ #ifndef D_MINIGAME_TERMINATER_H #define D_MINIGAME_TERMINATER_H -#include "dolphin/types.h" +#include "d/d_drawlist.h" class JKRArchive; class J2DPane; struct fopMsgM_pane_class; -class dDlst_TerminaterScrnDraw_c { +class dDlst_TerminaterScrnDraw_c : public dDlst_base_c { public: void acc(s16, s16, s16) {} - + void setScreen(const char*, JKRArchive*); void setScrnFailed(); void setScrnSuccess(int, int); @@ -34,17 +34,28 @@ public: void draw(); }; -class dMinigame_Terminater_c { +class dMinigame_Terminater_c : public msg_class { public: void getResultRupee() {} void getResultTime() {} void setResultRupee(int) {} void setResultTime(int) {} - + void _create(); void _execute(); void _draw(); void _delete(); + + /* 0x0FC */ dDlst_TerminaterScrnDraw_c* mTerminaterScrnDraw; + /* 0x100 */ request_of_phase_process_class mPhs; + /* 0x108 */ JKRSolidHeap* mHeap; + /* 0x10C */ u32 field_0x10c; + /* 0x110 */ u32 field_0x110; + /* 0x114 */ u16 field_0x114; + /* 0x116 */ u16 field_0x116; + /* 0x118 */ s16 field_0x118; + /* 0x11A */ s16 field_0x11a; + /* 0x11C */ u8 field_0x11c; }; #endif /* D_MINIGAME_TERMINATER_H */ diff --git a/src/DynamicLink.cpp b/src/DynamicLink.cpp index 724e31573..7e7328beb 100644 --- a/src/DynamicLink.cpp +++ b/src/DynamicLink.cpp @@ -193,7 +193,7 @@ JKRArchive* DynamicModuleControl::mountCallback(void* param_0) { } mDoDvdThd_callback_c* DynamicModuleControl::mountCreate() { - mDoDvdThd_callback_c::create((mDoDvdThd_callback_func)DynamicModuleControl::mountCallback, NULL); + return mDoDvdThd_callback_c::create((mDoDvdThd_callback_func)DynamicModuleControl::mountCallback, NULL); } bool DynamicModuleControl::initialize() { diff --git a/src/JSystem/J3DGraphAnimator/J3DModel.cpp b/src/JSystem/J3DGraphAnimator/J3DModel.cpp index bb6fb8ee0..ea39c09af 100644 --- a/src/JSystem/J3DGraphAnimator/J3DModel.cpp +++ b/src/JSystem/J3DGraphAnimator/J3DModel.cpp @@ -496,6 +496,8 @@ void J3DModel::calcAnmMtx() { getModelData()->getBasicMtxCalc()->recursiveCalc(getModelData()->getRootNode()); } +static f32 J3DUnit01[] = {0.0f, 1.0f}; + /* 802EE67C-802EE874 .text calcWeightEnvelopeMtx__8J3DModelFv */ void J3DModel::calcWeightEnvelopeMtx() { /* Nonmatching */ diff --git a/src/JSystem/J3DGraphLoader/J3DAnmLoader.cpp b/src/JSystem/J3DGraphLoader/J3DAnmLoader.cpp index 027ab190b..abe103811 100644 --- a/src/JSystem/J3DGraphLoader/J3DAnmLoader.cpp +++ b/src/JSystem/J3DGraphLoader/J3DAnmLoader.cpp @@ -453,7 +453,7 @@ void J3DAnmKeyLoader_v15::readAnmTransform(const J3DAnmTransformKeyData* dst) { /* 80300638-803006D4 .text setAnmTransform__19J3DAnmKeyLoader_v15FP18J3DAnmTransformKeyPC22J3DAnmTransformKeyData */ void J3DAnmKeyLoader_v15::setAnmTransform(J3DAnmTransformKey* dst, const J3DAnmTransformKeyData* data) { - dst->field_0x22 = data->field_0xc; + dst->field_0x22 = data->mTableCount; dst->mFrameMax = data->mFrameMax; dst->mAttribute = data->mAttribute; dst->mDecShift = data->mDecShift; diff --git a/src/JSystem/JFramework/JFWDisplay.cpp b/src/JSystem/JFramework/JFWDisplay.cpp index d0f99145f..50774cd9e 100644 --- a/src/JSystem/JFramework/JFWDisplay.cpp +++ b/src/JSystem/JFramework/JFWDisplay.cpp @@ -453,6 +453,7 @@ void JFWDisplay::clearEfb(int param_0, int param_1, int param_2, int param_3, GX GXPosition2u16(param_0, param_1 + param_3); GXTexCoord2u8(0, 1); + GXEnd(); GXSetZTexture(GX_ZT_DISABLE, GX_TF_Z24X8, 0); GXSetZCompLoc(GX_ENABLE); diff --git a/src/JSystem/JParticle/JPAEmitterLoader.cpp b/src/JSystem/JParticle/JPAEmitterLoader.cpp index 2d1fe6fd3..859979a90 100644 --- a/src/JSystem/JParticle/JPAEmitterLoader.cpp +++ b/src/JSystem/JParticle/JPAEmitterLoader.cpp @@ -21,6 +21,32 @@ #include "JSystem/JUtility/JUTDataHeader.h" #include "JSystem/JKernel/JKRHeap.h" +struct JPAEmitterArchiveData_v10 { + /* 0x00 */ u32 magic; + /* 0x04 */ u32 version; + /* 0x08 */ u16 emtrResNum; + /* 0x0A */ u16 texResNum; +}; + +struct JPAEmitterParticleHeader_v10 { + /* 0x00 */ u32 magic; // 'JEFF' + /* 0x04 */ u32 type; // 'jpa1' + /* 0x08 */ u8 field_0x08[0x0C - 0x08]; + /* 0x0C */ u32 blockNum; + /* 0x10 */ u8 field_0x10[0x14 - 0x10]; + /* 0x14 */ u8 keyNum; + /* 0x15 */ u8 fldNum; + /* 0x16 */ u8 textureNum; + /* 0x18 */ u16 resID; +}; + +struct JPAEmitterBlockHeader_v10 { + /* 0x00 */ u32 magic; + /* 0x04 */ u32 size; + /* 0x08 */ u8 field_0x08[0x0C - 0x08]; + /* 0x0C */ u8 blockData; +}; + static void dummy(u32 texNum) { JUT_WARN(0, "%s", "This is WRONG Version File\n"); JUT_WARN(0, "%s", "This is NO JPA File\n"); @@ -45,10 +71,11 @@ static void dummy(u32 texNum) { /* 802590B4-8025917C .text load__31JPAEmitterArchiveLoaderDataBaseFPCUcP7JKRHeapPP18JPAEmitterResourcePP18JPATextureResource */ void JPAEmitterArchiveLoaderDataBase::load(const u8* data, JKRHeap* heap, JPAEmitterResource** dstEmtrRes, JPATextureResource** dstTexRes) { - u32 magic = ((const u32*)data)[0]; + const JPAEmitterArchiveData_v10* header = (const JPAEmitterArchiveData_v10*)data; + u32 magic = header->magic; if (magic == 'JPAC') { - u32 version = ((const u32*)data)[1]; + u32 version = header->version; if (version == '1-00') { JPAEmitterArchiveLoader_v10 loader; loader.pHeap = heap; @@ -66,32 +93,6 @@ void JPAEmitterArchiveLoaderDataBase::load(const u8* data, JKRHeap* heap, JPAEmi } } -struct JPAEmitterArchiveData_v10 { - /* 0x00 */ u32 magic; - /* 0x04 */ u32 size; - /* 0x08 */ u16 emtrResNum; - /* 0x0A */ u16 texResNum; -}; - -struct JPAEmitterParticleHeader_v10 { - /* 0x00 */ u32 magic; // 'JEFF' - /* 0x04 */ u32 type; // 'jpa1' - /* 0x08 */ u8 field_0x08[0x0C - 0x08]; - /* 0x0C */ u32 blockNum; - /* 0x10 */ u8 field_0x10[0x14 - 0x10]; - /* 0x14 */ u8 keyNum; - /* 0x15 */ u8 fldNum; - /* 0x16 */ u8 textureNum; - /* 0x18 */ u16 resID; -}; - -struct JPAEmitterBlockHeader_v10 { - /* 0x00 */ u32 magic; - /* 0x04 */ u32 size; - /* 0x08 */ u8 field_0x08[0x0C - 0x08]; - /* 0x0C */ u8 blockData; -}; - /* 8025917C-8025991C .text load__27JPAEmitterArchiveLoader_v10Fv */ void JPAEmitterArchiveLoader_v10::load() { const JPAEmitterArchiveData_v10* header = (const JPAEmitterArchiveData_v10*)pData; diff --git a/src/d/actor/d_a_obj_hsehi1.cpp b/src/d/actor/d_a_obj_hsehi1.cpp index fb1ed812a..56dfc26b6 100644 --- a/src/d/actor/d_a_obj_hsehi1.cpp +++ b/src/d/actor/d_a_obj_hsehi1.cpp @@ -606,7 +606,7 @@ void daObj_hsh_c::initialMsgSetEvent(int staffIdx) { /* 000019C0-000019E0 .text actionMsgSetEvent__11daObj_hsh_cFi */ BOOL daObj_hsh_c::actionMsgSetEvent(int) { - talk_init(); + return talk_init(); } /* 000019E0-00001A40 .text actionMessageEvent__11daObj_hsh_cFi */ @@ -616,7 +616,7 @@ BOOL daObj_hsh_c::actionMessageEvent(int staffIdx) { if (p_talkMode != NULL) { i_talkMode = *p_talkMode; } - talk(i_talkMode); + return talk(i_talkMode); } /* 00001A40-00001ADC .text actionTactEvent__11daObj_hsh_cFi */ @@ -632,7 +632,7 @@ BOOL daObj_hsh_c::actionTactEvent(int staffIdx) { if (music == i_talkMode) { onTactCorrect(); } - talk(1); + return talk(1); } /* 00001ADC-00001B3C .text initialJudgeEvent__11daObj_hsh_cFi */ diff --git a/src/d/actor/d_a_obj_search.cpp b/src/d/actor/d_a_obj_search.cpp index ac96909be..d067f641e 100644 --- a/src/d/actor/d_a_obj_search.cpp +++ b/src/d/actor/d_a_obj_search.cpp @@ -163,6 +163,8 @@ void daObj_Search::Bgc_c::wall_pos(const daObj_Search::Act_c*, cXyz*, cXyz*, boo /* Nonmatching */ } +bool daObj_Search::Act_c::m_find_flag; + /* 801002D4-801002E0 .text attr__Q212daObj_Search5Act_cCFv */ void daObj_Search::Act_c::attr() const { /* Nonmatching */ diff --git a/src/d/d_camera.cpp b/src/d/d_camera.cpp index ae042718d..a86958bb8 100644 --- a/src/d/d_camera.cpp +++ b/src/d/d_camera.cpp @@ -4832,21 +4832,22 @@ bool dCamera_c::eventCamera(s32) { mEventData.field_0x1c = 2; } - u32 evStringData; - if (getEvStringData((char*)&evStringData, "Trim", "CINESCO")) { - if (evStringData == 'STAN') { + char evStringData[12]; + if (getEvStringData(evStringData, "Trim", "CINESCO")) { + u32* evStringPtr = (u32*)evStringData; + if (*evStringPtr == 'STAN') { mEventData.field_0x1c = 0; } - else if (evStringData == 'VIST') { + else if (*evStringPtr == 'VIST') { mEventData.field_0x1c = 1; } - else if (evStringData == 'DEMO') { + else if (*evStringPtr == 'DEMO') { mEventData.field_0x1c = 3; } - else if (evStringData == 'NONE') { + else if (*evStringPtr == 'NONE') { mEventData.field_0x1c = 4; } - else if (evStringData == 'KEEP') { + else if (*evStringPtr == 'KEEP') { mEventData.field_0x1c = 999; } } diff --git a/src/d/d_map.cpp b/src/d/d_map.cpp index 362675cce..97a1eeed0 100644 --- a/src/d/d_map.cpp +++ b/src/d/d_map.cpp @@ -345,9 +345,9 @@ dStage_FloorInfo_dt_c* dMap_GetFloorInfoDtPFromFloorNo(dStage_FloorInfo_c* floor } /* 80045AEC-80045C24 .text dMap_GetFloorNoForDmap__FP11dStage_dt_cif */ -int dMap_GetFloorNoForDmap(dStage_dt_c* stag, int param_2, f32 param_3) { +u8 dMap_GetFloorNoForDmap(dStage_dt_c* stag, int param_2, f32 param_3) { dStage_FloorInfo_c* floor = stag->getFloorInfo(); - int floorNo = Floor_1F; + u8 floorNo = Floor_1F; dStage_FloorInfo_dt_c* floorData = dMap_GetFloorInfoDtP(floor, param_3); if (floorData) { diff --git a/src/d/d_menu_dmap.cpp b/src/d/d_menu_dmap.cpp index f5276f4db..1b8d99326 100644 --- a/src/d/d_menu_dmap.cpp +++ b/src/d/d_menu_dmap.cpp @@ -20,8 +20,6 @@ #include "m_Do/m_Do_controller_pad.h" #include -u8 dMap_GetFloorNoForDmap(dStage_dt_c*, int, f32); - dMd_HIO_c g_mdHIO; /* 801A86A4-801A87CC .text __ct__9dMd_HIO_cFv */ diff --git a/src/d/d_menu_fmap.cpp b/src/d/d_menu_fmap.cpp index cef64e1f7..2873ea207 100644 --- a/src/d/d_menu_fmap.cpp +++ b/src/d/d_menu_fmap.cpp @@ -16,7 +16,7 @@ #include "m_Do/m_Do_controller_pad.h" #include "d/actor/d_a_ship.h" #include -#include "printf.h" +#include "stdio.h" dMf_HIO_c g_mfHIO; diff --git a/src/d/d_minigame_terminater.cpp b/src/d/d_minigame_terminater.cpp index 38d4b23b0..a26a17e2c 100644 --- a/src/d/d_minigame_terminater.cpp +++ b/src/d/d_minigame_terminater.cpp @@ -156,3 +156,25 @@ static BOOL dMinigame_Terminater_Delete(dMinigame_Terminater_c*) { static cPhs_State dMinigame_Terminater_Create(msg_class*) { /* Nonmatching */ } + +msg_method_class l_dMinigame_Terminater_Method = { + (process_method_func)dMinigame_Terminater_Create, + (process_method_func)dMinigame_Terminater_Delete, + (process_method_func)dMinigame_Terminater_Execute, + (process_method_func)dMinigame_Terminater_IsDelete, + (process_method_func)dMinigame_Terminater_Draw, +}; + +msg_process_profile_definition g_profile_MINIGAME_TERMINATER = { + /* Layer ID */ fpcLy_CURRENT_e, + /* List ID */ 12, + /* List Prio */ fpcPi_CURRENT_e, + /* Proc Name */ fpcNm_MINIGAME_TERMINATER_e, + /* Proc SubMtd */ &g_fpcLf_Method.base, + /* Size */ sizeof(dMinigame_Terminater_c), + /* Size Other */ 0, + /* Parameters */ 0, + /* Leaf SubMtd */ &g_fopMsg_Method, + /* Draw Prio */ fpcDwPi_MINIGAME_TERMINATER_e, + /* Msg SubMtd */ &l_dMinigame_Terminater_Method, +}; diff --git a/src/d/d_operate_wind.cpp b/src/d/d_operate_wind.cpp index 1f9a55ad0..1021f1eb9 100644 --- a/src/d/d_operate_wind.cpp +++ b/src/d/d_operate_wind.cpp @@ -304,3 +304,25 @@ static cPhs_State dOw_Create(msg_class* i_msg) { mDoExt_setCurrentHeap(old_heap); return cPhs_COMPLEATE_e; } + +msg_method_class l_dOperate_wind_Method = { + (process_method_func)dOw_Create, + (process_method_func)dOw_Delete, + (process_method_func)dOw_Execute, + (process_method_func)dOw_IsDelete, + (process_method_func)dOw_Draw, +}; + +msg_process_profile_definition g_profile_OPERATE_WIND = { + /* Layer ID */ fpcLy_CURRENT_e, + /* List ID */ 12, + /* List Prio */ fpcPi_CURRENT_e, + /* Proc Name */ fpcNm_OPERATE_WIND_e, + /* Proc SubMtd */ &g_fpcLf_Method.base, + /* Size */ sizeof(dOw_c), + /* Size Other */ 0, + /* Parameters */ 0, + /* Leaf SubMtd */ &g_fopMsg_Method, + /* Draw Prio */ fpcDwPi_OPERATE_WIND_e, + /* Msg SubMtd */ &l_dOperate_wind_Method, +};