Fix HsfanimStruct01 union shenanigans

This commit is contained in:
mrshigure 2025-01-26 12:44:36 -08:00
parent 6d3de7672c
commit 5fd58d4340
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 struct {
/* 0x00 */ union {
u16 unk00;
s16 unk00_s16;
};
/* 0x00 */ s16 unk00;
/* 0x02 */ s16 unk02;
/* 0x04 */ s16 unk04;
/* 0x06 */ s16 unk06;

View file

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

View file

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

View file

@ -449,15 +449,15 @@ void fn_1_A37C(ModelData *model, ParticleData *particle, Mtx matrix)
else {
temp_r31 = particle->unk_48;
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.y += temp_r31->unk08.y;
temp_r31->unk34.z += temp_r31->unk08.z;
temp_r31->unk2C += temp_r31->unk14.x;
temp_r31->unk14.y -= temp_r31->unk14.z;
temp_r31->unk40.a = temp_r31->unk14.y;
if (--temp_r31->unk00_s16 == 0) {
temp_r31->unk00_s16 = 0;
if (--temp_r31->unk00 == 0) {
temp_r31->unk00 = 0;
temp_r31->unk2C = 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) {
temp_r31 = temp_r30->unk_48;
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;
}
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.y = 12000;
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->unk40.a = frandmod(127) + 64;
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_r31->unk40.r = (temp_f31 * 55) + 200;
temp_r31->unk40.g = (temp_f31 * 50) + 205;
@ -549,7 +549,7 @@ void fn_1_A894(ModelData *model, ParticleData *particle, Mtx matrix)
else {
temp_r31 = particle->unk_48;
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;
}
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_f30 = 0;
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;
}
temp_f30 += 1.0f / particle->unk_30;
@ -751,15 +751,15 @@ void fn_1_BDE0(void)
Vec sp14;
Vec sp8;
temp_r31 = lbl_1_bss_A4[0];
temp_r31->unk00_s16++;
if (temp_r31->unk00_s16 < 339.0f) {
temp_r31->unk00++;
if (temp_r31->unk00 < 339.0f) {
return;
}
if (temp_r31->unk00_s16 >= 600.0f) {
temp_r31->unk00_s16 = 601;
if (temp_r31->unk00 >= 600.0f) {
temp_r31->unk00 = 601;
for (temp_r30 = 0; temp_r30 < lbl_1_bss_A0; 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->unk40.a = 0;
}

View file

@ -1127,7 +1127,7 @@ void fn_1_5AB4(ModelData *model, ParticleData *particle, Mtx matrix)
}
temp_r31 = particle->unk_48;
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;
}
temp_r31->unk02++;
@ -1163,7 +1163,7 @@ void fn_1_5DCC(s32 arg0, Vec *arg1, u32 arg2)
if (temp_r29->unk_00 != 0) {
temp_r31 = temp_r29->unk_48;
for (temp_r28 = 0; temp_r28 < temp_r29->unk_30; temp_r28++, temp_r31++) {
if (temp_r31->unk00_s16) {
if (temp_r31->unk00) {
continue;
}
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->unk00_s16--;
if (temp_r31->unk00_s16 <= 0) {
temp_r31->unk00--;
if (temp_r31->unk00 <= 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->unk00_s16--;
if (temp_r31->unk00_s16 <= 0) {
temp_r31->unk00--;
if (temp_r31->unk00 <= 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_r29->unk_1C = temp_r30;
temp_r30->unk00_s16 = temp_r28;
temp_r30->unk00 = temp_r28;
temp_r30->unk02 = 0;
for (temp_r31 = 0; temp_r31 < 32; temp_r31++) {
// 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++) {
temp_r31 = particle->unk_48;
for (temp_r27 = 0; temp_r27 < particle->unk_30; temp_r27++, temp_r31++) {
if (!temp_r31->unk00_s16) {
if (!temp_r31->unk00) {
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.1f;
temp_r31->unk40.a = 255;
temp_r31->unk00_s16 = 30;
temp_r31->unk00 = 30;
}
break;
}
temp_r31 = particle->unk_48;
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;
}
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;
if (temp_r31->unk40.a < 2) {
temp_r31->unk40.a = 0;
temp_r31->unk00_s16 = 0;
temp_r31->unk00 = 0;
particle->unk_00++;
}
}
@ -566,7 +566,7 @@ void fn_1_E310(ModelData *model, ParticleData *particle, Mtx matrix)
temp_f30 = 360.0f / particle->unk_30;
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_r26 = (temp_f30 * temp_r28) + (int)((temp_f30 * 0.5f) * ((1.0 / 32768.0) * (float)(fn_1_11670() - 32768)));
temp_r31->unk20 = temp_r26;
@ -598,15 +598,15 @@ void fn_1_E310(ModelData *model, ParticleData *particle, Mtx matrix)
case 1:
temp_r31 = particle->unk_48;
for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) {
temp_r31->unk00_s16 += 4;
if (temp_r31->unk00_s16 >= 360) {
temp_r31->unk00_s16 -= 360;
temp_r31->unk00 += 4;
if (temp_r31->unk00 >= 360) {
temp_r31->unk00 -= 360;
}
temp_r31->unk34.x = temp_r31->unk14.x;
temp_r31->unk34.y = temp_r31->unk14.y;
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->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;
}
@ -627,7 +627,7 @@ void fn_1_E9B4(ModelData *model, ParticleData *particle, Mtx matrix)
case 0:
temp_r31 = particle->unk_48;
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_r27 = fn_1_11670() % 360;
temp_r31->unk20 = temp_r27;
@ -653,14 +653,14 @@ void fn_1_E9B4(ModelData *model, ParticleData *particle, Mtx matrix)
case 1:
temp_r31 = particle->unk_48;
for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) {
temp_r31->unk00_s16 += 2;
if (temp_r31->unk00_s16 >= 360) {
temp_r31->unk00_s16 -= 360;
temp_r31->unk00 += 2;
if (temp_r31->unk00 >= 360) {
temp_r31->unk00 -= 360;
}
temp_r31->unk34.x = temp_r31->unk14.x;
temp_r31->unk34.y = temp_r31->unk14.y;
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;
}
@ -718,7 +718,7 @@ void fn_1_F06C(ModelData *model, ParticleData *particle, Mtx matrix)
case 0:
temp_r31 = particle->unk_48;
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++;
break;
@ -726,8 +726,8 @@ void fn_1_F06C(ModelData *model, ParticleData *particle, Mtx matrix)
case 1:
temp_r31 = particle->unk_48;
for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) {
if (temp_r31->unk00_s16) {
temp_r31->unk00_s16--;
if (temp_r31->unk00) {
temp_r31->unk00--;
continue;
}
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.b = 160;
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->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.z = (4.0f * (((1.0f / 256.0f) * ((s32)frand() & 0x1FF)) - 1));
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_f29 = temp_f28 = 0;
@ -1620,7 +1620,7 @@ void fn_1_613C(ModelData *model, ParticleData *particle, Mtx matrix)
}
temp_r31 = particle->unk_48;
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_r31->unk34.x += temp_f29 * temp_f31;
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_f31 = 0.5 * (1 + sind(270.0f * temp_f30));
temp_r31->unk2C = temp_f31 * (temp_r31->unk08.x * temp_f31);
temp_r31->unk00_s16 += temp_r31->unk02;
if (temp_r31->unk00_s16 > 255) {
temp_r31->unk00 += temp_r31->unk02;
if (temp_r31->unk00 > 255) {
temp_r31->unk34.x = (4.0f * (((1.0f / 256.0f) * ((s32)frand() & 0x1FF)) - 1));
temp_r31->unk34.y = 0;
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));
@ -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->unk40.r = temp_r31->unk40.g = temp_r31->unk40.b = 255;
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 {
@ -1674,25 +1674,25 @@ void fn_1_6640(ModelData *model, ParticleData *particle, Mtx matrix)
temp_r27 = 0;
temp_r31 = particle->unk_48;
for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r31++, temp_r28++) {
if (temp_r31->unk00_s16 >= 0) {
if (temp_r31->unk00_s16 == 0) {
if (temp_r31->unk00 >= 0) {
if (temp_r31->unk00 == 0) {
temp_r31->unk34.x += temp_r31->unk08.x + temp_f29;
temp_r31->unk34.y += temp_r31->unk08.y;
temp_r31->unk34.z += temp_r31->unk08.z + temp_f28;
temp_r31->unk08.y += -1.0000001f;
if (temp_r31->unk40.a) {
if (--temp_r31->unk40.a == 0) {
temp_r31->unk00_s16 = -1;
temp_r31->unk00 = -1;
}
}
if (temp_r31->unk34.y < 0.0f) {
temp_r31->unk34.y = 0;
temp_r31->unk00_s16 = -1;
temp_r31->unk00 = -1;
temp_r31->unk40.a = 0;
}
}
else {
if (--temp_r31->unk00_s16 == 0) {
if (--temp_r31->unk00 == 0) {
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.z = 100.0f * (0.05f * (((1.0f / 256.0f) * ((s32)frand() & 0x1FF)) - 1.0f));
temp_r31->unk40.a = 128;
temp_r31->unk00_s16 = 0;
temp_r31->unk00 = 0;
}
}
temp_r31 = particle->unk_48;
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++;
continue;
}
@ -1746,7 +1746,7 @@ void fn_1_6AE8(ModelData *model, ParticleData *particle, Mtx matrix)
temp_r28 = temp_r31->unk40.a;
temp_r28 -= 4;
if (temp_r28 < 0) {
temp_r31->unk00_s16 = -1;
temp_r31->unk00 = -1;
temp_r28 = 0;
}
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++;
var_r31 = particle->unk_48;
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->unk40.a = 0;
}
@ -900,16 +900,16 @@ void fn_1_6B94(ModelData *model, ParticleData *particle, float (*matrix)[4])
}
var_r31 = particle->unk_48;
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.y += var_r31->unk08.y;
var_r31->unk34.z += var_r31->unk08.z;
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;
}
if (!(--var_r31->unk00_s16)) {
var_r31->unk00_s16 = 0;
if (!(--var_r31->unk00)) {
var_r31->unk00 = 0;
var_r31->unk2C = 0.0f;
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;
}
for (var_r29 = 0; var_r29 < var_r30->unk_30; var_r29++, var_r31++) {
if (var_r31->unk00_s16) {
if (var_r31->unk00) {
continue;
}
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;
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);
var_r31->unk2C += 2.0f;
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;
}
if (--var_r31->unk00_s16 == 0) {
if (--var_r31->unk00 == 0) {
var_r31->unk00 = 0;
var_r31->unk2C = 0.0f;
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];
var_r26 = 0x64;
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;
}
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_f30 = frandmod(0x168);
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) {
var_r31 = particle->unk_48;
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->unk2C = 0.0f;
}
@ -1410,7 +1410,7 @@ void fn_1_9410(ModelData *model, ParticleData *particle, Mtx matrix)
if (particle->unk_34 >= 255) {
var_r31 = particle->unk_48;
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->unk2C = 0.0f;
}
@ -1423,7 +1423,7 @@ void fn_1_9410(ModelData *model, ParticleData *particle, Mtx matrix)
}
var_r31 = particle->unk_48;
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.y = 72.0f;
temp_f31 = frandu8() * 360 / 256;
@ -1440,7 +1440,7 @@ void fn_1_9410(ModelData *model, ParticleData *particle, Mtx matrix)
var_r31->unk2C = 50.0f;
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);
var_r31->unk08.x *= 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->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) {
case 0:
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++;
break;
case 1:
for (var_r31 = particle->unk_48, var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) {
if (var_r31->unk00_s16 != 0) {
var_r31->unk00_s16--;
if (var_r31->unk00 != 0) {
var_r31->unk00--;
}
else {
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.b = 0xA0;
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->unk40.r = 0xC0;
var_r31->unk40.g = 0xE0;

View file

@ -631,7 +631,7 @@ void fn_1_6280(ModelData *arg1, ParticleData *particle, Mtx matrix)
break;
}
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:
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;
@ -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->unk02 = 0;
var_r27++;
var_r31->unk00_s16++;
var_r31->unk00++;
}
break;
case 1:

View file

@ -2044,7 +2044,7 @@ void fn_1_11D70(void)
var_r25 = &Hu3DData[var_r31->unk_04];
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++) {
if (++var_r30->unk00_s16 > var_r30->unk02) {
if (++var_r30->unk00 > var_r30->unk02) {
var_r24 = var_r30->unk40.a - 9;
if (var_r24 < 0) {
var_r30->unk2C = 0.0f;

View file

@ -1637,15 +1637,15 @@ void fn_1_AD04(ModelData *model, ParticleData *particle, Mtx matrix)
return;
}
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);
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->unk2C += 1.5f;
if (--var_r31->unk00_s16 == 0) {
var_r31->unk00_s16 = 0;
if (--var_r31->unk00 == 0) {
var_r31->unk00 = 0;
var_r31->unk2C = 0.0f;
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_f28 = 30.0f;
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_f30 = (0.002f * frandmod(0x3E8)) - 1.0f;
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)) {
var_r30->unk_00++;
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->unk40.a = 0;
}
return;
}
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) {
var_r31->unk00_s16--;
if (var_r31->unk00 != 0) {
var_r31->unk00--;
VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34);
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;
}
if ((var_r31->unk34.y < -40.0f) || (var_r31->unk00_s16 == 0)) {
var_r31->unk00_s16 = 0;
if ((var_r31->unk34.y < -40.0f) || (var_r31->unk00 == 0)) {
var_r31->unk00 = 0;
var_r31->unk2C = 0.0f;
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);
sp1C.x = 0.0f;
for (var_r29 = 0; var_r29 < var_r30->unk_30; var_r29++, var_r31++) {
if (var_r31->unk00_s16 == 0) {
var_r31->unk00_s16 = 60.0f * (0.5f + (0.0005f * frandmod(0x3E8)));
if (var_r31->unk00 == 0) {
var_r31->unk00 = 60.0f * (0.5f + (0.0005f * frandmod(0x3E8)));
var_f30 = (0.002f * frandmod(0x3E8)) - 1.0f;
var_f30 = arg8 + sp14[var_r29 & 1] + (var_f30 * var_f28);
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++) {
var_r27->unk2C = 0.0f;
var_r27->unk40.a = 0;
var_r27->unk00_s16 = 0;
var_r27->unk00 = 0;
}
object->model[9] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M433, 2));
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;
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);
var_r31->unk08.x *= 0.92f;
var_r31->unk08.z *= 0.92f;
var_r31->unk08.y += -0.27222225f;
var_r31->unk2C += 2.0f;
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;
}
if (--var_r31->unk00_s16 == 0) {
var_r31->unk00_s16 = 0;
if (--var_r31->unk00 == 0) {
var_r31->unk00 = 0;
var_r31->unk2C = 0.0f;
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_r28 = 3.0f + (12.0f * arg8);
for (var_r29 = 0; var_r29 < 0xC8; var_r29++, var_r31++) {
if (var_r31->unk00_s16 == 0) {
var_r31->unk00_s16 = 60.0f * (0.6f + (0.0006f * frandmod(0x3E8)));
if (var_r31->unk00 == 0) {
var_r31->unk00 = 60.0f * (0.6f + (0.0006f * frandmod(0x3E8)));
var_f30 = frandmod(0x168);
sp8.x = sind(var_f30);
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;
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);
var_r31->unk08.x *= 0.95f;
var_r31->unk08.z *= 0.95f;
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;
}
if (--var_r31->unk00_s16 == 0) {
if (--var_r31->unk00 == 0) {
var_r31->unk00 = 0;
var_r31->unk2C = 0.0f;
var_r31->unk40.a = 0;
@ -404,16 +404,16 @@ void fn_1_C8E8(ModelData *model, ParticleData *particle, Mtx matrix)
var_r31 = particle->unk_48;
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);
var_r31->unk08.x *= 0.92f;
var_r31->unk08.z *= 0.92f;
var_r31->unk2C += 5.0f;
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;
}
if (--var_r31->unk00_s16 == 0) {
if (--var_r31->unk00 == 0) {
var_r31->unk00 = 0;
var_r31->unk2C = 0.0f;
var_r31->unk40.a = 0;
@ -440,8 +440,8 @@ void fn_1_CAB0(f32 arg8)
for (var_r30 = 0; var_r30 < 0x96; var_r30++) {
var_r31 = lbl_1_bss_E34[var_r30];
if (var_r31->unk00_s16 == 0) {
var_r31->unk00_s16 = 60.0f * (0.6f + (0.0006f * frandmod(0x3E8)));
if (var_r31->unk00 == 0) {
var_r31->unk00 = 60.0f * (0.6f + (0.0006f * frandmod(0x3E8)));
temp_f31 = ((0.002f * frandmod(0x3E8)) - 1.0f);
temp_f31 = arg8 + (temp_f31 * temp_f28);
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_r29 = 0xF;
for (var_r30 = 0; var_r30 < 0x32; var_r30++, var_r31++) {
if (var_r31->unk00_s16 == 0) {
var_r31->unk00_s16 = 60.0f * (0.6f + (0.0006f * frandmod(0x3E8)));
if (var_r31->unk00 == 0) {
var_r31->unk00 = 60.0f * (0.6f + (0.0006f * frandmod(0x3E8)));
temp_f31 = ((0.002f * frandmod(0x3E8)) - 1.0f);
temp_f31 = arg8 + (temp_f31 * temp_f28);
sp8.x = sind(temp_f31);
@ -513,14 +513,14 @@ void fn_1_D3FC(ModelData *model, ParticleData *particle, Mtx matrix)
lbl_1_bss_E2C = 0;
var_r31 = particle->unk_48;
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);
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);
}
if (--var_r31->unk00_s16 == 0) {
var_r31->unk00_s16 = 0;
if (--var_r31->unk00 == 0) {
var_r31->unk00 = 0;
var_r31->unk2C = 0.0f;
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));
for (var_r30 = 0; var_r30 < 0x1F4; var_r30++, var_r31++) {
if (var_r31->unk00_s16 == 0) {
var_r31->unk00_s16 = 60.0f * (0.3f + (0.0003f * frandmod(0x3E8)));
if (var_r31->unk00 == 0) {
var_r31->unk00 = 60.0f * (0.3f + (0.0003f * frandmod(0x3E8)));
var_r31->unk34 = *arg0;
var_r31->unk34.x += 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;
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);
var_r31->unk08.z -= 0.3f;
var_r31->unk2C += 2.0f;
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;
}
if (--var_r31->unk00_s16 == 0) {
if (--var_r31->unk00 == 0) {
var_r31->unk00 = 0;
var_r31->unk2C = 0.0f;
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;
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;
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);
temp_f31 = 0.030000001f * 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) {
particle->unk_00 = 1;
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->unk2C = 0.0f;
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++) {
if (var_r31->unk00_s16 > 0 && --var_r31->unk00_s16 > 0) {
if (var_r31->unk00 > 0 && --var_r31->unk00 > 0) {
continue;
}
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++) {
if (var_r31->unk00_s16 < 0) {
if (var_r31->unk00 < 0) {
continue;
}
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) {
var_r31 = particle->unk_48;
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->unk2C = 0.0f;
}
@ -1511,8 +1511,8 @@ void fn_1_7DC4(ModelData *model, ParticleData *particle, Mtx matrix)
}
var_r31 = particle->unk_48;
for (i = 0; i < particle->unk_30; i++, var_r31++) {
if (var_r31->unk00_s16 == 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;
if (var_r31->unk00 == 100) {
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.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);
@ -1523,14 +1523,14 @@ void fn_1_7DC4(ModelData *model, ParticleData *particle, Mtx matrix)
var_r31->unk30 = 0.785f;
var_r31->unk2C = 40.0f;
}
if (var_r31->unk00_s16 <= 100) {
if (var_r31->unk00 <= 100) {
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->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++) {
if (var_r31->unk00_s16 == 1) {
if (var_r31->unk00 == 1) {
var_f31 = ((frand() & 0xFF) * 0x168) >> 8;
var_f30 = 0.5 + (1.5 * (rand8() / 256.0));
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->unk2C = 50.0f;
}
if (var_r31->unk00_s16 < 0xF0) {
if (var_r31->unk00 < 0xF0) {
VECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34);
var_r31->unk08.x *= 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->unk00_s16 += var_r31->unk00_s16 < 0x8000;
if (var_r31->unk00_s16 >= 0xF0) {
var_r31->unk00 += var_r31->unk00 < 0x8000;
if (var_r31->unk00 >= 0xF0) {
var_r31->unk40.a = 0;
var_r31->unk2C = 0.0f;
}

View file

@ -1096,7 +1096,7 @@ void fn_1_6A6C(omObjData *object)
HsfanimStruct01 *data = particleP->unk_48;
s32 j;
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;
if(alpha < 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.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->unk00_s16 = 0;
temp_r30->unk00 = 0;
temp_r30->unk02 = ((s32)frand()%16)+45;
temp_r30->unk30 = (s32)frand()%360;
temp_r30->unk2C = 145;
@ -1280,10 +1280,10 @@ void fn_1_76B0(omObjData *object)
if(temp_r30->unk2C <= 0.0f) {
continue;
}
if(++temp_r30->unk00_s16 > 360) {
temp_r30->unk00_s16 -= 360;
if(++temp_r30->unk00 > 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;
if(temp_r30->unk34.y >= 0.0f) {
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.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->unk00_s16 = (s32)frand()%360;
temp_r31->unk00 = (s32)frand()%360;
temp_r31->unk2C = 20*scale;
return i;
}
@ -1804,4 +1804,4 @@ float fn_1_9F18(float start, float end, float max)
}
return angle;
}
}

View file

@ -991,7 +991,7 @@ void fn_1_659C(omObjData *object)
HsfanimStruct01 *data = particleP->unk_48;
s32 j;
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;
if (alpha < 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.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->unk00_s16 = 0;
temp_r30->unk00 = 0;
temp_r30->unk02 = ((s32)frand() % 16) + 45;
temp_r30->unk30 = (s32)frand() % 360;
temp_r30->unk2C = 145.0f;
@ -1174,10 +1174,10 @@ void fn_1_71E0(omObjData *object)
if (temp_r30->unk2C <= 0.0f) {
continue;
}
if (++temp_r30->unk00_s16 > 360) {
temp_r30->unk00_s16 -= 360;
if (++temp_r30->unk00 > 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;
if (temp_r30->unk34.y >= 0.0f) {
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.y = (1.5f + (0.2f * (0.007874016f * ((s32)frand() & 0x7F)))) * 2.0f;
#endif
temp_r31->unk00_s16 = (s32)frand() % 360;
temp_r31->unk00 = (s32)frand() % 360;
temp_r31->unk2C = 20 * scale;
return i;
}

View file

@ -408,7 +408,7 @@ void fn_1_7B94(s32 arg0)
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++) {
if (var_r31->unk00_s16 != 0) {
if (var_r31->unk00 != 0) {
VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34);
switch (var_r31->unk02) {
case 0:
@ -425,11 +425,11 @@ void fn_1_7B94(s32 arg0)
var_r31->unk20 *= 0.995f;
break;
}
if (var_r31->unk00_s16 < 12.0f) {
if (var_r31->unk00 < 12.0f) {
var_r31->unk20 = 0.9f * 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->unk2C = 0.0f;
var_r31->unk40.a = 0;
@ -459,7 +459,7 @@ void fn_1_7DA8(omObjData *object, Vec *arg1, u32 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++) {
if (var_r31->unk00_s16 == 0) {
if (var_r31->unk00 == 0) {
var_r31->unk02 = arg2;
sp1C.x = 100.0f * ((0.0026f * frandmod(0x3E8)) - 1.3f);
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);
switch (arg2) {
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.y = 1.6666667f * (0.05f + (0.00020000001f * 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) {
continue;
}
if (var_r31->unk00_s16 == 0) {
if (var_r31->unk00 == 0) {
PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34);
var_r31->unk08.x *= 0.999f;
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)));
}
if (var_r31->unk02 == temp_r26) {
var_r31->unk00_s16++;
var_r31->unk00++;
}
if (var_r31->unk34.y <= 0.0f) {
var_r31->unk08.y = 0.5f * -var_r31->unk08.y;
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];
PSVECSubtract(&sp8, &var_r31->unk34, &sp8);
if (PSVECMag(&sp8) <= 1.0 + temp_f31) {
var_r23++;
var_r31->unk34 = temp_r28->unk00[var_r29];
var_r31->unk00_s16++;
var_r31->unk00++;
continue;
}
PSVECNormalize(&sp8, &sp8);
@ -286,7 +286,7 @@ void fn_1_1E820(ModelData* model, ParticleData* particle, Mtx matrix) {
} else {
var_r23++;
}
if (var_r31->unk00_s16 >= 1) {
if (var_r31->unk00 >= 1) {
var_r27 = var_r31->unk40.r;
var_r27 += (var_r27 - 0xFF) / 20;
if (var_r27 > 0xFF) {

View file

@ -1942,7 +1942,7 @@ static void LampParticleUpdate(ModelData *model, ParticleData *particle, Mtx mat
var_r31->unk2C = 25.0f;
temp_f30 = 175.0f + frand8() * 0x50 * 0.003921569f;
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;
for (i = 0; i < particle->unk_30; i++, var_r31++) {
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);
VECScale(&var_r31->unk08, &var_r31->unk08, 0.95f);
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.y = -4.0f;
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;
}

View file

@ -911,7 +911,7 @@ static void UpdateEffect(ModelData *model, ParticleData *particle, Mtx matrix)
var_r31->unk40.a = var_r28;
if (var_r31->unk2C) {
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 {
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->unk00_s16++;
var_r31->unk00++;
}
else {
switch (var_r31->unk02) {
@ -947,11 +947,11 @@ static void RotateEffect(HsfanimStruct01 *arg0)
float var_f31;
temp_r30 = &Hu3DData[(s32)arg0->unk08.x];
if (arg0->unk00_s16 < 8) {
var_f31 = 0.3 + sind(40.0f + 10.0f * (arg0->unk00_s16 + 1));
if (arg0->unk00 < 8) {
var_f31 = 0.3 + sind(40.0f + 10.0f * (arg0->unk00 + 1));
arg0->unk2C = 50.0f * var_f31 * temp_r30->scale.x;
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 {
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.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;
if (arg0->unk00_s16 > 0x14) {
if (arg0->unk00 > 0x14) {
arg0->unk40.a -= 0x20;
arg0->unk2C -= 8.0f * temp_r30->scale.x;
if (arg0->unk2C < 0.0f) {
arg0->unk2C = 0.0f;
}
}
arg0->unk00_s16++;
arg0->unk00++;
}
static float voiceParam[16]
@ -984,7 +984,7 @@ static void PlayEffectSound(HsfanimStruct01 *arg0)
temp_r28 = arg0->unk08.x;
temp_r29 = &charInstance[temp_r28];
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->unk40.a = 0xFF;
@ -994,15 +994,15 @@ static void PlayEffectSound(HsfanimStruct01 *arg0)
else {
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.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->unk00_s16++;
if (arg0->unk00_s16 >= 0x8F) {
arg0->unk00_s16 = 0x48;
arg0->unk00++;
if (arg0->unk00 >= 0x8F) {
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;
if (arg0->unk2C < 0.0f) {
arg0->unk2C = 0.0f;
@ -1501,7 +1501,7 @@ static void OrbitEffect(HsfanimStruct01 *arg0)
float var_f30;
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) {
var_f30 = 90.0f;
}
@ -1514,7 +1514,7 @@ static void OrbitEffect(HsfanimStruct01 *arg0)
if (arg0->unk20 < 1.0f) {
arg0->unk20 = 1.0f;
}
if (arg0->unk00_s16 > 8) {
if (arg0->unk00 > 8) {
temp_r30 = arg0->unk40.a;
temp_r30 -= 8;
if (temp_r30 < 0) {
@ -1525,7 +1525,7 @@ static void OrbitEffect(HsfanimStruct01 *arg0)
arg0->unk40.a = temp_r30;
}
}
arg0->unk00_s16++;
arg0->unk00++;
}
static EffectParamData coinParticleParam

View file

@ -55,7 +55,7 @@ s16 Hu3DAnimCreate(void *arg0, s16 arg1, char *arg2) {
Hu3DTexAnimDataStruct *var_r31;
HsfAttribute *var_r29;
HsfData *temp_r27;
HsfanimStruct01 *var_r30;
HsfdrawStruct01 *var_r30;
s16 i;
s16 var_r25;
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++) {
if (strcmp(arg2, var_r29->bitmap->name) == 0) {
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_r30->unk00 = 0;
} else {
@ -84,7 +84,7 @@ s16 Hu3DAnimCreate(void *arg0, s16 arg1, char *arg2) {
var_r30->unk00 |= 1;
var_r30->unk02 = var_r28;
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++;
}
}
@ -112,7 +112,7 @@ s16 Hu3DAnimLink(s16 arg0, s16 arg1, char *arg2) {
AnimData *temp_r4;
HsfAttribute *var_r29;
HsfData *temp_r27;
HsfanimStruct01 *var_r30;
HsfdrawStruct01 *var_r30;
s16 var_r28;
s16 i;
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++) {
if (strcmp(arg2, var_r29->bitmap->name) == 0) {
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;
} else {
var_r30 = var_r29->unk04;
}
var_r30->unk02 = var_r28;
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++;
}
}
@ -162,7 +162,7 @@ void Hu3DAnimKill(s16 arg0) {
Hu3DTexAnimDataStruct *temp_r31 = &Hu3DTexAnimData[arg0];
HsfData *temp_r28 = Hu3DData[temp_r31->unk06].hsfData;
HsfAttribute *var_r30;
HsfanimStruct01 *temp_r29;
HsfdrawStruct01 *temp_r29;
s16 i;
if (temp_r28) {
@ -242,7 +242,7 @@ void Hu3DAnmNoSet(s16 arg0, u16 arg1) {
}
s32 Hu3DAnimSet(ModelData *arg0, HsfAttribute *arg1, s16 arg2) {
HsfanimStruct01 *temp_r30;
HsfdrawStruct01 *temp_r30;
Hu3DTexAnimDataStruct *temp_r29;
AnimData *temp_r27;
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);
temp_r30->unk2C = (float) temp_r31->sizeX / temp_r28->sizeX;
temp_r30->unk30 = (float) temp_r31->sizeY / temp_r28->sizeY;
temp_r30->unk34.x = (float) temp_r31->startX / temp_r28->sizeX;
temp_r30->unk34.y = (float) temp_r31->startY / temp_r28->sizeY;
temp_r30->unk34 = (float) temp_r31->startX / temp_r28->sizeX;
temp_r30->unk38 = (float) temp_r31->startY / temp_r28->sizeY;
return 1;
}
@ -359,7 +359,7 @@ s16 Hu3DTexScrollCreate(s16 arg0, char *arg1) {
Hu3DTexScrDataStruct *var_r31;
HsfData *temp_r27;
HsfAttribute *var_r29;
HsfanimStruct01 *var_r30;
HsfdrawStruct01 *var_r30;
s16 i;
s16 var_r25;
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++) {
if (strcmp(arg1, var_r29->bitmap->name) == 0) {
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_r30->unk00 = 0;
} else {
@ -388,7 +388,7 @@ s16 Hu3DTexScrollCreate(s16 arg0, char *arg1) {
var_r30->unk00 |= 2;
var_r30->unk04 = var_r28;
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++;
}
}
@ -408,7 +408,7 @@ void Hu3DTexScrollKill(s16 arg0) {
Hu3DTexScrDataStruct *temp_r28 = &Hu3DTexScrData[arg0];
HsfData *temp_r29 = Hu3DData[temp_r28->unk02].hsfData;
HsfAttribute *var_r31;
HsfanimStruct01 *temp_r30;
HsfdrawStruct01 *temp_r30;
s16 i;
if (temp_r29) {
@ -1241,7 +1241,7 @@ static void ParManHook(ModelData *model, ParticleData *particle, Mtx matrix) {
var_r29->unk2C = var_r29->unk28;
}
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.y += var_r29->unk08.y + var_r29->unk14.y;
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_f30 = (float) var_r29->unk00_s16 / temp_r26->unk00;
var_f30 = (float) var_r29->unk00 / temp_r26->unk00;
if (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.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);
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->unk00_s16++;
var_r29->unk00++;
}
}
}