diff --git a/include/math.h b/include/math.h index 6788b0c..0c3d9a6 100644 --- a/include/math.h +++ b/include/math.h @@ -44,6 +44,11 @@ typedef struct Vec3s { /* 0x4 */ s16 z; } Vec3s; // size = 0x6 +typedef struct Vec2s { + /* 0x0 */ s16 x; + /* 0x2 */ s16 y; +} Vec2s; // size = 0x4 + typedef union Vec2s_s32 { struct { /* 0x0 */ s16 x; diff --git a/src/fragments/34/fragment34.h b/src/fragments/34/fragment34.h index 1af2129..640fe51 100644 --- a/src/fragments/34/fragment34.h +++ b/src/fragments/34/fragment34.h @@ -61,10 +61,15 @@ typedef struct unk_D_8140E720 { /* 0xD0 */ s8 unk_D0; } unk_D_8140E720; // size = 0xD4 +typedef struct arg1_func_8140213C { + /* 0x00 */ char unk00[0x64]; + /* 0x64 */ MtxF unk_64; +} arg1_func_8140213C; // size >= 0xA4 + extern Gfx D_8140DAE0[]; extern Gfx D_8140DB30[]; -extern void* D_8140E620; +extern MtxF* D_8140E620; extern s32 D_8140E624; extern Vec3f D_8140E628; @@ -77,6 +82,7 @@ void func_81400930(Vec3f*, Vec3f*); void func_8140094C(Vec3s*, Vec3s*); u32 func_81400A78(s32); s32 func_81400B00(s32); + void func_81406204(Gfx*, s32, s32, s32, s32); void func_81406288(Gfx*, s32, s32, s32, s32); void func_81407B04(unk_D_8140E720*); diff --git a/src/fragments/34/fragment34_261F90.c b/src/fragments/34/fragment34_261F90.c index 8a5d85e..6df2193 100644 --- a/src/fragments/34/fragment34_261F90.c +++ b/src/fragments/34/fragment34_261F90.c @@ -1,168 +1,1078 @@ -#include "global.h" +#include "fragment34.h" +#include "include/libc/math.h" +#include "src/F420.h" +#include "src/math_util.h" -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81400020.s") +extern MtxF* D_8140E620; +extern s32 D_8140E624; +extern s32 D_8140E710; -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81400030.s") +void func_81400020(s32* arg0, s32 arg1) { + *arg0 |= arg1; +} -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81400044.s") +void func_81400030(s32* arg0, s32 arg1) { + *arg0 &= ~arg1; +} -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81400054.s") +void func_81400044(s32* arg0, s32 arg1) { + *arg0 ^= arg1; +} -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81400074.s") +s32 func_81400054(s32* arg0, s32 arg1) { + s32 var_v1 = 0; -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81400094.s") + if (*arg0 & arg1) { + var_v1 = 1; + } + return var_v1; +} -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_814000E0.s") +s32 func_81400074(s32* arg0, s32 arg1) { + s32 var_v1 = 0; -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_8140012C.s") + if (!(*arg0 & arg1)) { + var_v1 = 1; + } + return var_v1; +} -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_8140015C.s") +s32 func_81400094(f32* arg0, f32 arg1, f32 arg2) { + s32 var_v1 = 0; -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_8140018C.s") + if (*arg0 < arg1) { + *arg0 += arg2; + if (arg1 <= *arg0) { + *arg0 = arg1; + var_v1 = 1; + } + } + return var_v1; +} -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_814001DC.s") +s32 func_814000E0(f32* arg0, f32 arg1, f32 arg2) { + s32 var_v1 = 0; -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81400220.s") + if (arg1 < *arg0) { + *arg0 -= arg2; + if (*arg0 <= arg1) { + *arg0 = arg1; + var_v1 = 1; + } + } + return var_v1; +} -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81400270.s") +s32 func_8140012C(s32* arg0, s32 arg1, s32 arg2) { + s32 var_v1 = 0; -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_814002A4.s") + if (*arg0 < arg1) { + *arg0 += arg2; + if (*arg0 >= arg1) { + *arg0 = arg1; + var_v1 = 1; + } + } + return var_v1; +} -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_814002F0.s") +s32 func_8140015C(s32* arg0, s32 arg1, s32 arg2) { + s32 var_v1 = 0; -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_8140033C.s") + if (arg1 < *arg0) { + *arg0 -= arg2; + if (arg1 >= *arg0) { + *arg0 = arg1; + var_v1 = 1; + } + } + return var_v1; +} -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81400374.s") +s32 func_8140018C(s16* arg0, s16 arg1, s16 arg2) { + s32 var_v1 = 0; -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_814003AC.s") + if (*arg0 < arg1) { + *arg0 += arg2; + if (*arg0 >= arg1) { + *arg0 = arg1; + var_v1 = 1; + } + } + return var_v1; +} -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_814003F4.s") +s32 func_814001DC(u16* arg0, u16 arg1, u16 arg2) { + s32 var_v1 = 0; -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_8140043C.s") + if (*arg0 < arg1) { + *arg0 += arg2; + if (*arg0 >= arg1) { + *arg0 = arg1; + var_v1 = 1; + } + } + return var_v1; +} -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_814004D8.s") +s32 func_81400220(s16* arg0, s16 arg1, s16 arg2) { + s32 var_v1 = 0; -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81400550.s") + if (arg1 < *arg0) { + *arg0 -= arg2; + if (arg1 >= *arg0) { + *arg0 = arg1; + var_v1 = 1; + } + } + return var_v1; +} -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_814005EC.s") +s32 func_81400270(u16* arg0, s32 arg1, s32 arg2) { + s32 var_v1 = 0; + s32 temp_v0 = *arg0; -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_814006CC.s") + if (arg1 < temp_v0) { + temp_v0 -= arg2; + if (arg1 >= temp_v0) { + temp_v0 = arg1; + var_v1 = 1; + } + *arg0 = temp_v0; + } + return var_v1; +} -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81400760.s") +s32 func_814002A4(f32* arg0, f32 arg1, f32* arg2) { + s32 var_v1 = 0; -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_8140082C.s") + if (*arg0 < arg1) { + *arg0 += *arg2; + if (arg1 <= *arg0) { + *arg0 = arg1; + var_v1 = 1; + } + } + return var_v1; +} -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_814008B0.s") +s32 func_814002F0(f32* arg0, f32 arg1, f32* arg2) { + s32 var_v1 = 0; -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81400930.s") + if (arg1 < *arg0) { + *arg0 -= *arg2; + if (*arg0 <= arg1) { + *arg0 = arg1; + var_v1 = 1; + } + } + return var_v1; +} -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_8140094C.s") +s32 func_8140033C(s32* arg0, s32 arg1, s32* arg2) { + s32 var_v1 = 0; -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81400968.s") + if (*arg0 < arg1) { + *arg0 += *arg2; + if (*arg0 >= arg1) { + *arg0 = arg1; + var_v1 = 1; + } + } + return var_v1; +} -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_8140099C.s") +s32 func_81400374(s32* arg0, s32 arg1, s32* arg2) { + s32 var_v1 = 0; -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_814009D0.s") + if (arg1 < *arg0) { + *arg0 -= *arg2; + if (arg1 >= *arg0) { + *arg0 = arg1; + var_v1 = 1; + } + } + return var_v1; +} -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81400A10.s") +s32 func_814003AC(s16* arg0, s16 arg1, s16* arg2) { + s32 var_v1 = 0; -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81400A60.s") + if (*arg0 < arg1) { + *arg0 += *arg2; + if (*arg0 >= arg1) { + *arg0 = arg1; + var_v1 = 1; + } + } + return var_v1; +} -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81400A78.s") +s32 func_814003F4(s16* arg0, s16 arg1, s16* arg2) { + s32 var_v1 = 0; -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81400ADC.s") + if (arg1 < *arg0) { + *arg0 -= *arg2; + if (arg1 >= *arg0) { + *arg0 = arg1; + var_v1 = 1; + } + } + return var_v1; +} -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81400B00.s") +s32 func_8140043C(s8* arg0, s8 arg1, s8 arg2) { + s32 var_v1 = 0; + s32 var_a3 = *arg0; -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81400B28.s") + if (var_a3 < arg1) { + if (arg2 >= 0) { + var_a3 += arg2; + } else { + var_a3 -= arg2; + } -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81400B4C.s") + if (var_a3 >= arg1) { + var_a3 = arg1; + var_v1 = 1; + } + } else if (arg1 < var_a3) { + if (arg2 >= 0) { + var_a3 -= arg2; + } else { + var_a3 += arg2; + } -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81400B84.s") + if (arg1 >= var_a3) { + var_a3 = arg1; + var_v1 = 1; + } + } else { + var_v1 = 1; + } -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81400B8C.s") + *arg0 = var_a3; + return var_v1; +} -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81400BBC.s") +s32 func_814004D8(u8* arg0, u8 arg1, u8 arg2) { + s32 var_v1 = 0; + s32 var_a3 = *arg0; -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81400BEC.s") + if (var_a3 < arg1) { + var_a3 += arg2; + if (var_a3 >= arg1) { + var_a3 = arg1; + var_v1 = 1; + } + } else if (arg1 < var_a3) { + var_a3 -= arg2; + if (arg1 >= var_a3) { + var_a3 = arg1; + var_v1 = 1; + } + } else { + var_v1 = 1; + } -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81400C1C.s") + *arg0 = var_a3; + return var_v1; +} -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81400C80.s") +s32 func_81400550(s16* arg0, s16 arg1, s16 arg2) { + s32 var_v1 = 0; + s32 var_a3 = *arg0; -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81400CC0.s") + if (var_a3 < arg1) { + if (arg2 >= 0) { + var_a3 += arg2; + } else { + var_a3 -= arg2; + } -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81400D00.s") + if (var_a3 >= arg1) { + var_a3 = arg1; + var_v1 = 1; + } + } else if (arg1 < var_a3) { + if (arg2 >= 0) { + var_a3 -= arg2; + } else { + var_a3 += arg2; + } -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81400D6C.s") + if (arg1 >= var_a3) { + var_a3 = arg1; + var_v1 = 1; + } + } else { + var_v1 = 1; + } -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81400DC0.s") + *arg0 = var_a3; + return var_v1; +} -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81400E8C.s") +s32 func_814005EC(u16* arg0, s16 arg1, s16 arg2) { + s32 a0 = *arg0; + s32 var_v1 = 0; + s32 var_a1 = (u16)arg1; -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81400EF0.s") + if ((u16)arg1 == a0) { + var_a1 = (u16)arg1; + var_v1 = 1; + } else { + var_a1 = (u16)arg1 - a0; + if (var_a1 < -0x8000) { + var_a1 = arg2 + a0; + if (((u16)arg1 - var_a1) <= -65536) { + var_a1 = (u16)arg1; + var_v1 = 1; + } + } else if (var_a1 < 0) { + var_a1 = a0 - arg2; + if (((u16)arg1 - var_a1) >= 0) { + var_a1 = (u16)arg1; + var_v1 = 1; + } + } else if (var_a1 < 0x8000) { + var_a1 = arg2 + a0; + if (((u16)arg1 - var_a1) <= 0) { + var_a1 = (u16)arg1; + var_v1 = 1; + } + } else { + var_a1 = a0 - arg2; + if (((u16)arg1 - var_a1) >= 0x10000) { + var_a1 = (u16)arg1; + var_v1 = 1; + } + } + } -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81400F44.s") + *arg0 = var_a1; + return var_v1; +} -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81400FA4.s") +s32 func_814006CC(s32* arg0, s32 arg1, s32 arg2) { + s32 temp_v0 = *arg0; + s32 var_v1 = 0; -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81401020.s") + if (temp_v0 < arg1) { + if (arg2 >= 0) { + *arg0 = temp_v0 + arg2; + } else { + *arg0 = temp_v0 - arg2; + } -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_814010D8.s") + if (*arg0 >= arg1) { + *arg0 = arg1; + var_v1 = 1; + } + } else if (arg1 < temp_v0) { + if (arg2 >= 0) { + *arg0 = temp_v0 - arg2; + } else { + *arg0 = temp_v0 + arg2; + } -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81401168.s") + if (arg1 >= *arg0) { + *arg0 = arg1; + var_v1 = 1; + } + } else { + var_v1 = 1; + } -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_8140119C.s") + return var_v1; +} -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_814011E0.s") +s32 func_81400760(f32* arg0, f32 arg1, f32 arg2) { + s32 var_v1 = 0; -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81401224.s") + if (*arg0 < arg1) { + if (arg2 >= 0.0f) { + *arg0 += arg2; + } else { + *arg0 -= arg2; + } -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81401268.s") + if (arg1 <= *arg0) { + *arg0 = arg1; + var_v1 = 1; + } + } else if (arg1 < *arg0) { + if (arg2 >= 0.0f) { + *arg0 -= arg2; + } else { + *arg0 += arg2; + } + + if (*arg0 <= arg1) { + *arg0 = arg1; + var_v1 = 1; + } + } else { + var_v1 = 1; + } + + return var_v1; +} + +void func_8140082C(f32* arg0, f32 arg1, f32 arg2, f32* arg3) { + *arg0 += *arg3; + + if (*arg3 >= 0.0f) { + if (arg2 <= *arg0) { + *arg0 = arg2; + *arg3 = -*arg3; + } + } else if (*arg0 <= arg1) { + *arg0 = arg1; + *arg3 = -*arg3; + } +} + +void func_814008B0(s16* arg0, s16 arg1, s16 arg2, s16* arg3) { + *arg0 += *arg3; + if (*arg3 >= 0) { + if (*arg0 >= arg2) { + *arg0 = arg2; + *arg3 = -*arg3; + } + } else if (arg1 >= *arg0) { + *arg0 = arg1; + *arg3 = -*arg3; + } +} + +void func_81400930(Vec3f* arg0, Vec3f* arg1) { + arg0->x = arg1->x; + arg0->y = arg1->y; + arg0->z = arg1->z; +} + +void func_8140094C(Vec3s* arg0, Vec3s* arg1) { + arg0->x = arg1->x; + arg0->y = arg1->y; + arg0->z = arg1->z; +} + +void func_81400968(Vec3f* arg0, Vec3f* arg1) { + arg0->x += arg1->x; + arg0->y += arg1->y; + arg0->z += arg1->z; +} + +void func_8140099C(Vec3s* arg0, Vec3s* arg1) { + arg0->x += arg1->x; + arg0->y += arg1->y; + arg0->z += arg1->z; +} + +f32 func_814009D0(Vec3f arg0, Vec3f arg1) { + return (arg0.x * arg1.x) + (arg0.y * arg1.y) + (arg0.z * arg1.z); +} + +s32 func_81400A10(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4) { + s32 var_v1 = 0; + + if ((SQ(arg2 - arg0) + SQ(arg3 - arg1)) <= SQ(arg4)) { + var_v1 = 1; + } + return var_v1; +} + +void func_81400A60(void) { + D_8140E710++; +} + +u32 func_81400A78(s32 arg0) { + u32 temp_a0 = guRandom() + D_8140E710; + u32 var_v1; + + if (arg0 == 0) { + var_v1 = 0; + } else { + var_v1 = (temp_a0 / 10) % arg0; + } + return var_v1; +} + +s32 func_81400ADC(s32 arg0, s32 arg1) { + return func_81400A78(arg0) + arg1; +} + +s32 func_81400B00(s32 arg0) { + return func_81400A78(arg0 * 2) - arg0; +} + +s32 func_81400B28(s32 arg0, s32 arg1) { + return func_81400B00(arg0) + arg1; +} + +s32 func_81400B4C(s32 arg0, s32 arg1) { + s32 temp_v0 = func_81400B00(arg0); + + if (temp_v0 >= 0) { + temp_v0 += arg1; + } else { + temp_v0 -= arg1; + } + return temp_v0; +} + +void func_81400B84(UNUSED s32 arg0) { +} + +void func_81400B8C(Vec3f arg0) { + MathUtil_Atan2s(arg0.y, arg0.z); +} + +void func_81400BBC(Vec3f arg0) { + MathUtil_Atan2s(arg0.z, arg0.x); +} + +void func_81400BEC(Vec3f arg0) { + MathUtil_Atan2s(arg0.x, arg0.y); +} + +void func_81400C1C(Vec3s* arg0, Vec3f arg1) { + arg0->x = MathUtil_Atan2s(arg1.y, arg1.z); + arg0->y = MathUtil_Atan2s(arg1.z, arg1.x); + arg0->z = MathUtil_Atan2s(arg1.x, arg1.y); +} + +f32 func_81400C80(f32 arg0, f32 arg1, s16 arg2) { + return (COSS(arg2) * arg0) - (SINS(arg2) * arg1); +} + +f32 func_81400CC0(f32 arg0, f32 arg1, s16 arg2) { + return (SINS(arg2) * arg0) + (COSS(arg2) * arg1); +} + +Vec3f* func_81400D00(Vec3f* arg0, Vec3f arg1, u16 arg4) { + f32 temp_fv0 = SINS(arg4); + f32 temp_fv1 = COSS(arg4); + + arg0->x = (arg1.x * temp_fv1) + (arg1.z * temp_fv0); + arg0->y = arg1.y; + arg0->z = (-arg1.x * temp_fv0) + (arg1.z * temp_fv1); + + return arg0; +} + +Vec3f* func_81400D6C(Vec3f* arg0, f32 arg1, s16 arg2) { + f32 temp_fv0 = SINS(arg2); + f32 temp_fv1 = COSS(arg2); + + arg0->x = arg1 * temp_fv0; + arg0->y = 0.0f; + arg0->z = arg1 * temp_fv1; + + return arg0; +} + +Vec3f* func_81400DC0(Vec3f* arg0, Vec3f arg1, Vec3s arg4) { + f32 x = arg1.x; + f32 y = arg1.y; + f32 z = arg1.z; + f32 temp_fv0 = SINS(arg4.x); + f32 temp_fv1 = COSS(arg4.x); + f32 temp_ft4 = SINS(arg4.y); + f32 temp_ft5 = COSS(arg4.y); + + arg0->x = (x * temp_ft5) + (z * temp_ft4); + arg0->y = ((x * temp_fv0 * temp_ft4) + (y * temp_fv1)) - (z * temp_fv0 * temp_ft5); + arg0->z = (-x * temp_fv1 * temp_ft4) + (y * temp_fv0) + (z * temp_fv1 * temp_ft5); + + return arg0; +} + +f32 func_81400E8C(Vec3f arg0, Vec3f arg1) { + return sqrtf(SQ(arg1.x - arg0.x) + SQ(arg1.y - arg0.y) + SQ(arg1.z - arg0.z)); +} + +f32 func_81400EF0(Vec3f arg0, Vec3f arg1) { + return sqrtf(SQ(arg1.x - arg0.x) + SQ(arg1.z - arg0.z)); +} + +Vec3f* func_81400F44(Vec3f* arg0, Vec3f arg1, Vec3f arg2) { + arg0->x = arg2.x - arg1.x; + arg0->y = arg2.y - arg1.y; + arg0->z = arg2.z - arg1.z; + + func_8000EAF4(arg0); + + return arg0; +} + +s32 func_81400FA4(Vec3f arg0, Vec3f arg1, f32 arg2) { + return func_81400E8C(arg0, arg1) / arg2; +} + +s32 func_81401020(Vec3f* arg0, Vec3f arg1, Vec3f arg2, f32 arg3) { + f32 temp_fv1; + + arg0->x = arg2.x - arg1.x; + arg0->y = arg2.y - arg1.y; + arg0->z = arg2.z - arg1.z; + + temp_fv1 = arg3 / sqrtf(SQ(arg0->x) + SQ(arg0->y) + SQ(arg0->z)); + + arg0->x = arg0->x * temp_fv1; + arg0->y = arg0->y * temp_fv1; + arg0->z = arg0->z * temp_fv1; + + return 1.0f / temp_fv1; +} + +Vec3f* func_814010D8(Vec3f* arg0, f32 arg1) { + Vec3f sp2C; + Vec3s sp24; + + sp2C.x = 0.0f; + sp2C.y = 0.0f; + sp2C.z = arg1; + + sp24.x = func_81400A78(0x10000); + sp24.y = func_81400A78(0x10000); + + func_81400DC0(arg0, sp2C, sp24); + return arg0; +} + +Vec3f* func_81401168(Vec3f* arg0, f32 arg1) { + arg0->x *= arg1; + arg0->y *= arg1; + arg0->z *= arg1; + + return arg0; +} + +s16 func_8140119C(Vec3f arg0, Vec3f arg1) { + return MathUtil_Atan2s(arg1.y - arg0.y, arg1.z - arg0.z); +} + +s16 func_814011E0(Vec3f arg0, Vec3f arg1) { + return MathUtil_Atan2s(arg1.z - arg0.z, arg1.x - arg0.x); +} + +s16 func_81401224(Vec3f arg0, Vec3f arg1) { + return MathUtil_Atan2s(arg1.x - arg0.x, arg1.y - arg0.y); +} + +s16 func_81401268(s16 arg0, s16 arg1) { + s16 temp_v0 = arg1 - arg0; + + if ((arg0 >> 8) != (arg1 >> 8)) { + if (temp_v0 < 0x400) { + arg0 += 0x80; + } else if (temp_v0 < 0x800) { + arg0 += 0x200; + } else if (temp_v0 < 0x4000) { + arg0 += 0x400; + } else if (temp_v0 < 0x8000) { + arg0 += 0x700; + } else if (temp_v0 < 0xC000) { + arg0 -= 0x700; + } else if (temp_v0 < 0xF800) { + arg0 -= 0x400; + } else if (temp_v0 < 0xFC00) { + arg0 -= 0x200; + } else { + arg0 -= 0x80; + } + } else { + arg0 = arg1; + } + + return arg0; +} void func_8140138C(void) { } -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81401394.s") +void func_81401394(MtxF* arg0) { + if (D_8140E624 < 0x16C) { + func_80010090((MtxF*)((u32)D_8140E620 + (D_8140E624 * sizeof(MtxF))), arg0); -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81401430.s") + gSPMatrix(gDisplayListHead++, ((u32)D_8140E620 + (D_8140E624 * sizeof(MtxF))) & 0x1FFFFFFF, + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_814014E8.s") + D_8140E624++; + } +} -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_814015A0.s") +void func_81401430(MtxF* arg0, s16 arg1, s16 arg2, s16 arg3, f32 arg4) { + f32 temp_fv0 = SINS(arg3) * arg4; + f32 temp_fv1 = COSS(arg3) * arg4; -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_814015F8.s") + arg0->mf[0][0] = temp_fv1; + arg0->mf[0][1] = -temp_fv0; + arg0->mf[0][2] = 0.0f; + arg0->mf[0][3] = 0.0f; -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81401650.s") + arg0->mf[1][0] = temp_fv0; + arg0->mf[1][1] = temp_fv1; + arg0->mf[1][2] = 0.0f; + arg0->mf[1][3] = 0.0f; -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_814017E0.s") + arg0->mf[2][0] = 0.0f; + arg0->mf[2][1] = 0.0f; + arg0->mf[2][2] = 1.0f; + arg0->mf[2][3] = 0.0f; -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81401940.s") + arg0->mf[3][0] = arg1; + arg0->mf[3][1] = arg2; + arg0->mf[3][2] = 0.0f; + arg0->mf[3][3] = 1.0f; +} -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81401ABC.s") +void func_814014E8(MtxF* arg0, s16 arg1, s16 arg2, s16 arg3, f32 arg4) { + f32 temp_fv0 = SINS(arg3); + f32 temp_fv1 = COSS(arg3); -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81401B6C.s") + arg0->mf[0][0] = temp_fv1; + arg0->mf[0][1] = -temp_fv0; + arg0->mf[0][2] = 0.0f; + arg0->mf[0][3] = 0.0f; -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81401C04.s") + arg0->mf[1][0] = temp_fv0 * arg4; + arg0->mf[1][1] = temp_fv1 * arg4; + arg0->mf[1][2] = 0.0f; + arg0->mf[1][3] = 0.0f; -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81401D50.s") + arg0->mf[2][0] = 0.0f; + arg0->mf[2][1] = 0.0f; + arg0->mf[2][2] = 1.0f; + arg0->mf[2][3] = 0.0f; -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81401E84.s") + arg0->mf[3][0] = arg1; + arg0->mf[3][1] = arg2; + arg0->mf[3][2] = 0.0f; + arg0->mf[3][3] = 1.0f; +} -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81401FC0.s") +void func_814015A0(s16 arg0, s16 arg1, s16 arg2, f32 arg3) { + MtxF sp20; -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_8140203C.s") + func_81401430(&sp20, arg0, arg1, arg2 + 0x8000, arg3); + func_81401394(&sp20); +} -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_814020B8.s") +void func_814015F8(s16 arg0, s16 arg1, s16 arg2, f32 arg3) { + MtxF sp20; -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_8140213C.s") + func_814014E8(&sp20, arg0, arg1, arg2 + 0x8000, arg3); + func_81401394(&sp20); +} -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_814021A4.s") +void func_81401650(MtxF* arg0, Vec3f arg1, Vec3s arg2, f32 arg3) { + f32 temp_fa1; + f32 temp_fs0; + f32 temp_fs1; + f32 temp_ft4; + f32 temp_fv0; + f32 temp_fv1; -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81402214.s") + temp_ft4 = SINS(arg2.x); + temp_fv0 = COSS(arg2.x); -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_8140227C.s") + temp_fv1 = SINS(arg2.y); + temp_fa1 = COSS(arg2.y); -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_814022EC.s") + temp_fs0 = SINS(arg2.z); + temp_fs1 = COSS(arg2.z); -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_8140238C.s") + arg0->mf[0][0] = ((temp_fa1 * temp_fs1) + (temp_ft4 * temp_fv1 * temp_fs0)) * arg3; + arg0->mf[0][1] = temp_fv0 * temp_fs0 * arg3; + arg0->mf[0][2] = ((-temp_fv1 * temp_fs1) + (temp_ft4 * temp_fa1 * temp_fs0)) * arg3; + arg0->mf[0][3] = 0.0f; + + arg0->mf[1][0] = ((-temp_fa1 * temp_fs0) + (temp_ft4 * temp_fv1 * temp_fs1)) * arg3; + arg0->mf[1][1] = temp_fv0 * temp_fs1 * arg3; + arg0->mf[1][2] = ((temp_fv1 * temp_fs0) + (temp_ft4 * temp_fa1 * temp_fs1)) * arg3; + arg0->mf[1][3] = 0.0f; + + arg0->mf[2][0] = temp_fv0 * temp_fv1 * arg3; + arg0->mf[2][1] = -temp_ft4 * arg3; + arg0->mf[2][2] = temp_fv0 * temp_fa1 * arg3; + arg0->mf[2][3] = 0.0f; + + arg0->mf[3][0] = arg1.x; + arg0->mf[3][1] = arg1.y; + arg0->mf[3][2] = arg1.z; + arg0->mf[3][3] = 1.0f; +} + +void func_814017E0(MtxF* arg0, Vec3f arg1, Vec3s arg2, f32 arg3) { + f32 temp_fa0; + f32 temp_fa1; + f32 temp_fs0; + f32 temp_ft5; + f32 temp_fv0; + f32 temp_fv1; + + temp_fa1 = SINS(arg2.x); + temp_fv0 = COSS(arg2.x); + + temp_fv1 = SINS(arg2.y); + temp_fa0 = COSS(arg2.y); + + temp_ft5 = SINS(arg2.z); + temp_fs0 = COSS(arg2.z); + + arg0->mf[0][0] = (temp_fa0 * temp_fs0) + (temp_fa1 * temp_fv1 * temp_ft5); + arg0->mf[0][1] = temp_fv0 * temp_ft5; + arg0->mf[0][2] = (-temp_fv1 * temp_fs0) + (temp_fa1 * temp_fa0 * temp_ft5); + arg0->mf[0][3] = 0.0f; + + arg0->mf[1][0] = ((-temp_fa0 * temp_ft5) + (temp_fa1 * temp_fv1 * temp_fs0)) * arg3; + arg0->mf[1][1] = temp_fv0 * temp_fs0 * arg3; + arg0->mf[1][2] = ((temp_fv1 * temp_ft5) + (temp_fa1 * temp_fa0 * temp_fs0)) * arg3; + arg0->mf[1][3] = 0.0f; + + arg0->mf[2][0] = temp_fv0 * temp_fv1; + arg0->mf[2][1] = -temp_fa1; + arg0->mf[2][2] = temp_fv0 * temp_fa0; + arg0->mf[2][3] = 0.0f; + + arg0->mf[3][0] = arg1.x; + arg0->mf[3][1] = arg1.y; + arg0->mf[3][2] = arg1.z; + arg0->mf[3][3] = 1.0f; +} + +void func_81401940(MtxF* arg0, Vec3f arg1, Vec3s arg2, f32 arg3, f32 arg4) { + f32 temp_fa0; + f32 temp_fa1; + f32 temp_fs0; + f32 temp_ft5; + f32 temp_fv0; + f32 temp_fv1; + + temp_fa1 = SINS(arg2.x); + temp_fv0 = COSS(arg2.x); + + temp_fv1 = SINS(arg2.y); + temp_fa0 = COSS(arg2.y); + + temp_ft5 = SINS(arg2.z); + temp_fs0 = COSS(arg2.z); + + arg0->mf[0][0] = ((temp_fa0 * temp_fs0) + (temp_fa1 * temp_fv1 * temp_ft5)) * arg3; + arg0->mf[0][1] = temp_fv0 * temp_ft5 * arg3; + arg0->mf[0][2] = ((-temp_fv1 * temp_fs0) + (temp_fa1 * temp_fa0 * temp_ft5)) * arg3; + arg0->mf[0][3] = 0.0f; + + arg0->mf[1][0] = ((-temp_fa0 * temp_ft5) + (temp_fa1 * temp_fv1 * temp_fs0)) * arg4; + arg0->mf[1][1] = temp_fv0 * temp_fs0 * arg4; + arg0->mf[1][2] = ((temp_fv1 * temp_ft5) + (temp_fa1 * temp_fa0 * temp_fs0)) * arg4; + arg0->mf[1][3] = 0.0f; + + arg0->mf[2][0] = temp_fv0 * temp_fv1; + arg0->mf[2][1] = -temp_fa1; + arg0->mf[2][2] = temp_fv0 * temp_fa0; + arg0->mf[2][3] = 0.0f; + + arg0->mf[3][0] = arg1.x; + arg0->mf[3][1] = arg1.y; + arg0->mf[3][2] = arg1.z; + arg0->mf[3][3] = 1.0f; +} + +void func_81401ABC(MtxF* arg0, MtxF* arg1, Vec3f arg2, f32 arg3) { + arg0->mf[0][0] = arg1->mf[0][0] * arg3; + arg0->mf[0][1] = arg1->mf[1][0] * arg3; + arg0->mf[0][2] = arg1->mf[2][0] * arg3; + arg0->mf[0][3] = 0.0f; + + arg0->mf[1][0] = arg1->mf[0][1] * arg3; + arg0->mf[1][1] = arg1->mf[1][1] * arg3; + arg0->mf[1][2] = arg1->mf[2][1] * arg3; + arg0->mf[1][3] = 0.0f; + + arg0->mf[2][0] = arg1->mf[0][2] * arg3; + arg0->mf[2][1] = arg1->mf[1][2] * arg3; + arg0->mf[2][2] = arg1->mf[2][2] * arg3; + arg0->mf[2][3] = 0.0f; + + arg0->mf[3][0] = arg2.x; + arg0->mf[3][1] = arg2.y; + arg0->mf[3][2] = arg2.z; + arg0->mf[3][3] = 1.0f; +} + +void func_81401B6C(MtxF* arg0, MtxF* arg1, Vec3f arg2, f32 arg3) { + arg0->mf[0][0] = arg1->mf[0][0]; + arg0->mf[0][1] = arg1->mf[1][0]; + arg0->mf[0][2] = arg1->mf[2][0]; + arg0->mf[0][3] = 0.0f; + + arg0->mf[1][0] = arg1->mf[0][1] * arg3; + arg0->mf[1][1] = arg1->mf[1][1] * arg3; + arg0->mf[1][2] = arg1->mf[2][1] * arg3; + arg0->mf[1][3] = 0.0f; + + arg0->mf[2][0] = arg1->mf[0][2]; + arg0->mf[2][1] = arg1->mf[1][2]; + arg0->mf[2][2] = arg1->mf[2][2]; + arg0->mf[2][3] = 0.0f; + + arg0->mf[3][0] = arg2.x; + arg0->mf[3][1] = arg2.y; + arg0->mf[3][2] = arg2.z; + arg0->mf[3][3] = 1.0f; +} + +void func_81401C04(MtxF* arg0, MtxF* arg1, Vec3f arg2, f32 arg3, s16 arg4) { + f32 temp_fv0 = SINS(arg4); + f32 temp_fv1 = COSS(arg4); + + arg0->mf[0][0] = ((arg1->mf[0][0] * temp_fv1) + (arg1->mf[0][1] * temp_fv0)) * arg3; + arg0->mf[0][1] = ((arg1->mf[1][0] * temp_fv1) + (arg1->mf[1][1] * temp_fv0)) * arg3; + arg0->mf[0][2] = ((arg1->mf[2][0] * temp_fv1) + (arg1->mf[2][1] * temp_fv0)) * arg3; + arg0->mf[0][3] = 0.0f; + + arg0->mf[1][0] = ((arg1->mf[0][0] * -temp_fv0) + (arg1->mf[0][1] * temp_fv1)) * arg3; + arg0->mf[1][1] = ((arg1->mf[1][0] * -temp_fv0) + (arg1->mf[1][1] * temp_fv1)) * arg3; + arg0->mf[1][2] = ((arg1->mf[2][0] * -temp_fv0) + (arg1->mf[2][1] * temp_fv1)) * arg3; + arg0->mf[1][3] = 0.0f; + + arg0->mf[2][0] = arg1->mf[0][2] * arg3; + arg0->mf[2][1] = arg1->mf[1][2] * arg3; + arg0->mf[2][2] = arg1->mf[2][2] * arg3; + arg0->mf[2][3] = 0.0f; + + arg0->mf[3][0] = arg2.x; + arg0->mf[3][1] = arg2.y; + arg0->mf[3][2] = arg2.z; + arg0->mf[3][3] = 1.0f; +} + +void func_81401D50(MtxF* arg0, MtxF* arg1, Vec3f arg2, f32 arg3, s16 arg4) { + f32 temp_fv0 = SINS(arg4); + f32 temp_fv1 = COSS(arg4); + + arg0->mf[0][0] = (arg1->mf[0][0] * temp_fv1) + (arg1->mf[0][1] * temp_fv0); + arg0->mf[0][1] = (arg1->mf[1][0] * temp_fv1) + (arg1->mf[1][1] * temp_fv0); + arg0->mf[0][2] = (arg1->mf[2][0] * temp_fv1) + (arg1->mf[2][1] * temp_fv0); + arg0->mf[0][3] = 0.0f; + + arg0->mf[1][0] = ((arg1->mf[0][0] * -temp_fv0) + (arg1->mf[0][1] * temp_fv1)) * arg3; + arg0->mf[1][1] = ((arg1->mf[1][0] * -temp_fv0) + (arg1->mf[1][1] * temp_fv1)) * arg3; + arg0->mf[1][2] = ((arg1->mf[2][0] * -temp_fv0) + (arg1->mf[2][1] * temp_fv1)) * arg3; + arg0->mf[1][3] = 0.0f; + + arg0->mf[2][0] = arg1->mf[0][2]; + arg0->mf[2][1] = arg1->mf[1][2]; + arg0->mf[2][2] = arg1->mf[2][2]; + arg0->mf[2][3] = 0.0f; + + arg0->mf[3][0] = arg2.x; + arg0->mf[3][1] = arg2.y; + arg0->mf[3][2] = arg2.z; + arg0->mf[3][3] = 1.0f; +} + +void func_81401E84(MtxF* arg0, Vec3f arg1, Vec3f arg2, s16 arg3, f32 arg4) { + Vec3f sp3C; + Vec3f sp30; + Vec3f sp24; + + func_8000E88C(&sp3C, SINS(arg3), 0.0f, COSS(arg3)); + func_8000EAF4(&arg1); + func_8000EA84(&sp30, &arg1, &sp3C); + func_8000EAF4(&sp30); + func_8000EA84(&sp24, &sp30, &arg1); + func_8000EAF4(&sp24); + + arg0->mf[0][0] = sp30.x * arg4; + arg0->mf[0][1] = sp30.y * arg4; + arg0->mf[0][2] = sp30.z * arg4; + arg0->mf[3][0] = arg2.x; + + arg0->mf[1][0] = arg1.x * arg4; + arg0->mf[1][1] = arg1.y * arg4; + arg0->mf[1][2] = arg1.z * arg4; + arg0->mf[3][1] = arg2.y; + + arg0->mf[2][0] = sp24.x * arg4; + arg0->mf[2][1] = sp24.y * arg4; + arg0->mf[2][2] = sp24.z * arg4; + arg0->mf[3][2] = arg2.z; + + arg0->mf[0][3] = 0.0f; + arg0->mf[1][3] = 0.0f; + arg0->mf[2][3] = 0.0f; + arg0->mf[3][3] = 1.0f; +} + +void func_81401FC0(Vec3f arg0, Vec3s arg1, f32 arg2) { + MtxF sp28; + + func_81401650(&sp28, arg0, arg1, arg2); + func_81401394(&sp28); +} + +void func_8140203C(Vec3f arg0, Vec3s arg1, f32 arg2) { + MtxF sp28; + + func_814017E0(&sp28, arg0, arg1, arg2); + func_81401394(&sp28); +} + +void func_814020B8(Vec3f arg0, Vec3s arg1, f32 arg2, f32 arg3) { + MtxF sp28; + + func_81401940(&sp28, arg0, arg1, arg2, arg3); + func_81401394(&sp28); +} + +void func_8140213C(arg1_func_8140213C* arg0, Vec3f arg1, f32 arg4) { + MtxF sp20; + + func_81401ABC(&sp20, &arg0->unk_64, arg1, arg4); + func_81401394(&sp20); +} + +void func_814021A4(arg1_func_8140213C* arg0, Vec3f arg1, f32 arg4, s16 arg5) { + MtxF sp28; + + func_81401C04(&sp28, &arg0->unk_64, arg1, arg4, arg5); + func_81401394(&sp28); +} + +void func_81402214(arg1_func_8140213C* arg0, Vec3f arg1, f32 arg4) { + MtxF sp20; + + func_81401B6C(&sp20, &arg0->unk_64, arg1, arg4); + func_81401394(&sp20); +} + +void func_8140227C(arg1_func_8140213C* arg0, Vec3f arg1, f32 arg4, s16 arg5) { + MtxF sp28; + + func_81401D50(&sp28, &arg0->unk_64, arg1, arg4, arg5); + func_81401394(&sp28); +} + +void func_814022EC(Vec3f arg0, Vec3s arg3, f32 arg5) { + MtxF sp30; + Vec3s sp28; + + sp28.x = arg3.x + 0x8000; + sp28.y = arg3.y + 0x8000; + sp28.z = arg3.z; + + func_81401650(&sp30, arg0, sp28, arg5); + func_81401394(&sp30); +} + +void func_8140238C(Vec3f arg0, Vec3f arg3, f32 arg6) { + MtxF sp30; + + func_81401E84(&sp30, arg3, arg0, 0, arg6); + func_81401394(&sp30); +} diff --git a/src/fragments/34/fragment34_264380.c b/src/fragments/34/fragment34_264380.c index acd1553..a66e191 100644 --- a/src/fragments/34/fragment34_264380.c +++ b/src/fragments/34/fragment34_264380.c @@ -1,4 +1,4 @@ -#include "global.h" +#include "fragment34.h" #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_264380/func_81402410.s") diff --git a/src/fragments/34/fragment34_269820.c b/src/fragments/34/fragment34_269820.c index 114cfca..49a8031 100644 --- a/src/fragments/34/fragment34_269820.c +++ b/src/fragments/34/fragment34_269820.c @@ -1,4 +1,5 @@ -#include "global.h" +#include "fragment34.h" +#include "src/12D80.h" #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_269820/func_814078B0.s") diff --git a/src/fragments/34/fragment34_26E540.c b/src/fragments/34/fragment34_26E540.c index 7a03cee..0aeaf4b 100644 --- a/src/fragments/34/fragment34_26E540.c +++ b/src/fragments/34/fragment34_26E540.c @@ -1,4 +1,4 @@ -#include "global.h" +#include "fragment34.h" #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_26E540/func_8140C5D0.s") diff --git a/src/fragments/34/fragment34_26E6D0.c b/src/fragments/34/fragment34_26E6D0.c index 5be7e3a..9e32f00 100644 --- a/src/fragments/34/fragment34_26E6D0.c +++ b/src/fragments/34/fragment34_26E6D0.c @@ -1,4 +1,4 @@ -#include "global.h" +#include "fragment34.h" #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_26E6D0/func_8140C760.s") diff --git a/yamls/us/rom.yaml b/yamls/us/rom.yaml index 6730f6b..df56080 100644 --- a/yamls/us/rom.yaml +++ b/yamls/us/rom.yaml @@ -1422,7 +1422,8 @@ - [0x26F9C0, data, fragments/34/fragment34_data] - [0x270570, rodata, fragments/34/fragment34_rodata] - - {vram: 0x8140E620, type: bss, name: fragments/34/fragment34_bss} + - {vram: 0x8140E620, type: bss, name: fragments/34/fragment34_261F90} + - {vram: 0x8140E720, type: bss, name: fragments/34/fragment34_269820} - name: fragment34_relocs type: code