From 5d470c18ecbef61f02cc1e4b8850e834f76708ae Mon Sep 17 00:00:00 2001 From: TakaRikka Date: Thu, 6 Jul 2023 16:30:11 -0700 Subject: [PATCH 1/3] d_a_kytag10 almost done --- include/JSystem/JGeometry.h | 21 ++ include/JSystem/JParticle/JPAParticle.h | 7 + .../rel/d/a/kytag/d_a_kytag10/d_a_kytag10.h | 18 +- rel/d/a/kytag/d_a_kytag10/d_a_kytag10.cpp | 322 ++++++++++++------ rel/d/a/tag/d_a_tag_mstop/d_a_tag_mstop.cpp | 148 ++++---- 5 files changed, 336 insertions(+), 180 deletions(-) diff --git a/include/JSystem/JGeometry.h b/include/JSystem/JGeometry.h index e01e72614a..dd984bcc85 100644 --- a/include/JSystem/JGeometry.h +++ b/include/JSystem/JGeometry.h @@ -31,12 +31,33 @@ struct TVec3 { } }; +inline void setTVec3f(const f32* vec_a, f32* vec_b) { + const register f32* v_a = vec_a; + register f32* v_b = vec_b; + + register f32 a_x; + register f32 b_x; + + asm { + psq_l a_x, 0(v_a), 0, 0 /* qr0 */ + lfs b_x, 8(v_a) + psq_st a_x, 0(v_b), 0, 0 /* qr0 */ + stfs b_x, 8(v_b) + }; +} + template <> struct TVec3 { f32 x; f32 y; f32 z; + /* TVec3(const Vec& i_vec) { + setTVec3f(&i_vec.x, &x); + } */ + + /* TVec3() {} */ + operator Vec*() { return (Vec*)&x; } operator const Vec*() const { return (Vec*)&x; } diff --git a/include/JSystem/JParticle/JPAParticle.h b/include/JSystem/JParticle/JPAParticle.h index 3448720ae0..ed4fe9142a 100644 --- a/include/JSystem/JParticle/JPAParticle.h +++ b/include/JSystem/JParticle/JPAParticle.h @@ -250,6 +250,13 @@ public: void setGlobalRTMatrix(const Mtx m) { JPASetRMtxTVecfromMtx(m, mGlobalRot, &mGlobalTrs); } void setGlobalTranslation(f32 x, f32 y, f32 z) { mGlobalTrs.set(x, y, z); } void setGlobalAlpha(u8 alpha) { mGlobalPrmClr.a = alpha; } + void setVolumeSize(u16 size) { mVolumeSize = size; } + void setLifeTime(s16 lifetime) { mLifeTime = lifetime; } + + void setGlobalParticleScale(const JGeometry::TVec3& scale) { + mGlobalPScl.set(scale.x, scale.y); + } + // void setGlobalScale(const JGeometry::TVec3& scale) { // mGlobalScl = scale; // mGlobalPScl = scale; diff --git a/include/rel/d/a/kytag/d_a_kytag10/d_a_kytag10.h b/include/rel/d/a/kytag/d_a_kytag10/d_a_kytag10.h index 2fde93b7be..8ac6b3cf82 100644 --- a/include/rel/d/a/kytag/d_a_kytag10/d_a_kytag10.h +++ b/include/rel/d/a/kytag/d_a_kytag10/d_a_kytag10.h @@ -1,6 +1,22 @@ #ifndef D_A_KYTAG10_H #define D_A_KYTAG10_H -#include "dolphin/types.h" +#include "f_op/f_op_actor_mng.h" + +struct dPath; + +class kytag10_class : public fopAc_ac_c { +public: + /* 0x568 */ dPath* mpPath; + /* 0x56C */ JPABaseEmitter* mpEmitter1; + /* 0x570 */ JPABaseEmitter* mpEmitter2; + /* 0x574 */ cXyz mEmitterPtclScale; + /* 0x580 */ s16 mEmitterVolSize; + /* 0x582 */ s16 mEmitterLifeTime; + /* 0x584 */ u8 field_0x584; + /* 0x588 */ cXyz field_0x588; + /* 0x594 */ f32 field_0x594; + /* 0x598 */ int mPathPoint; +}; #endif /* D_A_KYTAG10_H */ diff --git a/rel/d/a/kytag/d_a_kytag10/d_a_kytag10.cpp b/rel/d/a/kytag/d_a_kytag10/d_a_kytag10.cpp index dab2be8bac..a5a229cbf7 100644 --- a/rel/d/a/kytag/d_a_kytag10/d_a_kytag10.cpp +++ b/rel/d/a/kytag/d_a_kytag10/d_a_kytag10.cpp @@ -1,43 +1,17 @@ -// -// Generated By: dol2asm -// Translation Unit: d_a_kytag10 -// +/** + * d_a_kytag10.cpp + * Sparks Particle Emitter on a Path + */ #include "rel/d/a/kytag/d_a_kytag10/d_a_kytag10.h" +#include "JSystem/JKernel/JKRHeap.h" +#include "JSystem/JMath/JMath.h" +#include "SSystem/SComponent/c_math.h" +#include "d/com/d_com_inf_game.h" +#include "d/d_path.h" +#include "d/d_procname.h" +#include "d/kankyo/d_kankyo_rain.h" #include "dol2asm.h" -#include "dolphin/types.h" - -// -// Types: -// - -struct kytag10_class {}; - -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); -}; - -struct dPath {}; - -struct dPa_levelEcallBack {}; - -struct dKy_tevstr_c {}; - -struct csXyz {}; - -struct _GXColor {}; - -struct cXyz {}; - -struct dPa_control_c { - /* 8004CA90 */ void set(u8, u16, cXyz const*, dKy_tevstr_c const*, csXyz const*, cXyz const*, - u8, dPa_levelEcallBack*, s8, _GXColor const*, _GXColor const*, - cXyz const*, f32); -}; - -struct JPABaseEmitter { - /* 8027EC60 */ void deleteAllParticle(); -}; // // Forward References: @@ -53,7 +27,6 @@ extern "C" static void daKytag10_Execute__FP13kytag10_class(); extern "C" static bool daKytag10_IsDelete__FP13kytag10_class(); extern "C" static void daKytag10_Delete__FP13kytag10_class(); extern "C" static void daKytag10_Create__FP10fopAc_ac_c(); -extern "C" extern void* g_profile_KYTAG10[12]; // // External References: @@ -66,16 +39,10 @@ extern "C" void dPath_GetRoomPath__Fii(); extern "C" void dKyr_get_vectle_calc__FP4cXyzP4cXyzP4cXyz(); extern "C" void cM_atan2s__Fff(); extern "C" void deleteAllParticle__14JPABaseEmitterFv(); -extern "C" void PSVECSquareDistance(); extern "C" void _savegpr_27(); extern "C" void _savegpr_29(); extern "C" void _restgpr_27(); extern "C" void _restgpr_29(); -extern "C" extern void* g_fopAc_Method[8]; -extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; -extern "C" extern u8 g_env_light[4880]; -extern "C" extern u32 __float_nan; // // Declarations: @@ -93,49 +60,74 @@ COMPILER_STRIP_GATE(0x80529400, &lit_3788); /* 80528BF8-80528D0C 000078 0114+00 1/1 0/0 0/0 .text get_rail_ratio_pos__FP5dPathifPsPs */ +// matches with literals +#ifdef NONMATCHING +static cXyz get_rail_ratio_pos(dPath* i_path, int i_pointIdx, f32 param_2, s16* param_3, + s16* param_4) { + cXyz point_a; + cXyz point_b; + cXyz ret; + cXyz calc_vec; + + point_a.x = i_path->m_points[i_pointIdx].m_position.x; + point_a.y = i_path->m_points[i_pointIdx].m_position.y; + point_a.z = i_path->m_points[i_pointIdx].m_position.z; + + point_b.x = i_path->m_points[i_pointIdx + 1].m_position.x; + point_b.y = i_path->m_points[i_pointIdx + 1].m_position.y; + point_b.z = i_path->m_points[i_pointIdx + 1].m_position.z; + + ret.x = point_a.x + param_2 * (point_b.x - point_a.x); + ret.y = point_a.y + param_2 * (point_b.y - point_a.y); + ret.z = point_a.z + param_2 * (point_b.z - point_a.z); + + dKyr_get_vectle_calc(&point_a, &point_b, &calc_vec); + + *param_3 = + cM_atan2s(JMAFastSqrt(calc_vec.x * calc_vec.x + calc_vec.z * calc_vec.z), calc_vec.y); + *param_4 = cM_atan2s(calc_vec.x, calc_vec.z); + + return ret; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void get_rail_ratio_pos(dPath* param_0, int param_1, f32 param_2, s16* param_3, +static asm cXyz get_rail_ratio_pos(dPath* param_0, int param_1, f32 param_2, s16* param_3, s16* param_4) { nofralloc #include "asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/get_rail_ratio_pos__FP5dPathifPsPs.s" } #pragma pop +#endif /* 80528D0C-80528D54 00018C 0048+00 1/1 0/0 0/0 .text set_path_info__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void set_path_info(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/set_path_info__FP10fopAc_ac_c.s" +static dPath* set_path_info(fopAc_ac_c* i_actor) { + dPath* path_p = NULL; + u8 path_id = fopAcM_GetParam(i_actor) >> 0x10; + + if (path_id != 0xFF) { + path_p = dPath_GetRoomPath(path_id, fopAcM_GetRoomNo(i_actor)); + } + + return path_p; } -#pragma pop /* 80528D54-80528D64 0001D4 0010+00 1/1 0/0 0/0 .text * get_Extent_pos_start_get__FP13kytag10_classP5dPathP4cXyzfPi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void get_Extent_pos_start_get(kytag10_class* param_0, dPath* param_1, cXyz* param_2, - f32 param_3, int* param_4) { - nofralloc -#include "asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/get_Extent_pos_start_get__FP13kytag10_classP5dPathP4cXyzfPi.s" +static dPath* get_Extent_pos_start_get(kytag10_class* i_this, dPath* i_path, cXyz*, f32, + int* param_4) { + *param_4 = 0; + return i_path; } -#pragma pop /* 80528D64-80528D78 0001E4 0014+00 1/1 0/0 0/0 .text * get_Extent_pos_end_get__FP13kytag10_classP5dPathP4cXyzfPi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void get_Extent_pos_end_get(kytag10_class* param_0, dPath* param_1, cXyz* param_2, - f32 param_3, int* param_4) { - nofralloc -#include "asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/get_Extent_pos_end_get__FP13kytag10_classP5dPathP4cXyzfPi.s" +static dPath* get_Extent_pos_end_get(kytag10_class* param_0, dPath* i_path, cXyz*, f32, + int* param_4) { + *param_4 = i_path->m_num - 1; + return i_path; } -#pragma pop /* ############################################################################################## */ /* 80529404-80529408 000004 0004+00 0/1 0/0 0/0 .rodata @3950 */ @@ -218,6 +210,72 @@ COMPILER_STRIP_GATE(0x80529438, &lit_3959); #pragma pop /* 80528D78-80529148 0001F8 03D0+00 1/1 0/0 0/0 .text sparks_move__FP13kytag10_class */ +// TVec3 constructors need to be setup +#ifdef NONMATCHING +static void sparks_move(kytag10_class* i_this) { + camera_class* camera_p = dComIfGp_getCamera(0); + + cXyz ratio_pos_1; + cXyz ratio_pos_2; + cXyz ratio_pos_5; + cXyz ratio_pos_3; + cXyz ratio_pos_4; + + dPath* path_p = i_this->mpPath; + + if (path_p != NULL) { + int start_point_idx; + dPath* path_start = get_Extent_pos_start_get(i_this, path_p, &camera_p->mLookat.mEye, + 1000.0f, &start_point_idx); + + int end_point_idx; + dPath* path_end = get_Extent_pos_end_get(i_this, path_p, &camera_p->mLookat.mEye, 1000.0f, + &end_point_idx); + + s16 spD6; + s16 spD8; + ratio_pos_1 = get_rail_ratio_pos(path_start, 0, 0.0f, &spD6, &spD8); + ratio_pos_2 = get_rail_ratio_pos(path_end, end_point_idx - 1, 1.0f, &spD6, &spD8); + ratio_pos_3 = get_rail_ratio_pos(path_start, i_this->mPathPoint, 0.0f, &spD6, &spD8); + ratio_pos_4 = get_rail_ratio_pos(path_start, i_this->mPathPoint, 1.0f, &spD6, &spD8); + + f32 temp_f = 250.0f / ratio_pos_3.abs(ratio_pos_4); + + ratio_pos_5 = + get_rail_ratio_pos(path_start, i_this->mPathPoint, i_this->field_0x594, &spD6, &spD8); + i_this->field_0x588 = ratio_pos_5; + + i_this->mpEmitter1->setGlobalTranslation(ratio_pos_5.x, ratio_pos_5.y, ratio_pos_5.z); + i_this->mpEmitter2->setGlobalTranslation(ratio_pos_5.x, ratio_pos_5.y, ratio_pos_5.z); + + i_this->mpEmitter1->setVolumeSize(i_this->mEmitterVolSize); + i_this->mpEmitter1->setLifeTime(i_this->mEmitterLifeTime); + + i_this->mpEmitter2->setVolumeSize(i_this->mEmitterVolSize); + i_this->mpEmitter2->setLifeTime(i_this->mEmitterLifeTime); + + i_this->mpEmitter1->setGlobalParticleScale(i_this->mEmitterPtclScale); + i_this->mpEmitter2->setGlobalParticleScale(i_this->mEmitterPtclScale); + + if (i_this->field_0x584 != 0xFF) { + f32 rate = i_this->field_0x584 / 100.0f; + i_this->mpEmitter1->setRate(rate); + i_this->mpEmitter2->setRate(rate); + } + + if (i_this->field_0x594 <= 1.0f - (250.0f * temp_f)) { + i_this->field_0x594 += temp_f; + return; + } else if (i_this->mPathPoint >= end_point_idx - 1) { + i_this->mPathPoint = start_point_idx; + } else { + i_this->mPathPoint++; + } + + i_this->field_0x594 = 0.0f; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -226,38 +284,48 @@ static asm void sparks_move(kytag10_class* param_0) { #include "asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/sparks_move__FP13kytag10_class.s" } #pragma pop +#endif /* 80529148-80529150 0005C8 0008+00 1/0 0/0 0/0 .text daKytag10_Draw__FP13kytag10_class */ -static bool daKytag10_Draw(kytag10_class* param_0) { - return true; +static int daKytag10_Draw(kytag10_class* i_this) { + return 1; } /* 80529150-80529174 0005D0 0024+00 1/0 0/0 0/0 .text daKytag10_Execute__FP13kytag10_class */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daKytag10_Execute(kytag10_class* param_0) { - nofralloc -#include "asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/daKytag10_Execute__FP13kytag10_class.s" +static int daKytag10_Execute(kytag10_class* i_this) { + sparks_move(i_this); + return 1; } -#pragma pop /* 80529174-8052917C 0005F4 0008+00 1/0 0/0 0/0 .text daKytag10_IsDelete__FP13kytag10_class */ -static bool daKytag10_IsDelete(kytag10_class* param_0) { - return true; +static int daKytag10_IsDelete(kytag10_class* i_this) { + return 1; } /* 8052917C-80529248 0005FC 00CC+00 1/0 0/0 0/0 .text daKytag10_Delete__FP13kytag10_class */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daKytag10_Delete(kytag10_class* param_0) { - nofralloc -#include "asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/daKytag10_Delete__FP13kytag10_class.s" +static int daKytag10_Delete(kytag10_class* i_this) { + g_env_light.field_0xf21 = 0; + + if (i_this->mpEmitter1 != NULL) { + i_this->mpEmitter1->deleteAllParticle(); + i_this->mpEmitter1->becomeInvalidEmitter(); + i_this->mpEmitter1->quitImmortalEmitter(); + i_this->mpEmitter1->setEmitterCallBackPtr(NULL); + i_this->mpEmitter1 = NULL; + } + + if (i_this->mpEmitter2 != NULL) { + i_this->mpEmitter2->deleteAllParticle(); + i_this->mpEmitter2->becomeInvalidEmitter(); + i_this->mpEmitter2->quitImmortalEmitter(); + i_this->mpEmitter2->setEmitterCallBackPtr(NULL); + i_this->mpEmitter2 = NULL; + } + + return 1; } -#pragma pop /* ############################################################################################## */ /* 80529440-80529444 000040 0004+00 0/0 0/0 0/0 .rodata @3971 */ @@ -275,34 +343,82 @@ COMPILER_STRIP_GATE(0x80529444, &lit_4058); #pragma pop /* 80529248-805293F8 0006C8 01B0+00 1/0 0/0 0/0 .text daKytag10_Create__FP10fopAc_ac_c */ +// matches with literals +#ifdef NONMATCHING +static int daKytag10_Create(fopAc_ac_c* i_this) { + if (!fopAcM_CheckCondition(i_this, 8)) { + new (i_this) kytag10_class(); + fopAcM_OnCondition(i_this, 8); + } + + u8 prm0 = fopAcM_GetParam(i_this); + if (prm0 == 0xFF) { + prm0 = 10; + } + + ((kytag10_class*)i_this)->mEmitterPtclScale.z = prm0 * 0.1f; + ((kytag10_class*)i_this)->mEmitterPtclScale.y = prm0 * 0.1f; + ((kytag10_class*)i_this)->mEmitterPtclScale.x = prm0 * 0.1f; + + s16 prm1 = (fopAcM_GetParam(i_this) >> 8) & 0xFF; + if (prm1 == 0xFF) { + prm1 = 0; + } + + ((kytag10_class*)i_this)->mEmitterVolSize = prm1 * 10; + + s16 prm3 = (fopAcM_GetParam(i_this) >> 0x18) & 0xFF; + if (prm3 == 0xFF) { + prm3 = 15; + } + + ((kytag10_class*)i_this)->mEmitterLifeTime = prm3 * 10; + ((kytag10_class*)i_this)->field_0x584 = i_this->current.angle.x & 0xFF; + ((kytag10_class*)i_this)->mpEmitter1 = NULL; + ((kytag10_class*)i_this)->mpEmitter2 = NULL; + ((kytag10_class*)i_this)->field_0x594 = 0.0f; + ((kytag10_class*)i_this)->mPathPoint = 0; + ((kytag10_class*)i_this)->mpPath = set_path_info(i_this); + ((kytag10_class*)i_this)->mpEmitter1 = + dComIfGp_particle_set(0x852B, &i_this->current.pos, NULL, NULL); + ((kytag10_class*)i_this)->mpEmitter2 = + dComIfGp_particle_set(0x852C, &i_this->current.pos, NULL, NULL); + + return cPhs_COMPLEATE_e; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void daKytag10_Create(fopAc_ac_c* param_0) { +static asm int daKytag10_Create(fopAc_ac_c* param_0) { nofralloc #include "asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/daKytag10_Create__FP10fopAc_ac_c.s" } #pragma pop +#endif /* ############################################################################################## */ /* 80529448-80529468 -00001 0020+00 1/0 0/0 0/0 .data l_daKytag10_Method */ -SECTION_DATA static void* l_daKytag10_Method[8] = { - (void*)daKytag10_Create__FP10fopAc_ac_c, - (void*)daKytag10_Delete__FP13kytag10_class, - (void*)daKytag10_Execute__FP13kytag10_class, - (void*)daKytag10_IsDelete__FP13kytag10_class, - (void*)daKytag10_Draw__FP13kytag10_class, - (void*)NULL, - (void*)NULL, - (void*)NULL, +static actor_method_class l_daKytag10_Method = { + (process_method_func)daKytag10_Create, (process_method_func)daKytag10_Delete, + (process_method_func)daKytag10_Execute, (process_method_func)daKytag10_IsDelete, + (process_method_func)daKytag10_Draw, }; /* 80529468-80529498 -00001 0030+00 0/0 0/0 1/0 .data g_profile_KYTAG10 */ -SECTION_DATA extern void* g_profile_KYTAG10[12] = { - (void*)0xFFFFFFFD, (void*)0x0007FFFD, - (void*)0x02B40000, (void*)&g_fpcLf_Method, - (void*)0x0000059C, (void*)NULL, - (void*)NULL, (void*)&g_fopAc_Method, - (void*)0x00680000, (void*)&l_daKytag10_Method, - (void*)0x00044000, (void*)NULL, +extern actor_process_profile_definition g_profile_KYTAG10 = { + -3, + 7, + -3, + PROC_KYTAG10, + &g_fpcLf_Method.mBase, + sizeof(kytag10_class), + 0, + 0, + &g_fopAc_Method.base, + 104, + &l_daKytag10_Method, + 0x44000, + 0, + 0, }; diff --git a/rel/d/a/tag/d_a_tag_mstop/d_a_tag_mstop.cpp b/rel/d/a/tag/d_a_tag_mstop/d_a_tag_mstop.cpp index 8f49916715..b38b7b3783 100644 --- a/rel/d/a/tag/d_a_tag_mstop/d_a_tag_mstop.cpp +++ b/rel/d/a/tag/d_a_tag_mstop/d_a_tag_mstop.cpp @@ -200,91 +200,87 @@ COMPILER_STRIP_GATE(0x805A6980, &lit_4059); #pragma pop /* 805A63F8-805A693C 000338 0544+00 1/1 0/0 0/0 .text execute__12daTagMstop_cFv */ +// one small block with issues #ifdef NONMATCHING -// inline function nightmare int daTagMstop_c::execute() { if (field_0x56c) { fopAcM_seStartCurrentLevel(this, Z2SE_OBJ_DARK_GATE, 0); } - daMidna_c* midna = daPy_py_c::getMidnaActor(); + daMidna_c* midna_p = daPy_py_c::getMidnaActor(); - if (!midna) { + if (midna_p == NULL) { return 1; - } else { - daAlink_c* link = (daAlink_c*)daPy_getLinkPlayerActorClass(); - - if (checkNoAttention()) { - mAttentionInfo.mPosition = midna->mAttentionInfo.mPosition; - shape_angle.y = midna->shape_angle.y; - mEyePos = midna->mAttentionInfo.mPosition; - - } else { - shape_angle.y = fopAcM_searchPlayerAngleY(this); - } - - if (field_0x56e == 4) { - if (field_0x5c8.abs2(link->current.pos) < 2500.0f) { - i_dComIfGp_event_reset(); - link->i_cancelOriginalDemo(); - field_0x56e = 0; - } - } else if (field_0x56e == 3) { - if (link->checkHorseRide()) { - link->setPlayerPosAndAngle(&field_0x5c8, link->shape_angle.y, 0); - i_dComIfGp_event_reset(); - field_0x56e = 0; - } else { - field_0x56e = 4; - link->i_changeOriginalDemo(); - - field_0x56a == 0 ? link->i_changeDemoMode(3, 0, 0, 0) : - link->i_changeDemoMode(2, 0, 0, 0); - link->i_changeDemoPos0(&field_0x5c8); - } - } else if (mEvtInfo.checkCommandTalk()) { - if (field_0x56e == 2) { - int shadowmode = midna->checkShadowModelDraw(); - if (midna->checkShadowReturnEnd()) { - i_dComIfGp_getEvent().reset(this); - fopAcM_orderPotentialEvent(this, 0x400, 0x14f, 1); - field_0x56e = 3; - } else if (shadowmode == 0) { - return 1; - } - } - } else if (mSwitch != 0xFF || i_fopAcM_isSwitch(this, mSwitch) && field_0x572 == -1 || - dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[field_0x572])) - { - fopAcM_delete(this); - - } else if (field_0x568 == 0xFF || - i_fopAcM_isSwitch(this, field_0x568) && field_0x570 == -1 || - dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[field_0x572]) && - current.pos.y <= link->current.pos.y && link->current.pos.y <= field_0x5c4 && - fopAcM_searchPlayerDistanceXZ2(this) < field_0x5c0) - { - eventOrder(); - - } else { - if (midna->checkShadowModeTalkWait()) { - if (field_0x56e == 0) { - mMsgFlow.init(this, shape_angle.z, 0, 0); - mDoAud_seStart(16, 0, 0, 0); - field_0x56e = 1; - } else { - if (mMsgFlow.doFlow(this, 0, 0)) { - field_0x56e = 2; - mDoAud_seStart(17, 0, 0, 0); - - if (midna->checkShadowModelDraw()) { - midna->setShadowReturn(); - } - } - } - } - } } + + daPy_py_c* player_p = daPy_getLinkPlayerActorClass(); + + if (checkNoAttention()) { + mAttentionInfo.mPosition = midna_p->mAttentionInfo.mPosition; + shape_angle.y = midna_p->shape_angle.y; + mEyePos = mAttentionInfo.mPosition; + } else { + shape_angle.y = fopAcM_searchPlayerAngleY(this); + } + + if (field_0x56e == 4) { + if (field_0x5c8.abs2(player_p->current.pos) < 2500.0f) { + i_dComIfGp_event_reset(); + player_p->i_cancelOriginalDemo(); + field_0x56e = 0; + } + } else if (field_0x56e == 3) { + if (player_p->checkHorseRide()) { + player_p->setPlayerPosAndAngle(&field_0x5c8, player_p->shape_angle.y, 0); + i_dComIfGp_event_reset(); + field_0x56e = 0; + } else { + field_0x56e = 4; + player_p->i_changeOriginalDemo(); + field_0x56a == 0 ? player_p->i_changeDemoMode(3, 0, 0, 0) : + player_p->i_changeDemoMode(2, 0, 0, 0); + + player_p->i_changeDemoPos0(&field_0x5c8); + } + } else if (mEvtInfo.checkCommandTalk()) { + if (field_0x56e == 2) { + if (!midna_p->checkShadowModelDraw() || midna_p->checkShadowReturnEnd()) { + i_dComIfGp_getEvent().reset(this); + fopAcM_orderPotentialEvent(this, 0x400, 0x14f, 1); + field_0x56e = 3; + } + } else if (!midna_p->checkShadowModeTalkWait()) { + if (field_0x56e == 0) { + mMsgFlow.init(this, (u16)shape_angle.z, 0, 0); + mDoAud_seStart(Z2SE_NAVI_TALK_START, 0, 0, 0); + field_0x56e = 1; + } else if (mMsgFlow.doFlow(this, 0, 0)) { + field_0x56e = 2; + mDoAud_seStart(Z2SE_NAVI_TALK_END, 0, 0, 0); + + if (midna_p->checkShadowModelDraw()) { + midna_p->setShadowReturn(); + } + } + } + } else if ((mSwitch != 0xFF && i_fopAcM_isSwitch(this, mSwitch)) || + (field_0x572 != 0xFFFF && + i_dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[field_0x572]))) + { + fopAcM_delete(this); + return 1; + } else if ((field_0x568 != 0xFF && !i_fopAcM_isSwitch(this, field_0x568)) || + (field_0x570 != 0xFFFF && + !i_dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[field_0x570]))) + { + return 1; + } else if (current.pos.y <= player_p->current.pos.y && field_0x5c4 >= player_p->current.pos.y && + fopAcM_searchPlayerDistanceXZ2(this) < field_0x5c0) + { + eventOrder(); + } + + return 1; } #else #pragma push From 8084a49a6e7b1abd3d00df988499ff090c293056 Mon Sep 17 00:00:00 2001 From: TakaRikka Date: Fri, 7 Jul 2023 01:16:47 -0700 Subject: [PATCH 2/3] d_a_warp_bug OK --- include/JSystem/J3DGraphBase/J3DMaterial.h | 1 + include/d/a/d_a_player.h | 2 + include/d/com/d_com_inf_game.h | 5 + include/d/d_drawlist.h | 2 + include/rel/d/a/d_a_warp_bug/d_a_warp_bug.h | 21 +- rel/d/a/d_a_scene_exit/d_a_scene_exit.cpp | 1 + rel/d/a/d_a_warp_bug/d_a_warp_bug.cpp | 356 +++++++++----------- 7 files changed, 192 insertions(+), 196 deletions(-) diff --git a/include/JSystem/J3DGraphBase/J3DMaterial.h b/include/JSystem/J3DGraphBase/J3DMaterial.h index d3696d5a78..4ad02396d4 100644 --- a/include/JSystem/J3DGraphBase/J3DMaterial.h +++ b/include/JSystem/J3DGraphBase/J3DMaterial.h @@ -63,6 +63,7 @@ public: J3DNBTScale* getNBTScale() const { return mTexGenBlock->getNBTScale(); } u32 getTexNo(u32 idx) const { return mTevBlock->getTexNo(idx); } GXColor* getTevKColor(u32 param_0) { return mTevBlock->getTevKColor(param_0); } + GXColorS10* getTevColor(u32 param_0) { return mTevBlock->getTevColor(param_0); } J3DFog* getFog() { return mPEBlock->getFog(); } J3DTexMtx* getTexMtx(u32 idx) { return mTexGenBlock->getTexMtx(idx); } u16 getIndex() { return mIndex; } diff --git a/include/d/a/d_a_player.h b/include/d/a/d_a_player.h index 2bb875205d..33d9d27b72 100644 --- a/include/d/a/d_a_player.h +++ b/include/d/a/d_a_player.h @@ -722,6 +722,8 @@ public: s16 getBodyAngleX() const { return mBodyAngle.x; } s16 getBodyAngleY() const { return mBodyAngle.y; } + BOOL checkMidnaWarp() const { return 0; } + // some functions use these function as an inline // is there a better way to handle this? int i_checkNoResetFlg0(daPy_FLG0 pFlag) const { return mNoResetFlg0 & pFlag; } diff --git a/include/d/com/d_com_inf_game.h b/include/d/com/d_com_inf_game.h index 237c15af9a..eb21ea5267 100644 --- a/include/d/com/d_com_inf_game.h +++ b/include/d/com/d_com_inf_game.h @@ -3372,6 +3372,11 @@ inline void dComIfGd_setListDark() { g_dComIfG_gameInfo.drawlist.setXluListDark(); } +inline void dComIfGd_setListDarkBG() { + g_dComIfG_gameInfo.drawlist.setOpaListDarkBG(); + g_dComIfG_gameInfo.drawlist.setXluListDarkBG(); +} + inline void dComIfGd_setList() { g_dComIfG_gameInfo.drawlist.setOpaList(); g_dComIfG_gameInfo.drawlist.setXluList(); diff --git a/include/d/d_drawlist.h b/include/d/d_drawlist.h index bfef45fd5f..5a67a9181c 100644 --- a/include/d/d_drawlist.h +++ b/include/d/d_drawlist.h @@ -315,6 +315,8 @@ public: void setOpaListSky() { setOpaDrawList(mDrawBuffers[DB_OPA_LIST_SKY]); } void setXluListDark() { setXluDrawList(mDrawBuffers[DB_XLU_LIST_DARK]); } void setOpaListDark() { setOpaDrawList(mDrawBuffers[DB_OPA_LIST_DARK]); } + void setXluListDarkBG() { setXluDrawList(mDrawBuffers[DB_XLU_LIST_DARK_BG]); } + void setOpaListDarkBG() { setOpaDrawList(mDrawBuffers[DB_OPA_LIST_DARK_BG]); } void setOpaList() { setOpaDrawList(mDrawBuffers[DB_OPA_LIST]); } void setXluList() { setXluDrawList(mDrawBuffers[DB_XLU_LIST]); } void setOpaListItem3D() { setOpaDrawList(mDrawBuffers[DB_OPA_LIST_ITEM3D]); } diff --git a/include/rel/d/a/d_a_warp_bug/d_a_warp_bug.h b/include/rel/d/a/d_a_warp_bug/d_a_warp_bug.h index ada17256c3..451d2a88ea 100644 --- a/include/rel/d/a/d_a_warp_bug/d_a_warp_bug.h +++ b/include/rel/d/a/d_a_warp_bug/d_a_warp_bug.h @@ -1,6 +1,25 @@ #ifndef D_A_WARP_BUG_H #define D_A_WARP_BUG_H -#include "dolphin/types.h" +#include "f_op/f_op_actor_mng.h" + +class daWarpBug_c : public fopAc_ac_c { +public: + inline ~daWarpBug_c(); + + /* 80D67E38 */ void create_init(); + /* 80D68068 */ int draw(); + + inline int createHeap(); + inline int execute(); + inline int create(); + + /* 0x568 */ J3DModel* mpModel; + /* 0x56C */ mDoExt_brkAnm* mpBrk; + /* 0x570 */ mDoExt_btkAnm* mpBtk; + /* 0x574 */ request_of_phase_process_class mPhase; + /* 0x57C */ s16 field_0x57c; + /* 0x57E */ u8 field_0x57e; +}; #endif /* D_A_WARP_BUG_H */ diff --git a/rel/d/a/d_a_scene_exit/d_a_scene_exit.cpp b/rel/d/a/d_a_scene_exit/d_a_scene_exit.cpp index 12654ce323..0456688544 100644 --- a/rel/d/a/d_a_scene_exit/d_a_scene_exit.cpp +++ b/rel/d/a/d_a_scene_exit/d_a_scene_exit.cpp @@ -144,6 +144,7 @@ COMPILER_STRIP_GATE(0x80485CA8, &lit_3842); /* 80485A50-80485C90 000290 0240+00 1/1 0/0 0/0 .text execute__8daScex_cFv */ // regalloc +// this matches debug but not retail :/ #ifdef NONMATCHING int daScex_c::execute() { daPy_py_c* player = daPy_getPlayerActorClass(); diff --git a/rel/d/a/d_a_warp_bug/d_a_warp_bug.cpp b/rel/d/a/d_a_warp_bug/d_a_warp_bug.cpp index 0f45e7e530..98a348b4e0 100644 --- a/rel/d/a/d_a_warp_bug/d_a_warp_bug.cpp +++ b/rel/d/a/d_a_warp_bug/d_a_warp_bug.cpp @@ -1,229 +1,195 @@ -// -// Generated By: dol2asm -// Translation Unit: d_a_warp_bug -// +/** + * d_a_warp_bug.cpp + * + */ #include "rel/d/a/d_a_warp_bug/d_a_warp_bug.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Types: -// - -struct request_of_phase_process_class {}; - -struct mDoMtx_stack_c { - static u8 now[48]; -}; - -struct J3DMaterialTable {}; - -struct J3DAnmTextureSRTKey {}; - -struct mDoExt_btkAnm { - /* 8000D63C */ void init(J3DMaterialTable*, J3DAnmTextureSRTKey*, int, int, f32, s16, s16); -}; - -struct J3DAnmTevRegKey {}; - -struct mDoExt_brkAnm { - /* 8000D70C */ void init(J3DMaterialTable*, J3DAnmTevRegKey*, int, int, f32, s16, s16); -}; - -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); - /* 80018C8C */ ~fopAc_ac_c(); -}; - -struct daWarpBug_c { - /* 80D67E38 */ void create_init(); - /* 80D68068 */ void draw(); -}; - -struct dRes_info_c {}; - -struct dRes_control_c { - /* 8003C37C */ void getRes(char const*, char const*, dRes_info_c*, int); -}; - -struct J3DModelData {}; - -struct J3DFrameCtrl { - /* 803283FC */ void init(s16); - /* 80D68000 */ ~J3DFrameCtrl(); -}; - -// -// Forward References: -// - -extern "C" void create_init__11daWarpBug_cFv(); -extern "C" static void createSolidHeap__FP10fopAc_ac_c(); -extern "C" void __dt__12J3DFrameCtrlFv(); -extern "C" static void daWarpBug_Draw__FP11daWarpBug_c(); -extern "C" void draw__11daWarpBug_cFv(); -extern "C" static void daWarpBug_Execute__FP11daWarpBug_c(); -extern "C" static bool daWarpBug_IsDelete__FP11daWarpBug_c(); -extern "C" static void daWarpBug_Delete__FP11daWarpBug_c(); -extern "C" static void daWarpBug_Create__FP10fopAc_ac_c(); -extern "C" extern char const* const d_a_warp_bug__stringBase0; - -// -// External References: -// - -extern "C" void init__13mDoExt_btkAnmFP16J3DMaterialTableP19J3DAnmTextureSRTKeyiifss(); -extern "C" void init__13mDoExt_brkAnmFP16J3DMaterialTableP15J3DAnmTevRegKeyiifss(); -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 dComIfG_resLoad__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc(); -extern "C" void getRes__14dRes_control_cFPCcPCcP11dRes_info_ci(); -extern "C" void* __nw__FUl(); -extern "C" void __dl__FPv(); -extern "C" void init__12J3DFrameCtrlFs(); -extern "C" void PSMTXCopy(); -extern "C" void _savegpr_27(); -extern "C" void _restgpr_27(); -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" extern u8 g_dComIfG_gameInfo[122384]; - -// -// Declarations: -// +#include "JSystem/J3DGraphBase/J3DMaterial.h" +#include "JSystem/JKernel/JKRHeap.h" +#include "d/a/d_a_player.h" +#include "d/com/d_com_inf_game.h" +#include "d/d_procname.h" /* 80D67E38-80D67E3C 000078 0004+00 1/1 0/0 0/0 .text create_init__11daWarpBug_cFv */ -void daWarpBug_c::create_init() { - /* empty function */ -} - -/* ############################################################################################## */ -/* 80D681DC-80D681E0 000000 0004+00 1/1 0/0 0/0 .rodata @3709 */ -SECTION_RODATA static f32 const lit_3709 = 1.0f; -COMPILER_STRIP_GATE(0x80D681DC, &lit_3709); - -/* 80D681E0-80D681E0 000004 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80D681E0 = "WarpBug"; -SECTION_DEAD static char const* const stringBase_80D681E8 = "kisei.bmd"; -SECTION_DEAD static char const* const stringBase_80D681F2 = "kisei.brk"; -SECTION_DEAD static char const* const stringBase_80D681FC = "kisei.btk"; -#pragma pop +void daWarpBug_c::create_init() {} /* 80D68208-80D6820C -00001 0004+00 3/3 0/0 0/0 .data l_arcName */ -SECTION_DATA static void* l_arcName = (void*)&d_a_warp_bug__stringBase0; +static char* l_arcName = "WarpBug"; -/* 80D6820C-80D6822C -00001 0020+00 1/0 0/0 0/0 .data l_daWarpBug_Method */ -SECTION_DATA static void* l_daWarpBug_Method[8] = { - (void*)daWarpBug_Create__FP10fopAc_ac_c, - (void*)daWarpBug_Delete__FP11daWarpBug_c, - (void*)daWarpBug_Execute__FP11daWarpBug_c, - (void*)daWarpBug_IsDelete__FP11daWarpBug_c, - (void*)daWarpBug_Draw__FP11daWarpBug_c, - (void*)NULL, - (void*)NULL, - (void*)NULL, -}; +int daWarpBug_c::createHeap() { + J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "kisei.bmd"); + mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000284); -/* 80D6822C-80D6825C -00001 0030+00 0/0 0/0 1/0 .data g_profile_WarpBug */ -SECTION_DATA extern void* g_profile_WarpBug[12] = { - (void*)0xFFFFFFFD, (void*)0x0007FFFD, - (void*)0x01560000, (void*)&g_fpcLf_Method, - (void*)0x00000580, (void*)NULL, - (void*)NULL, (void*)&g_fopAc_Method, - (void*)0x02D60000, (void*)&l_daWarpBug_Method, - (void*)0x00040000, (void*)0x000E0000, -}; + J3DAnmTevRegKey* pbrk = (J3DAnmTevRegKey*)dComIfG_getObjectRes(l_arcName, "kisei.brk"); + J3DAnmTextureSRTKey* pbtk = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes(l_arcName, "kisei.btk"); -/* 80D6825C-80D68268 000054 000C+00 2/2 0/0 0/0 .data __vt__12J3DFrameCtrl */ -SECTION_DATA extern void* __vt__12J3DFrameCtrl[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__12J3DFrameCtrlFv, -}; + if (pbrk != NULL) { + mpBrk = new mDoExt_brkAnm(); + + if (!mpBrk->init(modelData, pbrk, TRUE, 2, 1.0f, 0, -1)) { + return 0; + } + } + + if (pbtk != NULL) { + mpBtk = new mDoExt_btkAnm(); + + if (!mpBtk->init(modelData, pbtk, TRUE, 2, 1.0f, 0, -1)) { + return 0; + } + } + + if (mpModel == NULL) { + return 0; + } + + return 1; +} /* 80D67E3C-80D68000 00007C 01C4+00 1/1 0/0 0/0 .text createSolidHeap__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void createSolidHeap(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/createSolidHeap__FP10fopAc_ac_c.s" +static int createSolidHeap(fopAc_ac_c* i_this) { + return static_cast(i_this)->createHeap(); } -#pragma pop - -/* 80D68000-80D68048 000240 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm J3DFrameCtrl::~J3DFrameCtrl() { - nofralloc -#include "asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/__dt__12J3DFrameCtrlFv.s" -} -#pragma pop /* 80D68048-80D68068 000288 0020+00 1/0 0/0 0/0 .text daWarpBug_Draw__FP11daWarpBug_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daWarpBug_Draw(daWarpBug_c* param_0) { - nofralloc -#include "asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/daWarpBug_Draw__FP11daWarpBug_c.s" +static int daWarpBug_Draw(daWarpBug_c* i_this) { + return i_this->draw(); } -#pragma pop /* 80D68068-80D68078 0002A8 0010+00 1/1 0/0 0/0 .text draw__11daWarpBug_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daWarpBug_c::draw() { - nofralloc -#include "asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/draw__11daWarpBug_cFv.s" +int daWarpBug_c::draw() { +#ifdef DEBUG + daPy_py_c* player_p = (daPy_py_c*)dComIfGp_getPlayer(0); + if (!player_p->checkMidnaWarp()) { +#endif + + field_0x57c = 0; + return 1; + +#ifdef DEBUG + } + + cLib_chaseS(&field_0x57c, 255, 25); + g_env_light.settingTevStruct(0x10, ¤t.pos, &mTevStr); + g_env_light.setLightTevColorType_MAJI(mpModel, &mTevStr); + + J3DModelData* modelData = mpModel->getModelData(); + for (u16 i = 0; i < modelData->getMaterialNum(); i++) { + GXColorS10* color = modelData->getMaterialNodePointer(i)->getTevColor(1); + + if (field_0x57e != 0) { + color->r = 0; + color->g = 255; + color->b = 0; + } else { + color->r = 250; + color->g = 50; + color->b = 50; + } + + color->a = field_0x57c; + } + + if (field_0x57e != 0) { + field_0x57e = 0; + } + + dComIfGd_setListDarkBG(); + mpBrk->entry(modelData); + mpBtk->entry(modelData); + mDoExt_modelUpdateDL(mpModel); + dComIfGd_setList(); + + return 1; +#endif +} + +int daWarpBug_c::execute() { +#ifdef DEBUG + daPy_py_c* player_p = (daPy_py_c*)dComIfGp_getPlayer(0); +#endif + + mDoMtx_stack_c::copy(mpModel->getBaseTRMtx()); + mDoMtx_stack_c::multVecZero(¤t.pos); + +#ifdef DEBUG + if (player_p->checkMidnaWarp()) { + mpBrk->play(); + mpBtk->play(); + Z2GetAudioMgr()->mSeMgr.seStartLevel(Z2SE_EN_YM_WAIT, ¤t.pos, NULL, 0, 1.0f, 1.0f, + -1.0f, -1.0f, 0); + } +#endif + return 1; } -#pragma pop /* 80D68078-80D680D8 0002B8 0060+00 1/0 0/0 0/0 .text daWarpBug_Execute__FP11daWarpBug_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daWarpBug_Execute(daWarpBug_c* param_0) { - nofralloc -#include "asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/daWarpBug_Execute__FP11daWarpBug_c.s" +static int daWarpBug_Execute(daWarpBug_c* i_this) { + return i_this->execute(); } -#pragma pop /* 80D680D8-80D680E0 000318 0008+00 1/0 0/0 0/0 .text daWarpBug_IsDelete__FP11daWarpBug_c */ -static bool daWarpBug_IsDelete(daWarpBug_c* param_0) { - return true; +static int daWarpBug_IsDelete(daWarpBug_c* i_this) { + return 1; +} + +daWarpBug_c::~daWarpBug_c() { + dComIfG_resDelete(&mPhase, l_arcName); } /* 80D680E0-80D68130 000320 0050+00 1/0 0/0 0/0 .text daWarpBug_Delete__FP11daWarpBug_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daWarpBug_Delete(daWarpBug_c* param_0) { - nofralloc -#include "asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/daWarpBug_Delete__FP11daWarpBug_c.s" +static int daWarpBug_Delete(daWarpBug_c* i_this) { + i_this->~daWarpBug_c(); + return 1; +} + +int daWarpBug_c::create() { + if (!fopAcM_CheckCondition(this, 8)) { + new (this) daWarpBug_c(); + fopAcM_OnCondition(this, 8); + } + + int phase = dComIfG_resLoad(&mPhase, l_arcName); + if (phase == cPhs_COMPLEATE_e) { + if (!fopAcM_entrySolidHeap(this, createSolidHeap, 0x4000)) { + return cPhs_ERROR_e; + } + + create_init(); + } + + return phase; } -#pragma pop /* 80D68130-80D681D4 000370 00A4+00 1/0 0/0 0/0 .text daWarpBug_Create__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daWarpBug_Create(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/daWarpBug_Create__FP10fopAc_ac_c.s" +static int daWarpBug_Create(fopAc_ac_c* i_this) { + return static_cast(i_this)->create(); } -#pragma pop -/* 80D681E0-80D681E0 000004 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ +/* 80D6820C-80D6822C -00001 0020+00 1/0 0/0 0/0 .data l_daWarpBug_Method */ +static actor_method_class l_daWarpBug_Method = { + (process_method_func)daWarpBug_Create, (process_method_func)daWarpBug_Delete, + (process_method_func)daWarpBug_Execute, (process_method_func)daWarpBug_IsDelete, + (process_method_func)daWarpBug_Draw, +}; + +/* 80D6822C-80D6825C -00001 0030+00 0/0 0/0 1/0 .data g_profile_WarpBug */ +extern actor_process_profile_definition g_profile_WarpBug = { + -3, + 7, + -3, + PROC_WarpBug, + &g_fpcLf_Method.mBase, + sizeof(daWarpBug_c), + 0, + 0, + &g_fopAc_Method.base, + 726, + &l_daWarpBug_Method, + 0x40000, + 0, + 14, +}; From 7d64db8480234de45e9c487aedca69df81c58152 Mon Sep 17 00:00:00 2001 From: TakaRikka Date: Fri, 7 Jul 2023 01:17:09 -0700 Subject: [PATCH 3/3] remove asm --- .../d_a_warp_bug/__dt__12J3DFrameCtrlFv.s | 20 --- .../createSolidHeap__FP10fopAc_ac_c.s | 120 ------------------ .../daWarpBug_Create__FP10fopAc_ac_c.s | 46 ------- .../daWarpBug_Delete__FP11daWarpBug_c.s | 22 ---- .../daWarpBug_Draw__FP11daWarpBug_c.s | 9 -- .../daWarpBug_Execute__FP11daWarpBug_c.s | 25 ---- .../d_a_warp_bug/draw__11daWarpBug_cFv.s | 5 - .../daKytag10_Delete__FP13kytag10_class.s | 54 -------- .../daKytag10_Execute__FP13kytag10_class.s | 10 -- ...d_get__FP13kytag10_classP5dPathP4cXyzfPi.s | 6 - ...t_get__FP13kytag10_classP5dPathP4cXyzfPi.s | 5 - .../set_path_info__FP10fopAc_ac_c.s | 20 --- 12 files changed, 342 deletions(-) delete mode 100644 asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/__dt__12J3DFrameCtrlFv.s delete mode 100644 asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/createSolidHeap__FP10fopAc_ac_c.s delete mode 100644 asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/daWarpBug_Create__FP10fopAc_ac_c.s delete mode 100644 asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/daWarpBug_Delete__FP11daWarpBug_c.s delete mode 100644 asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/daWarpBug_Draw__FP11daWarpBug_c.s delete mode 100644 asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/daWarpBug_Execute__FP11daWarpBug_c.s delete mode 100644 asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/draw__11daWarpBug_cFv.s delete mode 100644 asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/daKytag10_Delete__FP13kytag10_class.s delete mode 100644 asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/daKytag10_Execute__FP13kytag10_class.s delete mode 100644 asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/get_Extent_pos_end_get__FP13kytag10_classP5dPathP4cXyzfPi.s delete mode 100644 asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/get_Extent_pos_start_get__FP13kytag10_classP5dPathP4cXyzfPi.s delete mode 100644 asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/set_path_info__FP10fopAc_ac_c.s diff --git a/asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/__dt__12J3DFrameCtrlFv.s b/asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/__dt__12J3DFrameCtrlFv.s deleted file mode 100644 index dbb5958e9b..0000000000 --- a/asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/__dt__12J3DFrameCtrlFv.s +++ /dev/null @@ -1,20 +0,0 @@ -lbl_80D68000: -/* 80D68000 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D68004 7C 08 02 A6 */ mflr r0 -/* 80D68008 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D6800C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80D68010 7C 7F 1B 79 */ or. r31, r3, r3 -/* 80D68014 41 82 00 1C */ beq lbl_80D68030 -/* 80D68018 3C A0 80 D7 */ lis r5, __vt__12J3DFrameCtrl@ha /* 0x80D6825C@ha */ -/* 80D6801C 38 05 82 5C */ addi r0, r5, __vt__12J3DFrameCtrl@l /* 0x80D6825C@l */ -/* 80D68020 90 1F 00 00 */ stw r0, 0(r31) -/* 80D68024 7C 80 07 35 */ extsh. r0, r4 -/* 80D68028 40 81 00 08 */ ble lbl_80D68030 -/* 80D6802C 4B 56 6D 11 */ bl __dl__FPv -lbl_80D68030: -/* 80D68030 7F E3 FB 78 */ mr r3, r31 -/* 80D68034 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80D68038 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D6803C 7C 08 03 A6 */ mtlr r0 -/* 80D68040 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D68044 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/createSolidHeap__FP10fopAc_ac_c.s b/asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/createSolidHeap__FP10fopAc_ac_c.s deleted file mode 100644 index 52b8afc241..0000000000 --- a/asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/createSolidHeap__FP10fopAc_ac_c.s +++ /dev/null @@ -1,120 +0,0 @@ -lbl_80D67E3C: -/* 80D67E3C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80D67E40 7C 08 02 A6 */ mflr r0 -/* 80D67E44 90 01 00 24 */ stw r0, 0x24(r1) -/* 80D67E48 39 61 00 20 */ addi r11, r1, 0x20 -/* 80D67E4C 4B 5F A3 89 */ bl _savegpr_27 -/* 80D67E50 7C 7E 1B 78 */ mr r30, r3 -/* 80D67E54 3C 60 80 D7 */ lis r3, l_arcName@ha /* 0x80D68208@ha */ -/* 80D67E58 38 63 82 08 */ addi r3, r3, l_arcName@l /* 0x80D68208@l */ -/* 80D67E5C 80 63 00 00 */ lwz r3, 0(r3) -/* 80D67E60 3C 80 80 D7 */ lis r4, d_a_warp_bug__stringBase0@ha /* 0x80D681E0@ha */ -/* 80D67E64 38 84 81 E0 */ addi r4, r4, d_a_warp_bug__stringBase0@l /* 0x80D681E0@l */ -/* 80D67E68 38 84 00 08 */ addi r4, r4, 8 -/* 80D67E6C 3C A0 80 40 */ lis r5, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80D67E70 38 A5 61 C0 */ addi r5, r5, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80D67E74 3F 85 00 02 */ addis r28, r5, 2 -/* 80D67E78 3B 9C C2 F8 */ addi r28, r28, -15624 -/* 80D67E7C 7F 85 E3 78 */ mr r5, r28 -/* 80D67E80 38 C0 00 80 */ li r6, 0x80 -/* 80D67E84 4B 2D 44 F9 */ bl getRes__14dRes_control_cFPCcPCcP11dRes_info_ci -/* 80D67E88 7C 7F 1B 78 */ mr r31, r3 -/* 80D67E8C 3C 80 00 08 */ lis r4, 8 -/* 80D67E90 3C A0 11 00 */ lis r5, 0x1100 /* 0x11000284@ha */ -/* 80D67E94 38 A5 02 84 */ addi r5, r5, 0x0284 /* 0x11000284@l */ -/* 80D67E98 4B 2A CD BD */ bl mDoExt_J3DModel__create__FP12J3DModelDataUlUl -/* 80D67E9C 90 7E 05 68 */ stw r3, 0x568(r30) -/* 80D67EA0 3C 60 80 D7 */ lis r3, l_arcName@ha /* 0x80D68208@ha */ -/* 80D67EA4 38 63 82 08 */ addi r3, r3, l_arcName@l /* 0x80D68208@l */ -/* 80D67EA8 80 63 00 00 */ lwz r3, 0(r3) -/* 80D67EAC 3C 80 80 D7 */ lis r4, d_a_warp_bug__stringBase0@ha /* 0x80D681E0@ha */ -/* 80D67EB0 38 84 81 E0 */ addi r4, r4, d_a_warp_bug__stringBase0@l /* 0x80D681E0@l */ -/* 80D67EB4 38 84 00 12 */ addi r4, r4, 0x12 -/* 80D67EB8 7F 85 E3 78 */ mr r5, r28 -/* 80D67EBC 38 C0 00 80 */ li r6, 0x80 -/* 80D67EC0 4B 2D 44 BD */ bl getRes__14dRes_control_cFPCcPCcP11dRes_info_ci -/* 80D67EC4 7C 7B 1B 78 */ mr r27, r3 -/* 80D67EC8 3C 60 80 D7 */ lis r3, l_arcName@ha /* 0x80D68208@ha */ -/* 80D67ECC 38 63 82 08 */ addi r3, r3, l_arcName@l /* 0x80D68208@l */ -/* 80D67ED0 80 63 00 00 */ lwz r3, 0(r3) -/* 80D67ED4 3C 80 80 D7 */ lis r4, d_a_warp_bug__stringBase0@ha /* 0x80D681E0@ha */ -/* 80D67ED8 38 84 81 E0 */ addi r4, r4, d_a_warp_bug__stringBase0@l /* 0x80D681E0@l */ -/* 80D67EDC 38 84 00 1C */ addi r4, r4, 0x1c -/* 80D67EE0 7F 85 E3 78 */ mr r5, r28 -/* 80D67EE4 38 C0 00 80 */ li r6, 0x80 -/* 80D67EE8 4B 2D 44 95 */ bl getRes__14dRes_control_cFPCcPCcP11dRes_info_ci -/* 80D67EEC 7C 7C 1B 78 */ mr r28, r3 -/* 80D67EF0 28 1B 00 00 */ cmplwi r27, 0 -/* 80D67EF4 41 82 00 6C */ beq lbl_80D67F60 -/* 80D67EF8 38 60 00 18 */ li r3, 0x18 -/* 80D67EFC 4B 56 6D 51 */ bl __nw__FUl -/* 80D67F00 7C 7D 1B 79 */ or. r29, r3, r3 -/* 80D67F04 41 82 00 20 */ beq lbl_80D67F24 -/* 80D67F08 3C 80 80 D7 */ lis r4, __vt__12J3DFrameCtrl@ha /* 0x80D6825C@ha */ -/* 80D67F0C 38 04 82 5C */ addi r0, r4, __vt__12J3DFrameCtrl@l /* 0x80D6825C@l */ -/* 80D67F10 90 1D 00 00 */ stw r0, 0(r29) -/* 80D67F14 38 80 00 00 */ li r4, 0 -/* 80D67F18 4B 5C 04 E5 */ bl init__12J3DFrameCtrlFs -/* 80D67F1C 38 00 00 00 */ li r0, 0 -/* 80D67F20 90 1D 00 14 */ stw r0, 0x14(r29) -lbl_80D67F24: -/* 80D67F24 93 BE 05 6C */ stw r29, 0x56c(r30) -/* 80D67F28 80 7E 05 6C */ lwz r3, 0x56c(r30) -/* 80D67F2C 38 9F 00 58 */ addi r4, r31, 0x58 -/* 80D67F30 7F 65 DB 78 */ mr r5, r27 -/* 80D67F34 38 C0 00 01 */ li r6, 1 -/* 80D67F38 38 E0 00 02 */ li r7, 2 -/* 80D67F3C 3D 00 80 D7 */ lis r8, lit_3709@ha /* 0x80D681DC@ha */ -/* 80D67F40 C0 28 81 DC */ lfs f1, lit_3709@l(r8) /* 0x80D681DC@l */ -/* 80D67F44 39 00 00 00 */ li r8, 0 -/* 80D67F48 39 20 FF FF */ li r9, -1 -/* 80D67F4C 4B 2A 57 C1 */ bl init__13mDoExt_brkAnmFP16J3DMaterialTableP15J3DAnmTevRegKeyiifss -/* 80D67F50 2C 03 00 00 */ cmpwi r3, 0 -/* 80D67F54 40 82 00 0C */ bne lbl_80D67F60 -/* 80D67F58 38 60 00 00 */ li r3, 0 -/* 80D67F5C 48 00 00 8C */ b lbl_80D67FE8 -lbl_80D67F60: -/* 80D67F60 28 1C 00 00 */ cmplwi r28, 0 -/* 80D67F64 41 82 00 6C */ beq lbl_80D67FD0 -/* 80D67F68 38 60 00 18 */ li r3, 0x18 -/* 80D67F6C 4B 56 6C E1 */ bl __nw__FUl -/* 80D67F70 7C 7D 1B 79 */ or. r29, r3, r3 -/* 80D67F74 41 82 00 20 */ beq lbl_80D67F94 -/* 80D67F78 3C 80 80 D7 */ lis r4, __vt__12J3DFrameCtrl@ha /* 0x80D6825C@ha */ -/* 80D67F7C 38 04 82 5C */ addi r0, r4, __vt__12J3DFrameCtrl@l /* 0x80D6825C@l */ -/* 80D67F80 90 1D 00 00 */ stw r0, 0(r29) -/* 80D67F84 38 80 00 00 */ li r4, 0 -/* 80D67F88 4B 5C 04 75 */ bl init__12J3DFrameCtrlFs -/* 80D67F8C 38 00 00 00 */ li r0, 0 -/* 80D67F90 90 1D 00 14 */ stw r0, 0x14(r29) -lbl_80D67F94: -/* 80D67F94 93 BE 05 70 */ stw r29, 0x570(r30) -/* 80D67F98 80 7E 05 70 */ lwz r3, 0x570(r30) -/* 80D67F9C 38 9F 00 58 */ addi r4, r31, 0x58 -/* 80D67FA0 7F 85 E3 78 */ mr r5, r28 -/* 80D67FA4 38 C0 00 01 */ li r6, 1 -/* 80D67FA8 38 E0 00 02 */ li r7, 2 -/* 80D67FAC 3D 00 80 D7 */ lis r8, lit_3709@ha /* 0x80D681DC@ha */ -/* 80D67FB0 C0 28 81 DC */ lfs f1, lit_3709@l(r8) /* 0x80D681DC@l */ -/* 80D67FB4 39 00 00 00 */ li r8, 0 -/* 80D67FB8 39 20 FF FF */ li r9, -1 -/* 80D67FBC 4B 2A 56 81 */ bl init__13mDoExt_btkAnmFP16J3DMaterialTableP19J3DAnmTextureSRTKeyiifss -/* 80D67FC0 2C 03 00 00 */ cmpwi r3, 0 -/* 80D67FC4 40 82 00 0C */ bne lbl_80D67FD0 -/* 80D67FC8 38 60 00 00 */ li r3, 0 -/* 80D67FCC 48 00 00 1C */ b lbl_80D67FE8 -lbl_80D67FD0: -/* 80D67FD0 80 1E 05 68 */ lwz r0, 0x568(r30) -/* 80D67FD4 28 00 00 00 */ cmplwi r0, 0 -/* 80D67FD8 40 82 00 0C */ bne lbl_80D67FE4 -/* 80D67FDC 38 60 00 00 */ li r3, 0 -/* 80D67FE0 48 00 00 08 */ b lbl_80D67FE8 -lbl_80D67FE4: -/* 80D67FE4 38 60 00 01 */ li r3, 1 -lbl_80D67FE8: -/* 80D67FE8 39 61 00 20 */ addi r11, r1, 0x20 -/* 80D67FEC 4B 5F A2 35 */ bl _restgpr_27 -/* 80D67FF0 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80D67FF4 7C 08 03 A6 */ mtlr r0 -/* 80D67FF8 38 21 00 20 */ addi r1, r1, 0x20 -/* 80D67FFC 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/daWarpBug_Create__FP10fopAc_ac_c.s b/asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/daWarpBug_Create__FP10fopAc_ac_c.s deleted file mode 100644 index 53b8ce848e..0000000000 --- a/asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/daWarpBug_Create__FP10fopAc_ac_c.s +++ /dev/null @@ -1,46 +0,0 @@ -lbl_80D68130: -/* 80D68130 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D68134 7C 08 02 A6 */ mflr r0 -/* 80D68138 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D6813C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80D68140 93 C1 00 08 */ stw r30, 8(r1) -/* 80D68144 7C 7E 1B 78 */ mr r30, r3 -/* 80D68148 80 03 04 A0 */ lwz r0, 0x4a0(r3) -/* 80D6814C 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c -/* 80D68150 40 82 00 1C */ bne lbl_80D6816C -/* 80D68154 28 1E 00 00 */ cmplwi r30, 0 -/* 80D68158 41 82 00 08 */ beq lbl_80D68160 -/* 80D6815C 4B 2B 0A 09 */ bl __ct__10fopAc_ac_cFv -lbl_80D68160: -/* 80D68160 80 1E 04 A0 */ lwz r0, 0x4a0(r30) -/* 80D68164 60 00 00 08 */ ori r0, r0, 8 -/* 80D68168 90 1E 04 A0 */ stw r0, 0x4a0(r30) -lbl_80D6816C: -/* 80D6816C 38 7E 05 74 */ addi r3, r30, 0x574 -/* 80D68170 3C 80 80 D7 */ lis r4, l_arcName@ha /* 0x80D68208@ha */ -/* 80D68174 38 84 82 08 */ addi r4, r4, l_arcName@l /* 0x80D68208@l */ -/* 80D68178 80 84 00 00 */ lwz r4, 0(r4) -/* 80D6817C 4B 2C 4D 41 */ bl dComIfG_resLoad__FP30request_of_phase_process_classPCc -/* 80D68180 7C 7F 1B 78 */ mr r31, r3 -/* 80D68184 2C 1F 00 04 */ cmpwi r31, 4 -/* 80D68188 40 82 00 30 */ bne lbl_80D681B8 -/* 80D6818C 7F C3 F3 78 */ mr r3, r30 -/* 80D68190 3C 80 80 D6 */ lis r4, createSolidHeap__FP10fopAc_ac_c@ha /* 0x80D67E3C@ha */ -/* 80D68194 38 84 7E 3C */ addi r4, r4, createSolidHeap__FP10fopAc_ac_c@l /* 0x80D67E3C@l */ -/* 80D68198 38 A0 40 00 */ li r5, 0x4000 -/* 80D6819C 4B 2B 23 15 */ bl fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl -/* 80D681A0 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 80D681A4 40 82 00 0C */ bne lbl_80D681B0 -/* 80D681A8 3B E0 00 05 */ li r31, 5 -/* 80D681AC 48 00 00 0C */ b lbl_80D681B8 -lbl_80D681B0: -/* 80D681B0 7F C3 F3 78 */ mr r3, r30 -/* 80D681B4 4B FF FC 85 */ bl create_init__11daWarpBug_cFv -lbl_80D681B8: -/* 80D681B8 7F E3 FB 78 */ mr r3, r31 -/* 80D681BC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80D681C0 83 C1 00 08 */ lwz r30, 8(r1) -/* 80D681C4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D681C8 7C 08 03 A6 */ mtlr r0 -/* 80D681CC 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D681D0 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/daWarpBug_Delete__FP11daWarpBug_c.s b/asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/daWarpBug_Delete__FP11daWarpBug_c.s deleted file mode 100644 index 7f3332e12f..0000000000 --- a/asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/daWarpBug_Delete__FP11daWarpBug_c.s +++ /dev/null @@ -1,22 +0,0 @@ -lbl_80D680E0: -/* 80D680E0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D680E4 7C 08 02 A6 */ mflr r0 -/* 80D680E8 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D680EC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80D680F0 7C 7F 1B 79 */ or. r31, r3, r3 -/* 80D680F4 41 82 00 24 */ beq lbl_80D68118 -/* 80D680F8 38 7F 05 74 */ addi r3, r31, 0x574 -/* 80D680FC 3C 80 80 D7 */ lis r4, l_arcName@ha /* 0x80D68208@ha */ -/* 80D68100 38 84 82 08 */ addi r4, r4, l_arcName@l /* 0x80D68208@l */ -/* 80D68104 80 84 00 00 */ lwz r4, 0(r4) -/* 80D68108 4B 2C 4F 01 */ bl dComIfG_resDelete__FP30request_of_phase_process_classPCc -/* 80D6810C 7F E3 FB 78 */ mr r3, r31 -/* 80D68110 38 80 00 00 */ li r4, 0 -/* 80D68114 4B 2B 0B 79 */ bl __dt__10fopAc_ac_cFv -lbl_80D68118: -/* 80D68118 38 60 00 01 */ li r3, 1 -/* 80D6811C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80D68120 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D68124 7C 08 03 A6 */ mtlr r0 -/* 80D68128 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D6812C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/daWarpBug_Draw__FP11daWarpBug_c.s b/asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/daWarpBug_Draw__FP11daWarpBug_c.s deleted file mode 100644 index f7db7801d4..0000000000 --- a/asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/daWarpBug_Draw__FP11daWarpBug_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80D68048: -/* 80D68048 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D6804C 7C 08 02 A6 */ mflr r0 -/* 80D68050 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D68054 48 00 00 15 */ bl draw__11daWarpBug_cFv -/* 80D68058 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D6805C 7C 08 03 A6 */ mtlr r0 -/* 80D68060 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D68064 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/daWarpBug_Execute__FP11daWarpBug_c.s b/asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/daWarpBug_Execute__FP11daWarpBug_c.s deleted file mode 100644 index 696f9cf57f..0000000000 --- a/asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/daWarpBug_Execute__FP11daWarpBug_c.s +++ /dev/null @@ -1,25 +0,0 @@ -lbl_80D68078: -/* 80D68078 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D6807C 7C 08 02 A6 */ mflr r0 -/* 80D68080 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D68084 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80D68088 7C 7F 1B 78 */ mr r31, r3 -/* 80D6808C 80 63 05 68 */ lwz r3, 0x568(r3) -/* 80D68090 38 63 00 24 */ addi r3, r3, 0x24 -/* 80D68094 3C 80 80 3E */ lis r4, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 80D68098 38 84 D4 70 */ addi r4, r4, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 80D6809C 4B 5D E4 15 */ bl PSMTXCopy -/* 80D680A0 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 80D680A4 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 80D680A8 C0 03 00 0C */ lfs f0, 0xc(r3) -/* 80D680AC D0 1F 04 D0 */ stfs f0, 0x4d0(r31) -/* 80D680B0 C0 03 00 1C */ lfs f0, 0x1c(r3) -/* 80D680B4 D0 1F 04 D4 */ stfs f0, 0x4d4(r31) -/* 80D680B8 C0 03 00 2C */ lfs f0, 0x2c(r3) -/* 80D680BC D0 1F 04 D8 */ stfs f0, 0x4d8(r31) -/* 80D680C0 38 60 00 01 */ li r3, 1 -/* 80D680C4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80D680C8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D680CC 7C 08 03 A6 */ mtlr r0 -/* 80D680D0 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D680D4 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/draw__11daWarpBug_cFv.s b/asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/draw__11daWarpBug_cFv.s deleted file mode 100644 index 31d05374bf..0000000000 --- a/asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/draw__11daWarpBug_cFv.s +++ /dev/null @@ -1,5 +0,0 @@ -lbl_80D68068: -/* 80D68068 38 00 00 00 */ li r0, 0 -/* 80D6806C B0 03 05 7C */ sth r0, 0x57c(r3) -/* 80D68070 38 60 00 01 */ li r3, 1 -/* 80D68074 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/daKytag10_Delete__FP13kytag10_class.s b/asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/daKytag10_Delete__FP13kytag10_class.s deleted file mode 100644 index 0378a49b14..0000000000 --- a/asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/daKytag10_Delete__FP13kytag10_class.s +++ /dev/null @@ -1,54 +0,0 @@ -lbl_8052917C: -/* 8052917C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80529180 7C 08 02 A6 */ mflr r0 -/* 80529184 90 01 00 14 */ stw r0, 0x14(r1) -/* 80529188 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8052918C 7C 7F 1B 78 */ mr r31, r3 -/* 80529190 38 00 00 00 */ li r0, 0 -/* 80529194 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */ -/* 80529198 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */ -/* 8052919C 98 03 0F 21 */ stb r0, 0xf21(r3) -/* 805291A0 80 7F 05 6C */ lwz r3, 0x56c(r31) -/* 805291A4 28 03 00 00 */ cmplwi r3, 0 -/* 805291A8 41 82 00 40 */ beq lbl_805291E8 -/* 805291AC 4B D5 5A B5 */ bl deleteAllParticle__14JPABaseEmitterFv -/* 805291B0 80 7F 05 6C */ lwz r3, 0x56c(r31) -/* 805291B4 80 03 00 F4 */ lwz r0, 0xf4(r3) -/* 805291B8 60 00 00 01 */ ori r0, r0, 1 -/* 805291BC 90 03 00 F4 */ stw r0, 0xf4(r3) -/* 805291C0 38 00 00 01 */ li r0, 1 -/* 805291C4 90 03 00 24 */ stw r0, 0x24(r3) -/* 805291C8 80 7F 05 6C */ lwz r3, 0x56c(r31) -/* 805291CC 80 03 00 F4 */ lwz r0, 0xf4(r3) -/* 805291D0 54 00 06 B0 */ rlwinm r0, r0, 0, 0x1a, 0x18 -/* 805291D4 90 03 00 F4 */ stw r0, 0xf4(r3) -/* 805291D8 38 00 00 00 */ li r0, 0 -/* 805291DC 80 7F 05 6C */ lwz r3, 0x56c(r31) -/* 805291E0 90 03 00 EC */ stw r0, 0xec(r3) -/* 805291E4 90 1F 05 6C */ stw r0, 0x56c(r31) -lbl_805291E8: -/* 805291E8 80 7F 05 70 */ lwz r3, 0x570(r31) -/* 805291EC 28 03 00 00 */ cmplwi r3, 0 -/* 805291F0 41 82 00 40 */ beq lbl_80529230 -/* 805291F4 4B D5 5A 6D */ bl deleteAllParticle__14JPABaseEmitterFv -/* 805291F8 80 7F 05 70 */ lwz r3, 0x570(r31) -/* 805291FC 80 03 00 F4 */ lwz r0, 0xf4(r3) -/* 80529200 60 00 00 01 */ ori r0, r0, 1 -/* 80529204 90 03 00 F4 */ stw r0, 0xf4(r3) -/* 80529208 38 00 00 01 */ li r0, 1 -/* 8052920C 90 03 00 24 */ stw r0, 0x24(r3) -/* 80529210 80 7F 05 70 */ lwz r3, 0x570(r31) -/* 80529214 80 03 00 F4 */ lwz r0, 0xf4(r3) -/* 80529218 54 00 06 B0 */ rlwinm r0, r0, 0, 0x1a, 0x18 -/* 8052921C 90 03 00 F4 */ stw r0, 0xf4(r3) -/* 80529220 38 00 00 00 */ li r0, 0 -/* 80529224 80 7F 05 70 */ lwz r3, 0x570(r31) -/* 80529228 90 03 00 EC */ stw r0, 0xec(r3) -/* 8052922C 90 1F 05 70 */ stw r0, 0x570(r31) -lbl_80529230: -/* 80529230 38 60 00 01 */ li r3, 1 -/* 80529234 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80529238 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8052923C 7C 08 03 A6 */ mtlr r0 -/* 80529240 38 21 00 10 */ addi r1, r1, 0x10 -/* 80529244 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/daKytag10_Execute__FP13kytag10_class.s b/asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/daKytag10_Execute__FP13kytag10_class.s deleted file mode 100644 index 8c7173d8d0..0000000000 --- a/asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/daKytag10_Execute__FP13kytag10_class.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_80529150: -/* 80529150 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80529154 7C 08 02 A6 */ mflr r0 -/* 80529158 90 01 00 14 */ stw r0, 0x14(r1) -/* 8052915C 4B FF FC 1D */ bl sparks_move__FP13kytag10_class -/* 80529160 38 60 00 01 */ li r3, 1 -/* 80529164 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80529168 7C 08 03 A6 */ mtlr r0 -/* 8052916C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80529170 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/get_Extent_pos_end_get__FP13kytag10_classP5dPathP4cXyzfPi.s b/asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/get_Extent_pos_end_get__FP13kytag10_classP5dPathP4cXyzfPi.s deleted file mode 100644 index 740bd81efa..0000000000 --- a/asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/get_Extent_pos_end_get__FP13kytag10_classP5dPathP4cXyzfPi.s +++ /dev/null @@ -1,6 +0,0 @@ -lbl_80528D64: -/* 80528D64 A0 64 00 00 */ lhz r3, 0(r4) -/* 80528D68 38 03 FF FF */ addi r0, r3, -1 -/* 80528D6C 90 06 00 00 */ stw r0, 0(r6) -/* 80528D70 7C 83 23 78 */ mr r3, r4 -/* 80528D74 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/get_Extent_pos_start_get__FP13kytag10_classP5dPathP4cXyzfPi.s b/asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/get_Extent_pos_start_get__FP13kytag10_classP5dPathP4cXyzfPi.s deleted file mode 100644 index 07b0a44605..0000000000 --- a/asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/get_Extent_pos_start_get__FP13kytag10_classP5dPathP4cXyzfPi.s +++ /dev/null @@ -1,5 +0,0 @@ -lbl_80528D54: -/* 80528D54 38 00 00 00 */ li r0, 0 -/* 80528D58 90 06 00 00 */ stw r0, 0(r6) -/* 80528D5C 7C 83 23 78 */ mr r3, r4 -/* 80528D60 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/set_path_info__FP10fopAc_ac_c.s b/asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/set_path_info__FP10fopAc_ac_c.s deleted file mode 100644 index 1b0ddc20ce..0000000000 --- a/asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/set_path_info__FP10fopAc_ac_c.s +++ /dev/null @@ -1,20 +0,0 @@ -lbl_80528D0C: -/* 80528D0C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80528D10 7C 08 02 A6 */ mflr r0 -/* 80528D14 90 01 00 14 */ stw r0, 0x14(r1) -/* 80528D18 7C 65 1B 78 */ mr r5, r3 -/* 80528D1C 38 80 00 00 */ li r4, 0 -/* 80528D20 80 03 00 B0 */ lwz r0, 0xb0(r3) -/* 80528D24 54 03 86 3E */ rlwinm r3, r0, 0x10, 0x18, 0x1f -/* 80528D28 28 03 00 FF */ cmplwi r3, 0xff -/* 80528D2C 41 82 00 14 */ beq lbl_80528D40 -/* 80528D30 88 05 04 E2 */ lbz r0, 0x4e2(r5) -/* 80528D34 7C 04 07 74 */ extsb r4, r0 -/* 80528D38 4B B2 8A B5 */ bl dPath_GetRoomPath__Fii -/* 80528D3C 7C 64 1B 78 */ mr r4, r3 -lbl_80528D40: -/* 80528D40 7C 83 23 78 */ mr r3, r4 -/* 80528D44 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80528D48 7C 08 03 A6 */ mtlr r0 -/* 80528D4C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80528D50 4E 80 00 20 */ blr