From 4f11e02768b7b996c108c96abb491bfa1ab7419b Mon Sep 17 00:00:00 2001 From: Briggs Baltzell Date: Sun, 8 Feb 2026 18:46:11 -0600 Subject: [PATCH] Refactor `d_menu_cloth` to improve pointer arithmetic in `plot` loop and add missing implementations for `getOffsetVec` and `getShadowPos`. --- include/d/d_menu_cloth.h | 8 ++++---- src/d/d_menu_cloth.cpp | 10 +++++----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/include/d/d_menu_cloth.h b/include/d/d_menu_cloth.h index 6104831da..2055c628c 100644 --- a/include/d/d_menu_cloth.h +++ b/include/d/d_menu_cloth.h @@ -12,11 +12,11 @@ public: dMCloth_c(); virtual ~dMCloth_c(); - cXyz* getBackNrm() { return field_0x52f8; } - cXyz* getNrm() { return field_0x29a0[mCurArr]; } - cXyz* getOffsetVec() {} cXyz* getPos() { return field_0x48[mCurArr]; } - cXyz* getShadowPos() {} + cXyz* getNrm() { return field_0x29a0[mCurArr]; } + cXyz* getBackNrm() { return field_0x52f8; } + cXyz* getOffsetVec() { return field_0x67a4; } + cXyz* getShadowPos() { return field_0x7c50; } GXTexObj* getTexObj() { return &mTexObj; } void setArchive(JKRArchive* arc) { mpArc = arc; } void setClothType(u8 type) { mClothType = type; } // ? diff --git a/src/d/d_menu_cloth.cpp b/src/d/d_menu_cloth.cpp index 4d8f54afd..6a705de53 100644 --- a/src/d/d_menu_cloth.cpp +++ b/src/d/d_menu_cloth.cpp @@ -130,15 +130,15 @@ void dMCloth_c::cloth_init() { for (int i = 0; i < INNER_SIZE; i++) { s16 xAngle = -(i * 3500); for (int j = 0; j < INNER_SIZE; j++) { - cXyz* pPos = getPos() + i * INNER_SIZE + j; + cXyz* pPos = &getPos()[i * INNER_SIZE + j]; pPos->x = cM_ssin(j * 3276.8f) * 954.9299f + -1500.0f + j * 10.0f * cM_ssin(xAngle); pPos->y = i * 300.0f + -1500.0f; pPos->z = (1.0f - cM_scos(j * 3276.8f)) * 716.1974f - 3400.0f + j * -5.0f * cM_scos(xAngle); - pPos = field_0x29a0[mCurArr] + i * INNER_SIZE + j; - pPos->x = cM_scos(j * 3276.8f - 1000.0f) * -320.0f; - pPos->y = 0.0f; - pPos->z = cM_ssin(j * 3276.8f - 1000.0f) * -270.0f; + cXyz* pOff = &getOffsetVec()[i * INNER_SIZE + j]; + pOff->x = cM_scos(j * 3276.8f - 1000.0f) * -320.0f; + pOff->y = 0.0f; + pOff->z = cM_ssin(j * 3276.8f - 1000.0f) * -270.0f; } }