diff --git a/configure.py b/configure.py index 2676cc2eb..3a359154f 100644 --- a/configure.py +++ b/configure.py @@ -452,7 +452,7 @@ config.libs = [ Object(Matching, "d/d_kyeff2.cpp"), Object(NonMatching, "d/d_ky_thunder.cpp"), Object(Matching, "d/d_letter.cpp"), - Object(NonMatching, "d/d_level_se.cpp"), + Object(Matching, "d/d_level_se.cpp"), Object(NonMatching, "d/d_menu_cloth.cpp"), Object(NonMatching, "d/d_menu_collect.cpp"), Object(NonMatching, "d/d_menu_dmap.cpp"), diff --git a/src/d/d_ky_thunder.cpp b/src/d/d_ky_thunder.cpp index 61f06668b..706fed80e 100644 --- a/src/d/d_ky_thunder.cpp +++ b/src/d/d_ky_thunder.cpp @@ -8,6 +8,7 @@ #include "f_op/f_op_camera.h" #include "d/d_com_inf_game.h" #include "d/d_kankyo_rain.h" +#include "d/d_procname.h" #include "JSystem/JKernel/JKRSolidHeap.h" #include "JSystem/J3DGraphAnimator/J3DModel.h" #include "SSystem/SComponent/c_phase.h" @@ -194,3 +195,25 @@ s32 dThunder_c::create() { return cPhs_COMPLEATE_e; } + +kankyo_method_class l_dThunder_Method = { + (process_method_func)dThunder_Create, + (process_method_func)dThunder_Delete, + (process_method_func)dThunder_Execute, + (process_method_func)dThunder_IsDelete, + (process_method_func)dThunder_Draw, +}; + +kankyo_process_profile_definition g_profile_THUNDER = { + fpcLy_CURRENT_e, + 7, + fpcPi_CURRENT_e, + PROC_KY_THUNDER, + &g_fpcLf_Method.mBase, + sizeof(dThunder_c), + 0, + 0, + &g_fopKy_Method, + 0x006, + &l_dThunder_Method, +}; diff --git a/src/d/d_level_se.cpp b/src/d/d_level_se.cpp index 1fc76092d..34971b1c9 100644 --- a/src/d/d_level_se.cpp +++ b/src/d/d_level_se.cpp @@ -3,26 +3,70 @@ // Translation Unit: d_level_se.cpp // -#include "d_level_se.h" -#include "dolphin/types.h" +#include "f_op/f_op_kankyo.h" +#include "f_op/f_op_kankyo_mng.h" +#include "d/d_procname.h" +#include "m_Do/m_Do_audio.h" + +class dLevelSe_c : public kankyo_class { +public: + /* 0xF8 */ u32 field_0xf8; + /* 0xFC */ s8 mReverb; + /* 0xFD */ u8 mFlag; + /* 0xFE */ u8 field_0xfe; + /* 0xFF */ u8 field_0xff; +}; /* 80199308-801993CC .text dLevelSe_Execute__FP10dLevelSe_c */ -void dLevelSe_Execute(dLevelSe_c*) { - /* Nonmatching */ +BOOL dLevelSe_Execute(dLevelSe_c* i_this) { + s32 soundId = i_this->mParam; + + if (i_this->mFlag & 0x08) { + } else if (i_this->mFlag & 0x01) { + mDoAud_seStart(soundId, &i_this->mPos, i_this->field_0xf8, 0); + } else if (i_this->mFlag & 0x04) { + mDoAud_seStart(soundId, &i_this->mPos, i_this->field_0xf8, i_this->mReverb); + } else { + mDoAud_seStart(soundId, &i_this->mPos, 0, 0); + } + + return TRUE; } /* 801993CC-801993D4 .text dLevelSe_IsDelete__FP10dLevelSe_c */ -void dLevelSe_IsDelete(dLevelSe_c*) { - /* Nonmatching */ +BOOL dLevelSe_IsDelete(dLevelSe_c*) { + return TRUE; } /* 801993D4-80199404 .text dLevelSe_Delete__FP10dLevelSe_c */ -void dLevelSe_Delete(dLevelSe_c*) { - /* Nonmatching */ +BOOL dLevelSe_Delete(dLevelSe_c* i_this) { + mDoAud_seDeleteObject(&i_this->mPos); + return TRUE; } /* 80199404-8019940C .text dLevelSe_Create__FP12kankyo_class */ -void dLevelSe_Create(kankyo_class*) { - /* Nonmatching */ +s32 dLevelSe_Create(kankyo_class*) { + return cPhs_COMPLEATE_e; } + +kankyo_method_class l_dLevelSe_Method = { + (process_method_func)dLevelSe_Create, + (process_method_func)dLevelSe_Delete, + (process_method_func)dLevelSe_Execute, + (process_method_func)dLevelSe_IsDelete, +}; + +kankyo_process_profile_definition g_profile_LEVEL_SE = { + fpcLy_CURRENT_e, + 2, + fpcPi_CURRENT_e, + PROC_LEVEL_SE, + &g_fpcLf_Method.mBase, + sizeof(dLevelSe_c), + 0, + 0, + &g_fopKy_Method, + 0x1CD, + &l_dLevelSe_Method, +};