From 65e6b3a76737da77942af3f90c5bd3754f5c0003 Mon Sep 17 00:00:00 2001 From: Briggs Baltzell Date: Tue, 3 Feb 2026 23:04:38 -0600 Subject: [PATCH] Refactor `dMCloth_c` to use `mCurArr` for indexing and update structure definitions in `d_menu_cloth`. --- include/d/d_menu_cloth.h | 18 +++++++++--------- src/d/d_menu_cloth.cpp | 11 +++++++++-- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/include/d/d_menu_cloth.h b/include/d/d_menu_cloth.h index aa180265b..5f6681eb7 100644 --- a/include/d/d_menu_cloth.h +++ b/include/d/d_menu_cloth.h @@ -12,12 +12,12 @@ public: dMCloth_c(); virtual ~dMCloth_c(); - void getBackNrm() {} - void getNrm() {} - void getOffsetVec() {} - void getPos() {} - void getShadowPos() {} - void getTexObj() {} + cXyz* getBackNrm() { return field_0x52f8; } + cXyz* getNrm() { return field_0x29a0[mCurArr]; } + cXyz* getOffsetVec() {} + cXyz* getPos() { return field_0x48[mCurArr]; } + cXyz* getShadowPos() {} + GXTexObj* getTexObj() { return &mTexObj; } void setArchive(JKRArchive* arc) { mpArc = arc; } void setClothType(u8 type) { mClothType = type; } // ? @@ -43,14 +43,14 @@ public: /* 0x0004 */ u16 field_0x4; /* 0x0006 */ u8 field_0x6[0x44 - 0x06]; /* 0x0044 */ JKRArchive* mpArc; - /* 0x0048 */ cXyz field_0x48[882]; - /* 0x29A0 */ cXyz field_0x29a0[882]; + /* 0x0048 */ cXyz field_0x48[2][441]; + /* 0x29A0 */ cXyz field_0x29a0[2][441]; /* 0x52F8 */ cXyz field_0x52f8[441]; /* 0x67A4 */ cXyz field_0x67a4[441]; /* 0x7C50 */ cXyz field_0x7c50[441]; /* 0x90FC */ GXTexObj mTexObj; /* 0x911C */ u8 field_0x911c[0x913C - 0x911C]; - /* 0x913C */ u8 field_0x913c; + /* 0x913C */ u8 mCurArr; /* 0x913D */ u8 mClothType; /* 0x913E */ u8 field_913e[0x9168 - 0x913E]; }; diff --git a/src/d/d_menu_cloth.cpp b/src/d/d_menu_cloth.cpp index f83facf9e..6a7755ab1 100644 --- a/src/d/d_menu_cloth.cpp +++ b/src/d/d_menu_cloth.cpp @@ -165,7 +165,7 @@ void dMCloth_c::init() { /* 80199E1C-80199F48 .text __ct__9dMCloth_cFv */ dMCloth_c::dMCloth_c() { - field_0x913c = 0; + mCurArr = 0; field_0x4 = 0; mClothType = 0; if (l_HIO.mNo < 0) { @@ -185,7 +185,14 @@ dMCloth_c::~dMCloth_c() { /* 8019A058-8019A0AC .text setBackNrm__9dMCloth_cFv */ void dMCloth_c::setBackNrm() { - /* Nonmatching */ + cXyz* pNrm = getNrm(); + cXyz* pBackNrm = getBackNrm(); + + for (int i = 0; i < 441; i++) { + pBackNrm->set(-pNrm->x, -pNrm->y, -pNrm->z); + pNrm++; + pBackNrm++; + } } /* 8019A0AC-8019A480 .text setNrmVtx__9dMCloth_cFP4cXyzii */