mirror of
https://github.com/zeldaret/tww.git
synced 2026-07-08 05:40:36 -04:00
Refactor d_menu_cloth to replace repeated member accesses with HIO_CHILD macro for improved readability and maintainability.
This commit is contained in:
+39
-51
@@ -14,6 +14,8 @@ static daCLOTH_HIO_c l_HIO;
|
||||
|
||||
s16 dMCloth_c::init_angle_z = 0;
|
||||
|
||||
#define HIO_CHILD (l_HIO.mChildren[mClothType])
|
||||
|
||||
/* 8019940C-8019966C .text __ct__13daCLOTH_HIO_cFv */
|
||||
daCLOTH_HIO_c::daCLOTH_HIO_c() {
|
||||
mNo = -1;
|
||||
@@ -111,12 +113,12 @@ daCLOTH_ChildHIO_c::daCLOTH_ChildHIO_c() {
|
||||
/* 801996C4-8019977C .text lightSet1__9dMCloth_cF4cXyz */
|
||||
void dMCloth_c::lightSet1(cXyz) {
|
||||
GXLightObj light;
|
||||
const f32 f0 = l_HIO.mChildren[mClothType].field_0x4c;
|
||||
const f32 f0 = HIO_CHILD.field_0x4c;
|
||||
GXInitLightPos(
|
||||
&light,
|
||||
-f0 * cM_ssin(l_HIO.mChildren[mClothType].field_0x4a) * cM_scos(l_HIO.mChildren[mClothType].field_0x48),
|
||||
-f0 * cM_ssin(l_HIO.mChildren[mClothType].field_0x48),
|
||||
-f0 * cM_scos(l_HIO.mChildren[mClothType].field_0x4a) * cM_scos(l_HIO.mChildren[mClothType].field_0x48)
|
||||
-f0 * cM_ssin(HIO_CHILD.field_0x4a) * cM_scos(HIO_CHILD.field_0x48),
|
||||
-f0 * cM_ssin(HIO_CHILD.field_0x48),
|
||||
-f0 * cM_scos(HIO_CHILD.field_0x4a) * cM_scos(HIO_CHILD.field_0x48)
|
||||
);
|
||||
GXInitLightColor(&light, (GXColor){0xFF, 0xFF, 0xFF, 0x00});
|
||||
GXLoadLightObjImm(&light, GX_LIGHT0);
|
||||
@@ -157,29 +159,29 @@ void dMCloth_c::cloth_init() {
|
||||
cloth_move();
|
||||
|
||||
field_0xc = 0;
|
||||
field_0xd = l_HIO.mChildren[mClothType].field_0x22.a;
|
||||
field_0x8 += l_HIO.mChildren[mClothType].field_0x36;
|
||||
field_0xd = HIO_CHILD.field_0x22.a;
|
||||
field_0x8 += HIO_CHILD.field_0x36;
|
||||
|
||||
DCStoreRangeNoSync(field_0x48[mCurArr], INNER_SIZE * INNER_SIZE * sizeof(cXyz));
|
||||
DCStoreRangeNoSync(field_0x29a0[mCurArr], 0x5AC);
|
||||
DCStoreRangeNoSync(field_0x52f8, 0x5AC);
|
||||
|
||||
field_0x915e.r = (u8)l_HIO.mChildren[mClothType].field_0x22.r;
|
||||
field_0x915e.g = (u8)l_HIO.mChildren[mClothType].field_0x22.g;
|
||||
field_0x915e.b = (u8)l_HIO.mChildren[mClothType].field_0x22.b;
|
||||
field_0x915e.a = (u8)l_HIO.mChildren[mClothType].field_0x22.a;
|
||||
field_0x9162.r = (u8)l_HIO.mChildren[mClothType].field_0x2a.r;
|
||||
field_0x9162.g = (u8)l_HIO.mChildren[mClothType].field_0x2a.g;
|
||||
field_0x9162.b = (u8)l_HIO.mChildren[mClothType].field_0x2a.b;
|
||||
field_0x9162.a = (u8)l_HIO.mChildren[mClothType].field_0x2a.a;
|
||||
field_0x915e.r = (u8)HIO_CHILD.field_0x22.r;
|
||||
field_0x915e.g = (u8)HIO_CHILD.field_0x22.g;
|
||||
field_0x915e.b = (u8)HIO_CHILD.field_0x22.b;
|
||||
field_0x915e.a = (u8)HIO_CHILD.field_0x22.a;
|
||||
field_0x9162.r = (u8)HIO_CHILD.field_0x2a.r;
|
||||
field_0x9162.g = (u8)HIO_CHILD.field_0x2a.g;
|
||||
field_0x9162.b = (u8)HIO_CHILD.field_0x2a.b;
|
||||
field_0x9162.a = (u8)HIO_CHILD.field_0x2a.a;
|
||||
|
||||
switch (mClothType) {
|
||||
case 0: {
|
||||
const f32 r = cM_rndFX(45.0f);
|
||||
init_angle_z += (s16)((r + 90.0f) * 182.04445f);
|
||||
field_0x9140 = l_HIO.mChildren[mClothType].field_0x4;
|
||||
field_0x9140 = HIO_CHILD.field_0x4;
|
||||
field_0x9158.set(0, 0, init_angle_z);
|
||||
s32 n = l_HIO.mChildren[mClothType].field_0x50;
|
||||
s32 n = HIO_CHILD.field_0x50;
|
||||
while (n--) {
|
||||
cloth_move_sin();
|
||||
}
|
||||
@@ -189,11 +191,11 @@ void dMCloth_c::cloth_init() {
|
||||
field_0x9158.setall(0);
|
||||
} break;
|
||||
case 2: {
|
||||
field_0x9140 = l_HIO.mChildren[mClothType].field_0x4;
|
||||
field_0x9140 = HIO_CHILD.field_0x4;
|
||||
const f32 r = cM_rndFX(20.0f);
|
||||
field_0x9158 = l_HIO.mChildren[mClothType].field_0x1c;
|
||||
field_0x9158 = HIO_CHILD.field_0x1c;
|
||||
field_0x9158.z += (s16)(r * 182.04445f);
|
||||
s32 n = l_HIO.mChildren[mClothType].field_0x50;
|
||||
s32 n = HIO_CHILD.field_0x50;
|
||||
while (n--) {
|
||||
cloth_move_sin();
|
||||
}
|
||||
@@ -545,18 +547,18 @@ void dMCloth_c::draw(float, GXColor color1, GXColor color2, unsigned char) {
|
||||
field_0xd = 0;
|
||||
}
|
||||
} else {
|
||||
f32 f = (f32)field_0xa / l_HIO.mChildren[mClothType].field_0x34;
|
||||
f32 f = (f32)field_0xa / HIO_CHILD.field_0x34;
|
||||
{
|
||||
s16 uv2 = l_HIO.mChildren[mClothType].field_0x22.a;
|
||||
s16 uv2 = HIO_CHILD.field_0x22.a;
|
||||
s16 uv6 = cLib_minMaxLimit<s16>(uv2, 0, 0xFF);
|
||||
color1.a = uv6;
|
||||
color1.a = color1.a * f + (1.0f - f) * l_HIO.mChildren[mClothType].field_0x32;
|
||||
color1.a = color1.a * f + (1.0f - f) * HIO_CHILD.field_0x32;
|
||||
}
|
||||
{
|
||||
s16 uv2 = l_HIO.mChildren[mClothType].field_0x2a.a;
|
||||
s16 uv2 = HIO_CHILD.field_0x2a.a;
|
||||
s16 uv6 = cLib_minMaxLimit<s16>(uv2, 0, 0xFF);
|
||||
color2.a = uv6;
|
||||
color2.a = color2.a * f + (1.0f - f) * l_HIO.mChildren[mClothType].field_0x32;
|
||||
color2.a = color2.a * f + (1.0f - f) * HIO_CHILD.field_0x32;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -641,11 +643,7 @@ void dMCloth_c::draw(float, GXColor color1, GXColor color2, unsigned char) {
|
||||
switch (mClothType) {
|
||||
case 1:
|
||||
case 2: {
|
||||
mDoMtx_stack_c::transS(
|
||||
l_HIO.mChildren[mClothType].field_0x10.x + -275.0f,
|
||||
l_HIO.mChildren[mClothType].field_0x10.y - 75.0f,
|
||||
l_HIO.mChildren[mClothType].field_0x10.z + -3800.0f
|
||||
);
|
||||
mDoMtx_stack_c::transS(HIO_CHILD.field_0x10.x + -275.0f, HIO_CHILD.field_0x10.y - 75.0f, HIO_CHILD.field_0x10.z + -3800.0f);
|
||||
mDoMtx_stack_c::XrotM(field_0x9158.x);
|
||||
mDoMtx_stack_c::YrotM(field_0x9158.y);
|
||||
mDoMtx_stack_c::ZrotM(field_0x9158.z);
|
||||
@@ -662,9 +660,7 @@ void dMCloth_c::draw(float, GXColor color1, GXColor color2, unsigned char) {
|
||||
} break;
|
||||
}
|
||||
|
||||
mDoMtx_stack_c::transS(
|
||||
l_HIO.mChildren[mClothType].field_0x10.x + -350.0f, l_HIO.mChildren[mClothType].field_0x10.y, l_HIO.mChildren[mClothType].field_0x10.z + -3800.0f
|
||||
);
|
||||
mDoMtx_stack_c::transS(HIO_CHILD.field_0x10.x + -350.0f, HIO_CHILD.field_0x10.y, HIO_CHILD.field_0x10.z + -3800.0f);
|
||||
mDoMtx_stack_c::XrotM(field_0x9158.x);
|
||||
mDoMtx_stack_c::YrotM(field_0x9158.y);
|
||||
mDoMtx_stack_c::ZrotM(field_0x9158.z);
|
||||
@@ -695,7 +691,7 @@ void dMCloth_c::draw(float, GXColor color1, GXColor color2, unsigned char) {
|
||||
/* 8019B670-8019B9C0 .text cloth_move_sin__9dMCloth_cFv */
|
||||
void dMCloth_c::cloth_move_sin() {
|
||||
/* Nonmatching */
|
||||
field_0x8 += l_HIO.mChildren[mClothType].field_0x36;
|
||||
field_0x8 += HIO_CHILD.field_0x36;
|
||||
|
||||
for (int y = 0; y < INNER_SIZE; y++) {
|
||||
for (int x = 0; x < INNER_SIZE; x++) {
|
||||
@@ -715,15 +711,11 @@ void dMCloth_c::cloth_move_sin() {
|
||||
}
|
||||
|
||||
cXyz pos;
|
||||
pos.x = -1500.0f + 305.0f * x +
|
||||
l_HIO.mChildren[mClothType].field_0x3c * fx *
|
||||
cM_ssin(field_0x8 + x * l_HIO.mChildren[mClothType].field_0x38 + y * l_HIO.mChildren[mClothType].field_0x3a);
|
||||
pos.y = -1500.0f + 300.0f * y +
|
||||
l_HIO.mChildren[mClothType].field_0x40 * fx *
|
||||
cM_scos(field_0x8 + x * l_HIO.mChildren[mClothType].field_0x38 + y * l_HIO.mChildren[mClothType].field_0x3a);
|
||||
pos.x = -3400.0f + x + l_HIO.mChildren[mClothType].field_0x3c * fx * cM_ssin(field_0x8 + x * l_HIO.mChildren[mClothType].field_0x38);
|
||||
pos.x = -1500.0f + 305.0f * x + HIO_CHILD.field_0x3c * fx * cM_ssin(field_0x8 + x * HIO_CHILD.field_0x38 + y * HIO_CHILD.field_0x3a);
|
||||
pos.y = -1500.0f + 300.0f * y + HIO_CHILD.field_0x40 * fx * cM_scos(field_0x8 + x * HIO_CHILD.field_0x38 + y * HIO_CHILD.field_0x3a);
|
||||
pos.x = -3400.0f + x + HIO_CHILD.field_0x3c * fx * cM_ssin(field_0x8 + x * HIO_CHILD.field_0x38);
|
||||
|
||||
cLib_addCalcPos2(&field_0x48[mCurArr][x + y * INNER_SIZE], pos, 0.5f, l_HIO.mChildren[mClothType].field_0x54);
|
||||
cLib_addCalcPos2(&field_0x48[mCurArr][x + y * INNER_SIZE], pos, 0.5f, HIO_CHILD.field_0x54);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -764,15 +756,11 @@ void dMCloth_c::cloth_move_simple() {
|
||||
}
|
||||
|
||||
cXyz pos;
|
||||
pos.x = -1500.0f + 305.0f * x +
|
||||
l_HIO.mChildren[mClothType].field_0x3c * fx *
|
||||
cM_ssin(field_0x8 + x * l_HIO.mChildren[mClothType].field_0x38 + y * l_HIO.mChildren[mClothType].field_0x3a);
|
||||
pos.y = -1500.0f + 300.0f * y +
|
||||
l_HIO.mChildren[mClothType].field_0x40 * fx *
|
||||
cM_scos(field_0x8 + x * l_HIO.mChildren[mClothType].field_0x38 + y * l_HIO.mChildren[mClothType].field_0x3a);
|
||||
pos.x = -3400.0f + x + l_HIO.mChildren[mClothType].field_0x3c * fx * cM_ssin(field_0x8 + y * l_HIO.mChildren[mClothType].field_0x3a);
|
||||
pos.x = -1500.0f + 305.0f * x + HIO_CHILD.field_0x3c * fx * cM_ssin(field_0x8 + x * HIO_CHILD.field_0x38 + y * HIO_CHILD.field_0x3a);
|
||||
pos.y = -1500.0f + 300.0f * y + HIO_CHILD.field_0x40 * fx * cM_scos(field_0x8 + x * HIO_CHILD.field_0x38 + y * HIO_CHILD.field_0x3a);
|
||||
pos.x = -3400.0f + x + HIO_CHILD.field_0x3c * fx * cM_ssin(field_0x8 + y * HIO_CHILD.field_0x3a);
|
||||
|
||||
cLib_addCalcPos2(&getPos()[x + y * INNER_SIZE], pos, 0.5f, l_HIO.mChildren[mClothType].field_0x54);
|
||||
cLib_addCalcPos2(&getPos()[x + y * INNER_SIZE], pos, 0.5f, HIO_CHILD.field_0x54);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -797,7 +785,7 @@ void dMCloth_c::cloth_move() {
|
||||
switch (mClothType) {
|
||||
case 0:
|
||||
case 2: {
|
||||
if (field_0xa < l_HIO.mChildren[mClothType].field_0x34) {
|
||||
if (field_0xa < HIO_CHILD.field_0x34) {
|
||||
cloth_move_sin();
|
||||
field_0xa++;
|
||||
} else {
|
||||
@@ -805,7 +793,7 @@ void dMCloth_c::cloth_move() {
|
||||
}
|
||||
} break;
|
||||
case 1: {
|
||||
if (field_0xa < l_HIO.mChildren[mClothType].field_0x34) {
|
||||
if (field_0xa < HIO_CHILD.field_0x34) {
|
||||
field_0xa++;
|
||||
}
|
||||
cloth_move_sin();
|
||||
|
||||
Reference in New Issue
Block a user