From 854fb607b9c416d15589b03e858d5f9708bf1d6e Mon Sep 17 00:00:00 2001 From: TakaRikka Date: Sun, 30 Jul 2023 18:57:56 -0700 Subject: [PATCH 1/4] d_a_obj_swpropeller OK, work on d_kankyo / misc --- include/JSystem/J3DGraphBase/J3DMatBlock.h | 4 +- include/JSystem/J3DGraphBase/J3DStruct.h | 2 + include/SSystem/SComponent/c_cc_d.h | 36 +- include/SSystem/SComponent/c_counter.h | 2 +- include/d/com/d_com_inf_game.h | 6 + include/d/d_attention.h | 7 +- include/d/d_stage.h | 4 +- include/d/kankyo/d_kankyo.h | 19 +- include/d/kankyo/d_kankyo_wether.h | 1 - include/m_Do/m_Do_audio.h | 4 + .../d_a_obj_swpropeller/d_a_obj_swpropeller.h | 45 +- libs/SSystem/SComponent/c_cc_d.cpp | 10 +- rel/d/a/d_a_bg/d_a_bg.cpp | 7 +- .../d_a_obj_swpropeller.cpp | 821 ++++------- src/d/kankyo/d_kankyo.cpp | 1238 +++++++++++++++-- src/m_Do/m_Do_ext.cpp | 122 +- 16 files changed, 1622 insertions(+), 706 deletions(-) diff --git a/include/JSystem/J3DGraphBase/J3DMatBlock.h b/include/JSystem/J3DGraphBase/J3DMatBlock.h index 377746bb9d..a976be81c9 100644 --- a/include/JSystem/J3DGraphBase/J3DMatBlock.h +++ b/include/JSystem/J3DGraphBase/J3DMatBlock.h @@ -10,13 +10,13 @@ #include "m_Do/m_Do_lib.h" struct J3DGXColorS10 { - /* 8000E460 */ J3DGXColorS10(); + /* 8000E460 */ J3DGXColorS10() {} _GXColorS10 mColor; }; struct J3DGXColor : public _GXColor { - /* 8000E538 */ J3DGXColor(); + /* 8000E538 */ J3DGXColor() {} }; struct J3DNBTScaleInfo { diff --git a/include/JSystem/J3DGraphBase/J3DStruct.h b/include/JSystem/J3DGraphBase/J3DStruct.h index cb98164d03..5fa9a87af1 100644 --- a/include/JSystem/J3DGraphBase/J3DStruct.h +++ b/include/JSystem/J3DGraphBase/J3DStruct.h @@ -23,6 +23,8 @@ class J3DLightObj { public: /* 80018C0C */ J3DLightObj() : mInfo(j3dDefaultLightInfo) {} + J3DLightInfo& getLightInfo() { return mInfo; } + /* 0x00 */ J3DLightInfo mInfo; /* 0x34 */ u8 field_0x34[64]; }; // Size = 0x74 diff --git a/include/SSystem/SComponent/c_cc_d.h b/include/SSystem/SComponent/c_cc_d.h index 0e2e4b2982..baaa513365 100644 --- a/include/SSystem/SComponent/c_cc_d.h +++ b/include/SSystem/SComponent/c_cc_d.h @@ -29,6 +29,7 @@ enum cCcD_ObjAtType { /* 0x00000008 */ AT_TYPE_THROW_OBJ = (1 << 3), /* 0x00000010 */ AT_TYPE_SHIELD_ATTACK = (1 << 4), /* 0x00000020 */ AT_TYPE_BOMB = (1 << 5), + /* 0x00000040 */ AT_TYPE_40 = (1 << 6), /* 0x00000080 */ AT_TYPE_SLINGSHOT = (1 << 7), /* 0x00000200 */ AT_TYPE_LANTERN_SWING = (1 << 9), /* 0x00000400 */ AT_TYPE_CSTATUE_SWING = (1 << 10), @@ -272,25 +273,33 @@ public: STATIC_ASSERT(0x40 == sizeof(cCcD_DivideArea)); +struct cCcD_SrcObjCommonBase { + /* 0x0 */ s32 mSPrm; +}; + struct cCcD_SrcObjTg { /* 0x0 */ s32 mType; - /* 0x4 */ s32 mSPrm; + /* 0x4 */ cCcD_SrcObjCommonBase mBase; }; // Size: 0x8 struct cCcD_SrcObjAt { /* 0x0 */ s32 mType; /* 0x4 */ u8 mAtp; - /* 0x8 */ s32 mSPrm; + /* 0x8 */ cCcD_SrcObjCommonBase mBase; }; // Size: 0xC +struct cCcD_SrcObjCo { + /* 0x0 */ cCcD_SrcObjCommonBase mBase; +}; // Size: 0x4 + struct cCcD_SrcObjHitInf { /* 0x00 */ cCcD_SrcObjAt mObjAt; /* 0x0C */ cCcD_SrcObjTg mObjTg; - /* 0x14 */ s32 mSPrm; + /* 0x14 */ cCcD_SrcObjCo mObjCo; }; // Size: 0x18 struct cCcD_SrcObj { - /* 0x0 */ int field_0x0; + /* 0x0 */ int mFlags; /* 0x4 */ cCcD_SrcObjHitInf mSrcObjHitInf; }; // Size: 0x1C @@ -345,6 +354,13 @@ protected: /* 0x08 */ cCcD_Obj* mHitObj; /* 0x0C vtable */ public: + enum CoSPrm_e { + CO_SPRM_SET = 1, + CO_SPRM_NO_CRR = 0x100, + CO_SPRM_NO_CO_HIT_INF_SET = 0x200, + CO_SPRM_SAME_ACTOR_HIT = 0x400, + }; + cCcD_ObjCommonBase() { ct(); } /* 8008409C */ virtual ~cCcD_ObjCommonBase() {} /* 802639B0 */ void ct(); @@ -357,6 +373,10 @@ public: u32 MskRPrm(u32 mask) { return mRPrm & mask; } void OnSPrmBit(u32 flag) { mSPrm |= flag; } void OffSPrmBit(u32 flag) { mSPrm &= ~flag; } + + void Set(cCcD_SrcObjCommonBase const& src) { + mSPrm = src.mSPrm; + } }; STATIC_ASSERT(0x10 == sizeof(cCcD_ObjCommonBase)); @@ -421,6 +441,10 @@ public: u32 ChkSph3DCrr() const { return MskSPrm(0x80); } void ClrSet() { OffSPrmBit(1); } u32 ChkHit() { return MskRPrm(1); } + + void Set(cCcD_SrcObjCo const& src) { + cCcD_ObjCommonBase::Set(src.mBase); + } }; STATIC_ASSERT(0x10 == sizeof(cCcD_ObjCo)); @@ -510,10 +534,10 @@ public: void SetStts(cCcD_Stts* stts) { mStts = stts; } cCcD_DivideInfo& GetDivideInfo() { return mDivideInfo; } cCcD_DivideInfo* GetPDivideInfo() { return &mDivideInfo; } - int ChkBsRevHit() const { return field_0x40 & 2; } + int ChkBsRevHit() const { return mFlags & 2; } private: - /* 0x040 */ int field_0x40; + /* 0x040 */ int mFlags; /* 0x044 */ cCcD_Stts* mStts; /* 0x048 */ cCcD_DivideInfo mDivideInfo; }; // Size = 0x58 diff --git a/include/SSystem/SComponent/c_counter.h b/include/SSystem/SComponent/c_counter.h index 6967d2a678..19cd6bd3a4 100644 --- a/include/SSystem/SComponent/c_counter.h +++ b/include/SSystem/SComponent/c_counter.h @@ -4,7 +4,7 @@ #include "dolphin/types.h" struct counter_class { - s32 mCounter0; + u32 mCounter0; s32 mCounter1; s32 mTimer; }; diff --git a/include/d/com/d_com_inf_game.h b/include/d/com/d_com_inf_game.h index c57fe0a3b6..23ff32697d 100644 --- a/include/d/com/d_com_inf_game.h +++ b/include/d/com/d_com_inf_game.h @@ -1789,6 +1789,12 @@ inline u8 dComIfGp_att_getCatchChgItem() { return dComIfGp_getAttention().getCatchChgItem(); } +inline void dComIfGp_att_LookRequest(fopAc_ac_c* param_0, f32 i_horizontalDist, f32 i_upDist, + f32 i_downDist, s16 i_angle, int param_5) { + dComIfGp_getAttention().LookRequest(param_0, i_horizontalDist, i_upDist, i_downDist, i_angle, + param_5); +} + inline J2DGrafContext* dComIfGp_getCurrentGrafPort() { return g_dComIfG_gameInfo.play.getCurrentGrafPort(); } diff --git a/include/d/d_attention.h b/include/d/d_attention.h index 0fec633004..234053d963 100644 --- a/include/d/d_attention.h +++ b/include/d/d_attention.h @@ -215,10 +215,15 @@ public: int GetActionCount() { return mActionCount; } int GetLockonCount() { return mLockonCount; } bool Lockon() { return LockonTruth() || chkFlag(0x20000000); } // only matches with -O2? - int ZHintRequest(fopAc_ac_c *param_1, int param_2) { + int ZHintRequest(fopAc_ac_c* param_1, int param_2) { return mZHintTarget.request(param_1, param_2); } + void LookRequest(fopAc_ac_c* param_0, f32 i_horizontalDist, f32 i_upDist, f32 i_downDist, + s16 i_angle, int param_5) { + mLookTarget.request(param_0, i_horizontalDist, i_upDist, i_downDist, i_angle, param_5); + } + static dist_entry& i_getDistTable(int i_no) { return dist_table[i_no]; } static type_tbl_entry loc_type_tbl[3]; diff --git a/include/d/d_stage.h b/include/d/d_stage.h index 491a769ec5..ecd86856dc 100644 --- a/include/d/d_stage.h +++ b/include/d/d_stage.h @@ -782,7 +782,7 @@ public: /* 80024954 */ static bool resetArchiveBank(int); /* 80024DB0 */ static void SetTimePass(int); /* 8025BAAC */ static void setZoneNo(int, int); - static s32 GetTimePass(); + static s8 GetTimePass(); static s8 getStayNo() { return mStayNo; } static u8 getRegionNo(int i_roomNo) { return mStatus[i_roomNo].mRegionNo; } @@ -1031,7 +1031,7 @@ inline s32 i_dStage_stagInfo_GetSaveTbl(stage_stag_info_class* param_0) { } inline s8 dStage_stagInfo_GetTimeH(stage_stag_info_class* p_info) { - return p_info->field_0x0c >> 8; + return (p_info->field_0x0c >> 8) & 0xFF; } inline BOOL dStage_staginfo_GetArchiveHeap(stage_stag_info_class* p_info) { diff --git a/include/d/kankyo/d_kankyo.h b/include/d/kankyo/d_kankyo.h index 8a38033297..e9735f1ec3 100644 --- a/include/d/kankyo/d_kankyo.h +++ b/include/d/kankyo/d_kankyo.h @@ -12,6 +12,7 @@ class JPABaseEmitter; class cBgS_PolyInfo; +class color_RGB_class; void dKankyo_DayProc(); void dKy_set_nexttime(f32); @@ -44,6 +45,11 @@ void dKy_setLight(); cXyz dKy_plight_near_pos(); void dKy_BossSpotLight_set(cXyz* param_0, f32 param_1, f32 param_2, f32 param_3, _GXColor* param_4, f32 param_5, u8 param_6, u8 param_7); +static void dKy_calc_color_set(_GXColorS10* param_0, color_RGB_class* param_1, + color_RGB_class* param_2, color_RGB_class* param_3, + color_RGB_class* param_4, f32 param_5, f32 param_6, + _GXColorS10 param_7, f32 param_8); +static void dKy_twilight_camelight_set(); struct LIGHT_INFLUENCE { /* 800CFC7C */ ~LIGHT_INFLUENCE() {} @@ -203,7 +209,7 @@ public: /* 0x367 */ u8 field_0x367; /* 0x368 */ f32 mFogStartZ; /* 0x36C */ f32 mFogEndZ; - /* 0x370 */ f32 field_0x370; + /* 0x370 */ f32 mColpatBlend; /* 0x374 */ f32 field_0x374; /* 0x378 */ u16 field_0x378; /* 0x37A */ u8 field_0x37a; @@ -379,9 +385,7 @@ public: /* 0x1058 */ dKankyo_evil_Packet* mpEvilPacket; /* 0x105C */ mDoExt_btkAnm* field_0x105c; /* 0x1060 */ fopAc_ac_c* field_0x1060; - /* 0x1064 */ f32 field_0x1064; - /* 0x1068 */ f32 field_0x1068; - /* 0x106C */ f32 field_0x106c; + /* 0x1064 */ Vec field_0x1064; /* 0x1070 */ cXyz mSunPos2; /* 0x107C */ cXyz mPLightNearPos; /* 0x1088 */ cXyz mSunPos; @@ -394,10 +398,7 @@ public: /* 0x10D8 */ GXColorS10 mUnderCloudShadowColor; /* 0x10E0 */ GXColorS10 mCloudOuterHazeColor; /* 0x10E8 */ GXColorS10 mCloudInnerHazeColor; - /* 0x10F0 */ s16 field_0x10f0; - /* 0x10F2 */ s16 field_0x10f2; - /* 0x10F4 */ s16 field_0x10f4; - /* 0x10F6 */ s16 field_0x10f6; + /* 0x10F0 */ GXColorS10 field_0x10f0; /* 0x10F8 */ s16 field_0x10f8; /* 0x10FA */ s16 field_0x10fa; /* 0x10FC */ s16 field_0x10fc; @@ -493,7 +494,7 @@ public: /* 0x12B8 */ u8 field_0x12b8[4]; /* 0x12BC */ u16 mFogAdjCenter; /* 0x12BE */ u16 mDate; - /* 0x12C0 */ u16 mActorLightEffect; + /* 0x12C0 */ s16 mActorLightEffect; /* 0x12C2 */ u8 mColPatPrev; /* 0x12C3 */ u8 mColPatCurr; /* 0x12C4 */ u8 mColpatPrevGather; diff --git a/include/d/kankyo/d_kankyo_wether.h b/include/d/kankyo/d_kankyo_wether.h index 2242f48386..46cb651a50 100644 --- a/include/d/kankyo/d_kankyo_wether.h +++ b/include/d/kankyo/d_kankyo_wether.h @@ -237,7 +237,6 @@ public: virtual void draw(); virtual ~dKankyo_vrkumo_Packet(); -private: /* 0x0010 */ GXColor mColor; /* 0x0014 */ u8* mpResCloudtx_01; /* 0x0018 */ u8* mpResCloudtx_02; diff --git a/include/m_Do/m_Do_audio.h b/include/m_Do/m_Do_audio.h index 5e8fd55189..2d05cdb5be 100644 --- a/include/m_Do/m_Do_audio.h +++ b/include/m_Do/m_Do_audio.h @@ -119,6 +119,10 @@ inline void mDoAud_mEnvse_framework() { g_mEnvSeMgr.framework(); } +inline void mDoAud_mEnvse_resetScene() { + g_mEnvSeMgr.resetScene(); +} + inline void mDoAud_mEnvSe_startFarThunderSe(const Vec* param_0) { g_mEnvSeMgr.startFarThunderSe((Vec*)param_0, 0); } diff --git a/include/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller.h b/include/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller.h index cc02f28f25..5336a6e098 100644 --- a/include/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller.h +++ b/include/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller.h @@ -1,6 +1,49 @@ #ifndef D_A_OBJ_SWPROPELLER_H #define D_A_OBJ_SWPROPELLER_H -#include "dolphin/types.h" +#include "d/cc/d_cc_d.h" +#include "f_op/f_op_actor_mng.h" + +class daObjSwPr_c : public fopAc_ac_c { +public: + /* 8059A5E8 */ void initBaseMtx(); + /* 8059A624 */ void setBaseMtx(); + /* 8059A670 */ int Create(); + /* 8059A808 */ int CreateHeap(); + /* 8059A888 */ int create(); + /* 8059AB04 */ int setRotateTime(); + /* 8059AB14 */ void switchCtrl(); + /* 8059AB9C */ void execute_type_boomerang(); + /* 8059ADCC */ void execute_type_wind(); + /* 8059B014 */ int execute(); + /* 8059B148 */ int draw(); + /* 8059B1AC */ int _delete(); + + u8 getNameArg() { return fopAcM_GetParamBit(this, 8, 8); } + u8 getMdlType() { return fopAcM_GetParamBit(this, 0x10, 4); } + int getSwbit() { return fopAcM_GetParamBit(this, 0, 8); } + u32 getSwbit2() { return fopAcM_GetParamBit(this, 0x18, 8); } + + /* 0x568 */ request_of_phase_process_class mPhase; + /* 0x570 */ J3DModel* mpModel; + /* 0x574 */ dCcD_Stts mCcStts; + /* 0x5B0 */ dCcD_Cyl mCyl1; + /* 0x6EC */ dCcD_Cyl mCyl2; + /* 0x828 */ s16 mRotateSpeed; + /* 0x82A */ s16 mRotateInitSpeed; + /* 0x82C */ s16 field_0x82c; // rotate angle? + /* 0x82E */ s16 mRotateTime; + /* 0x830 */ u16 mKaitenJntID; + /* 0x832 */ s16 mSwDelayTimer; + /* 0x834 */ u16 field_0x834; + /* 0x836 */ u16 mSwOffDelayTimer; + /* 0x838 */ u8 field_0x838; + /* 0x839 */ u8 field_0x839; + /* 0x83A */ u8 field_0x83a; + /* 0x83B */ u8 field_0x83b; + /* 0x83C */ u8 mNameArg; + /* 0x83D */ u8 field_0x83d; + /* 0x83E */ u8 mModelType; +}; #endif /* D_A_OBJ_SWPROPELLER_H */ diff --git a/libs/SSystem/SComponent/c_cc_d.cpp b/libs/SSystem/SComponent/c_cc_d.cpp index bde61fb1ef..b934b5a560 100644 --- a/libs/SSystem/SComponent/c_cc_d.cpp +++ b/libs/SSystem/SComponent/c_cc_d.cpp @@ -257,17 +257,17 @@ void cCcD_ObjCommonBase::ct() { void cCcD_ObjHitInf::Set(cCcD_SrcObjHitInf const& src) { mObjAt.Set(src.mObjAt); mObjTg.Set(src.mObjTg); - mObjCo.SetSPrm(src.mSPrm); + mObjCo.Set(src.mObjCo); } /* 80263A10-80263A1C 25E350 000C+00 0/0 1/1 0/0 .text ct__8cCcD_ObjFv */ void cCcD_Obj::ct() { - field_0x40 = 0; + mFlags = 0; } /* 80263A1C-80263A48 25E35C 002C+00 0/0 1/1 0/0 .text Set__8cCcD_ObjFRC11cCcD_SrcObj */ void cCcD_Obj::Set(cCcD_SrcObj const& src) { - field_0x40 = src.field_0x0; + mFlags = src.mFlags; cCcD_ObjHitInf::Set(src.mSrcObjHitInf); } @@ -725,7 +725,7 @@ void cCcD_ObjAt::SetHit(cCcD_Obj* pObj) { /* 8026484C-80264868 25F18C 001C+00 1/1 0/0 0/0 .text Set__10cCcD_ObjAtFRC13cCcD_SrcObjAt */ void cCcD_ObjAt::Set(cCcD_SrcObjAt const& src) { - mSPrm = src.mSPrm; + cCcD_ObjCommonBase::Set(src.mBase); mType = src.mType; mAtp = src.mAtp; } @@ -739,7 +739,7 @@ void cCcD_ObjAt::ClrHit() { /* 80264880-80264894 25F1C0 0014+00 1/1 0/0 0/0 .text Set__10cCcD_ObjTgFRC13cCcD_SrcObjTg */ void cCcD_ObjTg::Set(cCcD_SrcObjTg const& src) { - mSPrm = src.mSPrm; + cCcD_ObjCommonBase::Set(src.mBase); mType = src.mType; } diff --git a/rel/d/a/d_a_bg/d_a_bg.cpp b/rel/d/a/d_a_bg/d_a_bg.cpp index 9ecc9c554a..75de1a107a 100644 --- a/rel/d/a/d_a_bg/d_a_bg.cpp +++ b/rel/d/a/d_a_bg/d_a_bg.cpp @@ -15,6 +15,7 @@ #include "dol2asm.h" #include "f_op/f_op_actor_mng.h" #include "m_Do/m_Do_lib.h" +#include "JSystem/J3DGraphBase/J3DMaterial.h" // // Types: @@ -618,11 +619,11 @@ int daBg_c::createHeap() { const char* name = modelData->getMaterialName()->getName(j); if (name[3] == 'M' && name[4] == 'A') { - if (!memcmp(&name[5], &"00", 2)) { + if (!memcmp(&name[5], "00", 2)) { modelFlags |= 0x1200; - } else if (!memcmp(&name[5], &"01", 2)) { + } else if (!memcmp(&name[5], "01", 2)) { modelFlags |= 0x20000000; - } else if (!memcmp(&name[5], &"12", 2) || !memcmp(&name[5], &"18", 2)) { + } else if (!memcmp(&name[5], "12", 2) || !memcmp(&name[5], "18", 2)) { field_0x5f0 = 1; } } diff --git a/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller.cpp b/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller.cpp index 40c75f0d85..0bacb181ed 100644 --- a/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller.cpp +++ b/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller.cpp @@ -4,605 +4,363 @@ // #include "rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller.h" -#include "dol2asm.h" -#include "dolphin/types.h" +#include "JSystem/JKernel/JKRHeap.h" +#include "d/com/d_com_inf_game.h" +#include "d/d_procname.h" -// -// Types: -// +#define MODEL_K_PURO 0 +#define MODEL_LV9_PURO 1 -struct request_of_phase_process_class {}; +#define TYPE_BOOMERANG 0 // only turns when hit with boomerang +#define TYPE_WIND 1 // automatically turns -struct csXyz {}; - -struct Vec {}; - -struct cXyz { - /* 80266AE4 */ void operator+(Vec const&) const; - - static f32 Zero[3]; -}; - -struct mDoMtx_stack_c { - /* 8000CD64 */ void transS(cXyz const&); - /* 8000CF44 */ void ZXYrotM(csXyz const&); - - static u8 now[48]; -}; - -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); -}; - -struct daObjSwPr_c { - /* 8059A5E8 */ void initBaseMtx(); - /* 8059A624 */ void setBaseMtx(); - /* 8059A670 */ void Create(); - /* 8059A808 */ void CreateHeap(); - /* 8059A888 */ void create(); - /* 8059AB04 */ void setRotateTime(); - /* 8059AB14 */ void switchCtrl(); - /* 8059AB9C */ void execute_type_boomerang(); - /* 8059ADCC */ void execute_type_wind(); - /* 8059B014 */ void execute(); - /* 8059B148 */ void draw(); - /* 8059B1AC */ void _delete(); -}; - -struct dSv_info_c { - /* 80035200 */ void onSwitch(int, int); - /* 800352B0 */ void offSwitch(int, int); -}; - -struct dKy_tevstr_c {}; - -struct J3DModelData {}; - -struct dScnKy_env_light_c { - /* 801A37C4 */ void settingTevStruct(int, cXyz*, dKy_tevstr_c*); - /* 801A4DA0 */ void setLightTevColorType_MAJI(J3DModelData*, dKy_tevstr_c*); -}; - -struct dRes_info_c {}; - -struct dRes_control_c { - /* 8003C2EC */ void getRes(char const*, s32, dRes_info_c*, int); -}; - -struct dCcD_Stts { - /* 80083860 */ void Init(int, int, fopAc_ac_c*); -}; - -struct dCcD_SrcCyl {}; - -struct dCcD_GStts { - /* 80083760 */ dCcD_GStts(); -}; - -struct dCcD_GObjInf { - /* 80083A28 */ dCcD_GObjInf(); - /* 80084460 */ void ChkTgHit(); - /* 800844F8 */ void GetTgHitObj(); - /* 80084548 */ void GetTgHitGObj(); -}; - -struct dCcD_Cyl { - /* 800848B4 */ void Set(dCcD_SrcCyl const&); -}; - -struct dAttLook_c { - /* 80073D08 */ void request(fopAc_ac_c*, f32, f32, f32, s16, int); -}; - -struct cM3dGCyl { - /* 8026F1DC */ void SetC(cXyz const&); - /* 8059AA74 */ ~cM3dGCyl(); -}; - -struct cM3dGAab { - /* 8059AABC */ ~cM3dGAab(); -}; - -struct cCcD_Obj {}; - -struct cCcS { - /* 80264BA8 */ void Set(cCcD_Obj*); -}; - -struct JAISoundID {}; - -struct Z2SeMgr { - /* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8); - /* 802AC50C */ void seStartLevel(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8); -}; - -struct Z2AudioMgr { - static u8 mAudioMgrPtr[4 + 4 /* padding */]; -}; - -struct JUTNameTab { - /* 802DEAF8 */ void getName(u16) const; -}; - -struct J3DSys { - static u8 mCurrentMtx[48]; -}; - -struct J3DModel {}; - -struct J3DJoint {}; - -// -// Forward References: -// - -extern "C" static void nodeCallBack__FP8J3DJointi(); -extern "C" static void CheckCreateHeap__FP10fopAc_ac_c(); -extern "C" void initBaseMtx__11daObjSwPr_cFv(); -extern "C" void setBaseMtx__11daObjSwPr_cFv(); -extern "C" void Create__11daObjSwPr_cFv(); -extern "C" void CreateHeap__11daObjSwPr_cFv(); -extern "C" void create__11daObjSwPr_cFv(); -extern "C" void __dt__8cM3dGCylFv(); -extern "C" void __dt__8cM3dGAabFv(); -extern "C" void setRotateTime__11daObjSwPr_cFv(); -extern "C" void switchCtrl__11daObjSwPr_cFv(); -extern "C" void execute_type_boomerang__11daObjSwPr_cFv(); -extern "C" void execute_type_wind__11daObjSwPr_cFv(); -extern "C" void execute__11daObjSwPr_cFv(); -extern "C" void draw__11daObjSwPr_cFv(); -extern "C" void _delete__11daObjSwPr_cFv(); -extern "C" static void daObjSwPr_Draw__FP11daObjSwPr_c(); -extern "C" static void daObjSwPr_Execute__FP11daObjSwPr_c(); -extern "C" static void daObjSwPr_Delete__FP11daObjSwPr_c(); -extern "C" static void daObjSwPr_Create__FP10fopAc_ac_c(); -extern "C" void func_8059B26C(void* _this, u16*); -extern "C" void func_8059B288(void* _this, u8*); -extern "C" void func_8059B2A4(void* _this, s16*); -extern "C" extern char const* const d_a_obj_swpropeller__stringBase0; - -// -// External References: -// - -extern "C" void mDoMtx_YrotM__FPA4_fs(); -extern "C" void transS__14mDoMtx_stack_cFRC4cXyz(); -extern "C" void ZXYrotM__14mDoMtx_stack_cFRC5csXyz(); -extern "C" void mDoExt_modelUpdateDL__FP8J3DModel(); -extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl(); -extern "C" void __ct__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 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 onSwitch__10dSv_info_cFii(); -extern "C" void offSwitch__10dSv_info_cFii(); -extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci(); -extern "C" void request__10dAttLook_cFP10fopAc_ac_cfffsi(); -extern "C" void __ct__10dCcD_GSttsFv(); -extern "C" void Init__9dCcD_SttsFiiP10fopAc_ac_c(); -extern "C" void __ct__12dCcD_GObjInfFv(); -extern "C" void ChkTgHit__12dCcD_GObjInfFv(); -extern "C" void GetTgHitObj__12dCcD_GObjInfFv(); -extern "C" void GetTgHitGObj__12dCcD_GObjInfFv(); -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 SetC__8cM3dGCylFRC4cXyz(); -extern "C" void cLib_addCalcAngleS__FPsssss(); -extern "C" void cLib_chaseAngleS__FPsss(); -extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); -extern "C" void seStartLevel__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); -extern "C" void __dl__FPv(); -extern "C" void getName__10JUTNameTabCFUs(); -extern "C" void PSMTXCopy(); -extern "C" void __cvt_fp2unsigned(); -extern "C" void _savegpr_26(); -extern "C" void _savegpr_27(); -extern "C" void _savegpr_28(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_26(); -extern "C" void _restgpr_27(); -extern "C" void _restgpr_28(); -extern "C" void _restgpr_29(); -extern "C" void strcmp(); -extern "C" extern void* g_fopAc_Method[8]; -extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */]; -extern "C" extern void* __vt__8dCcD_Cyl[36]; -extern "C" extern void* __vt__9dCcD_Stts[11]; -extern "C" extern void* __vt__12cCcD_CylAttr[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" extern u8 g_dComIfG_gameInfo[122384]; -extern "C" extern u8 g_env_light[4880]; -extern "C" f32 Zero__4cXyz[3]; -extern "C" extern u8 j3dSys[284]; -extern "C" u8 mCurrentMtx__6J3DSys[48]; -extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; - -// -// Declarations: -// +extern "C" u16 func_8059B26C(u16*); +extern "C" u8 func_8059B288(u8*); +extern "C" s16 func_8059B2A4(s16*); /* 8059A518-8059A5C8 000078 00B0+00 1/1 0/0 0/0 .text nodeCallBack__FP8J3DJointi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void nodeCallBack(J3DJoint* param_0, int param_1) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/nodeCallBack__FP8J3DJointi.s" +static int nodeCallBack(J3DJoint* i_joint, int param_1) { + if (param_1 == 0) { + int jnt_no = i_joint->getJntNo(); + J3DModel* model_p = j3dSys.getModel(); + daObjSwPr_c* swpr_p = (daObjSwPr_c*)model_p->getUserArea(); + + if (jnt_no == swpr_p->mKaitenJntID) { + cMtx_copy(model_p->i_getAnmMtx(jnt_no), mDoMtx_stack_c::get()); + mDoMtx_stack_c::YrotM(swpr_p->field_0x82c); + model_p->i_setAnmMtx(jnt_no, mDoMtx_stack_c::get()); + mDoMtx_copy(mDoMtx_stack_c::get(), J3DSys::mCurrentMtx); + } + } + + return 1; } -#pragma pop /* 8059A5C8-8059A5E8 000128 0020+00 1/1 0/0 0/0 .text CheckCreateHeap__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void CheckCreateHeap(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/CheckCreateHeap__FP10fopAc_ac_c.s" +static int CheckCreateHeap(fopAc_ac_c* i_this) { + return static_cast(i_this)->CreateHeap(); } -#pragma pop /* 8059A5E8-8059A624 000148 003C+00 1/1 0/0 0/0 .text initBaseMtx__11daObjSwPr_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjSwPr_c::initBaseMtx() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/initBaseMtx__11daObjSwPr_cFv.s" +void daObjSwPr_c::initBaseMtx() { + mpModel->setBaseScale(mScale); + setBaseMtx(); } -#pragma pop /* 8059A624-8059A670 000184 004C+00 3/3 0/0 0/0 .text setBaseMtx__11daObjSwPr_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjSwPr_c::setBaseMtx() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/setBaseMtx__11daObjSwPr_cFv.s" +void daObjSwPr_c::setBaseMtx() { + mDoMtx_stack_c::transS(current.pos); + mDoMtx_stack_c::ZXYrotM(shape_angle); + mpModel->i_setBaseTRMtx(mDoMtx_stack_c::get()); } -#pragma pop -/* ############################################################################################## */ /* 8059B2C8-8059B2D0 000000 0008+00 3/3 0/0 0/0 .rodata l_bmdName */ -SECTION_RODATA static u8 const l_bmdName[8] = { - 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, -}; -COMPILER_STRIP_GATE(0x8059B2C8, &l_bmdName); +static int const l_bmdName[] = {3, 3}; /* 8059B2D0-8059B2D8 000008 0008+00 1/1 0/0 0/0 .rodata l_heap_size */ -SECTION_RODATA static u8 const l_heap_size[8] = { - 0x00, 0x00, 0x0F, 0x20, 0x00, 0x00, 0x36, 0xC0, -}; -COMPILER_STRIP_GATE(0x8059B2D0, &l_heap_size); +static u32 const l_heap_size[] = {0xF20, 0x36C0}; /* 8059B2D8-8059B31C 000010 0044+00 0/1 0/0 0/0 .rodata l_cyl_src */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const l_cyl_src[68] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x01, 0x00, 0x40, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x58, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x42, 0xC8, 0x00, 0x00, 0x42, 0xC8, 0x00, 0x00, +static const dCcD_SrcCyl l_cyl_src = { + { + {0, {{0, 0, 0}, {0x10040, 0x11}, 0x58}}, + {dCcD_SE_NONE, 0, 0, 0, {0}}, + {dCcD_SE_NONE, 2, 0, 0, {2}}, + {0}, + }, + { + {0.0f, 0.0f, 0.0f}, + 100.0f, + 100.0f, + }, }; -COMPILER_STRIP_GATE(0x8059B2D8, &l_cyl_src); -#pragma pop /* 8059B31C-8059B334 000054 0018+00 0/1 0/0 0/0 .rodata l_cull_size */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const l_cull_size[24] = { - 0xC3, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC3, 0x16, 0x00, 0x00, - 0x43, 0x16, 0x00, 0x00, 0x43, 0x16, 0x00, 0x00, 0x43, 0x16, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x8059B31C, &l_cull_size); -#pragma pop +static f32 const l_cull_size[] = {-150.0f, 0.0f, -150.0f, 150.0f, 150.0f, 150.0f}; /* 8059B334-8059B33C 00006C 0006+02 0/0 0/0 0/0 .rodata l_r00_rot_time */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const l_r00_rot_time[6 + 2 /* padding */] = { - 0x00, - 0xBE, - 0x00, - 0x94, - 0x00, - 0x64, - /* padding */ - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x8059B334, &l_r00_rot_time); -#pragma pop - -/* 8059B33C-8059B340 000074 0004+00 0/1 0/0 0/0 .rodata @3747 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3747 = 100.0f; -COMPILER_STRIP_GATE(0x8059B33C, &lit_3747); -#pragma pop - -/* 8059B360-8059B360 000098 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8059B360 = "K_prop00"; -SECTION_DEAD static char const* const stringBase_8059B369 = "Lv9_puro"; -SECTION_DEAD static char const* const stringBase_8059B372 = "kaiten"; -SECTION_DEAD static char const* const stringBase_8059B379 = "D_MN05"; -#pragma pop +// This was used for this object's HIO, which was removed in retail +static s16 const l_r00_rot_time[] = {190, 148, 100}; /* 8059B380-8059B388 -00001 0008+00 3/3 0/0 0/0 .data l_arcName */ -SECTION_DATA static void* l_arcName[2] = { - (void*)&d_a_obj_swpropeller__stringBase0, - (void*)(((char*)&d_a_obj_swpropeller__stringBase0) + 0x9), -}; +static char* l_arcName[] = {"K_prop00", "Lv9_puro"}; /* 8059B388-8059B38C -00001 0004+00 1/1 0/0 0/0 .data l_joint_name */ -SECTION_DATA static void* l_joint_name = (void*)(((char*)&d_a_obj_swpropeller__stringBase0) + 0x12); +static char* l_joint_name = "kaiten"; /* 8059A670-8059A808 0001D0 0198+00 1/1 0/0 0/0 .text Create__11daObjSwPr_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjSwPr_c::Create() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/Create__11daObjSwPr_cFv.s" +int daObjSwPr_c::Create() { + initBaseMtx(); + fopAcM_SetMtx(this, mpModel->getBaseTRMtx()); + + mCcStts.Init(0xFF, 0xFF, this); + mCyl1.Set(l_cyl_src); + mCyl1.SetStts(&mCcStts); + + if (mNameArg == 1) { + mCyl2.Set(l_cyl_src); + mCyl2.SetStts(&mCcStts); + mCyl2.SetTgType(0x200); + mCyl2.SetTgMtrl(3); + } + + fopAcM_setCullSizeBox(this, l_cull_size[0], l_cull_size[1], l_cull_size[2], l_cull_size[3], + l_cull_size[4], l_cull_size[5]); + + JUTNameTab* jnt_nt_p = mpModel->getModelData()->getJointTree().getJointName(); + mKaitenJntID = 0xFFFF; + + for (u16 i = 0; i < mpModel->getModelData()->getJointNum(); i++) { + if (strcmp(jnt_nt_p->getName(i), l_joint_name) == 0) { + mKaitenJntID = i; + } + } + + J3DJoint* jnt = mpModel->getModelData()->getJointNodePointer(mKaitenJntID); + jnt->setCallBack(nodeCallBack); + mpModel->setUserArea((u32)this); + + mEyePos.y += 100.0f; + + // Set CullSizeFar for Outside Bridge room in Forest Temple + if (strcmp(dComIfGp_getStartStageName(), "D_MN05") == 0 && fopAcM_GetRoomNo(this) == 4) { + fopAcM_setCullSizeFar(this, 100.0f); + } + + return 1; } -#pragma pop /* 8059A808-8059A888 000368 0080+00 1/1 0/0 0/0 .text CreateHeap__11daObjSwPr_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjSwPr_c::CreateHeap() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/CreateHeap__11daObjSwPr_cFv.s" +int daObjSwPr_c::CreateHeap() { + J3DModelData* modelData = + (J3DModelData*)dComIfG_getObjectRes(l_arcName[mModelType], l_bmdName[mModelType]); + mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084); + + if (mpModel == NULL) { + return 0; + } + + return 1; } -#pragma pop - -/* ############################################################################################## */ -/* 8059B38C-8059B3AC -00001 0020+00 1/0 0/0 0/0 .data l_daObjSwPr_Method */ -SECTION_DATA static void* l_daObjSwPr_Method[8] = { - (void*)daObjSwPr_Create__FP10fopAc_ac_c, - (void*)daObjSwPr_Delete__FP11daObjSwPr_c, - (void*)daObjSwPr_Execute__FP11daObjSwPr_c, - (void*)NULL, - (void*)daObjSwPr_Draw__FP11daObjSwPr_c, - (void*)NULL, - (void*)NULL, - (void*)NULL, -}; - -/* 8059B3AC-8059B3DC -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Swpropeller */ -SECTION_DATA extern void* g_profile_Obj_Swpropeller[12] = { - (void*)0xFFFFFFFD, (void*)0x0003FFFD, - (void*)0x005E0000, (void*)&g_fpcLf_Method, - (void*)0x00000840, (void*)NULL, - (void*)NULL, (void*)&g_fopAc_Method, - (void*)0x01C00000, (void*)&l_daObjSwPr_Method, - (void*)0x00044100, (void*)0x000E0000, -}; - -/* 8059B3DC-8059B3E8 00005C 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGCyl */ -SECTION_DATA extern void* __vt__8cM3dGCyl[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__8cM3dGCylFv, -}; - -/* 8059B3E8-8059B3F4 000068 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGAab */ -SECTION_DATA extern void* __vt__8cM3dGAab[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__8cM3dGAabFv, -}; /* 8059A888-8059AA74 0003E8 01EC+00 1/1 0/0 0/0 .text create__11daObjSwPr_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjSwPr_c::create() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/func_8059A888.s" -} -#pragma pop +int daObjSwPr_c::create() { + if (!fopAcM_CheckCondition(this, 8)) { + new (this) daObjSwPr_c(); + fopAcM_OnCondition(this, 8); + } -/* 8059AA74-8059AABC 0005D4 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm cM3dGCyl::~cM3dGCyl() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/__dt__8cM3dGCylFv.s" -} -#pragma pop + mNameArg = getNameArg(); -/* 8059AABC-8059AB04 00061C 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm cM3dGAab::~cM3dGAab() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/__dt__8cM3dGAabFv.s" + if (getMdlType() == 15 || getMdlType() == 0) { + mModelType = MODEL_K_PURO; + } else if (getMdlType() == 1) { + mModelType = MODEL_LV9_PURO; + } + + int phase = dComIfG_resLoad(&mPhase, l_arcName[mModelType]); + if (phase == cPhs_COMPLEATE_e) { + if (!fopAcM_entrySolidHeap(this, CheckCreateHeap, l_heap_size[mModelType])) { + return cPhs_ERROR_e; + } + + if (!Create()) { + return cPhs_ERROR_e; + } + } + + return phase; } -#pragma pop /* 8059AB04-8059AB14 000664 0010+00 1/1 0/0 0/0 .text setRotateTime__11daObjSwPr_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjSwPr_c::setRotateTime() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/setRotateTime__11daObjSwPr_cFv.s" +int daObjSwPr_c::setRotateTime() { + field_0x83a = 0; + return 100; } -#pragma pop /* 8059AB14-8059AB9C 000674 0088+00 1/1 0/0 0/0 .text switchCtrl__11daObjSwPr_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjSwPr_c::switchCtrl() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/switchCtrl__11daObjSwPr_cFv.s" +void daObjSwPr_c::switchCtrl() { + int sw = getSwbit(); + + if (mRotateSpeed == 0) { + i_fopAcM_offSwitch(this, sw); + } else if (func_8059B2A4(&mSwDelayTimer) == 0) { + i_fopAcM_onSwitch(this, sw); + } } -#pragma pop - -/* ############################################################################################## */ -/* 8059B340-8059B344 000078 0004+00 1/2 0/0 0/0 .rodata @3983 */ -SECTION_RODATA static f32 const lit_3983 = 1.0f; -COMPILER_STRIP_GATE(0x8059B340, &lit_3983); - -/* 8059B344-8059B348 00007C 0004+00 1/2 0/0 0/0 .rodata @3984 */ -SECTION_RODATA static f32 const lit_3984 = -1.0f; -COMPILER_STRIP_GATE(0x8059B344, &lit_3984); /* 8059AB9C-8059ADCC 0006FC 0230+00 1/1 0/0 0/0 .text execute_type_boomerang__11daObjSwPr_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjSwPr_c::execute_type_boomerang() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/execute_type_boomerang__11daObjSwPr_cFv.s" +void daObjSwPr_c::execute_type_boomerang() { + bool tg_hit = mCyl1.ChkTgHit(); + + field_0x82c += mRotateSpeed; + cLib_chaseAngleS(&mRotateSpeed, 0, mRotateInitSpeed / mRotateTime); + + BOOL start_rotate = false; + if (mCyl1.ChkTgHit() && field_0x838 == 0) { + cCcD_Obj* tg_obj = mCyl1.GetTgHitObj(); + + if (tg_obj != NULL && ((tg_obj->ChkAtType(AT_TYPE_40) && mCyl1.GetTgHitGObj() != NULL && + mCyl1.GetTgHitGObj()->GetAtMtrl() == 3) || + tg_obj->ChkAtType(AT_TYPE_BOOMERANG))) + { + start_rotate = true; + } + + mCyl1.ClrTgHit(); + } + + if (start_rotate) { + field_0x839++; + mRotateInitSpeed = 0x2000; + mRotateSpeed = 0x2000; + mRotateTime = setRotateTime(); + fopAcM_seStart(this, Z2SE_OBJ_BOOMSHTR_HIT_SW, 0); + + // Set delay to 0 if in Forest Temple Central Room + if (strcmp(dComIfGp_getStartStageName(), "D_MN05") == 0 && fopAcM_GetRoomNo(this) == 0) { + mSwDelayTimer = 0; + } else { + mSwDelayTimer = 8; + } + } + + if (func_8059B288(&field_0x83a) != 0) { + mRotateSpeed = 0x2000; + } + + switchCtrl(); + setBaseMtx(); + + cXyz pos_offset(cXyz::Zero); + mCyl1.SetC(current.pos + pos_offset); + dComIfG_Ccsp()->Set(&mCyl1); + + field_0x838 = tg_hit; } -#pragma pop /* 8059ADCC-8059B014 00092C 0248+00 1/1 0/0 0/0 .text execute_type_wind__11daObjSwPr_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjSwPr_c::execute_type_wind() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/execute_type_wind__11daObjSwPr_cFv.s" +void daObjSwPr_c::execute_type_wind() { + s16 target_speed = 0; + int sw = getSwbit(); + BOOL var_r29 = 0; + + if (mCyl2.ChkTgHit()) { + if (mCyl2.GetTgHitGObj() != NULL) { + if (mCyl2.GetTgHitGObj()->GetAtMtrl() == 3 && mCyl2.GetTgHitObj() != NULL) { + target_speed = 7000; + mRotateInitSpeed = 7000; + var_r29 = 1; + + field_0x834++; + if (field_0x834 == 20) { + i_fopAcM_onSwitch(this, sw); + } else if (field_0x834 == 25) { + i_fopAcM_offSwitch(this, sw); + } + } + } + } else { + field_0x834 = 0; + } + + if (mCyl1.ChkTgHit()) { + if (mCyl1.GetTgHitGObj() != NULL && mCyl1.GetTgHitGObj()->GetAtMtrl() == 3) { + cCcD_Obj* tg_obj = mCyl1.GetTgHitObj(); + + if (tg_obj != NULL && + (tg_obj->ChkAtType(AT_TYPE_40) || tg_obj->ChkAtType(AT_TYPE_BOOMERANG))) + { + mRotateSpeed = 7000; + mRotateInitSpeed = mRotateSpeed; + i_fopAcM_onSwitch(this, sw); + mSwOffDelayTimer = 10; + + if (getSwbit2() != 0xFF) { + i_fopAcM_onSwitch(this, getSwbit2()); + } + } + } + } else if (mSwOffDelayTimer != 0 && func_8059B26C(&mSwOffDelayTimer) == 0) { + i_fopAcM_offSwitch(this, sw); + } + + cLib_addCalcAngleS(&mRotateSpeed, target_speed, 30, 100, 50); + field_0x82c += mRotateSpeed; + + setBaseMtx(); + + mCyl1.SetC(current.pos); + dComIfG_Ccsp()->Set(&mCyl1); + mCyl2.SetC(current.pos); + dComIfG_Ccsp()->Set(&mCyl2); + + field_0x83d = var_r29; } -#pragma pop - -/* ############################################################################################## */ -/* 8059B348-8059B34C 000080 0004+00 0/1 0/0 0/0 .rodata @4086 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4086 = 127.0f; -COMPILER_STRIP_GATE(0x8059B348, &lit_4086); -#pragma pop - -/* 8059B34C-8059B350 000084 0004+00 0/1 0/0 0/0 .rodata @4087 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4087 = 1200.0f; -COMPILER_STRIP_GATE(0x8059B34C, &lit_4087); -#pragma pop - -/* 8059B350-8059B354 000088 0004+00 0/1 0/0 0/0 .rodata @4088 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4088 = 600.0f; -COMPILER_STRIP_GATE(0x8059B350, &lit_4088); -#pragma pop - -/* 8059B354-8059B358 00008C 0004+00 0/1 0/0 0/0 .rodata @4089 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4089[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x8059B354, &lit_4089); -#pragma pop - -/* 8059B358-8059B360 000090 0008+00 0/1 0/0 0/0 .rodata @4091 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4091[8] = { - 0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x8059B358, &lit_4091); -#pragma pop /* 8059B014-8059B148 000B74 0134+00 1/1 0/0 0/0 .text execute__11daObjSwPr_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjSwPr_c::execute() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/execute__11daObjSwPr_cFv.s" +int daObjSwPr_c::execute() { + switch (mNameArg) { + case TYPE_BOOMERANG: + execute_type_boomerang(); + break; + case TYPE_WIND: + execute_type_wind(); + break; + } + + if (mRotateSpeed != 0 && mRotateInitSpeed != 0) { + fopAcM_seStartLevel(this, Z2SE_OBJ_BOOMSHTR_SWITCH, + ((f32)mRotateSpeed / (f32)mRotateInitSpeed) * 127.0f); + } + + dComIfGp_att_LookRequest(this, 1200.0f, 600.0f, 0.0f, 27000, 2); + return 1; } -#pragma pop /* 8059B148-8059B1AC 000CA8 0064+00 1/1 0/0 0/0 .text draw__11daObjSwPr_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjSwPr_c::draw() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/draw__11daObjSwPr_cFv.s" +int daObjSwPr_c::draw() { + g_env_light.settingTevStruct(0x10, ¤t.pos, &mTevStr); + g_env_light.setLightTevColorType_MAJI(mpModel, &mTevStr); + + mDoExt_modelUpdateDL(mpModel); + return 1; } -#pragma pop /* 8059B1AC-8059B1EC 000D0C 0040+00 1/1 0/0 0/0 .text _delete__11daObjSwPr_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjSwPr_c::_delete() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/_delete__11daObjSwPr_cFv.s" +int daObjSwPr_c::_delete() { + dComIfG_resDelete(&mPhase, l_arcName[mModelType]); + return 1; } -#pragma pop /* 8059B1EC-8059B20C 000D4C 0020+00 1/0 0/0 0/0 .text daObjSwPr_Draw__FP11daObjSwPr_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daObjSwPr_Draw(daObjSwPr_c* param_0) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/daObjSwPr_Draw__FP11daObjSwPr_c.s" +static int daObjSwPr_Draw(daObjSwPr_c* i_this) { + return i_this->draw(); } -#pragma pop /* 8059B20C-8059B22C 000D6C 0020+00 1/0 0/0 0/0 .text daObjSwPr_Execute__FP11daObjSwPr_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daObjSwPr_Execute(daObjSwPr_c* param_0) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/daObjSwPr_Execute__FP11daObjSwPr_c.s" +static int daObjSwPr_Execute(daObjSwPr_c* i_this) { + return i_this->execute(); } -#pragma pop /* 8059B22C-8059B24C 000D8C 0020+00 1/0 0/0 0/0 .text daObjSwPr_Delete__FP11daObjSwPr_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daObjSwPr_Delete(daObjSwPr_c* param_0) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/daObjSwPr_Delete__FP11daObjSwPr_c.s" +static int daObjSwPr_Delete(daObjSwPr_c* i_this) { + return i_this->_delete(); } -#pragma pop /* 8059B24C-8059B26C 000DAC 0020+00 1/0 0/0 0/0 .text daObjSwPr_Create__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daObjSwPr_Create(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/daObjSwPr_Create__FP10fopAc_ac_c.s" +static int daObjSwPr_Create(fopAc_ac_c* i_this) { + return static_cast(i_this)->create(); } -#pragma pop /* 8059B26C-8059B288 000DCC 001C+00 1/1 0/0 0/0 .text cLib_calcTimer__FPUs */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -extern "C" asm void func_8059B26C(void* _this, u16* param_0) { +extern "C" asm u16 func_8059B26C(u16* param_0) { nofralloc #include "asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/func_8059B26C.s" } @@ -612,7 +370,7 @@ extern "C" asm void func_8059B26C(void* _this, u16* param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -extern "C" asm void func_8059B288(void* _this, u8* param_0) { +extern "C" asm u8 func_8059B288(u8* param_0) { nofralloc #include "asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/func_8059B288.s" } @@ -622,10 +380,33 @@ extern "C" asm void func_8059B288(void* _this, u8* param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -extern "C" asm void func_8059B2A4(void* _this, s16* param_0) { +extern "C" asm s16 func_8059B2A4(s16* param_0) { nofralloc #include "asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/func_8059B2A4.s" } #pragma pop -/* 8059B360-8059B360 000098 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ +/* 8059B38C-8059B3AC -00001 0020+00 1/0 0/0 0/0 .data l_daObjSwPr_Method */ +static actor_method_class l_daObjSwPr_Method = { + (process_method_func)daObjSwPr_Create, (process_method_func)daObjSwPr_Delete, + (process_method_func)daObjSwPr_Execute, (process_method_func)NULL, + (process_method_func)daObjSwPr_Draw, +}; + +/* 8059B3AC-8059B3DC -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Swpropeller */ +extern actor_process_profile_definition g_profile_Obj_Swpropeller = { + -3, + 3, + -3, + PROC_Obj_Swpropeller, + &g_fpcLf_Method.mBase, + sizeof(daObjSwPr_c), + 0, + 0, + &g_fopAc_Method.base, + 448, + &l_daObjSwPr_Method, + 0x44100, + 0, + 14, +}; diff --git a/src/d/kankyo/d_kankyo.cpp b/src/d/kankyo/d_kankyo.cpp index 4a803405ce..0cd0bd0daa 100644 --- a/src/d/kankyo/d_kankyo.cpp +++ b/src/d/kankyo/d_kankyo.cpp @@ -4,12 +4,14 @@ // #include "d/kankyo/d_kankyo.h" -#include "MSL_C/string.h" #include "JSystem/J3DGraphBase/J3DMatBlock.h" +#include "JSystem/J3DGraphBase/J3DMaterial.h" +#include "MSL_C/string.h" #include "SSystem/SComponent/c_counter.h" #include "SSystem/SComponent/c_math.h" #include "d/com/d_com_inf_game.h" #include "d/kankyo/d_kankyo_data.h" +#include "d/kankyo/d_kankyo_rain.h" #include "d/meter/d_meter2_info.h" #include "d/msg/d_msg_object.h" #include "dol2asm.h" @@ -374,7 +376,8 @@ static s32 dKy_sense_pat_get() { // Room is Lake if (dComIfGp_roomControl_getStayNo() == 0 && dComIfGs_isSaveSwitch(0x11) && - !dComIfGs_isSaveSwitch(0x75)) { + !dComIfGs_isSaveSwitch(0x75)) + { pat = 2; } @@ -383,7 +386,8 @@ static s32 dKy_sense_pat_get() { } } // Stage is Zora's Domain - else if (!strcmp(dComIfGp_getStartStageName(), "F_SP113")) { + else if (!strcmp(dComIfGp_getStartStageName(), "F_SP113")) + { if (dComIfGs_sense_type_change_Get() > 0) { pat = 13; } else { @@ -391,19 +395,23 @@ static s32 dKy_sense_pat_get() { } } // Stage is Faron Woods Cave - else if (!strcmp(dComIfGp_getStartStageName(), "D_SB10")) { + else if (!strcmp(dComIfGp_getStartStageName(), "D_SB10")) + { pat = 1; } // Stage is Zora's River - else if (!strcmp(dComIfGp_getStartStageName(), "F_SP112")) { + else if (!strcmp(dComIfGp_getStartStageName(), "F_SP112")) + { pat = 3; } // Stage is Upper Zora's River - else if (!strcmp(dComIfGp_getStartStageName(), "F_SP126")) { + else if (!strcmp(dComIfGp_getStartStageName(), "F_SP126")) + { pat = 6; } // Stage is Snowpeak - else if (!strcmp(dComIfGp_getStartStageName(), "F_SP114")) { + else if (!strcmp(dComIfGp_getStartStageName(), "F_SP114")) + { pat = 4; } // Stage is Forest Temple or Goron Mines or Goron Stockcave or Grotto @@ -414,20 +422,24 @@ static s32 dKy_sense_pat_get() { !memcmp(dComIfGp_getStartStageName(), "D_SB06", 6) || !memcmp(dComIfGp_getStartStageName(), "D_SB07", 6) || !memcmp(dComIfGp_getStartStageName(), "D_SB08", 6) || - !memcmp(dComIfGp_getStartStageName(), "D_SB09", 6)) { + !memcmp(dComIfGp_getStartStageName(), "D_SB09", 6)) + { pat = 5; } // Stage is Stallord arena or Argorok arena else if (!strcmp(dComIfGp_getStartStageName(), "D_MN10A") || - !strcmp(dComIfGp_getStartStageName(), "D_MN07A")) { + !strcmp(dComIfGp_getStartStageName(), "D_MN07A")) + { pat = 14; } // Stage is Death Sword arena - else if (!strcmp(dComIfGp_getStartStageName(), "D_MN10B")) { + else if (!strcmp(dComIfGp_getStartStageName(), "D_MN10B")) + { pat = 15; } // Stage is Arbiter's Grounds - else if (!strcmp(dComIfGp_getStartStageName(), "D_MN10")) { + else if (!strcmp(dComIfGp_getStartStageName(), "D_MN10")) + { pat = 8; // Room is Central Poe room if (dComIfGp_roomControl_getStayNo() == 2) { @@ -438,25 +450,29 @@ static s32 dKy_sense_pat_get() { } } // Stage is Blizzeta arena - else if (!strcmp(dComIfGp_getStartStageName(), "D_MN11A")) { + else if (!strcmp(dComIfGp_getStartStageName(), "D_MN11A")) + { pat = 4; } // Stage is Snowpeak Ruins or Darkhammer or Ice Puzzle cave else if (!strcmp(dComIfGp_getStartStageName(), "D_MN11") || !strcmp(dComIfGp_getStartStageName(), "D_MN11B") || - !memcmp(dComIfGp_getStartStageName(), "D_SB00", 6)) { + !memcmp(dComIfGp_getStartStageName(), "D_SB00", 6)) + { pat = 7; // Stage is Snowpeak Ruins and Room is Courtyard if (!strcmp(dComIfGp_getStartStageName(), "D_MN11") && - dComIfGp_roomControl_getStayNo() == 4) { + dComIfGp_roomControl_getStayNo() == 4) + { pat = 4; } } // Stage is Ganondorf Field or Ganondorf Defeated or Castle Town else if (!strcmp(dComIfGp_getStartStageName(), "D_MN09B") || !strcmp(dComIfGp_getStartStageName(), "D_MN09C") || - !strcmp(dComIfGp_getStartStageName(), "F_SP116")) { + !strcmp(dComIfGp_getStartStageName(), "F_SP116")) + { pat = 1; } // Stage is Temple of Time or City in the Sky or Hyrule Castle Throne Room or @@ -468,20 +484,24 @@ static s32 dKy_sense_pat_get() { !strcmp(dComIfGp_getStartStageName(), "R_SP300") || !strcmp(dComIfGp_getStartStageName(), "R_SP301") || !strcmp(dComIfGp_getStartStageName(), "D_MN01") || - !strcmp(dComIfGp_getStartStageName(), "D_MN01B")) { + !strcmp(dComIfGp_getStartStageName(), "D_MN01B")) + { pat = 8; } // Stage is Morpheel arena - else if (!strcmp(dComIfGp_getStartStageName(), "D_MN01A")) { + else if (!strcmp(dComIfGp_getStartStageName(), "D_MN01A")) + { pat = 14; } // Stage is Palace of Twilight - else if (!memcmp(dComIfGp_getStartStageName(), "D_MN08", 6)) { + else if (!memcmp(dComIfGp_getStartStageName(), "D_MN08", 6)) + { pat = 9; } // Stage is Gorge Cave or Lake Hylia Cave else if (!memcmp(dComIfGp_getStartStageName(), "D_SB02", 6) || - !memcmp(dComIfGp_getStartStageName(), "D_SB03", 6)) { + !memcmp(dComIfGp_getStartStageName(), "D_SB03", 6)) + { pat = 10; } // Stage is Ordon Village Interiors or Faron Woods Interiors or @@ -493,23 +513,27 @@ static s32 dKy_sense_pat_get() { !strcmp(dComIfGp_getStartStageName(), "R_SP116") || !strcmp(dComIfGp_getStartStageName(), "R_SP161") || !strcmp(dComIfGp_getStartStageName(), "F_SP110") || - !strcmp(dComIfGp_getStartStageName(), "R_SP107")) { + !strcmp(dComIfGp_getStartStageName(), "R_SP107")) + { pat = 11; // Stage is Ordon Village and Room is Sera's Shop if (!strcmp(dComIfGp_getStartStageName(), "R_SP01") && - dComIfGp_roomControl_getStayNo() == 1) { + dComIfGp_roomControl_getStayNo() == 1) + { pat = 12; } } // Stage is Hidden Village interiors or Castle Town interiors or Fishing Pond interiors else if (!strcmp(dComIfGp_getStartStageName(), "R_SP128") || !strcmp(dComIfGp_getStartStageName(), "R_SP160") || - !strcmp(dComIfGp_getStartStageName(), "R_SP127")) { + !strcmp(dComIfGp_getStartStageName(), "R_SP127")) + { pat = 12; } // Stage is Kakariko Village interiors - else if (!strcmp(dComIfGp_getStartStageName(), "R_SP109")) { + else if (!strcmp(dComIfGp_getStartStageName(), "R_SP109")) + { pat = 12; // Room is Sanctuary or Inn @@ -707,6 +731,73 @@ SECTION_SDATA2 static f32 lit_4363 = 4750.0f; /* 8019CCDC-8019CE5C 19761C 0180+00 4/3 0/0 0/0 .text dKy_WolfPowerup_FogNearFar__FPfPf */ +// matches with literals +#ifdef NONMATCHING +static void dKy_WolfPowerup_FogNearFar(f32* near_p, f32* far_p) { + switch (dKy_sense_pat_get()) { + case 1: + *near_p = 750.0f; + *far_p = 1750.0f; + break; + case 2: + *near_p = 5000.0f; + *far_p = 40000.0f; + break; + case 3: + *near_p = 4000.0f; + *far_p = 12000.0f; + break; + case 4: + *near_p = 500.0f; + *far_p = 2250.0f; + break; + case 5: + *near_p = 1000.0f; + *far_p = 1800.0f; + break; + case 6: + *near_p = 1000.0f; + *far_p = 2750.0f; + break; + case 7: + *near_p = 750.0f; + *far_p = 1750.0f; + break; + case 8: + *near_p = 750.0f; + *far_p = 1750.0f; + break; + case 9: + *near_p = 2000.0f; + *far_p = 3000.0f; + break; + case 10: + *near_p = 300.0f; + *far_p = 700.0f; + break; + case 11: + *near_p = 750.0f; + *far_p = 1500.0f; + break; + case 12: + *near_p = 500.0f; + *far_p = 1250.0f; + break; + case 13: + *near_p = 1000.0f; + *far_p = 80000.0f; + break; + case 14: + *near_p = 1250.0f; + *far_p = 3000.0f; + break; + case 15: + *near_p = 1000.0f; + *far_p = 4750.0f; + break; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -715,6 +806,7 @@ static asm void dKy_WolfPowerup_FogNearFar(f32* param_0, f32* param_1) { #include "asm/d/kankyo/d_kankyo/dKy_WolfPowerup_FogNearFar__FPfPf.s" } #pragma pop +#endif /* ############################################################################################## */ /* 80453C0C-80453C10 00220C 0004+00 46/46 0/0 0/0 .sdata2 @4409 */ @@ -737,6 +829,16 @@ SECTION_SDATA2 static u8 lit_4412[8] = { }; /* 8019CE5C-8019CFE4 19779C 0188+00 1/1 0/0 0/0 .text dKy_pos2_get_angle__FP4cXyzP4cXyzPsPs */ +// matches with literals +#ifdef NONMATCHING +static void dKy_pos2_get_angle(cXyz* param_0, cXyz* param_1, s16* param_2, s16* param_3) { + cXyz sp28; + sp28 = *param_0 - *param_1; + + *param_2 = cM_atan2s(-sp28.y, sp28.absXZ()); + *param_3 = cM_atan2s(sp28.x, sp28.z); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -745,6 +847,7 @@ static asm void dKy_pos2_get_angle(cXyz* param_0, cXyz* param_1, s16* param_2, s #include "asm/d/kankyo/d_kankyo/dKy_pos2_get_angle__FP4cXyzP4cXyzPsPs.s" } #pragma pop +#endif /* 8042CA54-8042DD64 059774 1310+00 116/118 128/128 649/649 .bss g_env_light */ dScnKy_env_light_c g_env_light; @@ -1075,7 +1178,7 @@ SECTION_SDATA2 static f32 lit_4852[1 + 1 /* padding */] = { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void dKy_light_influence_id(cXyz param_0, int param_1) { +static asm int dKy_light_influence_id(cXyz param_0, int param_1) { nofralloc #include "asm/d/kankyo/d_kankyo/dKy_light_influence_id__F4cXyzi.s" } @@ -1086,7 +1189,7 @@ static asm void dKy_light_influence_id(cXyz param_0, int param_1) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void dKy_eflight_influence_id(cXyz param_0, int param_1) { +static asm int dKy_eflight_influence_id(cXyz param_0, int param_1) { nofralloc #include "asm/d/kankyo/d_kankyo/dKy_eflight_influence_id__F4cXyzi.s" } @@ -1307,6 +1410,7 @@ SECTION_SDATA2 static f32 lit_5348 = 360.0f; SECTION_SDATA2 static f32 lit_5349 = 0.012000000104308128f; /* 8019EC98-8019F264 1995D8 05CC+00 1/1 0/0 0/0 .text envcolor_init__Fv */ +// matches with literals #ifdef NONMATCHING static void envcolor_init() { stage_palette_info_class* palette = dComIfGp_getStagePaletteInfo(); @@ -1396,7 +1500,8 @@ static void envcolor_init() { g_env_light.field_0xecc = 0.0f; if (!strcmp(dComIfGp_getStartStageName(), "F_SP127") || - !strcmp(dComIfGp_getStartStageName(), "R_SP127")) { + !strcmp(dComIfGp_getStartStageName(), "R_SP127")) + { if (g_env_light.field_0x12cc >= 7) { g_env_light.mColpatWeather = 2; } else if (g_env_light.field_0x12cc != 0) { @@ -1854,7 +1959,8 @@ void dScnKy_env_light_c::setDaytime() { // Stage is Fishing Pond or Hena's Hut if (!strcmp(dComIfGp_getStartStageName(), "F_SP127") || - !strcmp(dComIfGp_getStartStageName(), "R_SP127")) { + !strcmp(dComIfGp_getStartStageName(), "R_SP127")) + { f32 current_time = mDaytime; if (current_time >= 300.0f || current_time <= 60.0f) { mDaytime += mTimeSpeed; @@ -1904,14 +2010,9 @@ asm void dScnKy_env_light_c::setDaytime() { #endif /* 8019F780-8019F788 19A0C0 0008+00 1/1 0/0 0/0 .text GetTimePass__20dStage_roomControl_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 dStage_roomControl_c::GetTimePass() { - nofralloc -#include "asm/d/kankyo/d_kankyo/GetTimePass__20dStage_roomControl_cFv.s" +s8 dStage_roomControl_c::GetTimePass() { + return m_time_pass; } -#pragma pop /* ############################################################################################## */ /* 80394C6C-80394C6C 0212CC 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ @@ -1938,8 +2039,83 @@ SECTION_SDATA2 static f32 lit_5617 = 0.01745329238474369f; /* 80453CDC-80453CE0 0022DC 0004+00 1/1 0/0 0/0 .sdata2 @5618 */ SECTION_SDATA2 static f32 lit_5618 = -48000.0f; +// setSunpos calls these functions as inlines somehow +// these need to be moved to MSL_C once an appropriate solution is found +inline float sinf(float x) { + return sin(x); +} + +inline float cosf(float x) { + return cos(x); +} + /* 8019F788-8019FA08 19A0C8 0280+00 1/1 0/0 0/0 .text setSunpos__18dScnKy_env_light_cFv */ +// matches with literals +#ifdef NONMATCHING +void dScnKy_env_light_c::setSunpos() { + camera_class* camera_p = dComIfGp_getCamera(0); + cXyz sp8; + + if (camera_p != NULL && strcmp(dComIfGp_getStartStageName(), "F_SP200") != 0) { + f32 var_f3 = g_env_light.mDaytime; + f32 var_f31; + f32 var_f3_2; + f32 var_f30; + + if (var_f3 >= 90.0f && var_f3 <= 270.0f) { + f32 percent = get_parcent(270.0f, 90.0f, var_f3); + var_f31 = (percent * 150.0f) + 105.0f; + } else { + if (var_f3 < 90.0f) { + var_f3 += 360.0f; + } + + f32 percent = get_parcent(450.0f, 270.0f, var_f3); + var_f31 = (percent * 210.0f) + 255.0f; + if (var_f31 > 360.0f) { + var_f31 -= 360.0f; + } + } + + var_f3_2 = 180.0f + g_env_light.mDaytime; + if (var_f3_2 >= 360.0f) { + var_f3_2 -= 360.0f; + } + + if (var_f3_2 >= 90.0f && var_f3_2 <= 270.0f) { + f32 percent = get_parcent(270.0f, 90.0f, var_f3_2); + var_f30 = (percent * 150.0f) + 105.0f; + } else { + if (var_f3_2 < 90.0f) { + var_f3_2 += 360.0f; + } + + f32 percent = get_parcent(450.0f, 270.0f, var_f3_2); + var_f30 = (percent * 210.0f) + 255.0f; + if (var_f30 > 360.0f) { + var_f30 -= 360.0f; + } + } + + sp8.x = sinf(var_f31 * 0.01745329238474369f) * 80000.0f; + sp8.y = cosf(var_f31 * 0.01745329238474369f) * 80000.0f; + sp8.z = cosf(var_f31 * 0.01745329238474369f) * -48000.0f; + + mSunPos.x = camera_p->mLookat.mEye.x + sp8.x; + mSunPos.y = camera_p->mLookat.mEye.y - sp8.y; + mSunPos.z = camera_p->mLookat.mEye.z + sp8.z; + + sp8.x = sinf(var_f30 * 0.01745329238474369f) * 80000.0f; + sp8.y = cosf(var_f30 * 0.01745329238474369f) * 80000.0f; + sp8.z = cosf(var_f30 * 0.01745329238474369f) * -48000.0f; + + mMoonPos.x = sp8.x; + mMoonPos.y = -sp8.y; + mMoonPos.z = sp8.z; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1948,6 +2124,7 @@ asm void dScnKy_env_light_c::setSunpos() { #include "asm/d/kankyo/d_kankyo/setSunpos__18dScnKy_env_light_cFv.s" } #pragma pop +#endif /* 8019FA08-8019FA10 19A348 0008+00 3/3 5/5 1/1 .text getDaytime__18dScnKy_env_light_cFv */ @@ -1961,11 +2138,11 @@ s32 dKy_getdaytime_hour() { } /* 8019FA3C-8019FAB8 19A37C 007C+00 1/1 1/1 26/26 .text dKy_getdaytime_minute__Fv */ -// just small regalloc +// matches with literals #ifdef NONMATCHING s32 dKy_getdaytime_minute() { - f32 tmp = ((s32)(dComIfGs_getTime() * lit_4850) % 15000000); - return tmp / lit_4850 / lit_5347 * lit_5554; + f32 tmp = ((s32)(dComIfGs_getTime() * 1000000.0f) % 15000000); + return tmp / 1000000.0f / 15.0f * 60.0f; } #else #pragma push @@ -1995,14 +2172,21 @@ s32 dKy_getDarktime_hour() { } /* 8019FB30-8019FBBC 19A470 008C+00 0/0 0/0 19/19 .text dKy_getDarktime_minute__Fv */ +#ifdef NONMATCHING +s32 dKy_getDarktime_minute() { + f32 tmp = ((s32)(g_env_light.getDarkDaytime() * 1000000.0f) % 15000000); + return tmp / 1000000.0f / 15.0f * 60.0f; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dKy_getDarktime_minute() { +asm s32 dKy_getDarktime_minute() { nofralloc #include "asm/d/kankyo/d_kankyo/dKy_getDarktime_minute__Fv.s" } #pragma pop +#endif /* 8019FBBC-8019FBCC 19A4FC 0010+00 0/0 0/0 8/8 .text dKy_getDarktime_week__Fv */ s32 dKy_getDarktime_week() { @@ -2030,6 +2214,278 @@ SECTION_SDATA2 static f32 lit_5840 = 1.0f / 15.0f; /* 8019FBD4-801A0340 19A514 076C+00 5/3 0/0 0/0 .text * setLight_palno_get__18dScnKy_env_light_cFPUcPUcPUcPUcPUcPUcPUcPUcPfPiPiPfPUc */ +// lots of issues +#ifdef NONMATCHING +void dScnKy_env_light_c::setLight_palno_get(u8* param_0, u8* param_1, u8* param_2, u8* param_3, + u8* param_4, u8* param_5, u8* param_6, u8* param_7, + f32* param_8, int* param_9, int* param_10, + f32* param_11, u8* param_12) { + u8 uvar3 = 0; + + if (*param_12 != 0) { + *param_12 += 1; + + if (*param_12 > 20) { + *param_12 = 0; + } + + if (g_env_light.mColPatMode == 0 && g_env_light.mColPatModeGather == 0) { + *param_11 = g_env_light.mColPatBlend; + + if (*param_11 >= 1.0f) { + *param_0 = *param_1; + *param_2 = *param_3; + } + } + } + + for (int i = 0; i < 11; i++) { + // dKyd_lightSchejule* schedule_p = &mpSchedule[i]; + + if (mDaytime >= mpSchedule->startTime && mDaytime <= mpSchedule->endTime) { + *param_9 = mpSchedule->startTimeLight; + *param_10 = mpSchedule->endTimeLight; + *param_8 = get_parcent(mpSchedule->endTime, mpSchedule->startTime, mDaytime); + + stage_envr_info_class* envr_p = &g_env_light.mpDmEnvr[*param_0]; + u32 tmp = *param_2; + switch (tmp) { + case 0: + uvar3 = envr_p->field_0x0[0]; + break; + case 1: + uvar3 = envr_p->field_0x0[1]; + break; + case 2: + uvar3 = envr_p->field_0x0[2]; + break; + case 3: + uvar3 = envr_p->field_0x0[3]; + break; + case 4: + uvar3 = envr_p->field_0x0[4]; + break; + case 5: + uvar3 = envr_p->field_0x0[5]; + break; + case 6: + uvar3 = envr_p->field_0x0[6]; + break; + case 7: + uvar3 = envr_p->field_0x0[7]; + break; + default: + if (tmp > 7 && tmp < 64) { + uvar3 = envr_p->field_0x0[tmp]; + } + break; + } + + if (g_env_light.mCameraInWater != 0 && + strcmp(dComIfGp_getStartStageName(), "D_MN08D") != 0 && + strcmp(dComIfGp_getStartStageName(), "D_MN01A") != 0) + { + if (g_env_light.mColPatCurr == 0) { + uvar3 = envr_p->field_0x0[8]; + } else { + uvar3 = envr_p->field_0x0[9]; + } + } else if (strcmp(dComIfGp_getStartStageName(), "R_SP127") == 0) { + camera_class* camera_p = dComIfGp_getCamera(0); + + if (camera_p != NULL && camera_p->mLookat.mEye.y < 0.0f) { + uvar3 = envr_p->field_0x0[10]; + } + } + + if (uvar3 > 250) { + uvar3 = 0; + } + + stage_pselect_info_class* pselect_p = &g_env_light.mpDmPselect[uvar3]; + switch (*param_9) { + case 0: + *param_4 = pselect_p->mPalIdx[0]; + break; + case 1: + *param_4 = pselect_p->mPalIdx[1]; + break; + case 2: + *param_4 = pselect_p->mPalIdx[2]; + break; + case 3: + *param_4 = pselect_p->mPalIdx[3]; + break; + case 4: + *param_4 = pselect_p->mPalIdx[4]; + break; + case 5: + *param_4 = pselect_p->mPalIdx[5]; + break; + } + + switch (*param_10) { + case 0: + *param_5 = pselect_p->mPalIdx[0]; + break; + case 1: + *param_5 = pselect_p->mPalIdx[1]; + break; + case 2: + *param_5 = pselect_p->mPalIdx[2]; + break; + case 3: + *param_5 = pselect_p->mPalIdx[3]; + break; + case 4: + *param_5 = pselect_p->mPalIdx[4]; + break; + case 5: + *param_5 = pselect_p->mPalIdx[5]; + break; + } + + stage_envr_info_class* envr_p2 = &g_env_light.mpDmEnvr[*param_1]; + u32 tmp_2 = *param_2; + switch (tmp_2) { + case 0: + uvar3 = envr_p2->field_0x0[0]; + break; + case 1: + uvar3 = envr_p2->field_0x0[1]; + break; + case 2: + uvar3 = envr_p2->field_0x0[2]; + break; + case 3: + uvar3 = envr_p2->field_0x0[3]; + break; + case 4: + uvar3 = envr_p2->field_0x0[4]; + break; + case 5: + uvar3 = envr_p2->field_0x0[5]; + break; + case 6: + uvar3 = envr_p2->field_0x0[6]; + break; + case 7: + uvar3 = envr_p2->field_0x0[7]; + break; + default: + if (tmp_2 > 7 && tmp_2 < 64) { + uvar3 = envr_p2->field_0x0[tmp_2]; + } + break; + } + + if (uvar3 > 250) { + uvar3 = 0; + } + + stage_pselect_info_class* pselect_p2 = &g_env_light.mpDmPselect[uvar3]; + if (*param_0 != *param_1 || *param_2 != tmp_2) { + if (pselect_p2->mChangeRate < 0.033333335f) { + pselect_p2->mChangeRate = 0.033333335f; + } + + if (g_env_light.mColPatMode == 0) { + if (pselect_p2->mChangeRate > 0.0f) { + *param_11 += 0.033333335f / pselect_p2->mChangeRate; + } + + if (strcmp(dComIfGp_getStartStageName(), "F_SP121") == 0 && + *param_2 == *param_3) + { + *param_11 += 0.06666667f; + } + + if (*param_11 >= 1.0f) { + *param_0 = *param_1; + *param_2 = *param_3; + *param_11 = 1.0f; + } + } + } + + if (g_env_light.mCameraInWater != 0 && + strcmp(dComIfGp_getStartStageName(), "D_MN08D") != 0 && + strcmp(dComIfGp_getStartStageName(), "D_MN01A") != 0) + { + if (g_env_light.mColPatCurr == 0) { + uvar3 = envr_p2->field_0x0[8]; + } else { + uvar3 = envr_p2->field_0x0[9]; + } + } else if (strcmp(dComIfGp_getStartStageName(), "R_SP127") == 0) { + camera_class* camera_p = dComIfGp_getCamera(0); + + if (camera_p != NULL && camera_p->mLookat.mEye.y < 0.0f) { + uvar3 = envr_p2->field_0x0[10]; + } + } + + switch (*param_9) { + case 0: + *param_6 = pselect_p2->mPalIdx[0]; + break; + case 1: + *param_6 = pselect_p2->mPalIdx[1]; + break; + case 2: + *param_6 = pselect_p2->mPalIdx[2]; + break; + case 3: + *param_6 = pselect_p2->mPalIdx[3]; + break; + case 4: + *param_6 = pselect_p2->mPalIdx[4]; + break; + case 5: + *param_6 = pselect_p2->mPalIdx[5]; + break; + } + + switch (*param_10) { + case 0: + *param_7 = pselect_p->mPalIdx[0]; + break; + case 1: + *param_7 = pselect_p->mPalIdx[1]; + break; + case 2: + *param_7 = pselect_p->mPalIdx[2]; + break; + case 3: + *param_7 = pselect_p->mPalIdx[3]; + break; + case 4: + *param_7 = pselect_p->mPalIdx[4]; + break; + case 5: + *param_7 = pselect_p->mPalIdx[5]; + break; + } + } + } + + if (*param_4 > 250) { + *param_4 = 0; + } + + if (*param_6 > 250) { + *param_6 = 0; + } + + if (*param_5 > 250) { + *param_5 = 0; + } + + if (*param_7 > 250) { + *param_7 = 0; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -2041,6 +2497,7 @@ asm void dScnKy_env_light_c::setLight_palno_get(u8* param_0, u8* param_1, u8* pa #include "asm/d/kankyo/d_kankyo/setLight_palno_get__18dScnKy_env_light_cFPUcPUcPUcPUcPUcPUcPUcPUcPfPiPiPfPUc.s" } #pragma pop +#endif /* 801A0340-801A040C 19AC80 00CC+00 3/3 0/0 0/0 .text * dKy_calc_color_set__FP11_GXColorS10P15color_RGB_classP15color_RGB_classP15color_RGB_classP15color_RGB_classff11_GXColorS10f @@ -2119,6 +2576,66 @@ asm void dScnKy_env_light_c::setLight_bg(dKy_tevstr_c* param_0, _GXColorS10* par } #pragma pop +/* void dScnKy_env_light_c::setLight_bg(dKy_tevstr_c* i_tevstr, _GXColorS10* param_1, + _GXColorS10* param_2, f32* param_3, f32* param_4) { + i_tevstr->mColpatPrev = g_env_light.mColPatPrev; + i_tevstr->mColpatCurr = g_env_light.mColPatCurr; + + if (i_tevstr->mColpatPrev != i_tevstr->mColpatCurr) { + i_tevstr->mColpatBlend = g_env_light.mColPatBlend; + } + + u8 sp9D; + u8 sp9F; + u8 sp9E; + u8 spA0; + f32 sp8C; + int sp90; + int sp94; + setLight_palno_get(&i_tevstr->mEnvrIdxPrev, &i_tevstr->mEnvrIdxCurr, &i_tevstr->mColpatPrev, + &i_tevstr->mColpatCurr, &sp9D, &sp9F, &sp9E, &spA0, &sp8C, &sp90, &sp94, + &i_tevstr->mColpatBlend, &i_tevstr->mInitTimer); + + stage_palette_info_class* palette_p = g_env_light.mpDmPalet; + + if (sp9D == 0xFF) { + for (int i = 0; i < 4; i++) { + param_1[i].r = 255; + param_1[i].g = 0; + param_1[i].b = 0; + } + } else { + for (int i = 0; i < 4; i++) { + GXColorS10 sp78; + sp78.r = mBgAddColAmb.r; + sp78.b = mBgAddColAmb.b; + + dKy_calc_color_set(¶m_1, &palette_p[sp9D].mK0Color[i], &palette_p[sp9E].mK0Color[i], + &palette_p[sp9F].mK0Color[i], &palette_p[spA0].mK0Color[i], sp8C, + i_tevstr->mColpatBlend, sp78, g_env_light.mColBgColRatio); + } + + if (daPy_py_c::checkNowWolfPowerUp()) { + dKy_WolfPowerup_BgAmbCol(param_1); + } + + param_1[3].a = 255; + param_1[2].a = 255; + param_1[1].a = 255; + param_1[0].a = 255; + + for (int i = 0; i < 4; i++) { + GXColorS10 sp80; + sp80.r = mBgAddColAmb.r; + sp80.b = mBgAddColAmb.b; + + dKy_calc_color_set(¶m_1, &palette_p[sp9D].mK0Color[i], &palette_p[sp9E].mK0Color[i], + &palette_p[sp9F].mK0Color[i], &palette_p[spA0].mK0Color[i], sp8C, + i_tevstr->mColpatBlend, sp80, g_env_light.mColBgColRatio); + } + } +} */ + /* 801A16C0-801A1D64 19C000 06A4+00 1/1 0/0 0/0 .text * setLight_actor__18dScnKy_env_light_cFP12dKy_tevstr_cP11_GXColorS10PfPf */ #pragma push @@ -2283,6 +2800,427 @@ SECTION_SDATA2 static f32 lit_7027 = 6.0f / 5.0f; /* 801A37C4-801A441C 19E104 0C58+00 2/1 14/14 515/515 .text * settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c */ +// almost, just some regalloc + literals +#ifdef NONMATCHING +void dScnKy_env_light_c::settingTevStruct(int i_tevstrType, cXyz* param_1, dKy_tevstr_c* i_tevstr) { + dScnKy_env_light_c* env_light = i_dKy_getEnvlight(); + u8 var_r30 = i_tevstr->mInitTimer; + + GXColorS10 sp30; + GXColorS10 K0_color; + + f32 fog_z_start; + f32 fog_z_end; + + cXyz spA4; + if (i_tevstr->mRoomNo < 0) { + i_tevstr->mRoomNo = dComIfGp_roomControl_getStayNo(); + } + + if (param_1 != NULL) { + spA4 = *param_1; + } else { + spA4.set(0.0f, 0.0f, 0.0f); + } + + if (i_tevstr != NULL && g_env_light.mActorLightEffect != 100) { + i_tevstr->field_0x374 = g_env_light.mActorLightEffect / 100.0f; + } + + i_tevstr->field_0x37a = i_tevstrType; + + if (i_tevstr->mInitType != 123 && i_tevstr->mInitType != 124) { + dKy_tevstr_init(i_tevstr, dComIfGp_roomControl_getStayNo(), 0xFF); + } + + i_tevstr->mInitType = 124; + mActorAmbience.a = 255; + + if (i_tevstrType == 14) { + camera_class* temp_r30 = dComIfGp_getCamera(0); + cXyz sp98; + i_tevstr->mLightMode = 0; + + if (i_tevstr->mRoomNo >= 0x80) { + i_tevstr->mEnvrIdxCurr = 0; + } else { + i_tevstr->mEnvrIdxCurr = i_tevstr->mRoomNo; + } + + if (!dKy_darkworld_check()) { + field_0x10f0.r = 24; + field_0x10f0.g = 24; + field_0x10f0.b = 24; + field_0x10f0.a = 255; + } else { + field_0x10f0.r = 55; + field_0x10f0.g = 55; + field_0x10f0.b = 77; + } + + K0_color.r = 255; + K0_color.g = 255; + K0_color.b = 255; + + fog_z_start = 30000.0f; + fog_z_end = 30000.0f; + dKyr_get_vectle_calc(&spA4, &temp_r30->mLookat.mEye, &sp98); + + for (int i = 0; i < 6; i++) { + J3DLightInfo& light_info = i_tevstr->field_0x074[i].getLightInfo(); + + if (i == 0) { + if (!dKy_darkworld_check()) { + light_info.mColor.r = 126; + light_info.mColor.g = 110; + light_info.mColor.b = 89; + } else { + light_info.mColor.r = 0; + light_info.mColor.g = 0; + light_info.mColor.b = 0; + } + } else if (i == 1) { + if (!dKy_darkworld_check()) { + light_info.mColor.r = 24; + light_info.mColor.g = 41; + light_info.mColor.b = 50; + } else { + light_info.mColor.r = 0; + light_info.mColor.g = 0; + light_info.mColor.b = 0; + } + } else { + light_info.mColor.r = 0; + light_info.mColor.g = 0; + light_info.mColor.b = 0; + } + + dKy_GXInitLightSpot(&light_info, 90.0f, 0); + dKy_GXInitLightDistAttn(&light_info, 100000.0f, 0.99999f, 3); + + light_info.mLightPosition.x = 0.0f; + light_info.mLightPosition.y = 0.0f; + light_info.mLightPosition.z = 0.0f; + + if (i == 0) { + light_info.mLightPosition.x = 500.0f; + light_info.mLightPosition.y = 500.0f; + light_info.mLightPosition.z = 500.0f; + } else { + light_info.mLightPosition.x = -500.0f; + light_info.mLightPosition.y = -500.0f; + light_info.mLightPosition.z = -500.0f; + } + + dKy_lightdir_set(0.0f, 0.0f, &light_info.mLightDirection); + + light_info.mLightDirection.x = -light_info.mLightDirection.x; + light_info.mLightDirection.y = -light_info.mLightDirection.y; + light_info.mLightDirection.z = -light_info.mLightDirection.z; + } + + MtxP view_mtx = j3dSys.getViewMtx(); + Vec sp8C; + Vec sp80; + + sp80.x = temp_r30->mLookat.mEye.x; + sp80.y = temp_r30->mLookat.mEye.y; + sp80.z = temp_r30->mLookat.mEye.z; + cMtx_multVec(view_mtx, &sp80, &sp8C); + + J3DLightInfo& light_info = i_tevstr->mLightObj.getLightInfo(); + light_info.mLightPosition = sp8C; + i_tevstr->field_0x32c = sp80; + i_tevstr->mLightPosWorld = sp80; + light_info.mLightDirection = g_env_light.field_0x1064; + + light_info.mColor.r = 0; + light_info.mColor.g = 0; + light_info.mColor.b = 0; + + light_info.mCosAtten.x = 1.0f; + light_info.mCosAtten.y = 0.0f; + light_info.mCosAtten.z = 0.0f; + + light_info.mDistAtten.x = 1.0f; + light_info.mDistAtten.y = 0.0f; + light_info.mDistAtten.z = 0.0f; + } else if (i_tevstrType == 12 || i_tevstrType == 13) { + camera_class* temp_r30_2 = dComIfGp_getCamera(0); + + i_tevstr->mFogColor.r = 0; + i_tevstr->mFogColor.g = 0; + i_tevstr->mFogColor.b = 0; + i_tevstr->mFogColor.a = 0; + + i_tevstr->field_0x360 = 0; + i_tevstr->field_0x361 = 0; + i_tevstr->field_0x362 = 0; + i_tevstr->field_0x363 = 0; + i_tevstr->mLightMode = 0; + + if (i_tevstr->mRoomNo >= 128) { + i_tevstr->mEnvrIdxCurr = 0; + } else { + i_tevstr->mEnvrIdxCurr = i_tevstr->mRoomNo; + } + + if (i_tevstrType == 12) { + field_0x10f0.r = 25; + field_0x10f0.g = 20; + field_0x10f0.b = 25; + } else { + field_0x10f0.r = 40; + field_0x10f0.g = 35; + field_0x10f0.b = 30; + } + + field_0x10f0.a = 0xFF; + + K0_color.r = 255; + K0_color.g = 255; + K0_color.b = 255; + + fog_z_start = 30000.0f; + fog_z_end = 30000.0f; + + for (int i = 0; i < 6; i++) { + J3DLightInfo& temp_r31 = i_tevstr->field_0x074[i].getLightInfo(); + + if (i == 0) { + if (i_tevstrType == 12) { + temp_r31.mLightPosition.x = -30000.0f; + temp_r31.mLightPosition.y = 18800.0f; + temp_r31.mLightPosition.z = 29000.0f; + temp_r31.mColor.r = 120; + temp_r31.mColor.g = 110; + temp_r31.mColor.b = 100; + } else { + temp_r31.mLightPosition.x = -37000.0f; + temp_r31.mLightPosition.y = 18800.0f; + temp_r31.mLightPosition.z = 500.0f; + temp_r31.mColor.r = 85; + temp_r31.mColor.g = 90; + temp_r31.mColor.b = 100; + } + } else if (i == 1) { + if (i_tevstrType == 12) { + temp_r31.mLightPosition.x = 14400.0f; + temp_r31.mLightPosition.y = 7500.0f; + temp_r31.mLightPosition.z = 3900.0f; + temp_r31.mColor.r = 30; + temp_r31.mColor.g = 45; + temp_r31.mColor.b = 30; + } else { + temp_r31.mLightPosition.x = 18000.0f; + temp_r31.mLightPosition.y = -6500.0f; + temp_r31.mLightPosition.z = -10000.0f; + temp_r31.mColor.r = 100; + temp_r31.mColor.g = 65; + temp_r31.mColor.b = 40; + } + } else { + temp_r31.mColor.r = 0; + temp_r31.mColor.g = 0; + temp_r31.mColor.b = 0; + } + + dKy_GXInitLightSpot(&temp_r31, 90.0f, 0); + dKy_GXInitLightDistAttn(&temp_r31, 100000.0f, 0.99999f, 3); + dKy_lightdir_set(0.0f, 0.0f, &temp_r31.mLightDirection); + + temp_r31.mLightDirection.x = -temp_r31.mLightDirection.x; + temp_r31.mLightDirection.y = -temp_r31.mLightDirection.y; + temp_r31.mLightDirection.z = -temp_r31.mLightDirection.z; + } + + MtxP view_mtx = j3dSys.getViewMtx(); + Vec sp74; + Vec sp68; + + sp68.x = temp_r30_2->mLookat.mEye.x; + sp68.y = temp_r30_2->mLookat.mEye.y; + sp68.z = temp_r30_2->mLookat.mEye.z; + + J3DLightInfo& light_info = i_tevstr->mLightObj.getLightInfo(); + cMtx_multVec(view_mtx, &sp68, &sp74); + + light_info.mLightPosition = sp74; + if (i_tevstrType == 13) { + i_tevstr->field_0x32c = sp68; + i_tevstr->mLightPosWorld = sp68; + } + + light_info.mLightDirection = g_env_light.field_0x1064; + + light_info.mColor.r = 0; + light_info.mColor.g = 0; + light_info.mColor.b = 0; + + light_info.mCosAtten.x = 1.0f; + light_info.mCosAtten.y = 0.0f; + light_info.mCosAtten.z = 0.0f; + + light_info.mDistAtten.x = 1.0f; + light_info.mDistAtten.y = 0.0f; + light_info.mDistAtten.z = 0.0f; + } else if (!(i_tevstrType & 0xF0)) { + i_tevstr->mLightMode = 1; + + sp30 = mActorAmbience; + K0_color = mFogColor; + + fog_z_start = mFogNear; + fog_z_end = mFogFar; + + if (i_tevstrType == 0 || i_tevstrType == 0 || i_tevstrType == 8 || i_tevstrType == 7 || + i_tevstrType == 1 || i_tevstrType == 2 || i_tevstrType == 3 || i_tevstrType == 5 || + i_tevstrType == 4 || i_tevstrType == 11) + { + settingTevStruct_colget_actor(param_1, i_tevstr, &sp30, &K0_color, &fog_z_start, + &fog_z_end); + } else if (i_tevstrType == 10 || i_tevstrType == 9) { + if (g_env_light.field_0x98c != (u8)dComIfGp_roomControl_getStayNo()) { + g_env_light.field_0x98c = dComIfGp_roomControl_getStayNo(); + mDoAud_setSceneName( + dComIfGp_getStartStageName(), dComIfGp_roomControl_getStayNo(), + dComIfG_play_c::getLayerNo_common(dComIfGp_getStartStageName(), + dComIfGp_roomControl_getStayNo(), + dComIfGp_getStartStageLayer())); + + if (strcmp(dComIfGp_getStartStageName(), "F_SP121") == 0) { + mDoAud_load2ndDynamicWave(); + } + } + var_r30 = g_env_light.mInitAnmTimer; + settingTevStruct_colget_player(i_tevstr); + settingTevStruct_colget_actor(param_1, i_tevstr, &sp30, &K0_color, &fog_z_start, + &fog_z_end); + } + + field_0x10f0.r = sp30.r; + field_0x10f0.g = sp30.g; + field_0x10f0.b = sp30.b; + field_0x10f0.a = 255; + + if (i_tevstrType != 11) { + settingTevStruct_plightcol_plus(param_1, i_tevstr, sp30, sp30, var_r30); + } + + if (i_tevstrType == 10 || i_tevstrType == 9) { + g_env_light.mPLightNearPos = i_tevstr->mLightPosWorld; + } + } else { + i_tevstr->mLightMode = 0; + if (i_tevstr->field_0x37a != 20) { + i_tevstr->field_0x374 = g_env_light.mPaletteTerrainLightEffect; + } else { + switch (i_tevstr->field_0x364) { + case 0: + i_tevstr->field_0x374 = 0.2f; + break; + case 1: + i_tevstr->field_0x374 = 0.3f; + break; + case 2: + i_tevstr->field_0x374 = 0.4f; + break; + case 3: + i_tevstr->field_0x374 = 0.6f; + break; + case 4: + i_tevstr->field_0x374 = 0.8f; + break; + case 5: + i_tevstr->field_0x374 = 0.9f; + break; + case 6: + i_tevstr->field_0x374 = 1.0f; + break; + case 7: + i_tevstr->field_0x374 = 1.2f; + break; + default: + i_tevstr->field_0x374 = 1.0f; + break; + } + } + + if (i_tevstr->mRoomNo >= 128) { + i_tevstr->mEnvrIdxCurr = 0; + } else { + i_tevstr->mEnvrIdxCurr = i_tevstr->mRoomNo; + } + + GXColorS10 spB0[4]; + setLight_bg(i_tevstr, spB0, &K0_color, &fog_z_start, &fog_z_end); + + field_0x10f0 = spB0[i_tevstrType & 3]; + + MtxP view_mtx = j3dSys.getViewMtx(); + Vec sp5C; + cXyz sp58; + bool var_r25_3 = 0; + sp58.z = 0.0f; + sp58.y = 0.0f; + sp58.x = 0.0f; + + int temp_r3_2 = dKy_light_influence_id(sp58, 0); + if (temp_r3_2 >= 0 && g_env_light.mPointLight[temp_r3_2]->mIndex < 0) { + var_r25_3 = 1; + } + + if (var_r25_3 == 1) { + sp58 = g_env_light.mPointLight[temp_r3_2]->mPosition; + J3DLightInfo& light_info = i_tevstr->mLightObj.getLightInfo(); + + cMtx_multVec(view_mtx, &sp58, &sp5C); + + light_info.mLightPosition = sp5C; + i_tevstr->field_0x32c = sp58; + light_info.mLightDirection = g_env_light.field_0x1064; + + light_info.mColor.a = g_env_light.mPointLight[temp_r3_2]->mColor.a; + light_info.mColor.r = g_env_light.mPointLight[temp_r3_2]->mColor.r; + light_info.mColor.g = g_env_light.mPointLight[temp_r3_2]->mColor.g; + light_info.mColor.b = g_env_light.mPointLight[temp_r3_2]->mColor.b; + dKy_GXInitLightSpot(&light_info, 90.0f, 0); + dKy_GXInitLightDistAttn(&light_info, g_env_light.mPointLight[temp_r3_2]->mPow * 0.001f, + 0.99999f, 3); + } else { + MtxP view_mtx = j3dSys.getViewMtx(); + J3DLightInfo& light_info = i_tevstr->mLightObj.getLightInfo(); + Vec sp44; + cMtx_multVec(view_mtx, &lightStatusData[0].field_0x0, &sp44); + + light_info.mLightPosition = sp44; + i_tevstr->field_0x32c = lightStatusData[0].field_0x0; + light_info.mLightDirection = g_env_light.field_0x1064; + + light_info.mColor.r = 0; + light_info.mColor.g = 0; + light_info.mColor.b = 0; + + light_info.mCosAtten.x = 0.0f; + light_info.mCosAtten.y = 0.0f; + light_info.mCosAtten.z = 0.0f; + + light_info.mDistAtten.x = 0.0f; + light_info.mDistAtten.y = 0.0f; + light_info.mDistAtten.z = 0.0f; + } + + i_tevstr->mLightPosWorld = g_env_light.mBaseLightInfluence.mPosition; + // i_tevstr->mLightPosWorld = env_light->mBaseLightInfluence.mPosition; + } + + field_0x10f0.a = 255; + i_tevstr->mColorC0 = field_0x10f0; + i_tevstr->mColorK0 = K0_color; + i_tevstr->mFogStartZ = fog_z_start; + i_tevstr->mFogEndZ = fog_z_end; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -2291,12 +3229,11 @@ asm void dScnKy_env_light_c::settingTevStruct(int param_0, cXyz* param_1, dKy_te #include "asm/d/kankyo/d_kankyo/settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c.s" } #pragma pop +#endif /* 801A441C-801A4420 19ED5C 0004+00 0/0 0/0 2/2 .text * setLightTevColorType__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c */ -void dScnKy_env_light_c::setLightTevColorType(J3DModelData* param_0, dKy_tevstr_c* param_1) { - /* empty function */ -} +void dScnKy_env_light_c::setLightTevColorType(J3DModelData* param_0, dKy_tevstr_c* param_1) {} /* ############################################################################################## */ /* 80453D90-80453D94 002390 0004+00 1/1 0/0 0/0 .sdata2 @7186 */ @@ -2331,36 +3268,85 @@ void J3DColorBlock::setAmbColor(u32 param_0, J3DGXColor const* param_1) { /* 801A4C10-801A4DA0 19F550 0190+00 1/1 0/0 0/0 .text * dKy_cloudshadow_scroll__FP12J3DModelDataP12dKy_tevstr_ci */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void dKy_cloudshadow_scroll(J3DModelData* param_0, dKy_tevstr_c* param_1, int param_2) { - nofralloc -#include "asm/d/kankyo/d_kankyo/dKy_cloudshadow_scroll__FP12J3DModelDataP12dKy_tevstr_ci.s" +static void dKy_cloudshadow_scroll(J3DModelData* i_modelData, dKy_tevstr_c* i_tevstr, int param_2) { + JUTNameTab* mat_nametbl = i_modelData->getMaterialName(); + + for (int i = i_modelData->getMaterialNum() - 1; i >= 0; i--) { + J3DMaterial* mat_p = i_modelData->getMaterialNodePointer(i); + + int tmp = param_2; + if (i_tevstr->field_0x378 != 0 && i_tevstr->field_0x378 == i) { + tmp = 2; + } + + setLightTevColorType_MAJI_sub(mat_p, i_tevstr, tmp); + + const char* mat_name = mat_nametbl->getName(i); + if ((mat_name[3] == 'M' && mat_name[4] == 'A' && mat_name[5] == '0' && + (mat_name[6] == '0' || mat_name[6] == '1')) || + (mat_name[5] == '1' && mat_name[6] == '6')) + { + if (mat_name[6] == '0') { + J3DGXColor k_color; + k_color.r = g_env_light.mFogDensity; + k_color.g = 0; + k_color.b = 0; + k_color.a = 0; + mat_p->setTevKColor(1, &k_color); + } + + if (mat_p->getTexGenBlock()->getTexMtx(1) != NULL) { + J3DTexMtxInfo* tex_mtx_inf = + &mat_p->getTexGenBlock()->getTexMtx(1)->getTexMtxInfo(); + + if (tex_mtx_inf != NULL && g_env_light.mpVrkumoPacket != NULL) { + tex_mtx_inf->mSRT.mTranslationX = g_env_light.mpVrkumoPacket->field_0x1150; + tex_mtx_inf->mSRT.mTranslationY = g_env_light.mpVrkumoPacket->field_0x1154; + } + } + } + } } -#pragma pop /* 801A4DA0-801A4E90 19F6E0 00F0+00 0/0 18/18 536/536 .text * setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dScnKy_env_light_c::setLightTevColorType_MAJI(J3DModelData* param_0, - dKy_tevstr_c* param_1) { - nofralloc -#include "asm/d/kankyo/d_kankyo/setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c.s" +void dScnKy_env_light_c::setLightTevColorType_MAJI(J3DModelData* i_modelData, + dKy_tevstr_c* i_tevstr) { + if (i_tevstr->mInitType != 124) { + if (i_tevstr->mInitType != 123) { + dKy_tevstr_init(i_tevstr, dComIfGp_roomControl_getStayNo(), 0xFF); + } + + settingTevStruct(11, NULL, i_tevstr); + } + + dKy_setLight_nowroom_actor(i_tevstr); + + int tmp; + if (i_tevstr->field_0x37a > 10 && i_tevstr->field_0x37a != 12 && i_tevstr->field_0x37a != 13) { + tmp = 0; + } else { + tmp = 1; + } + + if (i_tevstr->field_0x37a & 0x20) { + dKy_cloudshadow_scroll(i_modelData, i_tevstr, tmp); + } else { + for (int i = i_modelData->getMaterialNum() - 1; i >= 0; i--) { + setLightTevColorType_MAJI_sub(i_modelData->getMaterialNodePointer(i), i_tevstr, tmp); + } + } } -#pragma pop /* 801A4E90-801A4F24 19F7D0 0094+00 1/1 0/0 0/0 .text CalcTevColor__18dScnKy_env_light_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dScnKy_env_light_c::CalcTevColor() { - nofralloc -#include "asm/d/kankyo/d_kankyo/CalcTevColor__18dScnKy_env_light_cFv.s" +void dScnKy_env_light_c::CalcTevColor() { + fopAc_ac_c* player_p = dComIfGp_getPlayer(0); + + if (player_p != NULL) { + mPlayerEfLightIdx = dKy_eflight_influence_id(player_p->current.pos, 0); + mPlayerPLightIdx = dKy_light_influence_id(player_p->current.pos, 0); + } } -#pragma pop /* 801A4F24-801A4F64 19F864 0040+00 1/1 0/0 0/0 .text Sndpos__18dScnKy_env_light_cFv */ void dScnKy_env_light_c::Sndpos() { @@ -2385,14 +3371,10 @@ asm void dScnKy_env_light_c::Eflight_flush_proc() { /* ############################################################################################## */ /* 80450700-80450704 000180 0002+02 2/2 0/0 0/0 .sdata lightMask */ -SECTION_SDATA static u16 lightMask[1 + 1 /* padding */] = { - 0x0001, - /* padding */ - 0x0000, -}; +SECTION_SDATA static u16 lightMask = 0x0001; /* 80450704-80450708 -00001 0004+00 3/3 0/0 0/0 .sdata lightStatusPt */ -SECTION_SDATA static void* lightStatusPt = (void*)&lightStatusData; +SECTION_SDATA static LightStatus* lightStatusPt = lightStatusData; /* 80453D98-80453D9C 002398 0004+00 1/1 0/0 0/0 .sdata2 @7365 */ SECTION_SDATA2 static f32 lit_7365 = 67.5f; @@ -2472,42 +3454,38 @@ asm void dKy_undwater_filter_draw() { #pragma pop /* 801A5B6C-801A5B98 1A04AC 002C+00 1/0 0/0 0/0 .text dKy_Draw__FP17sub_kankyo__class */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void dKy_Draw(sub_kankyo__class* param_0) { - nofralloc -#include "asm/d/kankyo/d_kankyo/dKy_Draw__FP17sub_kankyo__class.s" +static int dKy_Draw(sub_kankyo__class* i_this) { + g_env_light.drawKankyo(); + return 1; } -#pragma pop /* 801A5B98-801A5BCC 1A04D8 0034+00 1/0 0/0 0/0 .text dKy_Execute__FP17sub_kankyo__class */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void dKy_Execute(sub_kankyo__class* param_0) { - nofralloc -#include "asm/d/kankyo/d_kankyo/dKy_Execute__FP17sub_kankyo__class.s" +static int dKy_Execute(sub_kankyo__class* i_this) { + g_env_light.exeKankyo(); + dKyw_wind_set(); + dKy_twilight_camelight_set(); + return 1; } -#pragma pop /* 801A5BCC-801A5BD4 1A050C 0008+00 1/0 0/0 0/0 .text dKy_IsDelete__FP17sub_kankyo__class */ -static bool dKy_IsDelete(sub_kankyo__class* param_0) { - return true; +static int dKy_IsDelete(sub_kankyo__class* i_this) { + return 1; } /* 801A5BD4-801A5C1C 1A0514 0048+00 1/0 0/0 0/0 .text dKy_Delete__FP17sub_kankyo__class */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void dKy_Delete(sub_kankyo__class* param_0) { - nofralloc -#include "asm/d/kankyo/d_kankyo/dKy_Delete__FP17sub_kankyo__class.s" +static int dKy_Delete(sub_kankyo__class* i_this) { + plight_init(); + mDoAud_mEnvse_resetScene(); + + if (g_env_light.field_0xf38 != NULL) { + mDoExt_destroySolidHeap(g_env_light.field_0xf38); + } + + return 1; } -#pragma pop /* ############################################################################################## */ /* 80394C6C-80394C6C 0212CC 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ @@ -2525,7 +3503,7 @@ SECTION_DEAD static char const* const stringBase_80394E5E = "colordata_tbl.dat"; /* 801A5C1C-801A5E54 1A055C 0238+00 1/0 0/0 0/0 .text dKy_Create__FPv */ // matches with literals #ifdef NONMATCHING -static int dKy_Create(void*) { +static int dKy_Create(void* i_this) { BOOL setNextTime = false; stage_envr_info_class* envr = dComIfGp_getStageEnvrInfo(); if (envr != NULL && dComIfGp_getStartStageRoomNo() != -1) { @@ -2604,6 +3582,34 @@ void dKy_setLight() { } /* 801A60E0-801A61F4 1A0A20 0114+00 2/2 0/0 0/0 .text dKy_GlobalLight_set__Fv */ +// matches with literals +#ifdef NONMATCHING +static void dKy_GlobalLight_set() { + MtxP view_mtx = j3dSys.getViewMtx(); + + for (int i = 0; i < 8; i++) { + LightStatus* light_status = &lightStatusData[i]; + + Vec light_pos; + cMtx_multVec(view_mtx, &light_status->field_0x0, &light_pos); + + GXLightObj light_obj; + GXInitLightPos(&light_obj, light_pos.x, light_pos.y, light_pos.z); + GXInitLightDir(&light_obj, light_status->mLightDir.x, light_status->mLightDir.y, + light_status->mLightDir.z); + GXInitLightColor(&light_obj, light_status->field_0x18); + + if (light_status->mRefDist <= 0.0f) { + light_status->mRefDist = 1.0E-6f; + } + + GXInitLightDistAttn(&light_obj, light_status->mRefDist, light_status->mRefBrightness, + light_status->mDistFn); + GXInitLightSpot(&light_obj, light_status->mCutoff, light_status->mSpotFn); + GXLoadLightObjImm(&light_obj, (GXLightID)lightMaskData[i]); + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -2612,6 +3618,7 @@ static asm void dKy_GlobalLight_set() { #include "asm/d/kankyo/d_kankyo/dKy_GlobalLight_set__Fv.s" } #pragma pop +#endif /* 801A61F4-801A6278 1A0B34 0084+00 3/3 0/0 0/0 .text * dKy_lightswitch_check__FP30stage_pure_lightvec_info_classc */ @@ -2997,7 +4004,8 @@ void dKy_SordFlush_set(cXyz param_0, int param_1) { dScnKy_env_light_c* light = i_dKy_getEnvlight(); if (!dKy_darkworld_check() && - (light->mThunderEff.mStateTimer >= 10 || light->mThunderEff.field_0x8 <= 0.0f)) { + (light->mThunderEff.mStateTimer >= 10 || light->mThunderEff.field_0x8 <= 0.0f)) + { if (g_env_light.mSwordLight.mState == 0) { g_env_light.mSwordLight.mState = 1; g_env_light.mSwordLight.mLightType = param_1; @@ -3120,7 +4128,7 @@ void dKy_setLight_mine(dKy_tevstr_c* p_tevstr) { } /* 801A88EC-801A8A34 1A322C 0148+00 2/2 5/5 11/11 .text dKy_tevstr_init__FP12dKy_tevstr_cScUc */ -// almost +// matches with literals #ifdef NONMATCHING void dKy_tevstr_init(dKy_tevstr_c* p_tevstr, s8 roomNo, u8 param_2) { memset(p_tevstr, 0, sizeof(dKy_tevstr_c)); @@ -3153,16 +4161,17 @@ void dKy_tevstr_init(dKy_tevstr_c* p_tevstr, s8 roomNo, u8 param_2) { p_tevstr->mLightObj.mInfo.mDistAtten.z = 0.0f; for (int i = 0; i < 6; i++) { - J3DLightObj* light = &p_tevstr->field_0x074[i]; + J3DLightObj* tev_light_p = &p_tevstr->field_0x074[i]; + LightStatus* light_data_p = &lightStatusData[i]; - lightStatusData[i].field_0x0 = light->mInfo.mLightPosition; - lightStatusData[i].field_0x18 = light->mInfo.mColor; - lightStatusData[i].field_0x1c.x = 1.0f; - lightStatusData[i].field_0x1c.y = 0.0f; - lightStatusData[i].field_0x1c.z = 0.0f; - lightStatusData[i].field_0x28.x = 1.0f; - lightStatusData[i].field_0x28.y = 0.0f; - lightStatusData[i].field_0x28.z = 0.0f; + tev_light_p->mInfo.mLightPosition = light_data_p->field_0x0; + tev_light_p->mInfo.mColor = light_data_p->field_0x18; + tev_light_p->mInfo.mCosAtten.x = 1.0f; + tev_light_p->mInfo.mCosAtten.y = 0.0f; + tev_light_p->mInfo.mCosAtten.z = 0.0f; + tev_light_p->mInfo.mDistAtten.x = 1.0f; + tev_light_p->mInfo.mDistAtten.y = 0.0f; + tev_light_p->mInfo.mDistAtten.z = 0.0f; } } #else @@ -3548,7 +4557,8 @@ u8 dKy_pol_sound_get(cBgS_PolyInfo const* p_poly) { int att0 = dComIfG_Bgsp().GetPolyAtt0(*p_poly); if (!strcmp(dComIfGp_getStartStageName(), "F_SP127") && g_env_light.field_0x12fe == 4 && - att0 == 4) { + att0 == 4) + { att0 = 13; } @@ -3577,7 +4587,8 @@ u8 dKy_pol_argument_get(cBgS_PolyInfo const* p_poly) { int att0 = dComIfG_Bgsp().GetPolyAtt0(*p_poly); if (!strcmp(dComIfGp_getStartStageName(), "F_SP127") && g_env_light.field_0x12fe == 4 && - att0 == 4) { + att0 == 4) + { att0 = 13; } @@ -3718,7 +4729,8 @@ bool dKy_SunMoon_Light_Check() { // stage is not City in the Sky, Hyrule Castle, or Hidden Skill area if (memcmp(dComIfGp_getStartStageName(), "D_MN07", 6) && memcmp(dComIfGp_getStartStageName(), "D_MN09", 6) && - strcmp(dComIfGp_getStartStageName(), "F_SP200")) { + strcmp(dComIfGp_getStartStageName(), "F_SP200")) + { check = true; } } @@ -3828,7 +4840,8 @@ static int dKy_F_SP121Check(char const* stageName, int roomNo, u8* out_darkLv, i // - Lanayru Field / Great Bridge of Hylia Path North (11) and South (12) // - Faron Field / Great Bridge of Hylia Path North (14) // - Lanayru Field / Outside Hidden Village Path (9) - else if (roomNo >= 9 && roomNo <= 14) { + else if (roomNo >= 9 && roomNo <= 14) + { if (out_darkLv != NULL) { *out_darkLv = LANAYRU; } @@ -3839,13 +4852,15 @@ static int dKy_F_SP121Check(char const* stageName, int roomNo, u8* out_darkLv, i // - Faron Field (6) // - Faron Field / Kakariko Gorge Path South (1) // - Faron Field / Great Bridge of Hylia Path South (15) - else { + else + { result = -1; } } // Faron Spring; No twilight during Rusl cutscene at very beginning of game. - else if (!strcmp(stageName, "F_SP108") && roomNo == 1 && dComIfGp_getStartStageLayer() == 13) { + else if (!strcmp(stageName, "F_SP108") && roomNo == 1 && dComIfGp_getStartStageLayer() == 13) + { result = -1; } @@ -3918,7 +4933,8 @@ BOOL dKy_darkworld_spot_check(char const* stageName, int roomNo) { for (int i = 0; i < 34; i++) { if (!strcmp(stageName, darkworldTblPtr->stageName) && - dKy_F_SP121Check(stageName, roomNo, NULL, i) >= 0) { + dKy_F_SP121Check(stageName, roomNo, NULL, i) >= 0) + { result = TRUE; break; } diff --git a/src/m_Do/m_Do_ext.cpp b/src/m_Do/m_Do_ext.cpp index 6699dbbe7f..6cbf0a2002 100644 --- a/src/m_Do/m_Do_ext.cpp +++ b/src/m_Do/m_Do_ext.cpp @@ -14,15 +14,16 @@ #include "JSystem/JMath/JMath.h" #include "MSL_C/stdio.h" #include "MSL_C/string.h" -#include "SSystem/SComponent/c_xyz.h" #include "SSystem/SComponent/c_lib.h" +#include "SSystem/SComponent/c_xyz.h" #include "Z2AudioLib/Z2Creature.h" +#include "d/com/d_com_inf_game.h" +#include "d/kankyo/d_kankyo.h" #include "dol2asm.h" #include "dolphin/gx/GXDraw.h" #include "dolphin/mtx/mtx.h" #include "dolphin/os/OS.h" #include "dolphin/types.h" -#include "d/kankyo/d_kankyo.h" #include "global.h" #include "m_Do/m_Do_mtx.h" @@ -36,16 +37,8 @@ struct J3DDrawBuffer { /* 8032548C */ void entryImm(J3DPacket*, u16); }; -struct dDlst_list_c { - /* 800565EC */ void entryZSortXluDrawList(J3DDrawBuffer*, J3DPacket*, cXyz&); -}; - struct ResFONT {}; -struct JUtility { - struct TColor {}; -}; - struct JUTResFont { /* 802DEF94 */ JUTResFont(ResFONT const*, JKRHeap*); }; @@ -435,11 +428,9 @@ extern "C" extern u8 const j3dDefaultTevStageInfo[20]; extern "C" extern u8 const j3dDefaultIndTevStageInfo[12]; extern "C" extern void* __vt__9J3DPacket[5]; extern "C" extern void* __vt__8J3DModel[9]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; extern "C" u8 mCurrentMtx__6J3DSys[48]; extern "C" f32 mParentS__6J3DSys[3]; extern "C" u8 sGDLObj__17J3DDisplayListObj[16]; -extern "C" extern f32 G_CM3D_F_ABS_MIN[1 + 1 /* padding */]; extern "C" u8 sCurrentHeap__7JKRHeap[4]; extern "C" u8 sOldVcdVatCmd__8J3DShape[4]; extern "C" u8 mJoint__10J3DMtxCalc[4]; @@ -1532,7 +1523,8 @@ void mDoExt_modelUpdate(J3DModel* i_model) { J3DModelData* model_data = i_model->getModelData(); if (model_data->getMaterialNodePointer(0)->getSharedDisplayListObj() != NULL && - !model_data->isLocked()) { + !model_data->isLocked()) + { i_model->calc(); mDoExt_modelDiff(i_model); } else { @@ -1548,7 +1540,8 @@ void mDoExt_modelUpdateDL(J3DModel* i_model) { J3DModelData* model_data = i_model->getModelData(); if (model_data->getMaterialNodePointer(0)->getSharedDisplayListObj() != NULL && - !model_data->isLocked()) { + !model_data->isLocked()) + { i_model->calc(); mDoExt_modelDiff(i_model); } else { @@ -1566,7 +1559,8 @@ void mDoExt_modelEntryDL(J3DModel* i_model) { J3DModelData* model_data = i_model->getModelData(); if (model_data->getMaterialNodePointer(0)->getSharedDisplayListObj() != NULL && - !model_data->isLocked()) { + !model_data->isLocked()) + { mDoExt_modelDiff(i_model); } else { i_model->unlock(); @@ -1980,7 +1974,8 @@ asm void J3DTevStage::setTevStageInfo(J3DTevStageInfo const& param_0) { #pragma pop /* 8000E460-8000E464 008DA0 0004+00 0/0 3/3 0/0 .text __ct__13J3DGXColorS10Fv */ -J3DGXColorS10::J3DGXColorS10() { +// J3DGXColorS10::J3DGXColorS10() { +extern "C" void __ct__13J3DGXColorS10Fv() { /* empty function */ } @@ -2005,7 +2000,8 @@ asm J3DColorChan::J3DColorChan() { #pragma pop /* 8000E538-8000E53C 008E78 0004+00 0/0 3/3 0/0 .text __ct__10J3DGXColorFv */ -J3DGXColor::J3DGXColor() { +// J3DGXColor::J3DGXColor() { +extern "C" void __ct__10J3DGXColorFv() { /* empty function */ } @@ -2144,24 +2140,63 @@ asm void mDoExt_setupShareTexture(J3DModelData* i_modelData, J3DModelData* i_sha #pragma force_active on // MWCC ignores mapping of some japanese characters using the // byte 0x5C (ASCII '\'). This is why this string is hex-encoded. + // "ソリッドヒープちゃうがな!\n" // "This isn't a solid heap! \n" SECTION_DEAD static char const* const stringBase_803740FC = "\x83\x5C\x83\x8A\x83\x62\x83\x68\x83\x71\x81\x5B\x83\x76\x82\xBF\x82\xE1\x82\xA4\x82\xAA\x82" "\xC8\x81\x49\x0A"; -SECTION_DEAD static char const* const stringBase_80374118 = "%s.bti"; #pragma pop /* 8000EA80-8000ECC0 0093C0 0240+00 0/0 0/0 6/6 .text mDoExt_setupStageTexture__FP12J3DModelData */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void mDoExt_setupStageTexture(J3DModelData* param_0) { - nofralloc -#include "asm/m_Do/m_Do_ext/mDoExt_setupStageTexture__FP12J3DModelData.s" +void mDoExt_setupStageTexture(J3DModelData* i_modelData) { + J3DTexture* texture_p = i_modelData->getTexture(); + + if (texture_p != NULL) { + JUTNameTab* tex_name_p = i_modelData->getTextureName(); + if (tex_name_p != NULL) { + bool set_timg = false; + + for (u16 i = 0; i < texture_p->getNum(); i++) { + ResTIMG* img = texture_p->getResTIMG(i); + if (img->imageOffset == 0) { + char res_name[64]; + snprintf(res_name, sizeof(res_name), "%s.bti", tex_name_p->getName(i)); + + ResTIMG* timg = (ResTIMG*)dComIfG_getStageRes(res_name); + texture_p->setResTIMG(i, *timg); + set_timg = true; + } + } + + if (set_timg) { + j3dSys.setTexture(texture_p); + + for (u16 i = 0; i < i_modelData->getMaterialNum(); i++) { + J3DMaterial* mat_p = i_modelData->getMaterialNodePointer(i); + J3DTevBlock* block_p = mat_p->getTevBlock(); + + if (block_p != NULL) { + J3DDisplayListObj* dlObj_p = mat_p->getSharedDisplayListObj(); + + if (dlObj_p != NULL) { + BOOL state = OSDisableInterrupts(); + + GDInitGDLObj(&J3DDisplayListObj::sGDLObj, dlObj_p->getDisplayList(0), + dlObj_p->getDisplayListSize()); + GDSetCurrent(&J3DDisplayListObj::sGDLObj); + block_p->patchTexNoAndTexCoordScale(); + + OSRestoreInterrupts(state); + GDSetCurrent(NULL); + } + } + } + } + } + } } -#pragma pop /* ############################################################################################## */ /* 80450C20-80450C24 000120 0004+00 2/1 0/0 0/0 .sbss AssertHeap */ @@ -2724,9 +2759,9 @@ extern "C" asm void __dt__16mDoExt_McaMorfSOFv() { */ #ifdef NONMATCHING int mDoExt_McaMorfSO::create(J3DModelData* i_modelData, mDoExt_McaMorfCallBack1_c* param_1, - mDoExt_McaMorfCallBack2_c* param_2, J3DAnmTransform* param_3, - int param_4, f32 param_5, int param_6, int param_7, - Z2Creature* i_sound, u32 param_9, u32 param_10) { + mDoExt_McaMorfCallBack2_c* param_2, J3DAnmTransform* param_3, + int param_4, f32 param_5, int param_6, int param_7, + Z2Creature* i_sound, u32 param_9, u32 param_10) { mpModel = NULL; mpTransformInfo = NULL; mpQuat = NULL; @@ -2773,7 +2808,8 @@ int mDoExt_McaMorfSO::create(J3DModelData* i_modelData, mDoExt_McaMorfCallBack1_ for (int i = 0; i < modelData->getJointNum(); i++) { transInfo = &modelData->getJointNodePointer(i)->getTransformInfo(); - JMAEulerToQuat(transInfo->mRotation.x, transInfo->mRotation.y, transInfo->mRotation.z, quat); + JMAEulerToQuat(transInfo->mRotation.x, transInfo->mRotation.y, + transInfo->mRotation.z, quat); transInfo++; quat++; @@ -2804,9 +2840,9 @@ int mDoExt_McaMorfSO::create(J3DModelData* i_modelData, mDoExt_McaMorfCallBack1_ #pragma optimization_level 0 #pragma optimizewithasm off asm int mDoExt_McaMorfSO::create(J3DModelData* param_0, mDoExt_McaMorfCallBack1_c* param_1, - mDoExt_McaMorfCallBack2_c* param_2, J3DAnmTransform* param_3, - int param_4, f32 param_5, int param_6, int param_7, - Z2Creature* param_8, u32 param_9, u32 param_10) { + mDoExt_McaMorfCallBack2_c* param_2, J3DAnmTransform* param_3, + int param_4, f32 param_5, int param_6, int param_7, + Z2Creature* param_8, u32 param_9, u32 param_10) { nofralloc #include "asm/m_Do/m_Do_ext/func_800108F0.s" } @@ -3291,7 +3327,8 @@ void drawCube(MtxP mtx, cXyz* pos, const GXColor& color) { GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX8); GXSetNumChans(1); - GXSetChanCtrl(GX_COLOR0, GX_DISABLE, GX_SRC_REG, GX_SRC_REG, GX_LIGHT_NULL, GX_DF_CLAMP, GX_AF_NONE); + GXSetChanCtrl(GX_COLOR0, GX_DISABLE, GX_SRC_REG, GX_SRC_REG, GX_LIGHT_NULL, GX_DF_CLAMP, + GX_AF_NONE); GXSetNumTexGens(0); GXSetNumTevStages(1); GXSetTevColor(GX_TEVREG0, color); @@ -3328,14 +3365,9 @@ void drawCube(MtxP mtx, cXyz* pos, const GXColor& color) { void mDoExt_cubePacket::draw() { static cXyz l_pos[8] = { - cXyz(-1.0f, 1.0f, -1.0f), - cXyz(1.0f, 1.0f, -1.0f), - cXyz(-1.0f, 1.0f, 1.0f), - cXyz(1.0f, 1.0f, 1.0f), - cXyz(-1.0f, -1.0f, -1.0f), - cXyz(1.0f, -1.0f, -1.0f), - cXyz(-1.0f, -1.0f, 1.0f), - cXyz(1.0f, -1.0f, 1.0f), + cXyz(-1.0f, 1.0f, -1.0f), cXyz(1.0f, 1.0f, -1.0f), cXyz(-1.0f, 1.0f, 1.0f), + cXyz(1.0f, 1.0f, 1.0f), cXyz(-1.0f, -1.0f, -1.0f), cXyz(1.0f, -1.0f, -1.0f), + cXyz(-1.0f, -1.0f, 1.0f), cXyz(1.0f, -1.0f, 1.0f), }; mDoMtx_stack_c::transS(mPosition.x, mPosition.y, mPosition.z); @@ -3372,7 +3404,7 @@ void mDoExt_cylinderPacket::draw() { mDoMtx_stack_c::transM(mPosition.x, mPosition.y + mHeight * 0.5f, mPosition.z); mDoMtx_stack_c::scaleM(mRadius, mRadius * 0.5f, mRadius); mDoMtx_stack_c::XrotM(0x4000); - + GXLoadPosMtxImm(mDoMtx_stack_c::get(), 0); mDoMtx_stack_c::inverseTranspose(); @@ -3554,10 +3586,12 @@ J3DModel* mDoExt_J3DModel__create(J3DModelData* i_modelData, u32 modelFlag, u32 // Set up the model if (!model->entryModelData(i_modelData, modelFlag, 1)) { - if (modelFlag == J3DMdlFlag_Unk80000 && model->newDifferedDisplayList(differedDlistFlag)) { + if (modelFlag == J3DMdlFlag_Unk80000 && + model->newDifferedDisplayList(differedDlistFlag)) + { return NULL; } - + model->lock(); return model; } From 9773c9dbf11bf68b24d66b7718af02d131ad300a Mon Sep 17 00:00:00 2001 From: TakaRikka Date: Tue, 1 Aug 2023 00:11:24 -0700 Subject: [PATCH 2/4] some more kankyo work --- include/JSystem/J3DGraphBase/J3DMatBlock.h | 27 +- include/d/com/d_com_inf_game.h | 2 +- include/d/kankyo/d_kankyo.h | 22 +- .../rel/d/a/kytag/d_a_kytag08/d_a_kytag08.h | 18 +- libs/JSystem/J3DGraphBase/J3DMatBlock.cpp | 4 +- rel/d/a/d_a_vrbox/d_a_vrbox.cpp | 6 +- rel/d/a/kytag/d_a_kytag06/d_a_kytag06.cpp | 18 +- rel/d/a/kytag/d_a_kytag08/d_a_kytag08.cpp | 62 +--- rel/d/a/kytag/d_a_kytag15/d_a_kytag15.cpp | 4 +- rel/d/a/obj/d_a_obj_onsen/d_a_obj_onsen.cpp | 2 +- src/d/kankyo/d_kankyo.cpp | 348 +++++++++++++++++- src/m_Do/m_Do_ext.cpp | 4 +- 12 files changed, 411 insertions(+), 106 deletions(-) diff --git a/include/JSystem/J3DGraphBase/J3DMatBlock.h b/include/JSystem/J3DGraphBase/J3DMatBlock.h index a976be81c9..65c064050f 100644 --- a/include/JSystem/J3DGraphBase/J3DMatBlock.h +++ b/include/JSystem/J3DGraphBase/J3DMatBlock.h @@ -9,13 +9,11 @@ #include "dolphin/types.h" #include "m_Do/m_Do_lib.h" -struct J3DGXColorS10 { +struct J3DGXColorS10 : public GXColorS10 { /* 8000E460 */ J3DGXColorS10() {} - - _GXColorS10 mColor; }; -struct J3DGXColor : public _GXColor { +struct J3DGXColor : public GXColor { /* 8000E538 */ J3DGXColor() {} }; @@ -542,10 +540,25 @@ private: extern const u16 j3dDefaultZModeID; +inline u16 calcZModeID(u8 param_0, u8 param_1, u8 param_2) { + return param_0 * 0x10 + param_2 + param_1 * 2; +} + +struct J3DZModeInfo { + /* 0x0 */ u8 field_0x0; + /* 0x1 */ u8 field_0x1; + /* 0x2 */ u8 field_0x2; +}; + struct J3DZMode { J3DZMode() { mZModeID = j3dDefaultZModeID; } + + void setZModeInfo(const J3DZModeInfo& info) { + mZModeID = calcZModeID(info.field_0x0, info.field_0x1, info.field_0x2); + } + /* 0x0 */ u16 mZModeID; }; @@ -646,7 +659,7 @@ public: /* 8000DF4C */ virtual bool getBlend(); /* 80317374 */ virtual void setZMode(J3DZMode const*); /* 8000E014 */ virtual void setZMode(J3DZMode); - /* 8000DF44 */ virtual bool getZMode(); + /* 8000DF44 */ virtual J3DZMode* getZMode(); /* 80317378 */ virtual void setZCompLoc(u8 const*); /* 8000E010 */ virtual void setZCompLoc(u8); /* 8000DF3C */ virtual bool getZCompLoc() const; @@ -708,7 +721,7 @@ public: /* 80321A00 */ virtual bool getBlend(); /* 80321A14 */ virtual void setZMode(J3DZMode const*); /* 80321A08 */ virtual void setZMode(J3DZMode); - /* 80321A20 */ virtual bool getZMode(); + /* 80321A20 */ virtual J3DZMode* getZMode(); /* 80321A30 */ virtual void setZCompLoc(u8 const*); /* 80321A28 */ virtual void setZCompLoc(u8); /* 80321A3C */ virtual bool getZCompLoc() const; @@ -750,7 +763,7 @@ public: /* 80321B64 */ virtual bool getBlend(); /* 80321B78 */ virtual void setZMode(J3DZMode const*); /* 80321B6C */ virtual void setZMode(J3DZMode); - /* 80321B84 */ virtual bool getZMode(); + /* 80321B84 */ virtual J3DZMode* getZMode(); /* 80321B94 */ virtual void setZCompLoc(u8 const*); /* 80321B8C */ virtual void setZCompLoc(u8); /* 80321BA0 */ virtual bool getZCompLoc() const; diff --git a/include/d/com/d_com_inf_game.h b/include/d/com/d_com_inf_game.h index 23ff32697d..78d2775b0f 100644 --- a/include/d/com/d_com_inf_game.h +++ b/include/d/com/d_com_inf_game.h @@ -3392,7 +3392,7 @@ inline void dComIfGd_setListDark() { g_dComIfG_gameInfo.drawlist.setXluListDark(); } -inline void dComIfGd_setListInvisible() { +inline void dComIfGd_setListInvisisble() { g_dComIfG_gameInfo.drawlist.setOpaListInvisible(); g_dComIfG_gameInfo.drawlist.setXluListInvisible(); } diff --git a/include/d/kankyo/d_kankyo.h b/include/d/kankyo/d_kankyo.h index e9735f1ec3..ab6d295cd3 100644 --- a/include/d/kankyo/d_kankyo.h +++ b/include/d/kankyo/d_kankyo.h @@ -235,6 +235,7 @@ class stage_pselect_info_class; class stage_envr_info_class; class stage_vrbox_info_class; class stage_plight_info_class; +class kytag08_class; struct dKy_pol_arg_struct { u8 data[8]; @@ -384,7 +385,7 @@ public: /* 0x1054 */ int field_0x1054; /* 0x1058 */ dKankyo_evil_Packet* mpEvilPacket; /* 0x105C */ mDoExt_btkAnm* field_0x105c; - /* 0x1060 */ fopAc_ac_c* field_0x1060; + /* 0x1060 */ kytag08_class* field_0x1060; /* 0x1064 */ Vec field_0x1064; /* 0x1070 */ cXyz mSunPos2; /* 0x107C */ cXyz mPLightNearPos; @@ -403,20 +404,11 @@ public: /* 0x10FA */ s16 field_0x10fa; /* 0x10FC */ s16 field_0x10fc; /* 0x10FE */ s16 field_0x10fe; - /* 0x1100 */ _GXColorS10 mActorAmbience; - /* 0x1108 */ _GXColorS10 mTerrainAmbienceBG0; - /* 0x1110 */ s16 mTerrainAmbienceBG1_R; - /* 0x1112 */ s16 mTerrainAmbienceBG1_G; - /* 0x1114 */ s16 mTerrainAmbienceBG1_B; - /* 0x1116 */ s16 mWaterSurfaceAlphaA; - /* 0x1118 */ s16 mTerrainAmbienceBG2_R; - /* 0x111A */ s16 mTerrainAmbienceBG2_G; - /* 0x111C */ s16 mTerrainAmbienceBG2_B; - /* 0x111E */ s16 mAuxAlphaA2; - /* 0x1120 */ s16 mTerrainAmbienceBG3_R; - /* 0x1122 */ s16 mTerrainAmbienceBG3_G; - /* 0x1124 */ s16 mTerrainAmbienceBG3_B; - /* 0x1126 */ s16 mFakeFogA; + /* 0x1100 */ GXColorS10 mActorAmbience; + /* 0x1108 */ GXColorS10 mTerrainAmbienceBG0; + /* 0x1110 */ GXColorS10 mTerrainAmbienceBG1; + /* 0x1118 */ GXColorS10 mTerrainAmbienceBG2; + /* 0x1120 */ GXColorS10 mTerrainAmbienceBG3; /* 0x1128 */ GXColorS10 field_0x1128; /* 0x1130 */ u8 field_0x1130[0x28]; /* 0x1158 */ GXColorS10 mFogColor; diff --git a/include/rel/d/a/kytag/d_a_kytag08/d_a_kytag08.h b/include/rel/d/a/kytag/d_a_kytag08/d_a_kytag08.h index c2f14b187e..47195eacb6 100644 --- a/include/rel/d/a/kytag/d_a_kytag08/d_a_kytag08.h +++ b/include/rel/d/a/kytag/d_a_kytag08/d_a_kytag08.h @@ -1,6 +1,22 @@ #ifndef D_A_KYTAG08_H #define D_A_KYTAG08_H -#include "dolphin/types.h" +#include "f_op/f_op_actor_mng.h" + +class kytag08_class : public fopAc_ac_c { +public: + /* 0x568 */ J3DModel* mpModel; + /* 0x56C */ mDoExt_btkAnm field_0x56c; + /* 0x584 */ mDoExt_brkAnm field_0x584; + /* 0x59C */ JPABaseEmitter* field_0x59c; + /* 0x5A0 */ JPABaseEmitter* field_0x5a0; + /* 0x5A4 */ request_of_phase_process_class mPhase; + /* 0x5AC */ cXyz field_0x5ac; + /* 0x5B8 */ cXyz field_0x5b8; + /* 0x5C4 */ cXyz field_0x5c4; + /* 0x5D0 */ f32 field_0x5d0; + /* 0x5D4 */ int field_0x5d4; + /* 0x5D8 */ u8 field_0x5d8; +}; #endif /* D_A_KYTAG08_H */ diff --git a/libs/JSystem/J3DGraphBase/J3DMatBlock.cpp b/libs/JSystem/J3DGraphBase/J3DMatBlock.cpp index 8acc4b81cc..aadfb6de37 100644 --- a/libs/JSystem/J3DGraphBase/J3DMatBlock.cpp +++ b/libs/JSystem/J3DGraphBase/J3DMatBlock.cpp @@ -2221,7 +2221,7 @@ asm void J3DPEBlockFull::setZMode(J3DZMode const* param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm bool J3DPEBlockFull::getZMode() { +asm J3DZMode* J3DPEBlockFull::getZMode() { nofralloc #include "asm/JSystem/J3DGraphBase/J3DMatBlock/getZMode__14J3DPEBlockFullFv.s" } @@ -2443,7 +2443,7 @@ asm void J3DPEBlockFogOff::setZMode(J3DZMode const* param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm bool J3DPEBlockFogOff::getZMode() { +asm J3DZMode* J3DPEBlockFogOff::getZMode() { nofralloc #include "asm/JSystem/J3DGraphBase/J3DMatBlock/getZMode__16J3DPEBlockFogOffFv.s" } diff --git a/rel/d/a/d_a_vrbox/d_a_vrbox.cpp b/rel/d/a/d_a_vrbox/d_a_vrbox.cpp index afd1bb4cbb..a9f8fe5aa0 100644 --- a/rel/d/a/d_a_vrbox/d_a_vrbox.cpp +++ b/rel/d/a/d_a_vrbox/d_a_vrbox.cpp @@ -78,7 +78,7 @@ static int daVrbox_color_set(vrbox_class* i_this) { g_env_light.mVrboxInvisible = false; J3DModelData* modelData = i_this->mpSoraModel->getModelData(); - GXColorS10 color; + J3DGXColorS10 color; J3DMaterial* material_0 = modelData->getMaterialNodePointer(0); if (material_0 != NULL) { @@ -89,7 +89,7 @@ static int daVrbox_color_set(vrbox_class* i_this) { color.g = g_env_light.mSkyColor.g; color.b = g_env_light.mSkyColor.b; color.a = 255; - material_0->setTevColor(0, (J3DGXColorS10*)&color); + material_0->setTevColor(0, &color); } J3DMaterial* material_1 = modelData->getMaterialNodePointer(1); @@ -101,7 +101,7 @@ static int daVrbox_color_set(vrbox_class* i_this) { color.g = g_env_light.mCloudInnerHazeColor.g; color.b = g_env_light.mCloudInnerHazeColor.b; color.a = g_env_light.mCloudInnerHazeColor.a; - material_1->setTevColor(0, (J3DGXColorS10*)&color); + material_1->setTevColor(0, &color); } return 1; diff --git a/rel/d/a/kytag/d_a_kytag06/d_a_kytag06.cpp b/rel/d/a/kytag/d_a_kytag06/d_a_kytag06.cpp index 1d2bb916f5..4980d6a174 100644 --- a/rel/d/a/kytag/d_a_kytag06/d_a_kytag06.cpp +++ b/rel/d/a/kytag/d_a_kytag06/d_a_kytag06.cpp @@ -609,13 +609,13 @@ static void daKytag06_type_07_Execute(kytag06_class* i_this) { if (camera != NULL) { if (camera->mLookat.mEye.y > 0.0f) { dKy_BossLight_set(&spX, &color, i_this->mWindPower * 2.0f, 0); - g_env_light.mTerrainAmbienceBG3_R = (u8)(i_this->mWindPower * 230.0f + 25.0f); - g_env_light.mTerrainAmbienceBG3_G = (u8)(i_this->mWindPower * 215.0f + 30.0f); - g_env_light.mTerrainAmbienceBG3_B = (u8)(i_this->mWindPower * 155.0f + 25.0f); + g_env_light.mTerrainAmbienceBG3.r = (u8)(i_this->mWindPower * 230.0f + 25.0f); + g_env_light.mTerrainAmbienceBG3.g = (u8)(i_this->mWindPower * 215.0f + 30.0f); + g_env_light.mTerrainAmbienceBG3.b = (u8)(i_this->mWindPower * 155.0f + 25.0f); } else { - g_env_light.mTerrainAmbienceBG3_R = 0; - g_env_light.mTerrainAmbienceBG3_G = 0; - g_env_light.mTerrainAmbienceBG3_B = 0; + g_env_light.mTerrainAmbienceBG3.r = 0; + g_env_light.mTerrainAmbienceBG3.g = 0; + g_env_light.mTerrainAmbienceBG3.b = 0; g_env_light.mThunderEff.mMode = 0; } } @@ -777,9 +777,9 @@ static void daKytag06_type_06_Execute(kytag06_class* i_this) { break; } - g_env_light.mTerrainAmbienceBG3_R = (u8)(i_this->mWindPower * 245.0f + 10.0f); - g_env_light.mTerrainAmbienceBG3_G = (u8)(i_this->mWindPower * 185.0f + 15.0f); - g_env_light.mTerrainAmbienceBG3_B = (u8)(i_this->mWindPower * 130.0f + 20.0f); + g_env_light.mTerrainAmbienceBG3.r = (u8)(i_this->mWindPower * 245.0f + 10.0f); + g_env_light.mTerrainAmbienceBG3.g = (u8)(i_this->mWindPower * 185.0f + 15.0f); + g_env_light.mTerrainAmbienceBG3.b = (u8)(i_this->mWindPower * 130.0f + 20.0f); static cXyz c_pos(0.0f, 0.0f, 0.0f); diff --git a/rel/d/a/kytag/d_a_kytag08/d_a_kytag08.cpp b/rel/d/a/kytag/d_a_kytag08/d_a_kytag08.cpp index 08dd11bfa8..eb3763c543 100644 --- a/rel/d/a/kytag/d_a_kytag08/d_a_kytag08.cpp +++ b/rel/d/a/kytag/d_a_kytag08/d_a_kytag08.cpp @@ -5,60 +5,14 @@ #include "rel/d/a/kytag/d_a_kytag08/d_a_kytag08.h" #include "dol2asm.h" -#include "dolphin/types.h" +#include "JSystem/JKernel/JKRHeap.h" +#include "d/com/d_com_inf_game.h" +#include "d/d_procname.h" // // Types: // -struct request_of_phase_process_class {}; - -struct kytag08_class {}; - -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); -}; - -struct dRes_info_c {}; - -struct dRes_control_c { - /* 8003C2EC */ void getRes(char const*, s32, dRes_info_c*, int); -}; - -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 Vec {}; - -struct Z2EnvSeMgr { - /* 802C92EC */ void startFogWipeTrigger(Vec*); - /* 802C93A0 */ void setFogWipeWidth(f32); -}; - -struct JPABaseEmitter { - /* 8027EC60 */ void deleteAllParticle(); -}; - -struct J3DModelData {}; - -struct J3DFrameCtrl { - /* 803283FC */ void init(s16); - /* 8085B23C */ ~J3DFrameCtrl(); -}; - // // Forward References: // @@ -94,17 +48,10 @@ extern "C" void startFogWipeTrigger__10Z2EnvSeMgrFP3Vec(); extern "C" void setFogWipeWidth__10Z2EnvSeMgrFf(); extern "C" void __dl__FPv(); extern "C" void init__12J3DFrameCtrlFs(); -extern "C" void PSVECSquareDistance(); extern "C" void _savegpr_27(); extern "C" void _savegpr_28(); extern "C" void _restgpr_27(); extern "C" void _restgpr_28(); -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 u8 g_mEnvSeMgr[780]; -extern "C" extern u32 __float_nan; // // Declarations: @@ -422,7 +369,8 @@ static asm void daKytag08_Create(fopAc_ac_c* param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm J3DFrameCtrl::~J3DFrameCtrl() { +// asm J3DFrameCtrl::~J3DFrameCtrl() { +extern "C" asm void __dt__12J3DFrameCtrlFv() { nofralloc #include "asm/rel/d/a/kytag/d_a_kytag08/d_a_kytag08/__dt__12J3DFrameCtrlFv.s" } diff --git a/rel/d/a/kytag/d_a_kytag15/d_a_kytag15.cpp b/rel/d/a/kytag/d_a_kytag15/d_a_kytag15.cpp index 7859faff05..75a314d9cc 100644 --- a/rel/d/a/kytag/d_a_kytag15/d_a_kytag15.cpp +++ b/rel/d/a/kytag/d_a_kytag15/d_a_kytag15.cpp @@ -20,7 +20,7 @@ static int daKytag15_Draw(kytag15_class* i_this) { scale.z = 0.00524f; if (i_this->mpModel != NULL && i_this->field_0x590 > 0.0f) { - GXColorS10 color; + J3DGXColorS10 color; J3DMaterial* mat_p = i_this->mpModel->getModelData()->getMaterialNodePointer(0); color.b = 0; color.g = 0; @@ -33,7 +33,7 @@ static int daKytag15_Draw(kytag15_class* i_this) { color.a = (color.a + 255.0f) * i_this->field_0x590 + -255.0f; - mat_p->setTevColor(0, (J3DGXColorS10*)&color); + mat_p->setTevColor(0, &color); i_this->mpModel->setBaseScale(scale); i_this->mpModel->i_setBaseTRMtx(mDoMtx_stack_c::get()); diff --git a/rel/d/a/obj/d_a_obj_onsen/d_a_obj_onsen.cpp b/rel/d/a/obj/d_a_obj_onsen/d_a_obj_onsen.cpp index 648a69f81e..8189064955 100644 --- a/rel/d/a/obj/d_a_obj_onsen/d_a_obj_onsen.cpp +++ b/rel/d/a/obj/d_a_obj_onsen/d_a_obj_onsen.cpp @@ -105,7 +105,7 @@ int daObjOnsen_c::Draw() { dKy_bg_MAxx_proc(mpModel[0]); mDoExt_modelUpdateDL(mpModel[0]); mpBtk->entry(mpModel[1]->getModelData()); - dComIfGd_setListInvisible(); + dComIfGd_setListInvisisble(); dKy_bg_MAxx_proc(mpModel[1]); mDoExt_modelUpdateDL(mpModel[1]); dComIfGd_setList(); diff --git a/src/d/kankyo/d_kankyo.cpp b/src/d/kankyo/d_kankyo.cpp index 0cd0bd0daa..caf8334ad8 100644 --- a/src/d/kankyo/d_kankyo.cpp +++ b/src/d/kankyo/d_kankyo.cpp @@ -19,6 +19,7 @@ #include "dolphin/types.h" #include "global.h" #include "m_Do/m_Do_audio.h" +#include "rel/d/a/kytag/d_a_kytag08/d_a_kytag08.h" // // Types: @@ -5027,19 +5028,21 @@ SECTION_DEAD static char const* const pad_80394F35 = "\0\0"; #pragma pop /* 80450708-8045070C 000188 0004+00 1/1 0/0 0/0 .sdata l_zmodeUpEnable */ -SECTION_SDATA static u32 l_zmodeUpEnable = 0x01030100; +SECTION_SDATA static J3DZModeInfo l_zmodeUpEnable = {1, 3, 1}; /* 8045070C-80450710 00018C 0004+00 1/1 0/0 0/0 .sdata l_zmodeUpDisable */ -SECTION_SDATA static u32 l_zmodeUpDisable = 0x01030000; +SECTION_SDATA static J3DZModeInfo l_zmodeUpDisable = {1, 3, 0}; /* 80450710-80450718 000190 0008+00 1/1 0/0 0/0 .sdata l_alphaCompInfoOPA */ -SECTION_SDATA static u8 l_alphaCompInfoOPA[8] = { - 0x07, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, +SECTION_SDATA static J3DAlphaCompInfo l_alphaCompInfoOPA[2] = { + {0x07, 0x00, 0x01, 0x07}, + {0x00, 0x00, 0x00, 0x00}, }; /* 80450718-80450720 000198 0008+00 1/1 0/0 0/0 .sdata l_alphaCompInfo */ -SECTION_SDATA static u8 l_alphaCompInfo[8] = { - 0x04, 0x80, 0x00, 0x03, 0xFF, 0x00, 0x00, 0x00, +SECTION_SDATA static J3DAlphaCompInfo l_alphaCompInfo[2] = { + {0x04, 0x80, 0x00, 0x03}, + {0xFF, 0x00, 0x00, 0x00}, }; /* 80453E10-80453E14 002410 0004+00 1/1 0/0 0/0 .sdata2 @10916 */ @@ -5098,6 +5101,338 @@ SECTION_SDATA2 static f32 lit_10932[1 + 1 /* padding */] = { }; /* 801ACD24-801ADBBC 1A7664 0E98+00 0/0 0/0 7/7 .text dKy_bg_MAxx_proc__FPv */ +// stack / couple instructions at the end +#ifdef NONMATCHING +void dKy_bg_MAxx_proc(void* param_0) { + dScnKy_env_light_c* env_light = i_dKy_getEnvlight(); + s8 cam_id = dComIfGp_getWindow(0)->getCameraID(); + camera_class* camera_p = dComIfGp_getCamera(cam_id); + fopAc_ac_c* player_p = dComIfGp_getPlayer(0); + + if (param_0 != NULL && player_p != NULL) { + J3DModelData* modelData = static_cast(param_0)->getModelData(); + + for (u16 i = 0; i < modelData->getMaterialNum(); i++) { + J3DMaterial* mat_p = modelData->getMaterialNodePointer(i); + const char* mat_name = modelData->getMaterialName()->getName(i); + + if (mat_name[3] == 'M' && mat_name[4] == 'A') { + if (memcmp(&mat_name[3], "MA06", 4) == 0) { + dKy_murky_set(mat_p); + } + + if (memcmp(&mat_name[3], "MA03", 4) == 0 || memcmp(&mat_name[3], "MA09", 4) == 0 || + memcmp(&mat_name[3], "MA17", 4) == 0 || memcmp(&mat_name[3], "MA19", 4) == 0) + { + if (mat_name[5] != '1') { + dComIfGd_setListDarkBG(); + } else if (mat_name[6] == '9') { + dComIfGd_setListInvisisble(); + } + + if (mat_p->getFog() != NULL) { + J3DFogInfo* fog_info_p = mat_p->getFog()->getFogInfo(); + + if (fog_info_p != NULL) { + if (mat_name[5] == '0' && mat_name[6] == '9') { + fog_info_p->field_0x0 = 6; + + J3DGXColor k_color; + k_color.r = 245.0f - g_env_light.mWaterSurfaceShineRate * 45.0f; + k_color.g = 245.0f - g_env_light.mWaterSurfaceShineRate * 45.0f; + k_color.b = 245.0f - g_env_light.mWaterSurfaceShineRate * 35.0f; + k_color.a = 255; + mat_p->setTevKColor(1, &k_color); + } else { + fog_info_p->field_0x0 = 7; + + J3DGXColorS10 color; + J3DGXColor k_color; + color.r = g_env_light.mTerrainAmbienceBG2.r; + color.g = g_env_light.mTerrainAmbienceBG2.g; + color.b = g_env_light.mTerrainAmbienceBG2.b; + color.a = g_env_light.mTerrainAmbienceBG2.a; + + k_color.a = g_env_light.mTerrainAmbienceBG1.a; + k_color.r = 0; + k_color.g = 0; + k_color.b = 0; + + mat_p->setTevColor(1, &color); + mat_p->setTevKColor(3, &k_color); + } + } + } + } + + if (memcmp(&mat_name[3], "MA07", 4) == 0) { + J3DGXColorS10 color; + color.r = (u8)(g_env_light.mThunderEff.field_0x8 * 100.0f); + color.g = (u8)(g_env_light.mThunderEff.field_0x8 * 100.0f); + color.b = (u8)(g_env_light.mThunderEff.field_0x8 * 100.0f); + color.a = 255; + + mat_p->setTevColor(0, &color); + } + + if (memcmp(&mat_name[3], "MA10", 4) == 0 || memcmp(&mat_name[3], "MA02", 4) == 0) { + dComIfGd_setListInvisisble(); + + if (mat_p->getTexGenBlock()->getTexMtx(0) != NULL) { + J3DTexMtxInfo* tex_mtx_inf = + &mat_p->getTexGenBlock()->getTexMtx(0)->getTexMtxInfo(); + if (tex_mtx_inf != NULL) { + dKyw_get_wind_vec(); + + Mtx sp170; + if (mat_name[6] == '2') { + C_MTXLightPerspective(sp170, dComIfGd_getView()->mFovy, + camera_p->mAspect, 1.0f, 1.0f, -0.01f, 0.0f); + } else { + C_MTXLightPerspective(sp170, dComIfGd_getView()->mFovy, + camera_p->mAspect, 0.49f, -0.49f, 0.5f, 0.5f); + } + tex_mtx_inf->setEffectMtx(sp170); + modelData->simpleCalcMaterial(0, (MtxP)j3dDefaultMtx); + } + } + } + + if (memcmp(&mat_name[3], "MA00", 4) == 0 || memcmp(&mat_name[3], "MA01", 4) == 0 || + memcmp(&mat_name[3], "MA04", 4) == 0 || memcmp(&mat_name[3], "MA16", 4) == 0) + { + J3DGXColor k_color; + k_color.r = g_env_light.mFogDensity; + k_color.g = 0; + k_color.b = 0; + if (mat_name[6] == '1') { + J3DPEBlock* peblock_p = mat_p->getPEBlock(); + mat_p->change(); + + if (dKy_camera_water_in_status_check()) { + k_color.a = 255; + peblock_p->getAlphaComp()->setAlphaCompInfo(l_alphaCompInfo); + peblock_p->getZMode()->setZModeInfo(l_zmodeUpEnable); + } else { + k_color.a = 0; + peblock_p->getAlphaComp()->setAlphaCompInfo(l_alphaCompInfoOPA); + peblock_p->getZMode()->setZModeInfo(l_zmodeUpDisable); + } + } else { + k_color.a = 0; + } + + mat_p->setTevKColor(1, &k_color); + } + + if (memcmp(&mat_name[3], "MA11", 4) == 0) { + if (dKy_darkworld_check()) { + dComIfGd_setListDarkBG(); + + J3DGXColorS10 color; + color.r = 170; + color.g = 160; + color.b = 255; + color.a = 255; + mat_p->setTevColor(1, &color); + + color.r = 50; + color.g = 20; + color.b = 90; + color.a = 255; + mat_p->setTevColor(2, &color); + } else { + cXyz spA4; + cXyz sp98; + J3DGXColorS10 color; + color.r = 120; + color.g = 90; + color.b = 180; + color.a = 255; + + if (dComIfG_play_c::getLayerNo(0) == 1) { + color.a = 0; + } + + mat_p->setTevColor(1, &color); + + color.r = 40; + color.g = 30; + color.b = 65; + color.a = 255; + mat_p->setTevColor(2, &color); + + if (env_light->field_0x1060 != NULL) { + sp98 = env_light->field_0x1060->field_0x5b8; + f32 var_f29 = env_light->field_0x1060->field_0x5ac.x * + env_light->field_0x1060->field_0x5d0; + if (var_f29 < 0.1f) { + var_f29 = 0.1f; + } + + if (mat_p->getTexGenBlock()->getTexMtx(0) != NULL) { + J3DTexMtxInfo* tex_mtx_inf = + &mat_p->getTexGenBlock()->getTexMtx(0)->getTexMtxInfo(); + + if (tex_mtx_inf != NULL) { + Mtx sp140; + Mtx sp110; + C_MTXLightPerspective(sp140, var_f29 * 2.8f, 1.0f, 0.5f, 0.5f, + 0.0f, 0.0f); + spA4.x = sp98.x; + spA4.y = 100.0f; + spA4.z = sp98.z; + + cXyz sp8C(sp98.x, -1000.0f, sp98.z); + mDoMtx_lookAt(sp110, &sp8C, &spA4, 0); + cMtx_concat(sp140, sp110, sp110); + tex_mtx_inf->setEffectMtx(sp110); + } + } + } + } + } else if (memcmp(&mat_name[3], "MA20", 4) == 0) { + cXyz sp80; + if (mat_p->getFog() != NULL) { + J3DFogInfo* fog_inf = mat_p->getFog()->getFogInfo(); + if (fog_inf != NULL) { + fog_inf->field_0x0 = 7; + } + + J3DGXColorS10 sp3C; + sp3C.r = g_env_light.mTerrainAmbienceBG3.r; + sp3C.g = g_env_light.mTerrainAmbienceBG3.g; + sp3C.b = g_env_light.mTerrainAmbienceBG3.b; + sp3C.a = 255; + + mat_p->setTevColor(1, &sp3C); + + if (mat_p->getTexGenBlock()->getTexMtx(2) != NULL) { + J3DTexMtxInfo* tex_mtx_inf = + &mat_p->getTexGenBlock()->getTexMtx(2)->getTexMtxInfo(); + + if (tex_mtx_inf != NULL) { + Mtx spE0; + Mtx spB0; + C_MTXLightPerspective(spE0, 170.0f, 1.0f, 1.5f, 1.5f, 0.0f, 0.0f); + sp80.x = player_p->current.pos.x; + sp80.y = -14770.0f; + sp80.z = player_p->current.pos.z; + + cXyz sp74(player_p->current.pos.x, -14570.0f, + player_p->current.pos.z); + mDoMtx_lookAt(spB0, &sp74, &sp80, 0); + cMtx_concat(spE0, spB0, spB0); + tex_mtx_inf->setEffectMtx(spB0); + } + } + } + } else if (memcmp(&mat_name[3], "MA13", 4) == 0) { + J3DGXColorS10 color; + color.r = g_env_light.mTerrainAmbienceBG3.r; + color.g = g_env_light.mTerrainAmbienceBG3.g; + color.b = g_env_light.mTerrainAmbienceBG3.b; + color.a = g_env_light.mTerrainAmbienceBG3.a; + mat_p->setTevColor(1, &color); + } else if (memcmp(&mat_name[3], "MA14", 4) == 0) { + J3DGXColorS10 color; + J3DGXColor k_color; + color.r = g_env_light.mFogColor.r; + color.g = g_env_light.mFogColor.g; + color.b = g_env_light.mFogColor.b; + color.a = g_env_light.mFogColor.a; + mat_p->setTevColor(1, &color); + + k_color.r = 0; + k_color.g = 0; + k_color.b = 0; + k_color.a = g_env_light.mTerrainAmbienceBG3.a; + mat_p->setTevKColor(3, &k_color); + } else if (memcmp(&mat_name[3], "MA16", 4) == 0) { + J3DGXColorS10 color; + J3DGXColor k_color; + color.r = g_env_light.mTerrainAmbienceBG1.r; + color.g = g_env_light.mTerrainAmbienceBG1.g; + color.b = g_env_light.mTerrainAmbienceBG1.b; + color.a = g_env_light.mTerrainAmbienceBG1.a; + mat_p->setTevColor(1, &color); + + k_color.r = 0; + k_color.g = 0; + k_color.b = 0; + k_color.a = g_env_light.mTerrainAmbienceBG3.a; + mat_p->setTevKColor(3, &k_color); + } + } + + if (memcmp(&mat_name[3], "Rainbow", 7) == 0) { + f32 temp_f31 = g_env_light.getDaytime(); + cXyz sp68; + camera_class* temp_r16_2 = dComIfGp_getCamera(0); + J3DGXColor color; + + cXyz sp5C; + sp5C.x = -5853.0f; + sp5C.y = temp_r16_2->mLookat.mEye.y; + sp5C.z = -879.0f; + + f32 var_f1 = sp5C.abs(temp_r16_2->mLookat.mEye); + f32 var_f29_2 = -0.2f + (var_f1 / 4500.0f); + if (var_f29_2 > 1.0f) { + var_f29_2 = 1.0f; + } else if (var_f29_2 < 0.0f) { + var_f29_2 = 0.0f; + } + + color.b = 255; + color.g = 255; + color.r = 255; + color.a = 255; + + f32 var_f30 = 0.0f; + if (temp_f31 >= 270.0f) { + if (temp_f31 < 285.0f) { + var_f30 = (285.0f - temp_f31) / 15.0f; + } + } else if (temp_f31 < 75.0f) { + if (temp_f31 >= 60.0f) { + var_f30 = 1.0f - ((75.0f - temp_f31) / 15.0f); + } + } else { + var_f30 = 1.0f; + } + + if (g_env_light.mColpatWeather != 0) { + var_f30 = 0.0f; + } + + color.b = 255; + color.g = 255; + color.r = 255; + + sp5C = temp_r16_2->mLookat.mCenter; + sp5C.y = temp_r16_2->mLookat.mEye.y; + dKyr_get_vectle_calc(&temp_r16_2->mLookat.mEye, &sp5C, &sp68); + + f32 temp_f1_2 = cM3d_VectorProduct2d(0.0f, 0.0f, -0.81f, 0.583f, sp68.x, sp68.z); + f32 var_f0; + if (temp_f1_2 < 0.2f) { + color.a = 0; + } else { + if (temp_f1_2 > 0.6f) { + var_f0 = 1.0f; + } else { + var_f0 = (temp_f1_2 - 0.2f) / 0.4f; + } + color.a = 1.0f * (var_f29_2 * (115.0f * var_f0 * var_f30)); + } + + mat_p->setTevKColor(3, &color); + } + } + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -5106,6 +5441,7 @@ asm void dKy_bg_MAxx_proc(void* param_0) { #include "asm/d/kankyo/d_kankyo/dKy_bg_MAxx_proc__FPv.s" } #pragma pop +#endif /* 801ADBBC-801ADCA4 1A84FC 00E8+00 2/1 0/0 0/0 .text __dt__18dScnKy_env_light_cFv */ #pragma push diff --git a/src/m_Do/m_Do_ext.cpp b/src/m_Do/m_Do_ext.cpp index 6cbf0a2002..28bb0bb673 100644 --- a/src/m_Do/m_Do_ext.cpp +++ b/src/m_Do/m_Do_ext.cpp @@ -1604,8 +1604,8 @@ bool J3DPEBlock::getZCompLoc() const { } /* 8000DF44-8000DF4C 008884 0008+00 0/0 5/0 0/0 .text getZMode__10J3DPEBlockFv */ -bool J3DPEBlock::getZMode() { - return false; +J3DZMode* J3DPEBlock::getZMode() { + return NULL; } /* 8000DF4C-8000DF54 00888C 0008+00 0/0 5/0 0/0 .text getBlend__10J3DPEBlockFv */ From 623622b9b6aba64d43831ffa32291599b7dcf820 Mon Sep 17 00:00:00 2001 From: TakaRikka Date: Wed, 2 Aug 2023 01:29:00 -0700 Subject: [PATCH 3/4] more kankyo work / d_a_kytag08 work --- include/JSystem/J3DGraphBase/J3DMatBlock.h | 6 +- include/d/a/d_a_player.h | 1 + include/d/d_stage.h | 5 +- include/d/kankyo/d_kankyo.h | 4 + include/d/kankyo/d_kankyo_wether.h | 1 + include/m_Do/m_Do_audio.h | 8 + .../rel/d/a/kytag/d_a_kytag08/d_a_kytag08.h | 8 +- .../tag/d_a_tag_lightball/d_a_tag_lightball.h | 6 +- rel/d/a/kytag/d_a_kytag08/d_a_kytag08.cpp | 281 +++++++++- .../d_a_tag_lightball/d_a_tag_lightball.cpp | 53 +- src/d/kankyo/d_kankyo.cpp | 522 ++++++++++++++---- 11 files changed, 735 insertions(+), 160 deletions(-) diff --git a/include/JSystem/J3DGraphBase/J3DMatBlock.h b/include/JSystem/J3DGraphBase/J3DMatBlock.h index 65c064050f..d86ade35cc 100644 --- a/include/JSystem/J3DGraphBase/J3DMatBlock.h +++ b/include/JSystem/J3DGraphBase/J3DMatBlock.h @@ -541,7 +541,7 @@ private: extern const u16 j3dDefaultZModeID; inline u16 calcZModeID(u8 param_0, u8 param_1, u8 param_2) { - return param_0 * 0x10 + param_2 + param_1 * 2; + return ((param_1 * 2) & 0x1FE) + (param_0 * 0x10) + param_2; } struct J3DZModeInfo { @@ -631,6 +631,10 @@ struct J3DAlphaComp { mRef1 = param_1.field_0x4; u32 p1_mref1 = param_1.mRef1; field_0x0 = calcAlphaCmpID(param_1.field_0x0, param_1.mRef0, p1_mref1); + + // this matches for `dKy_bg_MAxx_proc` but causes `addWarpMaterial` to fail, + // while the above matches for `addWarpMaterial` but causes `dKy_bg_MAxx_proc` to fail? + // field_0x0 = calcAlphaCmpID(param_1.field_0x0, param_1.mRef0, param_1.mRef1); } /* 0x00 */ u16 field_0x0; diff --git a/include/d/a/d_a_player.h b/include/d/a/d_a_player.h index 33d9d27b72..b26f8172f6 100644 --- a/include/d/a/d_a_player.h +++ b/include/d/a/d_a_player.h @@ -712,6 +712,7 @@ public: void onForceAutoJump() { i_onEndResetFlg0(ERFLG0_FORCE_AUTO_JUMP); } void onNotAutoJump() { i_onEndResetFlg0(ERFLG0_NOT_AUTO_JUMP); } void onNotHang() { i_onEndResetFlg0(ERFLG0_NOT_HANG); } + void onFogFade() { i_onNoResetFlg2(FLG2_UNK_4000); } void offGoronSideMove() { if (i_checkGoronSideMove()) { diff --git a/include/d/d_stage.h b/include/d/d_stage.h index ecd86856dc..849ba352be 100644 --- a/include/d/d_stage.h +++ b/include/d/d_stage.h @@ -88,7 +88,10 @@ struct stage_scls_info_dummy_class { struct stage_pure_lightvec_info_class { // LGT -}; + /* 0x00 */ u8 field_0x0[0x1E - 0x0]; + /* 0x1E */ u8 field_0x1e; + /* 0x1F */ u8 field_0x1f; +}; // Size: 0x20 // Col struct stage_pselect_info_class { diff --git a/include/d/kankyo/d_kankyo.h b/include/d/kankyo/d_kankyo.h index ab6d295cd3..b124930d04 100644 --- a/include/d/kankyo/d_kankyo.h +++ b/include/d/kankyo/d_kankyo.h @@ -50,6 +50,9 @@ static void dKy_calc_color_set(_GXColorS10* param_0, color_RGB_class* param_1, color_RGB_class* param_4, f32 param_5, f32 param_6, _GXColorS10 param_7, f32 param_8); static void dKy_twilight_camelight_set(); +u8 dKy_shadow_mode_check(u8 mode); +void dKy_shadow_mode_set(u8 mode); +void dKy_shadow_mode_reset(u8 mode); struct LIGHT_INFLUENCE { /* 800CFC7C */ ~LIGHT_INFLUENCE() {} @@ -101,6 +104,7 @@ struct SND_INFLUENCE { struct DALKMIST_INFLUENCE { /* 0x00 */ cXyz mPos; /* 0x0C */ f32 field_0xc; + /* 0x10 */ s8 mIndex; }; struct DUNGEON_LIGHT { diff --git a/include/d/kankyo/d_kankyo_wether.h b/include/d/kankyo/d_kankyo_wether.h index 46cb651a50..901df927a7 100644 --- a/include/d/kankyo/d_kankyo_wether.h +++ b/include/d/kankyo/d_kankyo_wether.h @@ -27,6 +27,7 @@ cXyz dKyw_get_wind_vecpow(); void dKyw_evt_wind_set(s16 angleX, s16 angleY); void dKyw_custom_windpower(f32 pow); void dKyw_evt_wind_set_go(); +void dKyw_wether_proc(); class dKankyo_sun_Packet : public J3DPacket { public: diff --git a/include/m_Do/m_Do_audio.h b/include/m_Do/m_Do_audio.h index 2d05cdb5be..60f0c30d52 100644 --- a/include/m_Do/m_Do_audio.h +++ b/include/m_Do/m_Do_audio.h @@ -115,6 +115,14 @@ inline void mDoAud_heartGaugeOn() { Z2AudioMgr::getInterface()->mStatusMgr.heartGaugeOn(); } +inline void mDoAud_setFogWipeWidth(f32 i_width) { + g_mEnvSeMgr.setFogWipeWidth(i_width); +} + +inline void mDoAud_startFogWipeTrigger(const Vec* param_0) { + g_mEnvSeMgr.startFogWipeTrigger((Vec*)param_0); +} + inline void mDoAud_mEnvse_framework() { g_mEnvSeMgr.framework(); } diff --git a/include/rel/d/a/kytag/d_a_kytag08/d_a_kytag08.h b/include/rel/d/a/kytag/d_a_kytag08/d_a_kytag08.h index 47195eacb6..3e2fd206e8 100644 --- a/include/rel/d/a/kytag/d_a_kytag08/d_a_kytag08.h +++ b/include/rel/d/a/kytag/d_a_kytag08/d_a_kytag08.h @@ -6,10 +6,10 @@ class kytag08_class : public fopAc_ac_c { public: /* 0x568 */ J3DModel* mpModel; - /* 0x56C */ mDoExt_btkAnm field_0x56c; - /* 0x584 */ mDoExt_brkAnm field_0x584; - /* 0x59C */ JPABaseEmitter* field_0x59c; - /* 0x5A0 */ JPABaseEmitter* field_0x5a0; + /* 0x56C */ mDoExt_btkAnm mBtk; + /* 0x584 */ mDoExt_brkAnm mBrk; + /* 0x59C */ JPABaseEmitter* mpEmitter1; + /* 0x5A0 */ JPABaseEmitter* mpEmitter2; /* 0x5A4 */ request_of_phase_process_class mPhase; /* 0x5AC */ cXyz field_0x5ac; /* 0x5B8 */ cXyz field_0x5b8; diff --git a/include/rel/d/a/tag/d_a_tag_lightball/d_a_tag_lightball.h b/include/rel/d/a/tag/d_a_tag_lightball/d_a_tag_lightball.h index dd13513eba..c98581d0df 100644 --- a/include/rel/d/a/tag/d_a_tag_lightball/d_a_tag_lightball.h +++ b/include/rel/d/a/tag/d_a_tag_lightball/d_a_tag_lightball.h @@ -2,7 +2,6 @@ #define D_A_TAG_LIGHTBALL_H #include "d/kankyo/d_kankyo.h" -#include "dolphin/types.h" #include "f_op/f_op_actor_mng.h" class daTagLightBall_c : public fopAc_ac_c { @@ -19,11 +18,8 @@ public: u32 getType() { return fopAcM_GetParamBit(this, 8, 4); } /* 0x568 */ DALKMIST_INFLUENCE mInfluence; - /* 0x578 */ int field_0x578; /* 0x57C */ u8 field_0x57c; - /* 0x57D */ u8 field_0x57d; - /* 0x57E */ u8 field_0x57e; - /* 0x57F */ u8 field_0x57f; + /* 0x57D */ u8 mInfSet; }; #endif /* D_A_TAG_LIGHTBALL_H */ diff --git a/rel/d/a/kytag/d_a_kytag08/d_a_kytag08.cpp b/rel/d/a/kytag/d_a_kytag08/d_a_kytag08.cpp index eb3763c543..cc024d026b 100644 --- a/rel/d/a/kytag/d_a_kytag08/d_a_kytag08.cpp +++ b/rel/d/a/kytag/d_a_kytag08/d_a_kytag08.cpp @@ -4,10 +4,11 @@ // #include "rel/d/a/kytag/d_a_kytag08/d_a_kytag08.h" -#include "dol2asm.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" +#include "dol2asm.h" // // Types: @@ -59,8 +60,8 @@ extern "C" void _restgpr_28(); /* 8085A578-8085A580 000078 0008+00 1/0 0/0 0/0 .text daKytag08_Draw__FP13kytag08_class */ -static bool daKytag08_Draw(kytag08_class* param_0) { - return true; +static int daKytag08_Draw(kytag08_class* i_this) { + return 1; } /* ############################################################################################## */ @@ -283,47 +284,240 @@ COMPILER_STRIP_GATE(0x8085B30C, &lit_4041); #pragma pop /* 8085A580-8085AEA0 000080 0920+00 1/0 0/0 0/0 .text daKytag08_Execute__FP13kytag08_class */ +// matches with literals +#ifdef NONMATCHING +static int daKytag08_Execute(kytag08_class* i_this) { + dScnKy_env_light_c* env_light = i_dKy_getEnvlight(); + daPy_py_c* player_p = daPy_getPlayerActorClass(); + JGeometry::TVec3 particle_scale; + + i_this->field_0x5d8 = 1; + if (i_this->field_0x5d8 == 0) { + i_this->current.pos.x = player_p->current.pos.x; + i_this->current.pos.y = 100.0f; + i_this->current.pos.z = player_p->current.pos.z; + } else if (env_light->field_0x0c18[0].field_0x26 == 1) { + i_this->current.pos.x = env_light->field_0x0c18[0].mPos.x; + i_this->current.pos.y = 100.0f; + i_this->current.pos.z = env_light->field_0x0c18[0].mPos.z; + } + + if (i_this->field_0x5b8.abs(i_this->current.pos) < 2000.0f && !i_dComIfGp_event_runCheck()) { + if (i_this->field_0x5d4 > 100) { + f32 var_f30; + f32 var_f31; + if (i_this->field_0x5d8 != 0) { + var_f30 = 20.0f; + var_f31 = 0.1f; + } else { + var_f30 = 10.0f; + var_f31 = 0.2f; + } + + cLib_addCalc(&i_this->field_0x5b8.x, i_this->field_0x5c4.x, var_f31, var_f30, 1.0E-5f); + cLib_addCalc(&i_this->field_0x5b8.z, i_this->field_0x5c4.z, var_f31, var_f30, 1.0E-5f); + } else { + f32 var_f30; + f32 var_f31; + if (i_this->field_0x5d8 != 0) { + var_f30 = 20.0f; + var_f31 = 0.1f; + } else { + var_f30 = 10.0f; + var_f31 = 0.2f; + } + + cLib_addCalc(&i_this->field_0x5b8.x, i_this->field_0x5c4.x, var_f31, var_f30, 1.0E-5f); + cLib_addCalc(&i_this->field_0x5b8.z, i_this->field_0x5c4.z, var_f31, var_f30, 1.0E-5f); + } + } else { + i_this->field_0x5b8.x = i_this->current.pos.x; + i_this->field_0x5b8.z = i_this->current.pos.z; + } + + if (!dKy_shadow_mode_check(2)) { + if (!i_dComIfGp_event_runCheck()) { + cLib_addCalc(&i_this->field_0x5d0, 0.0f, 0.2f, 0.005f, 0.001f); + } + } else if (i_this->field_0x5d4 != 0) { + cLib_addCalc(&i_this->field_0x5d0, 1.0f, 0.5f, 0.01f, 0.001f); + } else if (!i_dComIfGp_event_runCheck()) { + cLib_addCalc(&i_this->field_0x5d0, 0.25f, 0.01f, 0.002f, 0.001f); + } + + mDoAud_setFogWipeWidth(i_this->field_0x5d0); + + if (i_this->field_0x5d8 != 0) { + f32 tmp2 = 37.5f; + if (i_this->field_0x5b8.abs(i_this->current.pos) > + i_this->field_0x5d0 * tmp2 * i_this->field_0x5ac.x) + { + dComIfGs_BossLife_public_Set(2); + } + } + + if ((daPy_getPlayerActorClass()->checkKandelaarSwing(1) && i_this->field_0x5d4 < 100) || + dComIfGs_BossLife_public_Get() == 1) + { + dComIfGs_BossLife_public_Set(0); + i_this->field_0x5c4 = i_this->current.pos; + i_this->field_0x5d4 = 180; + mDoAud_startFogWipeTrigger(&i_this->current.pos); + } else { + f32 var_f30_3; + f32 var_f31_3; + if (i_this->field_0x5d8 != 0) { + var_f30_3 = 4000.0f; + var_f31_3 = 0.5f; + } else { + var_f30_3 = 4.0f; + var_f31_3 = 0.025f; + } + + cLib_addCalc(&i_this->field_0x5c4.x, i_this->current.pos.x, var_f31_3, var_f30_3, 0.01f); + cLib_addCalc(&i_this->field_0x5c4.z, i_this->current.pos.z, var_f31_3, var_f30_3, 0.01f); + } + + if (i_this->field_0x5d4 != 0) { + i_this->field_0x5d4--; + } + + if (i_this->mpEmitter1 != NULL) { + i_this->mpEmitter1->setGlobalTranslation(i_this->field_0x5b8.x, i_this->field_0x5b8.y, + i_this->field_0x5b8.z); + i_this->mpEmitter1->setVolumeSize(i_this->field_0x5ac.x * 50.0f * i_this->field_0x5d0); + + f32 temp_f0_7 = 1.0f - i_this->field_0x5d0; + particle_scale.x = 1.0f - (temp_f0_7 * temp_f0_7); + particle_scale.y = 1.0f - (temp_f0_7 * temp_f0_7); + particle_scale.z = 1.0f - (temp_f0_7 * temp_f0_7); + i_this->mpEmitter1->setGlobalParticleScale(particle_scale); + } + + if (i_this->field_0x5d0 <= 0.001f) { + i_this->field_0x5b8.x = i_this->current.pos.x; + i_this->field_0x5b8.z = i_this->current.pos.z; + + i_this->field_0x5c4 = i_this->field_0x5b8; + } + + f32 var_f30_4 = 20.0f; + if (dKy_darkworld_check()) { + var_f30_4 = 56.0f; + } + + f32 var_f0; + if (player_p->getSpinnerActor()) { + var_f0 = player_p->getSpinnerActor()->current.pos.y; + } else { + var_f0 = player_p->current.pos.y; + } + + if (var_f0 < var_f30_4) { + cXyz sp24(player_p->current.pos); + sp24.y = 100.0f; + + if (i_this->field_0x5b8.abs(sp24) > i_this->field_0x5ac.x * 45.0f * i_this->field_0x5d0 || + i_this->field_0x5d0 <= 0.01f) + { + player_p->onFogFade(); + } + } + + if (player_p != NULL && i_this->mpEmitter2 != NULL) { + i_this->mpEmitter2->setGlobalTranslation(player_p->current.pos.x, 100.0f, + player_p->current.pos.z); + + particle_scale.z = 0.0f; + particle_scale.y = 0.0f; + particle_scale.x = 0.0f; + + if (player_p->current.pos.y < 100.0f) { + cXyz sp18(player_p->current.pos); + sp18.y = 100.0f; + + if (i_this->field_0x5b8.abs(sp18) > i_this->field_0x5ac.x * 45.0f * i_this->field_0x5d0) + { + f32 scale_factor = (100.0f - player_p->current.pos.y) / 30.0f; + + if (scale_factor > 1.0f) { + scale_factor = 1.0f; + } + + particle_scale.z = scale_factor; + particle_scale.y = scale_factor; + particle_scale.x = scale_factor; + } + } + + i_this->mpEmitter2->setGlobalParticleScale(particle_scale); + } + + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void daKytag08_Execute(kytag08_class* param_0) { +static asm int daKytag08_Execute(kytag08_class* param_0) { nofralloc #include "asm/rel/d/a/kytag/d_a_kytag08/d_a_kytag08/daKytag08_Execute__FP13kytag08_class.s" } #pragma pop +#endif /* 8085AEA0-8085AEA8 0009A0 0008+00 1/0 0/0 0/0 .text daKytag08_IsDelete__FP13kytag08_class */ -static bool daKytag08_IsDelete(kytag08_class* param_0) { - return true; +static int daKytag08_IsDelete(kytag08_class* i_this) { + return 1; } -/* ############################################################################################## */ -/* 8085B310-8085B310 000084 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8085B310 = "Kytag08"; -#pragma pop - /* 8085AEA8-8085AF74 0009A8 00CC+00 1/0 0/0 0/0 .text daKytag08_Delete__FP13kytag08_class */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daKytag08_Delete(kytag08_class* param_0) { - nofralloc -#include "asm/rel/d/a/kytag/d_a_kytag08/d_a_kytag08/daKytag08_Delete__FP13kytag08_class.s" +static int daKytag08_Delete(kytag08_class* i_this) { + 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; + } + + dComIfG_resDelete(&i_this->mPhase, "Kytag08"); + return 1; } -#pragma pop /* 8085AF74-8085AFEC 000A74 0078+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */ +// getting optimized when it shouldnt be? +#ifdef NONMATCHING +static int useHeapInit(fopAc_ac_c* i_this) { + kytag08_class* this_ = (kytag08_class*)i_this; + + J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes("Kytag08", 3); + this_->mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11020202); + if (this_->mpModel == NULL) { + return 0; + } + + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void useHeapInit(fopAc_ac_c* param_0) { +static asm int useHeapInit(fopAc_ac_c* param_0) { nofralloc #include "asm/rel/d/a/kytag/d_a_kytag08/d_a_kytag08/useHeapInit__FP10fopAc_ac_c.s" } #pragma pop +#endif /* ############################################################################################## */ /* 8085B318-8085B338 -00001 0020+00 1/0 0/0 0/0 .data l_daKytag08_Method */ @@ -356,14 +550,57 @@ SECTION_DATA extern void* __vt__12J3DFrameCtrl[3] = { }; /* 8085AFEC-8085B23C 000AEC 0250+00 1/0 0/0 0/0 .text daKytag08_Create__FP10fopAc_ac_c */ +// regswap +#ifdef NONMATCHING +static int daKytag08_Create(fopAc_ac_c* i_this) { + cXyz sp(1.0f, 1.0f, 1.0f); + dScnKy_env_light_c* env_light = i_dKy_getEnvlight(); + + if (!fopAcM_CheckCondition(i_this, 8)) { + new (i_this) kytag08_class(); + fopAcM_OnCondition(i_this, 8); + } + + kytag08_class* this_ = (kytag08_class*)i_this; + + int phase = dComIfG_resLoad(&this_->mPhase, "Kytag08"); + if (phase == cPhs_COMPLEATE_e) { + if (!fopAcM_entrySolidHeap(this_, useHeapInit, 0x550)) { + return cPhs_ERROR_e; + } + + this_->field_0x5ac.x = 20.0f; + this_->field_0x5ac.y = 20.0f; + this_->field_0x5ac.z = 20.0f; + this_->field_0x5d0 = 0.0f; + + this_->mpEmitter1 = dComIfGp_particle_set(0x84A0, &this_->current.pos, NULL, &sp); + + if (!dKy_darkworld_check()) { + this_->mpEmitter2 = dComIfGp_particle_set(0x84A1, &this_->current.pos, NULL, &sp); + } else { + this_->mpEmitter2 = dComIfGp_particle_set(0x84A2, &this_->current.pos, NULL, &sp); + } + + this_->field_0x5b8 = this_->current.pos; + this_->field_0x5b8.y = 100.0f; + this_->field_0x5c4 = this_->field_0x5b8; + + env_light->field_0x1060 = this_; + } + + return phase; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void daKytag08_Create(fopAc_ac_c* param_0) { +static asm int daKytag08_Create(fopAc_ac_c* param_0) { nofralloc #include "asm/rel/d/a/kytag/d_a_kytag08/d_a_kytag08/daKytag08_Create__FP10fopAc_ac_c.s" } #pragma pop +#endif /* 8085B23C-8085B284 000D3C 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */ #pragma push diff --git a/rel/d/a/tag/d_a_tag_lightball/d_a_tag_lightball.cpp b/rel/d/a/tag/d_a_tag_lightball/d_a_tag_lightball.cpp index 0bfe094876..8d51eb932c 100644 --- a/rel/d/a/tag/d_a_tag_lightball/d_a_tag_lightball.cpp +++ b/rel/d/a/tag/d_a_tag_lightball/d_a_tag_lightball.cpp @@ -12,8 +12,8 @@ void daTagLightBall_c::initBaseMtx() { /* 80D5A818-80D5A870 000098 0058+00 1/1 0/0 0/0 .text setBaseMtx__16daTagLightBall_cFv */ void daTagLightBall_c::setBaseMtx() { - PSMTXTrans(mDoMtx_stack_c::now, current.pos.x, current.pos.y, current.pos.z); - mDoMtx_ZXYrotM(mDoMtx_stack_c::now, shape_angle.x, shape_angle.y, shape_angle.z); + 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); } /* 80D5A870-80D5A9B8 0000F0 0148+00 1/1 0/0 0/0 .text Create__16daTagLightBall_cFv */ @@ -25,21 +25,24 @@ int daTagLightBall_c::Create() { i_fopAcM_offSwitch(this, swbit); } } + mInfluence.mPos = current.pos; mInfluence.field_0xc = mScale.x * 100.0f; + if (swbit != 0xFF) { if (getType() == 15) { if (i_fopAcM_isSwitch(this, swbit)) { dKy_dalkmist_inf_set(&mInfluence); - field_0x57d = 1; + mInfSet = true; } } else { if (!i_fopAcM_isSwitch(this, swbit)) { dKy_dalkmist_inf_set(&mInfluence); - field_0x57d = 1; + mInfSet = true; } } } + field_0x57c = i_fopAcM_isSwitch(this, swbit); return 1; } @@ -50,9 +53,11 @@ int daTagLightBall_c::create() { new (this) daTagLightBall_c; fopAcM_OnCondition(this, 8); } - if (Create() == 0) { + + if (!Create()) { return cPhs_ERROR_e; } + return cPhs_COMPLEATE_e; } @@ -61,21 +66,22 @@ int daTagLightBall_c::execute() { u8 swbit = getSwBit(); if (swbit != 0xFF) { if (getType() == 15) { - if (field_0x57c != 0 && !i_fopAcM_isSwitch(this, swbit)) { + if (field_0x57c && !i_fopAcM_isSwitch(this, swbit)) { dKy_dalkmist_inf_cut(&mInfluence); - field_0x57d = 0; - } else if (field_0x57c == 0 && i_fopAcM_isSwitch(this, swbit)) { + mInfSet = false; + } else if (!field_0x57c && i_fopAcM_isSwitch(this, swbit)) { dKy_dalkmist_inf_set(&mInfluence); - field_0x57d = 1; + mInfSet = true; } - } else if (field_0x57c == 0 && i_fopAcM_isSwitch(this, swbit)) { + } else if (!field_0x57c && i_fopAcM_isSwitch(this, swbit)) { dKy_dalkmist_inf_cut(&mInfluence); - field_0x57d = 0; - } else if (field_0x57c != 0 && !i_fopAcM_isSwitch(this, swbit)) { + mInfSet = false; + } else if (field_0x57c && !i_fopAcM_isSwitch(this, swbit)) { dKy_dalkmist_inf_set(&mInfluence); - field_0x57d = 1; + mInfSet = true; } } + mInfluence.mPos = current.pos; field_0x57c = i_fopAcM_isSwitch(this, swbit); return 1; @@ -88,33 +94,34 @@ int daTagLightBall_c::draw() { /* 80D5ABA8-80D5ABF0 000428 0048+00 1/1 0/0 0/0 .text _delete__16daTagLightBall_cFv */ int daTagLightBall_c::_delete() { - if (field_0x57d) { + if (mInfSet) { dKy_dalkmist_inf_cut(&mInfluence); - field_0x57d = 0; + mInfSet = false; } + return 1; } /* 80D5ABF0-80D5AC10 000470 0020+00 1/0 0/0 0/0 .text daTagLightBall_Draw__FP16daTagLightBall_c */ -static void daTagLightBall_Draw(daTagLightBall_c* i_this) { - ((daTagLightBall_c*)i_this)->draw(); +static int daTagLightBall_Draw(daTagLightBall_c* i_this) { + return i_this->draw(); } /* 80D5AC10-80D5AC30 000490 0020+00 1/0 0/0 0/0 .text daTagLightBall_Execute__FP16daTagLightBall_c */ -static void daTagLightBall_Execute(daTagLightBall_c* i_this) { - ((daTagLightBall_c*)i_this)->execute(); +static int daTagLightBall_Execute(daTagLightBall_c* i_this) { + return i_this->execute(); } /* 80D5AC30-80D5AC50 0004B0 0020+00 1/0 0/0 0/0 .text daTagLightBall_Delete__FP16daTagLightBall_c */ -static void daTagLightBall_Delete(daTagLightBall_c* i_this) { - ((daTagLightBall_c*)i_this)->_delete(); +static int daTagLightBall_Delete(daTagLightBall_c* i_this) { + return i_this->_delete(); } /* 80D5AC50-80D5AC70 0004D0 0020+00 1/0 0/0 0/0 .text daTagLightBall_Create__FP10fopAc_ac_c */ -static void daTagLightBall_Create(fopAc_ac_c* i_this) { - ((daTagLightBall_c*)i_this)->create(); +static int daTagLightBall_Create(fopAc_ac_c* i_this) { + return static_cast(i_this)->create(); } /* ############################################################################################## */ diff --git a/src/d/kankyo/d_kankyo.cpp b/src/d/kankyo/d_kankyo.cpp index caf8334ad8..eac47ead7e 100644 --- a/src/d/kankyo/d_kankyo.cpp +++ b/src/d/kankyo/d_kankyo.cpp @@ -9,6 +9,7 @@ #include "MSL_C/string.h" #include "SSystem/SComponent/c_counter.h" #include "SSystem/SComponent/c_math.h" +#include "d/a/d_a_player.h" #include "d/com/d_com_inf_game.h" #include "d/kankyo/d_kankyo_data.h" #include "d/kankyo/d_kankyo_rain.h" @@ -3395,6 +3396,129 @@ asm void dScnKy_env_light_c::SetBaseLight() { /* 801A5288-801A56DC 19FBC8 0454+00 1/1 0/0 0/0 .text exeKankyo__18dScnKy_env_light_cFv */ +// regalloc +#ifdef NONMATCHING +void dScnKy_env_light_c::exeKankyo() { + for (int i = 0; i < 6; i++) { + field_0x0c18[i].field_0x26 = 0; + + if (field_0x0d58[i].field_0x26 != 0) { + field_0x0d58[i].field_0x26 = 0; + dKy_BossLight_set(&field_0x0d58[i].mPos, &field_0x0d58[i].mColor, + field_0x0d58[i].field_0x10, 0); + } + } + + g_env_light.mColPatMode = g_env_light.mColPatModeGather; + + if (!i_dComIfGp_event_runCheck() && g_env_light.mColPatModeGather != 0) { + if (g_env_light.mColPatModeGather >= 3) { + g_env_light.mColPatModeGather = 0; + } else { + g_env_light.mColPatModeGather++; + } + } + + if (g_env_light.mColPatMode != 0) { + if (g_env_light.mColpatPrevGather != 0xFF) { + g_env_light.mColPatPrev = g_env_light.mColpatPrevGather; + + if (g_env_light.mColPatModeGather == 0) { + g_env_light.mColpatPrevGather = 0xFF; + } + } + + if (g_env_light.mColpatCurrGather != 0xFF) { + g_env_light.mColPatCurr = g_env_light.mColpatCurrGather; + + if (g_env_light.mColPatModeGather == 0) { + g_env_light.mColpatCurrGather = 0xFF; + } + } + + if (g_env_light.mColPatBlendGather >= 0.0f) { + g_env_light.mColPatBlend = g_env_light.mColPatBlendGather; + + if (g_env_light.mColPatModeGather == 0) { + g_env_light.mColPatBlendGather = -1.0f; + } + } + } else if (g_env_light.mColPatPrev == g_env_light.mColPatCurr) { + if (g_env_light.mColpatPrevGather != 0xFF) { + g_env_light.mColPatPrev = g_env_light.mColpatPrevGather; + g_env_light.mColpatPrevGather = 0xFF; + } + + if (g_env_light.mColpatCurrGather != 0xFF) { + g_env_light.mColPatCurr = g_env_light.mColpatCurrGather; + g_env_light.mColpatCurrGather = 0xFF; + g_env_light.mColpatWeather = g_env_light.mColpatCurrGather; + } + + if (g_env_light.mColPatBlendGather >= 0.0f) { + g_env_light.mColPatBlend = g_env_light.mColPatBlendGather; + g_env_light.mColPatBlendGather = -1.0f; + } + } + + g_env_light.field_0x1210 = g_env_light.field_0x122c; + + cLib_addCalc(&g_env_light.mColAllcolRatio, g_env_light.mAllcolRatio, 0.5f, 0.25f, 0.01f); + cLib_addCalc(&g_env_light.mColActColRatio, g_env_light.mActcolRatio, 0.5f, 0.25f, 0.01f); + cLib_addCalc(&g_env_light.mColBgColRatio, g_env_light.mBgcolRatio * g_env_light.field_0x1210, + 0.5f, 0.25f, 0.01f); + cLib_addCalc(&g_env_light.mColFogColRatio, g_env_light.mFogcolRatio * g_env_light.field_0x1210, + 0.5f, 0.25f, 0.01f); + cLib_addCalc(&g_env_light.mColVrboxSoraColRatio, + g_env_light.mVrboxSoracolRatio * g_env_light.field_0x1210, 0.5f, 0.25f, 0.01f); + cLib_addCalc(&g_env_light.mColVrboxKumocolRatio, + g_env_light.mVrboxKumocolRatio * g_env_light.field_0x1210, 0.5f, 0.25f, 0.01f); + + g_env_light.mAllcolRatio = 1.0f; + g_env_light.mActcolRatio = 1.0f; + g_env_light.mBgcolRatio = 1.0f; + g_env_light.mFogcolRatio = 1.0f; + g_env_light.mVrboxSoracolRatio = 1.0f; + g_env_light.mVrboxKumocolRatio = 1.0f; + g_env_light.field_0x122c = 1.0f; + g_env_light.field_0x126c = g_env_light.field_0x1268; + g_env_light.field_0x1268 = 999999.9f; + + for (int i = 50; i < 100; i++) { + g_env_light.mPointLight[i] = NULL; + } + + g_env_light.field_0x130b = 0; + + setDaytime(); + dKyw_wether_proc(); + CalcTevColor(); + Sndpos(); + Eflight_flush_proc(); + + daPy_py_c* player_p = (daPy_py_c*)dComIfGp_getPlayer(0); + if (player_p != NULL) { + cXyz* flame_pos_p = player_p->getKandelaarFlamePos(); + + if (flame_pos_p != NULL) { + g_env_light.field_0x10a0 = *flame_pos_p; + dKy_shadow_mode_set(2); + } else if (dKy_shadow_mode_check(2)) { + dKy_shadow_mode_reset(2); + } + } + + if (strcmp(dComIfGp_getStartStageName(), "R_SP127") == 0) { + if ((dCam_getBody()->mCurMode == 4 || dCam_getBody()->mCurMode == 7) && + i_dComIfGp_event_runCheck()) + { + cLib_addCalc(&g_env_light.mDemoAttentionPoint, 0.0f, 0.5f, 0.1f, 1E-05f); + } else { + cLib_addCalc(&g_env_light.mDemoAttentionPoint, 0.11f, 0.5f, 0.1f, 1E-05f); + } + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -3403,6 +3527,7 @@ asm void dScnKy_env_light_c::exeKankyo() { #include "asm/d/kankyo/d_kankyo/exeKankyo__18dScnKy_env_light_cFv.s" } #pragma pop +#endif /* 801A56DC-801A572C 1A001C 0050+00 1/1 0/0 0/0 .text drawKankyo__18dScnKy_env_light_cFv */ @@ -3621,16 +3746,26 @@ static asm void dKy_GlobalLight_set() { #pragma pop #endif +inline u8 dLVI_getSWLight(stage_pure_lightvec_info_class* i_info) { + return i_info->field_0x1e & 0x80; +} + /* 801A61F4-801A6278 1A0B34 0084+00 3/3 0/0 0/0 .text * dKy_lightswitch_check__FP30stage_pure_lightvec_info_classc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void dKy_lightswitch_check(stage_pure_lightvec_info_class* param_0, char param_1) { - nofralloc -#include "asm/d/kankyo/d_kankyo/dKy_lightswitch_check__FP30stage_pure_lightvec_info_classc.s" +static bool dKy_lightswitch_check(stage_pure_lightvec_info_class* param_0, char i_roomNo) { + bool var_r31 = 1; + if (param_0->field_0x1f != 0xFF) { + if (!dLVI_getSWLight(param_0)) { + if (dComIfGs_isSwitch(param_0->field_0x1f, i_roomNo)) { + var_r31 = 0; + } + } else if (!dComIfGs_isSwitch(param_0->field_0x1f, i_roomNo)) { + var_r31 = 0; + } + } + + return var_r31; } -#pragma pop /* 801A6278-801A6C20 1A0BB8 09A8+00 2/2 0/0 0/0 .text dKy_setLight_nowroom_common__Fcf */ #pragma push @@ -3693,14 +3828,38 @@ void dKy_setLight_again() { } /* 801A75E0-801A76D8 1A1F20 00F8+00 0/0 3/3 5/5 .text dKy_Global_amb_set__FP12dKy_tevstr_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dKy_Global_amb_set(dKy_tevstr_c* param_0) { - nofralloc -#include "asm/d/kankyo/d_kankyo/dKy_Global_amb_set__FP12dKy_tevstr_c.s" +void dKy_Global_amb_set(dKy_tevstr_c* i_tevstr) { + GXColor color; + color.r = i_tevstr->mColorC0.r; + color.g = i_tevstr->mColorC0.g; + color.b = i_tevstr->mColorC0.b; + color.a = i_tevstr->mColorC0.a; + + if (i_tevstr->field_0x37a == 2 || i_tevstr->field_0x37a == 3) { + if (dKy_darkworld_check()) { + if (i_tevstr->field_0x37a == 2) { + color.r = 18; + color.g = 18; + color.b = 18; + color.a = 0; + } else { + color.r = 12; + color.g = 12; + color.b = 12; + color.a = 0; + } + } + } else if ((i_tevstr->field_0x37a >= 1 && i_tevstr->field_0x37a <= 7) || + (i_tevstr->field_0x37a == 9 && dKy_darkworld_check())) + { + color.r = 0; + color.g = 0; + color.b = 0; + color.a = 0; + } + + GXSetChanAmbColor(GX_COLOR0A0, color); } -#pragma pop /* 801A76D8-801A7714 1A2018 003C+00 1/1 0/0 0/0 .text dKy_light_influence_pos__Fi */ static cXyz dKy_light_influence_pos(int param_0) { @@ -3719,117 +3878,141 @@ cXyz dKy_plight_near_pos() { /* 801A7738-801A7790 1A2078 0058+00 0/0 0/0 1/1 .text * dKy_mock_light_every_set__FP15LIGHT_INFLUENCE */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dKy_mock_light_every_set(LIGHT_INFLUENCE* param_0) { - nofralloc -#include "asm/d/kankyo/d_kankyo/dKy_mock_light_every_set__FP15LIGHT_INFLUENCE.s" +void dKy_mock_light_every_set(LIGHT_INFLUENCE* param_0) { + for (int i = 50; i < 100; i++) { + if (g_env_light.mPointLight[i] == NULL) { + g_env_light.mPointLight[i] = param_0; + g_env_light.mPointLight[i]->mIndex = i + 1; + break; + } + } } -#pragma pop /* 801A7790-801A7814 1A20D0 0084+00 1/1 1/1 18/18 .text dKy_plight_set__FP15LIGHT_INFLUENCE */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dKy_plight_set(LIGHT_INFLUENCE* param_0) { - nofralloc -#include "asm/d/kankyo/d_kankyo/dKy_plight_set__FP15LIGHT_INFLUENCE.s" +void dKy_plight_set(LIGHT_INFLUENCE* param_0) { + for (int i = 0; i < 100; i++) { + if (g_env_light.mPointLight[i] == param_0) { + return; + } + } + + for (int i = 0; i < 50; i++) { + if (g_env_light.mPointLight[i] == NULL) { + g_env_light.mPointLight[i] = param_0; + g_env_light.mPointLight[i]->mIndex = i + 1; + break; + } + } } -#pragma pop /* 801A7814-801A7868 1A2154 0054+00 0/0 0/0 4/4 .text dKy_dalkmist_inf_set__FP18DALKMIST_INFLUENCE */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dKy_dalkmist_inf_set(DALKMIST_INFLUENCE* param_0) { - nofralloc -#include "asm/d/kankyo/d_kankyo/dKy_dalkmist_inf_set__FP18DALKMIST_INFLUENCE.s" +void dKy_dalkmist_inf_set(DALKMIST_INFLUENCE* param_0) { + for (int i = 0; i < 10; i++) { + if (g_env_light.mDalkmistInf[i] == NULL) { + g_env_light.mDalkmistInf[i] = param_0; + g_env_light.mDalkmistInf[i]->mIndex = i; + break; + } + } } -#pragma pop /* 801A7868-801A789C 1A21A8 0034+00 0/0 0/0 4/4 .text dKy_dalkmist_inf_cut__FP18DALKMIST_INFLUENCE */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dKy_dalkmist_inf_cut(DALKMIST_INFLUENCE* param_0) { - nofralloc -#include "asm/d/kankyo/d_kankyo/dKy_dalkmist_inf_cut__FP18DALKMIST_INFLUENCE.s" +void dKy_dalkmist_inf_cut(DALKMIST_INFLUENCE* param_0) { + if (param_0 != NULL) { + if (param_0->mIndex < 10) { + g_env_light.mDalkmistInf[param_0->mIndex] = NULL; + } + } } -#pragma pop - -/* ############################################################################################## */ -/* 80394C6C-80394C6C 0212CC 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80394E75 = "\nPOINTLIGHT COUNT OVER!!!\n"; -#pragma pop /* 801A789C-801A792C 1A21DC 0090+00 0/0 0/0 1/1 .text dKy_plight_priority_set__FP15LIGHT_INFLUENCE */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dKy_plight_priority_set(LIGHT_INFLUENCE* param_0) { - nofralloc -#include "asm/d/kankyo/d_kankyo/dKy_plight_priority_set__FP15LIGHT_INFLUENCE.s" +void dKy_plight_priority_set(LIGHT_INFLUENCE* param_0) { + int i = 0; + + for (; i < 50; i++) { + if (g_env_light.mPointLight[i] == NULL) { + g_env_light.mPointLight[i] = param_0; + g_env_light.mPointLight[i]->mIndex = -(i + 1); + break; + } + } + + if (i >= 50) { + OSReport_Warning("\nPOINTLIGHT COUNT OVER!!!\n"); + } } -#pragma pop /* 801A792C-801A797C 1A226C 0050+00 0/0 1/1 32/32 .text dKy_plight_cut__FP15LIGHT_INFLUENCE */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dKy_plight_cut(LIGHT_INFLUENCE* param_0) { - nofralloc -#include "asm/d/kankyo/d_kankyo/dKy_plight_cut__FP15LIGHT_INFLUENCE.s" +void dKy_plight_cut(LIGHT_INFLUENCE* param_0) { + if (param_0 != NULL) { + if (param_0->mIndex != 0) { + if (param_0->mIndex < 0) { + param_0->mIndex *= -1; + } + + int idx = (param_0->mIndex & 0xFFF) - 1; + if (idx < 50) { + g_env_light.mPointLight[idx] = NULL; + } + } + } } -#pragma pop /* 801A797C-801A7A00 1A22BC 0084+00 1/1 1/1 3/3 .text dKy_efplight_set__FP15LIGHT_INFLUENCE */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dKy_efplight_set(LIGHT_INFLUENCE* param_0) { - nofralloc -#include "asm/d/kankyo/d_kankyo/dKy_efplight_set__FP15LIGHT_INFLUENCE.s" +void dKy_efplight_set(LIGHT_INFLUENCE* param_0) { + for (int i = 0; i < 5; i++) { + if (g_env_light.mEfPLight[i] == param_0) { + return; + } + } + + for (int i = 0; i < 5; i++) { + if (g_env_light.mEfPLight[i] == NULL) { + g_env_light.mEfPLight[i] = param_0; + g_env_light.mEfPLight[i]->mIndex = i + 1; + break; + } + } } -#pragma pop /* 801A7A00-801A7A40 1A2340 0040+00 1/1 1/1 3/3 .text dKy_efplight_cut__FP15LIGHT_INFLUENCE */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dKy_efplight_cut(LIGHT_INFLUENCE* param_0) { - nofralloc -#include "asm/d/kankyo/d_kankyo/dKy_efplight_cut__FP15LIGHT_INFLUENCE.s" +void dKy_efplight_cut(LIGHT_INFLUENCE* param_0) { + if (param_0 != NULL) { + if (param_0->mIndex != 0) { + int idx = param_0->mIndex - 1; + if (idx >= 0 && idx < 5) { + g_env_light.mEfPLight[idx] = NULL; + } + } + } } -#pragma pop /* 801A7A40-801A7AAC 1A2380 006C+00 1/1 0/0 0/0 .text * dKy_bgparts_activelight_set__FP15LIGHT_INFLUENCEi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void dKy_bgparts_activelight_set(LIGHT_INFLUENCE* param_0, int param_1) { - nofralloc -#include "asm/d/kankyo/d_kankyo/dKy_bgparts_activelight_set__FP15LIGHT_INFLUENCEi.s" +static void dKy_bgparts_activelight_set(LIGHT_INFLUENCE* influence_p, int param_1) { + if (influence_p != NULL) { + memcpy(&g_env_light.mBGpartsActiveLight[param_1], influence_p, sizeof(LIGHT_INFLUENCE)); + g_env_light.mBGpartsActiveLight[param_1].mIndex = param_1 + 1; + } } -#pragma pop /* 801A7AAC-801A7AC8 1A23EC 001C+00 1/1 0/0 0/0 .text dKy_bgparts_activelight_cut__Fi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void dKy_bgparts_activelight_cut(int param_0) { - nofralloc -#include "asm/d/kankyo/d_kankyo/dKy_bgparts_activelight_cut__Fi.s" +static void dKy_bgparts_activelight_cut(int param_0) { + g_env_light.mBGpartsActiveLight[param_0].mIndex = 0; } -#pragma pop /* 801A7AC8-801A7B68 1A2408 00A0+00 1/1 1/1 1/1 .text dKy_actor_addcol_amb_set__Fsssf */ +// matches with literals +#ifdef NONMATCHING +void dKy_actor_addcol_amb_set(s16 r, s16 g, s16 b, f32 factor) { + g_env_light.mActorAddColAmb.r = r * factor; + g_env_light.mActorAddColAmb.g = g * factor; + g_env_light.mActorAddColAmb.b = b * factor; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -3838,8 +4021,17 @@ asm void dKy_actor_addcol_amb_set(s16 param_0, s16 param_1, s16 param_2, f32 par #include "asm/d/kankyo/d_kankyo/dKy_actor_addcol_amb_set__Fsssf.s" } #pragma pop +#endif /* 801A7B68-801A7C08 1A24A8 00A0+00 1/1 1/1 1/1 .text dKy_bg_addcol_amb_set__Fsssf */ +// matches with literals +#ifdef NONMATCHING +void dKy_bg_addcol_amb_set(s16 r, s16 g, s16 b, f32 factor) { + g_env_light.mBgAddColAmb.r = r * factor; + g_env_light.mBgAddColAmb.g = g * factor; + g_env_light.mBgAddColAmb.b = b * factor; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -3848,8 +4040,17 @@ asm void dKy_bg_addcol_amb_set(s16 param_0, s16 param_1, s16 param_2, f32 param_ #include "asm/d/kankyo/d_kankyo/dKy_bg_addcol_amb_set__Fsssf.s" } #pragma pop +#endif /* 801A7C08-801A7CA8 1A2548 00A0+00 1/1 1/1 0/0 .text dKy_bg1_addcol_amb_set__Fsssf */ +// matches with literals +#ifdef NONMATCHING +void dKy_bg1_addcol_amb_set(s16 r, s16 g, s16 b, f32 factor) { + g_env_light.mBg1AddColAmb.r = r * factor; + g_env_light.mBg1AddColAmb.g = g * factor; + g_env_light.mBg1AddColAmb.b = b * factor; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -3858,8 +4059,17 @@ asm void dKy_bg1_addcol_amb_set(s16 param_0, s16 param_1, s16 param_2, f32 param #include "asm/d/kankyo/d_kankyo/dKy_bg1_addcol_amb_set__Fsssf.s" } #pragma pop +#endif /* 801A7CA8-801A7D48 1A25E8 00A0+00 1/1 0/0 0/0 .text dKy_bg2_addcol_amb_set__Fsssf */ +// matches with literals +#ifdef NONMATCHING +static void dKy_bg2_addcol_amb_set(s16 r, s16 g, s16 b, f32 factor) { + g_env_light.mBg2AddColAmb.r = r * factor; + g_env_light.mBg2AddColAmb.g = g * factor; + g_env_light.mBg2AddColAmb.b = b * factor; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -3868,8 +4078,17 @@ static asm void dKy_bg2_addcol_amb_set(s16 param_0, s16 param_1, s16 param_2, f3 #include "asm/d/kankyo/d_kankyo/dKy_bg2_addcol_amb_set__Fsssf.s" } #pragma pop +#endif /* 801A7D48-801A7DE8 1A2688 00A0+00 1/1 0/0 0/0 .text dKy_bg3_addcol_amb_set__Fsssf */ +// matches with literals +#ifdef NONMATCHING +static void dKy_bg3_addcol_amb_set(s16 r, s16 g, s16 b, f32 factor) { + g_env_light.mBg3AddColAmb.r = r * factor; + g_env_light.mBg3AddColAmb.g = g * factor; + g_env_light.mBg3AddColAmb.b = b * factor; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -3878,8 +4097,17 @@ static asm void dKy_bg3_addcol_amb_set(s16 param_0, s16 param_1, s16 param_2, f3 #include "asm/d/kankyo/d_kankyo/dKy_bg3_addcol_amb_set__Fsssf.s" } #pragma pop +#endif /* 801A7DE8-801A7E88 1A2728 00A0+00 1/1 1/1 0/0 .text dKy_addcol_fog_set__Fsssf */ +// matches with literals +#ifdef NONMATCHING +void dKy_addcol_fog_set(s16 r, s16 g, s16 b, f32 factor) { + g_env_light.mFogAddCol.r = r * factor; + g_env_light.mFogAddCol.g = g * factor; + g_env_light.mFogAddCol.b = b * factor; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -3888,18 +4116,26 @@ asm void dKy_addcol_fog_set(s16 param_0, s16 param_1, s16 param_2, f32 param_3) #include "asm/d/kankyo/d_kankyo/dKy_addcol_fog_set__Fsssf.s" } #pragma pop +#endif /* 801A7E88-801A7F20 1A27C8 0098+00 2/2 0/0 2/2 .text dKy_actor_addcol_set__Fsssf */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dKy_actor_addcol_set(s16 param_0, s16 param_1, s16 param_2, f32 param_3) { - nofralloc -#include "asm/d/kankyo/d_kankyo/dKy_actor_addcol_set__Fsssf.s" +void dKy_actor_addcol_set(s16 r, s16 g, s16 b, f32 factor) { + dKy_actor_addcol_amb_set(r, g, b, factor); + dKy_bg_addcol_amb_set(r, g, b, factor); + dKy_bg1_addcol_amb_set(r, g, b, factor); + dKy_bg2_addcol_amb_set(r, g, b, factor); + dKy_bg3_addcol_amb_set(r, g, b, factor); } -#pragma pop /* 801A7F20-801A7FC0 1A2860 00A0+00 1/1 1/1 0/0 .text dKy_vrbox_addcol_sky0_set__Fsssf */ +// matches with literals +#ifdef NONMATCHING +void dKy_vrbox_addcol_sky0_set(s16 r, s16 g, s16 b, f32 factor) { + g_env_light.mVrboxAddcolSky0.r = r * factor; + g_env_light.mVrboxAddcolSky0.g = g * factor; + g_env_light.mVrboxAddcolSky0.b = b * factor; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -3908,9 +4144,18 @@ asm void dKy_vrbox_addcol_sky0_set(s16 param_0, s16 param_1, s16 param_2, f32 pa #include "asm/d/kankyo/d_kankyo/dKy_vrbox_addcol_sky0_set__Fsssf.s" } #pragma pop +#endif /* 801A7FC0-801A8060 1A2900 00A0+00 1/1 1/1 0/0 .text dKy_vrbox_addcol_kasumi_set__Fsssf */ +// matches with literals +#ifdef NONMATCHING +void dKy_vrbox_addcol_kasumi_set(s16 r, s16 g, s16 b, f32 factor) { + g_env_light.mVrboxAddcolKasumi.r = r * factor; + g_env_light.mVrboxAddcolKasumi.g = g * factor; + g_env_light.mVrboxAddcolKasumi.b = b * factor; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -3919,6 +4164,7 @@ asm void dKy_vrbox_addcol_kasumi_set(s16 param_0, s16 param_1, s16 param_2, f32 #include "asm/d/kankyo/d_kankyo/dKy_vrbox_addcol_kasumi_set__Fsssf.s" } #pragma pop +#endif /* 801A8060-801A80D0 1A29A0 0070+00 1/1 0/0 0/0 .text dKy_vrbox_addcol_set__Fsssf */ static void dKy_vrbox_addcol_set(s16 param_0, s16 param_1, s16 param_2, f32 param_3) { @@ -4978,6 +5224,75 @@ SECTION_SDATA2 static f32 lit_10485 = 1550.0f; SECTION_SDATA2 static f32 lit_10486 = 140.0f; /* 801AC918-801ACCDC 1A7258 03C4+00 1/1 0/0 0/0 .text dKy_murky_set__FP11J3DMaterial */ +#ifdef NONMATCHING +static void dKy_murky_set(J3DMaterial* material_p) { + dKankyo_sunlenz_Packet* sunlenzPkt_p = g_env_light.mpSunLenzPacket; + dKankyo_sun_Packet* sunPkt_p = g_env_light.mpSunPacket; + + camera_class* camera_p = dComIfGp_getCamera(0); + J3DGXColorS10 sp54; + J3DGXColor sp58; + + sp54.r = g_env_light.mTerrainAmbienceBG1.r; + sp54.g = g_env_light.mTerrainAmbienceBG1.g; + sp54.b = g_env_light.mTerrainAmbienceBG1.b; + sp54.a = g_env_light.mTerrainAmbienceBG2.a; + + sp58.a = g_env_light.mTerrainAmbienceBG1.a; + + if (g_env_light.field_0x1300 != -1) { + sp58.a = g_env_light.field_0x1300 * 1.0f; + } + + if (g_env_light.field_0x1302 != -1) { + sp54.a = (u8)(g_env_light.field_0x1302 * 1.0f); + } + + if (sunlenzPkt_p != NULL && sunPkt_p->field_0x5c > 1E-06f) { + sp54.a *= 1.0f - sunPkt_p->field_0x5c * + (1.0f - sunlenzPkt_p->field_0x98 * sunlenzPkt_p->field_0x98 * + sunlenzPkt_p->field_0x98); + } + + // Diababa room handling + if (strcmp(dComIfGp_getStartStageName(), "D_MN05A") == 0) { + f32 var_f31; + if (g_env_light.mpMudPacket != NULL) { + var_f31 = 1.0f - g_env_light.mpMudPacket->field_0x1c3c; + } + + sp54.r = 20; + sp54.g = 6; + sp54.b = 15; + + sp54.r = (var_f31 * -0.0f) + 20; + sp54.g = (var_f31 * 36.0f) + 6; + sp54.b = (var_f31 * 29.0f) + 15; + + f32 var_f0; + if (camera_p != NULL && camera_p->mLookat.mEye.z < 1800.0f) { + if (camera_p->mLookat.mEye.z < 1550.0f) { + var_f0 = 1.0f; + } else { + var_f0 = 1.0f - ((camera_p->mLookat.mEye.z - 1550.0f) / 250.0f); + } + sp54.a = 255.0f * var_f0; + } else { + sp54.a = 0; + } + + sp54.a += -sp54.a * var_f31; + sp58.a = (var_f31 * 140.0f) + 255; + } + + sp58.r = 0; + sp58.g = 0; + sp58.b = 0; + + material_p->setTevColor(1, &sp54); + material_p->setTevKColor(3, &sp58); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -4986,6 +5301,7 @@ static asm void dKy_murky_set(J3DMaterial* param_0) { #include "asm/d/kankyo/d_kankyo/dKy_murky_set__FP11J3DMaterial.s" } #pragma pop +#endif /* 801ACCDC-801ACCF4 1A761C 0018+00 2/2 1/1 0/0 .text dKy_shadow_mode_set__FUc */ void dKy_shadow_mode_set(u8 mode) { @@ -5034,15 +5350,13 @@ SECTION_SDATA static J3DZModeInfo l_zmodeUpEnable = {1, 3, 1}; SECTION_SDATA static J3DZModeInfo l_zmodeUpDisable = {1, 3, 0}; /* 80450710-80450718 000190 0008+00 1/1 0/0 0/0 .sdata l_alphaCompInfoOPA */ -SECTION_SDATA static J3DAlphaCompInfo l_alphaCompInfoOPA[2] = { - {0x07, 0x00, 0x01, 0x07}, - {0x00, 0x00, 0x00, 0x00}, +SECTION_SDATA static J3DAlphaCompInfo l_alphaCompInfoOPA = { + 0x07, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, }; /* 80450718-80450720 000198 0008+00 1/1 0/0 0/0 .sdata l_alphaCompInfo */ -SECTION_SDATA static J3DAlphaCompInfo l_alphaCompInfo[2] = { - {0x04, 0x80, 0x00, 0x03}, - {0xFF, 0x00, 0x00, 0x00}, +SECTION_SDATA static J3DAlphaCompInfo l_alphaCompInfo = { + 0x04, 0x80, 0x00, 0x03, 0xFF, 0x00, 0x00, 0x00, }; /* 80453E10-80453E14 002410 0004+00 1/1 0/0 0/0 .sdata2 @10916 */ From 392f6101ca8d9187768d9764b14f8dce6bb7be59 Mon Sep 17 00:00:00 2001 From: TakaRikka Date: Wed, 2 Aug 2023 01:36:58 -0700 Subject: [PATCH 4/4] remove asm --- .../CalcTevColor__18dScnKy_env_light_cFv.s | 39 ----- .../GetTimePass__20dStage_roomControl_cFv.s | 3 - .../dKy_Delete__FP17sub_kankyo__class.s | 20 --- .../dKy_Draw__FP17sub_kankyo__class.s | 12 -- .../dKy_Execute__FP17sub_kankyo__class.s | 14 -- .../dKy_Global_amb_set__FP12dKy_tevstr_c.s | 69 -------- .../d_kankyo/dKy_actor_addcol_set__Fsssf.s | 39 ----- .../dKy_bgparts_activelight_cut__Fi.s | 8 - ...ts_activelight_set__FP15LIGHT_INFLUENCEi.s | 29 ---- ...scroll__FP12J3DModelDataP12dKy_tevstr_ci.s | 108 ------------- ...dalkmist_inf_cut__FP18DALKMIST_INFLUENCE.s | 14 -- ...dalkmist_inf_set__FP18DALKMIST_INFLUENCE.s | 24 --- .../dKy_efplight_cut__FP15LIGHT_INFLUENCE.s | 17 -- .../dKy_efplight_set__FP15LIGHT_INFLUENCE.s | 37 ----- ...eck__FP30stage_pure_lightvec_info_classc.s | 36 ----- ...ock_light_every_set__FP15LIGHT_INFLUENCE.s | 25 --- .../dKy_plight_cut__FP15LIGHT_INFLUENCE.s | 22 --- ...plight_priority_set__FP15LIGHT_INFLUENCE.s | 41 ----- .../dKy_plight_set__FP15LIGHT_INFLUENCE.s | 37 ----- ...v_light_cFP12J3DModelDataP12dKy_tevstr_c.s | 69 -------- ...oExt_setupStageTexture__FP12J3DModelData.s | 152 ----------------- .../daKytag08_Delete__FP13kytag08_class.s | 54 ------- .../CheckCreateHeap__FP10fopAc_ac_c.s | 9 -- .../CreateHeap__11daObjSwPr_cFv.s | 33 ---- .../Create__11daObjSwPr_cFv.s | 108 ------------- .../d_a_obj_swpropeller/__dt__8cM3dGAabFv.s | 20 --- .../d_a_obj_swpropeller/__dt__8cM3dGCylFv.s | 20 --- .../_delete__11daObjSwPr_cFv.s | 17 -- .../daObjSwPr_Create__FP10fopAc_ac_c.s | 9 -- .../daObjSwPr_Delete__FP11daObjSwPr_c.s | 9 -- .../daObjSwPr_Draw__FP11daObjSwPr_c.s | 9 -- .../daObjSwPr_Execute__FP11daObjSwPr_c.s | 9 -- .../draw__11daObjSwPr_cFv.s | 26 --- .../execute__11daObjSwPr_cFv.s | 82 ---------- .../execute_type_boomerang__11daObjSwPr_cFv.s | 148 ----------------- .../execute_type_wind__11daObjSwPr_cFv.s | 153 ------------------ .../d_a_obj_swpropeller/func_8059A888.s | 132 --------------- .../initBaseMtx__11daObjSwPr_cFv.s | 16 -- .../nodeCallBack__FP8J3DJointi.s | 46 ------ .../setBaseMtx__11daObjSwPr_cFv.s | 20 --- .../setRotateTime__11daObjSwPr_cFv.s | 5 - .../switchCtrl__11daObjSwPr_cFv.s | 37 ----- 42 files changed, 1777 deletions(-) delete mode 100644 asm/d/kankyo/d_kankyo/CalcTevColor__18dScnKy_env_light_cFv.s delete mode 100644 asm/d/kankyo/d_kankyo/GetTimePass__20dStage_roomControl_cFv.s delete mode 100644 asm/d/kankyo/d_kankyo/dKy_Delete__FP17sub_kankyo__class.s delete mode 100644 asm/d/kankyo/d_kankyo/dKy_Draw__FP17sub_kankyo__class.s delete mode 100644 asm/d/kankyo/d_kankyo/dKy_Execute__FP17sub_kankyo__class.s delete mode 100644 asm/d/kankyo/d_kankyo/dKy_Global_amb_set__FP12dKy_tevstr_c.s delete mode 100644 asm/d/kankyo/d_kankyo/dKy_actor_addcol_set__Fsssf.s delete mode 100644 asm/d/kankyo/d_kankyo/dKy_bgparts_activelight_cut__Fi.s delete mode 100644 asm/d/kankyo/d_kankyo/dKy_bgparts_activelight_set__FP15LIGHT_INFLUENCEi.s delete mode 100644 asm/d/kankyo/d_kankyo/dKy_cloudshadow_scroll__FP12J3DModelDataP12dKy_tevstr_ci.s delete mode 100644 asm/d/kankyo/d_kankyo/dKy_dalkmist_inf_cut__FP18DALKMIST_INFLUENCE.s delete mode 100644 asm/d/kankyo/d_kankyo/dKy_dalkmist_inf_set__FP18DALKMIST_INFLUENCE.s delete mode 100644 asm/d/kankyo/d_kankyo/dKy_efplight_cut__FP15LIGHT_INFLUENCE.s delete mode 100644 asm/d/kankyo/d_kankyo/dKy_efplight_set__FP15LIGHT_INFLUENCE.s delete mode 100644 asm/d/kankyo/d_kankyo/dKy_lightswitch_check__FP30stage_pure_lightvec_info_classc.s delete mode 100644 asm/d/kankyo/d_kankyo/dKy_mock_light_every_set__FP15LIGHT_INFLUENCE.s delete mode 100644 asm/d/kankyo/d_kankyo/dKy_plight_cut__FP15LIGHT_INFLUENCE.s delete mode 100644 asm/d/kankyo/d_kankyo/dKy_plight_priority_set__FP15LIGHT_INFLUENCE.s delete mode 100644 asm/d/kankyo/d_kankyo/dKy_plight_set__FP15LIGHT_INFLUENCE.s delete mode 100644 asm/d/kankyo/d_kankyo/setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c.s delete mode 100644 asm/m_Do/m_Do_ext/mDoExt_setupStageTexture__FP12J3DModelData.s delete mode 100644 asm/rel/d/a/kytag/d_a_kytag08/d_a_kytag08/daKytag08_Delete__FP13kytag08_class.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/CheckCreateHeap__FP10fopAc_ac_c.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/CreateHeap__11daObjSwPr_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/Create__11daObjSwPr_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/__dt__8cM3dGAabFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/__dt__8cM3dGCylFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/_delete__11daObjSwPr_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/daObjSwPr_Create__FP10fopAc_ac_c.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/daObjSwPr_Delete__FP11daObjSwPr_c.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/daObjSwPr_Draw__FP11daObjSwPr_c.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/daObjSwPr_Execute__FP11daObjSwPr_c.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/draw__11daObjSwPr_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/execute__11daObjSwPr_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/execute_type_boomerang__11daObjSwPr_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/execute_type_wind__11daObjSwPr_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/func_8059A888.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/initBaseMtx__11daObjSwPr_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/nodeCallBack__FP8J3DJointi.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/setBaseMtx__11daObjSwPr_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/setRotateTime__11daObjSwPr_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/switchCtrl__11daObjSwPr_cFv.s diff --git a/asm/d/kankyo/d_kankyo/CalcTevColor__18dScnKy_env_light_cFv.s b/asm/d/kankyo/d_kankyo/CalcTevColor__18dScnKy_env_light_cFv.s deleted file mode 100644 index 07d60d290b..0000000000 --- a/asm/d/kankyo/d_kankyo/CalcTevColor__18dScnKy_env_light_cFv.s +++ /dev/null @@ -1,39 +0,0 @@ -lbl_801A4E90: -/* 801A4E90 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 801A4E94 7C 08 02 A6 */ mflr r0 -/* 801A4E98 90 01 00 34 */ stw r0, 0x34(r1) -/* 801A4E9C 93 E1 00 2C */ stw r31, 0x2c(r1) -/* 801A4EA0 93 C1 00 28 */ stw r30, 0x28(r1) -/* 801A4EA4 7C 7E 1B 78 */ mr r30, r3 -/* 801A4EA8 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 801A4EAC 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 801A4EB0 83 E3 5D AC */ lwz r31, 0x5dac(r3) -/* 801A4EB4 28 1F 00 00 */ cmplwi r31, 0 -/* 801A4EB8 41 82 00 54 */ beq lbl_801A4F0C -/* 801A4EBC C0 1F 04 D0 */ lfs f0, 0x4d0(r31) -/* 801A4EC0 D0 01 00 14 */ stfs f0, 0x14(r1) -/* 801A4EC4 C0 1F 04 D4 */ lfs f0, 0x4d4(r31) -/* 801A4EC8 D0 01 00 18 */ stfs f0, 0x18(r1) -/* 801A4ECC C0 1F 04 D8 */ lfs f0, 0x4d8(r31) -/* 801A4ED0 D0 01 00 1C */ stfs f0, 0x1c(r1) -/* 801A4ED4 38 61 00 14 */ addi r3, r1, 0x14 -/* 801A4ED8 38 80 00 00 */ li r4, 0 -/* 801A4EDC 4B FF 92 61 */ bl dKy_eflight_influence_id__F4cXyzi -/* 801A4EE0 90 7E 12 A8 */ stw r3, 0x12a8(r30) -/* 801A4EE4 C0 1F 04 D0 */ lfs f0, 0x4d0(r31) -/* 801A4EE8 D0 01 00 08 */ stfs f0, 8(r1) -/* 801A4EEC C0 1F 04 D4 */ lfs f0, 0x4d4(r31) -/* 801A4EF0 D0 01 00 0C */ stfs f0, 0xc(r1) -/* 801A4EF4 C0 1F 04 D8 */ lfs f0, 0x4d8(r31) -/* 801A4EF8 D0 01 00 10 */ stfs f0, 0x10(r1) -/* 801A4EFC 38 61 00 08 */ addi r3, r1, 8 -/* 801A4F00 38 80 00 00 */ li r4, 0 -/* 801A4F04 4B FF 8E 69 */ bl dKy_light_influence_id__F4cXyzi -/* 801A4F08 90 7E 12 A4 */ stw r3, 0x12a4(r30) -lbl_801A4F0C: -/* 801A4F0C 83 E1 00 2C */ lwz r31, 0x2c(r1) -/* 801A4F10 83 C1 00 28 */ lwz r30, 0x28(r1) -/* 801A4F14 80 01 00 34 */ lwz r0, 0x34(r1) -/* 801A4F18 7C 08 03 A6 */ mtlr r0 -/* 801A4F1C 38 21 00 30 */ addi r1, r1, 0x30 -/* 801A4F20 4E 80 00 20 */ blr diff --git a/asm/d/kankyo/d_kankyo/GetTimePass__20dStage_roomControl_cFv.s b/asm/d/kankyo/d_kankyo/GetTimePass__20dStage_roomControl_cFv.s deleted file mode 100644 index 9ec8c4e3e6..0000000000 --- a/asm/d/kankyo/d_kankyo/GetTimePass__20dStage_roomControl_cFv.s +++ /dev/null @@ -1,3 +0,0 @@ -lbl_8019F780: -/* 8019F780 88 6D 87 E7 */ lbz r3, mStayNo__20dStage_roomControl_c+0x3(r13) -/* 8019F784 4E 80 00 20 */ blr diff --git a/asm/d/kankyo/d_kankyo/dKy_Delete__FP17sub_kankyo__class.s b/asm/d/kankyo/d_kankyo/dKy_Delete__FP17sub_kankyo__class.s deleted file mode 100644 index 84499eaf3a..0000000000 --- a/asm/d/kankyo/d_kankyo/dKy_Delete__FP17sub_kankyo__class.s +++ /dev/null @@ -1,20 +0,0 @@ -lbl_801A5BD4: -/* 801A5BD4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801A5BD8 7C 08 02 A6 */ mflr r0 -/* 801A5BDC 90 01 00 14 */ stw r0, 0x14(r1) -/* 801A5BE0 4B FF 8A B5 */ bl plight_init__Fv -/* 801A5BE4 3C 60 80 43 */ lis r3, g_mEnvSeMgr@ha /* 0x8042DD70@ha */ -/* 801A5BE8 38 63 DD 70 */ addi r3, r3, g_mEnvSeMgr@l /* 0x8042DD70@l */ -/* 801A5BEC 48 12 0D AD */ bl resetScene__10Z2EnvSeMgrFv -/* 801A5BF0 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */ -/* 801A5BF4 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */ -/* 801A5BF8 80 63 0F 38 */ lwz r3, 0xf38(r3) -/* 801A5BFC 28 03 00 00 */ cmplwi r3, 0 -/* 801A5C00 41 82 00 08 */ beq lbl_801A5C08 -/* 801A5C04 4B E6 95 89 */ bl mDoExt_destroySolidHeap__FP12JKRSolidHeap -lbl_801A5C08: -/* 801A5C08 38 60 00 01 */ li r3, 1 -/* 801A5C0C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801A5C10 7C 08 03 A6 */ mtlr r0 -/* 801A5C14 38 21 00 10 */ addi r1, r1, 0x10 -/* 801A5C18 4E 80 00 20 */ blr diff --git a/asm/d/kankyo/d_kankyo/dKy_Draw__FP17sub_kankyo__class.s b/asm/d/kankyo/d_kankyo/dKy_Draw__FP17sub_kankyo__class.s deleted file mode 100644 index 7e0a45b7c0..0000000000 --- a/asm/d/kankyo/d_kankyo/dKy_Draw__FP17sub_kankyo__class.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_801A5B6C: -/* 801A5B6C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801A5B70 7C 08 02 A6 */ mflr r0 -/* 801A5B74 90 01 00 14 */ stw r0, 0x14(r1) -/* 801A5B78 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */ -/* 801A5B7C 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */ -/* 801A5B80 4B FF FB 5D */ bl drawKankyo__18dScnKy_env_light_cFv -/* 801A5B84 38 60 00 01 */ li r3, 1 -/* 801A5B88 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801A5B8C 7C 08 03 A6 */ mtlr r0 -/* 801A5B90 38 21 00 10 */ addi r1, r1, 0x10 -/* 801A5B94 4E 80 00 20 */ blr diff --git a/asm/d/kankyo/d_kankyo/dKy_Execute__FP17sub_kankyo__class.s b/asm/d/kankyo/d_kankyo/dKy_Execute__FP17sub_kankyo__class.s deleted file mode 100644 index b545ccd780..0000000000 --- a/asm/d/kankyo/d_kankyo/dKy_Execute__FP17sub_kankyo__class.s +++ /dev/null @@ -1,14 +0,0 @@ -lbl_801A5B98: -/* 801A5B98 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801A5B9C 7C 08 02 A6 */ mflr r0 -/* 801A5BA0 90 01 00 14 */ stw r0, 0x14(r1) -/* 801A5BA4 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */ -/* 801A5BA8 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */ -/* 801A5BAC 4B FF F6 DD */ bl exeKankyo__18dScnKy_env_light_cFv -/* 801A5BB0 4B EB 4A 11 */ bl dKyw_wind_set__Fv -/* 801A5BB4 48 00 51 9D */ bl dKy_twilight_camelight_set__Fv -/* 801A5BB8 38 60 00 01 */ li r3, 1 -/* 801A5BBC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801A5BC0 7C 08 03 A6 */ mtlr r0 -/* 801A5BC4 38 21 00 10 */ addi r1, r1, 0x10 -/* 801A5BC8 4E 80 00 20 */ blr diff --git a/asm/d/kankyo/d_kankyo/dKy_Global_amb_set__FP12dKy_tevstr_c.s b/asm/d/kankyo/d_kankyo/dKy_Global_amb_set__FP12dKy_tevstr_c.s deleted file mode 100644 index 27f9ff2ba1..0000000000 --- a/asm/d/kankyo/d_kankyo/dKy_Global_amb_set__FP12dKy_tevstr_c.s +++ /dev/null @@ -1,69 +0,0 @@ -lbl_801A75E0: -/* 801A75E0 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 801A75E4 7C 08 02 A6 */ mflr r0 -/* 801A75E8 90 01 00 24 */ stw r0, 0x24(r1) -/* 801A75EC 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 801A75F0 7C 7F 1B 78 */ mr r31, r3 -/* 801A75F4 A8 03 03 48 */ lha r0, 0x348(r3) -/* 801A75F8 98 01 00 0C */ stb r0, 0xc(r1) -/* 801A75FC A8 03 03 4A */ lha r0, 0x34a(r3) -/* 801A7600 98 01 00 0D */ stb r0, 0xd(r1) -/* 801A7604 A8 03 03 4C */ lha r0, 0x34c(r3) -/* 801A7608 98 01 00 0E */ stb r0, 0xe(r1) -/* 801A760C A8 03 03 4E */ lha r0, 0x34e(r3) -/* 801A7610 98 01 00 0F */ stb r0, 0xf(r1) -/* 801A7614 88 03 03 7A */ lbz r0, 0x37a(r3) -/* 801A7618 28 00 00 02 */ cmplwi r0, 2 -/* 801A761C 41 82 00 0C */ beq lbl_801A7628 -/* 801A7620 28 00 00 03 */ cmplwi r0, 3 -/* 801A7624 40 82 00 54 */ bne lbl_801A7678 -lbl_801A7628: -/* 801A7628 48 00 4F 55 */ bl dKy_darkworld_check__Fv -/* 801A762C 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 801A7630 41 82 00 80 */ beq lbl_801A76B0 -/* 801A7634 88 1F 03 7A */ lbz r0, 0x37a(r31) -/* 801A7638 28 00 00 02 */ cmplwi r0, 2 -/* 801A763C 40 82 00 20 */ bne lbl_801A765C -/* 801A7640 38 00 00 12 */ li r0, 0x12 -/* 801A7644 98 01 00 0C */ stb r0, 0xc(r1) -/* 801A7648 98 01 00 0D */ stb r0, 0xd(r1) -/* 801A764C 98 01 00 0E */ stb r0, 0xe(r1) -/* 801A7650 38 00 00 00 */ li r0, 0 -/* 801A7654 98 01 00 0F */ stb r0, 0xf(r1) -/* 801A7658 48 00 00 58 */ b lbl_801A76B0 -lbl_801A765C: -/* 801A765C 38 00 00 0C */ li r0, 0xc -/* 801A7660 98 01 00 0C */ stb r0, 0xc(r1) -/* 801A7664 98 01 00 0D */ stb r0, 0xd(r1) -/* 801A7668 98 01 00 0E */ stb r0, 0xe(r1) -/* 801A766C 38 00 00 00 */ li r0, 0 -/* 801A7670 98 01 00 0F */ stb r0, 0xf(r1) -/* 801A7674 48 00 00 3C */ b lbl_801A76B0 -lbl_801A7678: -/* 801A7678 28 00 00 01 */ cmplwi r0, 1 -/* 801A767C 41 80 00 0C */ blt lbl_801A7688 -/* 801A7680 28 00 00 07 */ cmplwi r0, 7 -/* 801A7684 40 81 00 18 */ ble lbl_801A769C -lbl_801A7688: -/* 801A7688 28 00 00 09 */ cmplwi r0, 9 -/* 801A768C 40 82 00 24 */ bne lbl_801A76B0 -/* 801A7690 48 00 4E ED */ bl dKy_darkworld_check__Fv -/* 801A7694 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 801A7698 41 82 00 18 */ beq lbl_801A76B0 -lbl_801A769C: -/* 801A769C 38 00 00 00 */ li r0, 0 -/* 801A76A0 98 01 00 0C */ stb r0, 0xc(r1) -/* 801A76A4 98 01 00 0D */ stb r0, 0xd(r1) -/* 801A76A8 98 01 00 0E */ stb r0, 0xe(r1) -/* 801A76AC 98 01 00 0F */ stb r0, 0xf(r1) -lbl_801A76B0: -/* 801A76B0 80 01 00 0C */ lwz r0, 0xc(r1) -/* 801A76B4 90 01 00 08 */ stw r0, 8(r1) -/* 801A76B8 38 60 00 04 */ li r3, 4 -/* 801A76BC 38 81 00 08 */ addi r4, r1, 8 -/* 801A76C0 48 1B 62 A1 */ bl GXSetChanAmbColor -/* 801A76C4 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 801A76C8 80 01 00 24 */ lwz r0, 0x24(r1) -/* 801A76CC 7C 08 03 A6 */ mtlr r0 -/* 801A76D0 38 21 00 20 */ addi r1, r1, 0x20 -/* 801A76D4 4E 80 00 20 */ blr diff --git a/asm/d/kankyo/d_kankyo/dKy_actor_addcol_set__Fsssf.s b/asm/d/kankyo/d_kankyo/dKy_actor_addcol_set__Fsssf.s deleted file mode 100644 index ba3daad578..0000000000 --- a/asm/d/kankyo/d_kankyo/dKy_actor_addcol_set__Fsssf.s +++ /dev/null @@ -1,39 +0,0 @@ -lbl_801A7E88: -/* 801A7E88 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 801A7E8C 7C 08 02 A6 */ mflr r0 -/* 801A7E90 90 01 00 24 */ stw r0, 0x24(r1) -/* 801A7E94 DB E1 00 18 */ stfd f31, 0x18(r1) -/* 801A7E98 39 61 00 18 */ addi r11, r1, 0x18 -/* 801A7E9C 48 1B A3 41 */ bl _savegpr_29 -/* 801A7EA0 7C 7D 1B 78 */ mr r29, r3 -/* 801A7EA4 7C 9E 23 78 */ mr r30, r4 -/* 801A7EA8 7C BF 2B 78 */ mr r31, r5 -/* 801A7EAC FF E0 08 90 */ fmr f31, f1 -/* 801A7EB0 4B FF FC 19 */ bl dKy_actor_addcol_amb_set__Fsssf -/* 801A7EB4 7F A3 EB 78 */ mr r3, r29 -/* 801A7EB8 7F C4 F3 78 */ mr r4, r30 -/* 801A7EBC 7F E5 FB 78 */ mr r5, r31 -/* 801A7EC0 FC 20 F8 90 */ fmr f1, f31 -/* 801A7EC4 4B FF FC A5 */ bl dKy_bg_addcol_amb_set__Fsssf -/* 801A7EC8 7F A3 EB 78 */ mr r3, r29 -/* 801A7ECC 7F C4 F3 78 */ mr r4, r30 -/* 801A7ED0 7F E5 FB 78 */ mr r5, r31 -/* 801A7ED4 FC 20 F8 90 */ fmr f1, f31 -/* 801A7ED8 4B FF FD 31 */ bl dKy_bg1_addcol_amb_set__Fsssf -/* 801A7EDC 7F A3 EB 78 */ mr r3, r29 -/* 801A7EE0 7F C4 F3 78 */ mr r4, r30 -/* 801A7EE4 7F E5 FB 78 */ mr r5, r31 -/* 801A7EE8 FC 20 F8 90 */ fmr f1, f31 -/* 801A7EEC 4B FF FD BD */ bl dKy_bg2_addcol_amb_set__Fsssf -/* 801A7EF0 7F A3 EB 78 */ mr r3, r29 -/* 801A7EF4 7F C4 F3 78 */ mr r4, r30 -/* 801A7EF8 7F E5 FB 78 */ mr r5, r31 -/* 801A7EFC FC 20 F8 90 */ fmr f1, f31 -/* 801A7F00 4B FF FE 49 */ bl dKy_bg3_addcol_amb_set__Fsssf -/* 801A7F04 CB E1 00 18 */ lfd f31, 0x18(r1) -/* 801A7F08 39 61 00 18 */ addi r11, r1, 0x18 -/* 801A7F0C 48 1B A3 1D */ bl _restgpr_29 -/* 801A7F10 80 01 00 24 */ lwz r0, 0x24(r1) -/* 801A7F14 7C 08 03 A6 */ mtlr r0 -/* 801A7F18 38 21 00 20 */ addi r1, r1, 0x20 -/* 801A7F1C 4E 80 00 20 */ blr diff --git a/asm/d/kankyo/d_kankyo/dKy_bgparts_activelight_cut__Fi.s b/asm/d/kankyo/d_kankyo/dKy_bgparts_activelight_cut__Fi.s deleted file mode 100644 index 7eb3cfa557..0000000000 --- a/asm/d/kankyo/d_kankyo/dKy_bgparts_activelight_cut__Fi.s +++ /dev/null @@ -1,8 +0,0 @@ -lbl_801A7AAC: -/* 801A7AAC 38 A0 00 00 */ li r5, 0 -/* 801A7AB0 3C 80 80 43 */ lis r4, g_env_light@ha /* 0x8042CA54@ha */ -/* 801A7AB4 38 84 CA 54 */ addi r4, r4, g_env_light@l /* 0x8042CA54@l */ -/* 801A7AB8 54 60 28 34 */ slwi r0, r3, 5 -/* 801A7ABC 7C 64 02 14 */ add r3, r4, r0 -/* 801A7AC0 90 A3 07 80 */ stw r5, 0x780(r3) -/* 801A7AC4 4E 80 00 20 */ blr diff --git a/asm/d/kankyo/d_kankyo/dKy_bgparts_activelight_set__FP15LIGHT_INFLUENCEi.s b/asm/d/kankyo/d_kankyo/dKy_bgparts_activelight_set__FP15LIGHT_INFLUENCEi.s deleted file mode 100644 index 12fcce04e0..0000000000 --- a/asm/d/kankyo/d_kankyo/dKy_bgparts_activelight_set__FP15LIGHT_INFLUENCEi.s +++ /dev/null @@ -1,29 +0,0 @@ -lbl_801A7A40: -/* 801A7A40 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801A7A44 7C 08 02 A6 */ mflr r0 -/* 801A7A48 90 01 00 14 */ stw r0, 0x14(r1) -/* 801A7A4C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801A7A50 93 C1 00 08 */ stw r30, 8(r1) -/* 801A7A54 7C 65 1B 79 */ or. r5, r3, r3 -/* 801A7A58 7C 9E 23 78 */ mr r30, r4 -/* 801A7A5C 41 82 00 38 */ beq lbl_801A7A94 -/* 801A7A60 57 DF 28 34 */ slwi r31, r30, 5 -/* 801A7A64 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */ -/* 801A7A68 38 03 CA 54 */ addi r0, r3, g_env_light@l /* 0x8042CA54@l */ -/* 801A7A6C 7C 60 FA 14 */ add r3, r0, r31 -/* 801A7A70 38 63 07 64 */ addi r3, r3, 0x764 -/* 801A7A74 7C A4 2B 78 */ mr r4, r5 -/* 801A7A78 38 A0 00 20 */ li r5, 0x20 -/* 801A7A7C 4B E5 BA C5 */ bl memcpy -/* 801A7A80 38 9E 00 01 */ addi r4, r30, 1 -/* 801A7A84 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */ -/* 801A7A88 38 03 CA 54 */ addi r0, r3, g_env_light@l /* 0x8042CA54@l */ -/* 801A7A8C 7C 60 FA 14 */ add r3, r0, r31 -/* 801A7A90 90 83 07 80 */ stw r4, 0x780(r3) -lbl_801A7A94: -/* 801A7A94 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801A7A98 83 C1 00 08 */ lwz r30, 8(r1) -/* 801A7A9C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801A7AA0 7C 08 03 A6 */ mtlr r0 -/* 801A7AA4 38 21 00 10 */ addi r1, r1, 0x10 -/* 801A7AA8 4E 80 00 20 */ blr diff --git a/asm/d/kankyo/d_kankyo/dKy_cloudshadow_scroll__FP12J3DModelDataP12dKy_tevstr_ci.s b/asm/d/kankyo/d_kankyo/dKy_cloudshadow_scroll__FP12J3DModelDataP12dKy_tevstr_ci.s deleted file mode 100644 index 282d90d4a5..0000000000 --- a/asm/d/kankyo/d_kankyo/dKy_cloudshadow_scroll__FP12J3DModelDataP12dKy_tevstr_ci.s +++ /dev/null @@ -1,108 +0,0 @@ -lbl_801A4C10: -/* 801A4C10 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 801A4C14 7C 08 02 A6 */ mflr r0 -/* 801A4C18 90 01 00 34 */ stw r0, 0x34(r1) -/* 801A4C1C 39 61 00 30 */ addi r11, r1, 0x30 -/* 801A4C20 48 1B D5 AD */ bl _savegpr_25 -/* 801A4C24 7C 79 1B 78 */ mr r25, r3 -/* 801A4C28 7C 9A 23 78 */ mr r26, r4 -/* 801A4C2C 7C BB 2B 78 */ mr r27, r5 -/* 801A4C30 83 C3 00 64 */ lwz r30, 0x64(r3) -/* 801A4C34 A0 63 00 5C */ lhz r3, 0x5c(r3) -/* 801A4C38 3B 83 FF FF */ addi r28, r3, -1 -/* 801A4C3C 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */ -/* 801A4C40 3B E3 CA 54 */ addi r31, r3, g_env_light@l /* 0x8042CA54@l */ -/* 801A4C44 48 00 01 3C */ b lbl_801A4D80 -lbl_801A4C48: -/* 801A4C48 80 79 00 60 */ lwz r3, 0x60(r25) -/* 801A4C4C 57 80 13 BA */ rlwinm r0, r28, 2, 0xe, 0x1d -/* 801A4C50 7F A3 00 2E */ lwzx r29, r3, r0 -/* 801A4C54 7F 65 DB 78 */ mr r5, r27 -/* 801A4C58 A0 1A 03 78 */ lhz r0, 0x378(r26) -/* 801A4C5C 28 00 00 00 */ cmplwi r0, 0 -/* 801A4C60 41 82 00 10 */ beq lbl_801A4C70 -/* 801A4C64 7C 00 E0 00 */ cmpw r0, r28 -/* 801A4C68 40 82 00 08 */ bne lbl_801A4C70 -/* 801A4C6C 38 A0 00 02 */ li r5, 2 -lbl_801A4C70: -/* 801A4C70 7F A3 EB 78 */ mr r3, r29 -/* 801A4C74 7F 44 D3 78 */ mr r4, r26 -/* 801A4C78 4B FF F7 A9 */ bl setLightTevColorType_MAJI_sub__FP11J3DMaterialP12dKy_tevstr_ci -/* 801A4C7C 7F C3 F3 78 */ mr r3, r30 -/* 801A4C80 57 84 04 3E */ clrlwi r4, r28, 0x10 -/* 801A4C84 48 13 9E 75 */ bl getName__10JUTNameTabCFUs -/* 801A4C88 88 03 00 03 */ lbz r0, 3(r3) -/* 801A4C8C 2C 00 00 4D */ cmpwi r0, 0x4d -/* 801A4C90 40 82 00 34 */ bne lbl_801A4CC4 -/* 801A4C94 88 03 00 04 */ lbz r0, 4(r3) -/* 801A4C98 2C 00 00 41 */ cmpwi r0, 0x41 -/* 801A4C9C 40 82 00 28 */ bne lbl_801A4CC4 -/* 801A4CA0 88 03 00 05 */ lbz r0, 5(r3) -/* 801A4CA4 2C 00 00 30 */ cmpwi r0, 0x30 -/* 801A4CA8 40 82 00 1C */ bne lbl_801A4CC4 -/* 801A4CAC 88 03 00 06 */ lbz r0, 6(r3) -/* 801A4CB0 7C 00 07 74 */ extsb r0, r0 -/* 801A4CB4 2C 00 00 30 */ cmpwi r0, 0x30 -/* 801A4CB8 41 82 00 24 */ beq lbl_801A4CDC -/* 801A4CBC 2C 00 00 31 */ cmpwi r0, 0x31 -/* 801A4CC0 41 82 00 1C */ beq lbl_801A4CDC -lbl_801A4CC4: -/* 801A4CC4 88 03 00 05 */ lbz r0, 5(r3) -/* 801A4CC8 2C 00 00 31 */ cmpwi r0, 0x31 -/* 801A4CCC 40 82 00 B0 */ bne lbl_801A4D7C -/* 801A4CD0 88 03 00 06 */ lbz r0, 6(r3) -/* 801A4CD4 2C 00 00 36 */ cmpwi r0, 0x36 -/* 801A4CD8 40 82 00 A4 */ bne lbl_801A4D7C -lbl_801A4CDC: -/* 801A4CDC 88 03 00 06 */ lbz r0, 6(r3) -/* 801A4CE0 2C 00 00 30 */ cmpwi r0, 0x30 -/* 801A4CE4 40 82 00 38 */ bne lbl_801A4D1C -/* 801A4CE8 88 1F 12 F8 */ lbz r0, 0x12f8(r31) -/* 801A4CEC 98 01 00 08 */ stb r0, 8(r1) -/* 801A4CF0 38 00 00 00 */ li r0, 0 -/* 801A4CF4 98 01 00 09 */ stb r0, 9(r1) -/* 801A4CF8 98 01 00 0A */ stb r0, 0xa(r1) -/* 801A4CFC 98 01 00 0B */ stb r0, 0xb(r1) -/* 801A4D00 80 7D 00 2C */ lwz r3, 0x2c(r29) -/* 801A4D04 38 80 00 01 */ li r4, 1 -/* 801A4D08 38 A1 00 08 */ addi r5, r1, 8 -/* 801A4D0C 81 83 00 00 */ lwz r12, 0(r3) -/* 801A4D10 81 8C 00 6C */ lwz r12, 0x6c(r12) -/* 801A4D14 7D 89 03 A6 */ mtctr r12 -/* 801A4D18 4E 80 04 21 */ bctrl -lbl_801A4D1C: -/* 801A4D1C 80 7D 00 28 */ lwz r3, 0x28(r29) -/* 801A4D20 38 80 00 01 */ li r4, 1 -/* 801A4D24 81 83 00 00 */ lwz r12, 0(r3) -/* 801A4D28 81 8C 00 50 */ lwz r12, 0x50(r12) -/* 801A4D2C 7D 89 03 A6 */ mtctr r12 -/* 801A4D30 4E 80 04 21 */ bctrl -/* 801A4D34 28 03 00 00 */ cmplwi r3, 0 -/* 801A4D38 41 82 00 44 */ beq lbl_801A4D7C -/* 801A4D3C 80 7D 00 28 */ lwz r3, 0x28(r29) -/* 801A4D40 38 80 00 01 */ li r4, 1 -/* 801A4D44 81 83 00 00 */ lwz r12, 0(r3) -/* 801A4D48 81 8C 00 50 */ lwz r12, 0x50(r12) -/* 801A4D4C 7D 89 03 A6 */ mtctr r12 -/* 801A4D50 4E 80 04 21 */ bctrl -/* 801A4D54 28 03 00 00 */ cmplwi r3, 0 -/* 801A4D58 41 82 00 24 */ beq lbl_801A4D7C -/* 801A4D5C 80 9F 0E D0 */ lwz r4, 0xed0(r31) -/* 801A4D60 28 04 00 00 */ cmplwi r4, 0 -/* 801A4D64 41 82 00 18 */ beq lbl_801A4D7C -/* 801A4D68 C0 04 11 50 */ lfs f0, 0x1150(r4) -/* 801A4D6C D0 03 00 1C */ stfs f0, 0x1c(r3) -/* 801A4D70 80 9F 0E D0 */ lwz r4, 0xed0(r31) -/* 801A4D74 C0 04 11 54 */ lfs f0, 0x1154(r4) -/* 801A4D78 D0 03 00 20 */ stfs f0, 0x20(r3) -lbl_801A4D7C: -/* 801A4D7C 3B 9C FF FF */ addi r28, r28, -1 -lbl_801A4D80: -/* 801A4D80 2C 1C 00 00 */ cmpwi r28, 0 -/* 801A4D84 40 80 FE C4 */ bge lbl_801A4C48 -/* 801A4D88 39 61 00 30 */ addi r11, r1, 0x30 -/* 801A4D8C 48 1B D4 8D */ bl _restgpr_25 -/* 801A4D90 80 01 00 34 */ lwz r0, 0x34(r1) -/* 801A4D94 7C 08 03 A6 */ mtlr r0 -/* 801A4D98 38 21 00 30 */ addi r1, r1, 0x30 -/* 801A4D9C 4E 80 00 20 */ blr diff --git a/asm/d/kankyo/d_kankyo/dKy_dalkmist_inf_cut__FP18DALKMIST_INFLUENCE.s b/asm/d/kankyo/d_kankyo/dKy_dalkmist_inf_cut__FP18DALKMIST_INFLUENCE.s deleted file mode 100644 index 915aa29003..0000000000 --- a/asm/d/kankyo/d_kankyo/dKy_dalkmist_inf_cut__FP18DALKMIST_INFLUENCE.s +++ /dev/null @@ -1,14 +0,0 @@ -lbl_801A7868: -/* 801A7868 28 03 00 00 */ cmplwi r3, 0 -/* 801A786C 4D 82 00 20 */ beqlr -/* 801A7870 88 03 00 10 */ lbz r0, 0x10(r3) -/* 801A7874 7C 00 07 74 */ extsb r0, r0 -/* 801A7878 2C 00 00 0A */ cmpwi r0, 0xa -/* 801A787C 4C 80 00 20 */ bgelr -/* 801A7880 38 80 00 00 */ li r4, 0 -/* 801A7884 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */ -/* 801A7888 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */ -/* 801A788C 54 00 10 3A */ slwi r0, r0, 2 -/* 801A7890 7C 63 02 14 */ add r3, r3, r0 -/* 801A7894 90 83 09 90 */ stw r4, 0x990(r3) -/* 801A7898 4E 80 00 20 */ blr diff --git a/asm/d/kankyo/d_kankyo/dKy_dalkmist_inf_set__FP18DALKMIST_INFLUENCE.s b/asm/d/kankyo/d_kankyo/dKy_dalkmist_inf_set__FP18DALKMIST_INFLUENCE.s deleted file mode 100644 index ca8fb9c2b2..0000000000 --- a/asm/d/kankyo/d_kankyo/dKy_dalkmist_inf_set__FP18DALKMIST_INFLUENCE.s +++ /dev/null @@ -1,24 +0,0 @@ -lbl_801A7814: -/* 801A7814 38 E0 00 00 */ li r7, 0 -/* 801A7818 38 80 00 00 */ li r4, 0 -/* 801A781C 3C A0 80 43 */ lis r5, g_env_light@ha /* 0x8042CA54@ha */ -/* 801A7820 38 C5 CA 54 */ addi r6, r5, g_env_light@l /* 0x8042CA54@l */ -/* 801A7824 38 00 00 0A */ li r0, 0xa -/* 801A7828 7C 09 03 A6 */ mtctr r0 -lbl_801A782C: -/* 801A782C 7C A6 22 14 */ add r5, r6, r4 -/* 801A7830 80 05 09 90 */ lwz r0, 0x990(r5) -/* 801A7834 28 00 00 00 */ cmplwi r0, 0 -/* 801A7838 40 82 00 20 */ bne lbl_801A7858 -/* 801A783C 3C A0 80 43 */ lis r5, g_env_light@ha /* 0x8042CA54@ha */ -/* 801A7840 38 05 CA 54 */ addi r0, r5, g_env_light@l /* 0x8042CA54@l */ -/* 801A7844 7C 80 22 14 */ add r4, r0, r4 -/* 801A7848 90 64 09 90 */ stw r3, 0x990(r4) -/* 801A784C 80 64 09 90 */ lwz r3, 0x990(r4) -/* 801A7850 98 E3 00 10 */ stb r7, 0x10(r3) -/* 801A7854 4E 80 00 20 */ blr -lbl_801A7858: -/* 801A7858 38 E7 00 01 */ addi r7, r7, 1 -/* 801A785C 38 84 00 04 */ addi r4, r4, 4 -/* 801A7860 42 00 FF CC */ bdnz lbl_801A782C -/* 801A7864 4E 80 00 20 */ blr diff --git a/asm/d/kankyo/d_kankyo/dKy_efplight_cut__FP15LIGHT_INFLUENCE.s b/asm/d/kankyo/d_kankyo/dKy_efplight_cut__FP15LIGHT_INFLUENCE.s deleted file mode 100644 index 6b46ee3be9..0000000000 --- a/asm/d/kankyo/d_kankyo/dKy_efplight_cut__FP15LIGHT_INFLUENCE.s +++ /dev/null @@ -1,17 +0,0 @@ -lbl_801A7A00: -/* 801A7A00 28 03 00 00 */ cmplwi r3, 0 -/* 801A7A04 4D 82 00 20 */ beqlr -/* 801A7A08 80 63 00 1C */ lwz r3, 0x1c(r3) -/* 801A7A0C 2C 03 00 00 */ cmpwi r3, 0 -/* 801A7A10 4D 82 00 20 */ beqlr -/* 801A7A14 34 03 FF FF */ addic. r0, r3, -1 -/* 801A7A18 4D 80 00 20 */ bltlr -/* 801A7A1C 2C 00 00 05 */ cmpwi r0, 5 -/* 801A7A20 4C 80 00 20 */ bgelr -/* 801A7A24 38 80 00 00 */ li r4, 0 -/* 801A7A28 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */ -/* 801A7A2C 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */ -/* 801A7A30 54 00 10 3A */ slwi r0, r0, 2 -/* 801A7A34 7C 63 02 14 */ add r3, r3, r0 -/* 801A7A38 90 83 05 88 */ stw r4, 0x588(r3) -/* 801A7A3C 4E 80 00 20 */ blr diff --git a/asm/d/kankyo/d_kankyo/dKy_efplight_set__FP15LIGHT_INFLUENCE.s b/asm/d/kankyo/d_kankyo/dKy_efplight_set__FP15LIGHT_INFLUENCE.s deleted file mode 100644 index ee1253589c..0000000000 --- a/asm/d/kankyo/d_kankyo/dKy_efplight_set__FP15LIGHT_INFLUENCE.s +++ /dev/null @@ -1,37 +0,0 @@ -lbl_801A797C: -/* 801A797C 38 80 00 00 */ li r4, 0 -/* 801A7980 3C A0 80 43 */ lis r5, g_env_light@ha /* 0x8042CA54@ha */ -/* 801A7984 38 C5 CA 54 */ addi r6, r5, g_env_light@l /* 0x8042CA54@l */ -/* 801A7988 38 00 00 05 */ li r0, 5 -/* 801A798C 7C 09 03 A6 */ mtctr r0 -lbl_801A7990: -/* 801A7990 7C A6 22 14 */ add r5, r6, r4 -/* 801A7994 80 05 05 88 */ lwz r0, 0x588(r5) -/* 801A7998 7C 00 18 40 */ cmplw r0, r3 -/* 801A799C 4D 82 00 20 */ beqlr -/* 801A79A0 38 84 00 04 */ addi r4, r4, 4 -/* 801A79A4 42 00 FF EC */ bdnz lbl_801A7990 -/* 801A79A8 38 E0 00 00 */ li r7, 0 -/* 801A79AC 38 80 00 00 */ li r4, 0 -/* 801A79B0 3C A0 80 43 */ lis r5, g_env_light@ha /* 0x8042CA54@ha */ -/* 801A79B4 38 C5 CA 54 */ addi r6, r5, g_env_light@l /* 0x8042CA54@l */ -/* 801A79B8 38 00 00 05 */ li r0, 5 -/* 801A79BC 7C 09 03 A6 */ mtctr r0 -lbl_801A79C0: -/* 801A79C0 7C A6 22 14 */ add r5, r6, r4 -/* 801A79C4 80 05 05 88 */ lwz r0, 0x588(r5) -/* 801A79C8 28 00 00 00 */ cmplwi r0, 0 -/* 801A79CC 40 82 00 24 */ bne lbl_801A79F0 -/* 801A79D0 3C A0 80 43 */ lis r5, g_env_light@ha /* 0x8042CA54@ha */ -/* 801A79D4 38 05 CA 54 */ addi r0, r5, g_env_light@l /* 0x8042CA54@l */ -/* 801A79D8 7C 80 22 14 */ add r4, r0, r4 -/* 801A79DC 90 64 05 88 */ stw r3, 0x588(r4) -/* 801A79E0 38 07 00 01 */ addi r0, r7, 1 -/* 801A79E4 80 64 05 88 */ lwz r3, 0x588(r4) -/* 801A79E8 90 03 00 1C */ stw r0, 0x1c(r3) -/* 801A79EC 4E 80 00 20 */ blr -lbl_801A79F0: -/* 801A79F0 38 E7 00 01 */ addi r7, r7, 1 -/* 801A79F4 38 84 00 04 */ addi r4, r4, 4 -/* 801A79F8 42 00 FF C8 */ bdnz lbl_801A79C0 -/* 801A79FC 4E 80 00 20 */ blr diff --git a/asm/d/kankyo/d_kankyo/dKy_lightswitch_check__FP30stage_pure_lightvec_info_classc.s b/asm/d/kankyo/d_kankyo/dKy_lightswitch_check__FP30stage_pure_lightvec_info_classc.s deleted file mode 100644 index 5d38eddd2a..0000000000 --- a/asm/d/kankyo/d_kankyo/dKy_lightswitch_check__FP30stage_pure_lightvec_info_classc.s +++ /dev/null @@ -1,36 +0,0 @@ -lbl_801A61F4: -/* 801A61F4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801A61F8 7C 08 02 A6 */ mflr r0 -/* 801A61FC 90 01 00 14 */ stw r0, 0x14(r1) -/* 801A6200 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801A6204 7C 85 23 78 */ mr r5, r4 -/* 801A6208 3B E0 00 01 */ li r31, 1 -/* 801A620C 88 83 00 1F */ lbz r4, 0x1f(r3) -/* 801A6210 28 04 00 FF */ cmplwi r4, 0xff -/* 801A6214 41 82 00 4C */ beq lbl_801A6260 -/* 801A6218 88 03 00 1E */ lbz r0, 0x1e(r3) -/* 801A621C 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18 -/* 801A6220 40 82 00 24 */ bne lbl_801A6244 -/* 801A6224 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 801A6228 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 801A622C 7C A5 07 74 */ extsb r5, r5 -/* 801A6230 4B E8 F1 31 */ bl isSwitch__10dSv_info_cCFii -/* 801A6234 2C 03 00 00 */ cmpwi r3, 0 -/* 801A6238 41 82 00 28 */ beq lbl_801A6260 -/* 801A623C 3B E0 00 00 */ li r31, 0 -/* 801A6240 48 00 00 20 */ b lbl_801A6260 -lbl_801A6244: -/* 801A6244 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 801A6248 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 801A624C 7C A5 07 74 */ extsb r5, r5 -/* 801A6250 4B E8 F1 11 */ bl isSwitch__10dSv_info_cCFii -/* 801A6254 2C 03 00 00 */ cmpwi r3, 0 -/* 801A6258 40 82 00 08 */ bne lbl_801A6260 -/* 801A625C 3B E0 00 00 */ li r31, 0 -lbl_801A6260: -/* 801A6260 7F E3 FB 78 */ mr r3, r31 -/* 801A6264 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801A6268 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801A626C 7C 08 03 A6 */ mtlr r0 -/* 801A6270 38 21 00 10 */ addi r1, r1, 0x10 -/* 801A6274 4E 80 00 20 */ blr diff --git a/asm/d/kankyo/d_kankyo/dKy_mock_light_every_set__FP15LIGHT_INFLUENCE.s b/asm/d/kankyo/d_kankyo/dKy_mock_light_every_set__FP15LIGHT_INFLUENCE.s deleted file mode 100644 index 9a385886bc..0000000000 --- a/asm/d/kankyo/d_kankyo/dKy_mock_light_every_set__FP15LIGHT_INFLUENCE.s +++ /dev/null @@ -1,25 +0,0 @@ -lbl_801A7738: -/* 801A7738 38 E0 00 32 */ li r7, 0x32 -/* 801A773C 38 80 00 C8 */ li r4, 0xc8 -/* 801A7740 3C A0 80 43 */ lis r5, g_env_light@ha /* 0x8042CA54@ha */ -/* 801A7744 38 C5 CA 54 */ addi r6, r5, g_env_light@l /* 0x8042CA54@l */ -/* 801A7748 38 00 00 32 */ li r0, 0x32 -/* 801A774C 7C 09 03 A6 */ mtctr r0 -lbl_801A7750: -/* 801A7750 7C A6 22 14 */ add r5, r6, r4 -/* 801A7754 80 05 03 F8 */ lwz r0, 0x3f8(r5) -/* 801A7758 28 00 00 00 */ cmplwi r0, 0 -/* 801A775C 40 82 00 24 */ bne lbl_801A7780 -/* 801A7760 3C A0 80 43 */ lis r5, g_env_light@ha /* 0x8042CA54@ha */ -/* 801A7764 38 05 CA 54 */ addi r0, r5, g_env_light@l /* 0x8042CA54@l */ -/* 801A7768 7C 80 22 14 */ add r4, r0, r4 -/* 801A776C 90 64 03 F8 */ stw r3, 0x3f8(r4) -/* 801A7770 38 07 00 01 */ addi r0, r7, 1 -/* 801A7774 80 64 03 F8 */ lwz r3, 0x3f8(r4) -/* 801A7778 90 03 00 1C */ stw r0, 0x1c(r3) -/* 801A777C 4E 80 00 20 */ blr -lbl_801A7780: -/* 801A7780 38 E7 00 01 */ addi r7, r7, 1 -/* 801A7784 38 84 00 04 */ addi r4, r4, 4 -/* 801A7788 42 00 FF C8 */ bdnz lbl_801A7750 -/* 801A778C 4E 80 00 20 */ blr diff --git a/asm/d/kankyo/d_kankyo/dKy_plight_cut__FP15LIGHT_INFLUENCE.s b/asm/d/kankyo/d_kankyo/dKy_plight_cut__FP15LIGHT_INFLUENCE.s deleted file mode 100644 index a38d5a26a9..0000000000 --- a/asm/d/kankyo/d_kankyo/dKy_plight_cut__FP15LIGHT_INFLUENCE.s +++ /dev/null @@ -1,22 +0,0 @@ -lbl_801A792C: -/* 801A792C 28 03 00 00 */ cmplwi r3, 0 -/* 801A7930 4D 82 00 20 */ beqlr -/* 801A7934 80 03 00 1C */ lwz r0, 0x1c(r3) -/* 801A7938 2C 00 00 00 */ cmpwi r0, 0 -/* 801A793C 4D 82 00 20 */ beqlr -/* 801A7940 40 80 00 0C */ bge lbl_801A794C -/* 801A7944 1C 00 FF FF */ mulli r0, r0, -1 -/* 801A7948 90 03 00 1C */ stw r0, 0x1c(r3) -lbl_801A794C: -/* 801A794C 80 03 00 1C */ lwz r0, 0x1c(r3) -/* 801A7950 54 03 05 3E */ clrlwi r3, r0, 0x14 -/* 801A7954 38 03 FF FF */ addi r0, r3, -1 -/* 801A7958 2C 00 00 32 */ cmpwi r0, 0x32 -/* 801A795C 4C 80 00 20 */ bgelr -/* 801A7960 38 80 00 00 */ li r4, 0 -/* 801A7964 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */ -/* 801A7968 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */ -/* 801A796C 54 00 10 3A */ slwi r0, r0, 2 -/* 801A7970 7C 63 02 14 */ add r3, r3, r0 -/* 801A7974 90 83 03 F8 */ stw r4, 0x3f8(r3) -/* 801A7978 4E 80 00 20 */ blr diff --git a/asm/d/kankyo/d_kankyo/dKy_plight_priority_set__FP15LIGHT_INFLUENCE.s b/asm/d/kankyo/d_kankyo/dKy_plight_priority_set__FP15LIGHT_INFLUENCE.s deleted file mode 100644 index 49d02daf19..0000000000 --- a/asm/d/kankyo/d_kankyo/dKy_plight_priority_set__FP15LIGHT_INFLUENCE.s +++ /dev/null @@ -1,41 +0,0 @@ -lbl_801A789C: -/* 801A789C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801A78A0 7C 08 02 A6 */ mflr r0 -/* 801A78A4 90 01 00 14 */ stw r0, 0x14(r1) -/* 801A78A8 38 E0 00 00 */ li r7, 0 -/* 801A78AC 38 80 00 00 */ li r4, 0 -/* 801A78B0 3C A0 80 43 */ lis r5, g_env_light@ha /* 0x8042CA54@ha */ -/* 801A78B4 38 C5 CA 54 */ addi r6, r5, g_env_light@l /* 0x8042CA54@l */ -/* 801A78B8 38 00 00 32 */ li r0, 0x32 -/* 801A78BC 7C 09 03 A6 */ mtctr r0 -lbl_801A78C0: -/* 801A78C0 7C A6 22 14 */ add r5, r6, r4 -/* 801A78C4 80 05 03 F8 */ lwz r0, 0x3f8(r5) -/* 801A78C8 28 00 00 00 */ cmplwi r0, 0 -/* 801A78CC 40 82 00 28 */ bne lbl_801A78F4 -/* 801A78D0 3C A0 80 43 */ lis r5, g_env_light@ha /* 0x8042CA54@ha */ -/* 801A78D4 38 05 CA 54 */ addi r0, r5, g_env_light@l /* 0x8042CA54@l */ -/* 801A78D8 7C 80 22 14 */ add r4, r0, r4 -/* 801A78DC 90 64 03 F8 */ stw r3, 0x3f8(r4) -/* 801A78E0 38 07 00 01 */ addi r0, r7, 1 -/* 801A78E4 7C 00 00 D0 */ neg r0, r0 -/* 801A78E8 80 64 03 F8 */ lwz r3, 0x3f8(r4) -/* 801A78EC 90 03 00 1C */ stw r0, 0x1c(r3) -/* 801A78F0 48 00 00 10 */ b lbl_801A7900 -lbl_801A78F4: -/* 801A78F4 38 E7 00 01 */ addi r7, r7, 1 -/* 801A78F8 38 84 00 04 */ addi r4, r4, 4 -/* 801A78FC 42 00 FF C4 */ bdnz lbl_801A78C0 -lbl_801A7900: -/* 801A7900 2C 07 00 32 */ cmpwi r7, 0x32 -/* 801A7904 41 80 00 18 */ blt lbl_801A791C -/* 801A7908 3C 60 80 39 */ lis r3, d_kankyo_d_kankyo__stringBase0@ha /* 0x80394C6C@ha */ -/* 801A790C 38 63 4C 6C */ addi r3, r3, d_kankyo_d_kankyo__stringBase0@l /* 0x80394C6C@l */ -/* 801A7910 38 63 02 09 */ addi r3, r3, 0x209 -/* 801A7914 4C C6 31 82 */ crclr 6 -/* 801A7918 4B E5 F3 D5 */ bl OSReport_Warning -lbl_801A791C: -/* 801A791C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801A7920 7C 08 03 A6 */ mtlr r0 -/* 801A7924 38 21 00 10 */ addi r1, r1, 0x10 -/* 801A7928 4E 80 00 20 */ blr diff --git a/asm/d/kankyo/d_kankyo/dKy_plight_set__FP15LIGHT_INFLUENCE.s b/asm/d/kankyo/d_kankyo/dKy_plight_set__FP15LIGHT_INFLUENCE.s deleted file mode 100644 index 484f9bfd77..0000000000 --- a/asm/d/kankyo/d_kankyo/dKy_plight_set__FP15LIGHT_INFLUENCE.s +++ /dev/null @@ -1,37 +0,0 @@ -lbl_801A7790: -/* 801A7790 38 80 00 00 */ li r4, 0 -/* 801A7794 3C A0 80 43 */ lis r5, g_env_light@ha /* 0x8042CA54@ha */ -/* 801A7798 38 C5 CA 54 */ addi r6, r5, g_env_light@l /* 0x8042CA54@l */ -/* 801A779C 38 00 00 64 */ li r0, 0x64 -/* 801A77A0 7C 09 03 A6 */ mtctr r0 -lbl_801A77A4: -/* 801A77A4 7C A6 22 14 */ add r5, r6, r4 -/* 801A77A8 80 05 03 F8 */ lwz r0, 0x3f8(r5) -/* 801A77AC 7C 00 18 40 */ cmplw r0, r3 -/* 801A77B0 4D 82 00 20 */ beqlr -/* 801A77B4 38 84 00 04 */ addi r4, r4, 4 -/* 801A77B8 42 00 FF EC */ bdnz lbl_801A77A4 -/* 801A77BC 38 E0 00 00 */ li r7, 0 -/* 801A77C0 38 80 00 00 */ li r4, 0 -/* 801A77C4 3C A0 80 43 */ lis r5, g_env_light@ha /* 0x8042CA54@ha */ -/* 801A77C8 38 C5 CA 54 */ addi r6, r5, g_env_light@l /* 0x8042CA54@l */ -/* 801A77CC 38 00 00 32 */ li r0, 0x32 -/* 801A77D0 7C 09 03 A6 */ mtctr r0 -lbl_801A77D4: -/* 801A77D4 7C A6 22 14 */ add r5, r6, r4 -/* 801A77D8 80 05 03 F8 */ lwz r0, 0x3f8(r5) -/* 801A77DC 28 00 00 00 */ cmplwi r0, 0 -/* 801A77E0 40 82 00 24 */ bne lbl_801A7804 -/* 801A77E4 3C A0 80 43 */ lis r5, g_env_light@ha /* 0x8042CA54@ha */ -/* 801A77E8 38 05 CA 54 */ addi r0, r5, g_env_light@l /* 0x8042CA54@l */ -/* 801A77EC 7C 80 22 14 */ add r4, r0, r4 -/* 801A77F0 90 64 03 F8 */ stw r3, 0x3f8(r4) -/* 801A77F4 38 07 00 01 */ addi r0, r7, 1 -/* 801A77F8 80 64 03 F8 */ lwz r3, 0x3f8(r4) -/* 801A77FC 90 03 00 1C */ stw r0, 0x1c(r3) -/* 801A7800 4E 80 00 20 */ blr -lbl_801A7804: -/* 801A7804 38 E7 00 01 */ addi r7, r7, 1 -/* 801A7808 38 84 00 04 */ addi r4, r4, 4 -/* 801A780C 42 00 FF C8 */ bdnz lbl_801A77D4 -/* 801A7810 4E 80 00 20 */ blr diff --git a/asm/d/kankyo/d_kankyo/setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c.s b/asm/d/kankyo/d_kankyo/setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c.s deleted file mode 100644 index d3278bc1c0..0000000000 --- a/asm/d/kankyo/d_kankyo/setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c.s +++ /dev/null @@ -1,69 +0,0 @@ -lbl_801A4DA0: -/* 801A4DA0 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 801A4DA4 7C 08 02 A6 */ mflr r0 -/* 801A4DA8 90 01 00 24 */ stw r0, 0x24(r1) -/* 801A4DAC 39 61 00 20 */ addi r11, r1, 0x20 -/* 801A4DB0 48 1B D4 29 */ bl _savegpr_28 -/* 801A4DB4 7C 7E 1B 78 */ mr r30, r3 -/* 801A4DB8 7C 9C 23 78 */ mr r28, r4 -/* 801A4DBC 7C BD 2B 78 */ mr r29, r5 -/* 801A4DC0 88 05 03 83 */ lbz r0, 0x383(r5) -/* 801A4DC4 28 00 00 7C */ cmplwi r0, 0x7c -/* 801A4DC8 41 82 00 34 */ beq lbl_801A4DFC -/* 801A4DCC 28 00 00 7B */ cmplwi r0, 0x7b -/* 801A4DD0 41 82 00 18 */ beq lbl_801A4DE8 -/* 801A4DD4 7F A3 EB 78 */ mr r3, r29 -/* 801A4DD8 88 0D 87 E4 */ lbz r0, mStayNo__20dStage_roomControl_c+0x0(r13) -/* 801A4DDC 7C 04 07 74 */ extsb r4, r0 -/* 801A4DE0 38 A0 00 FF */ li r5, 0xff -/* 801A4DE4 48 00 3B 09 */ bl dKy_tevstr_init__FP12dKy_tevstr_cScUc -lbl_801A4DE8: -/* 801A4DE8 7F C3 F3 78 */ mr r3, r30 -/* 801A4DEC 38 80 00 0B */ li r4, 0xb -/* 801A4DF0 38 A0 00 00 */ li r5, 0 -/* 801A4DF4 7F A6 EB 78 */ mr r6, r29 -/* 801A4DF8 4B FF E9 CD */ bl settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c -lbl_801A4DFC: -/* 801A4DFC 7F A3 EB 78 */ mr r3, r29 -/* 801A4E00 48 00 20 9D */ bl dKy_setLight_nowroom_actor__FP12dKy_tevstr_c -/* 801A4E04 88 1D 03 7A */ lbz r0, 0x37a(r29) -/* 801A4E08 28 00 00 0A */ cmplwi r0, 0xa -/* 801A4E0C 40 81 00 1C */ ble lbl_801A4E28 -/* 801A4E10 28 00 00 0C */ cmplwi r0, 0xc -/* 801A4E14 41 82 00 14 */ beq lbl_801A4E28 -/* 801A4E18 28 00 00 0D */ cmplwi r0, 0xd -/* 801A4E1C 41 82 00 0C */ beq lbl_801A4E28 -/* 801A4E20 3B E0 00 00 */ li r31, 0 -/* 801A4E24 48 00 00 08 */ b lbl_801A4E2C -lbl_801A4E28: -/* 801A4E28 3B E0 00 01 */ li r31, 1 -lbl_801A4E2C: -/* 801A4E2C 54 00 06 B5 */ rlwinm. r0, r0, 0, 0x1a, 0x1a -/* 801A4E30 41 82 00 18 */ beq lbl_801A4E48 -/* 801A4E34 7F 83 E3 78 */ mr r3, r28 -/* 801A4E38 7F A4 EB 78 */ mr r4, r29 -/* 801A4E3C 7F E5 FB 78 */ mr r5, r31 -/* 801A4E40 4B FF FD D1 */ bl dKy_cloudshadow_scroll__FP12J3DModelDataP12dKy_tevstr_ci -/* 801A4E44 48 00 00 34 */ b lbl_801A4E78 -lbl_801A4E48: -/* 801A4E48 A0 7C 00 5C */ lhz r3, 0x5c(r28) -/* 801A4E4C 3B C3 FF FF */ addi r30, r3, -1 -/* 801A4E50 48 00 00 20 */ b lbl_801A4E70 -lbl_801A4E54: -/* 801A4E54 80 7C 00 60 */ lwz r3, 0x60(r28) -/* 801A4E58 57 C0 13 BA */ rlwinm r0, r30, 2, 0xe, 0x1d -/* 801A4E5C 7C 63 00 2E */ lwzx r3, r3, r0 -/* 801A4E60 7F A4 EB 78 */ mr r4, r29 -/* 801A4E64 7F E5 FB 78 */ mr r5, r31 -/* 801A4E68 4B FF F5 B9 */ bl setLightTevColorType_MAJI_sub__FP11J3DMaterialP12dKy_tevstr_ci -/* 801A4E6C 3B DE FF FF */ addi r30, r30, -1 -lbl_801A4E70: -/* 801A4E70 2C 1E 00 00 */ cmpwi r30, 0 -/* 801A4E74 40 80 FF E0 */ bge lbl_801A4E54 -lbl_801A4E78: -/* 801A4E78 39 61 00 20 */ addi r11, r1, 0x20 -/* 801A4E7C 48 1B D3 A9 */ bl _restgpr_28 -/* 801A4E80 80 01 00 24 */ lwz r0, 0x24(r1) -/* 801A4E84 7C 08 03 A6 */ mtlr r0 -/* 801A4E88 38 21 00 20 */ addi r1, r1, 0x20 -/* 801A4E8C 4E 80 00 20 */ blr diff --git a/asm/m_Do/m_Do_ext/mDoExt_setupStageTexture__FP12J3DModelData.s b/asm/m_Do/m_Do_ext/mDoExt_setupStageTexture__FP12J3DModelData.s deleted file mode 100644 index ce618f2229..0000000000 --- a/asm/m_Do/m_Do_ext/mDoExt_setupStageTexture__FP12J3DModelData.s +++ /dev/null @@ -1,152 +0,0 @@ -lbl_8000EA80: -/* 8000EA80 94 21 FF A0 */ stwu r1, -0x60(r1) -/* 8000EA84 7C 08 02 A6 */ mflr r0 -/* 8000EA88 90 01 00 64 */ stw r0, 0x64(r1) -/* 8000EA8C 39 61 00 60 */ addi r11, r1, 0x60 -/* 8000EA90 48 35 37 45 */ bl _savegpr_27 -/* 8000EA94 7C 7B 1B 78 */ mr r27, r3 -/* 8000EA98 83 E3 00 6C */ lwz r31, 0x6c(r3) -/* 8000EA9C 28 1F 00 00 */ cmplwi r31, 0 -/* 8000EAA0 41 82 02 08 */ beq lbl_8000ECA8 -/* 8000EAA4 83 DB 00 70 */ lwz r30, 0x70(r27) -/* 8000EAA8 28 1E 00 00 */ cmplwi r30, 0 -/* 8000EAAC 41 82 01 FC */ beq lbl_8000ECA8 -/* 8000EAB0 38 80 00 00 */ li r4, 0 -/* 8000EAB4 3B 80 00 00 */ li r28, 0 -/* 8000EAB8 48 00 01 40 */ b lbl_8000EBF8 -lbl_8000EABC: -/* 8000EABC 80 1F 00 04 */ lwz r0, 4(r31) -/* 8000EAC0 57 9D 2A F4 */ rlwinm r29, r28, 5, 0xb, 0x1a -/* 8000EAC4 7C 60 EA 14 */ add r3, r0, r29 -/* 8000EAC8 80 03 00 1C */ lwz r0, 0x1c(r3) -/* 8000EACC 28 00 00 00 */ cmplwi r0, 0 -/* 8000EAD0 40 82 01 24 */ bne lbl_8000EBF4 -/* 8000EAD4 7F C3 F3 78 */ mr r3, r30 -/* 8000EAD8 7F 84 E3 78 */ mr r4, r28 -/* 8000EADC 48 2D 00 1D */ bl getName__10JUTNameTabCFUs -/* 8000EAE0 7C 66 1B 78 */ mr r6, r3 -/* 8000EAE4 38 61 00 08 */ addi r3, r1, 8 -/* 8000EAE8 38 80 00 40 */ li r4, 0x40 -/* 8000EAEC 3C A0 80 37 */ lis r5, m_Do_m_Do_ext__stringBase0@ha /* 0x803740FC@ha */ -/* 8000EAF0 38 A5 40 FC */ addi r5, r5, m_Do_m_Do_ext__stringBase0@l /* 0x803740FC@l */ -/* 8000EAF4 38 A5 00 1C */ addi r5, r5, 0x1c -/* 8000EAF8 4C C6 31 82 */ crclr 6 -/* 8000EAFC 48 35 7A C1 */ bl snprintf -/* 8000EB00 38 61 00 08 */ addi r3, r1, 8 -/* 8000EB04 48 02 09 31 */ bl dComIfG_getStageRes__FPCc -/* 8000EB08 80 1F 00 04 */ lwz r0, 4(r31) -/* 8000EB0C 7C 80 EA 14 */ add r4, r0, r29 -/* 8000EB10 88 03 00 00 */ lbz r0, 0(r3) -/* 8000EB14 98 04 00 00 */ stb r0, 0(r4) -/* 8000EB18 88 03 00 01 */ lbz r0, 1(r3) -/* 8000EB1C 98 04 00 01 */ stb r0, 1(r4) -/* 8000EB20 A0 03 00 02 */ lhz r0, 2(r3) -/* 8000EB24 B0 04 00 02 */ sth r0, 2(r4) -/* 8000EB28 A0 03 00 04 */ lhz r0, 4(r3) -/* 8000EB2C B0 04 00 04 */ sth r0, 4(r4) -/* 8000EB30 88 03 00 06 */ lbz r0, 6(r3) -/* 8000EB34 98 04 00 06 */ stb r0, 6(r4) -/* 8000EB38 88 03 00 07 */ lbz r0, 7(r3) -/* 8000EB3C 98 04 00 07 */ stb r0, 7(r4) -/* 8000EB40 88 03 00 08 */ lbz r0, 8(r3) -/* 8000EB44 98 04 00 08 */ stb r0, 8(r4) -/* 8000EB48 88 03 00 09 */ lbz r0, 9(r3) -/* 8000EB4C 98 04 00 09 */ stb r0, 9(r4) -/* 8000EB50 A0 03 00 0A */ lhz r0, 0xa(r3) -/* 8000EB54 B0 04 00 0A */ sth r0, 0xa(r4) -/* 8000EB58 80 03 00 0C */ lwz r0, 0xc(r3) -/* 8000EB5C 90 04 00 0C */ stw r0, 0xc(r4) -/* 8000EB60 88 03 00 10 */ lbz r0, 0x10(r3) -/* 8000EB64 98 04 00 10 */ stb r0, 0x10(r4) -/* 8000EB68 88 03 00 11 */ lbz r0, 0x11(r3) -/* 8000EB6C 98 04 00 11 */ stb r0, 0x11(r4) -/* 8000EB70 88 03 00 12 */ lbz r0, 0x12(r3) -/* 8000EB74 98 04 00 12 */ stb r0, 0x12(r4) -/* 8000EB78 88 03 00 13 */ lbz r0, 0x13(r3) -/* 8000EB7C 98 04 00 13 */ stb r0, 0x13(r4) -/* 8000EB80 88 03 00 14 */ lbz r0, 0x14(r3) -/* 8000EB84 98 04 00 14 */ stb r0, 0x14(r4) -/* 8000EB88 88 03 00 15 */ lbz r0, 0x15(r3) -/* 8000EB8C 98 04 00 15 */ stb r0, 0x15(r4) -/* 8000EB90 88 03 00 16 */ lbz r0, 0x16(r3) -/* 8000EB94 98 04 00 16 */ stb r0, 0x16(r4) -/* 8000EB98 88 03 00 17 */ lbz r0, 0x17(r3) -/* 8000EB9C 98 04 00 17 */ stb r0, 0x17(r4) -/* 8000EBA0 88 03 00 18 */ lbz r0, 0x18(r3) -/* 8000EBA4 98 04 00 18 */ stb r0, 0x18(r4) -/* 8000EBA8 88 03 00 19 */ lbz r0, 0x19(r3) -/* 8000EBAC 98 04 00 19 */ stb r0, 0x19(r4) -/* 8000EBB0 A8 03 00 1A */ lha r0, 0x1a(r3) -/* 8000EBB4 B0 04 00 1A */ sth r0, 0x1a(r4) -/* 8000EBB8 80 03 00 1C */ lwz r0, 0x1c(r3) -/* 8000EBBC 90 04 00 1C */ stw r0, 0x1c(r4) -/* 8000EBC0 80 1F 00 04 */ lwz r0, 4(r31) -/* 8000EBC4 7C 80 EA 14 */ add r4, r0, r29 -/* 8000EBC8 80 04 00 1C */ lwz r0, 0x1c(r4) -/* 8000EBCC 7C 03 02 14 */ add r0, r3, r0 -/* 8000EBD0 7C 04 00 50 */ subf r0, r4, r0 -/* 8000EBD4 90 04 00 1C */ stw r0, 0x1c(r4) -/* 8000EBD8 80 1F 00 04 */ lwz r0, 4(r31) -/* 8000EBDC 7C 80 EA 14 */ add r4, r0, r29 -/* 8000EBE0 80 04 00 0C */ lwz r0, 0xc(r4) -/* 8000EBE4 7C 03 02 14 */ add r0, r3, r0 -/* 8000EBE8 7C 04 00 50 */ subf r0, r4, r0 -/* 8000EBEC 90 04 00 0C */ stw r0, 0xc(r4) -/* 8000EBF0 38 80 00 01 */ li r4, 1 -lbl_8000EBF4: -/* 8000EBF4 3B 9C 00 01 */ addi r28, r28, 1 -lbl_8000EBF8: -/* 8000EBF8 57 83 04 3E */ clrlwi r3, r28, 0x10 -/* 8000EBFC A0 1F 00 00 */ lhz r0, 0(r31) -/* 8000EC00 7C 03 00 40 */ cmplw r3, r0 -/* 8000EC04 41 80 FE B8 */ blt lbl_8000EABC -/* 8000EC08 54 80 06 3F */ clrlwi. r0, r4, 0x18 -/* 8000EC0C 41 82 00 9C */ beq lbl_8000ECA8 -/* 8000EC10 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 8000EC14 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */ -/* 8000EC18 93 E3 00 58 */ stw r31, 0x58(r3) -/* 8000EC1C 3B C0 00 00 */ li r30, 0 -/* 8000EC20 48 00 00 78 */ b lbl_8000EC98 -lbl_8000EC24: -/* 8000EC24 80 7B 00 60 */ lwz r3, 0x60(r27) -/* 8000EC28 57 C0 13 BA */ rlwinm r0, r30, 2, 0xe, 0x1d -/* 8000EC2C 7C 63 00 2E */ lwzx r3, r3, r0 -/* 8000EC30 83 83 00 2C */ lwz r28, 0x2c(r3) -/* 8000EC34 28 1C 00 00 */ cmplwi r28, 0 -/* 8000EC38 41 82 00 5C */ beq lbl_8000EC94 -/* 8000EC3C 83 A3 00 48 */ lwz r29, 0x48(r3) -/* 8000EC40 28 1D 00 00 */ cmplwi r29, 0 -/* 8000EC44 41 82 00 50 */ beq lbl_8000EC94 -/* 8000EC48 48 32 EA AD */ bl OSDisableInterrupts -/* 8000EC4C 7C 7F 1B 78 */ mr r31, r3 -/* 8000EC50 3C 60 80 43 */ lis r3, sGDLObj__17J3DDisplayListObj@ha /* 0x80434C70@ha */ -/* 8000EC54 38 63 4C 70 */ addi r3, r3, sGDLObj__17J3DDisplayListObj@l /* 0x80434C70@l */ -/* 8000EC58 80 9D 00 00 */ lwz r4, 0(r29) -/* 8000EC5C 80 BD 00 08 */ lwz r5, 8(r29) -/* 8000EC60 48 35 23 39 */ bl GDInitGDLObj -/* 8000EC64 3C 60 80 43 */ lis r3, sGDLObj__17J3DDisplayListObj@ha /* 0x80434C70@ha */ -/* 8000EC68 38 03 4C 70 */ addi r0, r3, sGDLObj__17J3DDisplayListObj@l /* 0x80434C70@l */ -/* 8000EC6C 90 0D 94 00 */ stw r0, __GDCurrentDL(r13) -/* 8000EC70 7F 83 E3 78 */ mr r3, r28 -/* 8000EC74 81 9C 00 00 */ lwz r12, 0(r28) -/* 8000EC78 81 8C 00 34 */ lwz r12, 0x34(r12) -/* 8000EC7C 7D 89 03 A6 */ mtctr r12 -/* 8000EC80 4E 80 04 21 */ bctrl -/* 8000EC84 7F E3 FB 78 */ mr r3, r31 -/* 8000EC88 48 32 EA 95 */ bl OSRestoreInterrupts -/* 8000EC8C 38 00 00 00 */ li r0, 0 -/* 8000EC90 90 0D 94 00 */ stw r0, __GDCurrentDL(r13) -lbl_8000EC94: -/* 8000EC94 3B DE 00 01 */ addi r30, r30, 1 -lbl_8000EC98: -/* 8000EC98 57 C3 04 3E */ clrlwi r3, r30, 0x10 -/* 8000EC9C A0 1B 00 5C */ lhz r0, 0x5c(r27) -/* 8000ECA0 7C 03 00 40 */ cmplw r3, r0 -/* 8000ECA4 41 80 FF 80 */ blt lbl_8000EC24 -lbl_8000ECA8: -/* 8000ECA8 39 61 00 60 */ addi r11, r1, 0x60 -/* 8000ECAC 48 35 35 75 */ bl _restgpr_27 -/* 8000ECB0 80 01 00 64 */ lwz r0, 0x64(r1) -/* 8000ECB4 7C 08 03 A6 */ mtlr r0 -/* 8000ECB8 38 21 00 60 */ addi r1, r1, 0x60 -/* 8000ECBC 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/kytag/d_a_kytag08/d_a_kytag08/daKytag08_Delete__FP13kytag08_class.s b/asm/rel/d/a/kytag/d_a_kytag08/d_a_kytag08/daKytag08_Delete__FP13kytag08_class.s deleted file mode 100644 index 5c1ed9d4fb..0000000000 --- a/asm/rel/d/a/kytag/d_a_kytag08/d_a_kytag08/daKytag08_Delete__FP13kytag08_class.s +++ /dev/null @@ -1,54 +0,0 @@ -lbl_8085AEA8: -/* 8085AEA8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8085AEAC 7C 08 02 A6 */ mflr r0 -/* 8085AEB0 90 01 00 14 */ stw r0, 0x14(r1) -/* 8085AEB4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8085AEB8 7C 7F 1B 78 */ mr r31, r3 -/* 8085AEBC 80 63 05 9C */ lwz r3, 0x59c(r3) -/* 8085AEC0 28 03 00 00 */ cmplwi r3, 0 -/* 8085AEC4 41 82 00 40 */ beq lbl_8085AF04 -/* 8085AEC8 4B A2 3D 99 */ bl deleteAllParticle__14JPABaseEmitterFv -/* 8085AECC 80 7F 05 9C */ lwz r3, 0x59c(r31) -/* 8085AED0 80 03 00 F4 */ lwz r0, 0xf4(r3) -/* 8085AED4 60 00 00 01 */ ori r0, r0, 1 -/* 8085AED8 90 03 00 F4 */ stw r0, 0xf4(r3) -/* 8085AEDC 38 00 00 01 */ li r0, 1 -/* 8085AEE0 90 03 00 24 */ stw r0, 0x24(r3) -/* 8085AEE4 80 7F 05 9C */ lwz r3, 0x59c(r31) -/* 8085AEE8 80 03 00 F4 */ lwz r0, 0xf4(r3) -/* 8085AEEC 54 00 06 B0 */ rlwinm r0, r0, 0, 0x1a, 0x18 -/* 8085AEF0 90 03 00 F4 */ stw r0, 0xf4(r3) -/* 8085AEF4 38 00 00 00 */ li r0, 0 -/* 8085AEF8 80 7F 05 9C */ lwz r3, 0x59c(r31) -/* 8085AEFC 90 03 00 EC */ stw r0, 0xec(r3) -/* 8085AF00 90 1F 05 9C */ stw r0, 0x59c(r31) -lbl_8085AF04: -/* 8085AF04 80 7F 05 A0 */ lwz r3, 0x5a0(r31) -/* 8085AF08 28 03 00 00 */ cmplwi r3, 0 -/* 8085AF0C 41 82 00 40 */ beq lbl_8085AF4C -/* 8085AF10 4B A2 3D 51 */ bl deleteAllParticle__14JPABaseEmitterFv -/* 8085AF14 80 7F 05 A0 */ lwz r3, 0x5a0(r31) -/* 8085AF18 80 03 00 F4 */ lwz r0, 0xf4(r3) -/* 8085AF1C 60 00 00 01 */ ori r0, r0, 1 -/* 8085AF20 90 03 00 F4 */ stw r0, 0xf4(r3) -/* 8085AF24 38 00 00 01 */ li r0, 1 -/* 8085AF28 90 03 00 24 */ stw r0, 0x24(r3) -/* 8085AF2C 80 7F 05 A0 */ lwz r3, 0x5a0(r31) -/* 8085AF30 80 03 00 F4 */ lwz r0, 0xf4(r3) -/* 8085AF34 54 00 06 B0 */ rlwinm r0, r0, 0, 0x1a, 0x18 -/* 8085AF38 90 03 00 F4 */ stw r0, 0xf4(r3) -/* 8085AF3C 38 00 00 00 */ li r0, 0 -/* 8085AF40 80 7F 05 A0 */ lwz r3, 0x5a0(r31) -/* 8085AF44 90 03 00 EC */ stw r0, 0xec(r3) -/* 8085AF48 90 1F 05 A0 */ stw r0, 0x5a0(r31) -lbl_8085AF4C: -/* 8085AF4C 38 7F 05 A4 */ addi r3, r31, 0x5a4 -/* 8085AF50 3C 80 80 86 */ lis r4, d_a_kytag08__stringBase0@ha /* 0x8085B310@ha */ -/* 8085AF54 38 84 B3 10 */ addi r4, r4, d_a_kytag08__stringBase0@l /* 0x8085B310@l */ -/* 8085AF58 4B 7D 20 B1 */ bl dComIfG_resDelete__FP30request_of_phase_process_classPCc -/* 8085AF5C 38 60 00 01 */ li r3, 1 -/* 8085AF60 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8085AF64 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8085AF68 7C 08 03 A6 */ mtlr r0 -/* 8085AF6C 38 21 00 10 */ addi r1, r1, 0x10 -/* 8085AF70 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/CheckCreateHeap__FP10fopAc_ac_c.s b/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/CheckCreateHeap__FP10fopAc_ac_c.s deleted file mode 100644 index 5579c9845a..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/CheckCreateHeap__FP10fopAc_ac_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_8059A5C8: -/* 8059A5C8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8059A5CC 7C 08 02 A6 */ mflr r0 -/* 8059A5D0 90 01 00 14 */ stw r0, 0x14(r1) -/* 8059A5D4 48 00 02 35 */ bl CreateHeap__11daObjSwPr_cFv -/* 8059A5D8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8059A5DC 7C 08 03 A6 */ mtlr r0 -/* 8059A5E0 38 21 00 10 */ addi r1, r1, 0x10 -/* 8059A5E4 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/CreateHeap__11daObjSwPr_cFv.s b/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/CreateHeap__11daObjSwPr_cFv.s deleted file mode 100644 index e60c564829..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/CreateHeap__11daObjSwPr_cFv.s +++ /dev/null @@ -1,33 +0,0 @@ -lbl_8059A808: -/* 8059A808 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8059A80C 7C 08 02 A6 */ mflr r0 -/* 8059A810 90 01 00 14 */ stw r0, 0x14(r1) -/* 8059A814 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8059A818 7C 7F 1B 78 */ mr r31, r3 -/* 8059A81C 88 03 08 3E */ lbz r0, 0x83e(r3) -/* 8059A820 54 00 10 3A */ slwi r0, r0, 2 -/* 8059A824 3C 60 80 5A */ lis r3, l_arcName@ha /* 0x8059B380@ha */ -/* 8059A828 38 63 B3 80 */ addi r3, r3, l_arcName@l /* 0x8059B380@l */ -/* 8059A82C 7C 63 00 2E */ lwzx r3, r3, r0 -/* 8059A830 3C 80 80 5A */ lis r4, l_bmdName@ha /* 0x8059B2C8@ha */ -/* 8059A834 38 84 B2 C8 */ addi r4, r4, l_bmdName@l /* 0x8059B2C8@l */ -/* 8059A838 7C 84 00 2E */ lwzx r4, r4, r0 -/* 8059A83C 3C A0 80 40 */ lis r5, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8059A840 38 A5 61 C0 */ addi r5, r5, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8059A844 3C A5 00 02 */ addis r5, r5, 2 -/* 8059A848 38 C0 00 80 */ li r6, 0x80 -/* 8059A84C 38 A5 C2 F8 */ addi r5, r5, -15624 -/* 8059A850 4B AA 1A 9D */ bl getRes__14dRes_control_cFPCclP11dRes_info_ci -/* 8059A854 3C 80 00 08 */ lis r4, 8 -/* 8059A858 3C A0 11 00 */ lis r5, 0x1100 /* 0x11000084@ha */ -/* 8059A85C 38 A5 00 84 */ addi r5, r5, 0x0084 /* 0x11000084@l */ -/* 8059A860 4B A7 A3 F5 */ bl mDoExt_J3DModel__create__FP12J3DModelDataUlUl -/* 8059A864 90 7F 05 70 */ stw r3, 0x570(r31) -/* 8059A868 80 7F 05 70 */ lwz r3, 0x570(r31) -/* 8059A86C 30 03 FF FF */ addic r0, r3, -1 -/* 8059A870 7C 60 19 10 */ subfe r3, r0, r3 -/* 8059A874 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8059A878 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8059A87C 7C 08 03 A6 */ mtlr r0 -/* 8059A880 38 21 00 10 */ addi r1, r1, 0x10 -/* 8059A884 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/Create__11daObjSwPr_cFv.s b/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/Create__11daObjSwPr_cFv.s deleted file mode 100644 index 4d80ead704..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/Create__11daObjSwPr_cFv.s +++ /dev/null @@ -1,108 +0,0 @@ -lbl_8059A670: -/* 8059A670 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8059A674 7C 08 02 A6 */ mflr r0 -/* 8059A678 90 01 00 24 */ stw r0, 0x24(r1) -/* 8059A67C 39 61 00 20 */ addi r11, r1, 0x20 -/* 8059A680 4B DC 7B 55 */ bl _savegpr_27 -/* 8059A684 7C 7E 1B 78 */ mr r30, r3 -/* 8059A688 3C 80 80 5A */ lis r4, l_bmdName@ha /* 0x8059B2C8@ha */ -/* 8059A68C 3B E4 B2 C8 */ addi r31, r4, l_bmdName@l /* 0x8059B2C8@l */ -/* 8059A690 4B FF FF 59 */ bl initBaseMtx__11daObjSwPr_cFv -/* 8059A694 80 7E 05 70 */ lwz r3, 0x570(r30) -/* 8059A698 38 03 00 24 */ addi r0, r3, 0x24 -/* 8059A69C 90 1E 05 04 */ stw r0, 0x504(r30) -/* 8059A6A0 38 7E 05 74 */ addi r3, r30, 0x574 -/* 8059A6A4 38 80 00 FF */ li r4, 0xff -/* 8059A6A8 38 A0 00 FF */ li r5, 0xff -/* 8059A6AC 7F C6 F3 78 */ mr r6, r30 -/* 8059A6B0 4B AE 91 B1 */ bl Init__9dCcD_SttsFiiP10fopAc_ac_c -/* 8059A6B4 38 7E 05 B0 */ addi r3, r30, 0x5b0 -/* 8059A6B8 38 9F 00 10 */ addi r4, r31, 0x10 -/* 8059A6BC 4B AE A1 F9 */ bl Set__8dCcD_CylFRC11dCcD_SrcCyl -/* 8059A6C0 38 1E 05 74 */ addi r0, r30, 0x574 -/* 8059A6C4 90 1E 05 F4 */ stw r0, 0x5f4(r30) -/* 8059A6C8 88 1E 08 3C */ lbz r0, 0x83c(r30) -/* 8059A6CC 28 00 00 01 */ cmplwi r0, 1 -/* 8059A6D0 40 82 00 28 */ bne lbl_8059A6F8 -/* 8059A6D4 38 7E 06 EC */ addi r3, r30, 0x6ec -/* 8059A6D8 38 9F 00 10 */ addi r4, r31, 0x10 -/* 8059A6DC 4B AE A1 D9 */ bl Set__8dCcD_CylFRC11dCcD_SrcCyl -/* 8059A6E0 38 1E 05 74 */ addi r0, r30, 0x574 -/* 8059A6E4 90 1E 07 30 */ stw r0, 0x730(r30) -/* 8059A6E8 38 00 02 00 */ li r0, 0x200 -/* 8059A6EC 90 1E 07 14 */ stw r0, 0x714(r30) -/* 8059A6F0 38 00 00 03 */ li r0, 3 -/* 8059A6F4 98 1E 07 A5 */ stb r0, 0x7a5(r30) -lbl_8059A6F8: -/* 8059A6F8 7F C3 F3 78 */ mr r3, r30 -/* 8059A6FC C0 3F 00 54 */ lfs f1, 0x54(r31) -/* 8059A700 38 9F 00 54 */ addi r4, r31, 0x54 -/* 8059A704 C0 44 00 04 */ lfs f2, 4(r4) -/* 8059A708 C0 64 00 08 */ lfs f3, 8(r4) -/* 8059A70C C0 84 00 0C */ lfs f4, 0xc(r4) -/* 8059A710 C0 A4 00 10 */ lfs f5, 0x10(r4) -/* 8059A714 C0 C4 00 14 */ lfs f6, 0x14(r4) -/* 8059A718 4B A7 FE 31 */ bl fopAcM_setCullSizeBox__FP10fopAc_ac_cffffff -/* 8059A71C 80 7E 05 70 */ lwz r3, 0x570(r30) -/* 8059A720 80 63 00 04 */ lwz r3, 4(r3) -/* 8059A724 83 83 00 54 */ lwz r28, 0x54(r3) -/* 8059A728 3C 60 00 01 */ lis r3, 0x0001 /* 0x0000FFFF@ha */ -/* 8059A72C 38 03 FF FF */ addi r0, r3, 0xFFFF /* 0x0000FFFF@l */ -/* 8059A730 B0 1E 08 30 */ sth r0, 0x830(r30) -/* 8059A734 3B 60 00 00 */ li r27, 0 -/* 8059A738 3C 60 80 5A */ lis r3, l_joint_name@ha /* 0x8059B388@ha */ -/* 8059A73C 3B A3 B3 88 */ addi r29, r3, l_joint_name@l /* 0x8059B388@l */ -/* 8059A740 48 00 00 28 */ b lbl_8059A768 -lbl_8059A744: -/* 8059A744 7F 83 E3 78 */ mr r3, r28 -/* 8059A748 7F 64 DB 78 */ mr r4, r27 -/* 8059A74C 4B D4 43 AD */ bl getName__10JUTNameTabCFUs -/* 8059A750 80 9D 00 00 */ lwz r4, 0(r29) -/* 8059A754 4B DC E2 41 */ bl strcmp -/* 8059A758 2C 03 00 00 */ cmpwi r3, 0 -/* 8059A75C 40 82 00 08 */ bne lbl_8059A764 -/* 8059A760 B3 7E 08 30 */ sth r27, 0x830(r30) -lbl_8059A764: -/* 8059A764 3B 7B 00 01 */ addi r27, r27, 1 -lbl_8059A768: -/* 8059A768 80 7E 05 70 */ lwz r3, 0x570(r30) -/* 8059A76C 80 83 00 04 */ lwz r4, 4(r3) -/* 8059A770 A0 64 00 2C */ lhz r3, 0x2c(r4) -/* 8059A774 57 60 04 3E */ clrlwi r0, r27, 0x10 -/* 8059A778 7C 00 18 40 */ cmplw r0, r3 -/* 8059A77C 41 80 FF C8 */ blt lbl_8059A744 -/* 8059A780 80 64 00 28 */ lwz r3, 0x28(r4) -/* 8059A784 A0 1E 08 30 */ lhz r0, 0x830(r30) -/* 8059A788 54 00 10 3A */ slwi r0, r0, 2 -/* 8059A78C 7C 83 00 2E */ lwzx r4, r3, r0 -/* 8059A790 3C 60 80 5A */ lis r3, nodeCallBack__FP8J3DJointi@ha /* 0x8059A518@ha */ -/* 8059A794 38 03 A5 18 */ addi r0, r3, nodeCallBack__FP8J3DJointi@l /* 0x8059A518@l */ -/* 8059A798 90 04 00 04 */ stw r0, 4(r4) -/* 8059A79C 80 7E 05 70 */ lwz r3, 0x570(r30) -/* 8059A7A0 93 C3 00 14 */ stw r30, 0x14(r3) -/* 8059A7A4 C0 3E 05 3C */ lfs f1, 0x53c(r30) -/* 8059A7A8 C0 1F 00 74 */ lfs f0, 0x74(r31) -/* 8059A7AC EC 01 00 2A */ fadds f0, f1, f0 -/* 8059A7B0 D0 1E 05 3C */ stfs f0, 0x53c(r30) -/* 8059A7B4 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8059A7B8 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8059A7BC 38 63 4E 00 */ addi r3, r3, 0x4e00 -/* 8059A7C0 3C 80 80 5A */ lis r4, d_a_obj_swpropeller__stringBase0@ha /* 0x8059B360@ha */ -/* 8059A7C4 38 84 B3 60 */ addi r4, r4, d_a_obj_swpropeller__stringBase0@l /* 0x8059B360@l */ -/* 8059A7C8 38 84 00 19 */ addi r4, r4, 0x19 -/* 8059A7CC 4B DC E1 C9 */ bl strcmp -/* 8059A7D0 2C 03 00 00 */ cmpwi r3, 0 -/* 8059A7D4 40 82 00 18 */ bne lbl_8059A7EC -/* 8059A7D8 88 1E 04 E2 */ lbz r0, 0x4e2(r30) -/* 8059A7DC 2C 00 00 04 */ cmpwi r0, 4 -/* 8059A7E0 40 82 00 0C */ bne lbl_8059A7EC -/* 8059A7E4 C0 1F 00 74 */ lfs f0, 0x74(r31) -/* 8059A7E8 D0 1E 05 20 */ stfs f0, 0x520(r30) -lbl_8059A7EC: -/* 8059A7EC 38 60 00 01 */ li r3, 1 -/* 8059A7F0 39 61 00 20 */ addi r11, r1, 0x20 -/* 8059A7F4 4B DC 7A 2D */ bl _restgpr_27 -/* 8059A7F8 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8059A7FC 7C 08 03 A6 */ mtlr r0 -/* 8059A800 38 21 00 20 */ addi r1, r1, 0x20 -/* 8059A804 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/__dt__8cM3dGAabFv.s b/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/__dt__8cM3dGAabFv.s deleted file mode 100644 index e3dccfcca8..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/__dt__8cM3dGAabFv.s +++ /dev/null @@ -1,20 +0,0 @@ -lbl_8059AABC: -/* 8059AABC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8059AAC0 7C 08 02 A6 */ mflr r0 -/* 8059AAC4 90 01 00 14 */ stw r0, 0x14(r1) -/* 8059AAC8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8059AACC 7C 7F 1B 79 */ or. r31, r3, r3 -/* 8059AAD0 41 82 00 1C */ beq lbl_8059AAEC -/* 8059AAD4 3C A0 80 5A */ lis r5, __vt__8cM3dGAab@ha /* 0x8059B3E8@ha */ -/* 8059AAD8 38 05 B3 E8 */ addi r0, r5, __vt__8cM3dGAab@l /* 0x8059B3E8@l */ -/* 8059AADC 90 1F 00 18 */ stw r0, 0x18(r31) -/* 8059AAE0 7C 80 07 35 */ extsh. r0, r4 -/* 8059AAE4 40 81 00 08 */ ble lbl_8059AAEC -/* 8059AAE8 4B D3 42 55 */ bl __dl__FPv -lbl_8059AAEC: -/* 8059AAEC 7F E3 FB 78 */ mr r3, r31 -/* 8059AAF0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8059AAF4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8059AAF8 7C 08 03 A6 */ mtlr r0 -/* 8059AAFC 38 21 00 10 */ addi r1, r1, 0x10 -/* 8059AB00 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/__dt__8cM3dGCylFv.s b/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/__dt__8cM3dGCylFv.s deleted file mode 100644 index 160bfb79fd..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/__dt__8cM3dGCylFv.s +++ /dev/null @@ -1,20 +0,0 @@ -lbl_8059AA74: -/* 8059AA74 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8059AA78 7C 08 02 A6 */ mflr r0 -/* 8059AA7C 90 01 00 14 */ stw r0, 0x14(r1) -/* 8059AA80 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8059AA84 7C 7F 1B 79 */ or. r31, r3, r3 -/* 8059AA88 41 82 00 1C */ beq lbl_8059AAA4 -/* 8059AA8C 3C A0 80 5A */ lis r5, __vt__8cM3dGCyl@ha /* 0x8059B3DC@ha */ -/* 8059AA90 38 05 B3 DC */ addi r0, r5, __vt__8cM3dGCyl@l /* 0x8059B3DC@l */ -/* 8059AA94 90 1F 00 14 */ stw r0, 0x14(r31) -/* 8059AA98 7C 80 07 35 */ extsh. r0, r4 -/* 8059AA9C 40 81 00 08 */ ble lbl_8059AAA4 -/* 8059AAA0 4B D3 42 9D */ bl __dl__FPv -lbl_8059AAA4: -/* 8059AAA4 7F E3 FB 78 */ mr r3, r31 -/* 8059AAA8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8059AAAC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8059AAB0 7C 08 03 A6 */ mtlr r0 -/* 8059AAB4 38 21 00 10 */ addi r1, r1, 0x10 -/* 8059AAB8 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/_delete__11daObjSwPr_cFv.s b/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/_delete__11daObjSwPr_cFv.s deleted file mode 100644 index 2d59bcfd52..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/_delete__11daObjSwPr_cFv.s +++ /dev/null @@ -1,17 +0,0 @@ -lbl_8059B1AC: -/* 8059B1AC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8059B1B0 7C 08 02 A6 */ mflr r0 -/* 8059B1B4 90 01 00 14 */ stw r0, 0x14(r1) -/* 8059B1B8 7C 64 1B 78 */ mr r4, r3 -/* 8059B1BC 38 64 05 68 */ addi r3, r4, 0x568 -/* 8059B1C0 88 04 08 3E */ lbz r0, 0x83e(r4) -/* 8059B1C4 54 00 10 3A */ slwi r0, r0, 2 -/* 8059B1C8 3C 80 80 5A */ lis r4, l_arcName@ha /* 0x8059B380@ha */ -/* 8059B1CC 38 84 B3 80 */ addi r4, r4, l_arcName@l /* 0x8059B380@l */ -/* 8059B1D0 7C 84 00 2E */ lwzx r4, r4, r0 -/* 8059B1D4 4B A9 1E 35 */ bl dComIfG_resDelete__FP30request_of_phase_process_classPCc -/* 8059B1D8 38 60 00 01 */ li r3, 1 -/* 8059B1DC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8059B1E0 7C 08 03 A6 */ mtlr r0 -/* 8059B1E4 38 21 00 10 */ addi r1, r1, 0x10 -/* 8059B1E8 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/daObjSwPr_Create__FP10fopAc_ac_c.s b/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/daObjSwPr_Create__FP10fopAc_ac_c.s deleted file mode 100644 index e19a78d1e8..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/daObjSwPr_Create__FP10fopAc_ac_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_8059B24C: -/* 8059B24C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8059B250 7C 08 02 A6 */ mflr r0 -/* 8059B254 90 01 00 14 */ stw r0, 0x14(r1) -/* 8059B258 4B FF F6 31 */ bl create__11daObjSwPr_cFv -/* 8059B25C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8059B260 7C 08 03 A6 */ mtlr r0 -/* 8059B264 38 21 00 10 */ addi r1, r1, 0x10 -/* 8059B268 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/daObjSwPr_Delete__FP11daObjSwPr_c.s b/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/daObjSwPr_Delete__FP11daObjSwPr_c.s deleted file mode 100644 index ef092e2d26..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/daObjSwPr_Delete__FP11daObjSwPr_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_8059B22C: -/* 8059B22C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8059B230 7C 08 02 A6 */ mflr r0 -/* 8059B234 90 01 00 14 */ stw r0, 0x14(r1) -/* 8059B238 4B FF FF 75 */ bl _delete__11daObjSwPr_cFv -/* 8059B23C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8059B240 7C 08 03 A6 */ mtlr r0 -/* 8059B244 38 21 00 10 */ addi r1, r1, 0x10 -/* 8059B248 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/daObjSwPr_Draw__FP11daObjSwPr_c.s b/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/daObjSwPr_Draw__FP11daObjSwPr_c.s deleted file mode 100644 index 226e8bd577..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/daObjSwPr_Draw__FP11daObjSwPr_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_8059B1EC: -/* 8059B1EC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8059B1F0 7C 08 02 A6 */ mflr r0 -/* 8059B1F4 90 01 00 14 */ stw r0, 0x14(r1) -/* 8059B1F8 4B FF FF 51 */ bl draw__11daObjSwPr_cFv -/* 8059B1FC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8059B200 7C 08 03 A6 */ mtlr r0 -/* 8059B204 38 21 00 10 */ addi r1, r1, 0x10 -/* 8059B208 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/daObjSwPr_Execute__FP11daObjSwPr_c.s b/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/daObjSwPr_Execute__FP11daObjSwPr_c.s deleted file mode 100644 index 4ba20d8816..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/daObjSwPr_Execute__FP11daObjSwPr_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_8059B20C: -/* 8059B20C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8059B210 7C 08 02 A6 */ mflr r0 -/* 8059B214 90 01 00 14 */ stw r0, 0x14(r1) -/* 8059B218 4B FF FD FD */ bl execute__11daObjSwPr_cFv -/* 8059B21C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8059B220 7C 08 03 A6 */ mtlr r0 -/* 8059B224 38 21 00 10 */ addi r1, r1, 0x10 -/* 8059B228 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/draw__11daObjSwPr_cFv.s b/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/draw__11daObjSwPr_cFv.s deleted file mode 100644 index c5fbda80d1..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/draw__11daObjSwPr_cFv.s +++ /dev/null @@ -1,26 +0,0 @@ -lbl_8059B148: -/* 8059B148 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8059B14C 7C 08 02 A6 */ mflr r0 -/* 8059B150 90 01 00 14 */ stw r0, 0x14(r1) -/* 8059B154 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8059B158 7C 7F 1B 78 */ mr r31, r3 -/* 8059B15C 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */ -/* 8059B160 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */ -/* 8059B164 38 80 00 10 */ li r4, 0x10 -/* 8059B168 38 BF 04 D0 */ addi r5, r31, 0x4d0 -/* 8059B16C 38 DF 01 0C */ addi r6, r31, 0x10c -/* 8059B170 4B C0 86 55 */ bl settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c -/* 8059B174 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */ -/* 8059B178 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */ -/* 8059B17C 80 9F 05 70 */ lwz r4, 0x570(r31) -/* 8059B180 80 84 00 04 */ lwz r4, 4(r4) -/* 8059B184 38 BF 01 0C */ addi r5, r31, 0x10c -/* 8059B188 4B C0 9C 19 */ bl setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c -/* 8059B18C 80 7F 05 70 */ lwz r3, 0x570(r31) -/* 8059B190 4B A7 2B 35 */ bl mDoExt_modelUpdateDL__FP8J3DModel -/* 8059B194 38 60 00 01 */ li r3, 1 -/* 8059B198 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8059B19C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8059B1A0 7C 08 03 A6 */ mtlr r0 -/* 8059B1A4 38 21 00 10 */ addi r1, r1, 0x10 -/* 8059B1A8 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/execute__11daObjSwPr_cFv.s b/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/execute__11daObjSwPr_cFv.s deleted file mode 100644 index 3b5aaffd80..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/execute__11daObjSwPr_cFv.s +++ /dev/null @@ -1,82 +0,0 @@ -lbl_8059B014: -/* 8059B014 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 8059B018 7C 08 02 A6 */ mflr r0 -/* 8059B01C 90 01 00 34 */ stw r0, 0x34(r1) -/* 8059B020 39 61 00 30 */ addi r11, r1, 0x30 -/* 8059B024 4B DC 71 B9 */ bl _savegpr_29 -/* 8059B028 7C 7E 1B 78 */ mr r30, r3 -/* 8059B02C 3C 80 80 5A */ lis r4, l_bmdName@ha /* 0x8059B2C8@ha */ -/* 8059B030 3B E4 B2 C8 */ addi r31, r4, l_bmdName@l /* 0x8059B2C8@l */ -/* 8059B034 88 03 08 3C */ lbz r0, 0x83c(r3) -/* 8059B038 2C 00 00 01 */ cmpwi r0, 1 -/* 8059B03C 41 82 00 1C */ beq lbl_8059B058 -/* 8059B040 40 80 00 1C */ bge lbl_8059B05C -/* 8059B044 2C 00 00 00 */ cmpwi r0, 0 -/* 8059B048 40 80 00 08 */ bge lbl_8059B050 -/* 8059B04C 48 00 00 10 */ b lbl_8059B05C -lbl_8059B050: -/* 8059B050 4B FF FB 4D */ bl execute_type_boomerang__11daObjSwPr_cFv -/* 8059B054 48 00 00 08 */ b lbl_8059B05C -lbl_8059B058: -/* 8059B058 4B FF FD 75 */ bl execute_type_wind__11daObjSwPr_cFv -lbl_8059B05C: -/* 8059B05C A8 7E 08 28 */ lha r3, 0x828(r30) -/* 8059B060 7C 60 07 35 */ extsh. r0, r3 -/* 8059B064 41 82 00 A0 */ beq lbl_8059B104 -/* 8059B068 A8 9E 08 2A */ lha r4, 0x82a(r30) -/* 8059B06C 7C 80 07 35 */ extsh. r0, r4 -/* 8059B070 41 82 00 94 */ beq lbl_8059B104 -/* 8059B074 C0 7F 00 80 */ lfs f3, 0x80(r31) -/* 8059B078 C8 5F 00 90 */ lfd f2, 0x90(r31) -/* 8059B07C 6C 60 80 00 */ xoris r0, r3, 0x8000 -/* 8059B080 90 01 00 14 */ stw r0, 0x14(r1) -/* 8059B084 3C 60 43 30 */ lis r3, 0x4330 -/* 8059B088 90 61 00 10 */ stw r3, 0x10(r1) -/* 8059B08C C8 01 00 10 */ lfd f0, 0x10(r1) -/* 8059B090 EC 20 10 28 */ fsubs f1, f0, f2 -/* 8059B094 6C 80 80 00 */ xoris r0, r4, 0x8000 -/* 8059B098 90 01 00 1C */ stw r0, 0x1c(r1) -/* 8059B09C 90 61 00 18 */ stw r3, 0x18(r1) -/* 8059B0A0 C8 01 00 18 */ lfd f0, 0x18(r1) -/* 8059B0A4 EC 00 10 28 */ fsubs f0, f0, f2 -/* 8059B0A8 EC 01 00 24 */ fdivs f0, f1, f0 -/* 8059B0AC EC 23 00 32 */ fmuls f1, f3, f0 -/* 8059B0B0 4B DC 6F FD */ bl __cvt_fp2unsigned -/* 8059B0B4 7C 7D 1B 78 */ mr r29, r3 -/* 8059B0B8 88 1E 04 E2 */ lbz r0, 0x4e2(r30) -/* 8059B0BC 7C 03 07 74 */ extsb r3, r0 -/* 8059B0C0 4B A9 1F AD */ bl dComIfGp_getReverb__Fi -/* 8059B0C4 7C 67 1B 78 */ mr r7, r3 -/* 8059B0C8 3C 60 00 08 */ lis r3, 0x0008 /* 0x000800CF@ha */ -/* 8059B0CC 38 03 00 CF */ addi r0, r3, 0x00CF /* 0x000800CF@l */ -/* 8059B0D0 90 01 00 08 */ stw r0, 8(r1) -/* 8059B0D4 3C 60 80 45 */ lis r3, mAudioMgrPtr__10Z2AudioMgr@ha /* 0x80451368@ha */ -/* 8059B0D8 38 63 13 68 */ addi r3, r3, mAudioMgrPtr__10Z2AudioMgr@l /* 0x80451368@l */ -/* 8059B0DC 80 63 00 00 */ lwz r3, 0(r3) -/* 8059B0E0 38 81 00 08 */ addi r4, r1, 8 -/* 8059B0E4 38 BE 05 38 */ addi r5, r30, 0x538 -/* 8059B0E8 7F A6 EB 78 */ mr r6, r29 -/* 8059B0EC C0 3F 00 78 */ lfs f1, 0x78(r31) -/* 8059B0F0 FC 40 08 90 */ fmr f2, f1 -/* 8059B0F4 C0 7F 00 7C */ lfs f3, 0x7c(r31) -/* 8059B0F8 FC 80 18 90 */ fmr f4, f3 -/* 8059B0FC 39 00 00 00 */ li r8, 0 -/* 8059B100 4B D1 14 0D */ bl seStartLevel__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc -lbl_8059B104: -/* 8059B104 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8059B108 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8059B10C 38 63 5B 6C */ addi r3, r3, 0x5b6c -/* 8059B110 7F C4 F3 78 */ mr r4, r30 -/* 8059B114 C0 3F 00 84 */ lfs f1, 0x84(r31) -/* 8059B118 C0 5F 00 88 */ lfs f2, 0x88(r31) -/* 8059B11C C0 7F 00 8C */ lfs f3, 0x8c(r31) -/* 8059B120 38 A0 69 78 */ li r5, 0x6978 -/* 8059B124 38 C0 00 02 */ li r6, 2 -/* 8059B128 4B AD 8B E1 */ bl request__10dAttLook_cFP10fopAc_ac_cfffsi -/* 8059B12C 38 60 00 01 */ li r3, 1 -/* 8059B130 39 61 00 30 */ addi r11, r1, 0x30 -/* 8059B134 4B DC 70 F5 */ bl _restgpr_29 -/* 8059B138 80 01 00 34 */ lwz r0, 0x34(r1) -/* 8059B13C 7C 08 03 A6 */ mtlr r0 -/* 8059B140 38 21 00 30 */ addi r1, r1, 0x30 -/* 8059B144 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/execute_type_boomerang__11daObjSwPr_cFv.s b/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/execute_type_boomerang__11daObjSwPr_cFv.s deleted file mode 100644 index 78c27b92af..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/execute_type_boomerang__11daObjSwPr_cFv.s +++ /dev/null @@ -1,148 +0,0 @@ -lbl_8059AB9C: -/* 8059AB9C 94 21 FF C0 */ stwu r1, -0x40(r1) -/* 8059ABA0 7C 08 02 A6 */ mflr r0 -/* 8059ABA4 90 01 00 44 */ stw r0, 0x44(r1) -/* 8059ABA8 39 61 00 40 */ addi r11, r1, 0x40 -/* 8059ABAC 4B DC 76 2D */ bl _savegpr_28 -/* 8059ABB0 7C 7E 1B 78 */ mr r30, r3 -/* 8059ABB4 38 7E 05 B0 */ addi r3, r30, 0x5b0 -/* 8059ABB8 4B AE 98 A9 */ bl ChkTgHit__12dCcD_GObjInfFv -/* 8059ABBC 30 03 FF FF */ addic r0, r3, -1 -/* 8059ABC0 7C 00 19 10 */ subfe r0, r0, r3 -/* 8059ABC4 54 1F 06 3E */ clrlwi r31, r0, 0x18 -/* 8059ABC8 A8 7E 08 2C */ lha r3, 0x82c(r30) -/* 8059ABCC A8 1E 08 28 */ lha r0, 0x828(r30) -/* 8059ABD0 7C 03 02 14 */ add r0, r3, r0 -/* 8059ABD4 B0 1E 08 2C */ sth r0, 0x82c(r30) -/* 8059ABD8 38 7E 08 28 */ addi r3, r30, 0x828 -/* 8059ABDC 38 80 00 00 */ li r4, 0 -/* 8059ABE0 A8 BE 08 2A */ lha r5, 0x82a(r30) -/* 8059ABE4 A8 1E 08 2E */ lha r0, 0x82e(r30) -/* 8059ABE8 7C 05 03 D6 */ divw r0, r5, r0 -/* 8059ABEC 7C 05 07 34 */ extsh r5, r0 -/* 8059ABF0 4B CD 5F A1 */ bl cLib_chaseAngleS__FPsss -/* 8059ABF4 3B 80 00 00 */ li r28, 0 -/* 8059ABF8 38 7E 05 B0 */ addi r3, r30, 0x5b0 -/* 8059ABFC 4B AE 98 65 */ bl ChkTgHit__12dCcD_GObjInfFv -/* 8059AC00 28 03 00 00 */ cmplwi r3, 0 -/* 8059AC04 41 82 00 74 */ beq lbl_8059AC78 -/* 8059AC08 88 1E 08 38 */ lbz r0, 0x838(r30) -/* 8059AC0C 28 00 00 00 */ cmplwi r0, 0 -/* 8059AC10 40 82 00 68 */ bne lbl_8059AC78 -/* 8059AC14 38 7E 05 B0 */ addi r3, r30, 0x5b0 -/* 8059AC18 4B AE 98 E1 */ bl GetTgHitObj__12dCcD_GObjInfFv -/* 8059AC1C 7C 7D 1B 79 */ or. r29, r3, r3 -/* 8059AC20 41 82 00 44 */ beq lbl_8059AC64 -/* 8059AC24 80 1D 00 10 */ lwz r0, 0x10(r29) -/* 8059AC28 54 00 06 73 */ rlwinm. r0, r0, 0, 0x19, 0x19 -/* 8059AC2C 41 82 00 28 */ beq lbl_8059AC54 -/* 8059AC30 38 7E 05 B0 */ addi r3, r30, 0x5b0 -/* 8059AC34 4B AE 99 15 */ bl GetTgHitGObj__12dCcD_GObjInfFv -/* 8059AC38 28 03 00 00 */ cmplwi r3, 0 -/* 8059AC3C 41 82 00 18 */ beq lbl_8059AC54 -/* 8059AC40 38 7E 05 B0 */ addi r3, r30, 0x5b0 -/* 8059AC44 4B AE 99 05 */ bl GetTgHitGObj__12dCcD_GObjInfFv -/* 8059AC48 88 03 00 75 */ lbz r0, 0x75(r3) -/* 8059AC4C 28 00 00 03 */ cmplwi r0, 3 -/* 8059AC50 41 82 00 10 */ beq lbl_8059AC60 -lbl_8059AC54: -/* 8059AC54 80 1D 00 10 */ lwz r0, 0x10(r29) -/* 8059AC58 54 00 03 DF */ rlwinm. r0, r0, 0, 0xf, 0xf -/* 8059AC5C 41 82 00 08 */ beq lbl_8059AC64 -lbl_8059AC60: -/* 8059AC60 3B 80 00 01 */ li r28, 1 -lbl_8059AC64: -/* 8059AC64 38 7E 05 B0 */ addi r3, r30, 0x5b0 -/* 8059AC68 81 9E 05 EC */ lwz r12, 0x5ec(r30) -/* 8059AC6C 81 8C 00 24 */ lwz r12, 0x24(r12) -/* 8059AC70 7D 89 03 A6 */ mtctr r12 -/* 8059AC74 4E 80 04 21 */ bctrl -lbl_8059AC78: -/* 8059AC78 2C 1C 00 00 */ cmpwi r28, 0 -/* 8059AC7C 41 82 00 C0 */ beq lbl_8059AD3C -/* 8059AC80 88 7E 08 39 */ lbz r3, 0x839(r30) -/* 8059AC84 38 03 00 01 */ addi r0, r3, 1 -/* 8059AC88 98 1E 08 39 */ stb r0, 0x839(r30) -/* 8059AC8C 38 00 20 00 */ li r0, 0x2000 -/* 8059AC90 B0 1E 08 2A */ sth r0, 0x82a(r30) -/* 8059AC94 B0 1E 08 28 */ sth r0, 0x828(r30) -/* 8059AC98 7F C3 F3 78 */ mr r3, r30 -/* 8059AC9C 4B FF FE 69 */ bl setRotateTime__11daObjSwPr_cFv -/* 8059ACA0 B0 7E 08 2E */ sth r3, 0x82e(r30) -/* 8059ACA4 88 1E 04 E2 */ lbz r0, 0x4e2(r30) -/* 8059ACA8 7C 03 07 74 */ extsb r3, r0 -/* 8059ACAC 4B A9 23 C1 */ bl dComIfGp_getReverb__Fi -/* 8059ACB0 7C 67 1B 78 */ mr r7, r3 -/* 8059ACB4 3C 60 00 08 */ lis r3, 0x0008 /* 0x000800E3@ha */ -/* 8059ACB8 38 03 00 E3 */ addi r0, r3, 0x00E3 /* 0x000800E3@l */ -/* 8059ACBC 90 01 00 08 */ stw r0, 8(r1) -/* 8059ACC0 3C 60 80 45 */ lis r3, mAudioMgrPtr__10Z2AudioMgr@ha /* 0x80451368@ha */ -/* 8059ACC4 38 63 13 68 */ addi r3, r3, mAudioMgrPtr__10Z2AudioMgr@l /* 0x80451368@l */ -/* 8059ACC8 80 63 00 00 */ lwz r3, 0(r3) -/* 8059ACCC 38 81 00 08 */ addi r4, r1, 8 -/* 8059ACD0 38 BE 05 38 */ addi r5, r30, 0x538 -/* 8059ACD4 38 C0 00 00 */ li r6, 0 -/* 8059ACD8 3D 00 80 5A */ lis r8, lit_3983@ha /* 0x8059B340@ha */ -/* 8059ACDC C0 28 B3 40 */ lfs f1, lit_3983@l(r8) /* 0x8059B340@l */ -/* 8059ACE0 FC 40 08 90 */ fmr f2, f1 -/* 8059ACE4 3D 00 80 5A */ lis r8, lit_3984@ha /* 0x8059B344@ha */ -/* 8059ACE8 C0 68 B3 44 */ lfs f3, lit_3984@l(r8) /* 0x8059B344@l */ -/* 8059ACEC FC 80 18 90 */ fmr f4, f3 -/* 8059ACF0 39 00 00 00 */ li r8, 0 -/* 8059ACF4 4B D1 0C 91 */ bl seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc -/* 8059ACF8 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8059ACFC 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8059AD00 38 63 4E 00 */ addi r3, r3, 0x4e00 -/* 8059AD04 3C 80 80 5A */ lis r4, d_a_obj_swpropeller__stringBase0@ha /* 0x8059B360@ha */ -/* 8059AD08 38 84 B3 60 */ addi r4, r4, d_a_obj_swpropeller__stringBase0@l /* 0x8059B360@l */ -/* 8059AD0C 38 84 00 19 */ addi r4, r4, 0x19 -/* 8059AD10 4B DC DC 85 */ bl strcmp -/* 8059AD14 2C 03 00 00 */ cmpwi r3, 0 -/* 8059AD18 40 82 00 1C */ bne lbl_8059AD34 -/* 8059AD1C 88 1E 04 E2 */ lbz r0, 0x4e2(r30) -/* 8059AD20 7C 00 07 75 */ extsb. r0, r0 -/* 8059AD24 40 82 00 10 */ bne lbl_8059AD34 -/* 8059AD28 38 00 00 00 */ li r0, 0 -/* 8059AD2C B0 1E 08 32 */ sth r0, 0x832(r30) -/* 8059AD30 48 00 00 0C */ b lbl_8059AD3C -lbl_8059AD34: -/* 8059AD34 38 00 00 08 */ li r0, 8 -/* 8059AD38 B0 1E 08 32 */ sth r0, 0x832(r30) -lbl_8059AD3C: -/* 8059AD3C 38 7E 08 3A */ addi r3, r30, 0x83a -/* 8059AD40 48 00 05 49 */ bl func_8059B288 -/* 8059AD44 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 8059AD48 41 82 00 0C */ beq lbl_8059AD54 -/* 8059AD4C 38 00 20 00 */ li r0, 0x2000 -/* 8059AD50 B0 1E 08 28 */ sth r0, 0x828(r30) -lbl_8059AD54: -/* 8059AD54 7F C3 F3 78 */ mr r3, r30 -/* 8059AD58 4B FF FD BD */ bl switchCtrl__11daObjSwPr_cFv -/* 8059AD5C 7F C3 F3 78 */ mr r3, r30 -/* 8059AD60 4B FF F8 C5 */ bl setBaseMtx__11daObjSwPr_cFv -/* 8059AD64 3C 60 80 43 */ lis r3, Zero__4cXyz@ha /* 0x80430CF4@ha */ -/* 8059AD68 C4 03 0C F4 */ lfsu f0, Zero__4cXyz@l(r3) /* 0x80430CF4@l */ -/* 8059AD6C D0 01 00 18 */ stfs f0, 0x18(r1) -/* 8059AD70 C0 03 00 04 */ lfs f0, 4(r3) -/* 8059AD74 D0 01 00 1C */ stfs f0, 0x1c(r1) -/* 8059AD78 C0 03 00 08 */ lfs f0, 8(r3) -/* 8059AD7C D0 01 00 20 */ stfs f0, 0x20(r1) -/* 8059AD80 38 61 00 0C */ addi r3, r1, 0xc -/* 8059AD84 38 9E 04 D0 */ addi r4, r30, 0x4d0 -/* 8059AD88 38 A1 00 18 */ addi r5, r1, 0x18 -/* 8059AD8C 4B CC BD 59 */ bl __pl__4cXyzCFRC3Vec -/* 8059AD90 38 7E 06 D4 */ addi r3, r30, 0x6d4 -/* 8059AD94 38 81 00 0C */ addi r4, r1, 0xc -/* 8059AD98 4B CD 44 45 */ bl SetC__8cM3dGCylFRC4cXyz -/* 8059AD9C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8059ADA0 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8059ADA4 38 63 23 3C */ addi r3, r3, 0x233c -/* 8059ADA8 38 9E 05 B0 */ addi r4, r30, 0x5b0 -/* 8059ADAC 4B CC 9D FD */ bl Set__4cCcSFP8cCcD_Obj -/* 8059ADB0 9B FE 08 38 */ stb r31, 0x838(r30) -/* 8059ADB4 39 61 00 40 */ addi r11, r1, 0x40 -/* 8059ADB8 4B DC 74 6D */ bl _restgpr_28 -/* 8059ADBC 80 01 00 44 */ lwz r0, 0x44(r1) -/* 8059ADC0 7C 08 03 A6 */ mtlr r0 -/* 8059ADC4 38 21 00 40 */ addi r1, r1, 0x40 -/* 8059ADC8 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/execute_type_wind__11daObjSwPr_cFv.s b/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/execute_type_wind__11daObjSwPr_cFv.s deleted file mode 100644 index 9cf0202a03..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/execute_type_wind__11daObjSwPr_cFv.s +++ /dev/null @@ -1,153 +0,0 @@ -lbl_8059ADCC: -/* 8059ADCC 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8059ADD0 7C 08 02 A6 */ mflr r0 -/* 8059ADD4 90 01 00 24 */ stw r0, 0x24(r1) -/* 8059ADD8 39 61 00 20 */ addi r11, r1, 0x20 -/* 8059ADDC 4B DC 73 FD */ bl _savegpr_28 -/* 8059ADE0 7C 7C 1B 78 */ mr r28, r3 -/* 8059ADE4 3B C0 00 00 */ li r30, 0 -/* 8059ADE8 80 03 00 B0 */ lwz r0, 0xb0(r3) -/* 8059ADEC 54 1F 06 3E */ clrlwi r31, r0, 0x18 -/* 8059ADF0 3B A0 00 00 */ li r29, 0 -/* 8059ADF4 38 7C 06 EC */ addi r3, r28, 0x6ec -/* 8059ADF8 4B AE 96 69 */ bl ChkTgHit__12dCcD_GObjInfFv -/* 8059ADFC 28 03 00 00 */ cmplwi r3, 0 -/* 8059AE00 41 82 00 A0 */ beq lbl_8059AEA0 -/* 8059AE04 38 7C 06 EC */ addi r3, r28, 0x6ec -/* 8059AE08 4B AE 97 41 */ bl GetTgHitGObj__12dCcD_GObjInfFv -/* 8059AE0C 28 03 00 00 */ cmplwi r3, 0 -/* 8059AE10 41 82 00 98 */ beq lbl_8059AEA8 -/* 8059AE14 38 7C 06 EC */ addi r3, r28, 0x6ec -/* 8059AE18 4B AE 97 31 */ bl GetTgHitGObj__12dCcD_GObjInfFv -/* 8059AE1C 88 03 00 75 */ lbz r0, 0x75(r3) -/* 8059AE20 28 00 00 03 */ cmplwi r0, 3 -/* 8059AE24 40 82 00 84 */ bne lbl_8059AEA8 -/* 8059AE28 38 7C 06 EC */ addi r3, r28, 0x6ec -/* 8059AE2C 4B AE 96 CD */ bl GetTgHitObj__12dCcD_GObjInfFv -/* 8059AE30 28 03 00 00 */ cmplwi r3, 0 -/* 8059AE34 41 82 00 74 */ beq lbl_8059AEA8 -/* 8059AE38 3B C0 1B 58 */ li r30, 0x1b58 -/* 8059AE3C 38 00 1B 58 */ li r0, 0x1b58 -/* 8059AE40 B0 1C 08 2A */ sth r0, 0x82a(r28) -/* 8059AE44 3B A0 00 01 */ li r29, 1 -/* 8059AE48 A0 7C 08 34 */ lhz r3, 0x834(r28) -/* 8059AE4C 38 03 00 01 */ addi r0, r3, 1 -/* 8059AE50 B0 1C 08 34 */ sth r0, 0x834(r28) -/* 8059AE54 A0 1C 08 34 */ lhz r0, 0x834(r28) -/* 8059AE58 28 00 00 14 */ cmplwi r0, 0x14 -/* 8059AE5C 40 82 00 20 */ bne lbl_8059AE7C -/* 8059AE60 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8059AE64 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8059AE68 7F E4 FB 78 */ mr r4, r31 -/* 8059AE6C 88 1C 04 BA */ lbz r0, 0x4ba(r28) -/* 8059AE70 7C 05 07 74 */ extsb r5, r0 -/* 8059AE74 4B A9 A3 8D */ bl onSwitch__10dSv_info_cFii -/* 8059AE78 48 00 00 30 */ b lbl_8059AEA8 -lbl_8059AE7C: -/* 8059AE7C 28 00 00 19 */ cmplwi r0, 0x19 -/* 8059AE80 40 82 00 28 */ bne lbl_8059AEA8 -/* 8059AE84 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8059AE88 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8059AE8C 7F E4 FB 78 */ mr r4, r31 -/* 8059AE90 88 1C 04 BA */ lbz r0, 0x4ba(r28) -/* 8059AE94 7C 05 07 74 */ extsb r5, r0 -/* 8059AE98 4B A9 A4 19 */ bl offSwitch__10dSv_info_cFii -/* 8059AE9C 48 00 00 0C */ b lbl_8059AEA8 -lbl_8059AEA0: -/* 8059AEA0 38 00 00 00 */ li r0, 0 -/* 8059AEA4 B0 1C 08 34 */ sth r0, 0x834(r28) -lbl_8059AEA8: -/* 8059AEA8 38 7C 05 B0 */ addi r3, r28, 0x5b0 -/* 8059AEAC 4B AE 95 B5 */ bl ChkTgHit__12dCcD_GObjInfFv -/* 8059AEB0 28 03 00 00 */ cmplwi r3, 0 -/* 8059AEB4 41 82 00 A4 */ beq lbl_8059AF58 -/* 8059AEB8 38 7C 05 B0 */ addi r3, r28, 0x5b0 -/* 8059AEBC 4B AE 96 8D */ bl GetTgHitGObj__12dCcD_GObjInfFv -/* 8059AEC0 28 03 00 00 */ cmplwi r3, 0 -/* 8059AEC4 41 82 00 C8 */ beq lbl_8059AF8C -/* 8059AEC8 38 7C 05 B0 */ addi r3, r28, 0x5b0 -/* 8059AECC 4B AE 96 7D */ bl GetTgHitGObj__12dCcD_GObjInfFv -/* 8059AED0 88 03 00 75 */ lbz r0, 0x75(r3) -/* 8059AED4 28 00 00 03 */ cmplwi r0, 3 -/* 8059AED8 40 82 00 B4 */ bne lbl_8059AF8C -/* 8059AEDC 38 7C 05 B0 */ addi r3, r28, 0x5b0 -/* 8059AEE0 4B AE 96 19 */ bl GetTgHitObj__12dCcD_GObjInfFv -/* 8059AEE4 28 03 00 00 */ cmplwi r3, 0 -/* 8059AEE8 41 82 00 A4 */ beq lbl_8059AF8C -/* 8059AEEC 80 63 00 10 */ lwz r3, 0x10(r3) -/* 8059AEF0 54 60 06 73 */ rlwinm. r0, r3, 0, 0x19, 0x19 -/* 8059AEF4 40 82 00 0C */ bne lbl_8059AF00 -/* 8059AEF8 54 60 03 DF */ rlwinm. r0, r3, 0, 0xf, 0xf -/* 8059AEFC 41 82 00 90 */ beq lbl_8059AF8C -lbl_8059AF00: -/* 8059AF00 38 00 1B 58 */ li r0, 0x1b58 -/* 8059AF04 B0 1C 08 28 */ sth r0, 0x828(r28) -/* 8059AF08 A8 1C 08 28 */ lha r0, 0x828(r28) -/* 8059AF0C B0 1C 08 2A */ sth r0, 0x82a(r28) -/* 8059AF10 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8059AF14 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8059AF18 7F E4 FB 78 */ mr r4, r31 -/* 8059AF1C 88 1C 04 BA */ lbz r0, 0x4ba(r28) -/* 8059AF20 7C 05 07 74 */ extsb r5, r0 -/* 8059AF24 4B A9 A2 DD */ bl onSwitch__10dSv_info_cFii -/* 8059AF28 38 00 00 0A */ li r0, 0xa -/* 8059AF2C B0 1C 08 36 */ sth r0, 0x836(r28) -/* 8059AF30 80 1C 00 B0 */ lwz r0, 0xb0(r28) -/* 8059AF34 54 04 46 3E */ srwi r4, r0, 0x18 -/* 8059AF38 28 04 00 FF */ cmplwi r4, 0xff -/* 8059AF3C 41 82 00 50 */ beq lbl_8059AF8C -/* 8059AF40 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8059AF44 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8059AF48 88 1C 04 BA */ lbz r0, 0x4ba(r28) -/* 8059AF4C 7C 05 07 74 */ extsb r5, r0 -/* 8059AF50 4B A9 A2 B1 */ bl onSwitch__10dSv_info_cFii -/* 8059AF54 48 00 00 38 */ b lbl_8059AF8C -lbl_8059AF58: -/* 8059AF58 A0 1C 08 36 */ lhz r0, 0x836(r28) -/* 8059AF5C 28 00 00 00 */ cmplwi r0, 0 -/* 8059AF60 41 82 00 2C */ beq lbl_8059AF8C -/* 8059AF64 38 7C 08 36 */ addi r3, r28, 0x836 -/* 8059AF68 48 00 03 05 */ bl func_8059B26C -/* 8059AF6C 54 60 04 3F */ clrlwi. r0, r3, 0x10 -/* 8059AF70 40 82 00 1C */ bne lbl_8059AF8C -/* 8059AF74 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8059AF78 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8059AF7C 7F E4 FB 78 */ mr r4, r31 -/* 8059AF80 88 1C 04 BA */ lbz r0, 0x4ba(r28) -/* 8059AF84 7C 05 07 74 */ extsb r5, r0 -/* 8059AF88 4B A9 A3 29 */ bl offSwitch__10dSv_info_cFii -lbl_8059AF8C: -/* 8059AF8C 38 7C 08 28 */ addi r3, r28, 0x828 -/* 8059AF90 7F C4 F3 78 */ mr r4, r30 -/* 8059AF94 38 A0 00 1E */ li r5, 0x1e -/* 8059AF98 38 C0 00 64 */ li r6, 0x64 -/* 8059AF9C 38 E0 00 32 */ li r7, 0x32 -/* 8059AFA0 4B CD 55 A1 */ bl cLib_addCalcAngleS__FPsssss -/* 8059AFA4 A8 7C 08 2C */ lha r3, 0x82c(r28) -/* 8059AFA8 A8 1C 08 28 */ lha r0, 0x828(r28) -/* 8059AFAC 7C 03 02 14 */ add r0, r3, r0 -/* 8059AFB0 B0 1C 08 2C */ sth r0, 0x82c(r28) -/* 8059AFB4 7F 83 E3 78 */ mr r3, r28 -/* 8059AFB8 4B FF F6 6D */ bl setBaseMtx__11daObjSwPr_cFv -/* 8059AFBC 38 7C 06 D4 */ addi r3, r28, 0x6d4 -/* 8059AFC0 38 9C 04 D0 */ addi r4, r28, 0x4d0 -/* 8059AFC4 4B CD 42 19 */ bl SetC__8cM3dGCylFRC4cXyz -/* 8059AFC8 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8059AFCC 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8059AFD0 3B C3 23 3C */ addi r30, r3, 0x233c -/* 8059AFD4 7F C3 F3 78 */ mr r3, r30 -/* 8059AFD8 38 9C 05 B0 */ addi r4, r28, 0x5b0 -/* 8059AFDC 4B CC 9B CD */ bl Set__4cCcSFP8cCcD_Obj -/* 8059AFE0 38 7C 08 10 */ addi r3, r28, 0x810 -/* 8059AFE4 38 9C 04 D0 */ addi r4, r28, 0x4d0 -/* 8059AFE8 4B CD 41 F5 */ bl SetC__8cM3dGCylFRC4cXyz -/* 8059AFEC 7F C3 F3 78 */ mr r3, r30 -/* 8059AFF0 38 9C 06 EC */ addi r4, r28, 0x6ec -/* 8059AFF4 4B CC 9B B5 */ bl Set__4cCcSFP8cCcD_Obj -/* 8059AFF8 9B BC 08 3D */ stb r29, 0x83d(r28) -/* 8059AFFC 39 61 00 20 */ addi r11, r1, 0x20 -/* 8059B000 4B DC 72 25 */ bl _restgpr_28 -/* 8059B004 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8059B008 7C 08 03 A6 */ mtlr r0 -/* 8059B00C 38 21 00 20 */ addi r1, r1, 0x20 -/* 8059B010 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/func_8059A888.s b/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/func_8059A888.s deleted file mode 100644 index 8d02fbf9ac..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/func_8059A888.s +++ /dev/null @@ -1,132 +0,0 @@ -lbl_8059A888: -/* 8059A888 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8059A88C 7C 08 02 A6 */ mflr r0 -/* 8059A890 90 01 00 24 */ stw r0, 0x24(r1) -/* 8059A894 39 61 00 20 */ addi r11, r1, 0x20 -/* 8059A898 4B DC 79 39 */ bl _savegpr_26 -/* 8059A89C 7C 7F 1B 78 */ mr r31, r3 -/* 8059A8A0 80 03 04 A0 */ lwz r0, 0x4a0(r3) -/* 8059A8A4 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c -/* 8059A8A8 40 82 00 FC */ bne lbl_8059A9A4 -/* 8059A8AC 7F E0 FB 79 */ or. r0, r31, r31 -/* 8059A8B0 41 82 00 E8 */ beq lbl_8059A998 -/* 8059A8B4 7C 1E 03 78 */ mr r30, r0 -/* 8059A8B8 4B A7 E2 AD */ bl __ct__10fopAc_ac_cFv -/* 8059A8BC 3C 60 80 3C */ lis r3, __vt__9cCcD_Stts@ha /* 0x803C3728@ha */ -/* 8059A8C0 38 03 37 28 */ addi r0, r3, __vt__9cCcD_Stts@l /* 0x803C3728@l */ -/* 8059A8C4 90 1E 05 8C */ stw r0, 0x58c(r30) -/* 8059A8C8 38 7E 05 90 */ addi r3, r30, 0x590 -/* 8059A8CC 4B AE 8E 95 */ bl __ct__10dCcD_GSttsFv -/* 8059A8D0 3C 60 80 3B */ lis r3, __vt__9dCcD_Stts@ha /* 0x803AC2E4@ha */ -/* 8059A8D4 38 63 C2 E4 */ addi r3, r3, __vt__9dCcD_Stts@l /* 0x803AC2E4@l */ -/* 8059A8D8 90 7E 05 8C */ stw r3, 0x58c(r30) -/* 8059A8DC 38 03 00 20 */ addi r0, r3, 0x20 -/* 8059A8E0 90 1E 05 90 */ stw r0, 0x590(r30) -/* 8059A8E4 3B 5E 05 B0 */ addi r26, r30, 0x5b0 -/* 8059A8E8 7F 43 D3 78 */ mr r3, r26 -/* 8059A8EC 4B AE 91 3D */ bl __ct__12dCcD_GObjInfFv -/* 8059A8F0 3C 60 80 3C */ lis r3, __vt__14cCcD_ShapeAttr@ha /* 0x803C36D0@ha */ -/* 8059A8F4 38 03 36 D0 */ addi r0, r3, __vt__14cCcD_ShapeAttr@l /* 0x803C36D0@l */ -/* 8059A8F8 90 1A 01 20 */ stw r0, 0x120(r26) -/* 8059A8FC 3C 60 80 5A */ lis r3, __vt__8cM3dGAab@ha /* 0x8059B3E8@ha */ -/* 8059A900 38 03 B3 E8 */ addi r0, r3, __vt__8cM3dGAab@l /* 0x8059B3E8@l */ -/* 8059A904 90 1A 01 1C */ stw r0, 0x11c(r26) -/* 8059A908 3C 60 80 5A */ lis r3, __vt__8cM3dGCyl@ha /* 0x8059B3DC@ha */ -/* 8059A90C 38 03 B3 DC */ addi r0, r3, __vt__8cM3dGCyl@l /* 0x8059B3DC@l */ -/* 8059A910 90 1A 01 38 */ stw r0, 0x138(r26) -/* 8059A914 3C 60 80 3C */ lis r3, __vt__12cCcD_CylAttr@ha /* 0x803C35A4@ha */ -/* 8059A918 38 63 35 A4 */ addi r3, r3, __vt__12cCcD_CylAttr@l /* 0x803C35A4@l */ -/* 8059A91C 90 7A 01 20 */ stw r3, 0x120(r26) -/* 8059A920 3B A3 00 58 */ addi r29, r3, 0x58 -/* 8059A924 93 BA 01 38 */ stw r29, 0x138(r26) -/* 8059A928 3C 60 80 3B */ lis r3, __vt__8dCcD_Cyl@ha /* 0x803AC050@ha */ -/* 8059A92C 38 63 C0 50 */ addi r3, r3, __vt__8dCcD_Cyl@l /* 0x803AC050@l */ -/* 8059A930 90 7A 00 3C */ stw r3, 0x3c(r26) -/* 8059A934 3B 83 00 2C */ addi r28, r3, 0x2c -/* 8059A938 93 9A 01 20 */ stw r28, 0x120(r26) -/* 8059A93C 3B 63 00 84 */ addi r27, r3, 0x84 -/* 8059A940 93 7A 01 38 */ stw r27, 0x138(r26) -/* 8059A944 3B 5E 06 EC */ addi r26, r30, 0x6ec -/* 8059A948 7F 43 D3 78 */ mr r3, r26 -/* 8059A94C 4B AE 90 DD */ bl __ct__12dCcD_GObjInfFv -/* 8059A950 3C 60 80 3C */ lis r3, __vt__14cCcD_ShapeAttr@ha /* 0x803C36D0@ha */ -/* 8059A954 38 03 36 D0 */ addi r0, r3, __vt__14cCcD_ShapeAttr@l /* 0x803C36D0@l */ -/* 8059A958 90 1A 01 20 */ stw r0, 0x120(r26) -/* 8059A95C 3C 60 80 5A */ lis r3, __vt__8cM3dGAab@ha /* 0x8059B3E8@ha */ -/* 8059A960 38 03 B3 E8 */ addi r0, r3, __vt__8cM3dGAab@l /* 0x8059B3E8@l */ -/* 8059A964 90 1A 01 1C */ stw r0, 0x11c(r26) -/* 8059A968 3C 60 80 5A */ lis r3, __vt__8cM3dGCyl@ha /* 0x8059B3DC@ha */ -/* 8059A96C 38 03 B3 DC */ addi r0, r3, __vt__8cM3dGCyl@l /* 0x8059B3DC@l */ -/* 8059A970 90 1A 01 38 */ stw r0, 0x138(r26) -/* 8059A974 3C 60 80 3C */ lis r3, __vt__12cCcD_CylAttr@ha /* 0x803C35A4@ha */ -/* 8059A978 38 03 35 A4 */ addi r0, r3, __vt__12cCcD_CylAttr@l /* 0x803C35A4@l */ -/* 8059A97C 90 1A 01 20 */ stw r0, 0x120(r26) -/* 8059A980 93 BA 01 38 */ stw r29, 0x138(r26) -/* 8059A984 3C 60 80 3B */ lis r3, __vt__8dCcD_Cyl@ha /* 0x803AC050@ha */ -/* 8059A988 38 03 C0 50 */ addi r0, r3, __vt__8dCcD_Cyl@l /* 0x803AC050@l */ -/* 8059A98C 90 1A 00 3C */ stw r0, 0x3c(r26) -/* 8059A990 93 9A 01 20 */ stw r28, 0x120(r26) -/* 8059A994 93 7A 01 38 */ stw r27, 0x138(r26) -lbl_8059A998: -/* 8059A998 80 1F 04 A0 */ lwz r0, 0x4a0(r31) -/* 8059A99C 60 00 00 08 */ ori r0, r0, 8 -/* 8059A9A0 90 1F 04 A0 */ stw r0, 0x4a0(r31) -lbl_8059A9A4: -/* 8059A9A4 80 1F 00 B0 */ lwz r0, 0xb0(r31) -/* 8059A9A8 54 00 C6 3E */ rlwinm r0, r0, 0x18, 0x18, 0x1f -/* 8059A9AC 98 1F 08 3C */ stb r0, 0x83c(r31) -/* 8059A9B0 80 1F 00 B0 */ lwz r0, 0xb0(r31) -/* 8059A9B4 54 00 87 3E */ rlwinm r0, r0, 0x10, 0x1c, 0x1f -/* 8059A9B8 28 00 00 0F */ cmplwi r0, 0xf -/* 8059A9BC 41 82 00 0C */ beq lbl_8059A9C8 -/* 8059A9C0 28 00 00 00 */ cmplwi r0, 0 -/* 8059A9C4 40 82 00 10 */ bne lbl_8059A9D4 -lbl_8059A9C8: -/* 8059A9C8 38 00 00 00 */ li r0, 0 -/* 8059A9CC 98 1F 08 3E */ stb r0, 0x83e(r31) -/* 8059A9D0 48 00 00 14 */ b lbl_8059A9E4 -lbl_8059A9D4: -/* 8059A9D4 28 00 00 01 */ cmplwi r0, 1 -/* 8059A9D8 40 82 00 0C */ bne lbl_8059A9E4 -/* 8059A9DC 38 00 00 01 */ li r0, 1 -/* 8059A9E0 98 1F 08 3E */ stb r0, 0x83e(r31) -lbl_8059A9E4: -/* 8059A9E4 38 7F 05 68 */ addi r3, r31, 0x568 -/* 8059A9E8 88 1F 08 3E */ lbz r0, 0x83e(r31) -/* 8059A9EC 54 00 10 3A */ slwi r0, r0, 2 -/* 8059A9F0 3C 80 80 5A */ lis r4, l_arcName@ha /* 0x8059B380@ha */ -/* 8059A9F4 38 84 B3 80 */ addi r4, r4, l_arcName@l /* 0x8059B380@l */ -/* 8059A9F8 7C 84 00 2E */ lwzx r4, r4, r0 -/* 8059A9FC 4B A9 24 C1 */ bl dComIfG_resLoad__FP30request_of_phase_process_classPCc -/* 8059AA00 7C 7B 1B 78 */ mr r27, r3 -/* 8059AA04 2C 1B 00 04 */ cmpwi r27, 4 -/* 8059AA08 40 82 00 50 */ bne lbl_8059AA58 -/* 8059AA0C 7F E3 FB 78 */ mr r3, r31 -/* 8059AA10 3C 80 80 5A */ lis r4, CheckCreateHeap__FP10fopAc_ac_c@ha /* 0x8059A5C8@ha */ -/* 8059AA14 38 84 A5 C8 */ addi r4, r4, CheckCreateHeap__FP10fopAc_ac_c@l /* 0x8059A5C8@l */ -/* 8059AA18 88 1F 08 3E */ lbz r0, 0x83e(r31) -/* 8059AA1C 54 00 10 3A */ slwi r0, r0, 2 -/* 8059AA20 3C A0 80 5A */ lis r5, l_heap_size@ha /* 0x8059B2D0@ha */ -/* 8059AA24 38 A5 B2 D0 */ addi r5, r5, l_heap_size@l /* 0x8059B2D0@l */ -/* 8059AA28 7C A5 00 2E */ lwzx r5, r5, r0 -/* 8059AA2C 4B A7 FA 85 */ bl fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl -/* 8059AA30 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 8059AA34 40 82 00 0C */ bne lbl_8059AA40 -/* 8059AA38 38 60 00 05 */ li r3, 5 -/* 8059AA3C 48 00 00 20 */ b lbl_8059AA5C -lbl_8059AA40: -/* 8059AA40 7F E3 FB 78 */ mr r3, r31 -/* 8059AA44 4B FF FC 2D */ bl Create__11daObjSwPr_cFv -/* 8059AA48 2C 03 00 00 */ cmpwi r3, 0 -/* 8059AA4C 40 82 00 0C */ bne lbl_8059AA58 -/* 8059AA50 38 60 00 05 */ li r3, 5 -/* 8059AA54 48 00 00 08 */ b lbl_8059AA5C -lbl_8059AA58: -/* 8059AA58 7F 63 DB 78 */ mr r3, r27 -lbl_8059AA5C: -/* 8059AA5C 39 61 00 20 */ addi r11, r1, 0x20 -/* 8059AA60 4B DC 77 BD */ bl _restgpr_26 -/* 8059AA64 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8059AA68 7C 08 03 A6 */ mtlr r0 -/* 8059AA6C 38 21 00 20 */ addi r1, r1, 0x20 -/* 8059AA70 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/initBaseMtx__11daObjSwPr_cFv.s b/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/initBaseMtx__11daObjSwPr_cFv.s deleted file mode 100644 index 9c9137da15..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/initBaseMtx__11daObjSwPr_cFv.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_8059A5E8: -/* 8059A5E8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8059A5EC 7C 08 02 A6 */ mflr r0 -/* 8059A5F0 90 01 00 14 */ stw r0, 0x14(r1) -/* 8059A5F4 80 83 05 70 */ lwz r4, 0x570(r3) -/* 8059A5F8 C0 03 04 EC */ lfs f0, 0x4ec(r3) -/* 8059A5FC D0 04 00 18 */ stfs f0, 0x18(r4) -/* 8059A600 C0 03 04 F0 */ lfs f0, 0x4f0(r3) -/* 8059A604 D0 04 00 1C */ stfs f0, 0x1c(r4) -/* 8059A608 C0 03 04 F4 */ lfs f0, 0x4f4(r3) -/* 8059A60C D0 04 00 20 */ stfs f0, 0x20(r4) -/* 8059A610 48 00 00 15 */ bl setBaseMtx__11daObjSwPr_cFv -/* 8059A614 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8059A618 7C 08 03 A6 */ mtlr r0 -/* 8059A61C 38 21 00 10 */ addi r1, r1, 0x10 -/* 8059A620 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/nodeCallBack__FP8J3DJointi.s b/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/nodeCallBack__FP8J3DJointi.s deleted file mode 100644 index 90f961eae9..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/nodeCallBack__FP8J3DJointi.s +++ /dev/null @@ -1,46 +0,0 @@ -lbl_8059A518: -/* 8059A518 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8059A51C 7C 08 02 A6 */ mflr r0 -/* 8059A520 90 01 00 24 */ stw r0, 0x24(r1) -/* 8059A524 39 61 00 20 */ addi r11, r1, 0x20 -/* 8059A528 4B DC 7C B5 */ bl _savegpr_29 -/* 8059A52C 2C 04 00 00 */ cmpwi r4, 0 -/* 8059A530 40 82 00 7C */ bne lbl_8059A5AC -/* 8059A534 A0 83 00 14 */ lhz r4, 0x14(r3) -/* 8059A538 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 8059A53C 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */ -/* 8059A540 83 E3 00 38 */ lwz r31, 0x38(r3) -/* 8059A544 83 BF 00 14 */ lwz r29, 0x14(r31) -/* 8059A548 A0 1D 08 30 */ lhz r0, 0x830(r29) -/* 8059A54C 7C 04 00 00 */ cmpw r4, r0 -/* 8059A550 40 82 00 5C */ bne lbl_8059A5AC -/* 8059A554 80 7F 00 84 */ lwz r3, 0x84(r31) -/* 8059A558 80 03 00 0C */ lwz r0, 0xc(r3) -/* 8059A55C 1F C4 00 30 */ mulli r30, r4, 0x30 -/* 8059A560 7C 60 F2 14 */ add r3, r0, r30 -/* 8059A564 3C 80 80 3E */ lis r4, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 8059A568 38 84 D4 70 */ addi r4, r4, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 8059A56C 4B DA BF 45 */ bl PSMTXCopy -/* 8059A570 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 8059A574 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 8059A578 A8 9D 08 2C */ lha r4, 0x82c(r29) -/* 8059A57C 4B A7 1E B9 */ bl mDoMtx_YrotM__FPA4_fs -/* 8059A580 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 8059A584 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 8059A588 80 9F 00 84 */ lwz r4, 0x84(r31) -/* 8059A58C 80 04 00 0C */ lwz r0, 0xc(r4) -/* 8059A590 7C 80 F2 14 */ add r4, r0, r30 -/* 8059A594 4B DA BF 1D */ bl PSMTXCopy -/* 8059A598 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 8059A59C 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 8059A5A0 3C 80 80 43 */ lis r4, mCurrentMtx__6J3DSys@ha /* 0x80434BE4@ha */ -/* 8059A5A4 38 84 4B E4 */ addi r4, r4, mCurrentMtx__6J3DSys@l /* 0x80434BE4@l */ -/* 8059A5A8 4B DA BF 09 */ bl PSMTXCopy -lbl_8059A5AC: -/* 8059A5AC 38 60 00 01 */ li r3, 1 -/* 8059A5B0 39 61 00 20 */ addi r11, r1, 0x20 -/* 8059A5B4 4B DC 7C 75 */ bl _restgpr_29 -/* 8059A5B8 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8059A5BC 7C 08 03 A6 */ mtlr r0 -/* 8059A5C0 38 21 00 20 */ addi r1, r1, 0x20 -/* 8059A5C4 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/setBaseMtx__11daObjSwPr_cFv.s b/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/setBaseMtx__11daObjSwPr_cFv.s deleted file mode 100644 index 6a4bfdbe1a..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/setBaseMtx__11daObjSwPr_cFv.s +++ /dev/null @@ -1,20 +0,0 @@ -lbl_8059A624: -/* 8059A624 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8059A628 7C 08 02 A6 */ mflr r0 -/* 8059A62C 90 01 00 14 */ stw r0, 0x14(r1) -/* 8059A630 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8059A634 7C 7F 1B 78 */ mr r31, r3 -/* 8059A638 38 7F 04 D0 */ addi r3, r31, 0x4d0 -/* 8059A63C 4B A7 27 29 */ bl transS__14mDoMtx_stack_cFRC4cXyz -/* 8059A640 38 7F 04 E4 */ addi r3, r31, 0x4e4 -/* 8059A644 4B A7 29 01 */ bl ZXYrotM__14mDoMtx_stack_cFRC5csXyz -/* 8059A648 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 8059A64C 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 8059A650 80 9F 05 70 */ lwz r4, 0x570(r31) -/* 8059A654 38 84 00 24 */ addi r4, r4, 0x24 -/* 8059A658 4B DA BE 59 */ bl PSMTXCopy -/* 8059A65C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8059A660 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8059A664 7C 08 03 A6 */ mtlr r0 -/* 8059A668 38 21 00 10 */ addi r1, r1, 0x10 -/* 8059A66C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/setRotateTime__11daObjSwPr_cFv.s b/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/setRotateTime__11daObjSwPr_cFv.s deleted file mode 100644 index cf0bc2cc56..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/setRotateTime__11daObjSwPr_cFv.s +++ /dev/null @@ -1,5 +0,0 @@ -lbl_8059AB04: -/* 8059AB04 38 00 00 00 */ li r0, 0 -/* 8059AB08 98 03 08 3A */ stb r0, 0x83a(r3) -/* 8059AB0C 38 60 00 64 */ li r3, 0x64 -/* 8059AB10 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/switchCtrl__11daObjSwPr_cFv.s b/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/switchCtrl__11daObjSwPr_cFv.s deleted file mode 100644 index 3cef2721e7..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_swpropeller/d_a_obj_swpropeller/switchCtrl__11daObjSwPr_cFv.s +++ /dev/null @@ -1,37 +0,0 @@ -lbl_8059AB14: -/* 8059AB14 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8059AB18 7C 08 02 A6 */ mflr r0 -/* 8059AB1C 90 01 00 14 */ stw r0, 0x14(r1) -/* 8059AB20 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8059AB24 93 C1 00 08 */ stw r30, 8(r1) -/* 8059AB28 7C 7E 1B 78 */ mr r30, r3 -/* 8059AB2C 80 03 00 B0 */ lwz r0, 0xb0(r3) -/* 8059AB30 54 1F 06 3E */ clrlwi r31, r0, 0x18 -/* 8059AB34 A8 03 08 28 */ lha r0, 0x828(r3) -/* 8059AB38 2C 00 00 00 */ cmpwi r0, 0 -/* 8059AB3C 40 82 00 20 */ bne lbl_8059AB5C -/* 8059AB40 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8059AB44 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8059AB48 7F E4 FB 78 */ mr r4, r31 -/* 8059AB4C 88 1E 04 BA */ lbz r0, 0x4ba(r30) -/* 8059AB50 7C 05 07 74 */ extsb r5, r0 -/* 8059AB54 4B A9 A7 5D */ bl offSwitch__10dSv_info_cFii -/* 8059AB58 48 00 00 2C */ b lbl_8059AB84 -lbl_8059AB5C: -/* 8059AB5C 38 7E 08 32 */ addi r3, r30, 0x832 -/* 8059AB60 48 00 07 45 */ bl func_8059B2A4 -/* 8059AB64 7C 60 07 35 */ extsh. r0, r3 -/* 8059AB68 40 82 00 1C */ bne lbl_8059AB84 -/* 8059AB6C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8059AB70 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8059AB74 7F E4 FB 78 */ mr r4, r31 -/* 8059AB78 88 1E 04 BA */ lbz r0, 0x4ba(r30) -/* 8059AB7C 7C 05 07 74 */ extsb r5, r0 -/* 8059AB80 4B A9 A6 81 */ bl onSwitch__10dSv_info_cFii -lbl_8059AB84: -/* 8059AB84 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8059AB88 83 C1 00 08 */ lwz r30, 8(r1) -/* 8059AB8C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8059AB90 7C 08 03 A6 */ mtlr r0 -/* 8059AB94 38 21 00 10 */ addi r1, r1, 0x10 -/* 8059AB98 4E 80 00 20 */ blr