diff --git a/include/m_Do/m_Do_hostIO.h b/include/m_Do/m_Do_hostIO.h index a6f72935e0b..abf715f55d4 100644 --- a/include/m_Do/m_Do_hostIO.h +++ b/include/m_Do/m_Do_hostIO.h @@ -6,6 +6,7 @@ class mDoHIO_entry_c { public: virtual ~mDoHIO_entry_c() {} + u8 unk_0x4; }; #endif /* M_DO_M_DO_HOSTIO_H */ diff --git a/include/rel/d/a/tag/d_a_tag_lv6CstaSw/d_a_tag_lv6CstaSw.h b/include/rel/d/a/tag/d_a_tag_lv6CstaSw/d_a_tag_lv6CstaSw.h index 4e6743d6f5f..9f0dda433de 100644 --- a/include/rel/d/a/tag/d_a_tag_lv6CstaSw/d_a_tag_lv6CstaSw.h +++ b/include/rel/d/a/tag/d_a_tag_lv6CstaSw/d_a_tag_lv6CstaSw.h @@ -26,7 +26,6 @@ public: /* 80D5B2EC */ daLv6CstaSw_HIO_c(); /* 80D5B740 */ virtual ~daLv6CstaSw_HIO_c(); - /* 0x04 */ s8 field_0x4; }; #endif /* D_A_TAG_LV6CSTASW_H */ diff --git a/include/rel/d/a/tag/d_a_tag_poFire/d_a_tag_poFire.h b/include/rel/d/a/tag/d_a_tag_poFire/d_a_tag_poFire.h index e49a792d694..3c5cc4451fe 100644 --- a/include/rel/d/a/tag/d_a_tag_poFire/d_a_tag_poFire.h +++ b/include/rel/d/a/tag/d_a_tag_poFire/d_a_tag_poFire.h @@ -1,6 +1,27 @@ #ifndef D_A_TAG_POFIRE_H #define D_A_TAG_POFIRE_H -#include "dolphin/types.h" +#include "d/com/d_com_inf_game.h" +#include "f_op/f_op_actor_mng.h" +#include "m_Do/m_Do_hostIO.h" + +class daTagPoFire_c : public fopAc_ac_c { +public: + /* 80D5DB38 */ void setBaseMtx(); + /* 80D5DB90 */ int create(); + /* 80D5DBF0 */ int Execute(); + /* 80D5DC20 */ int Draw(); + /* 80D5DC28 */ int Delete(); + + /* 0x568 */ u8 field_0x568; + /* 0x569 */ u8 field_0x569; + /* 0x56B */ u16 field_0x56b; +}; + +class daTagPoFire_HIO_c : public mDoHIO_entry_c { +public: + /* 80D5DACC */ daTagPoFire_HIO_c(); + /* 80D5DCB0 */ virtual ~daTagPoFire_HIO_c(); +}; #endif /* D_A_TAG_POFIRE_H */ diff --git a/rel/d/a/tag/d_a_tag_lv6CstaSw/d_a_tag_lv6CstaSw.cpp b/rel/d/a/tag/d_a_tag_lv6CstaSw/d_a_tag_lv6CstaSw.cpp index 9b1942f0d34..a6792204744 100644 --- a/rel/d/a/tag/d_a_tag_lv6CstaSw/d_a_tag_lv6CstaSw.cpp +++ b/rel/d/a/tag/d_a_tag_lv6CstaSw/d_a_tag_lv6CstaSw.cpp @@ -7,7 +7,7 @@ /* 80D5B2EC-80D5B310 0000EC 0024+00 1/1 0/0 0/0 .text __ct__17daLv6CstaSw_HIO_cFv */ daLv6CstaSw_HIO_c::daLv6CstaSw_HIO_c() { - field_0x4 = 0; + unk_0x4 = 0; } /* 80D5B358-80D5B3B0 000158 0058+00 1/1 0/0 0/0 .text setBaseMtx__13daLv6CstaSw_cFv */ diff --git a/rel/d/a/tag/d_a_tag_poFire/d_a_tag_poFire.cpp b/rel/d/a/tag/d_a_tag_poFire/d_a_tag_poFire.cpp index 8eb96eb88b0..8f803102184 100644 --- a/rel/d/a/tag/d_a_tag_poFire/d_a_tag_poFire.cpp +++ b/rel/d/a/tag/d_a_tag_poFire/d_a_tag_poFire.cpp @@ -1,244 +1,107 @@ -// -// Generated By: dol2asm -// Translation Unit: d_a_tag_poFire -// +/** + * d_a_tag_poFire.cpp + * Tag - Poe Fire + */ #include "rel/d/a/tag/d_a_tag_poFire/d_a_tag_poFire.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Types: -// - -struct mDoMtx_stack_c { - static u8 now[48]; -}; - -struct mDoHIO_entry_c { - /* 80D5DAF0 */ ~mDoHIO_entry_c(); -}; - -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); -}; - -struct daTagPoFire_c { - /* 80D5DB38 */ void setBaseMtx(); - /* 80D5DB90 */ void create(); - /* 80D5DBF0 */ void Execute(); - /* 80D5DC20 */ bool Draw(); - /* 80D5DC28 */ bool Delete(); -}; - -struct daTagPoFire_HIO_c { - /* 80D5DACC */ daTagPoFire_HIO_c(); - /* 80D5DCB0 */ ~daTagPoFire_HIO_c(); -}; - -// -// Forward References: -// - -extern "C" void __ct__17daTagPoFire_HIO_cFv(); -extern "C" void __dt__14mDoHIO_entry_cFv(); -extern "C" void setBaseMtx__13daTagPoFire_cFv(); -extern "C" void create__13daTagPoFire_cFv(); -extern "C" void Execute__13daTagPoFire_cFv(); -extern "C" bool Draw__13daTagPoFire_cFv(); -extern "C" bool Delete__13daTagPoFire_cFv(); -extern "C" static void daTagPoFire_Draw__FP13daTagPoFire_c(); -extern "C" static void daTagPoFire_Execute__FP13daTagPoFire_c(); -extern "C" static void daTagPoFire_Delete__FP13daTagPoFire_c(); -extern "C" static void daTagPoFire_Create__FP10fopAc_ac_c(); -extern "C" void __dt__17daTagPoFire_HIO_cFv(); -extern "C" void __sinit_d_a_tag_poFire_cpp(); - -// -// External References: -// - -extern "C" void mDoMtx_ZXYrotM__FPA4_fsss(); -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void fopAcM_delete__FP10fopAc_ac_c(); -extern "C" void __dl__FPv(); -extern "C" void PSMTXTrans(); -extern "C" extern void* g_fopAc_Method[8]; -extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */]; -extern "C" u8 now__14mDoMtx_stack_c[48]; -extern "C" void __register_global_object(); - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 80D5DD5C-80D5DD7C -00001 0020+00 1/0 0/0 0/0 .data l_daTagPoFire_Method */ -SECTION_DATA static void* l_daTagPoFire_Method[8] = { - (void*)daTagPoFire_Create__FP10fopAc_ac_c, - (void*)daTagPoFire_Delete__FP13daTagPoFire_c, - (void*)daTagPoFire_Execute__FP13daTagPoFire_c, - (void*)NULL, - (void*)daTagPoFire_Draw__FP13daTagPoFire_c, - (void*)NULL, - (void*)NULL, - (void*)NULL, -}; - -/* 80D5DD7C-80D5DDAC -00001 0030+00 0/0 0/0 1/0 .data g_profile_Tag_poFire */ -SECTION_DATA extern void* g_profile_Tag_poFire[12] = { - (void*)0xFFFFFFFD, (void*)0x0007FFFD, - (void*)0x017A0000, (void*)&g_fpcLf_Method, - (void*)0x0000056C, (void*)NULL, - (void*)NULL, (void*)&g_fopAc_Method, - (void*)0x02890000, (void*)&l_daTagPoFire_Method, - (void*)0x00044000, (void*)0x000E0000, -}; - -/* 80D5DDAC-80D5DDB8 000050 000C+00 2/2 0/0 0/0 .data __vt__17daTagPoFire_HIO_c */ -SECTION_DATA extern void* __vt__17daTagPoFire_HIO_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__17daTagPoFire_HIO_cFv, -}; - -/* 80D5DDB8-80D5DDC4 00005C 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, -}; /* 80D5DACC-80D5DAF0 0000EC 0024+00 1/1 0/0 0/0 .text __ct__17daTagPoFire_HIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm daTagPoFire_HIO_c::daTagPoFire_HIO_c() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_poFire/d_a_tag_poFire/__ct__17daTagPoFire_HIO_cFv.s" +daTagPoFire_HIO_c::daTagPoFire_HIO_c() { + unk_0x4 = 0x14; } -#pragma pop - -/* 80D5DAF0-80D5DB38 000110 0048+00 1/0 0/0 0/0 .text __dt__14mDoHIO_entry_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm mDoHIO_entry_c::~mDoHIO_entry_c() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_poFire/d_a_tag_poFire/__dt__14mDoHIO_entry_cFv.s" -} -#pragma pop /* 80D5DB38-80D5DB90 000158 0058+00 1/1 0/0 0/0 .text setBaseMtx__13daTagPoFire_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTagPoFire_c::setBaseMtx() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_poFire/d_a_tag_poFire/setBaseMtx__13daTagPoFire_cFv.s" +void daTagPoFire_c::setBaseMtx() { + 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); } -#pragma pop /* 80D5DB90-80D5DBF0 0001B0 0060+00 1/1 0/0 0/0 .text create__13daTagPoFire_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTagPoFire_c::create() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_poFire/d_a_tag_poFire/create__13daTagPoFire_cFv.s" +int daTagPoFire_c::create() { + if (!fopAcM_CheckCondition(this, 8)) { + new (this) daTagPoFire_c(); + fopAcM_OnCondition(this, 8); + } + field_0x569 = 0; + setBaseMtx(); + return cPhs_COMPLEATE_e; } -#pragma pop /* 80D5DBF0-80D5DC20 000210 0030+00 1/1 0/0 0/0 .text Execute__13daTagPoFire_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTagPoFire_c::Execute() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_poFire/d_a_tag_poFire/Execute__13daTagPoFire_cFv.s" +int daTagPoFire_c::Execute() { + if (field_0x569) { + fopAcM_delete(this); + } + return 1; } -#pragma pop /* 80D5DC20-80D5DC28 000240 0008+00 1/1 0/0 0/0 .text Draw__13daTagPoFire_cFv */ -bool daTagPoFire_c::Draw() { - return true; +int daTagPoFire_c::Draw() { + return 1; } /* 80D5DC28-80D5DC30 000248 0008+00 1/1 0/0 0/0 .text Delete__13daTagPoFire_cFv */ -bool daTagPoFire_c::Delete() { - return true; +int daTagPoFire_c::Delete() { + return 1; } /* 80D5DC30-80D5DC50 000250 0020+00 1/0 0/0 0/0 .text daTagPoFire_Draw__FP13daTagPoFire_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagPoFire_Draw(daTagPoFire_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_poFire/d_a_tag_poFire/daTagPoFire_Draw__FP13daTagPoFire_c.s" +static int daTagPoFire_Draw(daTagPoFire_c* i_this) { + return i_this->Draw(); } -#pragma pop /* 80D5DC50-80D5DC70 000270 0020+00 1/0 0/0 0/0 .text daTagPoFire_Execute__FP13daTagPoFire_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagPoFire_Execute(daTagPoFire_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_poFire/d_a_tag_poFire/daTagPoFire_Execute__FP13daTagPoFire_c.s" +static int daTagPoFire_Execute(daTagPoFire_c* i_this) { + return i_this->Execute(); } -#pragma pop /* 80D5DC70-80D5DC90 000290 0020+00 1/0 0/0 0/0 .text daTagPoFire_Delete__FP13daTagPoFire_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagPoFire_Delete(daTagPoFire_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_poFire/d_a_tag_poFire/daTagPoFire_Delete__FP13daTagPoFire_c.s" +static int daTagPoFire_Delete(daTagPoFire_c* i_this) { + return i_this->Delete(); } -#pragma pop /* 80D5DC90-80D5DCB0 0002B0 0020+00 1/0 0/0 0/0 .text daTagPoFire_Create__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagPoFire_Create(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_poFire/d_a_tag_poFire/daTagPoFire_Create__FP10fopAc_ac_c.s" +static int daTagPoFire_Create(fopAc_ac_c* i_this) { + return static_cast(i_this)->create(); } -#pragma pop /* 80D5DCB0-80D5DD0C 0002D0 005C+00 2/1 0/0 0/0 .text __dt__17daTagPoFire_HIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm daTagPoFire_HIO_c::~daTagPoFire_HIO_c() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_poFire/d_a_tag_poFire/__dt__17daTagPoFire_HIO_cFv.s" -} -#pragma pop +daTagPoFire_HIO_c::~daTagPoFire_HIO_c() {} -/* ############################################################################################## */ /* 80D5DDD0-80D5DDDC 000008 000C+00 1/1 0/0 0/0 .bss @3617 */ static u8 lit_3617[12]; /* 80D5DDDC-80D5DDE4 000014 0008+00 1/1 0/0 0/0 .bss l_HIO */ -static u8 l_HIO[8]; +static daTagPoFire_HIO_c l_HIO; -/* 80D5DD0C-80D5DD48 00032C 003C+00 0/0 1/0 0/0 .text __sinit_d_a_tag_poFire_cpp */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __sinit_d_a_tag_poFire_cpp() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_poFire/d_a_tag_poFire/__sinit_d_a_tag_poFire_cpp.s" -} -#pragma pop +/* 80D5DD5C-80D5DD7C -00001 0020+00 1/0 0/0 0/0 .data l_daTagPoFire_Method */ +static actor_method_class l_daTagPoFire_Method = { + (process_method_func)daTagPoFire_Create, (process_method_func)daTagPoFire_Delete, + (process_method_func)daTagPoFire_Execute, (process_method_func)NULL, + (process_method_func)daTagPoFire_Draw, +}; -#pragma push -#pragma force_active on -REGISTER_CTORS(0x80D5DD0C, __sinit_d_a_tag_poFire_cpp); -#pragma pop +/* 80D5DD7C-80D5DDAC -00001 0030+00 0/0 0/0 1/0 .data g_profile_Tag_poFire */ +extern actor_process_profile_definition g_profile_Tag_poFire = { + -3, // mLayerID + 7, // mListID + -3, // mListPrio + PROC_Tag_poFire, // mProcName + 0, // Padding + &g_fpcLf_Method.mBase, // mSubMtd + sizeof(daTagPoFire_c), // mSize + 0, // mSizeOther + 0, // mParameters + &g_fopAc_Method.base, // mSubMtd + 0x0289, // mPriority + 0, // Padding + 0, // Padding + &l_daTagPoFire_Method, // mSubMtd + 0x00044000, // mStatus + 0, // mActorType + 14, // mCullType + 0, // Padding + 0, // Padding +};