Fix HsfanimStruct01 union shenanigans (#548)

This commit is contained in:
mrshigure 2025-01-26 15:26:13 -08:00 committed by GitHub
parent 6d3de7672c
commit 32fdc38925
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
29 changed files with 193 additions and 196 deletions

View file

@ -11,10 +11,7 @@ typedef struct particle_data ParticleData;
typedef void (*ParticleHook)(ModelData *model, ParticleData *particle, Mtx matrix); typedef void (*ParticleHook)(ModelData *model, ParticleData *particle, Mtx matrix);
typedef struct { typedef struct {
/* 0x00 */ union { /* 0x00 */ s16 unk00;
u16 unk00;
s16 unk00_s16;
};
/* 0x02 */ s16 unk02; /* 0x02 */ s16 unk02;
/* 0x04 */ s16 unk04; /* 0x04 */ s16 unk04;
/* 0x06 */ s16 unk06; /* 0x06 */ s16 unk06;

View file

@ -6,7 +6,7 @@
typedef struct model_data ModelData; typedef struct model_data ModelData;
typedef struct { typedef struct hsfdraw_struct_01 {
/* 0x00 */ u16 unk00; /* 0x00 */ u16 unk00;
/* 0x02 */ s16 unk02; /* 0x02 */ s16 unk02;
/* 0x04 */ s16 unk04; /* 0x04 */ s16 unk04;

View file

@ -99,7 +99,7 @@ typedef struct hsf_palette {
typedef struct hsf_attribute { typedef struct hsf_attribute {
char *name; char *name;
void *unk04; struct hsfdraw_struct_01 *unk04;
u8 unk8[4]; u8 unk8[4];
float unk0C; float unk0C;
u8 unk10[4]; u8 unk10[4];

View file

@ -449,15 +449,15 @@ void fn_1_A37C(ModelData *model, ParticleData *particle, Mtx matrix)
else { else {
temp_r31 = particle->unk_48; temp_r31 = particle->unk_48;
for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) {
if (temp_r31->unk00_s16) { if (temp_r31->unk00) {
temp_r31->unk34.x += temp_r31->unk08.x; temp_r31->unk34.x += temp_r31->unk08.x;
temp_r31->unk34.y += temp_r31->unk08.y; temp_r31->unk34.y += temp_r31->unk08.y;
temp_r31->unk34.z += temp_r31->unk08.z; temp_r31->unk34.z += temp_r31->unk08.z;
temp_r31->unk2C += temp_r31->unk14.x; temp_r31->unk2C += temp_r31->unk14.x;
temp_r31->unk14.y -= temp_r31->unk14.z; temp_r31->unk14.y -= temp_r31->unk14.z;
temp_r31->unk40.a = temp_r31->unk14.y; temp_r31->unk40.a = temp_r31->unk14.y;
if (--temp_r31->unk00_s16 == 0) { if (--temp_r31->unk00 == 0) {
temp_r31->unk00_s16 = 0; temp_r31->unk00 = 0;
temp_r31->unk2C = 0; temp_r31->unk2C = 0;
temp_r31->unk40.a = 0; temp_r31->unk40.a = 0;
} }
@ -477,10 +477,10 @@ void fn_1_A4E8(s32 arg0, Vec *arg1, u32 arg2)
if (temp_r30->unk_00) { if (temp_r30->unk_00) {
temp_r31 = temp_r30->unk_48; temp_r31 = temp_r30->unk_48;
for (temp_r29 = 0; temp_r29 < temp_r30->unk_30; temp_r29++, temp_r31++) { for (temp_r29 = 0; temp_r29 < temp_r30->unk_30; temp_r29++, temp_r31++) {
if (temp_r31->unk00_s16 != 0) { if (temp_r31->unk00 != 0) {
continue; continue;
} }
temp_r31->unk00_s16 = 60.0f * (((1.5f / 1000.0f) * frandmod(1000)) + 1.0f); temp_r31->unk00 = 60.0f * (((1.5f / 1000.0f) * frandmod(1000)) + 1.0f);
temp_r31->unk34.x = arg1->x; temp_r31->unk34.x = arg1->x;
temp_r31->unk34.y = 12000; temp_r31->unk34.y = 12000;
temp_r31->unk34.z = arg1->z; temp_r31->unk34.z = arg1->z;
@ -491,7 +491,7 @@ void fn_1_A4E8(s32 arg0, Vec *arg1, u32 arg2)
temp_r31->unk2C = 10; temp_r31->unk2C = 10;
temp_r31->unk40.a = frandmod(127) + 64; temp_r31->unk40.a = frandmod(127) + 64;
temp_r31->unk14.y = temp_r31->unk40.a; temp_r31->unk14.y = temp_r31->unk40.a;
temp_r31->unk14.z = temp_r31->unk14.y * (1.0f / temp_r31->unk00_s16); temp_r31->unk14.z = temp_r31->unk14.y * (1.0f / temp_r31->unk00);
temp_f31 = frandmod(1000) * (1.0f / 1000.0f); temp_f31 = frandmod(1000) * (1.0f / 1000.0f);
temp_r31->unk40.r = (temp_f31 * 55) + 200; temp_r31->unk40.r = (temp_f31 * 55) + 200;
temp_r31->unk40.g = (temp_f31 * 50) + 205; temp_r31->unk40.g = (temp_f31 * 50) + 205;
@ -549,7 +549,7 @@ void fn_1_A894(ModelData *model, ParticleData *particle, Mtx matrix)
else { else {
temp_r31 = particle->unk_48; temp_r31 = particle->unk_48;
for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) {
if (temp_r31->unk00_s16 == 0) { if (temp_r31->unk00 == 0) {
continue; continue;
} }
sp8.x = sind(CRot.y) * cosd(CRot.x); sp8.x = sind(CRot.y) * cosd(CRot.x);
@ -649,7 +649,7 @@ void fn_1_AFF4(ModelData *model, ParticleData *particle, Mtx matrix)
temp_r30 = particle->unk_48; temp_r30 = particle->unk_48;
temp_f30 = 0; temp_f30 = 0;
for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r30++) { for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r30++) {
if (temp_r30->unk00_s16 == 0) { if (temp_r30->unk00 == 0) {
continue; continue;
} }
temp_f30 += 1.0f / particle->unk_30; temp_f30 += 1.0f / particle->unk_30;
@ -751,15 +751,15 @@ void fn_1_BDE0(void)
Vec sp14; Vec sp14;
Vec sp8; Vec sp8;
temp_r31 = lbl_1_bss_A4[0]; temp_r31 = lbl_1_bss_A4[0];
temp_r31->unk00_s16++; temp_r31->unk00++;
if (temp_r31->unk00_s16 < 339.0f) { if (temp_r31->unk00 < 339.0f) {
return; return;
} }
if (temp_r31->unk00_s16 >= 600.0f) { if (temp_r31->unk00 >= 600.0f) {
temp_r31->unk00_s16 = 601; temp_r31->unk00 = 601;
for (temp_r30 = 0; temp_r30 < lbl_1_bss_A0; temp_r30++) { for (temp_r30 = 0; temp_r30 < lbl_1_bss_A0; temp_r30++) {
temp_r31 = lbl_1_bss_A4[temp_r30]; temp_r31 = lbl_1_bss_A4[temp_r30];
temp_r31->unk00_s16 = 0; temp_r31->unk00 = 0;
temp_r31->unk2C = 0; temp_r31->unk2C = 0;
temp_r31->unk40.a = 0; temp_r31->unk40.a = 0;
} }

View file

@ -1127,7 +1127,7 @@ void fn_1_5AB4(ModelData *model, ParticleData *particle, Mtx matrix)
} }
temp_r31 = particle->unk_48; temp_r31 = particle->unk_48;
for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) {
if (temp_r31->unk00_s16 == 0 || temp_r31->unk00_s16 != 1) { if (temp_r31->unk00 == 0 || temp_r31->unk00 != 1) {
continue; continue;
} }
temp_r31->unk02++; temp_r31->unk02++;
@ -1163,7 +1163,7 @@ void fn_1_5DCC(s32 arg0, Vec *arg1, u32 arg2)
if (temp_r29->unk_00 != 0) { if (temp_r29->unk_00 != 0) {
temp_r31 = temp_r29->unk_48; temp_r31 = temp_r29->unk_48;
for (temp_r28 = 0; temp_r28 < temp_r29->unk_30; temp_r28++, temp_r31++) { for (temp_r28 = 0; temp_r28 < temp_r29->unk_30; temp_r28++, temp_r31++) {
if (temp_r31->unk00_s16) { if (temp_r31->unk00) {
continue; continue;
} }
temp_r31->unk00 = 1; temp_r31->unk00 = 1;

View file

@ -1332,8 +1332,8 @@ void fn_1_15658(ModelData *model, ParticleData *particle, Mtx matrix)
} }
temp_r31->unk40.a = temp_r29; temp_r31->unk40.a = temp_r29;
} }
temp_r31->unk00_s16--; temp_r31->unk00--;
if (temp_r31->unk00_s16 <= 0) { if (temp_r31->unk00 <= 0) {
temp_r31->unk2C = 0; temp_r31->unk2C = 0;
} }
} }
@ -1501,8 +1501,8 @@ void fn_1_15D64(ModelData *model, ParticleData *particle, Mtx matrix)
} }
temp_r31->unk40.a = temp_r28; temp_r31->unk40.a = temp_r28;
} }
temp_r31->unk00_s16--; temp_r31->unk00--;
if (temp_r31->unk00_s16 <= 0) { if (temp_r31->unk00 <= 0) {
temp_r31->unk2C = 0; temp_r31->unk2C = 0;
} }
} }

View file

@ -413,7 +413,7 @@ s16 fn_1_D978(AnimData *arg0, s16 arg1, ParticleHook arg2)
} }
temp_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(HsfanimStruct01), MEMORY_DEFAULT_NUM); temp_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(HsfanimStruct01), MEMORY_DEFAULT_NUM);
temp_r29->unk_1C = temp_r30; temp_r29->unk_1C = temp_r30;
temp_r30->unk00_s16 = temp_r28; temp_r30->unk00 = temp_r28;
temp_r30->unk02 = 0; temp_r30->unk02 = 0;
for (temp_r31 = 0; temp_r31 < 32; temp_r31++) { for (temp_r31 = 0; temp_r31 < 32; temp_r31++) {
// Ugly expression to match store without new type // Ugly expression to match store without new type
@ -449,7 +449,7 @@ void fn_1_DA6C(ModelData *model, ParticleData *particle, Mtx matrix)
for (temp_r28 = 0; temp_r28 < 100; temp_r28++) { for (temp_r28 = 0; temp_r28 < 100; temp_r28++) {
temp_r31 = particle->unk_48; temp_r31 = particle->unk_48;
for (temp_r27 = 0; temp_r27 < particle->unk_30; temp_r27++, temp_r31++) { for (temp_r27 = 0; temp_r27 < particle->unk_30; temp_r27++, temp_r31++) {
if (!temp_r31->unk00_s16) { if (!temp_r31->unk00) {
break; break;
} }
} }
@ -472,13 +472,13 @@ void fn_1_DA6C(ModelData *model, ParticleData *particle, Mtx matrix)
temp_r31->unk2C = (0.01 * (frand() % 2000)) + 30.0; temp_r31->unk2C = (0.01 * (frand() % 2000)) + 30.0;
temp_r31->unk2C *= 0.1f; temp_r31->unk2C *= 0.1f;
temp_r31->unk40.a = 255; temp_r31->unk40.a = 255;
temp_r31->unk00_s16 = 30; temp_r31->unk00 = 30;
} }
break; break;
} }
temp_r31 = particle->unk_48; temp_r31 = particle->unk_48;
for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) {
if (temp_r31->unk00_s16 == 0) { if (temp_r31->unk00 == 0) {
continue; continue;
} }
temp_f30 = temp_r31->unk14.x; temp_f30 = temp_r31->unk14.x;
@ -493,7 +493,7 @@ void fn_1_DA6C(ModelData *model, ParticleData *particle, Mtx matrix)
temp_r31->unk08.y += 0.1f; temp_r31->unk08.y += 0.1f;
if (temp_r31->unk40.a < 2) { if (temp_r31->unk40.a < 2) {
temp_r31->unk40.a = 0; temp_r31->unk40.a = 0;
temp_r31->unk00_s16 = 0; temp_r31->unk00 = 0;
particle->unk_00++; particle->unk_00++;
} }
} }
@ -566,7 +566,7 @@ void fn_1_E310(ModelData *model, ParticleData *particle, Mtx matrix)
temp_f30 = 360.0f / particle->unk_30; temp_f30 = 360.0f / particle->unk_30;
for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) {
temp_r31->unk00_s16 = (s32)(360.0 * ((1.0 / 65536.0) * (float)fn_1_11670())); temp_r31->unk00 = (s32)(360.0 * ((1.0 / 65536.0) * (float)fn_1_11670()));
temp_r31->unk34.x = temp_r31->unk34.y = temp_r31->unk34.z = 0; temp_r31->unk34.x = temp_r31->unk34.y = temp_r31->unk34.z = 0;
temp_r26 = (temp_f30 * temp_r28) + (int)((temp_f30 * 0.5f) * ((1.0 / 32768.0) * (float)(fn_1_11670() - 32768))); temp_r26 = (temp_f30 * temp_r28) + (int)((temp_f30 * 0.5f) * ((1.0 / 32768.0) * (float)(fn_1_11670() - 32768)));
temp_r31->unk20 = temp_r26; temp_r31->unk20 = temp_r26;
@ -598,15 +598,15 @@ void fn_1_E310(ModelData *model, ParticleData *particle, Mtx matrix)
case 1: case 1:
temp_r31 = particle->unk_48; temp_r31 = particle->unk_48;
for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) {
temp_r31->unk00_s16 += 4; temp_r31->unk00 += 4;
if (temp_r31->unk00_s16 >= 360) { if (temp_r31->unk00 >= 360) {
temp_r31->unk00_s16 -= 360; temp_r31->unk00 -= 360;
} }
temp_r31->unk34.x = temp_r31->unk14.x; temp_r31->unk34.x = temp_r31->unk14.x;
temp_r31->unk34.y = temp_r31->unk14.y; temp_r31->unk34.y = temp_r31->unk14.y;
temp_r31->unk34.z = temp_r31->unk14.z; temp_r31->unk34.z = temp_r31->unk14.z;
temp_r31->unk30 = M_PI * (90 + (temp_r31->unk20 + temp_r29->unk_04.z)) / 180; temp_r31->unk30 = M_PI * (90 + (temp_r31->unk20 + temp_r29->unk_04.z)) / 180;
temp_r31->unk2C = temp_r31->unk24 * ((0.1f * sind(temp_r31->unk00_s16)) + 1.0); temp_r31->unk2C = temp_r31->unk24 * ((0.1f * sind(temp_r31->unk00)) + 1.0);
} }
break; break;
} }
@ -627,7 +627,7 @@ void fn_1_E9B4(ModelData *model, ParticleData *particle, Mtx matrix)
case 0: case 0:
temp_r31 = particle->unk_48; temp_r31 = particle->unk_48;
for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) {
temp_r31->unk00_s16 = fn_1_11670() % 360; temp_r31->unk00 = fn_1_11670() % 360;
temp_r31->unk34.x = temp_r31->unk34.y = temp_r31->unk34.z = 0; temp_r31->unk34.x = temp_r31->unk34.y = temp_r31->unk34.z = 0;
temp_r27 = fn_1_11670() % 360; temp_r27 = fn_1_11670() % 360;
temp_r31->unk20 = temp_r27; temp_r31->unk20 = temp_r27;
@ -653,14 +653,14 @@ void fn_1_E9B4(ModelData *model, ParticleData *particle, Mtx matrix)
case 1: case 1:
temp_r31 = particle->unk_48; temp_r31 = particle->unk_48;
for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) {
temp_r31->unk00_s16 += 2; temp_r31->unk00 += 2;
if (temp_r31->unk00_s16 >= 360) { if (temp_r31->unk00 >= 360) {
temp_r31->unk00_s16 -= 360; temp_r31->unk00 -= 360;
} }
temp_r31->unk34.x = temp_r31->unk14.x; temp_r31->unk34.x = temp_r31->unk14.x;
temp_r31->unk34.y = temp_r31->unk14.y; temp_r31->unk34.y = temp_r31->unk14.y;
temp_r31->unk34.z = temp_r31->unk14.z; temp_r31->unk34.z = temp_r31->unk14.z;
temp_r31->unk2C = temp_r31->unk24 * ((0.1f * sind(temp_r31->unk00_s16)) + 1.0); temp_r31->unk2C = temp_r31->unk24 * ((0.1f * sind(temp_r31->unk00)) + 1.0);
} }
break; break;
} }
@ -718,7 +718,7 @@ void fn_1_F06C(ModelData *model, ParticleData *particle, Mtx matrix)
case 0: case 0:
temp_r31 = particle->unk_48; temp_r31 = particle->unk_48;
for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) {
temp_r31->unk00_s16 = temp_r31->unk02 = 0; temp_r31->unk00 = temp_r31->unk02 = 0;
} }
temp_r29->unk_02++; temp_r29->unk_02++;
break; break;
@ -726,8 +726,8 @@ void fn_1_F06C(ModelData *model, ParticleData *particle, Mtx matrix)
case 1: case 1:
temp_r31 = particle->unk_48; temp_r31 = particle->unk_48;
for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) {
if (temp_r31->unk00_s16) { if (temp_r31->unk00) {
temp_r31->unk00_s16--; temp_r31->unk00--;
continue; continue;
} }
if (temp_r31->unk02 == 0) { if (temp_r31->unk02 == 0) {
@ -739,7 +739,7 @@ void fn_1_F06C(ModelData *model, ParticleData *particle, Mtx matrix)
temp_r31->unk40.r = temp_r31->unk40.g = temp_r31->unk40.b = temp_r31->unk40.a = 192; temp_r31->unk40.r = temp_r31->unk40.g = temp_r31->unk40.b = temp_r31->unk40.a = 192;
temp_r31->unk40.b = 160; temp_r31->unk40.b = 160;
temp_r31->unk2C = 0; temp_r31->unk2C = 0;
temp_r31->unk00_s16 = (s32)(90.0 * ((1.0 / 65536.0) * (float)fn_1_11670())); temp_r31->unk00 = (s32)(90.0 * ((1.0 / 65536.0) * (float)fn_1_11670()));
temp_r31->unk02 = 60; temp_r31->unk02 = 60;
} }
temp_r31->unk40.a = 248 * sind(temp_r31->unk02 * 3); temp_r31->unk40.a = 248 * sind(temp_r31->unk02 * 3);

View file

@ -1609,7 +1609,7 @@ void fn_1_613C(ModelData *model, ParticleData *particle, Mtx matrix)
temp_r31->unk34.y = (64.0f * ((1.0f / 256.0f) * frand8())); temp_r31->unk34.y = (64.0f * ((1.0f / 256.0f) * frand8()));
temp_r31->unk34.z = (4.0f * (((1.0f / 256.0f) * ((s32)frand() & 0x1FF)) - 1)); temp_r31->unk34.z = (4.0f * (((1.0f / 256.0f) * ((s32)frand() & 0x1FF)) - 1));
temp_r31->unk30 = 360.0f * ((1.0f / 256.0f) * frand8()); temp_r31->unk30 = 360.0f * ((1.0f / 256.0f) * frand8());
temp_r31->unk00_s16 = frand8(); temp_r31->unk00 = frand8();
temp_r31->unk02 = (frand() & 0x3) + 4; temp_r31->unk02 = (frand() & 0x3) + 4;
} }
temp_f29 = temp_f28 = 0; temp_f29 = temp_f28 = 0;
@ -1620,7 +1620,7 @@ void fn_1_613C(ModelData *model, ParticleData *particle, Mtx matrix)
} }
temp_r31 = particle->unk_48; temp_r31 = particle->unk_48;
for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r31++, temp_r29++) { for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r31++, temp_r29++) {
temp_f30 = temp_r31->unk00_s16 / 255.0f; temp_f30 = temp_r31->unk00 / 255.0f;
temp_f31 = temp_f30 * temp_f30; temp_f31 = temp_f30 * temp_f30;
temp_r31->unk34.x += temp_f29 * temp_f31; temp_r31->unk34.x += temp_f29 * temp_f31;
temp_r31->unk34.y = 60.0f * temp_f30; temp_r31->unk34.y = 60.0f * temp_f30;
@ -1628,12 +1628,12 @@ void fn_1_613C(ModelData *model, ParticleData *particle, Mtx matrix)
temp_r31->unk40.a = 255.0f * (1.0f - temp_f30); temp_r31->unk40.a = 255.0f * (1.0f - temp_f30);
temp_f31 = 0.5 * (1 + sind(270.0f * temp_f30)); temp_f31 = 0.5 * (1 + sind(270.0f * temp_f30));
temp_r31->unk2C = temp_f31 * (temp_r31->unk08.x * temp_f31); temp_r31->unk2C = temp_f31 * (temp_r31->unk08.x * temp_f31);
temp_r31->unk00_s16 += temp_r31->unk02; temp_r31->unk00 += temp_r31->unk02;
if (temp_r31->unk00_s16 > 255) { if (temp_r31->unk00 > 255) {
temp_r31->unk34.x = (4.0f * (((1.0f / 256.0f) * ((s32)frand() & 0x1FF)) - 1)); temp_r31->unk34.x = (4.0f * (((1.0f / 256.0f) * ((s32)frand() & 0x1FF)) - 1));
temp_r31->unk34.y = 0; temp_r31->unk34.y = 0;
temp_r31->unk34.z = (4.0f * (((1.0f / 256.0f) * ((s32)frand() & 0x1FF)) - 1)); temp_r31->unk34.z = (4.0f * (((1.0f / 256.0f) * ((s32)frand() & 0x1FF)) - 1));
temp_r31->unk00_s16 = 0; temp_r31->unk00 = 0;
} }
} }
DCStoreRangeNoSync(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); DCStoreRangeNoSync(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01));
@ -1664,7 +1664,7 @@ void fn_1_6640(ModelData *model, ParticleData *particle, Mtx matrix)
temp_r31->unk08.z = temp_f30 * cosd(temp_f31); temp_r31->unk08.z = temp_f30 * cosd(temp_f31);
temp_r31->unk40.r = temp_r31->unk40.g = temp_r31->unk40.b = 255; temp_r31->unk40.r = temp_r31->unk40.g = temp_r31->unk40.b = 255;
temp_r31->unk40.a = 0; temp_r31->unk40.a = 0;
temp_r31->unk00_s16 = ((float)particle->unk_3C) * ((float)temp_r28 / (float)particle->unk_30); temp_r31->unk00 = ((float)particle->unk_3C) * ((float)temp_r28 / (float)particle->unk_30);
} }
} }
else { else {
@ -1674,25 +1674,25 @@ void fn_1_6640(ModelData *model, ParticleData *particle, Mtx matrix)
temp_r27 = 0; temp_r27 = 0;
temp_r31 = particle->unk_48; temp_r31 = particle->unk_48;
for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r31++, temp_r28++) { for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r31++, temp_r28++) {
if (temp_r31->unk00_s16 >= 0) { if (temp_r31->unk00 >= 0) {
if (temp_r31->unk00_s16 == 0) { if (temp_r31->unk00 == 0) {
temp_r31->unk34.x += temp_r31->unk08.x + temp_f29; temp_r31->unk34.x += temp_r31->unk08.x + temp_f29;
temp_r31->unk34.y += temp_r31->unk08.y; temp_r31->unk34.y += temp_r31->unk08.y;
temp_r31->unk34.z += temp_r31->unk08.z + temp_f28; temp_r31->unk34.z += temp_r31->unk08.z + temp_f28;
temp_r31->unk08.y += -1.0000001f; temp_r31->unk08.y += -1.0000001f;
if (temp_r31->unk40.a) { if (temp_r31->unk40.a) {
if (--temp_r31->unk40.a == 0) { if (--temp_r31->unk40.a == 0) {
temp_r31->unk00_s16 = -1; temp_r31->unk00 = -1;
} }
} }
if (temp_r31->unk34.y < 0.0f) { if (temp_r31->unk34.y < 0.0f) {
temp_r31->unk34.y = 0; temp_r31->unk34.y = 0;
temp_r31->unk00_s16 = -1; temp_r31->unk00 = -1;
temp_r31->unk40.a = 0; temp_r31->unk40.a = 0;
} }
} }
else { else {
if (--temp_r31->unk00_s16 == 0) { if (--temp_r31->unk00 == 0) {
temp_r31->unk40.a = 255; temp_r31->unk40.a = 255;
} }
} }
@ -1728,12 +1728,12 @@ void fn_1_6AE8(ModelData *model, ParticleData *particle, Mtx matrix)
temp_r31->unk08.y = 100.0f * (0.05f * (((1.0f / 256.0f) * ((s32)frand() & 0x1FF)) - 1.0f)); temp_r31->unk08.y = 100.0f * (0.05f * (((1.0f / 256.0f) * ((s32)frand() & 0x1FF)) - 1.0f));
temp_r31->unk08.z = 100.0f * (0.05f * (((1.0f / 256.0f) * ((s32)frand() & 0x1FF)) - 1.0f)); temp_r31->unk08.z = 100.0f * (0.05f * (((1.0f / 256.0f) * ((s32)frand() & 0x1FF)) - 1.0f));
temp_r31->unk40.a = 128; temp_r31->unk40.a = 128;
temp_r31->unk00_s16 = 0; temp_r31->unk00 = 0;
} }
} }
temp_r31 = particle->unk_48; temp_r31 = particle->unk_48;
for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) {
if (temp_r31->unk00_s16 < 0) { if (temp_r31->unk00 < 0) {
temp_r27++; temp_r27++;
continue; continue;
} }
@ -1746,7 +1746,7 @@ void fn_1_6AE8(ModelData *model, ParticleData *particle, Mtx matrix)
temp_r28 = temp_r31->unk40.a; temp_r28 = temp_r31->unk40.a;
temp_r28 -= 4; temp_r28 -= 4;
if (temp_r28 < 0) { if (temp_r28 < 0) {
temp_r31->unk00_s16 = -1; temp_r31->unk00 = -1;
temp_r28 = 0; temp_r28 = 0;
} }
temp_r31->unk40.a = temp_r28; temp_r31->unk40.a = temp_r28;

View file

@ -892,7 +892,7 @@ void fn_1_6B94(ModelData *model, ParticleData *particle, float (*matrix)[4])
particle->unk_00++; particle->unk_00++;
var_r31 = particle->unk_48; var_r31 = particle->unk_48;
for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) {
var_r31->unk00_s16 = 0; var_r31->unk00 = 0;
var_r31->unk2C = 0.0f; var_r31->unk2C = 0.0f;
var_r31->unk40.a = 0; var_r31->unk40.a = 0;
} }
@ -900,16 +900,16 @@ void fn_1_6B94(ModelData *model, ParticleData *particle, float (*matrix)[4])
} }
var_r31 = particle->unk_48; var_r31 = particle->unk_48;
for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) {
if (var_r31->unk00_s16) { if (var_r31->unk00) {
var_r31->unk34.x += var_r31->unk08.x; var_r31->unk34.x += var_r31->unk08.x;
var_r31->unk34.y += var_r31->unk08.y; var_r31->unk34.y += var_r31->unk08.y;
var_r31->unk34.z += var_r31->unk08.z; var_r31->unk34.z += var_r31->unk08.z;
var_r31->unk08.y += -0.27222225f; var_r31->unk08.y += -0.27222225f;
if (var_r31->unk00_s16 < 12.0f) { if (var_r31->unk00 < 12.0f) {
var_r31->unk40.a = 0.88f * var_r31->unk40.a; var_r31->unk40.a = 0.88f * var_r31->unk40.a;
} }
if (!(--var_r31->unk00_s16)) { if (!(--var_r31->unk00)) {
var_r31->unk00_s16 = 0; var_r31->unk00 = 0;
var_r31->unk2C = 0.0f; var_r31->unk2C = 0.0f;
var_r31->unk40.a = 0; var_r31->unk40.a = 0;
} }
@ -951,7 +951,7 @@ void fn_1_6D64(s32 arg0, u32 arg1, float arg8, float arg9, float argA)
var_f27 = 0.0f; var_f27 = 0.0f;
} }
for (var_r29 = 0; var_r29 < var_r30->unk_30; var_r29++, var_r31++) { for (var_r29 = 0; var_r29 < var_r30->unk_30; var_r29++, var_r31++) {
if (var_r31->unk00_s16) { if (var_r31->unk00) {
continue; continue;
} }
var_r31->unk00 = 60.0f * (1.0f + (0.0005f * frandmod(1000))); var_r31->unk00 = 60.0f * (1.0f + (0.0005f * frandmod(1000)));

View file

@ -1606,14 +1606,14 @@ void fn_1_9C38(ModelData *model, ParticleData *particle, Mtx matrix)
s32 var_r29; s32 var_r29;
for (var_r31 = particle->unk_48, var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { for (var_r31 = particle->unk_48, var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) {
if (var_r31->unk00_s16 != 0) { if (var_r31->unk00 != 0) {
VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34);
var_r31->unk2C += 2.0f; var_r31->unk2C += 2.0f;
var_r31->unk40.a *= 0.98f; var_r31->unk40.a *= 0.98f;
if (var_r31->unk00_s16 < 24.0f) { if (var_r31->unk00 < 24.0f) {
var_r31->unk40.a = 0.9f * var_r31->unk40.a; var_r31->unk40.a = 0.9f * var_r31->unk40.a;
} }
if (--var_r31->unk00_s16 == 0) { if (--var_r31->unk00 == 0) {
var_r31->unk00 = 0; var_r31->unk00 = 0;
var_r31->unk2C = 0.0f; var_r31->unk2C = 0.0f;
var_r31->unk40.a = 0; var_r31->unk40.a = 0;
@ -1649,10 +1649,10 @@ void fn_1_9DD0(omObjData *object, Vec *arg1)
spC[2] = (220.0f + (0.13725491f * sp14.b)) - sp10[2]; spC[2] = (220.0f + (0.13725491f * sp14.b)) - sp10[2];
var_r26 = 0x64; var_r26 = 0x64;
for (var_r31 = var_r30->unk_48, var_r29 = 0; var_r29 < var_r30->unk_30; var_r29++, var_r31++) { for (var_r31 = var_r30->unk_48, var_r29 = 0; var_r29 < var_r30->unk_30; var_r29++, var_r31++) {
if (var_r31->unk00_s16 != 0) { if (var_r31->unk00 != 0) {
continue; continue;
} }
var_r31->unk00_s16 = 60.0f * (0.6f + (0.0005f * frandmod(0x3E8))); var_r31->unk00 = 60.0f * (0.6f + (0.0005f * frandmod(0x3E8)));
var_f31 = frandmod(0x168); var_f31 = frandmod(0x168);
var_f30 = frandmod(0x168); var_f30 = frandmod(0x168);
sp18.y = sind(var_f31); sp18.y = sind(var_f31);

View file

@ -1402,7 +1402,7 @@ void fn_1_9410(ModelData *model, ParticleData *particle, Mtx matrix)
if (particle->unk_34 < 50) { if (particle->unk_34 < 50) {
var_r31 = particle->unk_48; var_r31 = particle->unk_48;
for (i = 0; i < particle->unk_30; i++, var_r31++) { for (i = 0; i < particle->unk_30; i++, var_r31++) {
var_r31->unk00_s16 = particle->unk_34 + 41; var_r31->unk00 = particle->unk_34 + 41;
var_r31->unk40.a = 0; var_r31->unk40.a = 0;
var_r31->unk2C = 0.0f; var_r31->unk2C = 0.0f;
} }
@ -1410,7 +1410,7 @@ void fn_1_9410(ModelData *model, ParticleData *particle, Mtx matrix)
if (particle->unk_34 >= 255) { if (particle->unk_34 >= 255) {
var_r31 = particle->unk_48; var_r31 = particle->unk_48;
for (i = 0; i < particle->unk_30; i++, var_r31++) { for (i = 0; i < particle->unk_30; i++, var_r31++) {
var_r31->unk00_s16 = 255; var_r31->unk00 = 255;
var_r31->unk40.a = 0; var_r31->unk40.a = 0;
var_r31->unk2C = 0.0f; var_r31->unk2C = 0.0f;
} }
@ -1423,7 +1423,7 @@ void fn_1_9410(ModelData *model, ParticleData *particle, Mtx matrix)
} }
var_r31 = particle->unk_48; var_r31 = particle->unk_48;
for (i = 0; i < particle->unk_30; i++, var_r31++) { for (i = 0; i < particle->unk_30; i++, var_r31++) {
if (var_r31->unk00_s16 == 104) { if (var_r31->unk00 == 104) {
var_r31->unk34.x = var_r31->unk34.z = 0.0f; var_r31->unk34.x = var_r31->unk34.z = 0.0f;
var_r31->unk34.y = 72.0f; var_r31->unk34.y = 72.0f;
temp_f31 = frandu8() * 360 / 256; temp_f31 = frandu8() * 360 / 256;
@ -1440,7 +1440,7 @@ void fn_1_9410(ModelData *model, ParticleData *particle, Mtx matrix)
var_r31->unk2C = 50.0f; var_r31->unk2C = 50.0f;
VECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); VECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34);
} }
if (var_r31->unk00_s16 < 240) { if (var_r31->unk00 < 240) {
VECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); VECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34);
var_r31->unk08.x *= 0.9f; var_r31->unk08.x *= 0.9f;
var_r31->unk08.z *= 0.9f; var_r31->unk08.z *= 0.9f;
@ -1456,7 +1456,7 @@ void fn_1_9410(ModelData *model, ParticleData *particle, Mtx matrix)
var_r31->unk2C = 0.0f; var_r31->unk2C = 0.0f;
} }
} }
var_r31->unk00_s16 += (var_r31->unk00_s16 < 0x8000); var_r31->unk00 += (var_r31->unk00 < 0x8000);
} }
} }

View file

@ -1300,14 +1300,14 @@ void fn_1_4A88(ModelData *model, ParticleData *particle, Mtx matrix)
switch (var_r29->unk_04) { switch (var_r29->unk_04) {
case 0: case 0:
for (var_r31 = particle->unk_48, var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) { for (var_r31 = particle->unk_48, var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) {
var_r31->unk00_s16 = var_r31->unk02 = 0; var_r31->unk00 = var_r31->unk02 = 0;
} }
var_r29->unk_04++; var_r29->unk_04++;
break; break;
case 1: case 1:
for (var_r31 = particle->unk_48, var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) { for (var_r31 = particle->unk_48, var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) {
if (var_r31->unk00_s16 != 0) { if (var_r31->unk00 != 0) {
var_r31->unk00_s16--; var_r31->unk00--;
} }
else { else {
if (var_r31->unk02 == 0) { if (var_r31->unk02 == 0) {
@ -1325,7 +1325,7 @@ void fn_1_4A88(ModelData *model, ParticleData *particle, Mtx matrix)
var_r31->unk40.r = var_r31->unk40.g = var_r31->unk40.b = var_r31->unk40.a = 0xC0; var_r31->unk40.r = var_r31->unk40.g = var_r31->unk40.b = var_r31->unk40.a = 0xC0;
var_r31->unk40.b = 0xA0; var_r31->unk40.b = 0xA0;
var_r31->unk2C = 0.0f; var_r31->unk2C = 0.0f;
var_r31->unk00_s16 = (s32)(90.0 * (1.52587890625e-05 * (float)fn_1_64D4())); var_r31->unk00 = (s32)(90.0 * (1.52587890625e-05 * (float)fn_1_64D4()));
var_r31->unk02 = 0x3C; var_r31->unk02 = 0x3C;
var_r31->unk40.r = 0xC0; var_r31->unk40.r = 0xC0;
var_r31->unk40.g = 0xE0; var_r31->unk40.g = 0xE0;

View file

@ -631,7 +631,7 @@ void fn_1_6280(ModelData *arg1, ParticleData *particle, Mtx matrix)
break; break;
} }
for (var_r31 = particle->unk_48, var_r27 = 0, var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) { for (var_r31 = particle->unk_48, var_r27 = 0, var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) {
switch (var_r31->unk00_s16) { switch (var_r31->unk00) {
case 0: case 0:
if (((var_r28 > (0.4f * particle->unk_30)) && (particle->unk_04.x == 0.0f)) || (var_r27 >= (10.0f + (0.75f * particle->unk_04.x)))) { if (((var_r28 > (0.4f * particle->unk_30)) && (particle->unk_04.x == 0.0f)) || (var_r27 >= (10.0f + (0.75f * particle->unk_04.x)))) {
var_r31->unk2C = 0.01f; var_r31->unk2C = 0.01f;
@ -662,7 +662,7 @@ void fn_1_6280(ModelData *arg1, ParticleData *particle, Mtx matrix)
var_r31->unk40.r = var_r31->unk40.g = var_r31->unk40.b = 0xFF; var_r31->unk40.r = var_r31->unk40.g = var_r31->unk40.b = 0xFF;
var_r31->unk02 = 0; var_r31->unk02 = 0;
var_r27++; var_r27++;
var_r31->unk00_s16++; var_r31->unk00++;
} }
break; break;
case 1: case 1:

View file

@ -2044,7 +2044,7 @@ void fn_1_11D70(void)
var_r25 = &Hu3DData[var_r31->unk_04]; var_r25 = &Hu3DData[var_r31->unk_04];
var_r29 = var_r25->unk_120; var_r29 = var_r25->unk_120;
for (var_r30 = var_r29->unk_48, var_r27 = 0; var_r27 < var_r29->unk_30; var_r27++, var_r30++) { for (var_r30 = var_r29->unk_48, var_r27 = 0; var_r27 < var_r29->unk_30; var_r27++, var_r30++) {
if (++var_r30->unk00_s16 > var_r30->unk02) { if (++var_r30->unk00 > var_r30->unk02) {
var_r24 = var_r30->unk40.a - 9; var_r24 = var_r30->unk40.a - 9;
if (var_r24 < 0) { if (var_r24 < 0) {
var_r30->unk2C = 0.0f; var_r30->unk2C = 0.0f;

View file

@ -1637,15 +1637,15 @@ void fn_1_AD04(ModelData *model, ParticleData *particle, Mtx matrix)
return; return;
} }
for (var_r31 = particle->unk_48, var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { for (var_r31 = particle->unk_48, var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) {
if (var_r31->unk00_s16 != 0) { if (var_r31->unk00 != 0) {
VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34);
VECScale(&var_r31->unk08, &var_r31->unk08, 0.97f); VECScale(&var_r31->unk08, &var_r31->unk08, 0.97f);
if (var_r31->unk00_s16 < 24.0f) { if (var_r31->unk00 < 24.0f) {
var_r31->unk40.a = 0.9f * var_r31->unk40.a; var_r31->unk40.a = 0.9f * var_r31->unk40.a;
} }
var_r31->unk2C += 1.5f; var_r31->unk2C += 1.5f;
if (--var_r31->unk00_s16 == 0) { if (--var_r31->unk00 == 0) {
var_r31->unk00_s16 = 0; var_r31->unk00 = 0;
var_r31->unk2C = 0.0f; var_r31->unk2C = 0.0f;
var_r31->unk40.a = 0; var_r31->unk40.a = 0;
} }
@ -1676,7 +1676,7 @@ void fn_1_AEE0(s32 arg0, Vec *arg1, float arg8, float arg9)
var_r27 = 1; var_r27 = 1;
var_f28 = 30.0f; var_f28 = 30.0f;
for (var_r29 = 0; var_r29 < var_r30->unk_30; var_r29++, var_r31++) { for (var_r29 = 0; var_r29 < var_r30->unk_30; var_r29++, var_r31++) {
if (var_r31->unk00_s16 == 0) { if (var_r31->unk00 == 0) {
var_r31->unk00 = 60.0f * (0.5f + (0.0005f * frandmod(0x3E8))); var_r31->unk00 = 60.0f * (0.5f + (0.0005f * frandmod(0x3E8)));
var_f30 = (0.002f * frandmod(0x3E8)) - 1.0f; var_f30 = (0.002f * frandmod(0x3E8)) - 1.0f;
var_f30 = arg8 + (var_f30 * var_f28); var_f30 = arg8 + (var_f30 * var_f28);
@ -1714,22 +1714,22 @@ void fn_1_B394(ModelData *model, ParticleData *var_r30, Mtx matrix)
if ((var_r30->unk_00 == 0) || (lbl_1_bss_5C != 0)) { if ((var_r30->unk_00 == 0) || (lbl_1_bss_5C != 0)) {
var_r30->unk_00++; var_r30->unk_00++;
for (var_r31 = var_r30->unk_48, var_r29 = 0; var_r29 < var_r30->unk_30; var_r29++, var_r31++) { for (var_r31 = var_r30->unk_48, var_r29 = 0; var_r29 < var_r30->unk_30; var_r29++, var_r31++) {
var_r31->unk00_s16 = 0; var_r31->unk00 = 0;
var_r31->unk2C = 0.0f; var_r31->unk2C = 0.0f;
var_r31->unk40.a = 0; var_r31->unk40.a = 0;
} }
return; return;
} }
for (var_r31 = var_r30->unk_48, var_r29 = 0; var_r29 < var_r30->unk_30; var_r29++, var_r31++) { for (var_r31 = var_r30->unk_48, var_r29 = 0; var_r29 < var_r30->unk_30; var_r29++, var_r31++) {
if (var_r31->unk00_s16 != 0) { if (var_r31->unk00 != 0) {
var_r31->unk00_s16--; var_r31->unk00--;
VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34);
var_r31->unk2C += 0.5f; var_r31->unk2C += 0.5f;
if (var_r31->unk00_s16 < 30.0) { if (var_r31->unk00 < 30.0) {
var_r31->unk40.a = 0.98f * var_r31->unk40.a; var_r31->unk40.a = 0.98f * var_r31->unk40.a;
} }
if ((var_r31->unk34.y < -40.0f) || (var_r31->unk00_s16 == 0)) { if ((var_r31->unk34.y < -40.0f) || (var_r31->unk00 == 0)) {
var_r31->unk00_s16 = 0; var_r31->unk00 = 0;
var_r31->unk2C = 0.0f; var_r31->unk2C = 0.0f;
var_r31->unk40.a = 0; var_r31->unk40.a = 0;
} }
@ -1766,8 +1766,8 @@ void fn_1_B570(s32 arg0, Vec *arg1, float arg8, float arg9, Vec *arg2)
VECScale(arg2, &sp1C, 0.2f); VECScale(arg2, &sp1C, 0.2f);
sp1C.x = 0.0f; sp1C.x = 0.0f;
for (var_r29 = 0; var_r29 < var_r30->unk_30; var_r29++, var_r31++) { for (var_r29 = 0; var_r29 < var_r30->unk_30; var_r29++, var_r31++) {
if (var_r31->unk00_s16 == 0) { if (var_r31->unk00 == 0) {
var_r31->unk00_s16 = 60.0f * (0.5f + (0.0005f * frandmod(0x3E8))); var_r31->unk00 = 60.0f * (0.5f + (0.0005f * frandmod(0x3E8)));
var_f30 = (0.002f * frandmod(0x3E8)) - 1.0f; var_f30 = (0.002f * frandmod(0x3E8)) - 1.0f;
var_f30 = arg8 + sp14[var_r29 & 1] + (var_f30 * var_f28); var_f30 = arg8 + sp14[var_r29 & 1] + (var_f30 * var_f28);
sp28.x = sind(var_f30); sp28.x = sind(var_f30);

View file

@ -2174,7 +2174,7 @@ void fn_1_BD48(omObjData *object)
for (var_r27 = ((ParticleData *)Hu3DData[var_r28].unk_120)->unk_48, var_r29 = 0; var_r29 < 0xC8; var_r29++, var_r27++) { for (var_r27 = ((ParticleData *)Hu3DData[var_r28].unk_120)->unk_48, var_r29 = 0; var_r29 < 0xC8; var_r29++, var_r27++) {
var_r27->unk2C = 0.0f; var_r27->unk2C = 0.0f;
var_r27->unk40.a = 0; var_r27->unk40.a = 0;
var_r27->unk00_s16 = 0; var_r27->unk00 = 0;
} }
object->model[9] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M433, 2)); object->model[9] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M433, 2));
Hu3DModelScaleSet(object->model[9], 1.05f, 1.05f, 1.05f); Hu3DModelScaleSet(object->model[9], 1.05f, 1.05f, 1.05f);
@ -2581,18 +2581,18 @@ void fn_1_D6A8(ModelData *model, ParticleData *particle, Mtx matrix)
s32 var_r29; s32 var_r29;
for (var_r31 = particle->unk_48, var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { for (var_r31 = particle->unk_48, var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) {
if (var_r31->unk00_s16 != 0) { if (var_r31->unk00 != 0) {
VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34);
var_r31->unk08.x *= 0.92f; var_r31->unk08.x *= 0.92f;
var_r31->unk08.z *= 0.92f; var_r31->unk08.z *= 0.92f;
var_r31->unk08.y += -0.27222225f; var_r31->unk08.y += -0.27222225f;
var_r31->unk2C += 2.0f; var_r31->unk2C += 2.0f;
var_r31->unk40.a *= 0.99f; var_r31->unk40.a *= 0.99f;
if (var_r31->unk00_s16 < 24.0f) { if (var_r31->unk00 < 24.0f) {
var_r31->unk40.a = 0.9f * var_r31->unk40.a; var_r31->unk40.a = 0.9f * var_r31->unk40.a;
} }
if (--var_r31->unk00_s16 == 0) { if (--var_r31->unk00 == 0) {
var_r31->unk00_s16 = 0; var_r31->unk00 = 0;
var_r31->unk2C = 0.0f; var_r31->unk2C = 0.0f;
var_r31->unk40.a = 0; var_r31->unk40.a = 0;
} }
@ -2613,8 +2613,8 @@ void fn_1_D888(Vec *arg0, float arg8)
var_r31 = ((ParticleData *)Hu3DData[lbl_1_bss_7CC->model[5]].unk_120)->unk_48; var_r31 = ((ParticleData *)Hu3DData[lbl_1_bss_7CC->model[5]].unk_120)->unk_48;
var_r28 = 3.0f + (12.0f * arg8); var_r28 = 3.0f + (12.0f * arg8);
for (var_r29 = 0; var_r29 < 0xC8; var_r29++, var_r31++) { for (var_r29 = 0; var_r29 < 0xC8; var_r29++, var_r31++) {
if (var_r31->unk00_s16 == 0) { if (var_r31->unk00 == 0) {
var_r31->unk00_s16 = 60.0f * (0.6f + (0.0006f * frandmod(0x3E8))); var_r31->unk00 = 60.0f * (0.6f + (0.0006f * frandmod(0x3E8)));
var_f30 = frandmod(0x168); var_f30 = frandmod(0x168);
sp8.x = sind(var_f30); sp8.x = sind(var_f30);
sp8.y = 0.0f; sp8.y = 0.0f;

View file

@ -377,15 +377,15 @@ void fn_1_C764(ModelData *model, ParticleData *particle, Mtx matrix)
var_r31 = particle->unk_48; var_r31 = particle->unk_48;
for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) {
if (var_r31->unk00_s16 != 0) { if (var_r31->unk00 != 0) {
VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34);
var_r31->unk08.x *= 0.95f; var_r31->unk08.x *= 0.95f;
var_r31->unk08.z *= 0.95f; var_r31->unk08.z *= 0.95f;
var_r31->unk08.y += -0.27222225f; var_r31->unk08.y += -0.27222225f;
if (var_r31->unk00_s16 < 24.0f) { if (var_r31->unk00 < 24.0f) {
var_r31->unk40.a = 0.9f * var_r31->unk40.a; var_r31->unk40.a = 0.9f * var_r31->unk40.a;
} }
if (--var_r31->unk00_s16 == 0) { if (--var_r31->unk00 == 0) {
var_r31->unk00 = 0; var_r31->unk00 = 0;
var_r31->unk2C = 0.0f; var_r31->unk2C = 0.0f;
var_r31->unk40.a = 0; var_r31->unk40.a = 0;
@ -404,16 +404,16 @@ void fn_1_C8E8(ModelData *model, ParticleData *particle, Mtx matrix)
var_r31 = particle->unk_48; var_r31 = particle->unk_48;
for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) {
if (var_r31->unk00_s16 != 0) { if (var_r31->unk00 != 0) {
VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34);
var_r31->unk08.x *= 0.92f; var_r31->unk08.x *= 0.92f;
var_r31->unk08.z *= 0.92f; var_r31->unk08.z *= 0.92f;
var_r31->unk2C += 5.0f; var_r31->unk2C += 5.0f;
var_r31->unk40.a *= 0.99f; var_r31->unk40.a *= 0.99f;
if (var_r31->unk00_s16 < 24.0f) { if (var_r31->unk00 < 24.0f) {
var_r31->unk40.a = 0.9f * var_r31->unk40.a; var_r31->unk40.a = 0.9f * var_r31->unk40.a;
} }
if (--var_r31->unk00_s16 == 0) { if (--var_r31->unk00 == 0) {
var_r31->unk00 = 0; var_r31->unk00 = 0;
var_r31->unk2C = 0.0f; var_r31->unk2C = 0.0f;
var_r31->unk40.a = 0; var_r31->unk40.a = 0;
@ -440,8 +440,8 @@ void fn_1_CAB0(f32 arg8)
for (var_r30 = 0; var_r30 < 0x96; var_r30++) { for (var_r30 = 0; var_r30 < 0x96; var_r30++) {
var_r31 = lbl_1_bss_E34[var_r30]; var_r31 = lbl_1_bss_E34[var_r30];
if (var_r31->unk00_s16 == 0) { if (var_r31->unk00 == 0) {
var_r31->unk00_s16 = 60.0f * (0.6f + (0.0006f * frandmod(0x3E8))); var_r31->unk00 = 60.0f * (0.6f + (0.0006f * frandmod(0x3E8)));
temp_f31 = ((0.002f * frandmod(0x3E8)) - 1.0f); temp_f31 = ((0.002f * frandmod(0x3E8)) - 1.0f);
temp_f31 = arg8 + (temp_f31 * temp_f28); temp_f31 = arg8 + (temp_f31 * temp_f28);
sp8.x = sind(temp_f31); sp8.x = sind(temp_f31);
@ -471,8 +471,8 @@ void fn_1_CAB0(f32 arg8)
var_r31 = ((ParticleData *)(Hu3DData[lbl_1_bss_108C[0]->model[6]].unk_120))->unk_48; var_r31 = ((ParticleData *)(Hu3DData[lbl_1_bss_108C[0]->model[6]].unk_120))->unk_48;
var_r29 = 0xF; var_r29 = 0xF;
for (var_r30 = 0; var_r30 < 0x32; var_r30++, var_r31++) { for (var_r30 = 0; var_r30 < 0x32; var_r30++, var_r31++) {
if (var_r31->unk00_s16 == 0) { if (var_r31->unk00 == 0) {
var_r31->unk00_s16 = 60.0f * (0.6f + (0.0006f * frandmod(0x3E8))); var_r31->unk00 = 60.0f * (0.6f + (0.0006f * frandmod(0x3E8)));
temp_f31 = ((0.002f * frandmod(0x3E8)) - 1.0f); temp_f31 = ((0.002f * frandmod(0x3E8)) - 1.0f);
temp_f31 = arg8 + (temp_f31 * temp_f28); temp_f31 = arg8 + (temp_f31 * temp_f28);
sp8.x = sind(temp_f31); sp8.x = sind(temp_f31);
@ -513,14 +513,14 @@ void fn_1_D3FC(ModelData *model, ParticleData *particle, Mtx matrix)
lbl_1_bss_E2C = 0; lbl_1_bss_E2C = 0;
var_r31 = particle->unk_48; var_r31 = particle->unk_48;
for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) {
if (var_r31->unk00_s16 != 0) { if (var_r31->unk00 != 0) {
VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34);
var_r31->unk08.y += -0.27222225f; var_r31->unk08.y += -0.27222225f;
if (var_r31->unk00_s16 < 12.0f) { if (var_r31->unk00 < 12.0f) {
var_r31->unk40.a = (0.8f * var_r31->unk40.a); var_r31->unk40.a = (0.8f * var_r31->unk40.a);
} }
if (--var_r31->unk00_s16 == 0) { if (--var_r31->unk00 == 0) {
var_r31->unk00_s16 = 0; var_r31->unk00 = 0;
var_r31->unk2C = 0.0f; var_r31->unk2C = 0.0f;
var_r31->unk40.a = 0; var_r31->unk40.a = 0;
} }
@ -543,8 +543,8 @@ void fn_1_D57C(Vec *arg0, f32 arg1)
var_r29 = (u32)(3.0f + (15.0f * arg1)); var_r29 = (u32)(3.0f + (15.0f * arg1));
for (var_r30 = 0; var_r30 < 0x1F4; var_r30++, var_r31++) { for (var_r30 = 0; var_r30 < 0x1F4; var_r30++, var_r31++) {
if (var_r31->unk00_s16 == 0) { if (var_r31->unk00 == 0) {
var_r31->unk00_s16 = 60.0f * (0.3f + (0.0003f * frandmod(0x3E8))); var_r31->unk00 = 60.0f * (0.3f + (0.0003f * frandmod(0x3E8)));
var_r31->unk34 = *arg0; var_r31->unk34 = *arg0;
var_r31->unk34.x += arg1 * (0.07f * (frandmod(0x3E8) - 0x1F4)); var_r31->unk34.x += arg1 * (0.07f * (frandmod(0x3E8) - 0x1F4));
var_r31->unk34.z += arg1 * (0.07f * (frandmod(0x3E8) - 0x1F4)); var_r31->unk34.z += arg1 * (0.07f * (frandmod(0x3E8) - 0x1F4));

View file

@ -1138,15 +1138,15 @@ void fn_1_8E34(s32 arg0)
var_r31 = temp_r30->unk_48; var_r31 = temp_r30->unk_48;
for (var_r29 = 0; var_r29 < temp_r30->unk_30; var_r29++, var_r31++) { for (var_r29 = 0; var_r29 < temp_r30->unk_30; var_r29++, var_r31++) {
if (var_r31->unk00_s16 != 0) { if (var_r31->unk00 != 0) {
VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34);
var_r31->unk08.z -= 0.3f; var_r31->unk08.z -= 0.3f;
var_r31->unk2C += 2.0f; var_r31->unk2C += 2.0f;
var_r31->unk40.a *= 0.98f; var_r31->unk40.a *= 0.98f;
if (var_r31->unk00_s16 < 24.0f) { if (var_r31->unk00 < 24.0f) {
var_r31->unk40.a = var_r31->unk40.a * 0.9f; var_r31->unk40.a = var_r31->unk40.a * 0.9f;
} }
if (--var_r31->unk00_s16 == 0) { if (--var_r31->unk00 == 0) {
var_r31->unk00 = 0; var_r31->unk00 = 0;
var_r31->unk2C = 0.0f; var_r31->unk2C = 0.0f;
var_r31->unk40.a = 0; var_r31->unk40.a = 0;
@ -1183,10 +1183,10 @@ void fn_1_8FFC(u32 arg0, Point3d *arg1, f32 arg2, f32 arg3)
var_r31 = temp_r29->unk_48; var_r31 = temp_r29->unk_48;
for (var_r28 = 0; var_r28 < temp_r29->unk_30; var_r28++, var_r31++) { for (var_r28 = 0; var_r28 < temp_r29->unk_30; var_r28++, var_r31++) {
if (var_r31->unk00_s16 != 0) if (var_r31->unk00 != 0)
continue; continue;
var_r31->unk00_s16 = (60.0f * (0.6f + (0.0005f * frandmod(0x3E8)))); var_r31->unk00 = (60.0f * (0.6f + (0.0005f * frandmod(0x3E8))));
var_f29 = isEven(var_r27); var_f29 = isEven(var_r27);
temp_f31 = 0.030000001f * frandmod(0x3E8); temp_f31 = 0.030000001f * frandmod(0x3E8);
var_r31->unk34.x = arg1->x + var_f29 * (70.0f + (0.07f * frandmod(0x3E8))); var_r31->unk34.x = arg1->x + var_f29 * (70.0f + (0.07f * frandmod(0x3E8)));

View file

@ -391,7 +391,7 @@ void fn_1_9F40(ModelData *model, ParticleData *particle, Mtx matrix)
if (particle->unk_00 == 0) { if (particle->unk_00 == 0) {
particle->unk_00 = 1; particle->unk_00 = 1;
for (i = 0, var_r31 = particle->unk_48; i < particle->unk_30; i++, var_r31++) { for (i = 0, var_r31 = particle->unk_48; i < particle->unk_30; i++, var_r31++) {
var_r31->unk00_s16 = i * 5; var_r31->unk00 = i * 5;
var_r31->unk02 = 0; var_r31->unk02 = 0;
var_r31->unk2C = 0.0f; var_r31->unk2C = 0.0f;
var_r31->unk40.r = sp8.r; var_r31->unk40.r = sp8.r;
@ -401,7 +401,7 @@ void fn_1_9F40(ModelData *model, ParticleData *particle, Mtx matrix)
} }
} }
for (i = 0, var_r27 = 0, var_r31 = particle->unk_48; i < particle->unk_30; i++, var_r31++) { for (i = 0, var_r27 = 0, var_r31 = particle->unk_48; i < particle->unk_30; i++, var_r31++) {
if (var_r31->unk00_s16 > 0 && --var_r31->unk00_s16 > 0) { if (var_r31->unk00 > 0 && --var_r31->unk00 > 0) {
continue; continue;
} }
if (var_r31->unk02 == 0 && temp_r29->unk04 == 5 && temp_r29->unk10.z > -700.0f) { if (var_r31->unk02 == 0 && temp_r29->unk04 == 5 && temp_r29->unk10.z > -700.0f) {

View file

@ -444,7 +444,7 @@ void fn_1_2DAC(ModelData *model, ParticleData *particle, Mtx matrix)
} }
} }
for (i = 0, var_r31 = particle->unk_48; i < particle->unk_30; i++, var_r31++) { for (i = 0, var_r31 = particle->unk_48; i < particle->unk_30; i++, var_r31++) {
if (var_r31->unk00_s16 < 0) { if (var_r31->unk00 < 0) {
continue; continue;
} }
var_r31->unk34.x += var_r31->unk08.x; var_r31->unk34.x += var_r31->unk08.x;

View file

@ -1498,7 +1498,7 @@ void fn_1_7DC4(ModelData *model, ParticleData *particle, Mtx matrix)
if (particle->unk_34 == 0) { if (particle->unk_34 == 0) {
var_r31 = particle->unk_48; var_r31 = particle->unk_48;
for (i = 0; i < particle->unk_30; i++, var_r31++) { for (i = 0; i < particle->unk_30; i++, var_r31++) {
var_r31->unk00_s16 = i * 2 + 100; var_r31->unk00 = i * 2 + 100;
var_r31->unk40.a = 0; var_r31->unk40.a = 0;
var_r31->unk2C = 0.0f; var_r31->unk2C = 0.0f;
} }
@ -1511,8 +1511,8 @@ void fn_1_7DC4(ModelData *model, ParticleData *particle, Mtx matrix)
} }
var_r31 = particle->unk_48; var_r31 = particle->unk_48;
for (i = 0; i < particle->unk_30; i++, var_r31++) { for (i = 0; i < particle->unk_30; i++, var_r31++) {
if (var_r31->unk00_s16 == 100) { if (var_r31->unk00 == 100) {
var_r31->unk00_s16 = (lbl_1_data_1DC[0] == 0.0f && lbl_1_data_1DC[1] == 0.0f && lbl_1_data_1DC[2] == 0.0f) ? 0 : var_r31->unk00_s16; var_r31->unk00 = (lbl_1_data_1DC[0] == 0.0f && lbl_1_data_1DC[1] == 0.0f && lbl_1_data_1DC[2] == 0.0f) ? 0 : var_r31->unk00;
var_r31->unk34.x = lbl_1_data_1DC[0] + 75.0 * (rand8() / 255.0); var_r31->unk34.x = lbl_1_data_1DC[0] + 75.0 * (rand8() / 255.0);
var_r31->unk34.y = lbl_1_data_1DC[1] + 75.0 * (rand8() / 255.0); var_r31->unk34.y = lbl_1_data_1DC[1] + 75.0 * (rand8() / 255.0);
var_r31->unk34.z = lbl_1_data_1DC[2] + 75.0 * (rand8() / 255.0); var_r31->unk34.z = lbl_1_data_1DC[2] + 75.0 * (rand8() / 255.0);
@ -1523,14 +1523,14 @@ void fn_1_7DC4(ModelData *model, ParticleData *particle, Mtx matrix)
var_r31->unk30 = 0.785f; var_r31->unk30 = 0.785f;
var_r31->unk2C = 40.0f; var_r31->unk2C = 40.0f;
} }
if (var_r31->unk00_s16 <= 100) { if (var_r31->unk00 <= 100) {
var_r31->unk34.y -= 3.0f; var_r31->unk34.y -= 3.0f;
var_r31->unk2C = ((var_r31->unk00_s16 > 50) ? (var_r31->unk00_s16 - 50) / 50.0 : 0.0) * (rand8() * 80 / 255.0); var_r31->unk2C = ((var_r31->unk00 > 50) ? (var_r31->unk00 - 50) / 50.0 : 0.0) * (rand8() * 80 / 255.0);
} }
if (var_r31->unk00_s16 == 0) { if (var_r31->unk00 == 0) {
var_r31->unk2C = 0.0f; var_r31->unk2C = 0.0f;
} }
var_r31->unk00_s16 -= (var_r31->unk00_s16 > 0); var_r31->unk00 -= (var_r31->unk00 > 0);
} }
} }

View file

@ -1697,7 +1697,7 @@ void fn_1_7F94(ModelData *model, ParticleData *particle, Mtx matrix)
} }
} }
for (var_r31 = particle->unk_48, var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { for (var_r31 = particle->unk_48, var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) {
if (var_r31->unk00_s16 == 1) { if (var_r31->unk00 == 1) {
var_f31 = ((frand() & 0xFF) * 0x168) >> 8; var_f31 = ((frand() & 0xFF) * 0x168) >> 8;
var_f30 = 0.5 + (1.5 * (rand8() / 256.0)); var_f30 = 0.5 + (1.5 * (rand8() / 256.0));
var_r31->unk08.x = 2.5 * (var_f30 * sind(var_f31)); var_r31->unk08.x = 2.5 * (var_f30 * sind(var_f31));
@ -1715,7 +1715,7 @@ void fn_1_7F94(ModelData *model, ParticleData *particle, Mtx matrix)
var_r31->unk40.a = 0xFF; var_r31->unk40.a = 0xFF;
var_r31->unk2C = 50.0f; var_r31->unk2C = 50.0f;
} }
if (var_r31->unk00_s16 < 0xF0) { if (var_r31->unk00 < 0xF0) {
VECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); VECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34);
var_r31->unk08.x *= 0.9f; var_r31->unk08.x *= 0.9f;
var_r31->unk08.z *= 0.9f; var_r31->unk08.z *= 0.9f;
@ -1730,8 +1730,8 @@ void fn_1_7F94(ModelData *model, ParticleData *particle, Mtx matrix)
var_r31->unk2C = 0.0f; var_r31->unk2C = 0.0f;
} }
} }
var_r31->unk00_s16 += var_r31->unk00_s16 < 0x8000; var_r31->unk00 += var_r31->unk00 < 0x8000;
if (var_r31->unk00_s16 >= 0xF0) { if (var_r31->unk00 >= 0xF0) {
var_r31->unk40.a = 0; var_r31->unk40.a = 0;
var_r31->unk2C = 0.0f; var_r31->unk2C = 0.0f;
} }

View file

@ -1096,7 +1096,7 @@ void fn_1_6A6C(omObjData *object)
HsfanimStruct01 *data = particleP->unk_48; HsfanimStruct01 *data = particleP->unk_48;
s32 j; s32 j;
for(j=0; j<particleP->unk_30; j++, data++) { for(j=0; j<particleP->unk_30; j++, data++) {
if(++data->unk00_s16 > data->unk02) { if(++data->unk00 > data->unk02) {
s32 alpha = data->unk40.a-1; s32 alpha = data->unk40.a-1;
if(alpha < 0) { if(alpha < 0) {
data->unk2C = 0; data->unk2C = 0;
@ -1163,7 +1163,7 @@ s32 fn_1_6CB0(Vec *arg0, float arg1)
temp_r30->unk08.x = temp_f31*(0.65f*(50.0*(temp_f28*sind(temp_f29)))); temp_r30->unk08.x = temp_f31*(0.65f*(50.0*(temp_f28*sind(temp_f29))));
temp_r30->unk08.z = temp_f31*(0.65f*(50.0*(temp_f28*cosd(temp_f29)))); temp_r30->unk08.z = temp_f31*(0.65f*(50.0*(temp_f28*cosd(temp_f29))));
temp_r30->unk08.y = temp_f31*(50*temp_f26*temp_f25); temp_r30->unk08.y = temp_f31*(50*temp_f26*temp_f25);
temp_r30->unk00_s16 = 0; temp_r30->unk00 = 0;
temp_r30->unk02 = ((s32)frand()%16)+45; temp_r30->unk02 = ((s32)frand()%16)+45;
temp_r30->unk30 = (s32)frand()%360; temp_r30->unk30 = (s32)frand()%360;
temp_r30->unk2C = 145; temp_r30->unk2C = 145;
@ -1280,10 +1280,10 @@ void fn_1_76B0(omObjData *object)
if(temp_r30->unk2C <= 0.0f) { if(temp_r30->unk2C <= 0.0f) {
continue; continue;
} }
if(++temp_r30->unk00_s16 > 360) { if(++temp_r30->unk00 > 360) {
temp_r30->unk00_s16 -= 360; temp_r30->unk00 -= 360;
} }
temp_r30->unk34.x += temp_r30->unk08.x*sind(2.0f*temp_r30->unk00_s16); temp_r30->unk34.x += temp_r30->unk08.x*sind(2.0f*temp_r30->unk00);
temp_r30->unk34.y += temp_r30->unk08.y; temp_r30->unk34.y += temp_r30->unk08.y;
if(temp_r30->unk34.y >= 0.0f) { if(temp_r30->unk34.y >= 0.0f) {
fn_1_6698(&temp_r30->unk34, 0.00625f*temp_r30->unk2C, 1, 15); fn_1_6698(&temp_r30->unk34, 0.00625f*temp_r30->unk2C, 1, 15);
@ -1322,7 +1322,7 @@ s32 fn_1_79C8(Vec *pos, float scale)
temp_r31->unk08.x = (1.5f+(0.2f*(0.007874016f*((s32)frand() & 0x7F))))*0.5f; temp_r31->unk08.x = (1.5f+(0.2f*(0.007874016f*((s32)frand() & 0x7F))))*0.5f;
temp_r31->unk08.z = (1.5f+(0.2f*(0.007874016f*((s32)frand() & 0x7F)))); temp_r31->unk08.z = (1.5f+(0.2f*(0.007874016f*((s32)frand() & 0x7F))));
temp_r31->unk08.y = (1.5f+(0.2f*(0.007874016f*((s32)frand() & 0x7F))))*2.0f; temp_r31->unk08.y = (1.5f+(0.2f*(0.007874016f*((s32)frand() & 0x7F))))*2.0f;
temp_r31->unk00_s16 = (s32)frand()%360; temp_r31->unk00 = (s32)frand()%360;
temp_r31->unk2C = 20*scale; temp_r31->unk2C = 20*scale;
return i; return i;
} }
@ -1804,4 +1804,4 @@ float fn_1_9F18(float start, float end, float max)
} }
return angle; return angle;
} }

View file

@ -991,7 +991,7 @@ void fn_1_659C(omObjData *object)
HsfanimStruct01 *data = particleP->unk_48; HsfanimStruct01 *data = particleP->unk_48;
s32 j; s32 j;
for (j = 0; j < particleP->unk_30; j++, data++) { for (j = 0; j < particleP->unk_30; j++, data++) {
if (++data->unk00_s16 > data->unk02) { if (++data->unk00 > data->unk02) {
s32 alpha = data->unk40.a - 1; s32 alpha = data->unk40.a - 1;
if (alpha < 0) { if (alpha < 0) {
data->unk2C = 0; data->unk2C = 0;
@ -1060,7 +1060,7 @@ s32 fn_1_67E0(Vec *arg0, float arg1)
temp_r30->unk08.x = temp_f31 * (0.65f * (50.0 * (temp_f28 * sind(temp_f29)))); temp_r30->unk08.x = temp_f31 * (0.65f * (50.0 * (temp_f28 * sind(temp_f29))));
temp_r30->unk08.z = temp_f31 * (0.65f * (50.0 * (temp_f28 * cosd(temp_f29)))); temp_r30->unk08.z = temp_f31 * (0.65f * (50.0 * (temp_f28 * cosd(temp_f29))));
temp_r30->unk08.y = temp_f31 * (50 * temp_f26 * temp_f25); temp_r30->unk08.y = temp_f31 * (50 * temp_f26 * temp_f25);
temp_r30->unk00_s16 = 0; temp_r30->unk00 = 0;
temp_r30->unk02 = ((s32)frand() % 16) + 45; temp_r30->unk02 = ((s32)frand() % 16) + 45;
temp_r30->unk30 = (s32)frand() % 360; temp_r30->unk30 = (s32)frand() % 360;
temp_r30->unk2C = 145.0f; temp_r30->unk2C = 145.0f;
@ -1174,10 +1174,10 @@ void fn_1_71E0(omObjData *object)
if (temp_r30->unk2C <= 0.0f) { if (temp_r30->unk2C <= 0.0f) {
continue; continue;
} }
if (++temp_r30->unk00_s16 > 360) { if (++temp_r30->unk00 > 360) {
temp_r30->unk00_s16 -= 360; temp_r30->unk00 -= 360;
} }
temp_r30->unk34.x += temp_r30->unk08.x * sind(2.0f * temp_r30->unk00_s16); temp_r30->unk34.x += temp_r30->unk08.x * sind(2.0f * temp_r30->unk00);
temp_r30->unk34.y += temp_r30->unk08.y; temp_r30->unk34.y += temp_r30->unk08.y;
if (temp_r30->unk34.y >= 0.0f) { if (temp_r30->unk34.y >= 0.0f) {
fn_1_61C8(&temp_r30->unk34, 0.00625f * temp_r30->unk2C, 1, REFRESH_RATE / 4); fn_1_61C8(&temp_r30->unk34, 0.00625f * temp_r30->unk2C, 1, REFRESH_RATE / 4);
@ -1221,7 +1221,7 @@ s32 fn_1_74F8(Vec *pos, float scale)
temp_r31->unk08.z = (1.5f + (0.2f * (0.007874016f * ((s32)frand() & 0x7F)))); temp_r31->unk08.z = (1.5f + (0.2f * (0.007874016f * ((s32)frand() & 0x7F))));
temp_r31->unk08.y = (1.5f + (0.2f * (0.007874016f * ((s32)frand() & 0x7F)))) * 2.0f; temp_r31->unk08.y = (1.5f + (0.2f * (0.007874016f * ((s32)frand() & 0x7F)))) * 2.0f;
#endif #endif
temp_r31->unk00_s16 = (s32)frand() % 360; temp_r31->unk00 = (s32)frand() % 360;
temp_r31->unk2C = 20 * scale; temp_r31->unk2C = 20 * scale;
return i; return i;
} }

View file

@ -408,7 +408,7 @@ void fn_1_7B94(s32 arg0)
var_r30 = Hu3DData[arg0].unk_120; var_r30 = Hu3DData[arg0].unk_120;
for (var_r31 = var_r30->unk_48, var_r29 = 0; var_r29 < var_r30->unk_30; var_r29++, var_r31++) { for (var_r31 = var_r30->unk_48, var_r29 = 0; var_r29 < var_r30->unk_30; var_r29++, var_r31++) {
if (var_r31->unk00_s16 != 0) { if (var_r31->unk00 != 0) {
VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34);
switch (var_r31->unk02) { switch (var_r31->unk02) {
case 0: case 0:
@ -425,11 +425,11 @@ void fn_1_7B94(s32 arg0)
var_r31->unk20 *= 0.995f; var_r31->unk20 *= 0.995f;
break; break;
} }
if (var_r31->unk00_s16 < 12.0f) { if (var_r31->unk00 < 12.0f) {
var_r31->unk20 = 0.9f * var_r31->unk20; var_r31->unk20 = 0.9f * var_r31->unk20;
} }
var_r31->unk40.a = var_r31->unk20; var_r31->unk40.a = var_r31->unk20;
if (--var_r31->unk00_s16 == 0) { if (--var_r31->unk00 == 0) {
var_r31->unk00 = 0; var_r31->unk00 = 0;
var_r31->unk2C = 0.0f; var_r31->unk2C = 0.0f;
var_r31->unk40.a = 0; var_r31->unk40.a = 0;
@ -459,7 +459,7 @@ void fn_1_7DA8(omObjData *object, Vec *arg1, u32 arg2)
} }
var_r27 = sp10[arg2]; var_r27 = sp10[arg2];
for (var_r31 = var_r30->unk_48, var_r28 = 0; var_r28 < var_r30->unk_30; var_r28++, var_r31++) { for (var_r31 = var_r30->unk_48, var_r28 = 0; var_r28 < var_r30->unk_30; var_r28++, var_r31++) {
if (var_r31->unk00_s16 == 0) { if (var_r31->unk00 == 0) {
var_r31->unk02 = arg2; var_r31->unk02 = arg2;
sp1C.x = 100.0f * ((0.0026f * frandmod(0x3E8)) - 1.3f); sp1C.x = 100.0f * ((0.0026f * frandmod(0x3E8)) - 1.3f);
sp1C.y = 0.0f; sp1C.y = 0.0f;
@ -468,7 +468,7 @@ void fn_1_7DA8(omObjData *object, Vec *arg1, u32 arg2)
var_r31->unk30 = 0.0031415902f * frandmod(0x3E8); var_r31->unk30 = 0.0031415902f * frandmod(0x3E8);
switch (arg2) { switch (arg2) {
case 0: case 0:
var_r31->unk00_s16 = 60.0f * (0.8f + (0.0007f * frandmod(0x3E8))); var_r31->unk00 = 60.0f * (0.8f + (0.0007f * frandmod(0x3E8)));
var_r31->unk08.x = 1.6666667f * (0.000100000005f * frandmod(0x3E8) - 0.05f); var_r31->unk08.x = 1.6666667f * (0.000100000005f * frandmod(0x3E8) - 0.05f);
var_r31->unk08.y = 1.6666667f * (0.05f + (0.00020000001f * frandmod(0x3E8))); var_r31->unk08.y = 1.6666667f * (0.05f + (0.00020000001f * frandmod(0x3E8)));
var_r31->unk08.z = 1.6666667f * (0.1f + (0.0006f * frandmod(0x3E8))); var_r31->unk08.z = 1.6666667f * (0.1f + (0.0006f * frandmod(0x3E8)));

View file

@ -253,7 +253,7 @@ void fn_1_1E820(ModelData* model, ParticleData* particle, Mtx matrix) {
if (!var_r31->unk2C) { if (!var_r31->unk2C) {
continue; continue;
} }
if (var_r31->unk00_s16 == 0) { if (var_r31->unk00 == 0) {
PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34);
var_r31->unk08.x *= 0.999f; var_r31->unk08.x *= 0.999f;
var_r31->unk08.y -= 0.5f; var_r31->unk08.y -= 0.5f;
@ -262,19 +262,19 @@ void fn_1_1E820(ModelData* model, ParticleData* particle, Mtx matrix) {
PSVECScale(&var_r31->unk08, &var_r31->unk08, 1.0 - ((var_r31->unk02 - (temp_r26 - temp_r26 / 5.0)) / (temp_r26 / 5.0))); PSVECScale(&var_r31->unk08, &var_r31->unk08, 1.0 - ((var_r31->unk02 - (temp_r26 - temp_r26 / 5.0)) / (temp_r26 / 5.0)));
} }
if (var_r31->unk02 == temp_r26) { if (var_r31->unk02 == temp_r26) {
var_r31->unk00_s16++; var_r31->unk00++;
} }
if (var_r31->unk34.y <= 0.0f) { if (var_r31->unk34.y <= 0.0f) {
var_r31->unk08.y = 0.5f * -var_r31->unk08.y; var_r31->unk08.y = 0.5f * -var_r31->unk08.y;
var_r31->unk34.y = 0.0f; var_r31->unk34.y = 0.0f;
} }
} else if (var_r31->unk00_s16 == 1) { } else if (var_r31->unk00 == 1) {
sp8 = temp_r28->unk00[var_r29]; sp8 = temp_r28->unk00[var_r29];
PSVECSubtract(&sp8, &var_r31->unk34, &sp8); PSVECSubtract(&sp8, &var_r31->unk34, &sp8);
if (PSVECMag(&sp8) <= 1.0 + temp_f31) { if (PSVECMag(&sp8) <= 1.0 + temp_f31) {
var_r23++; var_r23++;
var_r31->unk34 = temp_r28->unk00[var_r29]; var_r31->unk34 = temp_r28->unk00[var_r29];
var_r31->unk00_s16++; var_r31->unk00++;
continue; continue;
} }
PSVECNormalize(&sp8, &sp8); PSVECNormalize(&sp8, &sp8);
@ -286,7 +286,7 @@ void fn_1_1E820(ModelData* model, ParticleData* particle, Mtx matrix) {
} else { } else {
var_r23++; var_r23++;
} }
if (var_r31->unk00_s16 >= 1) { if (var_r31->unk00 >= 1) {
var_r27 = var_r31->unk40.r; var_r27 = var_r31->unk40.r;
var_r27 += (var_r27 - 0xFF) / 20; var_r27 += (var_r27 - 0xFF) / 20;
if (var_r27 > 0xFF) { if (var_r27 > 0xFF) {

View file

@ -1942,7 +1942,7 @@ static void LampParticleUpdate(ModelData *model, ParticleData *particle, Mtx mat
var_r31->unk2C = 25.0f; var_r31->unk2C = 25.0f;
temp_f30 = 175.0f + frand8() * 0x50 * 0.003921569f; temp_f30 = 175.0f + frand8() * 0x50 * 0.003921569f;
var_r31->unk40.r = var_r31->unk40.g = var_r31->unk40.b = temp_f30; var_r31->unk40.r = var_r31->unk40.g = var_r31->unk40.b = temp_f30;
var_r31->unk00_s16 = 0; var_r31->unk00 = 0;
} }
} }
} }
@ -1952,7 +1952,7 @@ static void LampParticleUpdate(ModelData *model, ParticleData *particle, Mtx mat
var_r31 = particle->unk_48; var_r31 = particle->unk_48;
for (i = 0; i < particle->unk_30; i++, var_r31++) { for (i = 0; i < particle->unk_30; i++, var_r31++) {
if (var_r31->unk2C != 0.0f) { if (var_r31->unk2C != 0.0f) {
if (var_r31->unk00_s16 == 0) { if (var_r31->unk00 == 0) {
VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34);
VECScale(&var_r31->unk08, &var_r31->unk08, 0.95f); VECScale(&var_r31->unk08, &var_r31->unk08, 0.95f);
var_r31->unk2C += 8.0f; var_r31->unk2C += 8.0f;
@ -1963,7 +1963,7 @@ static void LampParticleUpdate(ModelData *model, ParticleData *particle, Mtx mat
var_r31->unk08.x = 6.0 * cosd(temp_f31); var_r31->unk08.x = 6.0 * cosd(temp_f31);
var_r31->unk08.y = -4.0f; var_r31->unk08.y = -4.0f;
var_r31->unk08.z = 6.0 * sind(temp_f31); var_r31->unk08.z = 6.0 * sind(temp_f31);
var_r31->unk00_s16 = 1; var_r31->unk00 = 1;
} }
var_r31->unk40.a = var_r31->unk14.y; var_r31->unk40.a = var_r31->unk14.y;
} }

View file

@ -911,7 +911,7 @@ static void UpdateEffect(ModelData *model, ParticleData *particle, Mtx matrix)
var_r31->unk40.a = var_r28; var_r31->unk40.a = var_r28;
if (var_r31->unk2C) { if (var_r31->unk2C) {
if (temp_r30[i].unk00 & 1) { if (temp_r30[i].unk00 & 1) {
var_r31->unk2C = var_r31->unk28 * (((var_r31->unk00_s16 + i) & 1) ? 1.0 : 0.5); var_r31->unk2C = var_r31->unk28 * (((var_r31->unk00 + i) & 1) ? 1.0 : 0.5);
} }
else { else {
var_r31->unk2C = var_r31->unk28; var_r31->unk2C = var_r31->unk28;
@ -921,7 +921,7 @@ static void UpdateEffect(ModelData *model, ParticleData *particle, Mtx matrix)
var_r31->unk2C = 0.0f; var_r31->unk2C = 0.0f;
} }
} }
var_r31->unk00_s16++; var_r31->unk00++;
} }
else { else {
switch (var_r31->unk02) { switch (var_r31->unk02) {
@ -947,11 +947,11 @@ static void RotateEffect(HsfanimStruct01 *arg0)
float var_f31; float var_f31;
temp_r30 = &Hu3DData[(s32)arg0->unk08.x]; temp_r30 = &Hu3DData[(s32)arg0->unk08.x];
if (arg0->unk00_s16 < 8) { if (arg0->unk00 < 8) {
var_f31 = 0.3 + sind(40.0f + 10.0f * (arg0->unk00_s16 + 1)); var_f31 = 0.3 + sind(40.0f + 10.0f * (arg0->unk00 + 1));
arg0->unk2C = 50.0f * var_f31 * temp_r30->scale.x; arg0->unk2C = 50.0f * var_f31 * temp_r30->scale.x;
arg0->unk40.a = 0xFF; arg0->unk40.a = 0xFF;
var_f31 = 0.3 + sind(15.0f * (arg0->unk00_s16 + 1)); var_f31 = 0.3 + sind(15.0f * (arg0->unk00 + 1));
} }
else { else {
var_f31 = 0.3 + sind(135); var_f31 = 0.3 + sind(135);
@ -960,14 +960,14 @@ static void RotateEffect(HsfanimStruct01 *arg0)
arg0->unk34.x = temp_r30->pos.x + arg0->unk14.x * var_f31; arg0->unk34.x = temp_r30->pos.x + arg0->unk14.x * var_f31;
arg0->unk34.y = temp_r30->pos.y + arg0->unk08.y * temp_r30->scale.x + arg0->unk14.y * var_f31; arg0->unk34.y = temp_r30->pos.y + arg0->unk08.y * temp_r30->scale.x + arg0->unk14.y * var_f31;
arg0->unk34.z = temp_r30->pos.z + arg0->unk14.z * var_f31; arg0->unk34.z = temp_r30->pos.z + arg0->unk14.z * var_f31;
if (arg0->unk00_s16 > 0x14) { if (arg0->unk00 > 0x14) {
arg0->unk40.a -= 0x20; arg0->unk40.a -= 0x20;
arg0->unk2C -= 8.0f * temp_r30->scale.x; arg0->unk2C -= 8.0f * temp_r30->scale.x;
if (arg0->unk2C < 0.0f) { if (arg0->unk2C < 0.0f) {
arg0->unk2C = 0.0f; arg0->unk2C = 0.0f;
} }
} }
arg0->unk00_s16++; arg0->unk00++;
} }
static float voiceParam[16] static float voiceParam[16]
@ -984,7 +984,7 @@ static void PlayEffectSound(HsfanimStruct01 *arg0)
temp_r28 = arg0->unk08.x; temp_r28 = arg0->unk08.x;
temp_r29 = &charInstance[temp_r28]; temp_r29 = &charInstance[temp_r28];
temp_r30 = &Hu3DData[temp_r29->unk00]; temp_r30 = &Hu3DData[temp_r29->unk00];
if (arg0->unk00_s16 < 0x14 && arg0->unk2C < 40.0f * temp_r30->scale.x) { if (arg0->unk00 < 0x14 && arg0->unk2C < 40.0f * temp_r30->scale.x) {
arg0->unk2C += 4.0f * temp_r30->scale.x; arg0->unk2C += 4.0f * temp_r30->scale.x;
} }
arg0->unk40.a = 0xFF; arg0->unk40.a = 0xFF;
@ -994,15 +994,15 @@ static void PlayEffectSound(HsfanimStruct01 *arg0)
else { else {
var_r25 = voiceParam[temp_r28 * 2 + 1]; var_r25 = voiceParam[temp_r28 * 2 + 1];
} }
temp_r26 = (arg0->unk00_s16 * 5) % 360; temp_r26 = (arg0->unk00 * 5) % 360;
arg0->unk34.x = temp_r30->pos.x + 40.0 * sind(arg0->unk08.y + temp_r26) * temp_r30->scale.x; arg0->unk34.x = temp_r30->pos.x + 40.0 * sind(arg0->unk08.y + temp_r26) * temp_r30->scale.x;
arg0->unk34.y = temp_r30->pos.y + var_r25 * temp_r30->scale.x; arg0->unk34.y = temp_r30->pos.y + var_r25 * temp_r30->scale.x;
arg0->unk34.z = temp_r30->pos.z + 40.0 * cosd(arg0->unk08.y + temp_r26) * temp_r30->scale.x; arg0->unk34.z = temp_r30->pos.z + 40.0 * cosd(arg0->unk08.y + temp_r26) * temp_r30->scale.x;
arg0->unk00_s16++; arg0->unk00++;
if (arg0->unk00_s16 >= 0x8F) { if (arg0->unk00 >= 0x8F) {
arg0->unk00_s16 = 0x48; arg0->unk00 = 0x48;
} }
if (temp_r29->unk04 != 0x15 && temp_r29->unk04 != 0x16 && temp_r29->unk04 != 0x79 && arg0->unk00_s16 > 0x1E) { if (temp_r29->unk04 != 0x15 && temp_r29->unk04 != 0x16 && temp_r29->unk04 != 0x79 && arg0->unk00 > 0x1E) {
arg0->unk2C -= 4.0f * temp_r30->scale.x; arg0->unk2C -= 4.0f * temp_r30->scale.x;
if (arg0->unk2C < 0.0f) { if (arg0->unk2C < 0.0f) {
arg0->unk2C = 0.0f; arg0->unk2C = 0.0f;
@ -1501,7 +1501,7 @@ static void OrbitEffect(HsfanimStruct01 *arg0)
float var_f30; float var_f30;
s16 temp_r30; s16 temp_r30;
var_f30 = 20.0f + 3.75f * arg0->unk00_s16; var_f30 = 20.0f + 3.75f * arg0->unk00;
if (var_f30 > 90.0f) { if (var_f30 > 90.0f) {
var_f30 = 90.0f; var_f30 = 90.0f;
} }
@ -1514,7 +1514,7 @@ static void OrbitEffect(HsfanimStruct01 *arg0)
if (arg0->unk20 < 1.0f) { if (arg0->unk20 < 1.0f) {
arg0->unk20 = 1.0f; arg0->unk20 = 1.0f;
} }
if (arg0->unk00_s16 > 8) { if (arg0->unk00 > 8) {
temp_r30 = arg0->unk40.a; temp_r30 = arg0->unk40.a;
temp_r30 -= 8; temp_r30 -= 8;
if (temp_r30 < 0) { if (temp_r30 < 0) {
@ -1525,7 +1525,7 @@ static void OrbitEffect(HsfanimStruct01 *arg0)
arg0->unk40.a = temp_r30; arg0->unk40.a = temp_r30;
} }
} }
arg0->unk00_s16++; arg0->unk00++;
} }
static EffectParamData coinParticleParam static EffectParamData coinParticleParam

View file

@ -55,7 +55,7 @@ s16 Hu3DAnimCreate(void *arg0, s16 arg1, char *arg2) {
Hu3DTexAnimDataStruct *var_r31; Hu3DTexAnimDataStruct *var_r31;
HsfAttribute *var_r29; HsfAttribute *var_r29;
HsfData *temp_r27; HsfData *temp_r27;
HsfanimStruct01 *var_r30; HsfdrawStruct01 *var_r30;
s16 i; s16 i;
s16 var_r25; s16 var_r25;
s16 var_r28; s16 var_r28;
@ -75,7 +75,7 @@ s16 Hu3DAnimCreate(void *arg0, s16 arg1, char *arg2) {
for (i = var_r25 = 0; i < temp_r27->attributeCnt; i++, var_r29++) { for (i = var_r25 = 0; i < temp_r27->attributeCnt; i++, var_r29++) {
if (strcmp(arg2, var_r29->bitmap->name) == 0) { if (strcmp(arg2, var_r29->bitmap->name) == 0) {
if (!var_r29->unk04) { if (!var_r29->unk04) {
var_r30 = HuMemDirectMallocNum(HEAP_DATA, sizeof(HsfanimStruct01), (u32) Hu3DData[arg1].unk_48); var_r30 = HuMemDirectMallocNum(HEAP_DATA, sizeof(*var_r30), (u32) Hu3DData[arg1].unk_48);
var_r29->unk04 = var_r30; var_r29->unk04 = var_r30;
var_r30->unk00 = 0; var_r30->unk00 = 0;
} else { } else {
@ -84,7 +84,7 @@ s16 Hu3DAnimCreate(void *arg0, s16 arg1, char *arg2) {
var_r30->unk00 |= 1; var_r30->unk00 |= 1;
var_r30->unk02 = var_r28; var_r30->unk02 = var_r28;
var_r30->unk2C = var_r30->unk30 = 1.0f; var_r30->unk2C = var_r30->unk30 = 1.0f;
var_r30->unk34.x = var_r30->unk34.y = 0.0f; var_r30->unk34 = var_r30->unk38 = 0.0f;
var_r25++; var_r25++;
} }
} }
@ -112,7 +112,7 @@ s16 Hu3DAnimLink(s16 arg0, s16 arg1, char *arg2) {
AnimData *temp_r4; AnimData *temp_r4;
HsfAttribute *var_r29; HsfAttribute *var_r29;
HsfData *temp_r27; HsfData *temp_r27;
HsfanimStruct01 *var_r30; HsfdrawStruct01 *var_r30;
s16 var_r28; s16 var_r28;
s16 i; s16 i;
s16 var_r25; s16 var_r25;
@ -132,14 +132,14 @@ s16 Hu3DAnimLink(s16 arg0, s16 arg1, char *arg2) {
for (i = var_r25 = 0; i < temp_r27->attributeCnt; i++, var_r29++) { for (i = var_r25 = 0; i < temp_r27->attributeCnt; i++, var_r29++) {
if (strcmp(arg2, var_r29->bitmap->name) == 0) { if (strcmp(arg2, var_r29->bitmap->name) == 0) {
if (!var_r29->unk04) { if (!var_r29->unk04) {
var_r30 = HuMemDirectMallocNum(HEAP_DATA, sizeof(HsfanimStruct01), (u32) Hu3DData[arg1].unk_48); var_r30 = HuMemDirectMallocNum(HEAP_DATA, sizeof(*var_r30), (u32) Hu3DData[arg1].unk_48);
var_r29->unk04 = var_r30; var_r29->unk04 = var_r30;
} else { } else {
var_r30 = var_r29->unk04; var_r30 = var_r29->unk04;
} }
var_r30->unk02 = var_r28; var_r30->unk02 = var_r28;
var_r30->unk2C = var_r30->unk30 = 1.0f; var_r30->unk2C = var_r30->unk30 = 1.0f;
var_r30->unk34.x = var_r30->unk34.y = 0.0f; var_r30->unk34 = var_r30->unk38 = 0.0f;
var_r25++; var_r25++;
} }
} }
@ -162,7 +162,7 @@ void Hu3DAnimKill(s16 arg0) {
Hu3DTexAnimDataStruct *temp_r31 = &Hu3DTexAnimData[arg0]; Hu3DTexAnimDataStruct *temp_r31 = &Hu3DTexAnimData[arg0];
HsfData *temp_r28 = Hu3DData[temp_r31->unk06].hsfData; HsfData *temp_r28 = Hu3DData[temp_r31->unk06].hsfData;
HsfAttribute *var_r30; HsfAttribute *var_r30;
HsfanimStruct01 *temp_r29; HsfdrawStruct01 *temp_r29;
s16 i; s16 i;
if (temp_r28) { if (temp_r28) {
@ -242,7 +242,7 @@ void Hu3DAnmNoSet(s16 arg0, u16 arg1) {
} }
s32 Hu3DAnimSet(ModelData *arg0, HsfAttribute *arg1, s16 arg2) { s32 Hu3DAnimSet(ModelData *arg0, HsfAttribute *arg1, s16 arg2) {
HsfanimStruct01 *temp_r30; HsfdrawStruct01 *temp_r30;
Hu3DTexAnimDataStruct *temp_r29; Hu3DTexAnimDataStruct *temp_r29;
AnimData *temp_r27; AnimData *temp_r27;
AnimBmpData *temp_r28; AnimBmpData *temp_r28;
@ -268,8 +268,8 @@ s32 Hu3DAnimSet(ModelData *arg0, HsfAttribute *arg1, s16 arg2) {
(arg0->attr & HU3D_ATTR_TEX_NEAR) ? GX_NEAR : GX_LINEAR); (arg0->attr & HU3D_ATTR_TEX_NEAR) ? GX_NEAR : GX_LINEAR);
temp_r30->unk2C = (float) temp_r31->sizeX / temp_r28->sizeX; temp_r30->unk2C = (float) temp_r31->sizeX / temp_r28->sizeX;
temp_r30->unk30 = (float) temp_r31->sizeY / temp_r28->sizeY; temp_r30->unk30 = (float) temp_r31->sizeY / temp_r28->sizeY;
temp_r30->unk34.x = (float) temp_r31->startX / temp_r28->sizeX; temp_r30->unk34 = (float) temp_r31->startX / temp_r28->sizeX;
temp_r30->unk34.y = (float) temp_r31->startY / temp_r28->sizeY; temp_r30->unk38 = (float) temp_r31->startY / temp_r28->sizeY;
return 1; return 1;
} }
@ -359,7 +359,7 @@ s16 Hu3DTexScrollCreate(s16 arg0, char *arg1) {
Hu3DTexScrDataStruct *var_r31; Hu3DTexScrDataStruct *var_r31;
HsfData *temp_r27; HsfData *temp_r27;
HsfAttribute *var_r29; HsfAttribute *var_r29;
HsfanimStruct01 *var_r30; HsfdrawStruct01 *var_r30;
s16 i; s16 i;
s16 var_r25; s16 var_r25;
s16 var_r28; s16 var_r28;
@ -379,7 +379,7 @@ s16 Hu3DTexScrollCreate(s16 arg0, char *arg1) {
for (i = var_r25 = 0; i < temp_r27->attributeCnt; i++, var_r29++) { for (i = var_r25 = 0; i < temp_r27->attributeCnt; i++, var_r29++) {
if (strcmp(arg1, var_r29->bitmap->name) == 0) { if (strcmp(arg1, var_r29->bitmap->name) == 0) {
if (!var_r29->unk04) { if (!var_r29->unk04) {
var_r30 = HuMemDirectMallocNum(HEAP_DATA, sizeof(HsfanimStruct01), (u32) Hu3DData[arg0].unk_48); var_r30 = HuMemDirectMallocNum(HEAP_DATA, sizeof(*var_r30), (u32) Hu3DData[arg0].unk_48);
var_r29->unk04 = var_r30; var_r29->unk04 = var_r30;
var_r30->unk00 = 0; var_r30->unk00 = 0;
} else { } else {
@ -388,7 +388,7 @@ s16 Hu3DTexScrollCreate(s16 arg0, char *arg1) {
var_r30->unk00 |= 2; var_r30->unk00 |= 2;
var_r30->unk04 = var_r28; var_r30->unk04 = var_r28;
var_r30->unk2C = var_r30->unk30 = 1.0f; var_r30->unk2C = var_r30->unk30 = 1.0f;
var_r30->unk34.x = var_r30->unk34.y = 0.0f; var_r30->unk34 = var_r30->unk38 = 0.0f;
var_r25++; var_r25++;
} }
} }
@ -408,7 +408,7 @@ void Hu3DTexScrollKill(s16 arg0) {
Hu3DTexScrDataStruct *temp_r28 = &Hu3DTexScrData[arg0]; Hu3DTexScrDataStruct *temp_r28 = &Hu3DTexScrData[arg0];
HsfData *temp_r29 = Hu3DData[temp_r28->unk02].hsfData; HsfData *temp_r29 = Hu3DData[temp_r28->unk02].hsfData;
HsfAttribute *var_r31; HsfAttribute *var_r31;
HsfanimStruct01 *temp_r30; HsfdrawStruct01 *temp_r30;
s16 i; s16 i;
if (temp_r29) { if (temp_r29) {
@ -1241,7 +1241,7 @@ static void ParManHook(ModelData *model, ParticleData *particle, Mtx matrix) {
var_r29->unk2C = var_r29->unk28; var_r29->unk2C = var_r29->unk28;
} }
if (!(temp_r28->unk02 & 0x80)) { if (!(temp_r28->unk02 & 0x80)) {
sp8 = var_r29->unk00_s16; sp8 = var_r29->unk00;
var_r29->unk34.x += var_r29->unk08.x + var_r29->unk14.x; var_r29->unk34.x += var_r29->unk08.x + var_r29->unk14.x;
var_r29->unk34.y += var_r29->unk08.y + var_r29->unk14.y; var_r29->unk34.y += var_r29->unk08.y + var_r29->unk14.y;
var_r29->unk34.z += var_r29->unk08.z + var_r29->unk14.z; var_r29->unk34.z += var_r29->unk08.z + var_r29->unk14.z;
@ -1261,7 +1261,7 @@ static void ParManHook(ModelData *model, ParticleData *particle, Mtx matrix) {
} }
} }
var_r29->unk28 *= temp_r26->unk28; var_r29->unk28 *= temp_r26->unk28;
var_f30 = (float) var_r29->unk00_s16 / temp_r26->unk00; var_f30 = (float) var_r29->unk00 / temp_r26->unk00;
if (var_f30 > 1.0f) { if (var_f30 > 1.0f) {
var_f30 = 1.0f; var_f30 = 1.0f;
} }
@ -1272,10 +1272,10 @@ static void ParManHook(ModelData *model, ParticleData *particle, Mtx matrix) {
var_r29->unk40.g = temp_r27->g + var_f30 * (temp_r24->g - temp_r27->g); var_r29->unk40.g = temp_r27->g + var_f30 * (temp_r24->g - temp_r27->g);
var_r29->unk40.b = temp_r27->b + var_f30 * (temp_r24->b - temp_r27->b); var_r29->unk40.b = temp_r27->b + var_f30 * (temp_r24->b - temp_r27->b);
var_r29->unk40.a = temp_r27->a + var_f30 * (temp_r24->a - temp_r27->a); var_r29->unk40.a = temp_r27->a + var_f30 * (temp_r24->a - temp_r27->a);
if (var_r29->unk2C < 0.01 || var_r29->unk00_s16 >= temp_r26->unk00) { if (var_r29->unk2C < 0.01 || var_r29->unk00 >= temp_r26->unk00) {
var_r29->unk2C = 0.0f; var_r29->unk2C = 0.0f;
} }
var_r29->unk00_s16++; var_r29->unk00++;
} }
} }
} }