continued work on fire.c

This commit is contained in:
CreateSource 2025-01-19 18:11:11 -05:00
parent d0b4bbe122
commit d502bc0a4d
3 changed files with 423 additions and 52 deletions

View file

@ -2,6 +2,7 @@
#define M438DLL_H
#include "game/animdata.h"
#include "game/hsfformat.h"
#include "game/object.h"
typedef struct M438MainWork4 {
@ -18,8 +19,17 @@ typedef struct M438MainWork4 {
} M438MainWork4; /* size = 0x4C */
typedef struct M438UnkSubStruct {
s32 unk_00;
char unk01[0x20];
s8 unk_00;
s8 unk_01;
char unk02[0x2];
void* unk_04; // temp
f32 unk_08;
char unk0C[0x4];
f32 unk_10;
char unk14[0x4];
f32 unk_18;
char unk1C[0x4];
f32 unk_20;
u8 unk_24;
float unk_28;
float unk_2C;
@ -48,11 +58,30 @@ typedef struct M438UnkStruct {
char unk5D[0x3];
Vec unk_60;
Vec unk_6C;
s16 unk_78;
s16 unk_7A;
char unk7C[0x1C];
s16 unk_78[0x10];
} M438UnkStruct; /* size = 0x98 */
typedef struct M438FireStruct {
Vec unk0;
Vec unkC;
Vec unk18;
Vec unk24;
} M438FireStruct; // sizeof 0x30
typedef struct M438FireStruct2 {
GXColor unk0;
GXColor unk4;
GXColor unk8;
GXColor unkC;
} M438FireStruct2; // sizeof 0x10
typedef struct M438FireStruct3 {
HsfVector2f unk0;
HsfVector2f unk8;
HsfVector2f unk10;
HsfVector2f unk18;
} M438FireStruct3; // sizeof 0x20
typedef struct M438UnkStruct2 {
s16 unk_00;
s16 unk_02;
@ -62,30 +91,52 @@ typedef struct M438UnkStruct2 {
Vec unk_18;
Vec unk_24;
void (*unk_30)(struct M438UnkStruct2*);
s16 unk_34[4];
s16* unk_34;
char unk_38[0x4];
M438UnkStruct *unk_3C;
char unk40[0x20];
char unk40[0x8];
s16 unk_48;
void* unk_4C;
Vec* unk_50;
GXColor* unk_54;
Vec* unk_58;
M438UnkSubStruct* unk_5C;
u8 unk_60;
char unk61[0x3];
char unk64[0x18];
s16 unk_7C;
s16 unk_7E;
float unk_80;
float unk_84;
float unk_88;
float unk_8C;
float unk_90;
char unk94[0x28];
Vec unk_64;
Vec unk_70;
union {
s16 unk_7Ca[0x20];
struct {
s16 unk_7C;
s16 unk_7E;
float unk_80;
float unk_84;
float unk_88;
float unk_8C;
float unk_90;
char unk94[0x28];
};
};
} M438UnkStruct2; /* size = 0xBC */
typedef struct M438UnkStruct3 {
AnimData* unk_00;
s16 unk_04;
s16 unk_06;
s32 unk_08;
u32 unk_08;
Vec unk_0C;
Mtx unk_18;
char unk48[0x1C];
GXColor unk_48;
u8 unk_4C;
u8 unk_4D;
s16 unk_4E;
s16 unk_50;
char unk52[0x2];
f32 unk_54;
f32 unk_58;
f32 unk_5C;
f32 unk_60;
} M438UnkStruct3; /* size = 0x64 */
typedef struct M438StructBssDE4 {
@ -110,9 +161,9 @@ float fn_1_E488(float arg8, float arg9, float argA);
float fn_1_E5A4(float arg8, float arg9);
void fn_1_E658(s16 arg0, s16 arg1);
s16 fn_1_10258(s32 arg0, s32 arg1);
s16 fn_1_10258(u8 arg0, u8 arg1);
void fn_1_107BC(s16 arg0);
void fn_1_108E4(s16 arg0, s32 arg1, s32 arg2);
void fn_1_108E4(s16 arg0, s16 arg1, u8 arg2);
s16 fn_1_10910(u32 arg0, s16 arg1, s16 arg2);
s8 fn_1_11018(s16 arg0, u8 arg1, u32 arg2);
void fn_1_11658(void);

View file

@ -4,31 +4,12 @@
extern u8 texMtxTbl;
typedef struct M438FireStruct {
Vec unk0;
Vec unkC;
Vec unk18;
Vec unk24;
} M438FireStruct;
typedef struct M438FireStruct2 {
GXColor unk0;
GXColor unk4;
GXColor unk8;
GXColor unkC;
} M438FireStruct2;
typedef struct M438FireStruct3 {
HsfVector2f unk0;
HsfVector2f unk8;
HsfVector2f unk10;
HsfVector2f unk18;
} M438FireStruct3;
// PROTO
void fn_1_E790(M438UnkStruct2*);
void fn_1_F538(ModelData*, Mtx);
void fn_1_FAB8(M438UnkStruct*);
void fn_1_FD40(M438UnkStruct2*);
void fn_1_10F0C(s16);
void fn_1_E658(s16 arg0, s16 arg1) {
M438UnkStruct2* var_r29;
@ -223,3 +204,342 @@ void fn_1_FAB8(M438UnkStruct* arg0) {
}
arg0->unk_3C = GXEndDisplayList();
}
void fn_1_FD40(M438UnkStruct2* arg0) {
M438UnkStruct* var_r28;
M438UnkStruct3* temp_r30;
M438UnkSubStruct* var_r31;
s32 temp_r0;
s32 var_r25;
s32 var_r26;
s32 var_r27;
var_r27 = 0;
var_r28 = arg0->unk_3C;
for (var_r25 = 0; var_r25 < arg0->unk_02; var_r25++, var_r28++) {
if ((var_r28->unk_38 & 4) != 0) {
var_r27++;
} else {
var_r31 = var_r28->unk_58;
for (var_r26 = 0; var_r26 < var_r28->unk_34; var_r26++, var_r31++) {
temp_r30 = &lbl_1_bss_DE4.unk_3C[arg0->unk_34[var_r26]];
var_r31->unk_24 &= ~4;
switch (var_r31->unk_24 & 0xF) {
case 1:
var_r31->unk_2C += var_r31->unk_28;
if (var_r31->unk_2C >= 1.0f) {
var_r31->unk_00++;
var_r31->unk_2C -= 1.0f;
}
break;
case 2:
var_r31->unk_2C += var_r31->unk_28;
if (var_r31->unk_2C >= 1.0f) {
var_r31->unk_00 -= 1;
var_r31->unk_2C -= 1.0f;
}
break;
}
if (var_r31->unk_00 >= temp_r30->unk_4C) {
if ((var_r31->unk_24 & 0x10) != 0) {
var_r31->unk_24 |= 8;
var_r31->unk_00 -= 1;
} else if ((var_r31->unk_24 & 0x40) != 0) {
var_r31->unk_24 = (var_r31->unk_24 & 0xF0) | 2;
var_r31->unk_00 -= 2;
} else if ((var_r31->unk_24 & 0x20) != 0) {
var_r31->unk_00 = 0;
}
var_r31->unk_24 |= 4;
} else if (var_r31->unk_00 < 0) {
if ((var_r31->unk_24 & 0x10) != 0) {
var_r31->unk_24 |= 8;
var_r31->unk_00 = 0;
} else if ((var_r31->unk_24 & 0x20) != 0) {
if ((var_r31->unk_24 & 0x40) != 0) {
var_r31->unk_24 = (var_r31->unk_24 & 0xF0) | 1;
var_r31->unk_00 = 1;
} else {
var_r31->unk_00 = temp_r30->unk_4C - 1;
}
} else if ((var_r31->unk_24 & 0x40) != 0) {
var_r31->unk_24 |= 8;
var_r31->unk_00 = 0;
}
var_r31->unk_24 |= 4;
} else {
var_r31->unk_24 &= ~8;
}
if (var_r31->unk_00 != var_r31->unk_01) {
var_r31->unk_08 = (var_r31->unk_00 * temp_r30->unk_58);
var_r31->unk_10 = (var_r31->unk_00 * temp_r30->unk_58);
var_r31->unk_18 = ((var_r31->unk_00 + 1) * temp_r30->unk_58);
var_r31->unk_20 = ((var_r31->unk_00 + 1) * temp_r30->unk_58);
if ((var_r31->unk_00 + 1) < temp_r30->unk_4C) {
var_r31->unk_18 -= temp_r30->unk_60;
var_r31->unk_20 -= temp_r30->unk_60;
}
var_r31->unk_01 = var_r31->unk_00;
DCFlushRangeNoSync(&var_r31->unk_04, 0x20);
}
if ((var_r31->unk_24 & 8) != 0) {
if ((var_r28->unk_38 & 0x40000000) != 0) {
var_r28->unk_38 |= 4;
if ((var_r31->unk_24 & 0x40) == 0) {
if (var_r31->unk_00 <= 0) {
var_r31->unk_00 = temp_r30->unk_4C;
} else {
var_r31->unk_00 = 0;
}
}
} else if ((var_r28->unk_38 & 0x80000000) != 0) {
fn_1_107BC(arg0->unk_00);
}
var_r27++;
}
}
}
}
if (var_r27 >= arg0->unk_02) {
if ((arg0->unk_08 & 0x40000000) != 0) {
arg0->unk_08 |= 4;
} else if ((arg0->unk_08 & 0x80000000) != 0) {
fn_1_107BC(arg0->unk_00);
}
}
PPCSync();
}
s16 fn_1_10258(u8 arg0, u8 arg1) {
M438UnkStruct* var_r30;
M438UnkStruct2* var_r31;
s32 var_r29;
s32 var_r28;
void* temp_r25;
var_r31 = &lbl_1_bss_DE4.unk_40[1];
for (var_r29 = 1; var_r29 < lbl_1_bss_DE4.unk_30; var_r29++, var_r31++) {
if (var_r31->unk_08 == 0) break;
}
if (var_r29 == lbl_1_bss_DE4.unk_30) {
OSReport("OVER BILL\n");
return 0;
}
var_r31->unk_00 = var_r29;
var_r31->unk_08 = 1;
var_r31->unk_30 = NULL;
var_r31->unk_02 = arg0;
var_r31->unk_04 = arg1;
var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * 0x98, 0x10000000);
var_r31->unk_3C = var_r30;
var_r31->unk_34 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * 2, 0x10000000);
var_r31->unk_48 = 0;
var_r31->unk_4C = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 << 8, 0x10000000);
var_r31->unk_50 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * 0x30, 0x10000000);
var_r31->unk_54 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * 0x10, 0x10000000);
var_r31->unk_58 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * 0xC, 0x10000000);
var_r31->unk_5C = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * (arg0 * 0x30), 0x10000000);
DCFlushRangeNoSync(var_r31->unk_4C, arg0 << 8);
var_r31->unk_0C.x = var_r31->unk_0C.y = var_r31->unk_0C.z = 0.0f;
var_r31->unk_18.x = var_r31->unk_18.y = var_r31->unk_18.z = 0.0f;
var_r31->unk_24.x = var_r31->unk_24.y = var_r31->unk_24.z = 1.0f;
var_r31->unk_70.x = var_r31->unk_70.y = var_r31->unk_70.z = 0.0f;
var_r31->unk_64.x = var_r31->unk_64.y = var_r31->unk_64.z = 0.0f;
var_r31->unk_60 = 0;
for (var_r29 = 0; var_r29 < 0x20; var_r29++) {
var_r31->unk_7Ca[var_r29] = 0;
}
for (var_r29 = 0; var_r29 < arg1; var_r29++) {
var_r31->unk_34[var_r29] = 0;
}
for (var_r29 = 0; var_r29 < arg0; var_r29++, var_r30++) {
var_r30->unk_38 = 1;
var_r30->unk_34 = arg1;
var_r30->unk_30 = 0;
var_r30->unk_31 = 2;
var_r30->unk_32 = 0;
var_r30->unk_33 = 0;
var_r30->unk_50.r = var_r30->unk_50.g = var_r30->unk_50.b = 0;
var_r30->unk_50.a = 0xFF;
var_r30->unk_54.r = var_r30->unk_54.g = var_r30->unk_54.b = 0xFF;
var_r30->unk_54.a = 0xFF;
var_r30->unk_58 = &var_r31->unk_5C[var_r29 * arg1];
for (var_r28 = 0; var_r28 < arg1; var_r28++) {
var_r30->unk_58[var_r28].unk_00 = var_r30->unk_58[var_r28].unk_01 = 0;
var_r30->unk_58[var_r28].unk_28 = 1.0f;
var_r30->unk_58[var_r28].unk_2C = 0.0f;
}
var_r30->unk_00.x = var_r30->unk_00.y = var_r30->unk_00.z = 0.0f;
var_r30->unk_0C.x = var_r30->unk_0C.y = var_r30->unk_0C.z = 0.0f;
var_r30->unk_18.x = var_r30->unk_18.y = var_r30->unk_18.z = 1.0f;
var_r30->unk_6C.x = var_r30->unk_6C.y = var_r30->unk_6C.z = 0.0f;
var_r30->unk_24.x = var_r30->unk_24.y = var_r30->unk_24.z = 0.0f;
var_r30->unk_60.x = var_r30->unk_60.y = var_r30->unk_60.z = 0.0f;
var_r30->unk_5C = 0;
for (var_r28 = 0; var_r28 < 0x10; var_r28++) {
var_r30->unk_78[var_r28] = 0;
}
var_r30->unk_44 = &var_r31->unk_50[var_r29 * 4];
var_r30->unk_48 = &var_r31->unk_54[var_r29 * 4];
var_r30->unk_4C = &var_r31->unk_58[var_r29];
var_r30->unk_40 = ((char*)var_r31->unk_4C) + var_r31->unk_48;
fn_1_FAB8(var_r30);
var_r31->unk_48 += var_r30->unk_3C;
}
temp_r25 = var_r31->unk_4C;
var_r31->unk_4C = HuMemDirectMallocNum(HEAP_SYSTEM, var_r31->unk_48, 0x10000000);
memcpy(var_r31->unk_4C, temp_r25, var_r31->unk_48);
HuMemDirectFree(temp_r25);
DCFlushRangeNoSync(var_r31->unk_50, arg0 * 0x30);
DCFlushRangeNoSync(var_r31->unk_54, arg0 * 0x10);
DCFlushRangeNoSync(var_r31->unk_58, arg0 * 0xC);
DCFlushRangeNoSync(var_r31->unk_4C, var_r31->unk_48);
var_r30 = var_r31->unk_3C;
var_r31->unk_48 = 0;
for (var_r29 = 0; var_r29 < arg0; var_r29++, var_r30++) {
var_r30->unk_40 = ((char*)var_r31->unk_4C) + var_r31->unk_48;
var_r31->unk_48 += var_r30->unk_3C;
}
lbl_1_bss_DE4.unk_36 = var_r31->unk_00;
lbl_1_bss_DE4.unk_38 = 0;
lbl_1_bss_DE4.unk_3A = 0;
PPCSync();
return var_r31->unk_00;
}
void fn_1_107BC(s16 arg0) {
M438UnkStruct2* temp_r31;
s32 var_r30;
if (arg0 != 0) {
temp_r31 = &lbl_1_bss_DE4.unk_40[arg0];
if ((u32) temp_r31->unk_08 != 0) {
if (temp_r31->unk_50 != NULL) {
HuMemDirectFree(temp_r31->unk_50);
}
if (temp_r31->unk_54 != NULL) {
HuMemDirectFree(temp_r31->unk_54);
}
if (temp_r31->unk_58 != NULL) {
HuMemDirectFree(temp_r31->unk_58);
}
if (temp_r31->unk_4C != NULL) {
HuMemDirectFree(temp_r31->unk_4C);
}
if (temp_r31->unk_5C != NULL) {
HuMemDirectFree(temp_r31->unk_5C);
}
for (var_r30 = 0; var_r30 < temp_r31->unk_04; var_r30++) {
fn_1_10F0C(temp_r31->unk_34[var_r30]);
}
HuMemDirectFree(temp_r31->unk_3C);
HuMemDirectFree(temp_r31->unk_34);
temp_r31->unk_08 = 0;
temp_r31->unk_00 = 0;
}
}
}
void fn_1_108E4(s16 arg0, s16 arg1, u8 arg2) {
lbl_1_bss_DE4.unk_36 = arg0;
lbl_1_bss_DE4.unk_38 = arg1;
lbl_1_bss_DE4.unk_3A = arg2;
}
#include "game/sprite.h"
s16 fn_1_10910(u32 arg0, s16 arg1, s16 arg2) {
f32 var_f31;
f32 var_f30;
AnimData* var_r30;
M438UnkStruct3* var_r31;
s32 var_r29;
var_r31 = &lbl_1_bss_DE4.unk_3C[1];
for (var_r29 = 1; var_r29 < lbl_1_bss_DE4.unk_32; var_r29++, var_r31++) {
if ((var_r31->unk_06 != 0) && (var_r31->unk_08 == arg0)) break;
}
if (var_r29 < lbl_1_bss_DE4.unk_32) {
var_r31->unk_06++;
return var_r29;
}
var_r31 = &lbl_1_bss_DE4.unk_3C[1];
for (var_r29 = 1; var_r29 < lbl_1_bss_DE4.unk_32; var_r29++, var_r31++) {
if (var_r31->unk_06 == 0) break;
}
var_r31->unk_08 = arg0;
var_r31->unk_06 = 1;
if (((arg0 & 0xFFFF0000) + 0x10000) == 0) {
var_r30 = HuSprAnimMake(arg1, arg2, 2);
var_r30->bmp->data = HuMemDirectMallocNum(HEAP_SYSTEM, arg2 * (arg1 * 2), 0x10000000);
arg1 = arg2 = 0;
} else {
var_r30 = HuSprAnimRead(HuDataReadNum(arg0, 0x10000000));
}
if ((arg1 == 0) || (arg2 == 0)) {
arg1 = var_r30->bmp->sizeX;
arg2 = var_r30->bmp->sizeY;
var_f31 = var_f30 = 1.0f;
} else {
var_f31 = arg1 / (f32)var_r30->bmp->sizeX;
var_f30 = arg2 / (f32)var_r30->bmp->sizeY;
}
var_r31->unk_00 = var_r30;
var_r31->unk_4E = arg1;
var_r31->unk_50 = arg2;
var_r31->unk_54 = var_f31;
var_r31->unk_58 = var_f30;
var_r31->unk_5C = 1.0f / var_r30->bmp->sizeX;
var_r31->unk_60 = 1.0f / var_r30->bmp->sizeY;
var_r31->unk_04 = 0;
var_r31->unk_4C = var_r30->bmp->sizeY / arg2;
if (var_r31->unk_4C < 1) {
var_r31->unk_4C = 1;
}
var_r31->unk_4D = 0;
if ((arg1 > var_r30->bmp->sizeX) || (arg2 > var_r30->bmp->sizeY)) {
var_r31->unk_4D = 1;
}
var_r31->unk_48.r = var_r31->unk_48.g = var_r31->unk_48.b = 0xFF;
var_r31->unk_48.a = 0xFF;
PSMTXIdentity(var_r31->unk_18);
var_r31->unk_0C.x = var_r31->unk_0C.y = var_r31->unk_0C.z = 0.0f;
return var_r29;
}
void fn_1_10CB8(s16 arg0, s16 arg1, s16 arg2, s16 arg3, s16 arg4, s16 arg5) {
f32 var_f31;
f32 var_f30;
M438UnkStruct3* temp_r31;
AnimData* temp_r30;
temp_r31 = &lbl_1_bss_DE4.unk_3C[arg0];
HuSprAnimKill(temp_r31->unk_00);
temp_r31->unk_08 |= 0xFFFF0000;
temp_r30 = HuSprAnimMake(arg2, arg3, arg1);
temp_r30->bmp->data = HuMemDirectMallocNum(HEAP_SYSTEM, arg3 * (temp_r30->bmp->pixSize * arg2), 0x10000000U);
var_f31 = arg4 / (f32) temp_r30->bmp->sizeX;
var_f30 = arg5 / (f32) temp_r30->bmp->sizeY;
temp_r31->unk_00 = temp_r30;
temp_r31->unk_4E = arg2;
temp_r31->unk_50 = arg3;
temp_r31->unk_54 = var_f31;
temp_r31->unk_58 = var_f30;
temp_r31->unk_5C = 1.0f / (f32) temp_r30->bmp->sizeX;
temp_r31->unk_60 = 1.0f / (f32) temp_r30->bmp->sizeY;
temp_r31->unk_04 = 0;
temp_r31->unk_4C = temp_r30->bmp->sizeY / arg5;
temp_r31->unk_4D = 0;
temp_r31->unk_48.r = temp_r31->unk_48.g = temp_r31->unk_48.b = 0xFF;
temp_r31->unk_48.a = 0xFF;
}

View file

@ -1920,10 +1920,10 @@ void fn_1_63B0(M438UnkStruct2 *arg0)
var_r31->unk_60.x = var_r31->unk_60.z = temp_f30;
}
var_r31->unk_58->unk_24 = 0;
var_r31->unk_78 = (s32)((60.0f * ((1.0f / 65536.0f) * fn_1_7DB4()))) + 1;
var_r31->unk_78[0] = (s32)((60.0f * ((1.0f / 65536.0f) * fn_1_7DB4()))) + 1;
var_r31->unk_5C++;
case 1:
if (--var_r31->unk_78 == 0) {
if (--var_r31->unk_78[0] == 0) {
var_r31->unk_58->unk_24 = 0x11U;
var_r31->unk_58->unk_28 = 0.5f;
var_r31->unk_58->unk_2C = 0.0f;
@ -1968,7 +1968,7 @@ void fn_1_6A3C(M438UnkStruct2 *arg0)
var_r28 = 0;
for (var_r27 = 0; var_r27 < arg0->unk_02; var_r27++, var_r31++) {
if ((arg0->unk_7C != 0) && (var_r31->unk_7A == 0)) {
if ((arg0->unk_7C != 0) && (var_r31->unk_78[1] == 0)) {
var_r31->unk_5C = 0;
}
switch (var_r31->unk_5C) {
@ -1985,8 +1985,8 @@ void fn_1_6A3C(M438UnkStruct2 *arg0)
var_r31->unk_6C.x = 100.0f * (0.1f * sp8.x);
var_r31->unk_6C.y = sp8.y + (2.5f * ((1.0f / 65536.0f) * fn_1_7DB4()));
var_r31->unk_6C.z = 100.0f * (0.1f * sp8.z);
var_r31->unk_78 = (s32)(24.0f * ((1.0f / 65536.0f) * fn_1_7DB4())) + 1;
var_r31->unk_7A = 1;
var_r31->unk_78[0] = (s32)(24.0f * ((1.0f / 65536.0f) * fn_1_7DB4())) + 1;
var_r31->unk_78[1] = 1;
}
else {
temp_f30 = (180.0f * ((1.0f / 65536.0f) * fn_1_7DB4())) - 90.0f;
@ -2000,8 +2000,8 @@ void fn_1_6A3C(M438UnkStruct2 *arg0)
var_r31->unk_6C.x = (100.0 * (0.015 * sp8.x));
var_r31->unk_6C.y = sp8.y + ((1.0f / 65536.0f) * fn_1_7DB4());
var_r31->unk_6C.z = 100.0f * (0.015f * sp8.z);
var_r31->unk_78 = (s32)(60.0f * ((1.0f / 65536.0f) * fn_1_7DB4())) + 1;
var_r31->unk_7A = 0;
var_r31->unk_78[0] = (s32)(60.0f * ((1.0f / 65536.0f) * fn_1_7DB4())) + 1;
var_r31->unk_78[1] = 0;
}
var_r31->unk_38 &= ~4;
if ((fn_1_7DB4() & 0xF) != 0) {
@ -2040,12 +2040,12 @@ void fn_1_6A3C(M438UnkStruct2 *arg0)
var_r31->unk_5C++;
break;
case 1:
if (var_r31->unk_7A != 0) {
if (var_r31->unk_78[1] != 0) {
var_r31->unk_6C.y -= 0.5f;
}
if (--var_r31->unk_78 == 0) {
if (--var_r31->unk_78[0] == 0) {
var_r31->unk_58->unk_24 = 0x11;
if (var_r31->unk_7A != 0) {
if (var_r31->unk_78[1] != 0) {
var_r31->unk_58->unk_28 = 0.5f;
}
else {
@ -2068,7 +2068,7 @@ void fn_1_6A3C(M438UnkStruct2 *arg0)
var_r31->unk_18.z *= 0.95f;
var_r31->unk_6C.y -= 1.5f;
if ((var_r31->unk_58->unk_24 & 8) != 0) {
if (var_r31->unk_7A != 0) {
if (var_r31->unk_78[1] != 0) {
var_r31->unk_5C = 3;
}
else {