fragment39 (#174)
Some checks failed
C/C++ CI / build (push) Has been cancelled

This commit is contained in:
Maide
2025-03-16 19:18:39 +00:00
committed by GitHub
parent c1eb1ab2de
commit 11ccc80175
24 changed files with 3710 additions and 233 deletions

View File

@@ -280,6 +280,61 @@ extern u8 D_20068A0[];
extern u8 D_2006920[];
extern u8 D_20069A0[];
extern u8 D_2002000[];
extern u8 D_30C1290[];
extern u8 D_0302EE00[];
extern u8 D_03034580[];
extern u8 D_03039D00[];
extern u8 D_0303F480[];
extern u8 D_03044C00[];
extern u8 D_0304A380[];
extern u8 D_0304FB00[];
extern u8 D_03055280[];
extern u8 D_0305AA00[];
extern u8 D_03060180[];
extern u8 D_03065900[];
extern u8 D_03069528[];
extern u8 D_0306D150[];
extern u8 D_03070D78[];
extern u8 D_030749A0[];
extern u8 D_030785C8[];
extern u8 D_0307C1F0[];
extern u8 D_0307FE18[];
extern u8 D_03083A40[];
extern u8 D_03087668[];
extern u8 D_0300BB80[];
extern u8 D_03017700[];
extern u8 D_3023280[];
extern u8 D_0308B290[];
extern u8 D_0308D290[];
extern u8 D_0308F290[];
extern u8 D_03091290[];
extern u8 D_03093290[];
extern u8 D_03095290[];
extern u8 D_03097290[];
extern u8 D_03099290[];
extern u8 D_0309B290[];
extern u8 D_0309D290[];
extern u8 D_0309F290[];
extern u8 D_030A1290[];
extern u8 D_030A3290[];
extern u8 D_030A5290[];
extern u8 D_030A7290[];
extern u8 D_030A9290[];
extern u8 D_030AB290[];
extern u8 D_030AD290[];
extern u8 D_030AF290[];
extern u8 D_030B1290[];
extern u8 D_030B3290[];
extern u8 D_030B5290[];
extern u8 D_030B7290[];
extern u8 D_030B9290[];
extern u8 D_030BB290[];
extern u8 D_030BD290[];
extern u8 D_030BF290[];
extern u8 D_30CD390[];
extern u8 D_30CD410[];
extern u8 D_30CD490[];
extern u8 D_30CD510[];
extern u8 D_800818E0[0x20];
@@ -308,7 +363,6 @@ extern unk_D_800A7440 D_800A7440;
extern struct unk_D_86002F58_004_000_000 D_800AC840;
extern struct unk_D_86002F58_004_000_000 D_800AC858;
extern struct unk_D_86002F58_004_000* D_8006F09C;
typedef struct unk_D_8006FF00 {
/* 0x00 */ u8 unk_00;

View File

@@ -507,4 +507,60 @@ D_2006920 = 0x2006920;
D_20069A0 = 0x20069A0;
D_2002000 = 0x2002000;
D_8006FEE8 = 0x8006FEE8; // size:0xC type:char
D_800AC910 = 0x800AC910; // size:0x58
D_800AC910 = 0x800AC910; // size:0x58
D_82508B00 = 0x82508B00; // size:0x30
D_30C1290 = 0x30C1290;
D_0302EE00 = 0x0302EE00;
D_03034580 = 0x03034580;
D_03039D00 = 0x03039D00;
D_0303F480 = 0x0303F480;
D_03044C00 = 0x03044C00;
D_0304A380 = 0x0304A380;
D_0304FB00 = 0x0304FB00;
D_03055280 = 0x03055280;
D_0305AA00 = 0x0305AA00;
D_03060180 = 0x03060180;
D_03065900 = 0x03065900;
D_03069528 = 0x03069528;
D_0306D150 = 0x0306D150;
D_03070D78 = 0x03070D78;
D_030749A0 = 0x030749A0;
D_030785C8 = 0x030785C8;
D_0307C1F0 = 0x0307C1F0;
D_0307FE18 = 0x0307FE18;
D_03083A40 = 0x03083A40;
D_03087668 = 0x03087668;
D_0300BB80 = 0x0300BB80;
D_03017700 = 0x03017700;
D_3023280 = 0x3023280;
D_0308B290 = 0x0308B290;
D_0308D290 = 0x0308D290;
D_0308F290 = 0x0308F290;
D_03091290 = 0x03091290;
D_03093290 = 0x03093290;
D_03095290 = 0x03095290;
D_03097290 = 0x03097290;
D_03099290 = 0x03099290;
D_0309B290 = 0x0309B290;
D_0309D290 = 0x0309D290;
D_0309F290 = 0x0309F290;
D_030A1290 = 0x030A1290;
D_030A3290 = 0x030A3290;
D_030A5290 = 0x030A5290;
D_030A7290 = 0x030A7290;
D_030A9290 = 0x030A9290;
D_030AB290 = 0x030AB290;
D_030AD290 = 0x030AD290;
D_030AF290 = 0x030AF290;
D_030B1290 = 0x030B1290;
D_030B3290 = 0x030B3290;
D_030B5290 = 0x030B5290;
D_030B7290 = 0x030B7290;
D_030B9290 = 0x030B9290;
D_030BB290 = 0x030BB290;
D_030BF290 = 0x030BF290;
D_30CD390 = 0x30CD390;
D_30CD410 = 0x30CD410;
D_30CD490 = 0x30CD490;
D_30CD510 = 0x30CD510;
D_8250A288 = 0x8250A288; // size:0xA

View File

@@ -121,4 +121,60 @@ D_03001F98 = 0x03001F98;
D_03002F60 = 0x03002F60;
D_03003F28 = 0x03003F28;
D_3000000 = 0x3000000;
D_3000000_2 = 0x3000000;
D_3000000_2 = 0x3000000;
D_30C1290 = 0x30C1290;
D_0302EE00 = 0x0302EE00;
D_03034580 = 0x03034580;
D_03039D00 = 0x03039D00;
D_0303F480 = 0x0303F480;
D_03044C00 = 0x03044C00;
D_0304A380 = 0x0304A380;
D_0304FB00 = 0x0304FB00;
D_03055280 = 0x03055280;
D_0305AA00 = 0x0305AA00;
D_03060180 = 0x03060180;
D_03065900 = 0x03065900;
D_03069528 = 0x03069528;
D_0306D150 = 0x0306D150;
D_03070D78 = 0x03070D78;
D_030749A0 = 0x030749A0;
D_030785C8 = 0x030785C8;
D_0307C1F0 = 0x0307C1F0;
D_0307FE18 = 0x0307FE18;
D_03083A40 = 0x03083A40;
D_03087668 = 0x03087668;
D_0300BB80 = 0x0300BB80;
D_03017700 = 0x03017700;
D_3023280 = 0x3023280;
D_0308B290 = 0x0308B290;
D_0308D290 = 0x0308D290;
D_0308F290 = 0x0308F290;
D_03091290 = 0x03091290;
D_03093290 = 0x03093290;
D_03095290 = 0x03095290;
D_03097290 = 0x03097290;
D_03099290 = 0x03099290;
D_0309B290 = 0x0309B290;
D_0309D290 = 0x0309D290;
D_0309F290 = 0x0309F290;
D_030A1290 = 0x030A1290;
D_030A3290 = 0x030A3290;
D_030A5290 = 0x030A5290;
D_030A7290 = 0x030A7290;
D_030A9290 = 0x030A9290;
D_030AB290 = 0x030AB290;
D_030AD290 = 0x030AD290;
D_030AF290 = 0x030AF290;
D_030B1290 = 0x030B1290;
D_030B3290 = 0x030B3290;
D_030B5290 = 0x030B5290;
D_030B7290 = 0x030B7290;
D_030B9290 = 0x030B9290;
D_030BB290 = 0x030BB290;
D_030BF290 = 0x030BF290;
D_30CD390 = 0x30CD390;
D_30CD410 = 0x30CD410;
D_30CD490 = 0x30CD490;
D_30CD510 = 0x30CD510;
D_8250A288 = 0x8250A288;
D_030BD290 = 0x030BD290;

View File

@@ -9,6 +9,7 @@
#include "19840.h"
#include "dp_intro.h"
#include "hal_libc.h"
#include "src/12D80.h"
void func_8001BB20(void) {
func_8001103C(0, &D_800AC840);

View File

@@ -99,15 +99,21 @@ char* func_80021CA4(char* arg0, s32 arg1) {
return arg0;
}
char* func_80021CE0(s32 arg0, s8* arg1) {
char* func_80021CE0(s32 arg0, char* arg1) {
extern char* D_80072EE0[];
// "ひでんマシン%02d"
static const char D_0007CCA0[] = { 0xA4, 0xD2, 0xA4, 0xC7, 0xA4, 0xF3, 0xA5, 0xDE, 0xA5, 0xB7,
0xA5, 0xF3, 0x25, 0x30, 0x32, 0x64, 0x00, 0x00, 0x00, 0x00 };
// "わざマシン%02d"
static const char D_0007CCB4[] = { 0xA4, 0xEF, 0xA4, 0xB6, 0xA5, 0xDE, 0xA5, 0xB7,
0xA5, 0xF3, 0x25, 0x30, 0x32, 0x64, 0x00, 0x00 };
if ((arg0 > 0) && (arg0 < 0x54)) {
HAL_Strcpy(arg1, D_80072EE0[arg0 - 1]);
} else if ((arg0 >= 0xC4) && (arg0 < 0xC9)) {
sprintf(arg1, "ひでんマシン%02d", arg0 - 0xC3, arg0);
sprintf(arg1, D_0007CCA0, arg0 - 0xC3, arg0);
} else if ((arg0 >= 0xC9) && (arg0 < 0xFF)) {
sprintf(arg1, "わざマシン%02d", arg0 - 0xC8, arg0);
sprintf(arg1, D_0007CCB4, arg0 - 0xC8, arg0);
} else {
HAL_Strcpy(arg1, D_80072EE0[6]);
}
@@ -198,7 +204,8 @@ u16 func_80022084(u16 arg0) {
return i;
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/22630/func_800220C4.s")
void func_800220C4(void) {
}
u16 func_800220CC(s32 arg0, u16 arg1) {
u16 sp6;
@@ -228,7 +235,7 @@ u16 func_800220CC(s32 arg0, u16 arg1) {
return sp6;
}
u32 func_80022170(s32 arg0, s32 arg1, u16 arg2, u16 arg3, s32 arg4) {
u32 func_80022170(s32 arg0, s32 arg1, u16 arg2, u16 arg3, u16 arg4) {
u16 sp1C;
u16 sp24;
u16 sp22;
@@ -280,7 +287,19 @@ void func_80022338(unk_func_80026268_arg0* arg0) {
arg0->unk_2E = func_80022170(5, arg0->unk_00.unk_00, arg0->unk_1C, arg0->unk_24, arg0->unk_1E);
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/22630/func_8002240C.s")
u16 func_8002240C(s32 arg0, s32 arg1, u16 arg2, u16 arg3, u16 arg4) {
s32 i;
s32 tmp;
for (i = 1; i < 0xFFFF; i += 2) {
tmp = func_80022170(arg0, arg1, i + 2, arg3, arg4);
if (arg2 < tmp) {
break;
}
}
return i;
}
u32 func_800224B8(s32 arg0, u16 arg1) {
u32 sp4;

View File

@@ -80,7 +80,7 @@ typedef struct unk_D_800AC910_050_9AC {
/* 0x008 */ unk_D_800AC910_050_9AC_008 unk_008[6];
/* 0x110 */ char unk_110[6][11];
/* 0x152 */ char unk_152[6][11];
} unk_D_800AC910_050_9AC; // size >= 0x160
} unk_D_800AC910_050_9AC; // size = 0x194
typedef struct unk_D_800AC910_050_B40_000 {
/* 0x000 */ u8 unk_000;
@@ -116,7 +116,9 @@ typedef struct unk_D_800AC910_050 {
/* 0x037 */ char unk037[0x12];
/* 0x049 */ u8 unk_049;
/* 0x04A */ unk_func_80026268_arg0_000 unk_04A[1];
/* 0x04C */ char unk04C[0x39];
/* 0x04C */ char unk04C[0x2A];
/* 0x076 */ u8 unk_076;
/* 0x077 */ char unk077[0xE];
/* 0x085 */ u8 unk_085;
/* 0x086 */ char unk086[0x4];
/* 0x08A */ u8 unk_08A;
@@ -125,7 +127,9 @@ typedef struct unk_D_800AC910_050 {
/* 0x267 */ unk_func_80026268_arg0_000 unk_267[1];
/* 0x269 */ char unk269[0x63];
/* 0x2CC */ s8 unk_2CC;
/* 0x2CD */ char unk2CD[0x1AA];
/* 0x2CD */ char unk2CD[0x174];
/* 0x441 */ u8 unk_441;
/* 0x442 */ char unk442[0x35];
/* 0x477 */ s8 unk_477;
/* 0x478 */ char unk478[0xA5];
/* 0x51D */ s8 unk_51D;
@@ -183,15 +187,17 @@ char* func_80021C20(char* arg0, char* arg1);
char* func_80021C40(char* arg0, char* arg1);
char* func_80021C80(char* arg0, char* arg1);
char* func_80021CA4(char* arg0, s32 arg1);
char* func_80021CE0(s32 arg0, s8* arg1);
char* func_80021CE0(s32 arg0, char* arg1);
void func_80021D9C(unk_func_80026268_arg0* arg0, unk_D_800AE4E8_004_1_000_010_000* arg1);
void func_80021E90(unk_func_80026268_arg0* arg0, unk_D_800AC910_050_9AC_008* arg1);
void func_80021F04(unk_func_80026268_arg0* arg0, unk_D_800AE4E8_004_1_000_010_000* arg1);
void func_80022010(unk_func_88205880_00D0* arg0, unk_D_800AC910_050_9AC_008* arg1);
u16 func_80022084(u16 arg0);
void func_800220C4(void);
u16 func_800220CC(s32 arg0, u16 arg1);
u32 func_80022170(s32 arg0, s32 arg1, u16 arg2, u16 arg3, s32 arg4);
u32 func_80022170(s32 arg0, s32 arg1, u16 arg2, u16 arg3, u16 arg4);
void func_80022338(unk_func_80026268_arg0* arg0);
u16 func_8002240C(s32 arg0, s32 arg1, u16 arg2, u16 arg3, u16 arg4);
u32 func_800224B8(s32 arg0, u16 arg1);
#endif // _6BC0_H_

View File

@@ -66,7 +66,20 @@ void func_800228B0(unk_func_80026268_arg0* arg0) {
#pragma GLOBAL_ASM("asm/us/nonmatchings/232C0/func_800228F0.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/232C0/func_80022978.s")
void func_80022978(unk_func_80026268_arg0* arg0, s16 arg1, u8 arg2) {
unk_D_800AE4E8_004_2_0DC0_002 sp24;
if (arg2) {
sp24.unk_00 = arg1 + 0x80;
} else {
sp24.unk_00 = arg1;
}
sp24.unk_01 = arg0->unk_24;
sp24.unk_02 = arg0->unk_0E;
func_80021B7C(sp24.unk_04, arg0->unk_30);
func_80021B7C(sp24.unk_0F, arg0->unk_3B);
func_80027C24(0x13, 0, arg0->unk_00.unk_00 - 1, &sp24);
}
s32 func_80022A04(u16* arg0, unk_D_800AC910_040* arg1) {
return !bcmp(arg0, arg1, 0xD);
@@ -94,13 +107,36 @@ s32 func_80022A60(s32 arg0) {
return D_800732FF[arg0];
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/232C0/func_80022A88.s")
u8 func_80022A88(s32 arg0) {
extern u8 D_800733BF[];
#pragma GLOBAL_ASM("asm/us/nonmatchings/232C0/func_80022A98.s")
return D_800733BF[arg0];
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/232C0/func_80022AA8.s")
u8 func_80022A98(s32 arg0) {
extern u8 D_80073457[];
#pragma GLOBAL_ASM("asm/us/nonmatchings/232C0/func_80022ACC.s")
return D_80073457[arg0];
}
s32 func_80022AA8(s32 arg0) {
extern u8 D_800734EF[];
if (arg0 == 0) {
return 0;
}
return D_800734EF[arg0] + 1;
}
s32 func_80022ACC(s32 arg0) {
extern u8 D_80073597[];
if (arg0 == 0) {
return 0;
}
return D_80073597[arg0] + 1;
}
void func_80022AF0(unk_func_80022C28_ret* arg0) {
if (arg0->unk_00 == 1) {
@@ -161,7 +197,17 @@ unk_func_80022C28_ret* func_80022C28(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
return sp1C;
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/232C0/func_80022CC0.s")
unk_func_80022C28_ret* func_80022CC0(s32 arg0, s32 arg1, s32 arg2, s32 arg3, char* arg4, u16 arg5) {
unk_func_80022C28_ret* sp24;
unk_func_80022C28_ret* temp_v0;
unk_func_80022C28_ret* var_v1;
sp24 = func_80022C28(arg0, arg1, arg2, 1);
if ((sp24 != NULL) && (arg0 & 0xF0)) {
func_80027430(arg0, arg2, arg3, arg4, arg5);
}
return sp24;
}
s32 func_80022D24(unk_func_80022C28_ret* arg0) {
s32 sp1C = 0;
@@ -325,7 +371,6 @@ void func_800232A0(u8* arg0, u8* arg1) {
while (arg0 < arg1) {
var_v0 += *arg0++;
}
*arg1 = 0xFF - (var_v0 & 0xFF);
@@ -389,7 +434,7 @@ s32 func_800233F4(s32 arg0) {
UNUSED s32 pad;
s32 sp18 = 0;
if ((func_8000AEBC(arg0, &D_800ACA78, 0x2580, sizeof(unk_D_800AC910_050)) == 0) &&
if ((func_8000AEBC(arg0, &D_800ACA78, 0x2580, sizeof(unk_D_800AC910_050)) == 0) &&
(func_80023230(&D_800ACA78.unk_018, &D_800ACA78.unk_FA0.unk_03) != 0)) {
sp18 = D_800ACA78.unk_FA0.unk_03 == D_800AC910[arg0].unk_04;
}
@@ -421,7 +466,7 @@ s32 func_80023480(s32 arg0) {
return sp30;
}
s32 func_80023574(s32 arg0) {
s32 func_80023574(s32 arg0) {
s32 i;
unk_D_800AC910* temp_s3;
unk_D_800AC910_050* temp_s1 = D_800AC910[arg0].unk_50;
@@ -430,8 +475,8 @@ s32 func_80023574(s32 arg0) {
D_800AC910[arg0].unk_04 = temp_s1->unk_FA0.unk_03;
for (i = 0; i < 4; i++) {
if ((func_8000AF40(arg0, temp_s1, 0x2580, sizeof(unk_D_800AC910_050)) == 0) &&
(func_8000AEBC(arg0, &D_800ACA78, 0x2580, sizeof(unk_D_800AC910_050)) == 0) &&
if ((func_8000AF40(arg0, temp_s1, 0x2580, sizeof(unk_D_800AC910_050)) == 0) &&
(func_8000AEBC(arg0, &D_800ACA78, 0x2580, sizeof(unk_D_800AC910_050)) == 0) &&
(func_800232D0(temp_s1, sizeof(unk_D_800AC910_050)) != 0)) {
return 1;
}
@@ -447,8 +492,8 @@ s32 func_80023658(s32 arg0) {
temp_s3->unk_FA0.unk_03 ^= 0xFF;
for (i = 0; i < 4; i++) {
if ((func_8000AF40(arg0, &temp_s3->unk_FA0, 0x3520, sizeof(unk_D_800AC910_050_FA0)) == 0) &&
(func_8000AEBC(arg0, &D_800ACA78, 0x3520, sizeof(unk_D_800AC910_050_FA0)) == 0) &&
if ((func_8000AF40(arg0, &temp_s3->unk_FA0, 0x3520, sizeof(unk_D_800AC910_050_FA0)) == 0) &&
(func_8000AEBC(arg0, &D_800ACA78, 0x3520, sizeof(unk_D_800AC910_050_FA0)) == 0) &&
(func_800232D0(&temp_s3->unk_FA0, sizeof(unk_D_800AC910_050_FA0)) != 0)) {
return 1;
}
@@ -477,9 +522,8 @@ s32 func_800237C8(s32 arg0, s32 arg1) {
var_v0 &= 0xFFFF;
for (i = 0; i < 4; i++) {
if ((func_8000AF40(arg0, temp_s2, var_v0, 0x1A60) == 0) &&
(func_8000AEBC(arg0, &D_800ACA78, var_v0, 0x1A60) == 0) &&
(func_800232D0(temp_s2, 0x1A60) != 0)) {
if ((func_8000AF40(arg0, temp_s2, var_v0, 0x1A60) == 0) &&
(func_8000AEBC(arg0, &D_800ACA78, var_v0, 0x1A60) == 0) && (func_800232D0(temp_s2, 0x1A60) != 0)) {
return 1;
}
}
@@ -609,7 +653,6 @@ s32 func_80023B7C(s32 arg0) {
return sp2C;
}
s32 func_80023D60(s32 arg0) {
u8 sp2F;
s32 temp_s1 = 0;
@@ -646,7 +689,7 @@ s32 func_80023E34(s32 arg0) {
func_8000A888(arg0, 0);
D_8007364C[arg0] += 1;
// fallthrough
case 1:
if (func_8000AC7C(arg0) != 0) {
D_8007364C[arg0] += 1;
@@ -829,7 +872,11 @@ void func_8002447C(s32 arg0) {
}
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/232C0/func_800244F4.s")
void func_800244F4(s32 arg0) {
if (func_8000A888(arg0, 0) == 0) {
func_8002B274(arg0, 2);
}
}
unk_D_800AC910_050_B40_000* func_80024528(s32 arg0, s32 arg1) {
unk_D_800AC910_050_B40_000* sp1C = NULL;
@@ -1077,7 +1124,6 @@ s32 func_80024DAC(s32 arg0, s32 arg1, s32 arg2, s32 arg3, unk_func_88205880_00D0
s32 sp28 = func_800249B0(arg0);
s32 sp24 = func_80024A48(arg0, arg1, arg2);
if ((arg3 < sp24) || ((arg3 == sp24) && (arg3 < sp28))) {
unk_D_800AC910_050* ptr = D_800AC910[arg1].unk_50;
@@ -1108,15 +1154,35 @@ s32 func_80024DAC(s32 arg0, s32 arg1, s32 arg2, s32 arg3, unk_func_88205880_00D0
return sp2C;
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/232C0/func_80024EF4.s")
s32 func_80024EF4(void) {
return D_800ACA70;
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/232C0/func_80024F00.s")
s32 func_80024F00(s32 arg0) {
return D_800AC910[arg0].unk_03;
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/232C0/func_80024F24.s")
s32 func_80024F24(s32 arg0) {
s32 temp_v0 = 1 << arg0;
#pragma GLOBAL_ASM("asm/us/nonmatchings/232C0/func_80024F68.s")
if (!(D_800ACA74 & temp_v0)) {
return 1;
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/232C0/func_80024F8C.s")
if (!(D_800ACA75 & temp_v0)) {
return 2;
}
return 0;
}
s32 func_80024F68(s32 arg0) {
return D_800AC910[arg0].unk_02;
}
s32 func_80024F8C(s32 arg0) {
return D_800AC910[arg0].unk_05;
}
s32 func_80024FB0(s32 arg0) {
if (!(D_800AC910[arg0].unk_00 & 1)) {
@@ -1144,7 +1210,11 @@ s32 func_80025084(s32 arg0) {
return func_80021A30(&D_800AC910[arg0].unk_50->unk_085);
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/232C0/func_800250E0.s")
void func_800250E0(s32 arg0, u16 arg1) {
if (D_800AC910[arg0].unk_00 & 1) {
func_80021A68(&D_800AC910[arg0].unk_50->unk_085, arg1);
}
}
s32 func_8002513C(s32 arg0) {
s32 temp_a0;
@@ -1168,13 +1238,33 @@ char* func_800251B0(s32 arg0, char* arg1) {
return func_80021C40(arg1, &D_800AC910[arg0].unk_50->unk_018);
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/232C0/func_80025210.s")
char* func_80025210(s32 arg0, char* arg1) {
if (!(D_800AC910[arg0].unk_00 & 1)) {
return NULL;
}
return func_80021B7C(&D_800AC910[arg0].unk_50->unk_018, arg1);
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/232C0/func_8002526C.s")
char* func_8002526C(s32 arg0, char* arg1) {
if (!(D_800AC910[arg0].unk_00 & 1)) {
return NULL;
}
return func_80021C40(arg1, &D_800AC910[arg0].unk_50->unk_076);
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/232C0/func_800252CC.s")
char* func_800252CC(s32 arg0, char* arg1) {
if (!(D_800AC910[arg0].unk_00 & 1)) {
return NULL;
}
return func_80021B7C(&D_800AC910[arg0].unk_50->unk_076, arg1);
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/232C0/func_80025328.s")
s32 func_80025328(s32 arg0) {
if (!(D_800AC910[arg0].unk_00 & 1)) {
return -1;
}
return D_800AC910[arg0].unk_50->unk_441;
}
s32 func_80025370(s32 arg0) {
return (D_800AC910[arg0].unk_00 & 0x4000) != 0;
@@ -1188,7 +1278,19 @@ s32 func_800253C8(s32 arg0) {
return (D_800AC910[arg0].unk_00 & 0x1000) != 0;
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/232C0/func_800253F4.s")
s32 func_800253F4(s32 arg0, func_800253F4_arg1* arg1) {
s32 temp_v1 = (D_800AC910[arg0].unk_00 & 1) != 0;
if (temp_v1 != 0) {
arg1->unk_000 = D_800AC910[arg0].unk_02;
arg1->unk_001 = D_800AC910[arg0].unk_04;
arg1->unk_002 = D_800AC910[arg0].unk_40.unk_00;
_bcopy(D_800AC910[arg0].unk_40.unk_02, arg1->unk_004, sizeof(arg1->unk_004));
_bcopy(&D_800AC910[arg0].unk_50->unk_9AC, (u8*)arg1 + 0xF, sizeof(unk_D_800AC910_050_9AC));
}
return temp_v1;
}
void func_80025498(char* arg0, s32 arg1, u8* arg2) {
s32 temp_v0;
@@ -1240,7 +1342,8 @@ s32 func_8002564C(s32 arg0, s32 arg1) {
temp_t1 = (arg1 - 1) / 8;
temp_t2 = (arg1 - 1) % 8;
return ((ptr23[temp_t1] >> temp_t2) & 1) + ((ptr36[temp_t1] >> temp_t2) & 1) + ((D_800AC910[arg0].unk_06[temp_t1] >> temp_t2) & 1);
return ((ptr23[temp_t1] >> temp_t2) & 1) + ((ptr36[temp_t1] >> temp_t2) & 1) +
((D_800AC910[arg0].unk_06[temp_t1] >> temp_t2) & 1);
}
return 0;
}

View File

@@ -15,16 +15,30 @@ typedef enum {
POKEMON_ROM_YELLOW = 7,
} PokemonRomType;
typedef struct func_800253F4_arg1 {
/* 0x000 */ u8 unk_000;
/* 0x001 */ u8 unk_001;
/* 0x002 */ u16 unk_002;
/* 0x004 */ char unk_004[11];
/* 0x00F */ unk_D_800AC910_050_9AC unk_00F;
} func_800253F4_arg1; // size >= 0x1A3
u16 func_800226C0(s32 arg0, u32 arg1);
void func_80022734(unk_func_80026268_arg0* arg0);
void func_800228B0(unk_func_80026268_arg0* arg0);
void func_80022978(unk_func_80026268_arg0* arg0, s16 arg1, u8 arg2);
s32 func_80022A04(u16* arg0, unk_D_800AC910_040* arg1);
u8 func_80022A28(s32 arg0);
u8 func_80022A38(s32 arg0);
s32 func_80022A60(s32 arg0);
u8 func_80022A88(s32 arg0);
u8 func_80022A98(s32 arg0);
s32 func_80022AA8(s32 arg0);
s32 func_80022ACC(s32 arg0);
void func_80022AF0(unk_func_80022C28_ret* arg0);
void func_80022B88(unk_func_80022C28_ret* arg0);
unk_func_80022C28_ret* func_80022C28(s32 arg0, s32 arg1, s32 arg2, s32 arg3);
unk_func_80022C28_ret* func_80022CC0(s32 arg0, s32 arg1, s32 arg2, s32 arg3, char* arg4, u16 arg5);
s32 func_80022D24(unk_func_80022C28_ret* arg0);
s32 func_80022D8C(unk_func_80022C28_ret* arg0);
s32 func_80022E18(u8* arg0, s32 arg1, unk_func_80022C28_ret* arg2);
@@ -56,6 +70,7 @@ s32 func_80024270(s32 arg0);
s32 func_8002431C(s32 arg0);
s32 func_800243D8(s32 arg0);
void func_8002447C(s32 arg0);
void func_800244F4(s32 arg0);
unk_D_800AC910_050_B40_000* func_80024528(s32 arg0, s32 arg1);
void func_80024624(unk_func_80026268_arg0* arg0, s32 arg1, s32 arg2);
void func_800246F8(unk_func_88205880_00D0* arg0, s32 arg1, s32 arg2);
@@ -70,14 +85,25 @@ void func_80024AE0(s32 arg0, s32 arg1, s32 arg2, s32 arg3);
void func_80024BC4(s32 arg0, s32 arg1, s32 arg2);
s32 func_80024CB0(s32 arg0, s32 arg1, s32 arg2, s32 arg3, unk_func_80026268_arg0* arg4);
s32 func_80024DAC(s32 arg0, s32 arg1, s32 arg2, s32 arg3, unk_func_88205880_00D0* arg4);
s32 func_80024EF4(void);
s32 func_80024F00(s32 arg0);
s32 func_80024F24(s32 arg0);
s32 func_80024F68(s32 arg0);
s32 func_80024F8C(s32 arg0);
s32 func_80024FB0(s32 arg0);
void func_80025040(s32 arg0, unk_D_800AC910_040* arg1);
s32 func_80025084(s32 arg0);
void func_800250E0(s32 arg0, u16 arg1);
s32 func_8002513C(s32 arg0);
char* func_800251B0(s32 arg0, char* arg1);
char* func_80025210(s32 arg0, char* arg1);
char* func_8002526C(s32 arg0, char* arg1);
char* func_800252CC(s32 arg0, char* arg1);
s32 func_80025328(s32 arg0);
s32 func_80025370(s32 arg0);
s32 func_8002539C(s32 arg0);
s32 func_800253C8(s32 arg0);
s32 func_800253F4(s32 arg0, func_800253F4_arg1* arg1);
void func_80025498(char* arg0, s32 arg1, u8* arg2);
void func_80025540(s32 arg0);
s32 func_8002564C(s32 arg0, s32 arg1);

View File

@@ -4,113 +4,6 @@
#include "src/3FB0.h"
#include "src/memory.h"
typedef struct unk_D_800AE4E8_004_1_000_000 {
/* 0x00 */ u8 unk_00;
/* 0x01 */ u8 unk_01;
/* 0x02 */ char unk02[0xC];
/* 0x0E */ s16 unk_0E;
} unk_D_800AE4E8_004_1_000_000; // size >= 0x10
typedef struct unk_D_800AE4E8_004_1_000 {
/* 0x000 */ unk_D_800AE4E8_004_1_000_000 unk_000;
/* 0x010 */ unk_D_800AE4E8_004_1_000_010 unk_010[1];
/* 0x047 */ char unk047[0x119];
} unk_D_800AE4E8_004_1_000; // size = 0x160
typedef struct unk_D_800AE4E8_004_1 {
/* 0x0000 */ unk_D_800AE4E8_004_1_000 unk_0000[4][10];
} unk_D_800AE4E8_004_1; // size = 0x3700
typedef struct unk_D_800AE4E8_004_2_1EA0 {
/* 0x00 */ u8 unk_00;
/* 0x02 */ u16 unk_02;
/* 0x04 */ unk_func_8002A728 unk_04;
/* 0x0C */ unk_func_80027FA0 unk_0C[1];
/* 0x14 */ char unk14[0xA];
/* 0x1E */ u8 unk_1E;
/* 0x1F */ char unk1F[0x9];
} unk_D_800AE4E8_004_2_1EA0; // size = 0x28
typedef struct unk_D_800AE4E8_004_2_0DC0_002 {
/* 0x00 */ char unk00[0x18];
/* 0x18 */ u16 unk_18;
} unk_D_800AE4E8_004_2_0DC0_002; // size = 0x1A
typedef struct unk_D_800AE4E8_004_2_0DC0 {
/* 0x000 */ u8 unk_000;
/* 0x001 */ char unk001[0x1];
/* 0x002 */ unk_D_800AE4E8_004_2_0DC0_002 unk_002[1];
/* 0x01C */ char unk01C[0xF44];
} unk_D_800AE4E8_004_2_0DC0; // size = 0xF60
typedef struct unk_D_800AE4E8_004_2_1D20 {
/* 0x000 */ u8 unk_000;
/* 0x001 */ char unk001[0x17F];
} unk_D_800AE4E8_004_2_1D20; // size = 0x180
typedef struct unk_D_800AE4E8_004_2_1EC8_0002 {
/* 0x00 */ char unk00[0x8C];
} unk_D_800AE4E8_004_2_1EC8_0002; // size = 0x8C
typedef struct unk_D_800AE4E8_004_2_1EC8 {
/* 0x0000 */ u8 unk_0000;
/* 0x0001 */ char unk0001[0x1];
/* 0x0002 */ unk_D_800AE4E8_004_2_1EC8_0002 unk_0002[1];
/* 0x008E */ char unk008E[0x132A];
} unk_D_800AE4E8_004_2_1EC8; // size = 0x13B8
typedef struct unk_D_800AE4E8_004_2_3280 {
/* 0x0000 */ u8 unk_0000;
/* 0x0001 */ char unk0001[0x1];
/* 0x0002 */ unk_D_800AE4E8_004_2_1EC8_0002 unk_0002[1];
/* 0x008E */ char unk008E[0xAF6];
} unk_D_800AE4E8_004_2_3280; // size = 0xB84
typedef struct unk_D_800AE4E8_004_2 {
/* 0x0000 */ char unk0000[0xDC0];
/* 0x0DC0 */ unk_D_800AE4E8_004_2_0DC0 unk_0DC0;
/* 0x1D20 */ unk_D_800AE4E8_004_2_1D20 unk_1D20;
/* 0x1EA0 */ unk_D_800AE4E8_004_2_1EA0 unk_1EA0;
/* 0x1EC8 */ unk_D_800AE4E8_004_2_1EC8 unk_1EC8;
/* 0x3280 */ unk_D_800AE4E8_004_2_3280 unk_3280;
/* 0x3E04 */ char unk3E04[0x17C];
} unk_D_800AE4E8_004_2; // size = 0x3F80
typedef struct unk_D_800AE4E8_004_3_0000 {
/* 0x0000 */ unk_D_800AE4E8_004_1_000_000 unk_000;
/* 0x0010 */ unk_D_800AE4E8_004_1_000_010 unk_010[1];
/* 0x0047 */ char unk010[0x421];
} unk_D_800AE4E8_004_3_0000; // size = 0x468
typedef struct unk_D_800AE4E8_004_3_34E0_010 {
/* 0x00 */ u8 unk_00;
/* 0x01 */ u8 unk_01;
} unk_D_800AE4E8_004_3_34E0_010; // size = 0x2
typedef struct unk_D_800AE4E8_004_3_34E0 {
/* 0x0000 */ unk_D_800AE4E8_004_1_000_000 unk_00;
/* 0x0000 */ unk_D_800AE4E8_004_3_34E0_010 unk_10[1];
/* 0x0012 */ char unk12[0xCE];
} unk_D_800AE4E8_004_3_34E0; // size = 0xE0
typedef struct unk_D_800AE4E8_004_3 {
/* 0x0000 */ unk_D_800AE4E8_004_3_0000 unk_0000[12];
/* 0x34E0 */ unk_D_800AE4E8_004_3_34E0 unk_34E0[4];
/* 0x3860 */ char unk_3860[0x20];
} unk_D_800AE4E8_004_3; // size = 0x3880
typedef union unk_D_800AE4E8_004 {
unk_D_800AE4E8_004_1* unk1;
unk_D_800AE4E8_004_2* unk2;
unk_D_800AE4E8_004_3* unk3;
} unk_D_800AE4E8_004;
typedef struct unk_D_800AE4E8 {
/* 0x00 */ s32 unk_00;
/* 0x04 */ unk_D_800AE4E8_004 unk_04;
/* 0x08 */ unk_D_800AE4E8_004 unk_08;
} unk_D_800AE4E8; // size = 0xC
extern u32 D_80073650[];
extern s16 D_800AE4E0;

View File

@@ -30,6 +30,116 @@ typedef struct unk_func_800281D4 {
/* 0x10 */ char unk_10[16];
} unk_func_800281D4; // size >= 0x20
typedef struct unk_D_800AE4E8_004_1_000_000 {
/* 0x00 */ u8 unk_00;
/* 0x01 */ u8 unk_01;
/* 0x02 */ char unk02[0xC];
/* 0x0E */ s16 unk_0E;
} unk_D_800AE4E8_004_1_000_000; // size >= 0x10
typedef struct unk_D_800AE4E8_004_1_000 {
/* 0x000 */ unk_D_800AE4E8_004_1_000_000 unk_000;
/* 0x010 */ unk_D_800AE4E8_004_1_000_010 unk_010[1];
/* 0x047 */ char unk047[0x119];
} unk_D_800AE4E8_004_1_000; // size = 0x160
typedef struct unk_D_800AE4E8_004_1 {
/* 0x0000 */ unk_D_800AE4E8_004_1_000 unk_0000[4][10];
} unk_D_800AE4E8_004_1; // size = 0x3700
typedef struct unk_D_800AE4E8_004_2_1EA0 {
/* 0x00 */ u8 unk_00;
/* 0x02 */ u16 unk_02;
/* 0x04 */ unk_func_8002A728 unk_04;
/* 0x0C */ unk_func_80027FA0 unk_0C[1];
/* 0x14 */ char unk14[0xA];
/* 0x1E */ u8 unk_1E;
/* 0x1F */ char unk1F[0x9];
} unk_D_800AE4E8_004_2_1EA0; // size = 0x28
typedef struct unk_D_800AE4E8_004_2_0DC0_002 {
/* 0x00 */ u8 unk_00;
/* 0x01 */ u8 unk_01;
/* 0x02 */ u16 unk_02;
/* 0x04 */ char unk_04[11];
/* 0x0F */ char unk_0F[11];
} unk_D_800AE4E8_004_2_0DC0_002; // size = 0x1A
typedef struct unk_D_800AE4E8_004_2_0DC0 {
/* 0x000 */ u8 unk_000;
/* 0x001 */ char unk001[0x1];
/* 0x002 */ unk_D_800AE4E8_004_2_0DC0_002 unk_002[1];
/* 0x01C */ char unk01C[0xF44];
} unk_D_800AE4E8_004_2_0DC0; // size = 0xF60
typedef struct unk_D_800AE4E8_004_2_1D20 {
/* 0x000 */ u8 unk_000;
/* 0x001 */ char unk001[0x17F];
} unk_D_800AE4E8_004_2_1D20; // size = 0x180
typedef struct unk_D_800AE4E8_004_2_1EC8_0002 {
/* 0x00 */ char unk00[0x8C];
} unk_D_800AE4E8_004_2_1EC8_0002; // size = 0x8C
typedef struct unk_D_800AE4E8_004_2_1EC8 {
/* 0x0000 */ u8 unk_0000;
/* 0x0001 */ char unk0001[0x1];
/* 0x0002 */ unk_D_800AE4E8_004_2_1EC8_0002 unk_0002[1];
/* 0x008E */ char unk008E[0x132A];
} unk_D_800AE4E8_004_2_1EC8; // size = 0x13B8
typedef struct unk_D_800AE4E8_004_2_3280 {
/* 0x0000 */ u8 unk_0000;
/* 0x0001 */ char unk0001[0x1];
/* 0x0002 */ unk_D_800AE4E8_004_2_1EC8_0002 unk_0002[1];
/* 0x008E */ char unk008E[0xAF6];
} unk_D_800AE4E8_004_2_3280; // size = 0xB84
typedef struct unk_D_800AE4E8_004_2 {
/* 0x0000 */ char unk0000[0xDC0];
/* 0x0DC0 */ unk_D_800AE4E8_004_2_0DC0 unk_0DC0;
/* 0x1D20 */ unk_D_800AE4E8_004_2_1D20 unk_1D20;
/* 0x1EA0 */ unk_D_800AE4E8_004_2_1EA0 unk_1EA0;
/* 0x1EC8 */ unk_D_800AE4E8_004_2_1EC8 unk_1EC8;
/* 0x3280 */ unk_D_800AE4E8_004_2_3280 unk_3280;
/* 0x3E04 */ char unk3E04[0x17C];
} unk_D_800AE4E8_004_2; // size = 0x3F80
typedef struct unk_D_800AE4E8_004_3_0000 {
/* 0x0000 */ unk_D_800AE4E8_004_1_000_000 unk_000;
/* 0x0010 */ unk_D_800AE4E8_004_1_000_010 unk_010[1];
/* 0x0047 */ char unk010[0x421];
} unk_D_800AE4E8_004_3_0000; // size = 0x468
typedef struct unk_D_800AE4E8_004_3_34E0_010 {
/* 0x00 */ u8 unk_00;
/* 0x01 */ u8 unk_01;
} unk_D_800AE4E8_004_3_34E0_010; // size = 0x2
typedef struct unk_D_800AE4E8_004_3_34E0 {
/* 0x0000 */ unk_D_800AE4E8_004_1_000_000 unk_00;
/* 0x0000 */ unk_D_800AE4E8_004_3_34E0_010 unk_10[1];
/* 0x0012 */ char unk12[0xCE];
} unk_D_800AE4E8_004_3_34E0; // size = 0xE0
typedef struct unk_D_800AE4E8_004_3 {
/* 0x0000 */ unk_D_800AE4E8_004_3_0000 unk_0000[12];
/* 0x34E0 */ unk_D_800AE4E8_004_3_34E0 unk_34E0[4];
/* 0x3860 */ char unk_3860[0x20];
} unk_D_800AE4E8_004_3; // size = 0x3880
typedef union unk_D_800AE4E8_004 {
unk_D_800AE4E8_004_1* unk1;
unk_D_800AE4E8_004_2* unk2;
unk_D_800AE4E8_004_3* unk3;
} unk_D_800AE4E8_004;
typedef struct unk_D_800AE4E8 {
/* 0x00 */ s32 unk_00;
/* 0x04 */ unk_D_800AE4E8_004 unk_04;
/* 0x08 */ unk_D_800AE4E8_004 unk_08;
} unk_D_800AE4E8; // size = 0xC
void func_80025C20(UNUSED MainPoolBlock* arg0, u32 arg1);
u16 func_80025C80(u8* arg0, s32 arg1);
s32 func_80025CBC(u8* arg0, s32 arg1);
@@ -56,6 +166,7 @@ s32 func_80027108(s32 arg0);
s32 func_80027164(s32, s32);
s32 func_80027184(s32, s32);
void func_800272BC(s32, s32, char*);
void func_80027430(s32, s32, s32, char*, u16);
s16 func_800275E0(s32 arg0, s32 arg1);
void func_800276F0(s32, s32, s32);
s32 func_8002797C(s32 arg0, s32 arg1, s32 arg2, void* arg3);
@@ -64,6 +175,7 @@ void func_80027F24(unk_func_8002A728* arg0);
void func_80027F40(unk_func_8002A728* arg0);
void func_80027FA0(unk_func_80027FA0* arg0, s16 arg1);
void func_80028070(u16* arg0);
s32 func_800280C4(void);
void func_800280D4(u8 arg0);
s32 func_8002816C(void);
void func_8002817C(u8, u8);

View File

@@ -33,8 +33,7 @@ s16 D_8780FA48;
static s32 pad_D_8780FA4C;
s16 D_8780FA50;
s16 D_8780FA52[2][4];
s16 D_8780FA50[9];
s16 D_8780FA68[4];
void func_87800020(void) {

View File

@@ -22,6 +22,7 @@ extern s16 D_8780FA38;
extern s16 D_8780FA3A;
extern s16 D_8780FA40[4];
extern s16 D_8780FA48;
extern s16 D_8780FA50[9];
extern s16 D_8780FA68[4];
extern u32* D_8780FA70;
extern u16 D_8780FC92;

View File

@@ -1,6 +1,7 @@
#include "fragment22.h"
#include "src/1CF30.h"
#include "src/20330.h"
#include "src/232C0.h"
#include "src/26820.h"
#include "src/29BA0.h"
#include "src/2E110.h"

View File

@@ -1204,7 +1204,8 @@ s32 func_8820938C(unk_func_8820BE14_02C_070* arg0, s32 arg1, s32 arg2) {
func_8001F324(D_88217E3C.r, D_88217E3C.g, D_88217E3C.b, D_88217E3C.a);
func_8001EBE0(8, 0);
func_8001F1E8(arg1 + 8, arg2 + 8, func_8002D7C0(NULL, 0, D_88224FB8, arg0->unk_002C->unk_000[0].unk_00.unk_00 - 1));
func_8001F1E8(arg1 + 8, arg2 + 8,
func_8002D7C0(NULL, 0, D_88224FB8, arg0->unk_002C->unk_000[0].unk_00.unk_00 - 1));
func_8001F1E8(arg1 + 0x44, arg2 + 0x24, "%3d", arg0->unk_002C->unk_000[0].unk_26);
func_8001F1E8(arg1 + 0x46, arg2 + 0x54, "%3d", arg0->unk_002C->unk_000[0].unk_28);

View File

@@ -2,6 +2,7 @@
#include "src/1CF30.h"
#include "src/20330.h"
#include "src/22630.h"
#include "src/232C0.h"
#include "src/26820.h"
#include "src/29BA0.h"
#include "src/2D340.h"

View File

@@ -912,7 +912,8 @@ void func_88316A58(unk_func_8830867C_02C_144* arg0, s32 arg1) {
for (x = 0; x < var_s4->unk_10.unk_08; x++, var_s0++) {
func_80022F24(&var_s0->unk_00->unk_08, 1, temp_s3);
if ((var_s2->unk_00 == 0x20) || (var_s2->unk_00 == 0x21)) {
if ((var_s0->unk_00->unk_08.unk_00.unk_00 > 0) && (var_s0->unk_00->unk_08.unk_00.unk_00 < 0x98)) {
if ((var_s0->unk_00->unk_08.unk_00.unk_00 > 0) &&
(var_s0->unk_00->unk_08.unk_00.unk_00 < 0x98)) {
func_800256F4(var_s2->unk_04, var_s0->unk_00->unk_08.unk_00.unk_00, 3);
}
}

View File

@@ -1,5 +1,6 @@
#include "fragment29.h"
#include "src/1CF30.h"
#include "src/232C0.h"
#include "src/2D340.h"
#include "src/2E110.h"
#include "src/2E460.h"

View File

@@ -1,6 +1,7 @@
#include "fragment3.h"
#include "src/19840.h"
#include "src/1C720.h"
#include "src/12D80.h"
#include "src/memory.h"
static unk_func_8790002C* D_87906120;

View File

@@ -7,6 +7,7 @@
#include "src/20330.h"
#include "src/20470.h"
#include "src/22630.h"
#include "src/232C0.h"
#include "src/26820.h"
#include "src/29BA0.h"
#include "src/2E110.h"

View File

@@ -2,8 +2,186 @@
#define _FRAGMENT39_H_
#include "global.h"
#include "6BC0.h"
typedef struct unk_D_82508B00 {
/* 0x00 */ u16 unk_00;
/* 0x02 */ u16 unk_02;
/* 0x04 */ u16 unk_04;
/* 0x06 */ u16 unk_06;
/* 0x08 */ u16 unk_08;
/* 0x0A */ s16 unk_0A;
} unk_D_82508B00; // size = 0xC
typedef struct unk_D_8250A288 {
/* 0x00 */ s16 unk_00;
/* 0x02 */ s16 unk_02;
/* 0x04 */ s16 unk_04;
/* 0x06 */ s16 unk_06;
/* 0x08 */ s16 unk_08;
} unk_D_8250A288; // size >= 0xA
typedef struct unk_D_82508B30_03C {
/* 0x00 */ char unk00[0x1];
/* 0x01 */ u8 unk_01;
/* 0x02 */ char unk02[0x12];
/* 0x14 */ s32 unk_14;
/* 0x18 */ char unk18[0x6];
/* 0x1E */ s16 unk_1E;
/* 0x20 */ s16 unk_20;
/* 0x22 */ s16 unk_22;
/* 0x24 */ Vec3f unk_24;
/* 0x30 */ Vec3f unk_30;
} unk_D_82508B30_03C; // size >= 0x3C
typedef struct unk_D_8250A228 {
/* 0x00 */ s16 unk_00;
/* 0x02 */ s16 unk_02;
/* 0x04 */ s16 unk_04;
/* 0x06 */ u16 unk_06;
/* 0x08 */ s16 unk_08;
/* 0x08 */ s16 unk_0A;
/* 0x0C */ s16 unk_0C;
/* 0x0E */ s16 unk_0E[4];
/* 0x16 */ char unk16[0x16];
/* 0x2C */ struct unk_D_8250A228* unk_2C;
/* 0x30 */ struct unk_D_8250A228* unk_30;
/* 0x34 */ struct unk_D_8250A228* unk_34;
/* 0x38 */ unk_D_80068BB0* unk_38;
/* 0x3C */ unk_D_82508B30_03C unk_3C;
} unk_D_8250A228; // size >= 0x78
typedef struct unk_D_82508B30 {
/* 0x000 */ s16 unk_000;
/* 0x002 */ u16 unk_002;
/* 0x004 */ s16 unk_004;
/* 0x004 */ u16 unk_006;
/* 0x008 */ s16 unk_008;
/* 0x00A */ s16 unk_00A;
/* 0x00C */ s16 unk_00C;
/* 0x00E */ s16 unk_00E[4];
/* 0x018 */ f32 unk_018;
/* 0x01C */ f32 unk_01C;
/* 0x020 */ Vec3f unk_020;
/* 0x02C */ unk_D_8250A228* unk_02C;
/* 0x030 */ unk_D_8250A228* unk_030;
/* 0x034 */ s32 unk_034;
/* 0x034 */ s32 unk_038;
/* 0x03C */ unk_D_82508B30_03C unk_03C;
/* 0x078 */ char unk078[0x12C];
} unk_D_82508B30; // size = 0x1A4
typedef struct unk_D_8250A308 {
/* 0x000 */ unk_D_86002F58_004_000 unk_000;
/* 0x168 */ s16 unk_168;
/* 0x16A */ s16 unk_16A;
/* 0x16C */ s16 unk_16C;
/* 0x16E */ s16 unk_16E;
/* 0x170 */ s16 unk_170;
} unk_D_8250A308; // size = 0x174
typedef struct unk_D_8250A480 {
/* 0x00 */ s16 unk_00;
/* 0x02 */ s16 unk_02;
/* 0x04 */ s16 unk_04;
/* 0x06 */ s16 unk_06;
/* 0x08 */ s16 unk_08;
/* 0x0A */ s16 unk_0A;
/* 0x0A */ s16 unk_0C;
/* 0x10 */ f32 unk_10;
/* 0x14 */ char** unk_14;
} unk_D_8250A480; // size = 0x18
typedef struct unk_D_8250A498 {
/* 0x00 */ s16 unk_00;
/* 0x02 */ s16 unk_02;
/* 0x04 */ s16 unk_04;
/* 0x06 */ s16 unk_06;
/* 0x08 */ s16 unk_08;
/* 0x0A */ s16 unk_0A;
/* 0x0C */ s16 unk_0C;
/* 0x0E */ s16 unk_0E;
/* 0x10 */ s16 unk_10;
/* 0x12 */ s16 unk_12;
/* 0x14 */ char** unk_14;
} unk_D_8250A498; // size = 0x18
extern unk_D_800AC870* D_8250A304;
s32 func_82500020(s32 arg0, GraphNode* arg1);
s32 func_825001B4(s32 arg0, GraphNode* arg1);
s32 func_82500388(s32 arg0, GraphNode* arg1);
s32 func_8250042C(s32 arg0, GraphNode* arg1);
void func_82500804(void);
void func_8250088C(unk_D_86002F58_004_000* a0);
s32 func_82500BD8(s32 arg0, GraphNode* arg1);
void func_82500C98(void);
void func_82500D14(void);
void func_82500EE8(void);
s32 func_82500F20(void);
s32 func_82500F94(s32 arg0);
s32 func_82500FD0(s16 arg0, s32 arg1);
void func_82501034(void);
void func_82501064(unk_D_82508B30* arg0);
void func_825010A8(unk_D_82508B30* arg0);
void func_825014B0(unk_D_82508B30* arg0);
unk_D_8250A228* func_825017F0(void);
unk_D_8250A228* func_8250182C(s16 arg0, s16 arg1, GraphNode* arg2);
void func_82501AE4(unk_D_8250A228* arg0, unk_D_8250A228* arg1);
void func_82501B04(unk_D_8250A228* arg0, unk_D_8250A228* arg1);
void func_82501B18(unk_D_8250A228* arg0, s16 arg1);
void func_82501C88(unk_D_8250A228* arg0, s16 arg1, s32 arg2);
s32 func_82501CBC(unk_D_8250A228* arg0, s16 arg1);
void func_82501D08(unk_D_82508B30* arg0);
s32 func_82501D70(unk_D_8250A228* arg0, s16 arg1);
s32 func_82501DC8(unk_D_82508B30* arg0);
void func_82501ED0(void);
void func_825023D4(void);
void func_82502400(void);
void func_8250244C(s16 arg0, s16 arg1);
void func_825024C4(s16 arg0, s16 arg1);
void func_8250281C(void);
void func_82502BB0(void);
void func_82502C78(void);
void func_82502F44(void);
void func_82502FAC(void);
void func_82503020(void);
void func_825031FC(void);
void func_825032BC(void);
void func_82503574(void);
void func_825039AC(void);
s32 func_82503C50(s16* arg0, s16 arg1);
s32 func_82503F00(s16* arg0, s16 arg1);
void func_8250416C(void);
void func_825042A4(void);
void func_82504370(s16 arg0, s16 arg1);
void func_825045C0(void);
s32 func_825046AC(s32 arg0, s32 arg1);
void func_82504820(char** arg0);
s32 func_82504838(void);
void func_82504844(s16 arg0);
void func_82504930(unk_D_8250A480* arg0);
void func_82504A08(unk_D_8250A480* arg0);
void func_82504A68(unk_D_8250A480* arg0);
void func_82504B38(void);
void func_82504BB4(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u8 arg4, u8 arg5, u8 arg6, u8 arg7);
void func_825053B4(s16 arg0, s16 arg1, s8* arg2, f32 arg3, s16 arg4);
void func_825054F4(void);
void func_82505720(char** arg0);
void func_825057A0(void);
void func_825057A8(s16 arg0);
void func_82505874(s16 arg0, s16 arg1);
void func_82505998(unk_D_8250A498* arg0);
void func_82505A70(unk_D_8250A498* arg0);
void func_82505AB8(unk_D_8250A498* arg0);
void func_82505B94(void);
void func_82505C10(void);
void func_82505FA0(void);
void func_82505FC8(s16);
void func_82505FE0(s16);
s16 func_825060E0(void);
#endif // _FRAGMENT39_H_

File diff suppressed because it is too large Load Diff

View File

@@ -1,40 +1,362 @@
#include "global.h"
#include "fragment39.h"
#include "src/1CF30.h"
#include "src/2E110.h"
#include "src/fragments/2/fragment2.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/39/fragment39_2804C0/func_82504820.s")
static unk_D_8250A480 D_8250A480;
static unk_D_8250A498 D_8250A498;
static char* D_8250A4B0[9];
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/39/fragment39_2804C0/func_82504838.s")
void func_82504820(char** arg0) {
D_8250A480.unk_00 = 0;
D_8250A480.unk_02 = 0;
D_8250A480.unk_14 = arg0;
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/39/fragment39_2804C0/func_82504844.s")
s32 func_82504838(void) {
return D_8250A480.unk_00;
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/39/fragment39_2804C0/func_82504930.s")
void func_82504844(s16 arg0) {
unk_D_8250A480* ptr = &D_8250A480;
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/39/fragment39_2804C0/func_82504A08.s")
ptr->unk_00 = arg0;
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/39/fragment39_2804C0/func_82504A68.s")
switch (ptr->unk_00) {
case 0:
ptr->unk_02 = 0;
ptr->unk_0C = 0;
ptr->unk_10 = 0.0f;
break;
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/39/fragment39_2804C0/func_82504B38.s")
case 1:
ptr->unk_02 = 0xA;
ptr->unk_04 = -0xF8;
ptr->unk_06 = 0x5A;
ptr->unk_08 = 0x280;
ptr->unk_0A = 0x15E;
ptr->unk_10 = 0.0f;
break;
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/39/fragment39_2804C0/func_82504BB4.s")
case 2:
ptr->unk_02 = 0x12C;
ptr->unk_04 = 0xBC;
ptr->unk_08 = 0x5C;
ptr->unk_0C = 0;
break;
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/39/fragment39_2804C0/func_825053B4.s")
case 3:
ptr->unk_02 = 0xA;
ptr->unk_10 = 0.0f;
break;
}
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/39/fragment39_2804C0/func_825054F4.s")
void func_82504930(unk_D_8250A480* arg0) {
arg0->unk_02--;
arg0->unk_04 = ((arg0->unk_02 * -0x1B4) / 10) + 0xBC;
arg0->unk_08 = ((arg0->unk_02 * 0x224) / 10) + 0x5C;
if (arg0->unk_02 <= 0) {
func_82504844(2);
}
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/39/fragment39_2804C0/func_82505720.s")
void func_82504A08(unk_D_8250A480* arg0) {
arg0->unk_02 = 0x12C;
arg0->unk_10 = 0.0f;
if (arg0->unk_02 <= 0) {
arg0->unk_0C += 0x1000;
arg0->unk_10 += 0.05f;
if (arg0->unk_10 > 4.0f) {
arg0->unk_10 = 4.0f;
}
}
}
void func_82504A68(unk_D_8250A480* arg0) {
arg0->unk_02--;
arg0->unk_04 = ((arg0->unk_02 * -0x1C4) / 10) + 0x280;
arg0->unk_08 = ((arg0->unk_02 * 0x224) / 10) - 0x1C8;
if (arg0->unk_02 <= 0) {
func_82504844(0);
}
}
void func_82504B38(void) {
unk_D_8250A480* ptr = &D_8250A480;
if (ptr->unk_00 != 0) {
switch (ptr->unk_00) {
case 1:
func_82504930(ptr);
break;
case 2:
func_82504A08(ptr);
break;
case 3:
func_82504A68(ptr);
break;
}
}
}
void func_82504BB4(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u8 arg4, u8 arg5, u8 arg6, u8 arg7) {
s16 sp48;
s16 temp_s0_32;
s16 var_s2;
s16 var_s3;
if (arg2 >= 0x20) {
var_s3 = 0x10;
} else {
var_s3 = arg2 / 2;
}
if (arg3 >= 0x20) {
var_s2 = 0x10;
} else {
var_s2 = arg3 / 2;
}
sp48 = arg2 - (var_s3 * 2);
temp_s0_32 = arg3 - (var_s2 * 2);
gSPDisplayList(gDisplayListHead++, D_8006F518);
gDPSetEnvColor(gDisplayListHead++, arg4, arg5, arg6, arg7);
gDPLoadTextureBlock_4b(gDisplayListHead++, D_30CD490, G_IM_FMT_I, 16, 16, 0, G_TX_NOMIRROR | G_TX_WRAP,
G_TX_NOMIRROR | G_TX_WRAP, 5, 5, G_TX_NOLOD, G_TX_NOLOD);
func_8001C330(arg0, arg1, var_s3, var_s2, 0, 0, 0x4000 / var_s3, 0x4000 / var_s2, 0);
gDPLoadTextureBlock_4b(gDisplayListHead++, D_30CD510, G_IM_FMT_I, 16, 16, 0, G_TX_NOMIRROR | G_TX_WRAP,
G_TX_NOMIRROR | G_TX_WRAP, 5, 5, G_TX_NOLOD, G_TX_NOLOD);
func_8001C330((arg0 + arg2) - var_s3, arg1, var_s3, var_s2, 0, 0, 0x4000 / var_s3, 0x4000 / var_s2, 0);
gDPLoadTextureBlock_4b(gDisplayListHead++, D_30CD390, G_IM_FMT_I, 16, 16, 0, G_TX_NOMIRROR | G_TX_WRAP,
G_TX_NOMIRROR | G_TX_WRAP, 5, 5, G_TX_NOLOD, G_TX_NOLOD);
func_8001C330(arg0, (arg1 + arg3) - var_s2, var_s3, var_s2, 0, 0, 0x4000 / var_s3, 0x4000 / var_s2, 0);
gDPLoadTextureBlock_4b(gDisplayListHead++, D_30CD410, G_IM_FMT_I, 16, 16, 0, G_TX_NOMIRROR | G_TX_WRAP,
G_TX_NOMIRROR | G_TX_WRAP, 5, 5, G_TX_NOLOD, G_TX_NOLOD);
func_8001C330((arg0 + arg2) - var_s3, (arg1 + arg3) - var_s2, var_s3, var_s2, 0, 0, 0x4000 / var_s3,
0x4000 / var_s2, 0);
gSPDisplayList(gDisplayListHead++, D_8006F498);
if ((sp48 > 0) && (temp_s0_32 > 0)) {
func_8001C604(arg0 + var_s3, arg1, sp48, var_s2, arg4, arg5, arg6, arg7);
func_8001C604(arg0, arg1 + var_s3, arg2, temp_s0_32, arg4, arg5, arg6, arg7);
func_8001C604(arg0 + var_s3, arg1 + var_s3 + temp_s0_32, sp48, var_s2, arg4, arg5, arg6, arg7);
} else if (sp48 > 0) {
func_8001C604(arg0 + var_s3, arg1, sp48, arg3, arg4, arg5, arg6, arg7);
} else if (temp_s0_32 > 0) {
func_8001C604(arg0, arg1 + var_s2, arg2, temp_s0_32, arg4, arg5, arg6, arg7);
}
gSPDisplayList(gDisplayListHead++, D_8006F630);
}
void func_825053B4(s16 arg0, s16 arg1, s8* arg2, f32 arg3, s16 arg4) {
s16 var_s2;
s8* var_v1;
s32 i;
char sp50[4];
s16 tmp;
var_s2 = 0;
while (*arg2) {
var_v1 = sp50;
if (*arg2 < 0) {
for (i = 0; i < 2; i++) {
*var_v1++ = *arg2++;
}
*var_v1 = '\x00';
} else {
*var_v1++ = *arg2++;
*var_v1++ = 0;
}
tmp = SINS(arg4 + var_s2) * arg3;
func_8001F1E8(arg0, arg1 + tmp, sp50);
var_s2 += 0x3000;
arg0 += 0x18;
}
}
void func_825054F4(void) {
UNUSED s32 pad;
unk_D_8250A480* ptr = &D_8250A480;
char* sp2C = func_8002D7C0(NULL, 0, ptr->unk_14, 0);
char* sp28 = func_8002D7C0(NULL, 0, ptr->unk_14, 1);
if (ptr->unk_00 != 0) {
func_82504BB4(ptr->unk_04, ptr->unk_06, 0xF8, 0x2C, 0x1E, 0x1E, 0x82, 0x80);
func_82504BB4(ptr->unk_08, ptr->unk_0A, 0x1C8, 0x2C, 0x64, 0, 0x50, 0x80);
func_8001F3F4();
func_8001EBE0(0x10, 0);
func_8001F324(0xFF, 0xFF, 0xFF, 0xFF);
if (ptr->unk_10 <= 0.0f) {
func_8001F1E8((ptr->unk_04 - (func_8001F5B0(0, 0, sp2C) / 2)) + 0x7C, ptr->unk_06 + 0xA, sp2C);
func_8001F1E8((ptr->unk_08 - (func_8001F5B0(0, 0, sp28) / 2)) + 0xE4, ptr->unk_0A + 0xA, sp28);
} else {
func_825053B4(ptr->unk_04 + 0x18, ptr->unk_06 + 0xA, sp2C, ptr->unk_10, ptr->unk_0C);
func_825053B4(ptr->unk_08 + 0x18, ptr->unk_0A + 0xA, sp28, ptr->unk_10, ptr->unk_0C);
}
func_8001F444();
}
}
void func_82505720(char** arg0) {
s32 i;
D_8250A498.unk_00 = 0;
D_8250A498.unk_02 = 0;
D_8250A498.unk_14 = arg0;
for (i = 0; i < 9; i++) {
D_8250A4B0[i] = func_8002D7C0(NULL, 0, arg0, i + 7);
}
}
void func_825057A0(void) {
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/39/fragment39_2804C0/func_825057A8.s")
void func_825057A8(s16 arg0) {
unk_D_8250A498* ptr = &D_8250A498;
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/39/fragment39_2804C0/func_82505874.s")
if (ptr->unk_12 != ptr->unk_10) {
ptr->unk_10 = ptr->unk_12;
ptr->unk_0C = ptr->unk_0E;
ptr->unk_04 = ptr->unk_06;
}
ptr->unk_12 = arg0;
ptr->unk_0E = func_8001F5B0(0, 0, D_8250A4B0[ptr->unk_12], arg0) + 0x30;
ptr->unk_06 = (0x280 - ptr->unk_0E) / 2;
ptr->unk_02 = 5;
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/39/fragment39_2804C0/func_82505998.s")
void func_82505874(s16 arg0, s16 arg1) {
unk_D_8250A498* ptr = &D_8250A498;
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/39/fragment39_2804C0/func_82505A70.s")
ptr->unk_00 = arg0;
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/39/fragment39_2804C0/func_82505AB8.s")
switch (ptr->unk_00) {
case 0:
ptr->unk_02 = 0;
break;
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/39/fragment39_2804C0/func_82505B94.s")
case 1:
ptr->unk_02 = 0xA;
ptr->unk_10 = ptr->unk_12 = arg1;
ptr->unk_0C = ptr->unk_0E = func_8001F5B0(0, 0, D_8250A4B0[ptr->unk_12], arg1) + 0x30;
ptr->unk_04 = ptr->unk_06 = (0x280 - ptr->unk_0C) / 2;
ptr->unk_08 = -0x2C;
ptr->unk_0A = 0x1E0;
break;
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/39/fragment39_2804C0/func_82505C10.s")
case 2:
ptr->unk_08 = 0x3C;
break;
case 3:
ptr->unk_02 = 0xA;
break;
}
}
void func_82505998(unk_D_8250A498* arg0) {
arg0->unk_02--;
arg0->unk_08 = ((arg0->unk_02 * -0x68) / 10) + 0x3C;
arg0->unk_0A = ((arg0->unk_02 * 0x56) / 10) + 0x18A;
if (arg0->unk_02 <= 0) {
func_82505874(2, -1);
}
}
void func_82505A70(unk_D_8250A498* arg0) {
if (arg0->unk_10 != arg0->unk_12) {
arg0->unk_02--;
if (arg0->unk_02 <= 0) {
arg0->unk_10 = arg0->unk_12;
arg0->unk_0C = arg0->unk_0E;
arg0->unk_04 = arg0->unk_06;
}
}
}
void func_82505AB8(unk_D_8250A498* arg0) {
arg0->unk_02--;
arg0->unk_08 = ((arg0->unk_02 * 0x68) / 10) - 0x2C;
arg0->unk_0A = ((arg0->unk_02 * -0x56) / 10) + 0x1E0;
if (arg0->unk_02 <= 0) {
func_82505874(0, -1);
}
}
void func_82505B94(void) {
unk_D_8250A498* ptr = &D_8250A498;
if (ptr->unk_00 != 0) {
switch (ptr->unk_00) {
case 1:
func_82505998(ptr);
break;
case 2:
func_82505A70(ptr);
break;
case 3:
func_82505AB8(ptr);
break;
}
}
}
void func_82505C10(void) {
UNUSED s32 pad;
unk_D_8250A498* ptr = &D_8250A498;
char* sp3C;
s16 tmp;
char* sp34 = func_8002D7C0(NULL, 0, ptr->unk_14, 0x10);
if (ptr->unk_00 != 0) {
if (ptr->unk_10 == ptr->unk_12) {
func_82504BB4(ptr->unk_04, ptr->unk_08, ptr->unk_0C, 0x2C, 0x1E, 0x1E, 0x82, 0x80);
} else {
tmp = (ptr->unk_02 << 7) / 5;
func_82504BB4(ptr->unk_04, ptr->unk_08, ptr->unk_0C, 0x2C, 0x1E, 0x1E, 0x82, tmp);
tmp = ((-ptr->unk_02 * 0x80) + 0x280) / 5;
func_82504BB4(ptr->unk_06, ptr->unk_08, ptr->unk_0E, 0x2C, 0x1E, 0x1E, 0x82, tmp);
}
if (D_8780FA48 == -1) {
func_82504BB4(0x98, ptr->unk_0A, 0x140, 0x2C, 0x64, 0, 0x50, 0x80);
}
func_8001F3F4();
func_8001EBE0(0x10, 0);
sp3C = D_8250A4B0[ptr->unk_10];
if (ptr->unk_10 == ptr->unk_12) {
func_8001F324(0xFF, 0xFF, 0xFF, 0xFF);
func_8001F1E8(ptr->unk_04 + 0x18, ptr->unk_08 + 0xA, sp3C);
} else {
tmp = (ptr->unk_02 * 0xFF) / 5;
func_8001F324(0xFF, 0xFF, 0xFF, tmp);
func_8001F1E8(ptr->unk_04 + 0x18, ptr->unk_08 + 0xA, sp3C);
sp3C = D_8250A4B0[ptr->unk_12];
tmp = ((5 - ptr->unk_02) * 0xFF) / 5;
func_8001F324(0xFF, 0xFF, 0xFF, tmp);
func_8001F1E8(ptr->unk_06 + 0x18, ptr->unk_08 + 0xA, sp3C);
}
if (D_8780FA48 == -1) {
func_8001F324(0xFF, 0xFF, 0xFF, 0xFF);
func_8001F1E8(0x140 - (func_878013D4(D_8250A304, sp34) / 2), ptr->unk_0A + 0xA, sp34);
}
func_8001F444();
}
}

View File

@@ -1,9 +1,73 @@
#include "global.h"
#include "fragment39.h"
#include "src/fragments/2/fragment2.h"
#include "26820.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/39/fragment39_281C40/func_82505FA0.s")
void func_82505FA0(void) {
D_8780FA28 = func_800280C4() & 0xFF;
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/39/fragment39_281C40/func_82505FC8.s")
void func_82505FC8(s16 arg0) {
D_87806338 = arg0;
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/39/fragment39_281C40/func_82505FE0.s")
void func_82505FE0(s16 arg0) {
s32 i;
s32 j;
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/39/fragment39_281C40/func_825060E0.s")
for (i = 0; i < 4; i++) {
D_8780FA68[i] = 0;
}
switch (arg0) {
case 0:
D_87806338 = -1;
D_8780FA2A = 0;
D_8780FA2C = 0;
for (i = 0; i < 4; i++) {
D_8780FA30[i] = 1;
}
D_8780FA38 = 1;
D_8780FA3A = 3;
for (i = 0; i < 4; i++) {
D_8780FA40[i] = 0;
}
D_8780FA48 = 0;
// clang-format off
for (i = 0; i < 9; i++) { D_8780FA50[i] = 0; }
// clang-format on
break;
case 1:
case 4:
break;
}
}
s16 func_825060E0(void) {
u32 var_a2;
s32 i;
s16 sp24[9];
var_a2 = 0;
for (i = 0; i < 9; i++) {
if (D_8780FA50[i] == 0) {
sp24[var_a2++] = i;
}
}
if (var_a2 == 0) {
var_a2 = 9;
for (i = 0; i < 9; i++) {
D_8780FA50[i] = 0;
sp24[i] = i;
}
}
return sp24[func_878001E8(var_a2)];
}

View File

@@ -1564,11 +1564,12 @@
- [0x27BCC0, c, fragments/39/fragment39_27BCC0]
- [0x2804C0, c, fragments/39/fragment39_2804C0]
- [0x281C40, c, fragments/39/fragment39_281C40]
- [0x281E50, data, fragments/39/fragment39_data]
- [0x2846C0, rodata, fragments/39/fragment39_rodata_2846C0]
- [0x284780, rodata, fragments/39/fragment39_rodata_284780]
- [0x281E50, .data, fragments/39/fragment39_27BCC0]
- [0x2846C0, .rodata, fragments/39/fragment39_27BCC0]
- [0x284780, .rodata, fragments/39/fragment39_2804C0]
- {vram: 0x82508AF0, type: bss, name: fragments/39/fragment39_bss}
- {vram: 0x82508AF0, type: .bss, name: fragments/39/fragment39_27BCC0}
- {vram: 0x8250A480, type: .bss, name: fragments/39/fragment39_2804C0}
- name: fragment39_relocs
type: code