d_a_obj_laundry Equivalent (#2387)

* Decompile first laundry methods

* Cleanup setNormalClothPos

* Fix rodata and implement more functions

* Full mapping

* Move create to inline method

* Cleanup

* Mark class as equivalent

* Change rodata padding

* Rename joint members

* More renames and cleanup

* Redefine mAttr

* Cleanup

* Update includes
This commit is contained in:
Arnaut Scholten
2025-04-12 05:54:53 -07:00
committed by GitHub
parent b52d288cd0
commit 417922b5c3
4 changed files with 298 additions and 364 deletions
+48 -10
View File
@@ -1,7 +1,8 @@
#ifndef D_A_OBJ_LAUNDRY_H
#define D_A_OBJ_LAUNDRY_H
#include "f_op/f_op_actor_mng.h"
#include "d/d_cc_d.h"
#include "f_op/f_op_actor.h"
/**
* @ingroup actors-objects
@@ -11,6 +12,36 @@
* @details
*
*/
class LaundJoint_c {
public:
/* 80C51D2C */ ~LaundJoint_c();
/* 80C51EC0 */ LaundJoint_c();
cXyz mPos1;
cXyz mPos2;
cXyz mPos3;
cXyz mPos4;
csXyz mAngle;
};
struct daObjLdy_Attr_c {
f32 field_0x0;
f32 field_0x4;
f32 field_0x8;
f32 field_0xc;
f32 field_0x10;
f32 field_0x14;
f32 field_0x18;
f32 field_0x1c;
f32 field_0x20;
f32 field_0x24;
f32 field_0x28;
f32 field_0x2c;
u16 field_0x30;
u8 field_0x32;
u8 field_0x33;
};
class daObjLdy_c : public fopAc_ac_c {
public:
/* 80C50F98 */ void create_init();
@@ -21,18 +52,25 @@ public:
/* 80C51644 */ void calcJointAngle();
/* 80C5183C */ bool divorceParent();
static u8 const M_attr[52];
inline ~daObjLdy_c();
inline int create();
inline int createHeap();
inline int getObjType();
inline int daObjLdy_Draw();
inline int daObjLdy_Execute();
private:
/* 0x568 */ u8 field_0x568[0x7c8 - 0x568];
static const daObjLdy_Attr_c mAttr;
/* 0x568 */ J3DModel* mpModel;
/* 0x56C */ mDoExt_btkAnm* mpBtkAnm;
/* 0x570 */ request_of_phase_process_class mPhase;
/* 0x578 */ Mtx mMtx;
/* 0x5A8 */ dCcD_Stts mStts;
/* 0x5E4 */ dCcD_Cyl mCyl;
/* 0x720 */ LaundJoint_c mJoints[3];
};
STATIC_ASSERT(sizeof(daObjLdy_c) == 0x7c8);
class LaundJoint_c {
public:
/* 80C51D2C */ ~LaundJoint_c();
/* 80C51EC0 */ LaundJoint_c();
};
#endif /* D_A_OBJ_LAUNDRY_H */
+1
View File
@@ -24,6 +24,7 @@ void dKyw_rain_set(int count);
void dKyw_wind_set();
cXyz* dKyw_get_wind_vec();
cXyz dKyw_get_wind_vecpow();
cXyz dKyw_get_AllWind_vecpow(cXyz* param_0);
void dKyw_evt_wind_set(s16 angleX, s16 angleY);
void dKyw_custom_windpower(f32 pow);
void dKyw_evt_wind_set_go();