From 70eefa53c7deb1903052ce48142a0a87ca375584 Mon Sep 17 00:00:00 2001 From: TakaRikka <38417346+TakaRikka@users.noreply.github.com> Date: Thu, 23 Oct 2025 05:41:00 -0700 Subject: [PATCH] d_a_obj_lv4CandleTag / d_a_obj_lv4EdShutter done, d_a_obj_picture almost (#2755) --- configure.py | 6 +- include/d/actor/d_a_obj_lv4CandleTag.h | 14 +- include/d/actor/d_a_obj_lv4EdShutter.h | 48 +- include/d/actor/d_a_obj_picture.h | 47 +- src/d/actor/d_a_obj_lv4CandleTag.cpp | 380 +++----- src/d/actor/d_a_obj_lv4EdShutter.cpp | 645 +++++-------- src/d/actor/d_a_obj_picture.cpp | 1191 +++++++++++------------- src/d/d_msg_flow.cpp | 6 +- 8 files changed, 966 insertions(+), 1371 deletions(-) diff --git a/configure.py b/configure.py index a29054887c2..f618d730319 100755 --- a/configure.py +++ b/configure.py @@ -748,7 +748,7 @@ config.libs = [ Object(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d/d_msg_scrn_tree.cpp"), Object(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d/d_msg_string_base.cpp"), Object(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d/d_msg_string.cpp"), - Object(NonMatching, "d/d_msg_flow.cpp"), + Object(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d/d_msg_flow.cpp"), Object(MatchingFor("GZ2E01", "GZ2P01"), "d/d_name.cpp"), Object(NonMatching, "d/d_npc_lib.cpp"), Object(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d/d_ovlp_fade.cpp"), @@ -2079,8 +2079,8 @@ config.libs = [ ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_lv3saka00"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_lv3waterEff"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_lv4CandleDemoTag"), - ActorRel(NonMatching, "d_a_obj_lv4CandleTag"), - ActorRel(NonMatching, "d_a_obj_lv4EdShutter"), + ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_lv4CandleTag"), + ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_lv4EdShutter"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_lv4Gate"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_lv4HsTarget"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_lv4PoGate"), diff --git a/include/d/actor/d_a_obj_lv4CandleTag.h b/include/d/actor/d_a_obj_lv4CandleTag.h index cf7dca2895d..b508f6ccc4b 100644 --- a/include/d/actor/d_a_obj_lv4CandleTag.h +++ b/include/d/actor/d_a_obj_lv4CandleTag.h @@ -22,11 +22,11 @@ public: MODE_END, }; - // dalv4CandleTag_c() : dEvLib_callback_c(this) {} + dalv4CandleTag_c() : dEvLib_callback_c(this) {} ~dalv4CandleTag_c() {} /* 80C5D4B8 */ void setBaseMtx(); - /* 80C5D4F0 */ cPhs__Step create(); + /* 80C5D4F0 */ int create(); /* 80C5D5D4 */ int Execute(); /* 80C5D618 */ void procMain(); /* 80C5D6D4 */ void init_modeWatch(); @@ -58,14 +58,4 @@ public: STATIC_ASSERT(sizeof(dalv4CandleTag_c) == 0x58C); -class dalv4CandleTag_HIO_c : public mDoHIO_entry_c { -public: - /* 80C5D44C */ dalv4CandleTag_HIO_c(); - /* 80C5D9C0 */ ~dalv4CandleTag_HIO_c() {} - - void genMessage(JORMContext*); - - u8 mTimer; -}; - #endif /* D_A_OBJ_LV4CANDLETAG_H */ diff --git a/include/d/actor/d_a_obj_lv4EdShutter.h b/include/d/actor/d_a_obj_lv4EdShutter.h index db2edc5bb45..715d35295d7 100644 --- a/include/d/actor/d_a_obj_lv4EdShutter.h +++ b/include/d/actor/d_a_obj_lv4EdShutter.h @@ -2,6 +2,8 @@ #define D_A_OBJ_LV4EDSHUTTER_H #include "f_op/f_op_actor_mng.h" +#include "d/d_bg_s_movebg_actor.h" +#include "d/d_event_lib.h" /** * @ingroup actors-objects @@ -11,12 +13,12 @@ * @details * */ -class daLv4EdShutter_c : public fopAc_ac_c { +class daLv4EdShutter_c : public dBgS_MoveBgActor, public request_of_phase_process_class, public dEvLib_callback_c { public: + daLv4EdShutter_c() : dEvLib_callback_c(this) {} + /* 80C5DE38 */ void setBaseMtx(); - /* 80C5DEC8 */ void CreateHeap(); - /* 80C5DF34 */ void create(); - /* 80C5E0A4 */ void Execute(Mtx**); + /* 80C5DF34 */ int create(); /* 80C5E0F4 */ void move(); /* 80C5E1B0 */ void init_modeWait(); /* 80C5E1C8 */ void modeWait(); @@ -26,26 +28,38 @@ public: /* 80C5E518 */ void modeClose(); /* 80C5E584 */ void init_modeEnd(); /* 80C5E590 */ void modeEnd(); - /* 80C5E594 */ void eventStart(); - /* 80C5E5CC */ void Draw(); - /* 80C5E670 */ void Delete(); - /* 80C5E834 */ ~daLv4EdShutter_c(); + /* 80C5DEC8 */ virtual int CreateHeap(); + /* 80C5E0A4 */ virtual int Execute(Mtx**); + /* 80C5E5CC */ virtual int Draw(); + /* 80C5E670 */ virtual int Delete(); + + /* 80C5E834 */ virtual ~daLv4EdShutter_c() {} + /* 80C5E594 */ virtual bool eventStart(); + + u8 getCloseSw() { return fopAcM_GetParamBit(this, 0, 8); } + u8 getOpenSw() { return fopAcM_GetParamBit(this, 8, 8); } + u8 getWaitTime() { return fopAcM_GetParamBit(this, 16, 8); } + int getEventID() { return fopAcM_GetParamBit(this, 24, 8); } + + u8 getZenmetuSw() { return shape_angle.z & 0xFF; } u8 getStatus() { return mStatus; } private: - /* 0x568 */ u8 field_0x568[0x5CA - 0x568]; + /* 0x5B8 */ request_of_phase_process_class mPhase; + /* 0x5C0 */ J3DModel* mpModel; + /* 0x5C4 */ u8 mMode; + /* 0x5C6 */ u16 mWaitTimer; + /* 0x5C8 */ u8 mOpenSw; + /* 0x5C9 */ u8 mCloseSw; /* 0x5CA */ u8 mStatus; - /* 0x5CB */ u8 field_0x56B[0x5DC - 0x5CB]; + /* 0x5CB */ u8 field_0x5cb; + /* 0x5CC */ u8 mZenmetuSw; + /* 0x5D0 */ f32 mMovePos; + /* 0x5D4 */ u8 field_0x5D4[0x5D8 - 0x5D4]; + /* 0x5D8 */ f32 mMoveSpeed; }; STATIC_ASSERT(sizeof(daLv4EdShutter_c) == 0x5dc); -class daLv4EdShutter_HIO_c { -public: - /* 80C5DDAC */ daLv4EdShutter_HIO_c(); - /* 80C5E72C */ ~daLv4EdShutter_HIO_c(); -}; - - #endif /* D_A_OBJ_LV4EDSHUTTER_H */ diff --git a/include/d/actor/d_a_obj_picture.h b/include/d/actor/d_a_obj_picture.h index 0ce957c08b8..74038216448 100644 --- a/include/d/actor/d_a_obj_picture.h +++ b/include/d/actor/d_a_obj_picture.h @@ -12,15 +12,15 @@ * @details * */ -class daObjPicture_c : public fopAc_ac_c { +class daObjPicture_c : public fopAc_ac_c, public request_of_phase_process_class { public: /* 80CAD318 */ daObjPicture_c(); - /* 80CAD6C8 */ ~daObjPicture_c(); - /* 80CAD908 */ void createHeap(); - /* 80CADC18 */ void create(); - /* 80CADFB0 */ void Delete(); - /* 80CAE05C */ void draw(); - /* 80CAE1B8 */ void execute(); + /* 80CAD6C8 */ virtual ~daObjPicture_c(); + /* 80CAD908 */ int createHeap(); + /* 80CADC18 */ int create(); + /* 80CADFB0 */ int Delete(); + /* 80CAE05C */ int draw(); + /* 80CAE1B8 */ int execute(); /* 80CAE510 */ void init(); /* 80CAE5B0 */ void setPicModelMtx(); /* 80CAE638 */ void setTmgModelMtx(); @@ -29,15 +29,38 @@ public: /* 80CAE76C */ void setLinePos(); /* 80CAE8E8 */ void moveLineFall1(); /* 80CAEA60 */ void moveLineFall2(); - /* 80CAED28 */ void chkHitRope(); - /* 80CAEDDC */ void chkHitBombTg(); + /* 80CAED28 */ bool chkHitRope(); + /* 80CAEDDC */ bool chkHitBombTg(); /* 80CAEE90 */ void setPicAtCol(); - static u8 s_CcDCps[76]; - static u8 s_CcDCyl_pic_at[68]; + int getArg_0() { return fopAcM_GetParamBit(this, 0, 4); } + int getSW_0() { return fopAcM_GetParamBit(this, 4, 8); } + + static dCcD_SrcCps s_CcDCps; + static dCcD_SrcCyl s_CcDCyl_pic_at; private: - /* 0x568 */ u8 field_0x568[0xda0 - 0x568]; + /* 0x574 */ dCcD_Stts field_0x574; + /* 0x5B0 */ dCcD_Stts field_0x5b0; + /* 0x5EC */ dCcD_Stts field_0x5ec; + /* 0x628 */ dCcD_Cps mCps[2]; + /* 0x8B0 */ dCcD_Cyl mAtCyl; + /* 0x9EC */ dCcD_Cps mCps2[2]; + /* 0xC74 */ u8 field_0xC74[0xC7C - 0xC74]; + /* 0xC7C */ cXyz mPicAtPos; + /* 0xC88 */ cXyz field_0xc88; + /* 0xC94 */ Vec field_0xc94; + /* 0xCA0 */ Vec field_0xca0; + /* 0xCAC */ mDoExt_3DlineMat1_c* mpRopeMat[2]; + /* 0xCB4 */ J3DModel* mpPicModel; + /* 0xCB8 */ J3DModel* mpRopestModel; + /* 0xCBC */ dBgW* mpBgw[2]; + /* 0xCC4 */ Mtx mBgMtx[2]; + /* 0xD24 */ u8 field_0xd24; + /* 0xD25 */ u8 field_0xd25; + /* 0xD26 */ u8 field_0xd26; + /* 0xD27 */ u8 field_0xd27; + /* 0xD28 */ Vec field_0xd28[10]; }; STATIC_ASSERT(sizeof(daObjPicture_c) == 0xda0); diff --git a/src/d/actor/d_a_obj_lv4CandleTag.cpp b/src/d/actor/d_a_obj_lv4CandleTag.cpp index dcfd91e2c7f..10f87a433b4 100644 --- a/src/d/actor/d_a_obj_lv4CandleTag.cpp +++ b/src/d/actor/d_a_obj_lv4CandleTag.cpp @@ -1,363 +1,193 @@ -// -// Generated By: dol2asm -// Translation Unit: d_a_obj_lv4CandleTag -// - #include "d/dolzel_rel.h" // IWYU pragma: keep #include "d/actor/d_a_obj_lv4CandleTag.h" -#include "dol2asm.h" -// -// Forward References: -// +class dalv4CandleTag_HIO_c : public mDoHIO_entry_c { +public: + /* 80C5D44C */ dalv4CandleTag_HIO_c(); + /* 80C5D9C0 */ virtual ~dalv4CandleTag_HIO_c() {} -extern "C" void __ct__20dalv4CandleTag_HIO_cFv(); -extern "C" void __dt__14mDoHIO_entry_cFv(); -extern "C" void setBaseMtx__16dalv4CandleTag_cFv(); -extern "C" void create__16dalv4CandleTag_cFv(); -extern "C" void Execute__16dalv4CandleTag_cFv(); -extern "C" void procMain__16dalv4CandleTag_cFv(); -extern "C" void init_modeWatch__16dalv4CandleTag_cFv(); -extern "C" void modeWatch__16dalv4CandleTag_cFv(); -extern "C" void init_modeNG__16dalv4CandleTag_cFv(); -extern "C" void modeNG__16dalv4CandleTag_cFv(); -extern "C" void init_modeNGWait__16dalv4CandleTag_cFv(); -extern "C" void modeNGWait__16dalv4CandleTag_cFv(); -extern "C" void init_modeEnd__16dalv4CandleTag_cFv(); -extern "C" void modeEnd__16dalv4CandleTag_cFv(); -extern "C" void eventStart__16dalv4CandleTag_cFv(); -extern "C" bool Draw__16dalv4CandleTag_cFv(); -extern "C" bool Delete__16dalv4CandleTag_cFv(); -extern "C" static void dalv4CandleTag_Draw__FP16dalv4CandleTag_c(); -extern "C" static void dalv4CandleTag_Execute__FP16dalv4CandleTag_c(); -extern "C" static void dalv4CandleTag_Delete__FP16dalv4CandleTag_c(); -extern "C" static void dalv4CandleTag_Create__FP10fopAc_ac_c(); -extern "C" void __dt__20dalv4CandleTag_HIO_cFv(); -extern "C" void __sinit_d_a_obj_lv4CandleTag_cpp(); -extern "C" static void func_80C5DA58(); -extern "C" static void func_80C5DA60(); -extern "C" void __dt__17dEvLib_callback_cFv(); -extern "C" bool eventRun__17dEvLib_callback_cFv(); -extern "C" bool eventEnd__17dEvLib_callback_cFv(); -extern "C" bool eventStart__17dEvLib_callback_cFv(); -extern "C" void __dt__16dalv4CandleTag_cFv(); + void genMessage(JORMContext*); -// -// External References: -// - -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void __dt__10fopAc_ac_cFv(); -extern "C" void offSwitch__10dSv_info_cFii(); -extern "C" void isSwitch__10dSv_info_cCFii(); -extern "C" void eventUpdate__17dEvLib_callback_cFv(); -extern "C" void orderEvent__17dEvLib_callback_cFiii(); -extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); -extern "C" void __dl__FPv(); -extern "C" void __ptmf_scall(); -extern "C" void _savegpr_28(); -extern "C" void _restgpr_28(); -extern "C" u8 now__14mDoMtx_stack_c[48]; -extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; -extern "C" void __register_global_object(); - -// -// Declarations: -// - -/* 80C5DB84-80C5DB90 -00001 000C+00 0/1 0/0 0/0 .data @3686 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3686[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)modeWatch__16dalv4CandleTag_cFv, -}; -#pragma pop - -/* 80C5DB90-80C5DB9C -00001 000C+00 0/1 0/0 0/0 .data @3687 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3687[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)modeNG__16dalv4CandleTag_cFv, -}; -#pragma pop - -/* 80C5DB9C-80C5DBA8 -00001 000C+00 0/1 0/0 0/0 .data @3688 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3688[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)modeNGWait__16dalv4CandleTag_cFv, -}; -#pragma pop - -/* 80C5DBA8-80C5DBB4 -00001 000C+00 0/1 0/0 0/0 .data @3689 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3689[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)modeEnd__16dalv4CandleTag_cFv, -}; -#pragma pop - -/* 80C5DBB4-80C5DBE4 000050 0030+00 0/1 0/0 0/0 .data mode_proc$3685 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 mode_proc[48] = { - 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -#pragma pop - -/* 80C5DBE4-80C5DC04 -00001 0020+00 1/0 0/0 0/0 .data l_dalv4CandleTag_Method */ -SECTION_DATA static void* l_dalv4CandleTag_Method[8] = { - (void*)dalv4CandleTag_Create__FP10fopAc_ac_c, - (void*)dalv4CandleTag_Delete__FP16dalv4CandleTag_c, - (void*)dalv4CandleTag_Execute__FP16dalv4CandleTag_c, - (void*)NULL, - (void*)dalv4CandleTag_Draw__FP16dalv4CandleTag_c, - (void*)NULL, - (void*)NULL, - (void*)NULL, -}; - -/* 80C5DC04-80C5DC34 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Tag_Lv4Candle */ -SECTION_DATA extern void* g_profile_Tag_Lv4Candle[12] = { - (void*)0xFFFFFFFD, (void*)0x0007FFFD, - (void*)0x01730000, (void*)&g_fpcLf_Method, - (void*)0x0000058C, (void*)NULL, - (void*)NULL, (void*)&g_fopAc_Method, - (void*)0x021C0000, (void*)&l_dalv4CandleTag_Method, - (void*)0x00044000, (void*)0x000E0000, -}; - -/* 80C5DC34-80C5DC5C 0000D0 0028+00 2/2 0/0 0/0 .data __vt__16dalv4CandleTag_c */ -SECTION_DATA extern void* __vt__16dalv4CandleTag_c[10] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)func_80C5DA60, - (void*)func_80C5DA58, - (void*)eventRun__17dEvLib_callback_cFv, - (void*)eventEnd__17dEvLib_callback_cFv, - (void*)__dt__16dalv4CandleTag_cFv, - (void*)eventStart__16dalv4CandleTag_cFv, -}; - -/* 80C5DC5C-80C5DC74 0000F8 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, -}; - -/* 80C5DC74-80C5DC80 000110 000C+00 2/2 0/0 0/0 .data __vt__20dalv4CandleTag_HIO_c */ -SECTION_DATA extern void* __vt__20dalv4CandleTag_HIO_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__20dalv4CandleTag_HIO_cFv, -}; - -/* 80C5DC80-80C5DC8C 00011C 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, + /* 0x4 */ u8 mTimer; }; /* 80C5D44C-80C5D470 0000EC 0024+00 1/1 0/0 0/0 .text __ct__20dalv4CandleTag_HIO_cFv */ dalv4CandleTag_HIO_c::dalv4CandleTag_HIO_c() { - // NONMATCHING -} - -/* 80C5D470-80C5D4B8 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 + mTimer = 60; } /* 80C5D4B8-80C5D4F0 000158 0038+00 2/2 0/0 0/0 .text setBaseMtx__16dalv4CandleTag_cFv */ void dalv4CandleTag_c::setBaseMtx() { - // NONMATCHING + mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z); } /* 80C5D4F0-80C5D5D4 000190 00E4+00 1/1 0/0 0/0 .text create__16dalv4CandleTag_cFv */ -cPhs__Step dalv4CandleTag_c::create() { - // NONMATCHING +int dalv4CandleTag_c::create() { + fopAcM_ct(this, dalv4CandleTag_c); + + setBaseMtx(); + + mSwTop = getSwTop(); + mSwOK = getSwOK(); + mSwNG = getSwNG(); + mSwTotal = getSwTotal(); + + if (fopAcM_isSwitch(this, mSwOK)) { + init_modeEnd(); + } else { + init_modeWatch(); + } + + return cPhs_COMPLEATE_e; } /* 80C5D5D4-80C5D618 000274 0044+00 1/1 0/0 0/0 .text Execute__16dalv4CandleTag_cFv */ int dalv4CandleTag_c::Execute() { - // NONMATCHING + eventUpdate(); + procMain(); + setBaseMtx(); + return 1; } -/* ############################################################################################## */ -/* 80C5DC98-80C5DCA4 000008 000C+00 1/1 0/0 0/0 .bss @3624 */ -static u8 lit_3624[12]; - /* 80C5DCA4-80C5DCAC 000014 0008+00 2/2 0/0 0/0 .bss l_HIO */ -static u8 l_HIO[8]; - -/* 80C5DCAC-80C5DCB0 00001C 0004+00 1/1 0/0 0/0 .bss None */ -static u8 data_80C5DCAC[4]; +static dalv4CandleTag_HIO_c l_HIO; /* 80C5D618-80C5D6D4 0002B8 00BC+00 1/1 0/0 0/0 .text procMain__16dalv4CandleTag_cFv */ void dalv4CandleTag_c::procMain() { - // NONMATCHING + static void (dalv4CandleTag_c::*mode_proc[])() = { + &dalv4CandleTag_c::modeWatch, + &dalv4CandleTag_c::modeNG, + &dalv4CandleTag_c::modeNGWait, + &dalv4CandleTag_c::modeEnd, + }; + + (this->*mode_proc[mMode])(); } /* 80C5D6D4-80C5D6E0 000374 000C+00 2/2 0/0 0/0 .text init_modeWatch__16dalv4CandleTag_cFv */ void dalv4CandleTag_c::init_modeWatch() { - // NONMATCHING + mMode = 0; } /* 80C5D6E0-80C5D78C 000380 00AC+00 1/0 0/0 0/0 .text modeWatch__16dalv4CandleTag_cFv */ void dalv4CandleTag_c::modeWatch() { - // NONMATCHING + if (fopAcM_isSwitch(this, mSwOK)) { + init_modeEnd(); + } else if (fopAcM_isSwitch(this, mSwNG)) { + if (getEventID() != 0xFF) { + orderEvent(getEventID(), 0xFF, 1); + } else { + eventStart(); + } + } } -/* ############################################################################################## */ -/* 80C5DB5C-80C5DB60 000000 0004+00 1/1 0/0 0/0 .rodata @3727 */ -SECTION_RODATA static f32 const lit_3727 = 1.0f; -COMPILER_STRIP_GATE(0x80C5DB5C, &lit_3727); - -/* 80C5DB60-80C5DB64 000004 0004+00 1/1 0/0 0/0 .rodata @3728 */ -SECTION_RODATA static f32 const lit_3728 = -1.0f; -COMPILER_STRIP_GATE(0x80C5DB60, &lit_3728); - /* 80C5D78C-80C5D814 00042C 0088+00 1/1 0/0 0/0 .text init_modeNG__16dalv4CandleTag_cFv */ void dalv4CandleTag_c::init_modeNG() { - // NONMATCHING + mTimer = l_HIO.mTimer; + mDoAud_seStart(Z2SE_OBJ_LV4_CNDL_MISS, NULL, 0, 0); + mMode = 1; } /* 80C5D814-80C5D8A0 0004B4 008C+00 1/0 0/0 0/0 .text modeNG__16dalv4CandleTag_cFv */ void dalv4CandleTag_c::modeNG() { - // NONMATCHING + if (mTimer != 0) { + mTimer--; + } else { + u8 swbit = mSwTop; + for (int i = 0; i < mSwTotal; i++) { + fopAcM_offSwitch(this, swbit); + swbit++; + } + + init_modeNGWait(); + } } /* 80C5D8A0-80C5D8AC 000540 000C+00 1/1 0/0 0/0 .text init_modeNGWait__16dalv4CandleTag_cFv */ void dalv4CandleTag_c::init_modeNGWait() { - // NONMATCHING + mMode = 2; } /* 80C5D8AC-80C5D8FC 00054C 0050+00 1/0 0/0 0/0 .text modeNGWait__16dalv4CandleTag_cFv */ void dalv4CandleTag_c::modeNGWait() { - // NONMATCHING + if (!fopAcM_isSwitch(this, mSwNG)) { + init_modeWatch(); + } } /* 80C5D8FC-80C5D908 00059C 000C+00 2/2 0/0 0/0 .text init_modeEnd__16dalv4CandleTag_cFv */ void dalv4CandleTag_c::init_modeEnd() { - // NONMATCHING + mMode = 3; } /* 80C5D908-80C5D90C 0005A8 0004+00 1/0 0/0 0/0 .text modeEnd__16dalv4CandleTag_cFv */ -void dalv4CandleTag_c::modeEnd() { - /* empty function */ -} +void dalv4CandleTag_c::modeEnd() {} /* 80C5D90C-80C5D930 0005AC 0024+00 2/1 0/0 0/0 .text eventStart__16dalv4CandleTag_cFv */ bool dalv4CandleTag_c::eventStart() { - // NONMATCHING + init_modeNG(); + return true; } /* 80C5D930-80C5D938 0005D0 0008+00 1/1 0/0 0/0 .text Draw__16dalv4CandleTag_cFv */ int dalv4CandleTag_c::Draw() { - return true; + return 1; } /* 80C5D938-80C5D940 0005D8 0008+00 1/1 0/0 0/0 .text Delete__16dalv4CandleTag_cFv */ int dalv4CandleTag_c::Delete() { - return true; + return 1; } /* 80C5D940-80C5D960 0005E0 0020+00 1/0 0/0 0/0 .text dalv4CandleTag_Draw__FP16dalv4CandleTag_c */ -static void dalv4CandleTag_Draw(dalv4CandleTag_c* param_0) { - // NONMATCHING +static int dalv4CandleTag_Draw(dalv4CandleTag_c* i_this) { + return i_this->Draw(); } /* 80C5D960-80C5D980 000600 0020+00 1/0 0/0 0/0 .text dalv4CandleTag_Execute__FP16dalv4CandleTag_c */ -static void dalv4CandleTag_Execute(dalv4CandleTag_c* param_0) { - // NONMATCHING +static int dalv4CandleTag_Execute(dalv4CandleTag_c* i_this) { + return i_this->Execute(); } /* 80C5D980-80C5D9A0 000620 0020+00 1/0 0/0 0/0 .text dalv4CandleTag_Delete__FP16dalv4CandleTag_c */ -static void dalv4CandleTag_Delete(dalv4CandleTag_c* param_0) { - // NONMATCHING +static int dalv4CandleTag_Delete(dalv4CandleTag_c* i_this) { + return i_this->Delete(); } /* 80C5D9A0-80C5D9C0 000640 0020+00 1/0 0/0 0/0 .text dalv4CandleTag_Create__FP10fopAc_ac_c */ -static void dalv4CandleTag_Create(fopAc_ac_c* param_0) { - // NONMATCHING +static int dalv4CandleTag_Create(fopAc_ac_c* i_this) { + return ((dalv4CandleTag_c*)i_this)->create(); } -/* 80C5D9C0-80C5DA1C 000660 005C+00 2/1 0/0 0/0 .text __dt__20dalv4CandleTag_HIO_cFv */ -// dalv4CandleTag_HIO_c::~dalv4CandleTag_HIO_c() { -extern "C" void __dt__20dalv4CandleTag_HIO_cFv() { - // NONMATCHING -} +/* 80C5DBE4-80C5DC04 -00001 0020+00 1/0 0/0 0/0 .data l_dalv4CandleTag_Method */ +static actor_method_class l_dalv4CandleTag_Method = { + (process_method_func)dalv4CandleTag_Create, + (process_method_func)dalv4CandleTag_Delete, + (process_method_func)dalv4CandleTag_Execute, + NULL, + (process_method_func)dalv4CandleTag_Draw, +}; -/* 80C5DA1C-80C5DA58 0006BC 003C+00 0/0 1/0 0/0 .text __sinit_d_a_obj_lv4CandleTag_cpp */ -void __sinit_d_a_obj_lv4CandleTag_cpp() { - // NONMATCHING -} - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x80C5DA1C, __sinit_d_a_obj_lv4CandleTag_cpp); -#pragma pop - -/* 80C5DA58-80C5DA60 0006F8 0008+00 1/0 0/0 0/0 .text @1392@eventStart__16dalv4CandleTag_cFv */ -static void func_80C5DA58() { - // NONMATCHING -} - -/* 80C5DA60-80C5DA68 000700 0008+00 1/0 0/0 0/0 .text @1392@__dt__16dalv4CandleTag_cFv */ -static void func_80C5DA60() { - // NONMATCHING -} - -/* 80C5DA68-80C5DAB0 000708 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 -} - -/* 80C5DAB0-80C5DAB8 000750 0008+00 2/0 0/0 0/0 .text eventRun__17dEvLib_callback_cFv */ -// int dEvLib_callback_c::eventRun() { -extern "C" bool eventRun__17dEvLib_callback_cFv() { - return true; -} - -/* 80C5DAB8-80C5DAC0 000758 0008+00 2/0 0/0 0/0 .text eventEnd__17dEvLib_callback_cFv */ -// int dEvLib_callback_c::eventEnd() { -extern "C" bool eventEnd__17dEvLib_callback_cFv() { - return true; -} - -/* 80C5DAC0-80C5DAC8 000760 0008+00 1/0 0/0 0/0 .text eventStart__17dEvLib_callback_cFv - */ -// int dEvLib_callback_c::eventStart() { -extern "C" bool eventStart__17dEvLib_callback_cFv() { - return true; -} - -/* 80C5DAC8-80C5DB48 000768 0080+00 2/1 0/0 0/0 .text __dt__16dalv4CandleTag_cFv */ -// dalv4CandleTag_c::~dalv4CandleTag_c() { -extern "C" void __dt__16dalv4CandleTag_cFv() { - // NONMATCHING -} +/* 80C5DC04-80C5DC34 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Tag_Lv4Candle */ +extern actor_process_profile_definition g_profile_Tag_Lv4Candle = { + fpcLy_CURRENT_e, // mLayerID + 7, // mListID + fpcPi_CURRENT_e, // mListPrio + PROC_Tag_Lv4Candle, // mProcName + &g_fpcLf_Method.base, // sub_method + sizeof(dalv4CandleTag_c), // mSize + 0, // mSizeOther + 0, // mParameters + &g_fopAc_Method.base, // sub_method + 540, // mPriority + &l_dalv4CandleTag_Method, // sub_method + 0x00044000, // mStatus + fopAc_ACTOR_e, // mActorType + fopAc_CULLBOX_CUSTOM_e, // cullType +}; diff --git a/src/d/actor/d_a_obj_lv4EdShutter.cpp b/src/d/actor/d_a_obj_lv4EdShutter.cpp index e2d1294b321..88acd5fbe75 100644 --- a/src/d/actor/d_a_obj_lv4EdShutter.cpp +++ b/src/d/actor/d_a_obj_lv4EdShutter.cpp @@ -6,154 +6,248 @@ #include "d/dolzel_rel.h" // IWYU pragma: keep #include "d/actor/d_a_obj_lv4EdShutter.h" -#include "dol2asm.h" +class daLv4EdShutter_HIO_c : public mDoHIO_entry_c { +public: + /* 80C5DDAC */ daLv4EdShutter_HIO_c(); + /* 80C5E72C */ virtual ~daLv4EdShutter_HIO_c() {} + void genMessage(JORMContext*); -// -// Forward References: -// - -extern "C" void __ct__20daLv4EdShutter_HIO_cFv(); -extern "C" void __dt__14mDoHIO_entry_cFv(); -extern "C" void setBaseMtx__16daLv4EdShutter_cFv(); -extern "C" void CreateHeap__16daLv4EdShutter_cFv(); -extern "C" void create__16daLv4EdShutter_cFv(); -extern "C" void Execute__16daLv4EdShutter_cFPPA3_A4_f(); -extern "C" void move__16daLv4EdShutter_cFv(); -extern "C" void init_modeWait__16daLv4EdShutter_cFv(); -extern "C" void modeWait__16daLv4EdShutter_cFv(); -extern "C" void init_modeOpen__16daLv4EdShutter_cFv(); -extern "C" void modeOpen__16daLv4EdShutter_cFv(); -extern "C" void init_modeClose__16daLv4EdShutter_cFv(); -extern "C" void modeClose__16daLv4EdShutter_cFv(); -extern "C" void init_modeEnd__16daLv4EdShutter_cFv(); -extern "C" void modeEnd__16daLv4EdShutter_cFv(); -extern "C" void eventStart__16daLv4EdShutter_cFv(); -extern "C" void Draw__16daLv4EdShutter_cFv(); -extern "C" void Delete__16daLv4EdShutter_cFv(); -extern "C" static void daLv4EdShutter_Draw__FP16daLv4EdShutter_c(); -extern "C" static void daLv4EdShutter_Execute__FP16daLv4EdShutter_c(); -extern "C" static void daLv4EdShutter_Delete__FP16daLv4EdShutter_c(); -extern "C" static void daLv4EdShutter_Create__FP10fopAc_ac_c(); -extern "C" void __dt__20daLv4EdShutter_HIO_cFv(); -extern "C" void __sinit_d_a_obj_lv4EdShutter_cpp(); -extern "C" static void func_80C5E7C4(); -extern "C" static void func_80C5E7CC(); -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__16daLv4EdShutter_cFv(); -extern "C" extern char const* const d_a_obj_lv4EdShutter__stringBase0; - -// -// External References: -// - -extern "C" void mDoMtx_ZXYrotM__FPA4_fsss(); -extern "C" void mDoExt_modelUpdateDL__FP8J3DModel(); -extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl(); -extern "C" void __dt__10fopAc_ac_cFv(); -extern "C" void fopAcM_setCullSizeBox2__FP10fopAc_ac_cP12J3DModelData(); -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 offSwitch__10dSv_info_cFii(); -extern "C" void isSwitch__10dSv_info_cCFii(); -extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci(); -extern "C" void orderEvent__17dEvLib_callback_cFiii(); -extern "C" void dBgS_MoveBGProc_TypicalRotY__FP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz(); -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 cLib_addCalc__FPfffff(); -extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); -extern "C" void __dl__FPv(); -extern "C" void __ptmf_scall(); -extern "C" extern void* __vt__16dBgS_MoveBgActor[10]; -extern "C" u8 now__14mDoMtx_stack_c[48]; -extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; -extern "C" void __register_global_object(); - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 80C5E8DC-80C5E8E0 000000 0004+00 3/3 0/0 0/0 .rodata @3634 */ -SECTION_RODATA static f32 const lit_3634 = 80.0f; -COMPILER_STRIP_GATE(0x80C5E8DC, &lit_3634); - -/* 80C5E8E0-80C5E8E4 000004 0004+00 1/1 0/0 0/0 .rodata @3635 */ -SECTION_RODATA static f32 const lit_3635 = 40.0f; -COMPILER_STRIP_GATE(0x80C5E8E0, &lit_3635); - -/* 80C5E924-80C5E930 -00001 000C+00 0/1 0/0 0/0 .data @3721 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3721[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)modeWait__16daLv4EdShutter_cFv, + /* 0x04 */ f32 close_max_speed; + /* 0x08 */ f32 open_speed_max; + /* 0x0C */ s16 field_0xc; + /* 0x0E */ u8 field_0xe; }; -#pragma pop -/* 80C5E930-80C5E93C -00001 000C+00 0/1 0/0 0/0 .data @3722 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3722[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)modeOpen__16daLv4EdShutter_cFv, -}; -#pragma pop +/* 80C5DDAC-80C5DDF0 0000EC 0044+00 1/1 0/0 0/0 .text __ct__20daLv4EdShutter_HIO_cFv */ +daLv4EdShutter_HIO_c::daLv4EdShutter_HIO_c() { + close_max_speed = 80.0f; + open_speed_max = 40.0f; + field_0xc = 60; + field_0xe = 4; +} -/* 80C5E93C-80C5E948 -00001 000C+00 0/1 0/0 0/0 .data @3723 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3723[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)modeClose__16daLv4EdShutter_cFv, -}; -#pragma pop +/* 80C5DE38-80C5DEC8 000178 0090+00 2/2 0/0 0/0 .text setBaseMtx__16daLv4EdShutter_cFv */ +void daLv4EdShutter_c::setBaseMtx() { + mDoMtx_stack_c::transS(current.pos.x, current.pos.y + mMovePos, current.pos.z); + mDoMtx_stack_c::ZXYrotM(shape_angle.x, shape_angle.y, 0); + mpModel->setBaseScale(scale); + mpModel->setBaseTRMtx(mDoMtx_stack_c::get()); +} -/* 80C5E948-80C5E954 -00001 000C+00 0/1 0/0 0/0 .data @3724 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3724[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)modeEnd__16daLv4EdShutter_cFv, -}; -#pragma pop +/* 80C5DEC8-80C5DF34 000208 006C+00 1/0 0/0 0/0 .text CreateHeap__16daLv4EdShutter_cFv */ +int daLv4EdShutter_c::CreateHeap() { + J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes("P_AShtr", 4); + JUT_ASSERT(165, modelData != NULL); + mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084); + if (mpModel == NULL) { + return 0; + } -/* 80C5E954-80C5E984 000050 0030+00 0/1 0/0 0/0 .data mode_proc$3720 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 mode_proc[48] = { - 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -#pragma pop + return 1; +} + +/* 80C5DF34-80C5E0A4 000274 0170+00 1/1 0/0 0/0 .text create__16daLv4EdShutter_cFv */ +int daLv4EdShutter_c::create() { + fopAcM_ct(this, daLv4EdShutter_c); + + int phase_state = dComIfG_resLoad(&mPhase, "P_AShtr"); + if (phase_state == cPhs_COMPLEATE_e) { + if (MoveBGCreate("P_AShtr", 7, dBgS_MoveBGProc_TypicalRotY, 0x1900, NULL) == cPhs_ERROR_e) { + return cPhs_ERROR_e; + } + + fopAcM_SetMtx(this, mpModel->getBaseTRMtx()); + fopAcM_setCullSizeBox2(this, mpModel->getModelData()); + + mOpenSw = getOpenSw(); + mCloseSw = getCloseSw(); + mMovePos = -300.0f; + mStatus = 0; + shape_angle.y += 0x4000; + setBaseMtx(); + mZenmetuSw = getZenmetuSw(); + + if (mZenmetuSw != 0xFF && fopAcM_isSwitch(this, mZenmetuSw)) { + init_modeEnd(); + } else { + init_modeWait(); + } + } + + return phase_state; +} + +/* 80C5E0A4-80C5E0F4 0003E4 0050+00 1/0 0/0 0/0 .text Execute__16daLv4EdShutter_cFPPA3_A4_f */ +int daLv4EdShutter_c::Execute(Mtx** param_0) { + move(); + *param_0 = &mpModel->getBaseTRMtx(); + setBaseMtx(); + return 1; +} + +/* 80C5EA64-80C5EA74 000014 0010+00 3/3 0/0 0/0 .bss l_HIO */ +static daLv4EdShutter_HIO_c l_HIO; + +/* 80C5E0F4-80C5E1B0 000434 00BC+00 1/1 0/0 0/0 .text move__16daLv4EdShutter_cFv */ +void daLv4EdShutter_c::move() { + static void (daLv4EdShutter_c::*mode_proc[])() = { + &daLv4EdShutter_c::modeWait, + &daLv4EdShutter_c::modeOpen, + &daLv4EdShutter_c::modeClose, + &daLv4EdShutter_c::modeEnd, + }; + + (this->*mode_proc[mMode])(); +} + +/* 80C5E1B0-80C5E1C8 0004F0 0018+00 3/3 0/0 0/0 .text init_modeWait__16daLv4EdShutter_cFv + */ +void daLv4EdShutter_c::init_modeWait() { + mWaitTimer = getWaitTime(); + mMode = 0; +} + +/* 80C5E1C8-80C5E2E0 000508 0118+00 1/0 0/0 0/0 .text modeWait__16daLv4EdShutter_cFv */ +void daLv4EdShutter_c::modeWait() { + if (mStatus == 0) { + if (fopAcM_isSwitch(this, mCloseSw)) { + if (mWaitTimer == 0) { + if (getEventID() != 0xFF) { + orderEvent(getEventID(), 0xFF, 1); + } else { + eventStart(); + } + } else { + mWaitTimer--; + } + } + } else if (fopAcM_isSwitch(this, mOpenSw)) { + if (mWaitTimer == 0) { + if (getEventID() != 0xFF) { + orderEvent(getEventID(), 0xFF, 1); + } else { + eventStart(); + } + } else { + mWaitTimer--; + } + } +} + +/* 80C5E2E0-80C5E394 000620 00B4+00 1/1 0/0 0/0 .text init_modeOpen__16daLv4EdShutter_cFv + */ +void daLv4EdShutter_c::init_modeOpen() { + mMoveSpeed = l_HIO.open_speed_max; + + cXyz se_pos(current.pos); + se_pos.y = home.pos.y; + mDoAud_seStart(Z2SE_OBJ_STL_FENCE_DW, &se_pos, 0, dComIfGp_getReverb(fopAcM_GetRoomNo(this))); + mMode = 1; +} + +/* 80C5E394-80C5E464 0006D4 00D0+00 1/0 0/0 0/0 .text modeOpen__16daLv4EdShutter_cFv */ +void daLv4EdShutter_c::modeOpen() { + f32 remaining = cLib_addCalc(&mMovePos, -300.0f, 0.3f, mMoveSpeed, 5.0f); + if (remaining == 0.0f) { + mStatus = 0; + fopAcM_offSwitch(this, mOpenSw); + fopAcM_offSwitch(this, mCloseSw); + + if (mZenmetuSw != 0xFF && fopAcM_isSwitch(this, mZenmetuSw)) { + init_modeEnd(); + } else { + init_modeWait(); + } + } +} + +/* 80C5E464-80C5E518 0007A4 00B4+00 1/1 0/0 0/0 .text init_modeClose__16daLv4EdShutter_cFv */ +void daLv4EdShutter_c::init_modeClose() { + mMoveSpeed = l_HIO.close_max_speed; + + cXyz se_pos(current.pos); + se_pos.y = home.pos.y; + mDoAud_seStart(Z2SE_OBJ_STL_FENCE_UP, &se_pos, 0, dComIfGp_getReverb(fopAcM_GetRoomNo(this))); + mMode = 2; +} + +/* 80C5E518-80C5E584 000858 006C+00 1/0 0/0 0/0 .text modeClose__16daLv4EdShutter_cFv */ +void daLv4EdShutter_c::modeClose() { + f32 remaining = cLib_addCalc(&mMovePos, 0.0f, 0.3f, mMoveSpeed, 5.0f); + if (remaining == 0.0f) { + mStatus = 1; + init_modeWait(); + } +} + +/* 80C5E584-80C5E590 0008C4 000C+00 2/2 0/0 0/0 .text init_modeEnd__16daLv4EdShutter_cFv + */ +void daLv4EdShutter_c::init_modeEnd() { + mMode = 3; +} + +/* 80C5E590-80C5E594 0008D0 0004+00 1/0 0/0 0/0 .text modeEnd__16daLv4EdShutter_cFv */ +void daLv4EdShutter_c::modeEnd() {} + +/* 80C5E594-80C5E5CC 0008D4 0038+00 2/1 0/0 0/0 .text eventStart__16daLv4EdShutter_cFv */ +bool daLv4EdShutter_c::eventStart() { + if (mStatus == 0) { + init_modeClose(); + } else { + init_modeOpen(); + } + + return true; +} + +/* 80C5E5CC-80C5E670 00090C 00A4+00 1/0 0/0 0/0 .text Draw__16daLv4EdShutter_cFv */ +int daLv4EdShutter_c::Draw() { + g_env_light.settingTevStruct(16, ¤t.pos, &tevStr); + g_env_light.setLightTevColorType_MAJI(mpModel, &tevStr); + + dComIfGd_setListBG(); + mDoExt_modelUpdateDL(mpModel); + dComIfGd_setList(); + return 1; +} + +/* 80C5E670-80C5E6A0 0009B0 0030+00 1/0 0/0 0/0 .text Delete__16daLv4EdShutter_cFv */ +int daLv4EdShutter_c::Delete() { + dComIfG_resDelete(&mPhase, "P_AShtr"); + return 1; +} + +/* 80C5E6A0-80C5E6CC 0009E0 002C+00 1/0 0/0 0/0 .text daLv4EdShutter_Draw__FP16daLv4EdShutter_c */ +static int daLv4EdShutter_Draw(daLv4EdShutter_c* i_this) { + return i_this->MoveBGDraw(); +} + +/* 80C5E6CC-80C5E6EC 000A0C 0020+00 1/0 0/0 0/0 .text daLv4EdShutter_Execute__FP16daLv4EdShutter_c + */ +static int daLv4EdShutter_Execute(daLv4EdShutter_c* i_this) { + return i_this->MoveBGExecute(); +} + +/* 80C5E6EC-80C5E70C 000A2C 0020+00 1/0 0/0 0/0 .text daLv4EdShutter_Delete__FP16daLv4EdShutter_c + */ +static int daLv4EdShutter_Delete(daLv4EdShutter_c* i_this) { + return i_this->MoveBGDelete(); +} + +/* 80C5E70C-80C5E72C 000A4C 0020+00 1/0 0/0 0/0 .text daLv4EdShutter_Create__FP10fopAc_ac_c */ +static int daLv4EdShutter_Create(fopAc_ac_c* i_this) { + return ((daLv4EdShutter_c*)i_this)->create(); +} /* 80C5E984-80C5E9A4 -00001 0020+00 1/0 0/0 0/0 .data l_daLv4EdShutter_Method */ static actor_method_class l_daLv4EdShutter_Method = { - (process_method_func)daLv4EdShutter_Create__FP10fopAc_ac_c, - (process_method_func)daLv4EdShutter_Delete__FP16daLv4EdShutter_c, - (process_method_func)daLv4EdShutter_Execute__FP16daLv4EdShutter_c, - 0, - (process_method_func)daLv4EdShutter_Draw__FP16daLv4EdShutter_c, + (process_method_func)daLv4EdShutter_Create, + (process_method_func)daLv4EdShutter_Delete, + (process_method_func)daLv4EdShutter_Execute, + NULL, + (process_method_func)daLv4EdShutter_Draw, }; /* 80C5E9A4-80C5E9D4 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Lv4EdShutter */ @@ -173,280 +267,3 @@ extern actor_process_profile_definition g_profile_Obj_Lv4EdShutter = { fopAc_ACTOR_e, // mActorType fopAc_CULLBOX_CUSTOM_e, // cullType }; - -/* 80C5E9D4-80C5E9EC 0000D0 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, -}; - -/* 80C5E9EC-80C5EA34 0000E8 0048+00 2/2 0/0 0/0 .data __vt__16daLv4EdShutter_c */ -SECTION_DATA extern void* __vt__16daLv4EdShutter_c[18] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)CreateHeap__16daLv4EdShutter_cFv, - (void*)Create__16dBgS_MoveBgActorFv, - (void*)Execute__16daLv4EdShutter_cFPPA3_A4_f, - (void*)Draw__16daLv4EdShutter_cFv, - (void*)Delete__16daLv4EdShutter_cFv, - (void*)IsDelete__16dBgS_MoveBgActorFv, - (void*)ToFore__16dBgS_MoveBgActorFv, - (void*)ToBack__16dBgS_MoveBgActorFv, - (void*)NULL, - (void*)NULL, - (void*)func_80C5E7CC, - (void*)func_80C5E7C4, - (void*)eventRun__17dEvLib_callback_cFv, - (void*)eventEnd__17dEvLib_callback_cFv, - (void*)__dt__16daLv4EdShutter_cFv, - (void*)eventStart__16daLv4EdShutter_cFv, -}; - -/* 80C5EA34-80C5EA40 000130 000C+00 2/2 0/0 0/0 .data __vt__20daLv4EdShutter_HIO_c */ -SECTION_DATA extern void* __vt__20daLv4EdShutter_HIO_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__20daLv4EdShutter_HIO_cFv, -}; - -/* 80C5EA40-80C5EA4C 00013C 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, -}; - -/* 80C5DDAC-80C5DDF0 0000EC 0044+00 1/1 0/0 0/0 .text __ct__20daLv4EdShutter_HIO_cFv */ -daLv4EdShutter_HIO_c::daLv4EdShutter_HIO_c() { - // NONMATCHING -} - -/* 80C5DDF0-80C5DE38 000130 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 -} - -/* 80C5DE38-80C5DEC8 000178 0090+00 2/2 0/0 0/0 .text setBaseMtx__16daLv4EdShutter_cFv */ -void daLv4EdShutter_c::setBaseMtx() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80C5E8FC-80C5E8FC 000020 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80C5E8FC = "P_AShtr"; -#pragma pop - -/* 80C5DEC8-80C5DF34 000208 006C+00 1/0 0/0 0/0 .text CreateHeap__16daLv4EdShutter_cFv */ -void daLv4EdShutter_c::CreateHeap() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80C5E8E4-80C5E8E8 000008 0004+00 1/2 0/0 0/0 .rodata @3704 */ -SECTION_RODATA static f32 const lit_3704 = -300.0f; -COMPILER_STRIP_GATE(0x80C5E8E4, &lit_3704); - -/* 80C5DF34-80C5E0A4 000274 0170+00 1/1 0/0 0/0 .text create__16daLv4EdShutter_cFv */ -void daLv4EdShutter_c::create() { - // NONMATCHING -} - -/* 80C5E0A4-80C5E0F4 0003E4 0050+00 1/0 0/0 0/0 .text Execute__16daLv4EdShutter_cFPPA3_A4_f */ -void daLv4EdShutter_c::Execute(Mtx** param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80C5EA58-80C5EA64 000008 000C+00 1/1 0/0 0/0 .bss @3628 */ -static u8 lit_3628[12]; - -/* 80C5EA64-80C5EA74 000014 0010+00 3/3 0/0 0/0 .bss l_HIO */ -static u8 l_HIO[16]; - -/* 80C5EA74-80C5EA78 000024 0004+00 1/1 0/0 0/0 .bss None */ -static u8 data_80C5EA74[4]; - -/* 80C5E0F4-80C5E1B0 000434 00BC+00 1/1 0/0 0/0 .text move__16daLv4EdShutter_cFv */ -void daLv4EdShutter_c::move() { - // NONMATCHING -} - -/* 80C5E1B0-80C5E1C8 0004F0 0018+00 3/3 0/0 0/0 .text init_modeWait__16daLv4EdShutter_cFv - */ -void daLv4EdShutter_c::init_modeWait() { - // NONMATCHING -} - -/* 80C5E1C8-80C5E2E0 000508 0118+00 1/0 0/0 0/0 .text modeWait__16daLv4EdShutter_cFv */ -void daLv4EdShutter_c::modeWait() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80C5E8E8-80C5E8EC 00000C 0004+00 2/2 0/0 0/0 .rodata @3787 */ -SECTION_RODATA static f32 const lit_3787 = 1.0f; -COMPILER_STRIP_GATE(0x80C5E8E8, &lit_3787); - -/* 80C5E8EC-80C5E8F0 000010 0004+00 2/2 0/0 0/0 .rodata @3788 */ -SECTION_RODATA static f32 const lit_3788 = -1.0f; -COMPILER_STRIP_GATE(0x80C5E8EC, &lit_3788); - -/* 80C5E2E0-80C5E394 000620 00B4+00 1/1 0/0 0/0 .text init_modeOpen__16daLv4EdShutter_cFv - */ -void daLv4EdShutter_c::init_modeOpen() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80C5E8F0-80C5E8F4 000014 0004+00 0/2 0/0 0/0 .rodata @3816 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3816 = 3.0f / 10.0f; -COMPILER_STRIP_GATE(0x80C5E8F0, &lit_3816); -#pragma pop - -/* 80C5E8F4-80C5E8F8 000018 0004+00 0/2 0/0 0/0 .rodata @3817 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3817 = 5.0f; -COMPILER_STRIP_GATE(0x80C5E8F4, &lit_3817); -#pragma pop - -/* 80C5E8F8-80C5E8FC 00001C 0004+00 0/2 0/0 0/0 .rodata @3818 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3818[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80C5E8F8, &lit_3818); -#pragma pop - -/* 80C5E394-80C5E464 0006D4 00D0+00 1/0 0/0 0/0 .text modeOpen__16daLv4EdShutter_cFv */ -void daLv4EdShutter_c::modeOpen() { - // NONMATCHING -} - -/* 80C5E464-80C5E518 0007A4 00B4+00 1/1 0/0 0/0 .text init_modeClose__16daLv4EdShutter_cFv */ -void daLv4EdShutter_c::init_modeClose() { - // NONMATCHING -} - -/* 80C5E518-80C5E584 000858 006C+00 1/0 0/0 0/0 .text modeClose__16daLv4EdShutter_cFv */ -void daLv4EdShutter_c::modeClose() { - // NONMATCHING -} - -/* 80C5E584-80C5E590 0008C4 000C+00 2/2 0/0 0/0 .text init_modeEnd__16daLv4EdShutter_cFv - */ -void daLv4EdShutter_c::init_modeEnd() { - // NONMATCHING -} - -/* 80C5E590-80C5E594 0008D0 0004+00 1/0 0/0 0/0 .text modeEnd__16daLv4EdShutter_cFv */ -void daLv4EdShutter_c::modeEnd() { - /* empty function */ -} - -/* 80C5E594-80C5E5CC 0008D4 0038+00 2/1 0/0 0/0 .text eventStart__16daLv4EdShutter_cFv */ -void daLv4EdShutter_c::eventStart() { - // NONMATCHING -} - -/* 80C5E5CC-80C5E670 00090C 00A4+00 1/0 0/0 0/0 .text Draw__16daLv4EdShutter_cFv */ -void daLv4EdShutter_c::Draw() { - // NONMATCHING -} - -/* 80C5E670-80C5E6A0 0009B0 0030+00 1/0 0/0 0/0 .text Delete__16daLv4EdShutter_cFv */ -void daLv4EdShutter_c::Delete() { - // NONMATCHING -} - -/* 80C5E6A0-80C5E6CC 0009E0 002C+00 1/0 0/0 0/0 .text daLv4EdShutter_Draw__FP16daLv4EdShutter_c */ -static void daLv4EdShutter_Draw(daLv4EdShutter_c* param_0) { - // NONMATCHING -} - -/* 80C5E6CC-80C5E6EC 000A0C 0020+00 1/0 0/0 0/0 .text daLv4EdShutter_Execute__FP16daLv4EdShutter_c - */ -static void daLv4EdShutter_Execute(daLv4EdShutter_c* param_0) { - // NONMATCHING -} - -/* 80C5E6EC-80C5E70C 000A2C 0020+00 1/0 0/0 0/0 .text daLv4EdShutter_Delete__FP16daLv4EdShutter_c - */ -static void daLv4EdShutter_Delete(daLv4EdShutter_c* param_0) { - // NONMATCHING -} - -/* 80C5E70C-80C5E72C 000A4C 0020+00 1/0 0/0 0/0 .text daLv4EdShutter_Create__FP10fopAc_ac_c */ -static void daLv4EdShutter_Create(fopAc_ac_c* param_0) { - // NONMATCHING -} - -/* 80C5E72C-80C5E788 000A6C 005C+00 2/1 0/0 0/0 .text __dt__20daLv4EdShutter_HIO_cFv */ -daLv4EdShutter_HIO_c::~daLv4EdShutter_HIO_c() { - // NONMATCHING -} - -/* 80C5E788-80C5E7C4 000AC8 003C+00 0/0 1/0 0/0 .text __sinit_d_a_obj_lv4EdShutter_cpp */ -void __sinit_d_a_obj_lv4EdShutter_cpp() { - // NONMATCHING -} - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x80C5E788, __sinit_d_a_obj_lv4EdShutter_cpp); -#pragma pop - -/* 80C5E7C4-80C5E7CC 000B04 0008+00 1/0 0/0 0/0 .text @1448@eventStart__16daLv4EdShutter_cFv */ -static void func_80C5E7C4() { - // NONMATCHING -} - -/* 80C5E7CC-80C5E7D4 000B0C 0008+00 1/0 0/0 0/0 .text @1448@__dt__16daLv4EdShutter_cFv */ -static void func_80C5E7CC() { - // NONMATCHING -} - -/* 80C5E7D4-80C5E81C 000B14 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 -} - -/* 80C5E81C-80C5E824 000B5C 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; -} - -/* 80C5E824-80C5E82C 000B64 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; -} - -/* 80C5E82C-80C5E834 000B6C 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; -} - -/* 80C5E834-80C5E8C8 000B74 0094+00 2/1 0/0 0/0 .text __dt__16daLv4EdShutter_cFv */ -daLv4EdShutter_c::~daLv4EdShutter_c() { - // NONMATCHING -} - -/* 80C5E8FC-80C5E8FC 000020 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/src/d/actor/d_a_obj_picture.cpp b/src/d/actor/d_a_obj_picture.cpp index 33a7a4fda97..97e8c2575db 100644 --- a/src/d/actor/d_a_obj_picture.cpp +++ b/src/d/actor/d_a_obj_picture.cpp @@ -6,188 +6,584 @@ #include "d/dolzel_rel.h" // IWYU pragma: keep #include "d/actor/d_a_obj_picture.h" -#include "dol2asm.h" - - -// -// Forward References: -// - -extern "C" static void daObjPicture_c_createHeap__FP10fopAc_ac_c(); -extern "C" void __ct__14daObjPicture_cFv(); -extern "C" void __dt__8cM3dGCylFv(); -extern "C" void __dt__8cM3dGAabFv(); -extern "C" void __dt__8dCcD_CpsFv(); -extern "C" void __ct__8dCcD_CpsFv(); -extern "C" void __dt__10dCcD_GSttsFv(); -extern "C" void __dt__14daObjPicture_cFv(); -extern "C" void createHeap__14daObjPicture_cFv(); -extern "C" void create__14daObjPicture_cFv(); -extern "C" void Delete__14daObjPicture_cFv(); -extern "C" void draw__14daObjPicture_cFv(); -extern "C" void execute__14daObjPicture_cFv(); -extern "C" void init__14daObjPicture_cFv(); -extern "C" void setPicModelMtx__14daObjPicture_cFv(); -extern "C" void setTmgModelMtx__14daObjPicture_cFv(); -extern "C" void getLinePosPic__14daObjPicture_cFiP4cXyz(); -extern "C" void getPosTmg__14daObjPicture_cFP4cXyz(); -extern "C" void setLinePos__14daObjPicture_cFv(); -extern "C" void moveLineFall1__14daObjPicture_cFv(); -extern "C" void moveLineFall2__14daObjPicture_cFv(); -extern "C" void chkHitRope__14daObjPicture_cFv(); -extern "C" void chkHitBombTg__14daObjPicture_cFv(); -extern "C" void setPicAtCol__14daObjPicture_cFv(); -extern "C" static void daObjPicture_create__FP14daObjPicture_c(); -extern "C" static void daObjPicture_Delete__FP14daObjPicture_c(); -extern "C" static void daObjPicture_execute__FP14daObjPicture_c(); -extern "C" static void daObjPicture_draw__FP14daObjPicture_c(); -extern "C" void __dt__10cCcD_GSttsFv(); -extern "C" extern char const* const d_a_obj_picture__stringBase0; -extern "C" u8 s_CcDCps__14daObjPicture_c[76]; -extern "C" u8 s_CcDCyl_pic_at__14daObjPicture_c[68]; - -// -// External References: -// - -extern "C" void mDoMtx_ZXYrotM__FPA4_fsss(); -extern "C" void transS__14mDoMtx_stack_cFRC4cXyz(); -extern "C" void scaleM__14mDoMtx_stack_cFfff(); -extern "C" void ZXYrotM__14mDoMtx_stack_cFRC5csXyz(); -extern "C" void mDoExt_modelUpdate__FP8J3DModel(); -extern "C" void mDoExt_modelUpdateDL__FP8J3DModel(); -extern "C" void init__19mDoExt_3DlineMat1_cFUsUsP7ResTIMGi(); -extern "C" void update__19mDoExt_3DlineMat1_cFifR8_GXColorUsP12dKy_tevstr_c(); -extern "C" void setMat__26mDoExt_3DlineMatSortPacketFP18mDoExt_3DlineMat_c(); -extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl(); -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void __dt__10fopAc_ac_cFv(); -extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl(); -extern "C" void fopAcM_setCullSizeBox__FP10fopAc_ac_cffffff(); -extern "C" void gndCheck__11fopAcM_gc_cFPC4cXyz(); -extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc(); -extern "C" void onSwitch__10dSv_info_cFii(); -extern "C" void isSwitch__10dSv_info_cCFii(); -extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci(); -extern "C" void Release__4cBgSFP9dBgW_Base(); -extern "C" void Regist__4dBgSFP9dBgW_BaseP10fopAc_ac_c(); -extern "C" void dBgS_MoveBGProc_TypicalRotY__FP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz(); -extern "C" void Set__4cBgWFP6cBgD_tUlPA3_A4_f(); -extern "C" void __ct__4dBgWFv(); -extern "C" void Move__4dBgWFv(); -extern "C" void __ct__10dCcD_GSttsFv(); -extern "C" void Init__9dCcD_SttsFiiP10fopAc_ac_c(); -extern "C" void __ct__12dCcD_GObjInfFv(); -extern "C" void __dt__12dCcD_GObjInfFv(); -extern "C" void ChkTgHit__12dCcD_GObjInfFv(); -extern "C" void GetTgHitObj__12dCcD_GObjInfFv(); -extern "C" void Set__8dCcD_CpsFRC11dCcD_SrcCps(); -extern "C" void CalcTgVec__8dCcD_CpsFv(); -extern "C" void Set__8dCcD_CylFRC11dCcD_SrcCyl(); -extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c(); -extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c(); -extern "C" void Set__4cCcSFP8cCcD_Obj(); -extern "C" void __pl__4cXyzCFRC3Vec(); -extern "C" void __mi__4cXyzCFRC3Vec(); -extern "C" void __ml__4cXyzCFf(); -extern "C" void normalizeZP__4cXyzFv(); -extern "C" void ChkUsed__9cBgW_BgIdCFv(); -extern "C" void __ct__8cM3dGCpsFv(); -extern "C" void __dt__8cM3dGCpsFv(); -extern "C" void Set__8cM3dGCpsFRC4cXyzRC4cXyzf(); -extern "C" void SetC__8cM3dGCylFRC4cXyz(); -extern "C" void SetH__8cM3dGCylFf(); -extern "C" void SetR__8cM3dGCylFf(); -extern "C" void cLib_addCalc0__FPfff(); -extern "C" void cLib_addCalcPosXZ2__FP4cXyzRC4cXyzff(); -extern "C" void cLib_chaseF__FPfff(); -extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); -extern "C" void* __nw__FUl(); -extern "C" void __dl__FPv(); -extern "C" void __destroy_arr(); -extern "C" void __construct_array(); -extern "C" void _savegpr_19(); -extern "C" void _savegpr_22(); -extern "C" void _savegpr_23(); -extern "C" void _savegpr_25(); -extern "C" void _savegpr_27(); -extern "C" void _savegpr_28(); -extern "C" void _restgpr_19(); -extern "C" void _restgpr_22(); -extern "C" void _restgpr_23(); -extern "C" void _restgpr_25(); -extern "C" void _restgpr_27(); -extern "C" void _restgpr_28(); -extern "C" extern void* __vt__19mDoExt_3DlineMat1_c[5]; -extern "C" extern void* __vt__8dCcD_Cyl[36]; -extern "C" extern void* __vt__8dCcD_Cps[36]; -extern "C" extern void* __vt__9dCcD_Stts[11]; -extern "C" extern void* __vt__12cCcD_CylAttr[25]; -extern "C" extern void* __vt__12cCcD_CpsAttr[25]; -extern "C" extern void* __vt__14cCcD_ShapeAttr[22]; -extern "C" extern void* __vt__9cCcD_Stts[8]; -extern "C" u8 now__14mDoMtx_stack_c[48]; -extern "C" u8 sincosTable___5JMath[65536]; -extern "C" f32 mGroundY__11fopAcM_gc_c; -extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; - -// -// Declarations: -// /* 80CAD2F8-80CAD318 000078 0020+00 1/1 0/0 0/0 .text daObjPicture_c_createHeap__FP10fopAc_ac_c */ -static void daObjPicture_c_createHeap(fopAc_ac_c* param_0) { - // NONMATCHING +static int daObjPicture_c_createHeap(fopAc_ac_c* i_this) { + return ((daObjPicture_c*)i_this)->createHeap(); } -/* ############################################################################################## */ -/* 80CAF0DC-80CAF0DC 0000C0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80CAF0DC = "L9Picture"; -#pragma pop - /* 80CAF0E8-80CAF0EC -00001 0004+00 3/3 0/0 0/0 .data l_arcName */ -SECTION_DATA static void* l_arcName = (void*)&d_a_obj_picture__stringBase0; +static char* l_arcName = "L9Picture"; /* 80CAF0EC-80CAF104 000004 0018+00 1/1 0/0 0/0 .data l_LINE_OFFSET_POS */ -SECTION_DATA static u8 l_LINE_OFFSET_POS[24] = { - 0xC2, 0xC8, 0x00, 0x00, 0x43, 0x48, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, - 0x42, 0xC8, 0x00, 0x00, 0x43, 0x48, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, +static Vec l_LINE_OFFSET_POS[] = { + {-100.0f, 200.0f, -2.0f}, + {100.0f, 200.0f, -2.0f}, }; /* 80CAF104-80CAF110 00001C 000C+00 1/1 0/0 0/0 .data l_PIC_AT_OFFSET_POS */ -SECTION_DATA static u8 l_PIC_AT_OFFSET_POS[12] = { - 0x00, 0x00, 0x00, 0x00, 0x42, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +static Vec l_PIC_AT_OFFSET_POS = { + 0.0f, 100.0f, 0.0f }; /* 80CAF110-80CAF15C 000028 004C+00 1/1 0/0 0/0 .data s_CcDCps__14daObjPicture_c */ -SECTION_DATA u8 daObjPicture_c::s_CcDCps[76] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x20, 0xA0, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x41, 0x60, 0x00, 0x00, +dCcD_SrcCps daObjPicture_c::s_CcDCps = { + { + {0x0, {{0x0, 0x0, 0x0}, {0x20A0, 0x11}, 0x0}}, // mObj + {dCcD_SE_SWORD, 0x0, 0x0, 0x0, 0x0}, // mGObjAt + {dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x4}, // mGObjTg + {0x0}, // mGObjCo + }, // mObjInf + { + {{0.0f, 0.0f, 0.0f}, {0.0f, 0.0f, 0.0f}, 14.0f}, // mCps + } // mCpsAttr }; /* 80CAF15C-80CAF1A0 000074 0044+00 1/1 0/0 0/0 .data s_CcDCyl_pic_at__14daObjPicture_c */ -SECTION_DATA u8 daObjPicture_c::s_CcDCyl_pic_at[68] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x79, - 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, 0x00, 0x00, 0x00, 0x00, 0x00, +dCcD_SrcCyl daObjPicture_c::s_CcDCyl_pic_at = { + { + {0x0, {{0x400, 0x1, 0x11}, {0x0, 0x11}, 0x79}}, // mObj + {dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x0}, // mGObjAt + {dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x0}, // mGObjTg + {0x0}, // mGObjCo + }, // mObjInf + { + {0.0f, 0.0f, 0.0f}, // mCenter + 0.0f, // mRadius + 0.0f // mHeight + } // mCyl }; +/* 80CAD318-80CAD498 000098 0180+00 2/2 0/0 0/0 .text __ct__14daObjPicture_cFv */ +daObjPicture_c::daObjPicture_c() { + memset(mpBgw, 0, 8); + mpRopestModel = NULL; + mpPicModel = NULL; + memset(mpRopeMat, 0, 8); +} + +/* 80CAD6C8-80CAD908 000448 0240+00 1/0 0/0 0/0 .text __dt__14daObjPicture_cFv */ +daObjPicture_c::~daObjPicture_c() { + dComIfG_resDelete(this, l_arcName); +} + +/* 80CAF01C-80CAF024 000000 0008+00 6/6 0/0 0/0 .rodata l_dzbIdx */ +static const int l_dzbIdx[] = { + 11, 10, +}; + +/* 80CAF024-80CAF02C 000008 0008+00 0/1 0/0 0/0 .rodata l_PictureBmdIdx */ +static const int l_PictureBmdIdx[] = { + 6, 7, +}; + +/* 80CAD908-80CADC18 000688 0310+00 1/1 0/0 0/0 .text createHeap__14daObjPicture_cFv */ +int daObjPicture_c::createHeap() { + int bmd_idx = getArg_0() & 1; + + J3DModelData* a_model_data_p = (J3DModelData*)dComIfG_getObjectRes(l_arcName, 5); + JUT_ASSERT(116, a_model_data_p != NULL); + + mpRopestModel = mDoExt_J3DModel__create(a_model_data_p, 0x80000, 0x11000084); + if (mpRopestModel == NULL) { + return 0; + } + + cXyz pos(current.pos); + f32 size = 1.0f; + + for (int i = 0; i < 2; i++) { + if (i == 1 && field_0xd26 != 0) { + break; + } + + mpBgw[i] = new dBgW(); + if (mpBgw[i] == NULL) { + return 0; + } + + if (i == 0) { + pos.set(home.pos.x, home.pos.y + 325.0f, home.pos.z); + size = 0.5f; + } + + mDoMtx_stack_c::transS(pos.x, pos.y, pos.z); + mDoMtx_stack_c::ZXYrotM(home.angle.x, home.angle.y, home.angle.z); + mDoMtx_stack_c::scaleM(size, size, size); + MTXCopy(mDoMtx_stack_c::get(), mBgMtx[i]); + + if (mpBgw[i]->Set((cBgD_t*)dComIfG_getObjectRes(l_arcName, l_dzbIdx[i]), 1, &mBgMtx[i]) == 1) { + return 0; + } + + if (i == 1) { + mpBgw[i]->SetCrrFunc(dBgS_MoveBGProc_TypicalRotY); + } + } + + if (field_0xd26 != 0) { + return 1; + } + + a_model_data_p = (J3DModelData*)dComIfG_getObjectRes(l_arcName, l_PictureBmdIdx[bmd_idx]); + JUT_ASSERT(179, a_model_data_p != NULL); + + mpPicModel = mDoExt_J3DModel__create(a_model_data_p, 0x80000, 0x11000084); + if (mpPicModel == NULL) { + return 0; + } + + for (int i = 0; i < 2; i++) { + mpRopeMat[i] = new mDoExt_3DlineMat1_c(); + if (mpRopeMat[i] == NULL) { + OS_REPORT_ERROR("止め具ロープ:3Dラインマテリアルクラス生成失敗\n"); + return 0; + } + + if (!mpRopeMat[i]->init(1, 10, (ResTIMG*)dComIfG_getObjectRes(l_arcName, 14), 1)) { + OS_REPORT_ERROR("止め具ロープ:3Dラインマテリアルクラス初期化失敗\n"); + return 0; + } + } + + return 1; +} + +/* 80CADC18-80CADFB0 000998 0398+00 1/1 0/0 0/0 .text create__14daObjPicture_cFv */ +// NONMATCHING +int daObjPicture_c::create() { + fopAcM_ct(this, daObjPicture_c); + + int phase_state = dComIfG_resLoad(this, l_arcName); + if (phase_state == cPhs_COMPLEATE_e) { + field_0xd26 = 0; + if (fopAcM_isSwitch(this, getSW_0())) { + field_0xd26 = 1; + } + + if (!fopAcM_entrySolidHeap(this, daObjPicture_c_createHeap, 0x4000)) { + return cPhs_ERROR_e; + } + + for (int i = 0; i < 2; i++) { + if (i == 1 && field_0xd26 != 0) { + break; + } + + if (dComIfG_Bgsp().Regist(mpBgw[i], this)) { + return cPhs_ERROR_e; + } + } + + init(); + setPicModelMtx(); + setTmgModelMtx(); + + J3DModel* model = field_0xd26 != 0 ? mpRopestModel : mpPicModel; + fopAcM_SetMtx(this, model->getBaseTRMtx()); + fopAcM_setCullSizeBox(this, -100.0f, -500.0f, -500.0f, 100.0f, 1500.0f, 500.0f); + + if (field_0xd26 == 0) { + field_0x574.Init(0xFF, 0xFF, this); + + cXyz pos; + cXyz picpos; + getPosTmg(&pos); + + for (int i = 0; i < 2; i++) { + mCps[i].Set(s_CcDCps); + mCps[i].SetStts(&field_0x574); + getLinePosPic(i, &picpos); + + mCps[i].cCcD_CpsAttr::Set(pos, picpos, 14.0f); + mCps[i].CalcTgVec(); + mCps[i].OnTgNoSlingHitInfSet(); + } + + field_0x5b0.Init(0xFF, 0xFF, this); + mAtCyl.Set(s_CcDCyl_pic_at); + mAtCyl.SetStts(&field_0x5b0); + mAtCyl.SetC(current.pos); + mAtCyl.SetH(10.0f); + mAtCyl.SetR(110.0f); + + field_0x5ec.Init(0xFF, 0xFF, this); + getPosTmg(&pos); + + Vec sp1C = {0.0f, 0.0f, -230.0f}; + mDoMtx_stack_c::transS(pos); + mDoMtx_stack_c::ZXYrotM(shape_angle); + mDoMtx_stack_c::multVec(&sp1C, &pos); + + for (int i = 0; i < 2; i++) { + mCps2[i].Set(s_CcDCps); + mCps2[i].SetStts(&field_0x5ec); + getLinePosPic(i, &picpos); + + mDoMtx_stack_c::transS(picpos); + mDoMtx_stack_c::ZXYrotM(shape_angle); + mDoMtx_stack_c::multVec(&sp1C, &picpos); + + mCps2[i].cCcD_CpsAttr::Set(pos, picpos, 14.0f); + mCps2[i].CalcTgVec(); + mCps2[i].OnTgNoSlingHitInfSet(); + } + + setLinePos(); + mpBgw[1]->OffRoofRegist(); + } + } + + return phase_state; +} + +/* 80CADFB0-80CAE05C 000D30 00AC+00 1/1 0/0 0/0 .text Delete__14daObjPicture_cFv */ +int daObjPicture_c::Delete() { + for (int i = 0; i < 2; i++) { + if (i == 1 && field_0xd26 != 0) { + break; + } + + if (mpBgw[i] != NULL && mpBgw[i]->ChkUsed()) { + dComIfG_Bgsp().Release(mpBgw[i]); + } + } + + this->~daObjPicture_c(); + return 1; +} + +/* 80CAE05C-80CAE1B8 000DDC 015C+00 1/1 0/0 0/0 .text draw__14daObjPicture_cFv */ +int daObjPicture_c::draw() { + g_env_light.settingTevStruct(16, ¤t.pos, &tevStr); + g_env_light.setLightTevColorType_MAJI(mpRopestModel, &tevStr); + mDoExt_modelUpdate(mpRopestModel); + + if (field_0xd26 != 0) { + return 1; + } + + g_env_light.setLightTevColorType_MAJI(mpPicModel, &tevStr); + dComIfGd_setListBG(); + mDoExt_modelUpdateDL(mpPicModel); + dComIfGd_setList(); + + for (int i = 0; i < 2; i++) { + GXColor rope_col = {0, 0, 0, 0}; + mpRopeMat[i]->update(10, 3.5f, rope_col, 0, &tevStr); + dComIfGd_set3DlineMat(mpRopeMat[i]); + } + + return 1; +} + +/* 80CAE1B8-80CAE510 000F38 0358+00 1/1 0/0 0/0 .text execute__14daObjPicture_cFv */ +int daObjPicture_c::execute() { + if (field_0xd26 != 0) { + setTmgModelMtx(); + return 1; + } + + switch (field_0xd24) { + case 0: + if (chkHitRope() || chkHitBombTg()) { + fopAcM_onSwitch(this, getSW_0()); + mDoAud_seStart(Z2SE_OBJ_ROPE_PAINT_CUT, &field_0xc88, 0, 0); + field_0xd24 = 1; + speed.set(0.0f, -1.0f, 0.0f); + + for (int i = 0; i < 10; i++) { + if (i == 5 || i == 6) { + field_0xd28[i].x = 12.0f; + } else if (i == 0 || i == 1) { + field_0xd28[i].x = 4.0f; + } else { + field_0xd28[i].x = 7.0f; + } + + field_0xd28[i].y = -1.0f; + field_0xd28[i].z = 0.0f; + } + + return 1; + } + + for (int i = 0; i < 2; i++) { + dComIfG_Ccsp()->Set(&mCps[i]); + dComIfG_Ccsp()->Set(&mCps2[i]); + } + break; + case 1: { + cXyz sp14(field_0xc94.x, current.pos.y, field_0xc94.z); + fopAcM_gc_c::gndCheck(&sp14); + current.pos.y += speed.y; + + moveLineFall1(); + + if (fopAcM_gc_c::getGroundY() > current.pos.y) { + mDoAud_seStart(Z2SE_OBJ_ROPE_PAINT_LAND, ¤t.pos, 0, 0); + current.pos.y = 5.0f + fopAcM_gc_c::getGroundY(); + field_0xd24 = 2; + speed.y = -0.1f; + } + + speed.y += gravity; + cLib_chaseF(¤t.pos.x, field_0xca0.x, 1.0f); + cLib_chaseF(¤t.pos.z, field_0xca0.z, 1.0f); + break; + } + case 2: { + cXyz sp8(current.pos); + fopAcM_gc_c::gndCheck(&sp8); + + shape_angle.x += 0x400; + if (shape_angle.x > 0x4000) { + shape_angle.x = 0x4000; + } + + moveLineFall2(); + + if (field_0xd27 != 0 && shape_angle.x == 0x4000) { + field_0xd24 = 3; + } + + cLib_chaseF(¤t.pos.x, field_0xca0.x, 1.0f); + cLib_chaseF(¤t.pos.z, field_0xca0.z, 1.0f); + setPicAtCol(); + break; + } + case 3: + break; + } + + setPicModelMtx(); + setTmgModelMtx(); + mpBgw[1]->Move(); + return 1; +} + +/* 80CAE510-80CAE5B0 001290 00A0+00 1/1 0/0 0/0 .text init__14daObjPicture_cFv */ +void daObjPicture_c::init() { + field_0xd24 = 0; + gravity = -3.0f; + + Vec sp8 = {0.0f, 0.0f, 100.0f}; + + mDoMtx_stack_c::transS(current.pos); + mDoMtx_stack_c::ZXYrotM(shape_angle); + mDoMtx_stack_c::multVec(&sp8, &field_0xc94); + + sp8.z = 15.0f; + mDoMtx_stack_c::multVec(&sp8, &field_0xca0); +} + +/* 80CAE5B0-80CAE638 001330 0088+00 2/2 0/0 0/0 .text setPicModelMtx__14daObjPicture_cFv + */ +void daObjPicture_c::setPicModelMtx() { + if (field_0xd26 == 0) { + mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z); + mDoMtx_stack_c::ZXYrotM(shape_angle.x, shape_angle.y, shape_angle.z); + MTXCopy(mDoMtx_stack_c::get(), mBgMtx[1]); + mpPicModel->setBaseTRMtx(mDoMtx_stack_c::get()); + } +} + +/* 80CAE638-80CAE6C4 0013B8 008C+00 2/2 0/0 0/0 .text setTmgModelMtx__14daObjPicture_cFv + */ +void daObjPicture_c::setTmgModelMtx() { + mDoMtx_stack_c::transS(home.pos.x, home.pos.y + 325.0f, home.pos.z); + mDoMtx_stack_c::ZXYrotM(home.angle.x, home.angle.y, home.angle.z); + mDoMtx_stack_c::scaleM(0.5f, 0.5f, 0.5f); + mpRopestModel->setBaseTRMtx(mDoMtx_stack_c::get()); +} + +/* 80CAE6C4-80CAE744 001444 0080+00 4/4 0/0 0/0 .text getLinePosPic__14daObjPicture_cFiP4cXyz */ +void daObjPicture_c::getLinePosPic(int param_0, cXyz* o_pos) { + *o_pos = l_LINE_OFFSET_POS[param_0]; + mDoMtx_stack_c::transS(current.pos); + mDoMtx_stack_c::ZXYrotM(shape_angle); + mDoMtx_stack_c::multVec(o_pos, o_pos); +} + +/* 80CAE744-80CAE76C 0014C4 0028+00 2/2 0/0 0/0 .text getPosTmg__14daObjPicture_cFP4cXyz + */ +void daObjPicture_c::getPosTmg(cXyz* o_pos) { + o_pos->set(home.pos.x, 325.0f + home.pos.y, home.pos.z); +} + +/* 80CAE76C-80CAE8E8 0014EC 017C+00 1/1 0/0 0/0 .text setLinePos__14daObjPicture_cFv */ +void daObjPicture_c::setLinePos() { + cXyz tmgpos; + cXyz picpos[2]; + getPosTmg(&tmgpos); + getLinePosPic(0, &picpos[0]); + getLinePosPic(1, &picpos[1]); + + cXyz sp44; + cXyz sp38; + for (int i = 0; i < 2; i++) { + sp44 = tmgpos - picpos[i]; + sp44.normalizeZP(); + + cXyz* rope_pos_p = mpRopeMat[i]->getPos(0); + *rope_pos_p = picpos[i]; + sp38 = *rope_pos_p; + + rope_pos_p++; + for (int j = 1; j < 9; j++) { + *rope_pos_p = sp38 + (sp44 * 20.0f); + sp38 = *rope_pos_p; + rope_pos_p++; + } + + *rope_pos_p = tmgpos; + } +} + +/* 80CAE8E8-80CAEA60 001668 0178+00 1/1 0/0 0/0 .text moveLineFall1__14daObjPicture_cFv + */ +void daObjPicture_c::moveLineFall1() { + cXyz picpos[2]; + getLinePosPic(0, &picpos[0]); + getLinePosPic(1, &picpos[1]); + + cXyz sp14; + f32 var_f31 = 1.0f; + cXyz* rope_pos_p; + for (int i = 0; i < 2; i++) { + rope_pos_p = mpRopeMat[i]->getPos(0); + *rope_pos_p = picpos[i]; + rope_pos_p++; + + if (i == 0) { + var_f31 = -1.0f; + } else { + var_f31 = 1.0f; + } + + for (int j = 1; j < 10; j++) { + cLib_addCalc0(&field_0xd28[j].x, 0.04f, 50.0f); + field_0xd28[j].y += 0.45f * gravity; + + sp14.set(var_f31 * field_0xd28[j].x, field_0xd28[j].y, 0.0f); + mDoMtx_stack_c::transS(*rope_pos_p); + mDoMtx_stack_c::ZXYrotM(shape_angle); + mDoMtx_stack_c::multVec(&sp14, rope_pos_p); + rope_pos_p++; + } + } +} + +/* 80CAEA60-80CAED28 0017E0 02C8+00 1/1 0/0 0/0 .text moveLineFall2__14daObjPicture_cFv + */ +void daObjPicture_c::moveLineFall2() { + field_0xd27 = 1; + + cXyz sp18[2]; + speed.y += gravity; + + cXyz* rope_pos_p; + for (int i = 0; i < 2; i++) { + getLinePosPic(i, &sp18[i]); + rope_pos_p = mpRopeMat[i]->getPos(0); + *rope_pos_p = sp18[i]; + rope_pos_p++; + + for (int j = 1; j < 10; j++) { + if (8.0f + fopAcM_gc_c::getGroundY() >= rope_pos_p->y) { + rope_pos_p->y = 8.0f + fopAcM_gc_c::getGroundY(); + } else { + rope_pos_p->y += 0.7f * speed.y; + + f32 var_f31 = rope_pos_p->absXZ(current.pos) * (cM_ssin(0x4000 - shape_angle.x) / cM_ssin(shape_angle.x)); + var_f31 += 5.0f + fopAcM_gc_c::getGroundY(); + + if (shape_angle.x >= 0x2000 && rope_pos_p->y < var_f31) { + rope_pos_p->y = var_f31; + } + + cLib_addCalcPosXZ2(rope_pos_p, sp18[i], 0.02f * (10 - j), 30.0f); + field_0xd27 = 0; + } + + rope_pos_p++; + } + } +} + +/* 80CAED28-80CAEDDC 001AA8 00B4+00 1/1 0/0 0/0 .text chkHitRope__14daObjPicture_cFv */ +bool daObjPicture_c::chkHitRope() { + for (int i = 0; i < 2; i++) { + if (mCps[i].ChkTgHit()) { + cCcD_Obj* tg_hit_obj = mCps[i].GetTgHitObj(); + if (tg_hit_obj != NULL && tg_hit_obj->ChkAtType(AT_TYPE_ARROW)) { + field_0xc88 = *mCps[i].GetTgHitPosP(); + return 1; + } + + mCps[i].ClrTgHit(); + } + } + + return 0; +} + +/* 80CAEDDC-80CAEE90 001B5C 00B4+00 1/1 0/0 0/0 .text chkHitBombTg__14daObjPicture_cFv */ +bool daObjPicture_c::chkHitBombTg() { + for (int i = 0; i < 2; i++) { + if (mCps2[i].ChkTgHit()) { + cCcD_Obj* tg_hit_obj = mCps2[i].GetTgHitObj(); + if (tg_hit_obj != NULL && tg_hit_obj->ChkAtType(AT_TYPE_BOMB)) { + field_0xc88 = *mCps2[i].GetTgHitPosP(); + return 1; + } + + mCps2[i].ClrTgHit(); + } + } + + return 0; +} + +/* 80CAEE90-80CAEF18 001C10 0088+00 1/1 0/0 0/0 .text setPicAtCol__14daObjPicture_cFv */ +void daObjPicture_c::setPicAtCol() { + mPicAtPos = l_PIC_AT_OFFSET_POS; + mDoMtx_stack_c::transS(current.pos); + mDoMtx_stack_c::ZXYrotM(shape_angle); + mDoMtx_stack_c::multVec(&mPicAtPos, &mPicAtPos); + mAtCyl.SetC(mPicAtPos); + dComIfG_Ccsp()->Set(&mAtCyl); +} + +/* 80CAEF18-80CAEF6C 001C98 0054+00 1/0 0/0 0/0 .text daObjPicture_create__FP14daObjPicture_c */ +static int daObjPicture_create(daObjPicture_c* i_this) { + fopAcM_ct(i_this, daObjPicture_c); + return i_this->create(); +} + +/* 80CAEF6C-80CAEF8C 001CEC 0020+00 1/0 0/0 0/0 .text daObjPicture_Delete__FP14daObjPicture_c */ +static int daObjPicture_Delete(daObjPicture_c* i_this) { + return i_this->Delete(); +} + +/* 80CAEF8C-80CAEFAC 001D0C 0020+00 1/0 0/0 0/0 .text daObjPicture_execute__FP14daObjPicture_c */ +static int daObjPicture_execute(daObjPicture_c* i_this) { + return i_this->execute(); +} + +/* 80CAEFAC-80CAEFCC 001D2C 0020+00 1/0 0/0 0/0 .text daObjPicture_draw__FP14daObjPicture_c */ +static int daObjPicture_draw(daObjPicture_c* i_this) { + return i_this->draw(); +} + /* 80CAF1A0-80CAF1C0 -00001 0020+00 1/0 0/0 0/0 .data daObjPicture_METHODS */ static actor_method_class daObjPicture_METHODS = { - (process_method_func)daObjPicture_create__FP14daObjPicture_c, - (process_method_func)daObjPicture_Delete__FP14daObjPicture_c, - (process_method_func)daObjPicture_execute__FP14daObjPicture_c, + (process_method_func)daObjPicture_create, + (process_method_func)daObjPicture_Delete, + (process_method_func)daObjPicture_execute, 0, - (process_method_func)daObjPicture_draw__FP14daObjPicture_c, + (process_method_func)daObjPicture_draw, }; /* 80CAF1C0-80CAF1F0 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Picture */ @@ -207,478 +603,3 @@ extern actor_process_profile_definition g_profile_Obj_Picture = { fopAc_ENV_e, // mActorType fopAc_CULLBOX_CUSTOM_e, // cullType }; - -/* 80CAF1F0-80CAF204 000108 0014+00 1/1 0/0 0/0 .data __vt__18mDoExt_3DlineMat_c */ -SECTION_DATA extern void* __vt__18mDoExt_3DlineMat_c[5] = { - (void*)NULL /* RTTI */, (void*)NULL, (void*)NULL, (void*)NULL, (void*)NULL, -}; - -/* 80CAF204-80CAF210 00011C 000C+00 2/2 0/0 0/0 .data __vt__14daObjPicture_c */ -SECTION_DATA extern void* __vt__14daObjPicture_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__14daObjPicture_cFv, -}; - -/* 80CAF210-80CAF21C 000128 000C+00 3/3 0/0 0/0 .data __vt__10cCcD_GStts */ -SECTION_DATA extern void* __vt__10cCcD_GStts[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__10cCcD_GSttsFv, -}; - -/* 80CAF21C-80CAF228 000134 000C+00 2/2 0/0 0/0 .data __vt__10dCcD_GStts */ -SECTION_DATA extern void* __vt__10dCcD_GStts[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__10dCcD_GSttsFv, -}; - -/* 80CAF228-80CAF234 000140 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGCyl */ -SECTION_DATA extern void* __vt__8cM3dGCyl[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__8cM3dGCylFv, -}; - -/* 80CAF234-80CAF240 00014C 000C+00 5/5 0/0 0/0 .data __vt__8cM3dGAab */ -SECTION_DATA extern void* __vt__8cM3dGAab[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__8cM3dGAabFv, -}; - -/* 80CAD318-80CAD498 000098 0180+00 2/2 0/0 0/0 .text __ct__14daObjPicture_cFv */ -daObjPicture_c::daObjPicture_c() { - // NONMATCHING -} - -/* 80CAD498-80CAD4E0 000218 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */ -// cM3dGCyl::~cM3dGCyl() { -extern "C" void __dt__8cM3dGCylFv() { - // NONMATCHING -} - -/* 80CAD4E0-80CAD528 000260 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */ -// cM3dGAab::~cM3dGAab() { -extern "C" void __dt__8cM3dGAabFv() { - // NONMATCHING -} - -/* 80CAD528-80CAD5EC 0002A8 00C4+00 2/2 0/0 0/0 .text __dt__8dCcD_CpsFv */ -// dCcD_Cps::~dCcD_Cps() { -extern "C" void __dt__8dCcD_CpsFv() { - // NONMATCHING -} - -/* 80CAD5EC-80CAD66C 00036C 0080+00 1/1 0/0 0/0 .text __ct__8dCcD_CpsFv */ -// dCcD_Cps::dCcD_Cps() { -extern "C" void __ct__8dCcD_CpsFv() { - // NONMATCHING -} - -/* 80CAD66C-80CAD6C8 0003EC 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */ -// dCcD_GStts::~dCcD_GStts() { -extern "C" void __dt__10dCcD_GSttsFv() { - // NONMATCHING -} - -/* 80CAD6C8-80CAD908 000448 0240+00 1/0 0/0 0/0 .text __dt__14daObjPicture_cFv */ -daObjPicture_c::~daObjPicture_c() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80CAF01C-80CAF024 000000 0008+00 6/6 0/0 0/0 .rodata l_dzbIdx */ -SECTION_RODATA static u8 const l_dzbIdx[8] = { - 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x0A, -}; -COMPILER_STRIP_GATE(0x80CAF01C, &l_dzbIdx); - -/* 80CAF024-80CAF02C 000008 0008+00 0/1 0/0 0/0 .rodata l_PictureBmdIdx */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const l_PictureBmdIdx[8] = { - 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07, -}; -COMPILER_STRIP_GATE(0x80CAF024, &l_PictureBmdIdx); -#pragma pop - -/* 80CAF02C-80CAF030 000010 0004+00 0/3 0/0 0/0 .rodata @3925 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3925 = 1.0f; -COMPILER_STRIP_GATE(0x80CAF02C, &lit_3925); -#pragma pop - -/* 80CAF030-80CAF034 000014 0004+00 2/3 0/0 0/0 .rodata @3926 */ -SECTION_RODATA static f32 const lit_3926 = 325.0f; -COMPILER_STRIP_GATE(0x80CAF030, &lit_3926); - -/* 80CAF034-80CAF038 000018 0004+00 1/2 0/0 0/0 .rodata @3927 */ -SECTION_RODATA static f32 const lit_3927 = 0.5f; -COMPILER_STRIP_GATE(0x80CAF034, &lit_3927); - -/* 80CAD908-80CADC18 000688 0310+00 1/1 0/0 0/0 .text createHeap__14daObjPicture_cFv */ -void daObjPicture_c::createHeap() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80CAF038-80CAF044 00001C 000C+00 0/1 0/0 0/0 .rodata @3958 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3958[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC3, 0x66, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80CAF038, &lit_3958); -#pragma pop - -/* 80CAF044-80CAF048 000028 0004+00 0/1 0/0 0/0 .rodata @4007 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4007 = -100.0f; -COMPILER_STRIP_GATE(0x80CAF044, &lit_4007); -#pragma pop - -/* 80CAF048-80CAF04C 00002C 0004+00 0/1 0/0 0/0 .rodata @4008 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4008 = -500.0f; -COMPILER_STRIP_GATE(0x80CAF048, &lit_4008); -#pragma pop - -/* 80CAF04C-80CAF050 000030 0004+00 0/1 0/0 0/0 .rodata @4009 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4009 = 100.0f; -COMPILER_STRIP_GATE(0x80CAF04C, &lit_4009); -#pragma pop - -/* 80CAF050-80CAF054 000034 0004+00 0/1 0/0 0/0 .rodata @4010 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4010 = 1500.0f; -COMPILER_STRIP_GATE(0x80CAF050, &lit_4010); -#pragma pop - -/* 80CAF054-80CAF058 000038 0004+00 0/1 0/0 0/0 .rodata @4011 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4011 = 500.0f; -COMPILER_STRIP_GATE(0x80CAF054, &lit_4011); -#pragma pop - -/* 80CAF058-80CAF05C 00003C 0004+00 0/1 0/0 0/0 .rodata @4012 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4012 = 14.0f; -COMPILER_STRIP_GATE(0x80CAF058, &lit_4012); -#pragma pop - -/* 80CAF05C-80CAF060 000040 0004+00 0/1 0/0 0/0 .rodata @4013 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4013 = 10.0f; -COMPILER_STRIP_GATE(0x80CAF05C, &lit_4013); -#pragma pop - -/* 80CAF060-80CAF064 000044 0004+00 0/1 0/0 0/0 .rodata @4014 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4014 = 110.0f; -COMPILER_STRIP_GATE(0x80CAF060, &lit_4014); -#pragma pop - -/* 80CADC18-80CADFB0 000998 0398+00 1/1 0/0 0/0 .text create__14daObjPicture_cFv */ -void daObjPicture_c::create() { - // NONMATCHING -} - -/* 80CADFB0-80CAE05C 000D30 00AC+00 1/1 0/0 0/0 .text Delete__14daObjPicture_cFv */ -void daObjPicture_c::Delete() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80CAF064-80CAF068 000048 0004+00 1/1 0/0 0/0 .rodata @4042 */ -SECTION_RODATA static u8 const lit_4042[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80CAF064, &lit_4042); - -/* 80CAF068-80CAF06C 00004C 0004+00 1/1 0/0 0/0 .rodata @4076 */ -SECTION_RODATA static f32 const lit_4076 = 3.5f; -COMPILER_STRIP_GATE(0x80CAF068, &lit_4076); - -/* 80CAE05C-80CAE1B8 000DDC 015C+00 1/1 0/0 0/0 .text draw__14daObjPicture_cFv */ -void daObjPicture_c::draw() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80CAF06C-80CAF070 000050 0004+00 0/2 0/0 0/0 .rodata @4146 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4146 = -1.0f; -COMPILER_STRIP_GATE(0x80CAF06C, &lit_4146); -#pragma pop - -/* 80CAF070-80CAF074 000054 0004+00 0/3 0/0 0/0 .rodata @4147 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4147[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80CAF070, &lit_4147); -#pragma pop - -/* 80CAF074-80CAF078 000058 0004+00 0/1 0/0 0/0 .rodata @4148 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4148 = 12.0f; -COMPILER_STRIP_GATE(0x80CAF074, &lit_4148); -#pragma pop - -/* 80CAF078-80CAF07C 00005C 0004+00 0/1 0/0 0/0 .rodata @4149 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4149 = 4.0f; -COMPILER_STRIP_GATE(0x80CAF078, &lit_4149); -#pragma pop - -/* 80CAF07C-80CAF080 000060 0004+00 0/1 0/0 0/0 .rodata @4150 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4150 = 7.0f; -COMPILER_STRIP_GATE(0x80CAF07C, &lit_4150); -#pragma pop - -/* 80CAF080-80CAF084 000064 0004+00 0/2 0/0 0/0 .rodata @4151 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4151 = 5.0f; -COMPILER_STRIP_GATE(0x80CAF080, &lit_4151); -#pragma pop - -/* 80CAF084-80CAF088 000068 0004+00 0/1 0/0 0/0 .rodata @4152 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4152 = -1.0f / 10.0f; -COMPILER_STRIP_GATE(0x80CAF084, &lit_4152); -#pragma pop - -/* 80CAE1B8-80CAE510 000F38 0358+00 1/1 0/0 0/0 .text execute__14daObjPicture_cFv */ -void daObjPicture_c::execute() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80CAF088-80CAF094 00006C 000C+00 0/1 0/0 0/0 .rodata @4156 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4156[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0xC8, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80CAF088, &lit_4156); -#pragma pop - -/* 80CAF094-80CAF098 000078 0004+00 0/1 0/0 0/0 .rodata @4160 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4160 = -3.0f; -COMPILER_STRIP_GATE(0x80CAF094, &lit_4160); -#pragma pop - -/* 80CAF098-80CAF09C 00007C 0004+00 0/1 0/0 0/0 .rodata @4161 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4161 = 15.0f; -COMPILER_STRIP_GATE(0x80CAF098, &lit_4161); -#pragma pop - -/* 80CAE510-80CAE5B0 001290 00A0+00 1/1 0/0 0/0 .text init__14daObjPicture_cFv */ -void daObjPicture_c::init() { - // NONMATCHING -} - -/* 80CAE5B0-80CAE638 001330 0088+00 2/2 0/0 0/0 .text setPicModelMtx__14daObjPicture_cFv - */ -void daObjPicture_c::setPicModelMtx() { - // NONMATCHING -} - -/* 80CAE638-80CAE6C4 0013B8 008C+00 2/2 0/0 0/0 .text setTmgModelMtx__14daObjPicture_cFv - */ -void daObjPicture_c::setTmgModelMtx() { - // NONMATCHING -} - -/* 80CAE6C4-80CAE744 001444 0080+00 4/4 0/0 0/0 .text getLinePosPic__14daObjPicture_cFiP4cXyz */ -void daObjPicture_c::getLinePosPic(int param_0, cXyz* param_1) { - // NONMATCHING -} - -/* 80CAE744-80CAE76C 0014C4 0028+00 2/2 0/0 0/0 .text getPosTmg__14daObjPicture_cFP4cXyz - */ -void daObjPicture_c::getPosTmg(cXyz* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80CAF09C-80CAF0A0 000080 0004+00 1/1 0/0 0/0 .rodata @4280 */ -SECTION_RODATA static f32 const lit_4280 = 20.0f; -COMPILER_STRIP_GATE(0x80CAF09C, &lit_4280); - -/* 80CAE76C-80CAE8E8 0014EC 017C+00 1/1 0/0 0/0 .text setLinePos__14daObjPicture_cFv */ -void daObjPicture_c::setLinePos() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80CAF0A0-80CAF0A4 000084 0004+00 0/1 0/0 0/0 .rodata @4323 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4323 = 1.0f / 25.0f; -COMPILER_STRIP_GATE(0x80CAF0A0, &lit_4323); -#pragma pop - -/* 80CAF0A4-80CAF0A8 000088 0004+00 0/1 0/0 0/0 .rodata @4324 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4324 = 50.0f; -COMPILER_STRIP_GATE(0x80CAF0A4, &lit_4324); -#pragma pop - -/* 80CAF0A8-80CAF0AC 00008C 0004+00 0/1 0/0 0/0 .rodata @4325 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4325 = 9.0f / 20.0f; -COMPILER_STRIP_GATE(0x80CAF0A8, &lit_4325); -#pragma pop - -/* 80CAE8E8-80CAEA60 001668 0178+00 1/1 0/0 0/0 .text moveLineFall1__14daObjPicture_cFv - */ -void daObjPicture_c::moveLineFall1() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80CAF0AC-80CAF0B0 000090 0004+00 0/1 0/0 0/0 .rodata @4432 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4432 = 8.0f; -COMPILER_STRIP_GATE(0x80CAF0AC, &lit_4432); -#pragma pop - -/* 80CAF0B0-80CAF0B4 000094 0004+00 0/1 0/0 0/0 .rodata @4433 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4433 = 7.0f / 10.0f; -COMPILER_STRIP_GATE(0x80CAF0B0, &lit_4433); -#pragma pop - -/* 80CAF0B4-80CAF0BC 000098 0008+00 0/1 0/0 0/0 .rodata @4434 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4434[8] = { - 0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80CAF0B4, &lit_4434); -#pragma pop - -/* 80CAF0BC-80CAF0C4 0000A0 0008+00 0/1 0/0 0/0 .rodata @4435 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4435[8] = { - 0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80CAF0BC, &lit_4435); -#pragma pop - -/* 80CAF0C4-80CAF0CC 0000A8 0008+00 0/1 0/0 0/0 .rodata @4436 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4436[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80CAF0C4, &lit_4436); -#pragma pop - -/* 80CAF0CC-80CAF0D0 0000B0 0004+00 0/1 0/0 0/0 .rodata @4437 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4437 = 1.0f / 50.0f; -COMPILER_STRIP_GATE(0x80CAF0CC, &lit_4437); -#pragma pop - -/* 80CAF0D0-80CAF0D4 0000B4 0004+00 0/1 0/0 0/0 .rodata @4438 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4438 = 30.0f; -COMPILER_STRIP_GATE(0x80CAF0D0, &lit_4438); -#pragma pop - -/* 80CAF0D4-80CAF0DC 0000B8 0008+00 0/1 0/0 0/0 .rodata @4440 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4440[8] = { - 0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80CAF0D4, &lit_4440); -#pragma pop - -/* 80CAEA60-80CAED28 0017E0 02C8+00 1/1 0/0 0/0 .text moveLineFall2__14daObjPicture_cFv - */ -void daObjPicture_c::moveLineFall2() { - // NONMATCHING -} - -/* 80CAED28-80CAEDDC 001AA8 00B4+00 1/1 0/0 0/0 .text chkHitRope__14daObjPicture_cFv */ -void daObjPicture_c::chkHitRope() { - // NONMATCHING -} - -/* 80CAEDDC-80CAEE90 001B5C 00B4+00 1/1 0/0 0/0 .text chkHitBombTg__14daObjPicture_cFv */ -void daObjPicture_c::chkHitBombTg() { - // NONMATCHING -} - -/* 80CAEE90-80CAEF18 001C10 0088+00 1/1 0/0 0/0 .text setPicAtCol__14daObjPicture_cFv */ -void daObjPicture_c::setPicAtCol() { - // NONMATCHING -} - -/* 80CAEF18-80CAEF6C 001C98 0054+00 1/0 0/0 0/0 .text daObjPicture_create__FP14daObjPicture_c */ -static void daObjPicture_create(daObjPicture_c* param_0) { - // NONMATCHING -} - -/* 80CAEF6C-80CAEF8C 001CEC 0020+00 1/0 0/0 0/0 .text daObjPicture_Delete__FP14daObjPicture_c */ -static void daObjPicture_Delete(daObjPicture_c* param_0) { - // NONMATCHING -} - -/* 80CAEF8C-80CAEFAC 001D0C 0020+00 1/0 0/0 0/0 .text daObjPicture_execute__FP14daObjPicture_c */ -static void daObjPicture_execute(daObjPicture_c* param_0) { - // NONMATCHING -} - -/* 80CAEFAC-80CAEFCC 001D2C 0020+00 1/0 0/0 0/0 .text daObjPicture_draw__FP14daObjPicture_c */ -static void daObjPicture_draw(daObjPicture_c* param_0) { - // NONMATCHING -} - -/* 80CAEFCC-80CAF014 001D4C 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */ -// cCcD_GStts::~cCcD_GStts() { -extern "C" void __dt__10cCcD_GSttsFv() { - // NONMATCHING -} - -/* 80CAF0DC-80CAF0DC 0000C0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/src/d/d_msg_flow.cpp b/src/d/d_msg_flow.cpp index 0741fde3993..f97cb801f17 100644 --- a/src/d/d_msg_flow.cpp +++ b/src/d/d_msg_flow.cpp @@ -2515,9 +2515,9 @@ int dMsgFlow_c::event027(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speak // NONMATCHING regalloc int dMsgFlow_c::event028(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speaker_p) { u8 pos = dComIfGs_getTmpReg(0xFBFF) - 1; - dMsgObject_c::setSelectCursorPos(pos); - u8 BombBag = dMsgObject_c::getSelectBombBagID(); - s16 BombPrice = dMsgObject_c::getSelectBombPrice(); + dMsgObject_setSelectCursorPos(pos); + u8 BombBag = dMsgObject_getSelectBombBagID(); + s16 BombPrice = dMsgObject_getSelectBombPrice(); dComIfGp_setItemRupeeCount(BombPrice); dComIfGs_setBombNum(BombBag, 0);