mirror of
https://github.com/zeldaret/tp
synced 2026-06-02 02:00:30 -04:00
Improve various partially matched TUs (#2526)
This commit is contained in:
+86
-82
@@ -11,6 +11,7 @@
|
||||
#include "d/actor/d_a_obj_pillar.h"
|
||||
#include "d/actor/d_a_player.h"
|
||||
#include "d/d_cc_uty.h"
|
||||
#include "d/d_s_play.h"
|
||||
|
||||
/* 80CE03CC-80CE03F0 0000EC 0024+00 1/1 0/0 0/0 .text __ct__14daObj_So_HIO_cFv */
|
||||
daObj_So_HIO_c::daObj_So_HIO_c() {
|
||||
@@ -112,26 +113,24 @@ static void so_hasira(obj_so_class* i_this) {
|
||||
|
||||
/* 80CE0744-80CE0C54 000464 0510+00 4/4 0/0 0/0 .text part_set__FP12obj_so_classSc */
|
||||
static void part_set(obj_so_class* i_this, s8 param_2) {
|
||||
// NONMATCHING
|
||||
fopAc_ac_c* a_this = &i_this->actor;
|
||||
cXyz sp48, sp54;
|
||||
|
||||
mDoMtx_stack_c::transS(a_this->current.pos.x, a_this->current.pos.y, a_this->current.pos.z);
|
||||
mDoMtx_stack_c::YrotM(a_this->shape_angle.y);
|
||||
mDoMtx_stack_c::XrotM(a_this->shape_angle.x);
|
||||
mDoMtx_stack_c::YrotM((s16)a_this->shape_angle.y);
|
||||
mDoMtx_stack_c::XrotM((s16)a_this->shape_angle.x);
|
||||
|
||||
f32 scale = a_this->scale.x;
|
||||
mDoMtx_stack_c::scaleM(scale, scale, scale);
|
||||
|
||||
int sVar8, sVar7, sVar6, sVar5, sVar4 = 0;
|
||||
for (int i = 0; i < 26; i++) {
|
||||
mDoMtx_stack_c::push();
|
||||
if (i < 2) {
|
||||
sp48.x = 0.0f;
|
||||
if (i == 0) {
|
||||
sp48.y = 210.0f;
|
||||
sp48.y = VREG_F(6) + 210.0f;
|
||||
} else {
|
||||
sp48.y = 0.0f;
|
||||
sp48.y = VREG_F(7);
|
||||
}
|
||||
sp48.z = 0.0f;
|
||||
mDoMtx_stack_c::multVec(&sp48, &i_this->field_0x618[i]);
|
||||
@@ -141,7 +140,7 @@ static void part_set(obj_so_class* i_this, s8 param_2) {
|
||||
i_this->field_0xa28[i].x = a_this->shape_angle.x + (int)cM_rndFX(4000.0f);
|
||||
}
|
||||
} else if (i < 10) {
|
||||
mDoMtx_stack_c::YrotM(sVar4 + -0xF18);
|
||||
mDoMtx_stack_c::YrotM(8092 * i - 0xF18);
|
||||
sp48.x = 0.0f;
|
||||
sp48.y = 110.0f;
|
||||
sp48.z = 90.0f;
|
||||
@@ -155,14 +154,13 @@ static void part_set(obj_so_class* i_this, s8 param_2) {
|
||||
i_this->field_0x618[i].y += 60.0f;
|
||||
}
|
||||
} else {
|
||||
mDoMtx_stack_c::YrotM(sVar4 + 0x4718);
|
||||
mDoMtx_stack_c::YrotM(8092 * i + 18200);
|
||||
sp48.x = 0.0f;
|
||||
if (i <= 17) {
|
||||
scale = 205.0f;
|
||||
sp48.y = 205.0f;
|
||||
} else {
|
||||
scale = -5.0f;
|
||||
sp48.y = -5.0f;
|
||||
}
|
||||
sp48.y = scale;
|
||||
if ((i & 1) != 0) {
|
||||
sp48.y += 8.0f;
|
||||
}
|
||||
@@ -171,7 +169,7 @@ static void part_set(obj_so_class* i_this, s8 param_2) {
|
||||
mDoMtx_stack_c::multVec(&sp48, &i_this->field_0x618[i]);
|
||||
i_this->field_0xa28[i].y = a_this->shape_angle.y;
|
||||
i_this->field_0xa28[i].x = a_this->shape_angle.x;
|
||||
i_this->field_0xb60[i] = sVar4 + 0x4CE;
|
||||
i_this->field_0xb60[i] = 8092 * i + 0x4CE;
|
||||
i_this->field_0x7b8[i].set(1.0f, 0.8f, 1.0f);
|
||||
}
|
||||
|
||||
@@ -183,9 +181,9 @@ static void part_set(obj_so_class* i_this, s8 param_2) {
|
||||
if (i_this->field_0x570 != 1) {
|
||||
if (fopAcM_GetRoomNo(a_this) == 4) {
|
||||
if (i < 2) {
|
||||
cMtx_YrotS(*calc_mtx, sVar5 + 0x1EFF);
|
||||
cMtx_YrotS(*calc_mtx, 0x2000 * i + 0x1EFF);
|
||||
} else {
|
||||
cMtx_YrotS(*calc_mtx, sVar6 + 0x253B);
|
||||
cMtx_YrotS(*calc_mtx, 500 * i + 0x253B);
|
||||
i_this->field_0xbfc[i] = cM_rndFX(6000.0f);
|
||||
}
|
||||
|
||||
@@ -193,12 +191,12 @@ static void part_set(obj_so_class* i_this, s8 param_2) {
|
||||
sp48.z = cM_rndFX(5.0f) + 20.0f;
|
||||
} else {
|
||||
if (i < 2) {
|
||||
cMtx_YrotS(*calc_mtx, sVar7 + (u16)-0x2000);
|
||||
cMtx_YrotS(*calc_mtx, 0x8000 * i + (u16)-0x2000);
|
||||
} else if (i < 10) {
|
||||
cMtx_YrotS(*calc_mtx, sVar5 + 0xAAA);
|
||||
cMtx_YrotS(*calc_mtx, 0x2000 * i + 0xAAA);
|
||||
i_this->field_0xbfc[i] = cM_rndFX(4000.0f);
|
||||
} else {
|
||||
cMtx_YrotS(*calc_mtx, sVar8 + 0x1554);
|
||||
cMtx_YrotS(*calc_mtx, 0x1000 * i + 0x1554);
|
||||
i_this->field_0xbfc[i] = cM_rndFX(6000.0f);
|
||||
}
|
||||
|
||||
@@ -207,7 +205,7 @@ static void part_set(obj_so_class* i_this, s8 param_2) {
|
||||
}
|
||||
} else {
|
||||
if (i < 2) {
|
||||
cMtx_YrotS(*calc_mtx, sVar7 + 0x6000);
|
||||
cMtx_YrotS(*calc_mtx, 0x8000 * i + 0x6000);
|
||||
} else {
|
||||
cMtx_YrotS(*calc_mtx, cM_rndFX(32768.0f));
|
||||
i_this->field_0xbfc[i] = cM_rndFX(1000.0f);
|
||||
@@ -225,12 +223,6 @@ static void part_set(obj_so_class* i_this, s8 param_2) {
|
||||
MtxPosition(&sp48, &i_this->field_0x8f0[i]);
|
||||
i_this->field_0xbc8[i] = cM_rndFX(32768.0f);
|
||||
}
|
||||
|
||||
sVar8 += 0x1000;
|
||||
sVar7 += -0x8000;
|
||||
sVar6 += 500;
|
||||
sVar5 += 0x2000;
|
||||
sVar4 += 0x1F9C;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -323,7 +315,6 @@ static void so_break(obj_so_class* i_this) {
|
||||
|
||||
/* 80CE1084-80CE12D8 000DA4 0254+00 1/1 0/0 0/0 .text so_hang__FP12obj_so_class */
|
||||
static void so_hang(obj_so_class* i_this) {
|
||||
// NONMATCHING
|
||||
fopAc_ac_c* a_this = &i_this->actor;
|
||||
fopAc_ac_c* actor = fopAcM_SearchByID(i_this->field_0x1b94);
|
||||
|
||||
@@ -364,6 +355,9 @@ static void so_hang(obj_so_class* i_this) {
|
||||
dComIfGp_particle_levelEmitterOnEventMove(i_this->field_0x1b9c);
|
||||
dComIfGp_getVibration().StartShock(5, 1, cXyz(0.0f, 1.0f, 0.0f));
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -427,9 +421,12 @@ static void part_move(obj_so_class* i_this) {
|
||||
0x82AD,
|
||||
};
|
||||
|
||||
fopAc_ac_c* a_this = &i_this->actor;
|
||||
fopAc_ac_c* player = dComIfGp_getPlayer(0);
|
||||
fopAc_ac_c* a_this = (fopAc_ac_c*)&i_this->actor;
|
||||
cXyz spec, spf8, sp104;
|
||||
s16 tempCos;
|
||||
s16 iVar16 = 0;
|
||||
s16 iVar17 = 0;
|
||||
csXyz cStack_13c(0, 0, 0);
|
||||
dBgS_ObjGndChk cStack_e0;
|
||||
f32 fVar1;
|
||||
@@ -439,11 +436,12 @@ static void part_move(obj_so_class* i_this) {
|
||||
if (i_this->field_0x5fc[i] == 1) {
|
||||
if (i < 2) {
|
||||
if (i_this->field_0xc30[i] != 0) {
|
||||
cLib_addCalcAngleS2(&i_this->field_0xa28[i].x, 0, 2, 300);
|
||||
i_this->field_0xb94[i] += (s16)(cM_scos(i_this->field_0xa28[i].x) * 12000.0f);
|
||||
cLib_addCalcAngleS2(&i_this->field_0xa28[i].x, NREG_S(7), 2, NREG_S(5) + 300);
|
||||
tempCos = cM_scos(i_this->field_0xa28[i].x) * 12000.0f;
|
||||
i_this->field_0xb94[i] += tempCos;
|
||||
}
|
||||
|
||||
fVar1 = fabsf(70.0f * cM_ssin(i_this->field_0xa28[i].x)) + 5.0f;
|
||||
fVar1 = fabsf((BREG_F(0) + 70.0f) * cM_ssin(i_this->field_0xa28[i].x)) + 5.0f;
|
||||
} else if (i < 10) {
|
||||
cLib_addCalcAngleS2(&i_this->field_0xa28[i].y, i_this->field_0xbc8[i], 1, 0x800);
|
||||
if (i_this->field_0xc30[i] == 0) {
|
||||
@@ -452,8 +450,9 @@ static void part_move(obj_so_class* i_this) {
|
||||
cLib_addCalcAngleS2(&i_this->field_0xa28[i].x, -0x4000, 1, 0xC00);
|
||||
}
|
||||
|
||||
fVar1 = fabsf(110.0f * cM_ssin(i_this->field_0xa28[i].x)) + 5.0f;
|
||||
fVar1 = fabsf((BREG_F(2) + 110.0f) * cM_scos(i_this->field_0xa28[i].x)) + 5.0f;
|
||||
} else {
|
||||
fVar1 = 5.0f;
|
||||
cLib_addCalcAngleS2(&i_this->field_0xa28[i].y, i_this->field_0xbc8[i], 1, 0x800);
|
||||
if (i_this->field_0xc30[i] == 0) {
|
||||
i_this->field_0xa28[i].x += i_this->field_0xbfc[i];
|
||||
@@ -462,7 +461,7 @@ static void part_move(obj_so_class* i_this) {
|
||||
}
|
||||
|
||||
cLib_addCalcAngleS2(&i_this->field_0xb60[i], 0, 1, 0xC00);
|
||||
fVar1 = fabsf(40.0f * cM_ssin(i_this->field_0xa28[i].x)) + 5.0f;
|
||||
fVar1 = fabsf((BREG_F(3) + 40.0f) * cM_ssin(i_this->field_0xa28[i].x)) + 5.0f;
|
||||
}
|
||||
|
||||
i_this->field_0x618[i] += i_this->field_0x8f0[i];
|
||||
@@ -488,8 +487,8 @@ static void part_move(obj_so_class* i_this) {
|
||||
i_this->field_0x618[i].y = a_this->home.pos.y + fVar1;
|
||||
if (i_this->field_0x8f0[i].y < 0.0f && i_this->field_0xc30[i] < 3) {
|
||||
if (i_this->field_0xc30[i] == 0) {
|
||||
fopAcM_effSmokeSet1(&i_this->field_0xc4c[i], &i_this->field_0xcb4[i], &i_this->field_0x618[i],
|
||||
&cStack_13c, 1.0f, &a_this->tevStr, 0);
|
||||
fopAcM_effSmokeSet2(&i_this->field_0xc4c[i], &i_this->field_0xcb4[i], &i_this->field_0x618[i],
|
||||
&cStack_13c, TREG_F(19) + 1.0f, &a_this->tevStr);
|
||||
dComIfGp_particle_levelEmitterOnEventMove(i_this->field_0xc4c[i]);
|
||||
dComIfGp_particle_levelEmitterOnEventMove(i_this->field_0xcb4[i]);
|
||||
|
||||
@@ -531,7 +530,7 @@ static void part_move(obj_so_class* i_this) {
|
||||
|
||||
i_this->field_0x8f0[i].y = 5.0f;
|
||||
i_this->field_0xc30[i] = 1;
|
||||
i_this->field_0xa28[i].x = cM_rndFX(500.0f) + 1024.0f;
|
||||
i_this->field_0xa28[i].x = cM_rndFX(500.0f) + -1024.0f;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -543,11 +542,11 @@ static void part_move(obj_so_class* i_this) {
|
||||
spec.x = i_this->field_0x618[i].x - i_this->field_0x618[j].x;
|
||||
spec.z = i_this->field_0x618[i].z - i_this->field_0x618[j].z;
|
||||
|
||||
if (JMAFastSqrt(spec.x * spec.x + spec.z * spec.z) < 180.0f) {
|
||||
if (JMAFastSqrt(spec.x * spec.x + spec.z * spec.z) < BREG_F(9) + 180.0f) {
|
||||
cMtx_YrotS(*calc_mtx, cM_atan2s(spec.x, spec.z));
|
||||
spec.x = 0.0f;
|
||||
spec.y = 0.0f;
|
||||
spec.z = 180.0f;
|
||||
spec.z = BREG_F(9) + 180.0f;
|
||||
MtxPosition(&spec, &spf8);
|
||||
i_this->field_0x618[i].x = i_this->field_0x618[j].x + spf8.x;
|
||||
i_this->field_0x618[i].z = i_this->field_0x618[j].z + spf8.z;
|
||||
@@ -556,16 +555,16 @@ static void part_move(obj_so_class* i_this) {
|
||||
}
|
||||
|
||||
mDoMtx_stack_c::transS(i_this->field_0x618[i].x, i_this->field_0x618[i].y + i_this->field_0x750[i], i_this->field_0x618[i].z);
|
||||
mDoMtx_stack_c::XrotM(i_this->field_0xdc2);
|
||||
mDoMtx_stack_c::XrotM((s16)i_this->field_0xdc2);
|
||||
|
||||
if (i == 0 || (i >= 10 && i <= 17)) {
|
||||
mDoMtx_stack_c::YrotM(i_this->field_0xdb8);
|
||||
mDoMtx_stack_c::YrotM((s16)i_this->field_0xdb8);
|
||||
mDoMtx_stack_c::XrotM(i_this->field_0xdb6);
|
||||
mDoMtx_stack_c::YrotM(-i_this->field_0xdb8);
|
||||
}
|
||||
|
||||
if (i == 0) {
|
||||
mDoMtx_stack_c::YrotM(i_this->field_0xb94[i]);
|
||||
mDoMtx_stack_c::YrotM((s16)i_this->field_0xb94[i]);
|
||||
mDoMtx_stack_c::XrotM(i_this->field_0xdb6);
|
||||
} else if (i == 1) {
|
||||
mDoMtx_stack_c::YrotM(-i_this->field_0xb94[i]);
|
||||
@@ -591,9 +590,9 @@ static void part_move(obj_so_class* i_this) {
|
||||
if (i >= 2 && i < 10 && i_this->field_0x5fc[i] == 2) {
|
||||
sp104 = i_this->field_0x618[i];
|
||||
if (i_this->field_0x1a98[i - 2] < 2) {
|
||||
sp104.y += -80.0f;
|
||||
i_this->field_0x10b8[i - 2].SetR(20.0f);
|
||||
i_this->field_0x10b8[i - 2].SetH(165.0f);
|
||||
sp104.y += XREG_F(5) + -80.0f;
|
||||
i_this->field_0x10b8[i - 2].SetR(XREG_F(6) + 20.0f);
|
||||
i_this->field_0x10b8[i - 2].SetH(XREG_F(7) + 165.0f);
|
||||
if (i_this->field_0x1056 == 0) {
|
||||
if (i_this->field_0x10b8[i - 2].ChkTgHit() != 0) {
|
||||
i_this->mAtInfo.mpCollider = i_this->field_0x10b8[i - 2].GetTgHitObj();
|
||||
@@ -619,9 +618,9 @@ static void part_move(obj_so_class* i_this) {
|
||||
i_this->field_0x1ac0[i - 2] = i_this->field_0x618[i];
|
||||
if (i_this->field_0x1a98[i - 2] >= 2) {
|
||||
i_this->field_0x1a98[i - 2] = 2;
|
||||
i_this->field_0x1ac0[i - 2].y += -90.0f;
|
||||
i_this->field_0x1ac0[i - 2].y += AREG_F(9) + -90.0f;
|
||||
} else {
|
||||
i_this->field_0x1ac0[i - 2].y += -87.0f;
|
||||
i_this->field_0x1ac0[i - 2].y += VREG_F(9) + -87.0f;
|
||||
}
|
||||
|
||||
if (i_this->field_0x1a98[i - 2] == 2) {
|
||||
@@ -643,7 +642,7 @@ static void part_move(obj_so_class* i_this) {
|
||||
i_this->field_0x1b30[i - 2] = cM_rndFX(200.0f);
|
||||
}
|
||||
|
||||
cXyz sp110(0.3f, 0.3f, 0.3f);
|
||||
cXyz sp110(AREG_F(19) + 0.3f, AREG_F(19) + 0.3f, AREG_F(19) + 0.3f);
|
||||
for (int j = 0; j < 3; j++) {
|
||||
dComIfGp_particle_set(e_id[j], &i_this->field_0x618[i], &a_this->shape_angle, &sp110);
|
||||
}
|
||||
@@ -657,11 +656,12 @@ static void part_move(obj_so_class* i_this) {
|
||||
if (i_this->field_0x1a98[i - 2] == 2) {
|
||||
spec = i_this->field_0x618[i] - player->current.pos;
|
||||
spec.y = 0.0f;
|
||||
if (spec.abs() < 50.0f) {
|
||||
f32 var_f30 = spec.abs();
|
||||
if (var_f30 < 50.0f) {
|
||||
cMtx_YrotS(*calc_mtx, cM_atan2s(spec.x, spec.z));
|
||||
spec.x = 0.0f;
|
||||
spec.y = 0.0f;
|
||||
spec.z = (50.0f - fVar1) * 100.0f;
|
||||
spec.z = (50.0f - var_f30) * (JREG_F(0) + 100.0f);
|
||||
MtxPosition(&spec, &spf8);
|
||||
cLib_addCalcAngleS2(&i_this->field_0xa28[i].x, spf8.z, 2, 0x400);
|
||||
cLib_addCalcAngleS2(&i_this->field_0xa28[i].z, -spf8.x, 2, 0x400);
|
||||
@@ -671,17 +671,17 @@ static void part_move(obj_so_class* i_this) {
|
||||
i_this->field_0x1b40[i - 2]--;
|
||||
}
|
||||
|
||||
int iVar4 = (i_this->field_0x1b40[i - 2] * 700) * cM_ssin(i_this->field_0xdac * 0x1300);
|
||||
u32 uVar8 = (i_this->field_0x1b40[i - 2] * 700) * cM_ssin(i_this->field_0xdac * 0x1800);
|
||||
mDoMtx_stack_c::YrotM(uVar8);
|
||||
mDoMtx_stack_c::XrotM(iVar4);
|
||||
mDoMtx_stack_c::scaleM(1.0f, 0.45f, 1.0f);
|
||||
mDoMtx_stack_c::transM(0.0f, -20.0f, 0.0f);
|
||||
i_this->field_0x750[i] = 80.0f;
|
||||
iVar16 = (i_this->field_0x1b40[i - 2] * 700) * cM_ssin(i_this->field_0xdac * 0x1300);
|
||||
iVar17 = (i_this->field_0x1b40[i - 2] * 700) * cM_ssin(i_this->field_0xdac * 0x1800);
|
||||
mDoMtx_stack_c::YrotM(iVar17);
|
||||
mDoMtx_stack_c::XrotM(iVar16);
|
||||
mDoMtx_stack_c::scaleM(1.0f, AREG_F(6) + 0.45f, 1.0f);
|
||||
mDoMtx_stack_c::transM(0.0f, AREG_F(8) + -20.0f, 0.0f);
|
||||
i_this->field_0x750[i] = AREG_F(7) + 80.0f;
|
||||
} else {
|
||||
mDoMtx_stack_c::scaleM(1.0f, 0.5f, 1.0f);
|
||||
mDoMtx_stack_c::transM(0.0f, -20.0f, 0.0f);
|
||||
i_this->field_0x750[i] = 77.0f;
|
||||
mDoMtx_stack_c::scaleM(1.0f, VREG_F(6) + 0.5f, 1.0f);
|
||||
mDoMtx_stack_c::transM(0.0f, VREG_F(8) + -20.0f, 0.0f);
|
||||
i_this->field_0x750[i] = VREG_F(7) + 77.0f;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -692,8 +692,8 @@ static void part_move(obj_so_class* i_this) {
|
||||
i_this->field_0x594[i]->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
|
||||
if (i <= 1 && fopAcM_GetRoomNo(a_this) == 2 && i_this->mBgW[i] != NULL && (i_this->field_0xc30[i] != 0 || i == 1)) {
|
||||
mDoMtx_stack_c::transM(0.0f, -30.0f, 0.0f);
|
||||
mDoMtx_stack_c::scaleM(1.0f, 8.0f, 1.0f);
|
||||
mDoMtx_stack_c::transM(0.0f, KREG_F(6) + -30.0f, 0.0f);
|
||||
mDoMtx_stack_c::scaleM(1.0f, KREG_F(7) + 8.0f, 1.0f);
|
||||
MTXCopy(mDoMtx_stack_c::get(), i_this->mBgMtx[i]);
|
||||
i_this->mBgW[i]->Move();
|
||||
}
|
||||
@@ -701,15 +701,16 @@ static void part_move(obj_so_class* i_this) {
|
||||
}
|
||||
|
||||
for (int i = 0; i < 8; i++) {
|
||||
if (i_this->field_0x1a98[i - 2] != 0) {
|
||||
if (i_this->field_0x1a98[i - 2] == 2) {
|
||||
if (i_this->field_0x1a98[i] != 0) {
|
||||
if (i_this->field_0x1a98[i] == 2) {
|
||||
spec = i_this->field_0x618[i + 2] - player->current.pos;
|
||||
spec.y = 0.0f;
|
||||
if (spec.abs() < 50.0f) {
|
||||
f32 var_f29 = spec.abs();
|
||||
if (var_f29 < 50.0f) {
|
||||
cMtx_YrotS(*calc_mtx, cM_atan2s(spec.x, spec.z));
|
||||
spec.x = 0.0f;
|
||||
spec.y = 0.0f;
|
||||
spec.z = (50.0f - fVar1) * 100.0f;
|
||||
spec.z = (50.0f - var_f29) * (JREG_F(1) + 100.0f);
|
||||
MtxPosition(&spec, &spf8);
|
||||
cLib_addCalcAngleS2(&i_this->field_0x1b20[i], spec.z, 2, 0x400);
|
||||
cLib_addCalcAngleS2(&i_this->field_0x1b30[i], -spec.x, 2, 0x400);
|
||||
@@ -722,18 +723,18 @@ static void part_move(obj_so_class* i_this) {
|
||||
i_this->field_0x1b50[i]--;
|
||||
}
|
||||
|
||||
int iVar16 = (i_this->field_0x1b50[i] * 700) + cM_ssin(i_this->field_0xdac * 0x1500);
|
||||
int iVar17 = (i_this->field_0x1b50[i] * 700) + cM_ssin(i_this->field_0xdac * 0x1200);
|
||||
iVar16 = (i_this->field_0x1b50[i] * 700) * cM_ssin(i_this->field_0xdac * 0x1500);
|
||||
iVar17 = (i_this->field_0x1b50[i] * 700) * cM_ssin(i_this->field_0xdac * 0x1200);
|
||||
mDoMtx_stack_c::XrotM(i_this->field_0x1b20[i] + iVar16);
|
||||
mDoMtx_stack_c::ZrotM(i_this->field_0x1b30[i] + iVar17 + -0x8000);
|
||||
mDoMtx_stack_c::ZrotM(i_this->field_0x1b30[i] + iVar17 + 0x8000);
|
||||
mDoMtx_stack_c::scaleM(i_this->field_0x7b8[i + 2].x, i_this->field_0x7b8[i + 2].y, i_this->field_0x7b8[i + 2].z);
|
||||
|
||||
if (i_this->field_0x1a98[i - 2] == 2) {
|
||||
mDoMtx_stack_c::scaleM(1.0f, 0.45f, 1.0f);
|
||||
mDoMtx_stack_c::transM(0.0f, -30.0f, 0.0f);
|
||||
if (i_this->field_0x1a98[i] == 2) {
|
||||
mDoMtx_stack_c::scaleM(1.0f, AREG_F(6) + 0.45f, 1.0f);
|
||||
mDoMtx_stack_c::transM(0.0f, AREG_F(10) + -30.0f, 0.0f);
|
||||
} else {
|
||||
mDoMtx_stack_c::scaleM(1.0f, 0.5f, 1.0f);
|
||||
mDoMtx_stack_c::transM(0.0f, -30.0f, 0.0f);
|
||||
mDoMtx_stack_c::scaleM(1.0f, VREG_F(6) + 0.5f, 1.0f);
|
||||
mDoMtx_stack_c::transM(0.0f, VREG_F(10) + -30.0f, 0.0f);
|
||||
}
|
||||
|
||||
i_this->field_0x1aa0[i]->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
@@ -741,16 +742,17 @@ static void part_move(obj_so_class* i_this) {
|
||||
}
|
||||
|
||||
if (i_this->field_0x1054 == 0) {
|
||||
s8 sVar2 = 0;
|
||||
s8 sVar1 = 0;
|
||||
u32 uVar1 = 0;
|
||||
u32 uVar2 = 0;
|
||||
for (int i = 0; i < 8; i++) {
|
||||
if (i_this->field_0x1a98[i] == 2) {
|
||||
s8 sVar2 = 0;
|
||||
sVar2 = 0;
|
||||
for (int j = 1; j < 8; j++) {
|
||||
if (i_this->field_0x1a98[j] == 2) {
|
||||
if (i_this->field_0x1a98[(i + j) & 7] == 2) {
|
||||
sVar2++;
|
||||
uVar1 &= 7;
|
||||
uVar1 = (i + j) & 7;
|
||||
} else {
|
||||
sVar2 = 0;
|
||||
}
|
||||
@@ -760,6 +762,8 @@ static void part_move(obj_so_class* i_this) {
|
||||
sVar1 = sVar2;
|
||||
uVar2 = uVar1;
|
||||
}
|
||||
} else {
|
||||
sVar2 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -777,7 +781,7 @@ static void part_move(obj_so_class* i_this) {
|
||||
|
||||
cXyz sp11c(i_this->field_0x618[uVar2 + 2] - a_this->current.pos);
|
||||
i_this->field_0xdbc = cM_atan2s(sp11c.x, sp11c.z);
|
||||
i_this->field_0xdba = sVar1 * 500;
|
||||
i_this->field_0xdba = sVar1 * (AREG_S(7) + 500);
|
||||
|
||||
if (sVar1 == 7) {
|
||||
part_set(i_this, 1);
|
||||
@@ -790,15 +794,15 @@ static void part_move(obj_so_class* i_this) {
|
||||
i_this->field_0x750[i + 2] = 0.0f;
|
||||
}
|
||||
|
||||
i_this->field_0xdba = 0;
|
||||
i_this->field_0xdb6 = 0;
|
||||
i_this->field_0xdbc = 0;
|
||||
i_this->field_0xdb8 = 0;
|
||||
i_this->field_0xdb8 = i_this->field_0xdbc = i_this->field_0xdb6 = i_this->field_0xdba = 0;
|
||||
|
||||
if (dStage_stagInfo_GetSTType(dComIfGp_getStage()->getStagInfo()) == 0) {
|
||||
dComIfGs_onSwitch(fopAcM_GetParam(a_this) >> 24, fopAcM_GetRoomNo(a_this));
|
||||
stage_stag_info_class* info = dComIfGp_getStage()->getStagInfo();
|
||||
if (dStage_stagInfo_GetSTType(info) == 0) {
|
||||
int sw = ((fopAcM_GetParam(a_this) & 0xff000000) >> 24);
|
||||
dComIfGs_onSwitch(sw, fopAcM_GetRoomNo(a_this));
|
||||
} else {
|
||||
dComIfGs_onSwitch(fopAcM_GetParam(a_this) >> 16, fopAcM_GetRoomNo(a_this));
|
||||
int sw = (fopAcM_GetParam(a_this) & 0xff0000) >> 16;
|
||||
dComIfGs_onSwitch(sw, fopAcM_GetRoomNo(a_this));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user