From f80e2122b1d2f0d116d60ae30ca627119ffcff3c Mon Sep 17 00:00:00 2001 From: Hugh Evans Date: Mon, 9 Dec 2024 16:17:47 +0000 Subject: [PATCH] Work on d_a_obj_lv3Water --- include/d/actor/d_a_obj_lv3Water.h | 54 +- include/d/d_com_inf_game.h | 4 + src/d/actor/d_a_obj_lv3Water.cpp | 877 ++++++++++++----------------- 3 files changed, 408 insertions(+), 527 deletions(-) diff --git a/include/d/actor/d_a_obj_lv3Water.h b/include/d/actor/d_a_obj_lv3Water.h index 7337251de56..6444221d384 100644 --- a/include/d/actor/d_a_obj_lv3Water.h +++ b/include/d/actor/d_a_obj_lv3Water.h @@ -1,6 +1,8 @@ #ifndef D_A_OBJ_LV3WATER_H #define D_A_OBJ_LV3WATER_H +#include "d/d_bg_s_movebg_actor.h" +#include "d/d_event_lib.h" #include "f_op/f_op_actor_mng.h" /** @@ -11,32 +13,60 @@ * @details * */ -class daLv3Water_c : public fopAc_ac_c { +class daLv3Water_c : public dBgS_MoveBgActor, + public request_of_phase_process_class, + public dEvLib_callback_c { public: + daLv3Water_c() : dEvLib_callback_c(this) {} + /* 80C58838 */ void setBaseMtx(); - /* 80C5891C */ void CreateHeap(); - /* 80C58ABC */ void create(); - /* 80C58D68 */ void Execute(f32 (**)[3][4]); + /* 80C5891C */ virtual int CreateHeap(); + /* 80C58ABC */ int create(); + /* 80C58D68 */ virtual int Execute(Mtx**); /* 80C58E20 */ void effectSet(); /* 80C596F4 */ void mode_proc_wait(); /* 80C59754 */ void mode_init_levelCtrl(); /* 80C597FC */ void mode_proc_levelCtrl(); - /* 80C598BC */ void Draw(); - /* 80C59AA0 */ void Delete(); - /* 80C59AE0 */ void eventStart(); - /* 80C59D80 */ ~daLv3Water_c(); + /* 80C598BC */ virtual int Draw(); + /* 80C59AA0 */ virtual int Delete(); + + /* 80C59D80 */ virtual ~daLv3Water_c(); + /* 80C59AE0 */ virtual BOOL eventStart(); + + int getParam() { return fpcM_GetParam(this) >> 0xC & 0x0FFF; } + int getParamSw() { return fpcM_GetParam(this) & 0xFF; } + int getParamEvent() { return shape_angle.x & 0xFF; } + u8 getParamType() { return (shape_angle.x >> 8) & 0xFF; } + u8 getType() { return mType; } private: - /* 0x568 */ u8 field_0x568[0x628 - 0x568]; + /* 0x5B8 */ request_of_phase_process_class mPhase; + /* 0x5C0 */ J3DModel* mpModel1; + /* 0x5C4 */ J3DModel* mpModel2; + /* 0x5C8 */ mDoExt_btkAnm mBtk1; + /* 0x5E0 */ mDoExt_btkAnm mBtk2; + /* 0x5F8 */ u8 mMode; + /* 0x5F9 */ u8 mType; + /* 0x5FC */ f32 field_0x5fc; + /* 0x600 */ u8 field_0x600; + /* 0x601 */ u8 field_0x601; + /* 0x602 */ u8 mSwitch1; + /* 0x603 */ u8 mSwitch2; + /* 0x604 */ u8 field_0x604; + /* 0x605 */ u8 field_0x605; + /* 0x608 */ u32 mEmitterIDs[8]; }; STATIC_ASSERT(sizeof(daLv3Water_c) == 0x628); -class daLv3Water_HIO_c { +class daLv3Water_HIO_c : public mDoHIO_entry_c { public: /* 80C587CC */ daLv3Water_HIO_c(); - /* 80C59C34 */ ~daLv3Water_HIO_c(); -}; + /* 80C59C34 */ virtual ~daLv3Water_HIO_c(); + + /* 0x00 */ /* vtable */ + /* 0x04 */ u8 field_0x04; +}; #endif /* D_A_OBJ_LV3WATER_H */ diff --git a/include/d/d_com_inf_game.h b/include/d/d_com_inf_game.h index 63970006218..c8b6672664e 100644 --- a/include/d/d_com_inf_game.h +++ b/include/d/d_com_inf_game.h @@ -3970,6 +3970,10 @@ inline void dComIfGd_setXluListBG() { g_dComIfG_gameInfo.drawlist.setXluListBG(); } +inline void dComIfGd_setXluListDarkBG() { + g_dComIfG_gameInfo.drawlist.setXluListDarkBG(); +} + inline void dComIfGd_setListBG() { g_dComIfG_gameInfo.drawlist.setOpaListBG(); g_dComIfG_gameInfo.drawlist.setXluListBG(); diff --git a/src/d/actor/d_a_obj_lv3Water.cpp b/src/d/actor/d_a_obj_lv3Water.cpp index 33a528a0cb1..3091851ab30 100644 --- a/src/d/actor/d_a_obj_lv3Water.cpp +++ b/src/d/actor/d_a_obj_lv3Water.cpp @@ -1,138 +1,32 @@ /** * @file d_a_obj_lv3Water.cpp - * -*/ + * + */ #include "d/actor/d_a_obj_lv3Water.h" -#include "dol2asm.h" - - - -// -// Forward References: -// - -extern "C" void __ct__16daLv3Water_HIO_cFv(); -extern "C" void __dt__14mDoHIO_entry_cFv(); -extern "C" void setBaseMtx__12daLv3Water_cFv(); -extern "C" void CreateHeap__12daLv3Water_cFv(); -extern "C" void create__12daLv3Water_cFv(); -extern "C" void __dt__12J3DFrameCtrlFv(); -extern "C" void Execute__12daLv3Water_cFPPA3_A4_f(); -extern "C" void effectSet__12daLv3Water_cFv(); -extern "C" void mode_proc_wait__12daLv3Water_cFv(); -extern "C" void mode_init_levelCtrl__12daLv3Water_cFv(); -extern "C" void mode_proc_levelCtrl__12daLv3Water_cFv(); -extern "C" void Draw__12daLv3Water_cFv(); -extern "C" void Delete__12daLv3Water_cFv(); -extern "C" void eventStart__12daLv3Water_cFv(); -extern "C" static void daLv3Water_Draw__FP12daLv3Water_c(); -extern "C" static void daLv3Water_Execute__FP12daLv3Water_c(); -extern "C" static void daLv3Water_Delete__FP12daLv3Water_c(); -extern "C" static void daLv3Water_Create__FP10fopAc_ac_c(); -extern "C" void __dt__16daLv3Water_HIO_cFv(); -extern "C" void __sinit_d_a_obj_lv3Water_cpp(); -extern "C" static void func_80C59D10(); -extern "C" static void func_80C59D18(); -extern "C" void __dt__17dEvLib_callback_cFv(); -extern "C" bool eventStart__17dEvLib_callback_cFv(); -extern "C" bool eventRun__17dEvLib_callback_cFv(); -extern "C" bool eventEnd__17dEvLib_callback_cFv(); -extern "C" void __dt__12daLv3Water_cFv(); -extern "C" extern char const* const d_a_obj_lv3Water__stringBase0; - -// -// External References: -// - -extern "C" void mDoMtx_YrotM__FPA4_fs(); -extern "C" void play__14mDoExt_baseAnmFv(); -extern "C" void init__13mDoExt_btkAnmFP16J3DMaterialTableP19J3DAnmTextureSRTKeyiifss(); -extern "C" void entry__13mDoExt_btkAnmFP16J3DMaterialTablef(); -extern "C" void mDoExt_modelUpdateDL__FP8J3DModel(); -extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl(); -extern "C" void __dt__10fopAc_ac_cFv(); -extern "C" void fopMsgM_valueIncrease__FiiUc(); -extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfGp_getReverb__Fi(); -extern "C" void isSwitch__10dSv_info_cCFii(); -extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci(); -extern "C" void eventUpdate__17dEvLib_callback_cFv(); -extern "C" void orderEvent__17dEvLib_callback_cFiii(); -extern "C" void -set__13dPa_control_cFUlUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf(); -extern "C" void Release__4cBgSFP9dBgW_Base(); -extern "C" void Regist__4dBgSFP9dBgW_BaseP10fopAc_ac_c(); -extern "C" void __ct__16dBgS_MoveBgActorFv(); -extern "C" bool Create__16dBgS_MoveBgActorFv(); -extern "C" bool IsDelete__16dBgS_MoveBgActorFv(); -extern "C" bool ToFore__16dBgS_MoveBgActorFv(); -extern "C" bool ToBack__16dBgS_MoveBgActorFv(); -extern "C" void -MoveBGCreate__16dBgS_MoveBgActorFPCciPFP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz_vUlPA3_A4_f(); -extern "C" void MoveBGDelete__16dBgS_MoveBgActorFv(); -extern "C" void MoveBGExecute__16dBgS_MoveBgActorFv(); -extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c(); -extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c(); -extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); -extern "C" void __dl__FPv(); -extern "C" void setEffectMtx__13J3DTexMtxInfoFPA4_f(); -extern "C" void simpleCalcMaterial__12J3DModelDataFUsPA4_f(); -extern "C" void init__12J3DFrameCtrlFs(); -extern "C" void __ptmf_scall(); -extern "C" void _savegpr_25(); -extern "C" void _savegpr_28(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_25(); -extern "C" void _restgpr_28(); -extern "C" void _restgpr_29(); -extern "C" extern void* __vt__16dBgS_MoveBgActor[10]; -extern "C" u8 now__14mDoMtx_stack_c[48]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; -extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; -extern "C" void __register_global_object(); - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 80C5A068-80C5A068 0001F8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80C5A068 = "Kr10water"; -SECTION_DEAD static char const* const stringBase_80C5A072 = "Kr10wat01"; -SECTION_DEAD static char const* const stringBase_80C5A07C = "Kr02wat00"; -SECTION_DEAD static char const* const stringBase_80C5A086 = "Kr03wat00"; -SECTION_DEAD static char const* const stringBase_80C5A090 = "Kr03wat01"; -SECTION_DEAD static char const* const stringBase_80C5A09A = "Kr03wat02"; -SECTION_DEAD static char const* const stringBase_80C5A0A4 = "Kr03wat03"; -SECTION_DEAD static char const* const stringBase_80C5A0AE = "Kr03wat04"; -SECTION_DEAD static char const* const stringBase_80C5A0B8 = "Kr07wat00"; -SECTION_DEAD static char const* const stringBase_80C5A0C2 = "Kr08wat00"; -SECTION_DEAD static char const* const stringBase_80C5A0CC = "Kr08wat01"; -SECTION_DEAD static char const* const stringBase_80C5A0D6 = "Kr02wat01"; -SECTION_DEAD static char const* const stringBase_80C5A0E0 = "Kr02wat02"; -SECTION_DEAD static char const* const stringBase_80C5A0EA = "Kr02wat03"; -SECTION_DEAD static char const* const stringBase_80C5A0F4 = "Kr11wat00"; -SECTION_DEAD static char const* const stringBase_80C5A0FE = "Kr12wat00"; -SECTION_DEAD static char const* const stringBase_80C5A108 = "Kr13wat00"; -SECTION_DEAD static char const* const stringBase_80C5A112 = "Kr13wat01"; -SECTION_DEAD static char const* const stringBase_80C5A11C = "Kr13wat02"; -SECTION_DEAD static char const* const stringBase_80C5A126 = "Kr03wat05"; -SECTION_DEAD static char const* const stringBase_80C5A130 = "Kr03wat06"; -#pragma pop +#include "JSystem/J3DGraphBase/J3DMaterial.h" +#include "d/d_bg_w.h" +#include "d/d_com_inf_game.h" +#include "d/d_procname.h" +#include "f_op/f_op_msg_mng.h" + +/* 80C5A314-80C5A31C 000014 0008+00 2/2 0/0 0/0 .bss l_HIO */ +static daLv3Water_HIO_c l_HIO; /* 80C5A13C-80C5A148 000000 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */ -SECTION_DATA static u8 cNullVec__6Z2Calc[12] = { +// unused data? +#pragma push +#pragma force_active on +static u8 cNullVec__6Z2Calc[12] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; +#pragma pop /* 80C5A148-80C5A15C 00000C 0004+10 0/0 0/0 0/0 .data @1787 */ +// unused data? #pragma push #pragma force_active on -SECTION_DATA static u32 lit_1787[1 + 4 /* padding */] = { +static u32 lit_1787[1 + 4 /* padding */] = { 0x02000201, /* padding */ 0x40080000, @@ -143,480 +37,433 @@ SECTION_DATA static u32 lit_1787[1 + 4 /* padding */] = { #pragma pop /* 80C5A15C-80C5A1B0 -00001 0054+00 3/3 0/0 0/0 .data l_resNameIdx */ -SECTION_DATA static void* l_resNameIdx[21] = { - (void*)&d_a_obj_lv3Water__stringBase0, - (void*)(((char*)&d_a_obj_lv3Water__stringBase0) + 0xA), - (void*)(((char*)&d_a_obj_lv3Water__stringBase0) + 0x14), - (void*)(((char*)&d_a_obj_lv3Water__stringBase0) + 0x1E), - (void*)(((char*)&d_a_obj_lv3Water__stringBase0) + 0x28), - (void*)(((char*)&d_a_obj_lv3Water__stringBase0) + 0x32), - (void*)(((char*)&d_a_obj_lv3Water__stringBase0) + 0x3C), - (void*)(((char*)&d_a_obj_lv3Water__stringBase0) + 0x46), - (void*)(((char*)&d_a_obj_lv3Water__stringBase0) + 0x50), - (void*)(((char*)&d_a_obj_lv3Water__stringBase0) + 0x5A), - (void*)(((char*)&d_a_obj_lv3Water__stringBase0) + 0x64), - (void*)(((char*)&d_a_obj_lv3Water__stringBase0) + 0x6E), - (void*)(((char*)&d_a_obj_lv3Water__stringBase0) + 0x78), - (void*)(((char*)&d_a_obj_lv3Water__stringBase0) + 0x82), - (void*)(((char*)&d_a_obj_lv3Water__stringBase0) + 0x8C), - (void*)(((char*)&d_a_obj_lv3Water__stringBase0) + 0x96), - (void*)(((char*)&d_a_obj_lv3Water__stringBase0) + 0xA0), - (void*)(((char*)&d_a_obj_lv3Water__stringBase0) + 0xAA), - (void*)(((char*)&d_a_obj_lv3Water__stringBase0) + 0xB4), - (void*)(((char*)&d_a_obj_lv3Water__stringBase0) + 0xBE), - (void*)(((char*)&d_a_obj_lv3Water__stringBase0) + 0xC8), -}; - -/* 80C5A1B0-80C5A1BC -00001 000C+00 0/1 0/0 0/0 .data @3830 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3830[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)mode_proc_wait__12daLv3Water_cFv, -}; -#pragma pop - -/* 80C5A1BC-80C5A1C8 -00001 000C+00 0/1 0/0 0/0 .data @3831 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3831[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)mode_proc_levelCtrl__12daLv3Water_cFv, -}; -#pragma pop - -/* 80C5A1C8-80C5A1E0 00008C 0018+00 1/2 0/0 0/0 .data l_mode_func */ -SECTION_DATA static u8 l_mode_func[24] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 80C5A1E0-80C5A228 -00001 0048+00 1/1 0/0 0/0 .data @4043 */ -SECTION_DATA static void* lit_4043[18] = { - (void*)(((char*)effectSet__12daLv3Water_cFv) + 0x8BC), - (void*)(((char*)effectSet__12daLv3Water_cFv) + 0x290), - (void*)(((char*)effectSet__12daLv3Water_cFv) + 0x8BC), - (void*)(((char*)effectSet__12daLv3Water_cFv) + 0x8BC), - (void*)(((char*)effectSet__12daLv3Water_cFv) + 0x8BC), - (void*)(((char*)effectSet__12daLv3Water_cFv) + 0x8BC), - (void*)(((char*)effectSet__12daLv3Water_cFv) + 0x8BC), - (void*)(((char*)effectSet__12daLv3Water_cFv) + 0x8BC), - (void*)(((char*)effectSet__12daLv3Water_cFv) + 0x3C), - (void*)(((char*)effectSet__12daLv3Water_cFv) + 0x118), - (void*)(((char*)effectSet__12daLv3Water_cFv) + 0x8BC), - (void*)(((char*)effectSet__12daLv3Water_cFv) + 0x8BC), - (void*)(((char*)effectSet__12daLv3Water_cFv) + 0x8BC), - (void*)(((char*)effectSet__12daLv3Water_cFv) + 0x8BC), - (void*)(((char*)effectSet__12daLv3Water_cFv) + 0x474), - (void*)(((char*)effectSet__12daLv3Water_cFv) + 0x8BC), - (void*)(((char*)effectSet__12daLv3Water_cFv) + 0x778), - (void*)(((char*)effectSet__12daLv3Water_cFv) + 0x600), -}; - -/* 80C5A228-80C5A248 -00001 0020+00 1/0 0/0 0/0 .data l_daLv3Water_Method */ -static actor_method_class l_daLv3Water_Method = { - (process_method_func)daLv3Water_Create__FP10fopAc_ac_c, - (process_method_func)daLv3Water_Delete__FP12daLv3Water_c, - (process_method_func)daLv3Water_Execute__FP12daLv3Water_c, - 0, - (process_method_func)daLv3Water_Draw__FP12daLv3Water_c, -}; - -/* 80C5A248-80C5A278 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Lv3Water */ -extern actor_process_profile_definition g_profile_Obj_Lv3Water = { - fpcLy_CURRENT_e, // mLayerID - 3, // mListID - fpcPi_CURRENT_e, // mListPrio - PROC_Obj_Lv3Water, // mProcName - &g_fpcLf_Method.base, // sub_method - sizeof(daLv3Water_c), // mSize - 0, // mSizeOther - 0, // mParameters - &g_fopAc_Method.base, // sub_method - 616, // mPriority - &l_daLv3Water_Method, // sub_method - 0x00044000, // mStatus - fopAc_ACTOR_e, // mActorType - fopAc_CULLBOX_CUSTOM_e, // cullType -}; - -/* 80C5A278-80C5A284 00013C 000C+00 3/3 0/0 0/0 .data __vt__12J3DFrameCtrl */ -SECTION_DATA extern void* __vt__12J3DFrameCtrl[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__12J3DFrameCtrlFv, -}; - -/* 80C5A284-80C5A29C 000148 0018+00 3/3 0/0 0/0 .data __vt__17dEvLib_callback_c */ -SECTION_DATA extern void* __vt__17dEvLib_callback_c[6] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__17dEvLib_callback_cFv, - (void*)eventStart__17dEvLib_callback_cFv, - (void*)eventRun__17dEvLib_callback_cFv, - (void*)eventEnd__17dEvLib_callback_cFv, +static char* l_resNameIdx[] = { + "Kr10water", "Kr10wat01", "Kr02wat00", "Kr03wat00", "Kr03wat01", "Kr03wat02", "Kr03wat03", + "Kr03wat04", "Kr07wat00", "Kr08wat00", "Kr08wat01", "Kr02wat01", "Kr02wat02", "Kr02wat03", + "Kr11wat00", "Kr12wat00", "Kr13wat00", "Kr13wat01", "Kr13wat02", "Kr03wat05", "Kr03wat06", }; -/* 80C5A29C-80C5A2E4 000160 0048+00 2/2 0/0 0/0 .data __vt__12daLv3Water_c */ -SECTION_DATA extern void* __vt__12daLv3Water_c[18] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)CreateHeap__12daLv3Water_cFv, - (void*)Create__16dBgS_MoveBgActorFv, - (void*)Execute__12daLv3Water_cFPPA3_A4_f, - (void*)Draw__12daLv3Water_cFv, - (void*)Delete__12daLv3Water_cFv, - (void*)IsDelete__16dBgS_MoveBgActorFv, - (void*)ToFore__16dBgS_MoveBgActorFv, - (void*)ToBack__16dBgS_MoveBgActorFv, - (void*)NULL, - (void*)NULL, - (void*)func_80C59D18, - (void*)func_80C59D10, - (void*)eventRun__17dEvLib_callback_cFv, - (void*)eventEnd__17dEvLib_callback_cFv, - (void*)__dt__12daLv3Water_cFv, - (void*)eventStart__12daLv3Water_cFv, -}; - -/* 80C5A2E4-80C5A2F0 0001A8 000C+00 2/2 0/0 0/0 .data __vt__16daLv3Water_HIO_c */ -SECTION_DATA extern void* __vt__16daLv3Water_HIO_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__16daLv3Water_HIO_cFv, -}; - -/* 80C5A2F0-80C5A2FC 0001B4 000C+00 3/3 0/0 0/0 .data __vt__14mDoHIO_entry_c */ -SECTION_DATA extern void* __vt__14mDoHIO_entry_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__14mDoHIO_entry_cFv, +typedef void (daLv3Water_c::*mode_func)(); +static mode_func l_mode_func[] = { + &daLv3Water_c::mode_proc_wait, + &daLv3Water_c::mode_proc_levelCtrl, }; /* 80C587CC-80C587F0 0000EC 0024+00 1/1 0/0 0/0 .text __ct__16daLv3Water_HIO_cFv */ daLv3Water_HIO_c::daLv3Water_HIO_c() { - // NONMATCHING -} - -/* 80C587F0-80C58838 000110 0048+00 1/0 0/0 0/0 .text __dt__14mDoHIO_entry_cFv */ -// mDoHIO_entry_c::~mDoHIO_entry_c() { -extern "C" void __dt__14mDoHIO_entry_cFv() { - // NONMATCHING + field_0x04 = NULL; } /* 80C58838-80C5891C 000158 00E4+00 2/2 0/0 0/0 .text setBaseMtx__12daLv3Water_cFv */ void daLv3Water_c::setBaseMtx() { - // NONMATCHING + if (mpModel2 != NULL) { + mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z); + mDoMtx_stack_c::YrotM(shape_angle.y); + + mpModel2->setBaseScale(scale); + mpModel2->setBaseTRMtx(mDoMtx_stack_c::get()); + } + + mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z); + mDoMtx_stack_c::YrotM(shape_angle.y); + + mpModel1->setBaseScale(scale); + mpModel1->setBaseTRMtx(mDoMtx_stack_c::get()); } -/* ############################################################################################## */ /* 80C59E70-80C59EC4 000000 0054+00 2/2 0/0 0/0 .rodata l_bmdIdx */ -SECTION_RODATA static u8 const l_bmdIdx[84] = { - 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, - 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, - 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, - 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, - 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, - 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, +static const int l_bmdIdx[] = { + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, }; -COMPILER_STRIP_GATE(0x80C59E70, &l_bmdIdx); /* 80C59EC4-80C59F18 000054 0054+00 1/1 0/0 0/0 .rodata l_dzbIdx */ -SECTION_RODATA static u8 const l_dzbIdx[84] = { - 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, - 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0D, - 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, - 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0D, - 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, - 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x0B, +static const int l_dzbIdx[] = { + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 11, 11, }; -COMPILER_STRIP_GATE(0x80C59EC4, &l_dzbIdx); /* 80C59F18-80C59F6C 0000A8 0054+00 0/1 0/0 0/0 .rodata l_btkIdx */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const l_btkIdx[84] = { - 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, - 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, - 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, - 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, - 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, - 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, +static const int l_btkIdx[] = { + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 8, }; -COMPILER_STRIP_GATE(0x80C59F18, &l_btkIdx); -#pragma pop /* 80C59F6C-80C59FC0 0000FC 0054+00 0/1 0/0 0/0 .rodata l_bmdIdrIdx */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const l_bmdIdrIdx[84] = { - 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, - 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, - 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, - 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, - 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, - 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +static const int l_bmdIdrIdx[] = { + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, -1, -1, }; -COMPILER_STRIP_GATE(0x80C59F6C, &l_bmdIdrIdx); -#pragma pop /* 80C59FC0-80C5A014 000150 0054+00 0/1 0/0 0/0 .rodata l_btkIdrIdx */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const l_btkIdrIdx[84] = { - 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, - 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, - 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, - 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, - 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, - 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +static const int l_btkIdrIdx[] = { + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, -1, -1, }; -COMPILER_STRIP_GATE(0x80C59FC0, &l_btkIdrIdx); -#pragma pop - -/* 80C5A014-80C5A018 0001A4 0004+00 3/5 0/0 0/0 .rodata @3737 */ -SECTION_RODATA static f32 const lit_3737 = 1.0f; -COMPILER_STRIP_GATE(0x80C5A014, &lit_3737); /* 80C5891C-80C58ABC 00023C 01A0+00 1/0 0/0 0/0 .text CreateHeap__12daLv3Water_cFv */ -void daLv3Water_c::CreateHeap() { - // NONMATCHING +int daLv3Water_c::CreateHeap() { + J3DModelData* modelData = + (J3DModelData*)dComIfG_getObjectRes(l_resNameIdx[mType], l_bmdIdx[mType]); + + mpModel1 = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000284); + + if (mpModel1 == NULL) { + return 0; + } + + J3DAnmTextureSRTKey* btk = + (J3DAnmTextureSRTKey*)dComIfG_getObjectRes(l_resNameIdx[mType], l_btkIdx[mType]); + mBtk1.init(modelData, btk, TRUE, J3DFrameCtrl::LOOP_REPEAT_e, 1.0f, 0, -1); + + if (l_bmdIdrIdx[mType] != -1) { + J3DModelData* modelData = + (J3DModelData*)dComIfG_getObjectRes(l_resNameIdx[mType], l_bmdIdrIdx[mType]); + + mpModel2 = mDoExt_J3DModel__create(modelData, 0x80000, 0x19000284); + + if (mpModel2 == NULL) { + return 0; + } + + J3DAnmTextureSRTKey* btk = + (J3DAnmTextureSRTKey*)dComIfG_getObjectRes(l_resNameIdx[mType], l_btkIdrIdx[mType]); + mBtk2.init(modelData, btk, TRUE, J3DFrameCtrl::LOOP_REPEAT_e, 1.0f, 0, -1); + } else { + mpModel2 = NULL; + } + + return 1; } -/* ############################################################################################## */ /* 80C5A018-80C5A048 0001A8 002A+06 1/1 0/0 0/0 .rodata estimateSizeTbl$3746 */ -SECTION_RODATA static u8 const estimateSizeTbl[42 + 6 /* padding */] = { - 0x1C, - 0xE0, - 0x4F, - 0x90, - 0x1C, - 0x80, - 0x1C, - 0x30, - 0x1C, - 0x30, - 0x1C, - 0x30, - 0x1C, - 0x30, - 0x80, - 0x00, - 0x27, - 0xD0, - 0x24, - 0x90, - 0x1E, - 0x60, - 0x1C, - 0x80, - 0x1C, - 0x80, - 0x1C, - 0x80, - 0x4F, - 0x90, - 0x28, - 0x80, - 0x29, - 0xD0, - 0x2B, - 0x00, - 0x20, - 0x40, - 0x13, - 0x60, - 0x13, - 0x60, +static u16 const estimateSizeTbl[] = { + 0x1CE0, + 0x4F90, + 0x1C80, + 0x1C30, + 0x1C30, + 0x1C30, + 0x1C30, + 0x8000, + 0x27D0, + 0x2490, + 0x1E60, + 0x1C80, + 0x1C80, + 0x1C80, + 0x4F90, + 0x2880, + 0x29D0, + 0x2B00, + 0x2040, + 0x1360, + 0x1360, /* padding */ - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, + 0x0000, + 0x0000, + 0x0000, }; -COMPILER_STRIP_GATE(0x80C5A018, &estimateSizeTbl); - -/* 80C5A048-80C5A050 0001D8 0008+00 1/1 0/0 0/0 .rodata @3812 */ -SECTION_RODATA static u8 const lit_3812[8] = { - 0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80C5A048, &lit_3812); /* 80C58ABC-80C58D20 0003DC 0264+00 1/1 0/0 0/0 .text create__12daLv3Water_cFv */ -void daLv3Water_c::create() { - // NONMATCHING -} - -/* 80C58D20-80C58D68 000640 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */ -// J3DFrameCtrl::~J3DFrameCtrl() { -extern "C" void __dt__12J3DFrameCtrlFv() { - // NONMATCHING +int daLv3Water_c::create() { + fopAcM_SetupActor(this, daLv3Water_c); + + mType = getParamType(); + + int phase = dComIfG_resLoad(&mPhase, l_resNameIdx[mType]); + + if (phase == cPhs_COMPLEATE_e) { + if (MoveBGCreate(l_resNameIdx[mType], l_dzbIdx[mType], NULL, estimateSizeTbl[mType], + NULL) == cPhs_ERROR_e) + { + return cPhs_ERROR_e; + } + + field_0x5fc = getParam(); + mSwitch1 = dComIfGs_isSwitch(getParamSw(), fopAcM_GetHomeRoomNo(this)); + field_0x605 = 1; + + if (mType == 1 || mType == 10 || mType == 15 || mType == 17 || mType == 19 || mType == 20) { + if (mSwitch1 == 0) { + if (mpBgW != NULL) { + dComIfG_Bgsp().Release(mpBgW); + } + field_0x605 = 0; + } else if (mType == 1) { + current.pos.y = home.pos.y + field_0x5fc; + } + } else if (mSwitch1 != 0) { + current.pos.y = home.pos.y + field_0x5fc; + } + + fopAcM_SetMtx(this, mpModel1->getBaseTRMtx()); + setBaseMtx(); + mMode = 0; + } + + return phase; } /* 80C58D68-80C58E20 000688 00B8+00 1/0 0/0 0/0 .text Execute__12daLv3Water_cFPPA3_A4_f */ -void daLv3Water_c::Execute(f32 (**param_0)[3][4]) { - // NONMATCHING +int daLv3Water_c::Execute(Mtx** i_mtx) { + mBtk1.play(); + + if (mpModel2 != NULL) { + mBtk2.play(); + } + + eventUpdate(); + mSwitch2 = dComIfGs_isSwitch(getParamSw(), fopAcM_GetHomeRoomNo(this)); + (this->*l_mode_func[mMode])(); + effectSet(); + *i_mtx = &mpModel1->getBaseTRMtx(); + setBaseMtx(); + + return 1; } /* 80C58E20-80C596F4 000740 08D4+00 2/1 0/0 0/0 .text effectSet__12daLv3Water_cFv */ void daLv3Water_c::effectSet() { - // NONMATCHING + switch (mType) { + case 8: + if (fopAcM_isSwitch(this, 8)) { + mEmitterIDs[0] = + dComIfGp_particle_set(mEmitterIDs[0], 0X8AB2, ¤t.pos, NULL, NULL); + mEmitterIDs[1] = + dComIfGp_particle_set(mEmitterIDs[1], 0X8AB3, ¤t.pos, NULL, NULL); + } + break; + case 9: + if (mSwitch1) { + mEmitterIDs[0] = + dComIfGp_particle_set(mEmitterIDs[0], 0X8AB4, ¤t.pos, NULL, NULL); + mEmitterIDs[1] = + dComIfGp_particle_set(mEmitterIDs[1], 0X8AB5, ¤t.pos, NULL, NULL); + mEmitterIDs[2] = + dComIfGp_particle_set(mEmitterIDs[2], 0X8AB6, ¤t.pos, NULL, NULL); + mEmitterIDs[3] = + dComIfGp_particle_set(mEmitterIDs[3], 0X8AB7, ¤t.pos, NULL, NULL); + } + break; + case 1: + if (fopAcM_isSwitch(this, 8)) { + mEmitterIDs[0] = + dComIfGp_particle_set(mEmitterIDs[0], 0x8AB9, ¤t.pos, NULL, NULL); + mEmitterIDs[1] = + dComIfGp_particle_set(mEmitterIDs[1], 0x8ABA, ¤t.pos, NULL, NULL); + mEmitterIDs[2] = + dComIfGp_particle_set(mEmitterIDs[2], 0x8ABB, ¤t.pos, NULL, NULL); + mEmitterIDs[3] = + dComIfGp_particle_set(mEmitterIDs[3], 0x8ABC, ¤t.pos, NULL, NULL); + mEmitterIDs[4] = + dComIfGp_particle_set(mEmitterIDs[4], 0x8AB8, ¤t.pos, NULL, NULL); + } + break; + case 14: + if (fopAcM_isSwitch(this, 9)) { + mEmitterIDs[0] = + dComIfGp_particle_set(mEmitterIDs[0], 0X8ABF, ¤t.pos, NULL, NULL); + mEmitterIDs[1] = + dComIfGp_particle_set(mEmitterIDs[1], 0X8AC0, ¤t.pos, NULL, NULL); + mEmitterIDs[2] = + dComIfGp_particle_set(mEmitterIDs[2], 0X8AC1, ¤t.pos, NULL, NULL); + mEmitterIDs[3] = + dComIfGp_particle_set(mEmitterIDs[3], 0X8AC2, ¤t.pos, NULL, NULL); + } + break; + case 17: + if (mSwitch1) { + mEmitterIDs[0] = + dComIfGp_particle_set(mEmitterIDs[0], 0X8AC4, ¤t.pos, NULL, NULL); + mEmitterIDs[1] = + dComIfGp_particle_set(mEmitterIDs[1], 0X8AC5, ¤t.pos, NULL, NULL); + mEmitterIDs[2] = + dComIfGp_particle_set(mEmitterIDs[2], 0X8AC6, ¤t.pos, NULL, NULL); + mEmitterIDs[3] = + dComIfGp_particle_set(mEmitterIDs[3], 0X8AC7, ¤t.pos, NULL, NULL); + } + break; + case 16: + if (mSwitch1) { + mEmitterIDs[0] = + dComIfGp_particle_set(mEmitterIDs[0], 0X8AC8, ¤t.pos, NULL, NULL); + mEmitterIDs[1] = + dComIfGp_particle_set(mEmitterIDs[1], 0X8AC9, ¤t.pos, NULL, NULL); + } + if (fopAcM_isSwitch(this, 9)) { + mEmitterIDs[2] = + dComIfGp_particle_set(mEmitterIDs[2], 0x8AC3, ¤t.pos, NULL, NULL); + } + } } /* 80C596F4-80C59754 001014 0060+00 1/0 0/0 0/0 .text mode_proc_wait__12daLv3Water_cFv */ void daLv3Water_c::mode_proc_wait() { - // NONMATCHING + if (mSwitch1 != mSwitch2) { + int event = getParamEvent(); + if (event != 0xFF) { + orderEvent(event, 0xFF, 1); + } else { + eventStart(); + } + } } -/* ############################################################################################## */ -/* 80C5A050-80C5A058 0001E0 0004+04 1/1 0/0 0/0 .rodata @4068 */ -SECTION_RODATA static f32 const lit_4068[1 + 1 /* padding */] = { - -1.0f, - /* padding */ - 0.0f, -}; -COMPILER_STRIP_GATE(0x80C5A050, &lit_4068); - -/* 80C5A308-80C5A314 000008 000C+00 1/1 0/0 0/0 .bss @3657 */ -static u8 lit_3657[12]; - -/* 80C5A314-80C5A31C 000014 0008+00 2/2 0/0 0/0 .bss l_HIO */ -static u8 l_HIO[8]; - /* 80C59754-80C597FC 001074 00A8+00 1/1 0/0 0/0 .text mode_init_levelCtrl__12daLv3Water_cFv */ void daLv3Water_c::mode_init_levelCtrl() { - // NONMATCHING -} + field_0x600 = 0; + field_0x604 = l_HIO.field_0x04; -/* ############################################################################################## */ -/* 80C5A058-80C5A060 0001E8 0008+00 1/1 0/0 0/0 .rodata @4080 */ -SECTION_RODATA static u8 const lit_4080[8] = { - 0x43, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80C5A058, &lit_4080); + if (mType == 9) { + fopAcM_seStartCurrent(this, Z2SE_ENV_FILL_UP_LV3WTR3, 0); + } + + mMode = 1; +} /* 80C597FC-80C598BC 00111C 00C0+00 1/0 0/0 0/0 .text mode_proc_levelCtrl__12daLv3Water_cFv */ void daLv3Water_c::mode_proc_levelCtrl() { - // NONMATCHING + if (field_0x604 != NULL) { + field_0x604 = field_0x604 - 1; + } else { + f32 fVar = fopMsgM_valueIncrease(field_0x601, field_0x600, mSwitch1); + + if (mSwitch1 == 0) { + fVar = 1.0f - fVar; + } + + field_0x600 = field_0x600 + 1; + if (field_0x600 >= field_0x601) { + fVar = mSwitch1; + mMode = 0; + } + + current.pos.y = home.pos.y + field_0x5fc * fVar; + } } -/* ############################################################################################## */ -/* 80C5A060-80C5A064 0001F0 0004+00 0/1 0/0 0/0 .rodata @4173 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4173 = -1.0f / 100.0f; -COMPILER_STRIP_GATE(0x80C5A060, &lit_4173); -#pragma pop - -/* 80C5A064-80C5A068 0001F4 0004+00 0/1 0/0 0/0 .rodata @4174 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4174[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80C5A064, &lit_4174); -#pragma pop - /* 80C598BC-80C59AA0 0011DC 01E4+00 1/0 0/0 0/0 .text Draw__12daLv3Water_cFv */ -void daLv3Water_c::Draw() { - // NONMATCHING +int daLv3Water_c::Draw() { + if (field_0x605 == NULL) { + return 0; + } + + g_env_light.settingTevStruct(0x10, ¤t.pos, &tevStr); + g_env_light.setLightTevColorType_MAJI(mpModel1, &tevStr); + + if (mpModel2 != NULL) { + g_env_light.setLightTevColorType_MAJI(mpModel2, &tevStr); + } + + mBtk1.entry(mpModel1->getModelData()); + + if (mpModel2 != NULL) { + mBtk2.entry(mpModel2->getModelData()); + } + + dComIfGd_setXluListDarkBG(); + mDoExt_modelUpdateDL(mpModel1); + dComIfGd_setList(); + + if (mpModel2 != NULL) { + J3DModelData* modelData = mpModel2->getModelData(); + J3DMaterial* material = modelData->getMaterialNodePointer(0); + + dComIfGd_setListInvisisble(); + + J3DTexMtx* texMtx = material->getTexGenBlock()->getTexMtx(0); + if (texMtx != NULL) { + J3DTexMtxInfo* texMtxInfo = &material->getTexGenBlock()->getTexMtx(0)->getTexMtxInfo(); + if (texMtxInfo != NULL) { + Mtx lightProjMtx; + C_MTXLightPerspective(lightProjMtx, dComIfGd_getView()->fovy, + dComIfGd_getView()->aspect, 1.0f, 1.0f, -0.01f, 0.0f); + texMtxInfo->setEffectMtx(lightProjMtx); + modelData->simpleCalcMaterial(0, (MtxP)j3dDefaultMtx); + } + } + + mDoExt_modelUpdateDL(mpModel2); + dComIfGd_setList(); + } + + return 1; } /* 80C59AA0-80C59AE0 0013C0 0040+00 1/0 0/0 0/0 .text Delete__12daLv3Water_cFv */ -void daLv3Water_c::Delete() { - // NONMATCHING +int daLv3Water_c::Delete() { + dComIfG_resDelete(&mPhase, l_resNameIdx[mType]); + return 1; } /* 80C59AE0-80C59BA8 001400 00C8+00 2/1 0/0 0/0 .text eventStart__12daLv3Water_cFv */ -void daLv3Water_c::eventStart() { - // NONMATCHING +BOOL daLv3Water_c::eventStart() { + field_0x601 = fpcM_GetParam(this) >> 0x18; + mSwitch1 = mSwitch2; + + if (mType == 1 || mType == 10 || mType == 15 || mType == 17 || mType == 19 || mType == 20) { + if (mpBgW != NULL) { + dComIfG_Bgsp().Regist(mpBgW, this); + } + if (mType == 1) { + current.pos.y = home.pos.y + field_0x5fc; + } + field_0x605 = mSwitch2; + mMode = 0; + } else { + mode_init_levelCtrl(); + } + + return 1; } /* 80C59BA8-80C59BD4 0014C8 002C+00 1/0 0/0 0/0 .text daLv3Water_Draw__FP12daLv3Water_c */ -static void daLv3Water_Draw(daLv3Water_c* param_0) { - // NONMATCHING +static int daLv3Water_Draw(daLv3Water_c* i_this) { + return i_this->Draw(); } /* 80C59BD4-80C59BF4 0014F4 0020+00 1/0 0/0 0/0 .text daLv3Water_Execute__FP12daLv3Water_c */ -static void daLv3Water_Execute(daLv3Water_c* param_0) { - // NONMATCHING +static int daLv3Water_Execute(daLv3Water_c* i_this) { + return i_this->MoveBGExecute(); } /* 80C59BF4-80C59C14 001514 0020+00 1/0 0/0 0/0 .text daLv3Water_Delete__FP12daLv3Water_c */ -static void daLv3Water_Delete(daLv3Water_c* param_0) { - // NONMATCHING +static int daLv3Water_Delete(daLv3Water_c* i_this) { + return i_this->MoveBGDelete(); } /* 80C59C14-80C59C34 001534 0020+00 1/0 0/0 0/0 .text daLv3Water_Create__FP10fopAc_ac_c */ -static void daLv3Water_Create(fopAc_ac_c* param_0) { - // NONMATCHING +static int daLv3Water_Create(fopAc_ac_c* i_this) { + return static_cast(i_this)->create(); } /* 80C59C34-80C59C90 001554 005C+00 2/1 0/0 0/0 .text __dt__16daLv3Water_HIO_cFv */ -daLv3Water_HIO_c::~daLv3Water_HIO_c() { - // NONMATCHING -} - -/* 80C59C90-80C59D10 0015B0 0080+00 0/0 1/0 0/0 .text __sinit_d_a_obj_lv3Water_cpp */ -void __sinit_d_a_obj_lv3Water_cpp() { - // NONMATCHING -} - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x80C59C90, __sinit_d_a_obj_lv3Water_cpp); -#pragma pop - -/* 80C59D10-80C59D18 001630 0008+00 1/0 0/0 0/0 .text @1448@eventStart__12daLv3Water_cFv - */ -static void func_80C59D10() { - // NONMATCHING -} - -/* 80C59D18-80C59D20 001638 0008+00 1/0 0/0 0/0 .text @1448@__dt__12daLv3Water_cFv */ -static void func_80C59D18() { - // NONMATCHING -} - -/* 80C59D20-80C59D68 001640 0048+00 1/0 0/0 0/0 .text __dt__17dEvLib_callback_cFv */ -// dEvLib_callback_c::~dEvLib_callback_c() { -extern "C" void __dt__17dEvLib_callback_cFv() { - // NONMATCHING -} - -/* 80C59D68-80C59D70 001688 0008+00 1/0 0/0 0/0 .text eventStart__17dEvLib_callback_cFv - */ -// bool dEvLib_callback_c::eventStart() { -extern "C" bool eventStart__17dEvLib_callback_cFv() { - return true; -} - -/* 80C59D70-80C59D78 001690 0008+00 2/0 0/0 0/0 .text eventRun__17dEvLib_callback_cFv */ -// bool dEvLib_callback_c::eventRun() { -extern "C" bool eventRun__17dEvLib_callback_cFv() { - return true; -} - -/* 80C59D78-80C59D80 001698 0008+00 2/0 0/0 0/0 .text eventEnd__17dEvLib_callback_cFv */ -// bool dEvLib_callback_c::eventEnd() { -extern "C" bool eventEnd__17dEvLib_callback_cFv() { - return true; -} +daLv3Water_HIO_c::~daLv3Water_HIO_c() {} /* 80C59D80-80C59E5C 0016A0 00DC+00 2/1 0/0 0/0 .text __dt__12daLv3Water_cFv */ -daLv3Water_c::~daLv3Water_c() { - // NONMATCHING -} +daLv3Water_c::~daLv3Water_c() {} -/* 80C5A068-80C5A068 0001F8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ +/* 80C5A228-80C5A248 -00001 0020+00 1/0 0/0 0/0 .data l_daLv3Water_Method */ +static actor_method_class l_daLv3Water_Method = { + (process_method_func)daLv3Water_Create, (process_method_func)daLv3Water_Delete, + (process_method_func)daLv3Water_Execute, 0, + (process_method_func)daLv3Water_Draw, +}; + +/* 80C5A248-80C5A278 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Lv3Water */ +extern actor_process_profile_definition g_profile_Obj_Lv3Water = { + fpcLy_CURRENT_e, // mLayerID + 3, // mListID + fpcPi_CURRENT_e, // mListPrio + PROC_Obj_Lv3Water, // mProcName + &g_fpcLf_Method.base, // sub_method + sizeof(daLv3Water_c), // mSize + 0, // mSizeOther + 0, // mParameters + &g_fopAc_Method.base, // sub_method + 616, // mPriority + &l_daLv3Water_Method, // sub_method + 0x00044000, // mStatus + fopAc_ACTOR_e, // mActorType + fopAc_CULLBOX_CUSTOM_e, // cullType +};