mirror of
https://github.com/pret/pokestadium.git
synced 2026-03-21 17:24:20 -05:00
Merge pull request #188 from Kelebek1/fragment55
Some checks are pending
C/C++ CI / build (push) Waiting to run
Some checks are pending
C/C++ CI / build (push) Waiting to run
fragment55
This commit is contained in:
commit
d2c155517c
|
|
@ -507,6 +507,8 @@ extern u8 D_200A780[];
|
|||
extern u8 D_2000980[];
|
||||
extern u8 D_2000A60[];
|
||||
extern u8 D_3008200[];
|
||||
extern u8 D_4000C40[];
|
||||
extern u8 D_4000DD0[];
|
||||
|
||||
extern LEODiskID D_800818E0;
|
||||
|
||||
|
|
@ -641,4 +643,6 @@ typedef struct unk_D_80072338 {
|
|||
} unk_D_80072338; // size = 0xC
|
||||
extern unk_D_80072338 D_80072338[];
|
||||
|
||||
extern char D_8006FEE8[][0x1C];
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -757,4 +757,6 @@ D_826083D0 = 0x826083D0; // size:0x168
|
|||
D_82607420 = 0x82607420; // size:0x730
|
||||
D_82608568 = 0x82608568; // size:0x75F80
|
||||
D_3008200 = 0x3008200;
|
||||
D_8267E4F8 = 0x8267E4F8; // size:0x258
|
||||
D_8267E4F8 = 0x8267E4F8; // size:0x258
|
||||
D_4000C40 = 0x4000C40;
|
||||
D_4000DD0 = 0x4000DD0;
|
||||
|
|
@ -91,8 +91,6 @@ char* func_80021C80(char* arg0, char* arg1) {
|
|||
}
|
||||
|
||||
char* func_80021CA4(char* arg0, s32 arg1) {
|
||||
extern char D_8006FEE8[][0x1C];
|
||||
|
||||
func_80021C80(arg0, (char*)*(u32*)D_8006FEE8[arg1]);
|
||||
return arg0;
|
||||
}
|
||||
|
|
|
|||
109
src/fragments/55/fragment55.h
Normal file
109
src/fragments/55/fragment55.h
Normal file
|
|
@ -0,0 +1,109 @@
|
|||
#ifndef _FRAGMENT55_H_
|
||||
#define _FRAGMENT55_H_
|
||||
|
||||
#include "global.h"
|
||||
#include "src/29BA0.h"
|
||||
|
||||
typedef struct unk_D_83003CE0 {
|
||||
/* 0x00 */ char* unk_00[29];
|
||||
/* 0x74 */ char* unk_74;
|
||||
/* 0x78 */ char* unk_78;
|
||||
/* 0x7C */ char* unk_7C;
|
||||
/* 0x80 */ char* unk_80;
|
||||
/* 0x84 */ char* unk_84;
|
||||
/* 0x88 */ char* unk_88;
|
||||
/* 0x8C */ char* unk_8C;
|
||||
/* 0x90 */ char* unk_90;
|
||||
/* 0x94 */ char* unk_94;
|
||||
/* 0x98 */ char* unk_98;
|
||||
/* 0x9C */ char unk9C[0x64];
|
||||
} unk_D_83003CE0; // size = 0x100
|
||||
|
||||
typedef struct unk_D_83079E70_014_000 {
|
||||
/* 0x00 */ s16 unk_00;
|
||||
/* 0x02 */ s16 unk_02;
|
||||
} unk_D_83079E70_014_000; // size = 0x4
|
||||
|
||||
typedef struct unk_D_83079E70_000 {
|
||||
/* 0x00 */ unk_D_83079E70_014_000 unk_00[6];
|
||||
/* 0x18 */ struct unk_D_83079E70_000* unk_18;
|
||||
/* 0x1C */ struct unk_D_83079E70_000* unk_1C;
|
||||
} unk_D_83079E70_000; // size = 0x20
|
||||
|
||||
typedef struct unk_D_83079E70 {
|
||||
/* 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;
|
||||
/* 0x10 */ unk_D_83079E70_000* unk_10;
|
||||
/* 0x14 */ unk_D_83079E70_000 unk_14[6];
|
||||
} unk_D_83079E70; // size = 0xD4
|
||||
|
||||
extern unk_D_83003CE0 D_83003CE0;
|
||||
extern unk_D_83003CE0 D_83003DE0;
|
||||
|
||||
extern char** D_830039C0;
|
||||
|
||||
char* func_83000020(s32 arg0);
|
||||
void func_83000058(void);
|
||||
void func_83000130(void);
|
||||
s16* func_83000160(unk_D_800AE540* arg0);
|
||||
char* func_830003A4(s8 arg0);
|
||||
char* func_83000418(s8 arg0);
|
||||
s32 func_830004BC(s16* arg0);
|
||||
void func_83000508(void);
|
||||
void func_8300059C(void);
|
||||
void func_83000710(void);
|
||||
void func_83000750(void);
|
||||
s32 func_830007C4(void);
|
||||
void func_830007F4(void);
|
||||
void func_83000A30(void);
|
||||
void func_83000F10(s16 arg0, s16 arg1, s16 arg2, s16 arg3);
|
||||
void func_83001178(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u8 arg4, u8 arg5, u8 arg6);
|
||||
void func_830014B0(s16 arg0, s16 arg1);
|
||||
void func_830015EC(s16 arg0, s16 arg1);
|
||||
void func_830017C0(void);
|
||||
void func_83001A9C(void);
|
||||
void func_83001B64(void);
|
||||
void func_83001C4C(void);
|
||||
void func_83001CF8(void);
|
||||
s32 func_83002030(void);
|
||||
void func_830020D0(void);
|
||||
s32 func_83002120(UNUSED s32 arg0, UNUSED s32 arg1);
|
||||
|
||||
s32 func_83002270(s8* arg0);
|
||||
void func_830022B0(void);
|
||||
void func_83002324(void);
|
||||
void func_83002370(void);
|
||||
void func_830023B8(void);
|
||||
void func_830023CC(void);
|
||||
void func_8300243C(void);
|
||||
void func_830025F8(s16 arg0);
|
||||
s32 func_8300269C(void);
|
||||
s32 func_830026C0(void);
|
||||
|
||||
s32 func_830026D0(s16 arg0, s16 arg1);
|
||||
s16 func_830027C8(s16 arg0);
|
||||
s32 func_83002848(unk_D_83079E70_000* arg0, s16 arg1, s16 arg2);
|
||||
unk_D_83079E70_000* func_83002950(unk_D_83079E70_000* arg0, s32 arg1);
|
||||
s32 func_83002974(unk_D_83079E70* arg0);
|
||||
s32 func_83002A0C(unk_D_83079E70* arg0);
|
||||
void func_83002AB4(unk_D_83079E70* arg0);
|
||||
void func_83002B1C(unk_D_83079E70* arg0);
|
||||
void func_83002BA4(unk_D_83079E70* arg0);
|
||||
void func_83002C30(unk_D_83079E70* arg0);
|
||||
void func_83002C74(s16 arg0, s16 arg1, unk_D_83079E70* arg2);
|
||||
void func_83002F9C(s16 arg0, s16 arg1);
|
||||
void func_83003054(s16 arg0, s16 arg1, unk_D_83079E70_000* arg2);
|
||||
void func_830032D8(s32 arg0);
|
||||
void func_830033F0(void);
|
||||
void func_83003484(void);
|
||||
void func_830038DC(void);
|
||||
s32 func_83003988(void);
|
||||
s32 func_830039AC(void);
|
||||
|
||||
|
||||
#endif // _FRAGMENT55_H_
|
||||
|
|
@ -1,53 +1,825 @@
|
|||
#include "global.h"
|
||||
#include "fragment55.h"
|
||||
#include "src/1AB70.h"
|
||||
#include "src/1CF30.h"
|
||||
#include "src/20330.h"
|
||||
#include "src/20470.h"
|
||||
#include "src/26820.h"
|
||||
#include "src/2E110.h"
|
||||
#include "src/3FB0.h"
|
||||
#include "src/49790.h"
|
||||
#include "src/controller.h"
|
||||
#include "src/memory.h"
|
||||
#include "src/stage_loader.h"
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2BED40/func_83000020.s")
|
||||
static s16 D_83003C80;
|
||||
static s16 D_83003C82;
|
||||
static u16 D_83003C84;
|
||||
static BinArchive* D_83003C88;
|
||||
static void* D_83003C8C;
|
||||
static s16 D_83003C90;
|
||||
static s16 D_83003C92;
|
||||
static s16 D_83003C94;
|
||||
static s32 D_83003C98;
|
||||
static char* D_83003C9C;
|
||||
static s16* D_83003CA0;
|
||||
static s16 D_83003CA4;
|
||||
static s16 D_83003CA6;
|
||||
static char* D_83003CA8;
|
||||
static char* D_83003CAC;
|
||||
static char* D_83003CB0;
|
||||
static char* D_83003CB4;
|
||||
static char* D_83003CB8;
|
||||
static char* D_83003CBC;
|
||||
static char* D_83003CC0;
|
||||
static char* D_83003CC4;
|
||||
static char* D_83003CC8;
|
||||
static char* D_83003CCC;
|
||||
static char* D_83003CD0;
|
||||
static char* D_83003CD4;
|
||||
static char* D_83003CD8;
|
||||
static char* D_83003CDC;
|
||||
unk_D_83003CE0 D_83003CE0;
|
||||
unk_D_83003CE0 D_83003DE0;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2BED40/func_83000058.s")
|
||||
char** D_830039C0 = NULL;
|
||||
static char** D_830039C4 = NULL;
|
||||
static u8 D_830039C8[] = {
|
||||
0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0F,
|
||||
};
|
||||
static s16 D_830039D4[] = {
|
||||
0x0007, 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0023, 0xFFFF,
|
||||
};
|
||||
static s16 D_830039E8[] = {
|
||||
0x0007, 0x0000, 0x0001, 0x001D, 0x0003, 0x0004, 0x0005, 0x0009, 0x0023, 0xFFFF,
|
||||
};
|
||||
static s16 D_830039FC[] = {
|
||||
0x0007, 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0023, 0xFFFF, 0x0000,
|
||||
};
|
||||
static s16 D_83003A10[] = {
|
||||
0x000B, 0x0000, 0x0001, 0x000A, 0x0004, 0x0005, 0x0006, 0x0023, 0xFFFF, 0x0000,
|
||||
};
|
||||
static s16 D_83003A24[] = {
|
||||
0x000B, 0x0000, 0x0001, 0x001E, 0x0004, 0x0005, 0x0009, 0x0023, 0xFFFF, 0x0000,
|
||||
};
|
||||
static s16 D_83003A38[] = {
|
||||
0x000B, 0x0000, 0x0001, 0x000A, 0x0004, 0x0005, 0x0023, 0xFFFF, 0x000E, 0x0000, 0x0001, 0x000C, 0x000D,
|
||||
0x0004, 0x0005, 0x0006, 0x0023, 0xFFFF, 0x000E, 0x0000, 0x0001, 0x001F, 0x000D, 0x0004, 0x0005, 0x0009,
|
||||
0x0023, 0xFFFF, 0x000E, 0x0000, 0x0001, 0x000C, 0x000D, 0x0004, 0x0005, 0x0023, 0xFFFF, 0x0000,
|
||||
};
|
||||
static s16 D_83003A84[] = {
|
||||
0x0013, 0x0000, 0x0001, 0x000F, 0x0010, 0x0011, 0x0012, 0x0004, 0x0005, 0x0006, 0x0023, 0xFFFF,
|
||||
};
|
||||
static s16 D_83003A9C[] = {
|
||||
0x0013, 0x0000, 0x0001, 0x0020, 0x0010, 0x0011, 0x0012, 0x0004, 0x0005, 0x0009, 0x0023, 0xFFFF,
|
||||
};
|
||||
static s16 D_83003AB4[] = {
|
||||
0x0013, 0x0000, 0x0001, 0x000F, 0x0010, 0x0011, 0x0012, 0x0004, 0x0005, 0x0023, 0xFFFF, 0x0000,
|
||||
};
|
||||
static s16 D_83003ACC[] = {
|
||||
0x0000, 0x0001, 0x0016, 0x0017, 0x0004, 0x0005, 0x0006, 0x0023, 0xFFFF, 0x0000,
|
||||
};
|
||||
static s16 D_83003AE0[] = {
|
||||
0x0000, 0x0001, 0x0021, 0x0017, 0x0004, 0x0005, 0x0009, 0x0023, 0xFFFF, 0x0000,
|
||||
};
|
||||
static s16 D_83003AF4[] = {
|
||||
0x0000, 0x0001, 0x0016, 0x0017, 0x0004, 0x0005, 0x0023, 0xFFFF,
|
||||
};
|
||||
static s16 D_83003B04[] = {
|
||||
0x0015, 0x0000, 0x0001, 0x0024, 0x0004, 0x0006, 0x0023, 0xFFFF,
|
||||
};
|
||||
static s16 D_83003B14[] = {
|
||||
0x0015, 0x0000, 0x0001, 0x0014, 0x0004, 0x0009, 0x0023, 0xFFFF,
|
||||
};
|
||||
static s16 D_83003B24[] = {
|
||||
0x0015, 0x0000, 0x0001, 0x0014, 0x0004, 0x0023, 0xFFFF, 0x0000,
|
||||
};
|
||||
static s16 D_83003B34[] = {
|
||||
0x0015, 0x001A, 0x0014, 0x0025, 0x0022, 0x0026, 0x0023, 0xFFFF,
|
||||
};
|
||||
static s16 D_83003B44[] = {
|
||||
0x0015, 0x0000, 0x0001, 0x0014, 0x0019, 0x0004, 0x0023, 0xFFFF,
|
||||
};
|
||||
static s16 D_83003B54[] = {
|
||||
0x0015, 0x001C, 0x001B, 0x0014, 0x0023, 0xFFFF,
|
||||
};
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2BED40/func_83000130.s")
|
||||
char* func_83000020(s32 arg0) {
|
||||
return func_8002D7C0(NULL, 0, D_830039C4, arg0 - 1);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2BED40/func_83000160.s")
|
||||
void func_83000058(void) {
|
||||
unk_func_80027FA0 sp20;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2BED40/func_830003A4.s")
|
||||
if (D_800AE540.unk_0000 != 0xA) {
|
||||
D_83003C88 = func_800044F4(backgrounds_ROM_START, battle_headers_ROM_START, 1, 1);
|
||||
if (D_800AE540.unk_0000 == 7) {
|
||||
func_80028AFC(2);
|
||||
func_80027FA0(&sp20, D_800AE540.unk_11F2);
|
||||
if (sp20.unk_04 < 8) {
|
||||
D_83003C8C = func_8000484C(D_83003C88, 0xD);
|
||||
} else {
|
||||
D_83003C8C = func_8000484C(D_83003C88, 0x10);
|
||||
}
|
||||
} else {
|
||||
D_83003C8C = func_8000484C(D_83003C88, D_830039C8[D_800AE540.unk_0000]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2BED40/func_83000418.s")
|
||||
void func_83000130(void) {
|
||||
Cont_StartReadInputs();
|
||||
Cont_ReadInputs();
|
||||
func_8001F730();
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2BED40/func_830004BC.s")
|
||||
s16* func_83000160(unk_D_800AE540* arg0) {
|
||||
s16* var_v1 = NULL;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2BED40/func_83000508.s")
|
||||
switch (arg0->unk_0001) {
|
||||
case 1:
|
||||
switch (arg0->unk_0000) {
|
||||
case 1:
|
||||
var_v1 = D_830039D4;
|
||||
break;
|
||||
case 10:
|
||||
var_v1 = D_830039E8;
|
||||
break;
|
||||
case 0:
|
||||
var_v1 = D_830039FC;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2BED40/func_8300059C.s")
|
||||
case 2:
|
||||
switch (arg0->unk_0000) {
|
||||
case 2:
|
||||
var_v1 = D_83003A10;
|
||||
break;
|
||||
case 10:
|
||||
var_v1 = D_83003A24;
|
||||
break;
|
||||
case 0:
|
||||
var_v1 = D_83003A38;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2BED40/func_83000710.s")
|
||||
case 3:
|
||||
switch (arg0->unk_0000) {
|
||||
case 3:
|
||||
var_v1 = D_830039D4;
|
||||
break;
|
||||
case 10:
|
||||
var_v1 = D_830039E8;
|
||||
break;
|
||||
case 0:
|
||||
var_v1 = D_830039FC;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2BED40/func_83000750.s")
|
||||
case 4:
|
||||
switch (arg0->unk_0000) {
|
||||
case 4:
|
||||
var_v1 = D_83003A84;
|
||||
break;
|
||||
case 10:
|
||||
var_v1 = D_83003A9C;
|
||||
break;
|
||||
case 0:
|
||||
var_v1 = D_83003AB4;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2BED40/func_830007C4.s")
|
||||
case 5:
|
||||
switch (arg0->unk_0000) {
|
||||
case 5:
|
||||
var_v1 = D_83003ACC;
|
||||
break;
|
||||
case 10:
|
||||
var_v1 = D_83003AE0;
|
||||
break;
|
||||
case 0:
|
||||
var_v1 = D_83003AF4;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2BED40/func_830007F4.s")
|
||||
case 6:
|
||||
switch (arg0->unk_0000) {
|
||||
case 6:
|
||||
var_v1 = D_83003B04;
|
||||
break;
|
||||
case 10:
|
||||
var_v1 = D_83003B14;
|
||||
break;
|
||||
case 0:
|
||||
var_v1 = D_83003B24;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2BED40/func_83000A30.s")
|
||||
case 0:
|
||||
switch (arg0->unk_0000) {
|
||||
case 0:
|
||||
var_v1 = D_83003B34;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2BED40/func_83000F10.s")
|
||||
case 7:
|
||||
switch (arg0->unk_0000) {
|
||||
case 7:
|
||||
var_v1 = D_83003B44;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2BED40/func_83001178.s")
|
||||
case 8:
|
||||
switch (arg0->unk_0000) {
|
||||
case 8:
|
||||
var_v1 = D_83003B54;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2BED40/func_830014B0.s")
|
||||
return var_v1;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2BED40/func_830015EC.s")
|
||||
char* func_830003A4(s8 arg0) {
|
||||
char* ret;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2BED40/func_830017C0.s")
|
||||
switch (arg0) {
|
||||
case 0:
|
||||
ret = D_83003CAC;
|
||||
break;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2BED40/func_83001A9C.s")
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
case 4:
|
||||
case 5:
|
||||
case 6:
|
||||
ret = D_83003CA8;
|
||||
break;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2BED40/func_83001B64.s")
|
||||
case 7:
|
||||
ret = D_83003CB4;
|
||||
break;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2BED40/func_83001C4C.s")
|
||||
case 8:
|
||||
ret = D_83003CB8;
|
||||
break;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2BED40/func_83001CF8.s")
|
||||
case 10:
|
||||
ret = D_83003CB0;
|
||||
break;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2BED40/func_83002030.s")
|
||||
default:
|
||||
ret = NULL;
|
||||
break;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2BED40/func_830020D0.s")
|
||||
return ret;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2BED40/func_83002120.s")
|
||||
char* func_83000418(s8 arg0) {
|
||||
char* ret;
|
||||
|
||||
switch (arg0) {
|
||||
case 0:
|
||||
ret = D_83003CBC;
|
||||
break;
|
||||
|
||||
case 1:
|
||||
ret = D_83003CC0;
|
||||
break;
|
||||
|
||||
case 2:
|
||||
ret = D_83003CC4;
|
||||
break;
|
||||
|
||||
case 3:
|
||||
ret = D_83003CC8;
|
||||
break;
|
||||
|
||||
case 4:
|
||||
ret = D_83003CCC;
|
||||
break;
|
||||
|
||||
case 5:
|
||||
ret = D_83003CD0;
|
||||
break;
|
||||
|
||||
case 6:
|
||||
ret = D_83003CD4;
|
||||
break;
|
||||
|
||||
case 7:
|
||||
ret = D_83003CD8;
|
||||
break;
|
||||
|
||||
case 8:
|
||||
ret = D_83003CDC;
|
||||
break;
|
||||
|
||||
default:
|
||||
ret = NULL;
|
||||
break;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
s32 func_830004BC(s16* arg0) {
|
||||
s32 ret = 0;
|
||||
|
||||
while (*arg0 != -1) {
|
||||
if (D_83003DE0.unk_00[*arg0] == '\x00') {
|
||||
ret = 1;
|
||||
break;
|
||||
}
|
||||
arg0++;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
void func_83000508(void) {
|
||||
s32 temp_lo;
|
||||
|
||||
D_83003C82--;
|
||||
|
||||
D_83003C92 = temp_lo = ((0xA - D_83003C82) << 0xA) / 10;
|
||||
|
||||
if (D_83003C84 & 4) {
|
||||
D_83003C94 = temp_lo;
|
||||
}
|
||||
|
||||
if (D_83003C82 <= 0) {
|
||||
D_83003C80 = 1;
|
||||
D_83003C90 = 2;
|
||||
}
|
||||
}
|
||||
|
||||
void func_8300059C(void) {
|
||||
s16 tmp = D_83003CA6;
|
||||
|
||||
if (BTN_IS_PRESSED(gPlayer1Controller, BTN_DUP)) {
|
||||
D_83003CA6--;
|
||||
if (D_83003CA6 < 0) {
|
||||
D_83003CA6 = D_83003CA4 - 1;
|
||||
}
|
||||
}
|
||||
|
||||
if (BTN_IS_PRESSED(gPlayer1Controller, BTN_DDOWN)) {
|
||||
D_83003CA6++;
|
||||
if (D_83003CA6 >= D_83003CA4) {
|
||||
D_83003CA6 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (D_83003CA6 != tmp) {
|
||||
func_80048B90(1);
|
||||
}
|
||||
|
||||
if (BTN_IS_PRESSED(gPlayer1Controller, BTN_A)) {
|
||||
D_83003C80 = 2;
|
||||
D_83003C82 = 0;
|
||||
|
||||
if (D_83003DE0.unk_00[D_83003CA0[D_83003CA6]] != NULL) {
|
||||
func_830025F8(D_83003CA0[D_83003CA6]);
|
||||
} else {
|
||||
func_830038DC();
|
||||
func_80048B90(4);
|
||||
}
|
||||
|
||||
func_80048B90(2);
|
||||
} else if (BTN_IS_PRESSED(gPlayer1Controller, BTN_B)) {
|
||||
D_83003C80 = 3;
|
||||
D_83003C82 = 0xA;
|
||||
D_83003C90 = -1;
|
||||
func_80048B90(3);
|
||||
}
|
||||
}
|
||||
|
||||
void func_83000710(void) {
|
||||
if ((func_8300269C() == 0) && (func_83003988() == 0)) {
|
||||
D_83003C80 = 1;
|
||||
}
|
||||
}
|
||||
|
||||
void func_83000750(void) {
|
||||
s32 temp_lo;
|
||||
|
||||
D_83003C82--;
|
||||
temp_lo = (D_83003C82 << 0xA) / 10;
|
||||
|
||||
D_83003C92 = temp_lo;
|
||||
if (D_83003C84 & 4) {
|
||||
D_83003C94 = temp_lo;
|
||||
}
|
||||
|
||||
if (D_83003C82 <= 0) {
|
||||
D_83003C80 = 4;
|
||||
D_83003C82 = 2;
|
||||
D_83003C90 = -1;
|
||||
}
|
||||
}
|
||||
|
||||
s32 func_830007C4(void) {
|
||||
s32 var_v1 = 0;
|
||||
|
||||
D_83003C82--;
|
||||
if (D_83003C82 <= 0) {
|
||||
var_v1 = 1;
|
||||
}
|
||||
return var_v1;
|
||||
}
|
||||
|
||||
void func_830007F4(void) {
|
||||
gDPPipeSync(gDisplayListHead++);
|
||||
|
||||
gDPSetCycleType(gDisplayListHead++, G_CYC_1CYCLE);
|
||||
gDPSetTexturePersp(gDisplayListHead++, G_TP_NONE);
|
||||
gDPSetCombineLERP(gDisplayListHead++, ENVIRONMENT, PRIMITIVE, TEXEL0, PRIMITIVE, TEXEL0, 0, ENVIRONMENT, 0,
|
||||
ENVIRONMENT, PRIMITIVE, TEXEL0, PRIMITIVE, TEXEL0, 0, ENVIRONMENT, 0);
|
||||
gDPSetRenderMode(gDisplayListHead++, G_RM_OPA_SURF, G_RM_OPA_SURF2);
|
||||
gDPSetEnvColor(gDisplayListHead++, 140, 190, 200, 255);
|
||||
gDPSetPrimColor(gDisplayListHead++, 0, 0, 110, 160, 170, 255);
|
||||
gSPClearGeometryMode(gDisplayListHead++, G_ZBUFFER | G_LIGHTING);
|
||||
|
||||
gDPLoadTextureBlock_4b(gDisplayListHead++, D_302EBC0, G_IM_FMT_I, 128, 64, 0, G_TX_NOMIRROR | G_TX_WRAP,
|
||||
G_TX_NOMIRROR | G_TX_WRAP, 7, 6, G_TX_NOLOD, G_TX_NOLOD);
|
||||
|
||||
func_8001C330(0, 0, 0x280, 0x1E0, 0, 0, 0x400, 0x400, 0);
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, D_8006F630);
|
||||
}
|
||||
|
||||
void func_83000A30(void) {
|
||||
UNUSED s32 pad;
|
||||
s16 temp_s1;
|
||||
s16 spD8;
|
||||
|
||||
if (D_83003C94 == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
temp_s1 = (((-D_83003C94 * 0x10) + 0x4000) / 1024) + 0x28;
|
||||
spD8 = (D_83003C94 << 5) / 1024;
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, D_8006F558);
|
||||
gDPSetEnvColor(gDisplayListHead++, 100, 100, 200, 255);
|
||||
gDPSetPrimColor(gDisplayListHead++, 0, 0, 40, 40, 140, 255);
|
||||
|
||||
gDPLoadTextureBlock(gDisplayListHead++, D_20003C0, G_IM_FMT_IA, G_IM_SIZ_8b, 16, 32, 0, G_TX_NOMIRROR | G_TX_CLAMP,
|
||||
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
|
||||
|
||||
func_8001C330(0x38, temp_s1, 0x10, spD8, 0, 0, 0x3F0, 0x8000 / spD8, 0);
|
||||
|
||||
gDPLoadTextureBlock(gDisplayListHead++, D_20005C0, G_IM_FMT_IA, G_IM_SIZ_8b, 16, 32, 0, G_TX_NOMIRROR | G_TX_CLAMP,
|
||||
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
|
||||
|
||||
func_8001C330(0x240, temp_s1, 0x10, spD8, 0, 0, 0x400, 0x8000 / spD8, 0);
|
||||
func_8001C330(0x48, temp_s1, 0x1F8, spD8, 0, 0, 0, 0x8000 / spD8, 0);
|
||||
|
||||
if (D_83003C94 < 0x400) {
|
||||
gSPDisplayList(gDisplayListHead++, D_8006F630);
|
||||
} else {
|
||||
gSPDisplayList(gDisplayListHead++, D_8006F518);
|
||||
|
||||
func_8001C6AC(0x30, temp_s1 - 8, 0x30, 0x18, D_2006C00, 0x30, 0);
|
||||
func_8001C6AC(0x30, temp_s1 + 0x10, 0x30, 0x18, D_2007500, 0x30, 0);
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, D_8006F630);
|
||||
|
||||
func_8001F3F4();
|
||||
func_8001EBE0(0x10, 0);
|
||||
|
||||
if (D_83003C98 != 0) {
|
||||
char sp48[0x40];
|
||||
char* temp_v0_21;
|
||||
|
||||
func_8001F324(0, 0, 0, 0xFF);
|
||||
func_8002D5D4(0x26, D_83003C98);
|
||||
temp_v0_21 = func_8002D7C0(sp48, sizeof(sp48), D_830039C0, 0);
|
||||
func_8001F1E8(0x6A, temp_s1 + 4, temp_v0_21);
|
||||
func_8001F324(0xFF, 0xFF, 0x77, 0xFF);
|
||||
func_8001F1E8(0x68, temp_s1 + 2, temp_v0_21);
|
||||
}
|
||||
|
||||
func_8001F444();
|
||||
}
|
||||
}
|
||||
|
||||
void func_83000F10(s16 arg0, s16 arg1, s16 arg2, s16 arg3) {
|
||||
gSPDisplayList(gDisplayListHead++, D_8006F518);
|
||||
|
||||
func_8001CADC(arg0 - 7, arg1 - 7, 8, 8, D_2000340, 8, 0);
|
||||
func_8001CADC((arg0 + arg2) - 1, arg1 - 7, 8, 8, D_2000380, 8, 0);
|
||||
func_8001C330(arg0 + 1, arg1 - 7, arg2 - 2, 8, 0, 0, 0, 0x400, 0);
|
||||
func_8001CADC(arg0 - 7, (arg1 + arg3) - 1, 8, 8, D_20002C0, 8, 0);
|
||||
func_8001C330(arg0 - 7, arg1 + 1, 8, arg3 - 2, 0, 0, 0x400, 0, 0);
|
||||
func_8001CADC((arg0 + arg2) - 1, (arg1 + arg3) - 1, 8, 8, D_2000300, 8, 0);
|
||||
func_8001C330(arg0 + 1, (arg1 + arg3) - 1, arg2 - 2, 8, 0, 0, 0, 0x400, 0);
|
||||
func_8001C330((arg0 + arg2) - 1, arg1 + 1, 8, arg3 - 2, 0, 0, 0x400, 0, 0);
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, D_8006F630);
|
||||
}
|
||||
|
||||
void func_83001178(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u8 arg4, u8 arg5, u8 arg6) {
|
||||
gSPDisplayList(gDisplayListHead++, D_8006F518);
|
||||
|
||||
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_OPA_SURF, G_RM_AA_OPA_SURF2);
|
||||
gDPSetEnvColor(gDisplayListHead++, arg4, arg5, arg6, 255);
|
||||
|
||||
func_8001CADC(arg0, arg1, 8, 8, D_2000B40, 8, 0);
|
||||
func_8001CADC((arg0 + arg2) - 8, arg1, 8, 8, D_2000B80, 8, 0);
|
||||
func_8001C330(arg0 + 8, arg1, arg2 - 0x10, 8, 0, 0, 0, 0x400, 0);
|
||||
func_8001CADC(arg0, (arg1 + arg3) - 8, 8, 8, D_2000BC0, 8, 0);
|
||||
func_8001C330(arg0, arg1 + 8, 8, arg3 - 0x10, 0, 0, 0x400, 0, 0);
|
||||
func_8001CADC((arg0 + arg2) - 8, (arg1 + arg3) - 8, 8, 8, D_2000C00, 8, 0);
|
||||
func_8001C330(arg0 + 8, (arg1 + arg3) - 8, arg2 - 0x10, 8, 0, 0, 0, 0x400, 0);
|
||||
func_8001C330((arg0 + arg2) - 8, arg1 + 8, 8, arg3 - 0x10, 0, 0, 0x400, 0, 0);
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, D_8006F498);
|
||||
|
||||
func_8001C604(arg0 + 8, arg1 + 8, arg2 - 0x10, arg3 - 0x10, arg4, arg5, arg6, 0xFF);
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, D_8006F630);
|
||||
}
|
||||
|
||||
void func_830014B0(s16 arg0, s16 arg1) {
|
||||
gDPLoadTextureTile(gDisplayListHead++, D_4000C40, G_IM_FMT_IA, G_IM_SIZ_8b, 20, 0, 0, 0, 19, 19, 0,
|
||||
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD,
|
||||
G_TX_NOLOD);
|
||||
|
||||
func_8001C330(arg0, arg1, 0x14, 0x14, 0, 0, 0x400, 0x400, 0);
|
||||
}
|
||||
|
||||
void func_830015EC(s16 arg0, s16 arg1) {
|
||||
s16 tmp;
|
||||
s32 i;
|
||||
char sp48[0x40];
|
||||
|
||||
func_8001EBE0(0x10, 0);
|
||||
func_8001F324(0xFF, 0xFF, 0xFF, 0xFF);
|
||||
|
||||
if (D_83003C9C != NULL) {
|
||||
if (D_83003C9C != D_83003CBC) {
|
||||
func_8002D5D4(0x27, D_83003C9C);
|
||||
func_8001F1E8(arg0 + 0x10, arg1 + 4, func_8002D7C0(sp48, sizeof(sp48), D_830039C0, 1));
|
||||
} else {
|
||||
func_8001F1E8(arg0 + 0x10, arg1 + 4, D_83003C9C);
|
||||
}
|
||||
}
|
||||
|
||||
func_8001F1E8(arg0 + 0x30, arg1 + 0x134, func_8002D7C0(NULL, 0, D_830039C0, 2));
|
||||
func_8001EBE0(8, 0);
|
||||
|
||||
for (i = 0; i < D_83003CA4; i++) {
|
||||
if (i != D_83003CA6) {
|
||||
func_8001F324(0xFF, 0xFF, 0xFF, 0xFF);
|
||||
} else {
|
||||
func_8001F324(0xFF, 0xFF, 0, 0xFF);
|
||||
}
|
||||
tmp = D_83003CA0[i];
|
||||
func_8001F1E8(arg0 + 0x54, arg1 + 0x26 + i * 0x18, D_83003CE0.unk_00[tmp]);
|
||||
}
|
||||
}
|
||||
|
||||
void func_830017C0(void) {
|
||||
static s16 D_83003B60 = 0;
|
||||
|
||||
s32 i;
|
||||
s16 temp_s3;
|
||||
s16 temp_s2;
|
||||
|
||||
if (D_83003C92 == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
temp_s3 = (((-D_83003C92 * 0xA8) + 0x2A000) / 1024) + 0x5C;
|
||||
temp_s2 = (D_83003C92 * 0x150) / 1024;
|
||||
func_83000F10(0x38, temp_s3, 0x210, temp_s2);
|
||||
|
||||
if (D_83003C92 >= 0x400) {
|
||||
func_83001178(0x38, temp_s3, 0x210, 0x20, 0x3C, 0x3C, 0xA0);
|
||||
func_83001178(0x38, temp_s3 + 0x20, 0x210, 0x110, 0x1E, 0x1E, 0x64);
|
||||
func_83001178(0x38, temp_s3 + 0x130, 0x210, 0x20, 0x3C, 0x3C, 0xA0);
|
||||
if ((func_830026C0() == 0) && (func_830039AC() == 0)) {
|
||||
s16 sins = SINS(D_83003B60) * 3.0f;
|
||||
|
||||
func_800207FC(sins + 0x48, temp_s3 + (D_83003CA6 * 0x18) + 0x2A);
|
||||
D_83003B60 += 0x1000;
|
||||
}
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, D_8006F518);
|
||||
|
||||
func_8001C6AC(0x48, temp_s3 + 0x132, 0x1C, 0x1C, D_04000000, 0x1C, 0);
|
||||
|
||||
for (i = 0; i < D_83003CA4; i++) {
|
||||
func_830014B0(0x74, temp_s3 + 0x28 + i * 0x18);
|
||||
}
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, D_8006F630);
|
||||
|
||||
func_8001F3F4();
|
||||
func_830015EC(0x38, temp_s3);
|
||||
func_8001F444();
|
||||
}
|
||||
}
|
||||
|
||||
void func_83001A9C(void) {
|
||||
func_800079C4();
|
||||
if (D_83003C90 != 0) {
|
||||
if (D_800AE540.unk_0000 == 0xA) {
|
||||
func_830007F4();
|
||||
} else {
|
||||
func_8001D924(D_83003C8C);
|
||||
}
|
||||
|
||||
func_83000A30();
|
||||
|
||||
if (D_83003C90 > 0) {
|
||||
D_83003C90--;
|
||||
}
|
||||
}
|
||||
|
||||
if ((func_830026C0() < 0x400) && (func_830039AC() < 0x400)) {
|
||||
func_830017C0();
|
||||
}
|
||||
|
||||
func_8300243C();
|
||||
func_83003484();
|
||||
func_80007778();
|
||||
}
|
||||
|
||||
void func_83001B64(void) {
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < 29; i++) {
|
||||
D_83003CE0.unk_00[i] = func_8002D7C0(NULL, 0, D_830039C0, i + 4);
|
||||
}
|
||||
|
||||
D_83003CE0.unk_74 = D_83003CE0.unk_00[2];
|
||||
D_83003CE0.unk_78 = D_83003CE0.unk_00[10];
|
||||
D_83003CE0.unk_7C = D_83003CE0.unk_00[12];
|
||||
D_83003CE0.unk_80 = D_83003CE0.unk_00[15];
|
||||
D_83003CE0.unk_84 = D_83003CE0.unk_00[22];
|
||||
D_83003CE0.unk_88 = D_83003CE0.unk_00[27];
|
||||
D_83003CE0.unk_8C = func_8002D7C0(NULL, 0, D_830039C0, 0x21);
|
||||
D_83003CE0.unk_90 = D_83003CE0.unk_00[20];
|
||||
D_83003CE0.unk_94 = D_83003CE0.unk_00[4];
|
||||
D_83003CE0.unk_98 = func_8002D7C0(NULL, 0, D_830039C0, 0x22);
|
||||
}
|
||||
|
||||
void func_83001C4C(void) {
|
||||
s32 i;
|
||||
s32 var_s2 = 0;
|
||||
|
||||
for (i = 0; i < 39; i++) {
|
||||
switch (i) {
|
||||
case 7:
|
||||
case 11:
|
||||
case 14:
|
||||
case 19:
|
||||
case 24:
|
||||
D_83003DE0.unk_00[i] = NULL;
|
||||
break;
|
||||
|
||||
default:
|
||||
D_83003DE0.unk_00[i] = func_8002D7C0(NULL, 0, D_830039C0, var_s2 + 0x23);
|
||||
var_s2++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void func_83001CF8(void) {
|
||||
D_83003C80 = 0;
|
||||
D_83003C82 = 0xA;
|
||||
D_83003C90 = -1;
|
||||
D_83003C92 = 0;
|
||||
func_80048B90(4);
|
||||
D_83003C98 = 0;
|
||||
D_83003C9C = NULL;
|
||||
D_83003CA6 = 0;
|
||||
D_83003C84 = 0;
|
||||
|
||||
D_83003CA0 = func_83000160(&D_800AE540);
|
||||
if (D_83003CA0 == 0) {
|
||||
D_83003CA4 = 0;
|
||||
} else {
|
||||
D_83003CA4 = 0;
|
||||
while (D_83003CA0[D_83003CA4] != -1) {
|
||||
D_83003CA4++;
|
||||
}
|
||||
}
|
||||
|
||||
func_83001B64();
|
||||
func_83001C4C();
|
||||
|
||||
D_83003CA8 = func_8002D7C0(NULL, 0, D_830039C0, 0x46);
|
||||
D_83003CAC = func_8002D7C0(NULL, 0, D_830039C0, 0x45);
|
||||
D_83003CB0 = func_8002D7C0(NULL, 0, D_830039C0, 0x49);
|
||||
D_83003CB4 = func_8002D7C0(NULL, 0, D_830039C0, 0x47);
|
||||
D_83003CB8 = func_8002D7C0(NULL, 0, D_830039C0, 0x48);
|
||||
D_83003CBC = func_8002D7C0(NULL, 0, D_830039C0, 0x4A);
|
||||
D_83003CC0 = func_8002D7C0(NULL, 0, D_830039C0, 0x4D);
|
||||
D_83003CC4 = func_8002D7C0(NULL, 0, D_830039C0, 0x4C);
|
||||
D_83003CC8 = func_8002D7C0(NULL, 0, D_830039C0, 0x4B);
|
||||
D_83003CCC = func_8002D7C0(NULL, 0, D_830039C0, 0x4E);
|
||||
D_83003CD0 = func_8002D7C0(NULL, 0, D_830039C0, 0x4F);
|
||||
D_83003CD4 = func_8002D7C0(NULL, 0, D_830039C0, 0x50);
|
||||
|
||||
D_83003CD8 = D_83003CB4;
|
||||
D_83003CDC = D_83003CB8;
|
||||
|
||||
D_83003C98 = func_830003A4(D_800AE540.unk_0000);
|
||||
D_83003C9C = func_83000418(D_800AE540.unk_0001);
|
||||
|
||||
if (D_800AE540.unk_11F2 != 0) {
|
||||
D_83003C84 |= 1;
|
||||
}
|
||||
|
||||
if (func_830004BC(D_83003CA0) != 0) {
|
||||
D_83003C84 |= 2;
|
||||
}
|
||||
|
||||
if (D_83003C84 & 4) {
|
||||
D_83003C94 = 0;
|
||||
} else {
|
||||
D_83003C94 = 0x400;
|
||||
}
|
||||
|
||||
func_830023B8();
|
||||
|
||||
func_830032D8((D_83003C84 & 2) ? 1 : 0);
|
||||
}
|
||||
|
||||
s32 func_83002030(void) {
|
||||
s32 sp1C = 1;
|
||||
|
||||
switch (D_83003C80) {
|
||||
case 0:
|
||||
func_83000508();
|
||||
break;
|
||||
|
||||
case 1:
|
||||
func_8300059C();
|
||||
break;
|
||||
|
||||
case 2:
|
||||
func_83000710();
|
||||
break;
|
||||
|
||||
case 3:
|
||||
func_83000750();
|
||||
break;
|
||||
|
||||
case 4:
|
||||
if (func_830007C4() != 0) {
|
||||
sp1C = 0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
return sp1C;
|
||||
}
|
||||
|
||||
void func_830020D0(void) {
|
||||
func_83001CF8();
|
||||
do {
|
||||
func_83000130();
|
||||
func_830023CC();
|
||||
func_830033F0();
|
||||
func_83001A9C();
|
||||
} while (func_83002030() != 0);
|
||||
}
|
||||
|
||||
s32 func_83002120(UNUSED s32 arg0, UNUSED s32 arg1) {
|
||||
main_pool_push_state('EXPL');
|
||||
|
||||
func_8001E94C(0x1C, 0);
|
||||
|
||||
ASSET_LOAD(D_1000000, common_menu1_ui, 0);
|
||||
ASSET_LOAD(D_2000000, common_menu2_ui, 0);
|
||||
ASSET_LOAD(D_3000000, menu_select_ui, 0);
|
||||
ASSET_LOAD(D_04000000, rental_rules_ui, 0);
|
||||
|
||||
func_83000058();
|
||||
func_8001B058();
|
||||
func_8002D510();
|
||||
D_830039C0 = func_8002D5AC(0x20);
|
||||
D_830039C4 = func_8002D5AC(0x24);
|
||||
func_80007754();
|
||||
func_830020D0();
|
||||
func_8000771C();
|
||||
|
||||
main_pool_pop_state('EXPL');
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,21 +1,120 @@
|
|||
#include "global.h"
|
||||
#include "fragment55.h"
|
||||
#include "src/1CF30.h"
|
||||
#include "src/49790.h"
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2C0F90/func_83002270.s")
|
||||
static s16 D_83003EE0;
|
||||
static s16 D_83003EE2;
|
||||
static s16 D_83003EE4;
|
||||
static s16 D_83003EE6;
|
||||
static s16 D_83003EE8;
|
||||
static s16 D_83003EEA;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2C0F90/func_830022B0.s")
|
||||
s32 func_83002270(s8* arg0) {
|
||||
s16 var_v1 = 1;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2C0F90/func_83002324.s")
|
||||
while (*arg0 != 0) {
|
||||
if (*arg0 == '\n') {
|
||||
var_v1++;
|
||||
}
|
||||
arg0++;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2C0F90/func_83002370.s")
|
||||
return var_v1;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2C0F90/func_830023B8.s")
|
||||
void func_830022B0(void) {
|
||||
D_83003EE2--;
|
||||
D_83003EE6 = ((5 - D_83003EE2) << 0xA) / 5;
|
||||
if (D_83003EE2 <= 0) {
|
||||
D_83003EE0 = 2;
|
||||
D_83003EE2 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2C0F90/func_830023CC.s")
|
||||
void func_83002324(void) {
|
||||
if (BTN_IS_PRESSED(gPlayer1Controller, BTN_A | BTN_B)) {
|
||||
D_83003EE0 = 3;
|
||||
D_83003EE2 = 5;
|
||||
func_80048B90(3);
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2C0F90/func_8300243C.s")
|
||||
void func_83002370(void) {
|
||||
D_83003EE2--;
|
||||
D_83003EE6 = (D_83003EE2 << 0xA) / 5;
|
||||
if (D_83003EE2 <= 0) {
|
||||
D_83003EE0 = 0;
|
||||
D_83003EE2 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2C0F90/func_830025F8.s")
|
||||
void func_830023B8(void) {
|
||||
D_83003EE0 = 0;
|
||||
D_83003EE6 = 0;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2C0F90/func_8300269C.s")
|
||||
void func_830023CC(void) {
|
||||
if (D_83003EE0 != 0) {
|
||||
switch (D_83003EE0) {
|
||||
case 1:
|
||||
func_830022B0();
|
||||
break;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2C0F90/func_830026C0.s")
|
||||
case 2:
|
||||
func_83002324();
|
||||
break;
|
||||
|
||||
case 3:
|
||||
func_83002370();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void func_8300243C(void) {
|
||||
s16 temp_s0;
|
||||
|
||||
if (D_83003EE6 != 0) {
|
||||
temp_s0 = D_83003EE8 + (((D_83003EEA / 2) * (0x400 - D_83003EE6)) / 1024);
|
||||
func_83000F10(0x48, temp_s0, 0x1F0, (D_83003EEA * D_83003EE6) / 1024);
|
||||
if (D_83003EE6 >= 0x400) {
|
||||
func_83001178(0x48, temp_s0, 0x1F0, 0x20, 0x1E, 0x64, 0x64);
|
||||
func_83001178(0x48, temp_s0 + 0x20, 0x1F0, D_83003EEA - 0x20, 0x3C, 0x3C, 0xA0);
|
||||
func_8001F3F4();
|
||||
func_8001EBE0(8, 0);
|
||||
func_8001F324(0xFF, 0xFF, 0xFF, 0xFF);
|
||||
func_8001F3B4(0x18);
|
||||
func_8001F1E8(0x50, temp_s0 + 6, D_83003CE0.unk_00[D_83003EE4]);
|
||||
func_8001EBE0(8, 0);
|
||||
func_8001F1E8(0x50, temp_s0 + 0x28, D_83003DE0.unk_00[D_83003EE4]);
|
||||
func_8001F444();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void func_830025F8(s16 arg0) {
|
||||
s32 tmp;
|
||||
|
||||
D_83003EE0 = 1;
|
||||
D_83003EE2 = 5;
|
||||
D_83003EE6 = 0;
|
||||
D_83003EE4 = arg0;
|
||||
tmp = (func_83002270(D_83003DE0.unk_00[D_83003EE4]) * 0x18);
|
||||
D_83003EEA = 0x2C + tmp;
|
||||
D_83003EE8 = ((0x1E0 - D_83003EEA) / 2) + 0x14;
|
||||
}
|
||||
|
||||
s32 func_8300269C(void) {
|
||||
s32 ret;
|
||||
|
||||
if (D_83003EE0 != 0) {
|
||||
ret = 1;
|
||||
} else {
|
||||
ret = 0;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
s32 func_830026C0(void) {
|
||||
return D_83003EE6;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,39 +1,450 @@
|
|||
#include "global.h"
|
||||
#include "fragment55.h"
|
||||
#include "src/1AB70.h"
|
||||
#include "src/1CF30.h"
|
||||
#include "src/20470.h"
|
||||
#include "src/22630.h"
|
||||
#include "src/2E110.h"
|
||||
#include "src/49790.h"
|
||||
#include "src/6BC0.h"
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2C13F0/func_830026D0.s")
|
||||
static u16 D_83003EF0[151][0x640];
|
||||
static unk_D_83079E70 D_83079E70;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2C13F0/func_830027C8.s")
|
||||
s32 func_830026D0(s16 arg0, s16 arg1) {
|
||||
s32 var_v1;
|
||||
s16 sp2;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2C13F0/func_83002848.s")
|
||||
if ((arg0 <= 0) || (arg0 >= 0x98)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2C13F0/func_83002950.s")
|
||||
var_v1 = 0;
|
||||
switch (arg1) {
|
||||
case 0:
|
||||
var_v1 = 1;
|
||||
break;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2C13F0/func_83002974.s")
|
||||
case 1:
|
||||
sp2 = 1;
|
||||
break;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2C13F0/func_83002A0C.s")
|
||||
case 2:
|
||||
sp2 = 2;
|
||||
break;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2C13F0/func_83002AB4.s")
|
||||
case 3:
|
||||
sp2 = 1;
|
||||
break;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2C13F0/func_83002B1C.s")
|
||||
case 4:
|
||||
sp2 = 8;
|
||||
break;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2C13F0/func_83002BA4.s")
|
||||
case 5:
|
||||
sp2 = 0x10;
|
||||
break;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2C13F0/func_83002C30.s")
|
||||
case 6:
|
||||
sp2 = 0x20;
|
||||
break;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2C13F0/func_83002C74.s")
|
||||
case 7:
|
||||
var_v1 = 1;
|
||||
break;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2C13F0/func_83002F9C.s")
|
||||
case 8:
|
||||
var_v1 = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2C13F0/func_83003054.s")
|
||||
if (var_v1 == 0) {
|
||||
if (D_8006FEE8[arg0][8] & sp2) {
|
||||
var_v1 = 1;
|
||||
} else {
|
||||
var_v1 = 0;
|
||||
}
|
||||
}
|
||||
return var_v1;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2C13F0/func_830032D8.s")
|
||||
s16 func_830027C8(s16 arg0) {
|
||||
s16 i;
|
||||
s16 var_s1 = 0;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2C13F0/func_830033F0.s")
|
||||
for (i = 1; i < 152; i++) {
|
||||
if (func_830026D0(i, arg0) != 0) {
|
||||
var_s1++;
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2C13F0/func_83003484.s")
|
||||
return var_s1;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2C13F0/func_830038DC.s")
|
||||
s32 func_83002848(unk_D_83079E70_000* arg0, s16 arg1, s16 arg2) {
|
||||
s32 i;
|
||||
s16 var_a0;
|
||||
s32 var_s1;
|
||||
s32 var_s3;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2C13F0/func_83003988.s")
|
||||
for (i = 0; i < 6; i++) {
|
||||
arg0->unk_00[i].unk_00 = 0;
|
||||
arg0->unk_00[i].unk_02 = 0;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2C13F0/func_830039AC.s")
|
||||
var_s3 = 0;
|
||||
var_s1 = (arg1 * 6) + 1;
|
||||
for (i = 0; i < 6; i++, var_s1++) {
|
||||
var_a0 = var_s1;
|
||||
if ((var_a0 <= 0) || (var_a0 >= 0x98)) {
|
||||
var_a0 = 0;
|
||||
} else {
|
||||
var_s3++;
|
||||
}
|
||||
arg0->unk_00[i].unk_00 = var_a0;
|
||||
|
||||
if (func_830026D0(var_a0, arg2) != 0) {
|
||||
arg0->unk_00[i].unk_02 = 1;
|
||||
} else {
|
||||
arg0->unk_00[i].unk_02 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
return var_s3;
|
||||
}
|
||||
|
||||
unk_D_83079E70_000* func_83002950(unk_D_83079E70_000* arg0, s32 arg1) {
|
||||
while (arg1-- > 0) {
|
||||
arg0 = arg0->unk_18;
|
||||
}
|
||||
|
||||
return arg0;
|
||||
}
|
||||
|
||||
s32 func_83002974(unk_D_83079E70* arg0) {
|
||||
s32 sp1C = 0;
|
||||
|
||||
if (func_83002848(arg0->unk_10->unk_1C, arg0->unk_08 - 1, D_800AE540.unk_0001) > 0) {
|
||||
arg0->unk_00 = 3;
|
||||
arg0->unk_02 = 4;
|
||||
arg0->unk_08--;
|
||||
arg0->unk_10 = arg0->unk_10->unk_1C;
|
||||
arg0->unk_0A = -1;
|
||||
arg0->unk_0C = -1;
|
||||
sp1C = 1;
|
||||
func_80048B90(1);
|
||||
}
|
||||
|
||||
return sp1C;
|
||||
}
|
||||
|
||||
s32 func_83002A0C(unk_D_83079E70* arg0) {
|
||||
s32 sp1C = 0;
|
||||
|
||||
if (func_83002848(func_83002950(arg0->unk_10, 5), arg0->unk_08 + 5, D_800AE540.unk_0001) > 0) {
|
||||
arg0->unk_00 = 3;
|
||||
arg0->unk_02 = 4;
|
||||
arg0->unk_08++;
|
||||
arg0->unk_10 = arg0->unk_10->unk_18;
|
||||
arg0->unk_0A = 1;
|
||||
arg0->unk_0C = -1;
|
||||
sp1C = 1;
|
||||
func_80048B90(1);
|
||||
}
|
||||
|
||||
return sp1C;
|
||||
}
|
||||
|
||||
void func_83002AB4(unk_D_83079E70* arg0) {
|
||||
arg0->unk_02--;
|
||||
arg0->unk_04 = ((5 - arg0->unk_02) << 0xA) / 5;
|
||||
if (arg0->unk_02 <= 0) {
|
||||
arg0->unk_00 = 2;
|
||||
arg0->unk_02 = 0;
|
||||
arg0->unk_0C = 2;
|
||||
}
|
||||
}
|
||||
|
||||
void func_83002B1C(unk_D_83079E70* arg0) {
|
||||
if (BTN_IS_PRESSED(gPlayer1Controller, BTN_A | BTN_B)) {
|
||||
arg0->unk_00 = 4;
|
||||
arg0->unk_02 = 5;
|
||||
arg0->unk_0C = -1;
|
||||
func_80048B90(3);
|
||||
} else if (BTN_IS_DOWN(gPlayer1Controller, BTN_DUP)) {
|
||||
func_83002974(arg0);
|
||||
} else if (BTN_IS_DOWN(gPlayer1Controller, BTN_DDOWN)) {
|
||||
func_83002A0C(arg0);
|
||||
}
|
||||
}
|
||||
|
||||
void func_83002BA4(unk_D_83079E70* arg0) {
|
||||
s32 var_v1;
|
||||
|
||||
arg0->unk_02--;
|
||||
if (arg0->unk_02 <= 0) {
|
||||
var_v1 = 0;
|
||||
if (BTN_IS_DOWN(gPlayer1Controller, BTN_DUP)) {
|
||||
var_v1 = func_83002974(arg0);
|
||||
} else if (BTN_IS_DOWN(gPlayer1Controller, BTN_DDOWN)) {
|
||||
var_v1 = func_83002A0C(arg0);
|
||||
}
|
||||
|
||||
if (var_v1 == 0) {
|
||||
arg0->unk_00 = 2;
|
||||
arg0->unk_02 = 0;
|
||||
arg0->unk_0C = 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void func_83002C30(unk_D_83079E70* arg0) {
|
||||
arg0->unk_02--;
|
||||
arg0->unk_04 = (arg0->unk_02 << 0xA) / 5;
|
||||
if (arg0->unk_02 <= 0) {
|
||||
arg0->unk_00 = 0;
|
||||
arg0->unk_02 = 0;
|
||||
arg0->unk_0C = -1;
|
||||
}
|
||||
}
|
||||
|
||||
void func_83002C74(s16 arg0, s16 arg1, unk_D_83079E70* arg2) {
|
||||
static s16 D_83003B70 = 0;
|
||||
|
||||
s16 temp_t0;
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, D_8006F558);
|
||||
gDPSetEnvColor(gDisplayListHead++, 130, 130, 220, 255);
|
||||
gDPSetPrimColor(gDisplayListHead++, 0, 0, 60, 60, 150, 255);
|
||||
|
||||
func_8001CADC(arg0, arg1, 0x10, 8, D_200A200, 0x10, 0);
|
||||
func_8001CADC(arg0, arg1 + 0x114, 0x10, 8, D_200A280, 0x10, 0);
|
||||
func_8001C330(arg0, arg1 + 8, 0x10, 0x10C, 0, 0, 0x400, 0, 0);
|
||||
|
||||
if (arg2->unk_00 != 3) {
|
||||
temp_t0 = (arg2->unk_08 * 0x10C) / 21;
|
||||
} else if (arg2->unk_0A > 0) {
|
||||
temp_t0 = (((arg2->unk_08 * 4) - arg2->unk_02) * 0x10C) / 84;
|
||||
} else {
|
||||
temp_t0 = (((arg2->unk_08 * 4) + arg2->unk_02) * 0x10C) / 84;
|
||||
}
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, D_8006F518);
|
||||
|
||||
if (D_83003B70 < 4) {
|
||||
func_8001C6AC(arg0 - 4, (arg1 + temp_t0) - 4, 0x18, 0x18, D_200A300, 0x18, 0);
|
||||
} else {
|
||||
func_8001C6AC(arg0 - 4, (arg1 + temp_t0) - 4, 0x18, 0x18, D_200A780, 0x18, 0);
|
||||
}
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, D_8006F630);
|
||||
|
||||
func_8001F3F4();
|
||||
D_83003B70 = (D_83003B70 + 1) % 8;
|
||||
}
|
||||
|
||||
void func_83002F9C(s16 arg0, s16 arg1) {
|
||||
gDPPipeSync(gDisplayListHead++);
|
||||
|
||||
gDPSetRenderMode(gDisplayListHead++, G_RM_OPA_SURF, G_RM_OPA_SURF2);
|
||||
gDPSetEnvColor(gDisplayListHead++, 60, 60, 160, 255);
|
||||
|
||||
func_8001CF10(arg0, arg1, 0x20, 0x14, D_4000DD0, 0x20, 0);
|
||||
}
|
||||
|
||||
void func_83003054(s16 arg0, s16 arg1, unk_D_83079E70_000* arg2) {
|
||||
UNUSED s32 pad;
|
||||
s32 i;
|
||||
Color_RGB8* var_v0;
|
||||
Color_RGB8 sp78 = { 0x3C, 0x3C, 0xA0 };
|
||||
Color_RGB8 sp74 = { 0x64, 0x1E, 0x1E };
|
||||
Color_RGB8 sp70 = { 0x1E, 0x1E, 0x64 };
|
||||
s16 temp_s0;
|
||||
|
||||
for (i = 0; i < 6; i++) {
|
||||
if (arg2->unk_00[i].unk_00 != 0) {
|
||||
if (arg2->unk_00[i].unk_02 != 0) {
|
||||
var_v0 = &sp78;
|
||||
} else {
|
||||
var_v0 = &sp74;
|
||||
}
|
||||
} else {
|
||||
var_v0 = &sp70;
|
||||
}
|
||||
func_83001178(arg0 + i * 0x54, arg1, 0x54, 0x3C, var_v0->r, var_v0->g, var_v0->b);
|
||||
}
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, D_8006F518);
|
||||
|
||||
for (i = 0; i < 6; i++) {
|
||||
temp_s0 = arg2->unk_00[i].unk_00;
|
||||
if (temp_s0 != NULL) {
|
||||
func_8001C6AC(arg0 + (i * 0x54) + 0x16, arg1 + 3, 0x28, 0x28, D_83003EF0[temp_s0 - 1], 0x28, 0);
|
||||
}
|
||||
}
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, D_8006F630);
|
||||
|
||||
func_8001F3F4();
|
||||
func_8001EBE0(4, 0);
|
||||
func_8001F324(0xFF, 0xFF, 0xFF, 0xFF);
|
||||
|
||||
for (i = 0; i < 6; i++) {
|
||||
temp_s0 = arg2->unk_00[i].unk_00;
|
||||
if (temp_s0 != NULL) {
|
||||
func_8001F1E8(arg0 + (i * 0x54) + 2, arg1 + 0x2A, func_83000020(temp_s0));
|
||||
}
|
||||
}
|
||||
|
||||
func_8001F444();
|
||||
}
|
||||
|
||||
void func_830032D8(s32 arg0) {
|
||||
unk_D_83079E70* ptr = &D_83079E70;
|
||||
s32 i;
|
||||
|
||||
ptr->unk_00 = 0;
|
||||
ptr->unk_04 = 0;
|
||||
|
||||
for (i = 0; i < 6; i++) {
|
||||
ptr->unk_14[i].unk_18 = &ptr->unk_14[(i + 1) % 6];
|
||||
ptr->unk_14[i].unk_1C = &ptr->unk_14[(i + 5) % 6];
|
||||
}
|
||||
|
||||
if (arg0 != 0) {
|
||||
for (i = 0; i < 151; i++) {
|
||||
func_8001B0DC(D_83003EF0[i], i + 1, NULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void func_830033F0(void) {
|
||||
unk_D_83079E70* ptr = &D_83079E70;
|
||||
|
||||
if (ptr->unk_00 != 0) {
|
||||
switch (ptr->unk_00) {
|
||||
case 1:
|
||||
func_83002AB4(&D_83079E70);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
func_83002B1C(&D_83079E70);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
func_83002BA4(&D_83079E70);
|
||||
break;
|
||||
|
||||
case 4:
|
||||
func_83002C30(&D_83079E70);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void func_83003484(void) {
|
||||
s16 spA6;
|
||||
s16 spA4;
|
||||
unk_D_83079E70* ptr = &D_83079E70;
|
||||
|
||||
if (ptr->unk_04 == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
spA6 = (((0x400 - ptr->unk_04) * 0x108) / 1024) + 0x38;
|
||||
spA4 = (((0x400 - ptr->unk_04) * 0xA8) / 1024) + 0x5C;
|
||||
func_83000F10(spA6, spA4, (ptr->unk_04 * 0x210) / 1024, (ptr->unk_04 * 0x150) / 1024);
|
||||
|
||||
if (ptr->unk_04 >= 0x400) {
|
||||
UNUSED s32 pad;
|
||||
s32 i;
|
||||
unk_D_83079E70_000* var_s0;
|
||||
|
||||
func_83001178(spA6, spA4, 0x210, 0x24, 0x1E, 0x64, 0x64);
|
||||
func_83001178(spA6, spA4 + 0x24, 0x18, 0x12C, 0x1E, 0x1E, 0x64);
|
||||
func_83002C74(spA6 + 4, spA4 + 0x2C, ptr);
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, D_8006F518);
|
||||
|
||||
func_83002F9C(spA6 + 8, spA4 + 8);
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, D_8006F630);
|
||||
|
||||
func_8001F3F4();
|
||||
func_8001F324(0xFF, 0xFF, 0xFF, 0xFF);
|
||||
func_8001EBE0(8, 0);
|
||||
func_8002D600(3, ptr->unk_06);
|
||||
{
|
||||
char sp4C[64];
|
||||
func_8001F1E8(spA6 + 0x2C, spA4 + 8, func_8002D7C0(sp4C, sizeof(sp4C), D_830039C0, 3));
|
||||
}
|
||||
func_8001F444();
|
||||
|
||||
if (ptr->unk_0C == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (ptr->unk_00 == 3) {
|
||||
s16 sp4A = spA4 - ((ptr->unk_0A * 0x3C * (4 - ptr->unk_02)) / 4);
|
||||
func_800060E0(&gDisplayListHead, spA6 + 0x18, spA4 + 0x24, 0x1F8, 0x12C);
|
||||
if (ptr->unk_0A > 0) {
|
||||
var_s0 = ptr->unk_10->unk_1C;
|
||||
for (i = 0; i < 6; i++) {
|
||||
func_83003054(spA6 + 0x18, sp4A + 0x24 + i * 0x3C, var_s0);
|
||||
var_s0 = var_s0->unk_18;
|
||||
}
|
||||
} else {
|
||||
var_s0 = ptr->unk_10;
|
||||
for (i = 0; i < 6; i++) {
|
||||
func_83003054(spA6 + 0x18, sp4A - 0x18 + i * 0x3C, var_s0);
|
||||
var_s0 = var_s0->unk_18;
|
||||
}
|
||||
}
|
||||
func_800060E0(&gDisplayListHead, 0, 0, 0x280, 0x1E0);
|
||||
} else {
|
||||
var_s0 = ptr->unk_10;
|
||||
for (i = 0; i < 5; i++) {
|
||||
func_83003054(spA6 + 0x18, spA4 + 0x24 + i * 0x3C, var_s0);
|
||||
var_s0 = var_s0->unk_18;
|
||||
}
|
||||
}
|
||||
|
||||
if (ptr->unk_0C > 0) {
|
||||
ptr->unk_0C -= 1;
|
||||
}
|
||||
}
|
||||
|
||||
if (1) {}
|
||||
}
|
||||
|
||||
void func_830038DC(void) {
|
||||
unk_D_83079E70* ptr = &D_83079E70;
|
||||
s32 i;
|
||||
|
||||
ptr->unk_00 = 1;
|
||||
ptr->unk_02 = 5;
|
||||
ptr->unk_04 = 0;
|
||||
ptr->unk_08 = 0;
|
||||
ptr->unk_0A = 0;
|
||||
ptr->unk_0C = -1;
|
||||
ptr->unk_06 = func_830027C8(D_800AE540.unk_0001);
|
||||
ptr->unk_10 = &ptr->unk_14[0];
|
||||
|
||||
for (i = 0; i < 5; i++) {
|
||||
func_83002848(&ptr->unk_14[i], i, D_800AE540.unk_0001);
|
||||
}
|
||||
}
|
||||
|
||||
s32 func_83003988(void) {
|
||||
s32 ret;
|
||||
|
||||
if (D_83079E70.unk_00 != 0) {
|
||||
ret = 1;
|
||||
} else {
|
||||
ret = 0;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
s32 func_830039AC(void) {
|
||||
return D_83079E70.unk_04;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1962,10 +1962,14 @@
|
|||
- [0x2BED40, c, fragments/55/fragment55_2BED40]
|
||||
- [0x2C0F90, c, fragments/55/fragment55_2C0F90]
|
||||
- [0x2C13F0, c, fragments/55/fragment55_2C13F0]
|
||||
- [0x2C26E0, data, fragments/55/fragment55_data]
|
||||
- [0x2C28A0, rodata, fragments/55/fragment55_rodata]
|
||||
- [0x2C26E0, .data, fragments/55/fragment55_2BED40]
|
||||
- [0x2C2890, .data, fragments/55/fragment55_2C13F0]
|
||||
- [0x2C28A0, .rodata, fragments/55/fragment55_2BED40]
|
||||
- [0x2C2970, .rodata, fragments/55/fragment55_2C13F0]
|
||||
|
||||
- {vram: 0x83003C80, type: bss, name: fragments/55/fragment55_bss}
|
||||
- {vram: 0x83003C80, type: .bss, name: fragments/55/fragment55_2BED40}
|
||||
- {vram: 0x83003EE0, type: .bss, name: fragments/55/fragment55_2C0F90}
|
||||
- {vram: 0x83003EF0, type: .bss, name: fragments/55/fragment55_2C13F0}
|
||||
|
||||
- name: fragment55_relocs
|
||||
type: code
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user