mirror of
https://github.com/pret/pokestadium.git
synced 2026-03-21 17:24:20 -05:00
Merge pull request #197 from Kelebek1/fragment65
Some checks are pending
C/C++ CI / build (push) Waiting to run
Some checks are pending
C/C++ CI / build (push) Waiting to run
fragment65
This commit is contained in:
commit
833703b06a
|
|
@ -524,6 +524,15 @@ typedef struct unk_func_88500020 {
|
|||
/* 0x0C */ u8* unk_0C;
|
||||
} unk_func_88500020; // size = 0x10
|
||||
|
||||
// offset 0x898000 in the rom
|
||||
typedef struct TrainerData {
|
||||
/* 0x000 */ char unk00[0x4];
|
||||
/* 0x004 */ char name1[12];
|
||||
/* 0x010 */ char name2[40];
|
||||
/* 0x038 */ u16 gfx_file_idx; // high byte battle_portraits, low byte ukn
|
||||
/* 0x03A */ char unk3A[0x1F6];
|
||||
} TrainerData; // size = 0x230
|
||||
|
||||
#include "variables.h"
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -734,6 +734,25 @@ extern u8 D_3000B60[];
|
|||
extern u8 D_3001110[];
|
||||
extern u8 D_30016C0[];
|
||||
extern u8 D_3001C70[];
|
||||
extern u8 D_300CC10[];
|
||||
extern u8 D_3019C38[];
|
||||
extern u8 D_3009290[];
|
||||
extern u8 D_300A290[];
|
||||
extern u8 D_300B290[];
|
||||
extern u8 D_3011A30[];
|
||||
extern u8 D_300C290[];
|
||||
extern u8 D_3000000[];
|
||||
extern u8 D_3000D20[];
|
||||
extern u8 D_3001A40[];
|
||||
extern u8 D_3002760[];
|
||||
extern u8 D_3003480[];
|
||||
extern u8 D_30041A0[];
|
||||
extern u8 D_3004EC0[];
|
||||
extern u8 D_3005BE0[];
|
||||
extern u8 D_3006900[];
|
||||
extern u8 D_3008E50[];
|
||||
extern u8 D_3007620[];
|
||||
extern u8 D_3008238[];
|
||||
|
||||
extern LEODiskID D_800818E0;
|
||||
|
||||
|
|
|
|||
|
|
@ -495,7 +495,6 @@ D_03001F98 = 0x03001F98;
|
|||
D_03002F60 = 0x03002F60;
|
||||
D_03003F28 = 0x03003F28;
|
||||
D_3006060 = 0x3006060;
|
||||
D_3000000 = 0x3000000;
|
||||
D_2002480 = 0x2002480;
|
||||
D_2002900 = 0x2002900;
|
||||
D_2003900 = 0x2003900;
|
||||
|
|
@ -990,4 +989,24 @@ D_30005B0 = 0x30005B0;
|
|||
D_3000B60 = 0x3000B60;
|
||||
D_3001110 = 0x3001110;
|
||||
D_30016C0 = 0x30016C0;
|
||||
D_3001C70 = 0x3001C70;
|
||||
D_3001C70 = 0x3001C70;
|
||||
D_300CC10 = 0x300CC10;
|
||||
D_3019C38 = 0x3019C38;
|
||||
D_84A02F00 = 0x84A02F00; // size:0x1E0
|
||||
D_3009290 = 0x3009290;
|
||||
D_300A290 = 0x300A290;
|
||||
D_300B290 = 0x300B290;
|
||||
D_3011A30 = 0x3011A30;
|
||||
D_300C290 = 0x300C290;
|
||||
D_3000000 = 0x3000000;
|
||||
D_3000D20 = 0x3000D20;
|
||||
D_3001A40 = 0x3001A40;
|
||||
D_3002760 = 0x3002760;
|
||||
D_3003480 = 0x3003480;
|
||||
D_30041A0 = 0x30041A0;
|
||||
D_3004EC0 = 0x3004EC0;
|
||||
D_3005BE0 = 0x3005BE0;
|
||||
D_3006900 = 0x3006900;
|
||||
D_3008E50 = 0x3008E50;
|
||||
D_3007620 = 0x3007620;
|
||||
D_3008238 = 0x3008238;
|
||||
|
|
@ -490,4 +490,22 @@ D_300DFB0 = 0x300DFB0;
|
|||
D_300EC58 = 0x300EC58;
|
||||
D_3005B80 = 0x3005B80;
|
||||
D_3005F40 = 0x3005F40;
|
||||
D_3008FD0 = 0x3008FD0;
|
||||
D_3008FD0 = 0x3008FD0;
|
||||
D_300CC10 = 0x300CC10;
|
||||
D_3019C38 = 0x3019C38;
|
||||
D_3009290 = 0x3009290;
|
||||
D_300A290 = 0x300A290;
|
||||
D_300B290 = 0x300B290;
|
||||
D_3011A30 = 0x3011A30;
|
||||
D_300C290 = 0x300C290;
|
||||
D_3000D20 = 0x3000D20;
|
||||
D_3001A40 = 0x3001A40;
|
||||
D_3002760 = 0x3002760;
|
||||
D_3003480 = 0x3003480;
|
||||
D_30041A0 = 0x30041A0;
|
||||
D_3004EC0 = 0x3004EC0;
|
||||
D_3005BE0 = 0x3005BE0;
|
||||
D_3006900 = 0x3006900;
|
||||
D_3008E50 = 0x3008E50;
|
||||
D_3007620 = 0x3007620;
|
||||
D_3008238 = 0x3008238;
|
||||
|
|
@ -1,47 +1,895 @@
|
|||
#include "global.h"
|
||||
#include "fragment65.h"
|
||||
#include "src/1CF30.h"
|
||||
#include "src/20470.h"
|
||||
#include "src/26820.h"
|
||||
#include "src/29BA0.h"
|
||||
#include "src/2E110.h"
|
||||
#include "src/3FB0.h"
|
||||
#include "src/49790.h"
|
||||
#include "src/4CBC0.h"
|
||||
#include "src/DDC0.h"
|
||||
#include "src/memory.h"
|
||||
#include "src/stage_loader.h"
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/65/fragment65/func_84A00020.s")
|
||||
static char** D_84A03130;
|
||||
static char** D_84A03134;
|
||||
static unk_D_84A03138 D_84A03138[4];
|
||||
static BinArchive* D_84A03168;
|
||||
static BinArchive* D_84A0316C;
|
||||
static BinArchive* D_84A03170;
|
||||
static u8* D_84A03174;
|
||||
static u8* D_84A03178;
|
||||
static u8* D_84A0317C;
|
||||
static unk_func_80027FA0 D_84A03180;
|
||||
static s16 D_84A03188;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/65/fragment65/func_84A003BC.s")
|
||||
static unk_D_84A02F00 D_84A02F00[] = {
|
||||
{
|
||||
0x00, 0x00, 154, 390, 118, 362, 96, 278, 48, 70, -32768, 0, 0, 0, 2, { 0x96, 0x64, 0xFF, 0x00 },
|
||||
D_3000000, 0, 30, NULL,
|
||||
},
|
||||
{
|
||||
0x01, 0x00, 238, 416, 210, 392, 184, 304, 48, 70, -32768, 3, 0, 1, 3, { 0x00, 0x9B, 0xFF, 0x00 },
|
||||
D_3000D20, 1, 31, NULL,
|
||||
},
|
||||
{
|
||||
0x02, 0x00, 322, 386, 282, 362, 248, 274, 48, 70, -32768, 4, 2, 2, 0, { 0xFF, 0x5F, 0x0F, 0x00 },
|
||||
D_3001A40, 2, 32, NULL,
|
||||
},
|
||||
{
|
||||
0x03, 0x00, 270, 304, 256, 282, 234, 190, 48, 70, -32768, 5, 3, 5, 0, { 0x8C, 0x37, 0xFF, 0x00 },
|
||||
D_3002760, 3, 33, NULL,
|
||||
},
|
||||
{
|
||||
0x04, 0x00, 214, 286, 188, 266, 168, 180, 48, 70, -32768, 6, 4, 6, 4, { 0xFF, 0x37, 0xFF, 0x00 },
|
||||
D_3003480, 4, 34, NULL,
|
||||
},
|
||||
{
|
||||
0x05, 0x00, 164, 178, 160, 170, 116, 96, 48, 70, -32768, 7, 5, 0, 7, { 0xCD, 0x91, 0x00, 0x00 },
|
||||
D_30041A0, 5, 35, NULL,
|
||||
},
|
||||
{
|
||||
0x06, 0x00, 284, 148, 290, 138, 250, 78, 48, 70, -32768, 0, 8, 6, 8, { 0xFF, 0x00, 0x00, 0x00 },
|
||||
D_3004EC0, 6, 36, NULL,
|
||||
},
|
||||
{
|
||||
0x07, 0x00, 364, 243, 330, 214, 306, 110, 48, 70, -32768, 7, 0, 7, 9, { 0x37, 0xFF, 0xFF, 0x00 },
|
||||
D_3005BE0, 7, 37, NULL,
|
||||
},
|
||||
{
|
||||
0x08, 0x00, 0, 0, 418, 204, 390, 102, 48, 70, -32768, 0, 0, 0, 0, { 0xC8, 0xFF, 0x00, 0x00 },
|
||||
D_3006900, -1, -1, NULL,
|
||||
},
|
||||
{
|
||||
0x09, 0x00, 190, 384, 174, 424, 180, 394, 40, 27, -32768, 0, 0, 0, 0, { 0xFF, 0x64, 0x00, 0x00 },
|
||||
D_3008E50, -1, 9, NULL,
|
||||
},
|
||||
{
|
||||
0x0A, 0x00, 446, 216, 374, 210, 356, 128, 72, 43, -32768, 12, 10, 10, 0, { 0xFF, 0x64, 0x00, 0x00 },
|
||||
D_3007620, 10, 10, NULL,
|
||||
},
|
||||
{
|
||||
0x0B, 0x00, 0, 0, 312, 148, 274, 68, 72, 43, -32768, 0, 11, 0, 0, { 0x00, 0x64, 0xC8, 0x00 },
|
||||
D_3008238, -1, 11, NULL,
|
||||
},
|
||||
};
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/65/fragment65/func_84A00638.s")
|
||||
static s16 D_84A030E0 = 0;
|
||||
static s16 D_84A030E4 = 0;
|
||||
static s16 D_84A030E8 = 0xFF;
|
||||
static s16 D_84A030EC = 0;
|
||||
static s16 D_84A030F0 = 0;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/65/fragment65/func_84A008A8.s")
|
||||
void func_84A00020(u8* arg0, u8* arg1, u8 arg2) {
|
||||
s32 i;
|
||||
s32 j;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/65/fragment65/func_84A00B44.s")
|
||||
gDPPipeSync(gDisplayListHead++);
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/65/fragment65/func_84A00E98.s")
|
||||
gDPSetCycleType(gDisplayListHead++, G_CYC_2CYCLE);
|
||||
gDPSetRenderMode(gDisplayListHead++, G_RM_OPA_SURF, G_RM_OPA_SURF2);
|
||||
gDPSetTexturePersp(gDisplayListHead++, G_TP_NONE);
|
||||
gDPSetScissor(gDisplayListHead++, G_SC_NON_INTERLACE, 0, 0, 640, 480);
|
||||
gDPSetCombineLERP(gDisplayListHead++, TEXEL1, TEXEL0, ENV_ALPHA, TEXEL0, TEXEL1, TEXEL0, ENVIRONMENT, TEXEL0, 0, 0,
|
||||
0, COMBINED, 0, 0, 0, COMBINED);
|
||||
gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, arg2);
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/65/fragment65/func_84A00FEC.s")
|
||||
gDPPipeSync(gDisplayListHead++);
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/65/fragment65/func_84A012B8.s")
|
||||
for (i = 0; i < 0x1E0; i += 0x20) {
|
||||
for (j = 0; j < 0x280; j += 0x20) {
|
||||
gDPLoadTextureBlock(gDisplayListHead++, arg0, G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 16, 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);
|
||||
gDPLoadMultiBlock(gDisplayListHead++, arg1, 0x0100, 1, G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 16, 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);
|
||||
gSPTextureRectangle(gDisplayListHead++, j << 2, i << 2, (j + 0x20) << 2, (i + 0x20) << 2, G_TX_RENDERTILE,
|
||||
0, 0, 0x0200, 0x0200);
|
||||
arg0 += 0x200;
|
||||
arg1 += 0x200;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/65/fragment65/func_84A01424.s")
|
||||
void func_84A003BC(s16 arg0, s16 arg1, s16 arg2, s16 arg3, s16 arg4, u8* arg5, f32 arg6) {
|
||||
UNUSED s32 pad;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/65/fragment65/func_84A01770.s")
|
||||
gDPLoadTextureBlock(gDisplayListHead++, arg5, G_IM_FMT_RGBA, G_IM_SIZ_16b, (s32)(arg4 / arg6), (s32)(arg3 / arg6),
|
||||
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);
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/65/fragment65/func_84A01BAC.s")
|
||||
func_8001C330(arg0, arg1, arg2, arg3, 0, 0, 1024.0f / arg6, 1024.0f / arg6, 0);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/65/fragment65/func_84A01DAC.s")
|
||||
void func_84A00630(void) {
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/65/fragment65/func_84A01EE0.s")
|
||||
void func_84A00638(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u8* arg4, f32 arg5) {
|
||||
UNUSED s32 pad;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/65/fragment65/func_84A02074.s")
|
||||
gDPLoadTextureBlock(gDisplayListHead++, arg4, G_IM_FMT_IA, G_IM_SIZ_8b, (s32)(arg2 / arg5), (s32)(arg3 / arg5), 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);
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/65/fragment65/func_84A0207C.s")
|
||||
func_8001C330(arg0, arg1, arg2, arg3, 0, 0, 1024.0f / arg5, 1024.0f / arg5, 0);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/65/fragment65/func_84A02304.s")
|
||||
void func_84A008A8(void) {
|
||||
char sp40[0x100];
|
||||
UNUSED s32 pad2;
|
||||
s16 sp3A;
|
||||
UNUSED s32 pad;
|
||||
s16 temp_v0;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/65/fragment65/func_84A02410.s")
|
||||
if (D_84A030EC >= 0x10) {
|
||||
sp3A = 0xF0 - (D_84A030EC / 2);
|
||||
func_80020754(0x78, sp3A, 0x190, D_84A030EC);
|
||||
func_8001F504(0x7F, sp3A + 7, 0x182, D_84A030EC - 0xE, 0x14, 0x32, 0x64, 0x96);
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/65/fragment65/func_84A02434.s")
|
||||
if (D_84A030EC == 0x50) {
|
||||
func_8001F3F4();
|
||||
func_8001EBE0(8, 0);
|
||||
func_8001F3B4(0x18);
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/65/fragment65/func_84A02580.s")
|
||||
if (D_84A030E0 == 7) {
|
||||
func_8001F1E8(0x88, sp3A + 0x10, func_8002D7C0(NULL, 0, D_84A03130, 0xC));
|
||||
} else if (D_84A030E0 == 0xA) {
|
||||
func_8001F1E8(0x88, sp3A + 0x10, func_8002D7C0(NULL, 0, D_84A03130, 0xD));
|
||||
} else {
|
||||
temp_v0 = D_84A02F00[D_84A030E0].unk_22;
|
||||
if (temp_v0 >= 0x1E) {
|
||||
func_8002D5D4(0x24, func_8002D7C0(NULL, 0, D_84A03134, temp_v0));
|
||||
} else if (temp_v0 >= 0) {
|
||||
func_8002D5D4(0x24, func_8002D7C0(NULL, 0, D_84A03130, temp_v0));
|
||||
} else {
|
||||
func_8002D5D4(0x24, " ");
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/65/fragment65/func_84A02898.s")
|
||||
temp_v0 = D_84A02F00[D_84A030E0 + 1].unk_22;
|
||||
if (temp_v0 >= 0x1E) {
|
||||
func_8002D5D4(0x29, func_8002D7C0(NULL, 0, D_84A03134, temp_v0));
|
||||
} else if (temp_v0 >= 0) {
|
||||
func_8002D5D4(0x29, func_8002D7C0(NULL, 0, D_84A03130, temp_v0));
|
||||
} else {
|
||||
func_8002D5D4(0x29, " ");
|
||||
}
|
||||
func_8001F1E8(0x88, sp3A + 0x10, func_8002D7C0(sp40, sizeof(sp40), D_84A03130, 0xE));
|
||||
}
|
||||
func_8001F444();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/65/fragment65/func_84A02A34.s")
|
||||
void func_84A00B44(void) {
|
||||
UNUSED s32 pad[3];
|
||||
s32 i;
|
||||
char* var_s0;
|
||||
unk_D_84A02F00* sp58 = &D_84A02F00[D_84A030E0];
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/65/fragment65/func_84A02B70.s")
|
||||
for (i = 0; i < 4; i++) {
|
||||
if (D_84A03138[i].unk_00 != 0) {
|
||||
s16 tmp = D_84A03138[i].unk_02;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/65/fragment65/func_84A02D14.s")
|
||||
gSPDisplayList(gDisplayListHead++, D_8006F518);
|
||||
|
||||
func_84A003BC(tmp, 0xF0, 0x80, 0x40, 0x80, D_3009290, 2.0f);
|
||||
func_84A003BC(tmp, 0x130, 0x80, 0x40, 0x80, D_300A290, 2.0f);
|
||||
func_84A003BC(tmp, 0x170, 0x80, 0x40, 0x80, D_300B290, 2.0f);
|
||||
func_84A003BC(tmp + 8, 0x138, 0x70, 0x38, 0x80, D_84A03138[i].unk_04 + 0x208, 2.0f);
|
||||
func_84A003BC(tmp + 8, 0x170, 0x70, 0x38, 0x80, D_84A03138[i].unk_04 + 0x1008, 2.0f);
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, D_8006F630);
|
||||
|
||||
func_8001F3F4();
|
||||
|
||||
if ((D_84A030E0 >= 8) || (i == 3)) {
|
||||
func_8001EBE0(8, 0);
|
||||
|
||||
if (sp58->unk_20 >= 0) {
|
||||
var_s0 = func_8002D7C0(NULL, 0, D_84A03130, sp58->unk_20);
|
||||
} else {
|
||||
var_s0 = " ";
|
||||
}
|
||||
|
||||
func_8001F1E8((tmp - (func_8001F5B0(8, 0, var_s0) / 2)) + 0x40, 0xF4, var_s0);
|
||||
}
|
||||
|
||||
func_8001EBE0(4, 0);
|
||||
|
||||
if ((i == 3) && (D_84A030E0 < 8)) {
|
||||
func_8001F1E8(tmp + 8, 0x10C, func_8002D7C0(NULL, 0, D_84A03130, 8));
|
||||
} else {
|
||||
func_8001F1E8(tmp + 8, 0x10C, func_8002D7C0(NULL, 0, D_84A03130, 0xF));
|
||||
}
|
||||
|
||||
func_8001EBE0(0x10, 0);
|
||||
func_8001F1E8((tmp - (func_8001F5B0(0x10, 0, D_84A03138[i].unk_08) / 2)) + 0x40, 0x11C,
|
||||
D_84A03138[i].unk_08);
|
||||
func_8001F444();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void func_84A00E98(void) {
|
||||
static s16 D_84A030F4 = 0;
|
||||
static s16 D_84A030F8 = 1;
|
||||
|
||||
s16 i;
|
||||
s16 var_s1 = (D_84A030F4 / 4) + 0x22;
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, D_8006F518);
|
||||
|
||||
for (i = 0; i < 9; i++) {
|
||||
func_8001C6AC(0x24, var_s1, 0xE4, 8, D_3011A30 + i * 0xE40, 0xE4, 0);
|
||||
var_s1 += 8;
|
||||
}
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, D_8006F630);
|
||||
|
||||
D_84A030F4 += D_84A030F8;
|
||||
if (D_84A030F4 == 0) {
|
||||
D_84A030F8 = 1;
|
||||
}
|
||||
|
||||
if (D_84A030F4 == 0x23) {
|
||||
D_84A030F8 = -1;
|
||||
}
|
||||
}
|
||||
|
||||
void func_84A00FEC(void) {
|
||||
s32 i;
|
||||
s32 var_a0;
|
||||
s32 var_s2;
|
||||
unk_D_84A02F00* var_s0;
|
||||
|
||||
if (D_84A030E0 < 9) {
|
||||
var_s0 = &D_84A02F00[0];
|
||||
var_s2 = 9;
|
||||
} else {
|
||||
var_s0 = &D_84A02F00[9];
|
||||
var_s2 = 3;
|
||||
}
|
||||
|
||||
gDPPipeSync(gDisplayListHead++);
|
||||
gDPSetCycleType(gDisplayListHead++, G_CYC_1CYCLE);
|
||||
gDPSetTexturePersp(gDisplayListHead++, G_TP_NONE);
|
||||
gDPSetCombineLERP(gDisplayListHead++, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, ENVIRONMENT, 0,
|
||||
PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, ENVIRONMENT, 0);
|
||||
gDPSetRenderMode(gDisplayListHead++, G_RM_XLU_SURF, G_RM_XLU_SURF2);
|
||||
gSPClearGeometryMode(gDisplayListHead++, G_ZBUFFER | G_LIGHTING);
|
||||
|
||||
for (; var_s2 > 0; var_s2--, var_s0++) {
|
||||
if (var_s0->unk_01 != 0) {
|
||||
var_a0 = 0xFF;
|
||||
if (var_s0->unk_01 == 1) {
|
||||
var_a0 = (s32)((COSS(var_s0->unk_12) + 1.0f) * 96.0f);
|
||||
var_a0 += 0x3F;
|
||||
var_s0->unk_12 += 0x200;
|
||||
} else {
|
||||
var_s0->unk_12 = 0;
|
||||
var_s0->unk_01--;
|
||||
}
|
||||
|
||||
gDPSetEnvColor(gDisplayListHead++, var_s0->unk_18.r, var_s0->unk_18.g, var_s0->unk_18.b, var_a0);
|
||||
|
||||
if (var_s0->unk_00 == 9) {
|
||||
gDPSetPrimColor(gDisplayListHead++, 0, 0, 255, 255, 0, 255);
|
||||
} else {
|
||||
gDPSetPrimColor(gDisplayListHead++, 0, 0, 255, 255, 255, 255);
|
||||
}
|
||||
|
||||
func_84A00638(var_s0->unk_0A, var_s0->unk_0C, var_s0->unk_0E * 2, var_s0->unk_10 * 2, var_s0->unk_1C, 2.0f);
|
||||
}
|
||||
}
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, D_8006F630);
|
||||
}
|
||||
|
||||
void func_84A012B8(void) {
|
||||
s32 var_s2;
|
||||
char* var_s0;
|
||||
unk_D_84A02F00* var_s1;
|
||||
s16 tmp;
|
||||
|
||||
if (D_84A030E0 < 9) {
|
||||
var_s1 = &D_84A02F00[0];
|
||||
var_s2 = 8;
|
||||
} else {
|
||||
var_s1 = &D_84A02F00[9];
|
||||
var_s2 = 3;
|
||||
}
|
||||
|
||||
func_8001F3F4();
|
||||
func_8001F470();
|
||||
func_8001EBE0(4, 0);
|
||||
func_8001F36C(0x50, 0x64, 0xDC, 0xFF);
|
||||
|
||||
for (; var_s2 > 0; var_s2--, var_s1++) {
|
||||
if (var_s1->unk_01 != 0) {
|
||||
if (var_s1->unk_22 >= 0x1E) {
|
||||
var_s0 = func_8002D7C0(NULL, 0, D_84A03134, var_s1->unk_22);
|
||||
} else if (var_s1->unk_22 >= 0) {
|
||||
var_s0 = func_8002D7C0(NULL, 0, D_84A03130, var_s1->unk_22);
|
||||
} else {
|
||||
var_s0 = " ";
|
||||
}
|
||||
tmp = var_s1->unk_02 - (func_8001F5B0(4, 0, var_s0) / 2);
|
||||
func_8001F1E8(tmp, var_s1->unk_04, var_s0);
|
||||
}
|
||||
}
|
||||
|
||||
func_8001F4C4();
|
||||
func_8001F444();
|
||||
}
|
||||
|
||||
void func_84A01424(unk_D_84A02F00* arg0, u8 arg1, u8 arg2) {
|
||||
char* sp54;
|
||||
|
||||
if (arg0->unk_24 != NULL) {
|
||||
gSPDisplayList(gDisplayListHead++, D_8006F518);
|
||||
gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, arg1);
|
||||
|
||||
func_84A003BC(0x1F6, 0x160, 0x60, 0x30, 0x60, arg0->unk_24, 1.5f);
|
||||
func_84A003BC(0x1F6, 0x190, 0x60, 0x30, 0x60, arg0->unk_24 + 0x1000, 1.5f);
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, D_8006F558);
|
||||
gDPSetEnvColor(gDisplayListHead++, arg0->unk_18.r, arg0->unk_18.g, arg0->unk_18.b, (arg2 * 0x96) / 255);
|
||||
|
||||
func_8001CCF8(0x166, 0x174, 0x10, 0x4C, D_300C290, 0x10, 0);
|
||||
func_8001C330(0x176, 0x174, 0x80, 0x4C, 0x1E0, 0, 0, 0x400, 0);
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, D_8006F630);
|
||||
|
||||
func_8001F3F4();
|
||||
func_8001F470();
|
||||
func_8001F324(0x8C, 0x90, 0x90, arg2);
|
||||
func_8001F36C(0xFF, 0xFF, 0xFF, arg2);
|
||||
func_8001EBE0(8, 0);
|
||||
|
||||
if (arg0->unk_20 >= 0) {
|
||||
sp54 = func_8002D7C0(NULL, 0, D_84A03130, arg0->unk_20);
|
||||
} else {
|
||||
sp54 = " ";
|
||||
}
|
||||
func_8001F1E8(0x1AE - (func_8001F5B0(8, 0, sp54) / 2), 0x17A, sp54);
|
||||
func_8001EBE0(0x20, 0);
|
||||
|
||||
if (arg0->unk_22 >= 0x1E) {
|
||||
sp54 = func_8002D7C0(NULL, 0, D_84A03134, arg0->unk_22);
|
||||
} else if (arg0->unk_22 >= 0) {
|
||||
sp54 = func_8002D7C0(NULL, 0, D_84A03130, arg0->unk_22);
|
||||
} else {
|
||||
sp54 = " ";
|
||||
}
|
||||
|
||||
func_8001F1E8(0x1AE - (func_8001F5B0(0x20, 0, sp54) / 2), 0x196, sp54);
|
||||
func_8001F4C4();
|
||||
func_8001F444();
|
||||
}
|
||||
}
|
||||
|
||||
void func_84A01770(unk_D_84A02F00* arg0, u8 arg1, u8 arg2) {
|
||||
char* var_s0;
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, D_8006F518);
|
||||
gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, arg1);
|
||||
|
||||
func_84A003BC(0x1D6, 0x13E, 0x80, 0x1A, 0x80, arg0->unk_24, 1.28f);
|
||||
func_84A003BC(0x1D6, 0x158, 0x80, 0x1A, 0x80, arg0->unk_24 + 0xFA0, 1.28f);
|
||||
func_84A003BC(0x1D6, 0x172, 0x80, 0x1A, 0x80, arg0->unk_24 + 0x1F40, 1.28f);
|
||||
func_84A003BC(0x1D6, 0x18C, 0x80, 0x1A, 0x80, arg0->unk_24 + 0x2EE0, 1.28f);
|
||||
func_84A003BC(0x1D6, 0x1A6, 0x80, 0x1A, 0x80, arg0->unk_24 + 0x3E80, 1.28f);
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, D_8006F558);
|
||||
gDPSetEnvColor(gDisplayListHead++, arg0->unk_18.r, arg0->unk_18.g, arg0->unk_18.b, (arg2 * 0x96) / 255);
|
||||
gDPLoadTextureBlock(gDisplayListHead++, D_300C290, G_IM_FMT_IA, G_IM_SIZ_16b, 16, 76, 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(0x15A, 0x174, 0x10, 0x4C, 0, 0, 0x400, 0x400, 0);
|
||||
func_8001C330(0x16A, 0x174, 0x6C, 0x4C, 0x1E0, 0, 0, 0x400, 0);
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, D_8006F630);
|
||||
|
||||
func_8001F3F4();
|
||||
func_8001F470();
|
||||
func_8001F324(0x8C, 0x90, 0x90, arg2);
|
||||
func_8001F36C(0xFF, 0xFF, 0xFF, arg2);
|
||||
func_8001EBE0(0x10, 0);
|
||||
|
||||
if (arg0->unk_22 >= 0x1E) {
|
||||
var_s0 = func_8002D7C0(NULL, 0, D_84A03134, arg0->unk_22);
|
||||
} else if (arg0->unk_22 >= 0) {
|
||||
var_s0 = func_8002D7C0(NULL, 0, D_84A03130, arg0->unk_22);
|
||||
} else {
|
||||
var_s0 = " ";
|
||||
}
|
||||
|
||||
func_8001F1E8(0x198 - (func_8001F5B0(0x10, 0, var_s0) / 2), 0x196, var_s0);
|
||||
func_8001F4C4();
|
||||
func_8001F444();
|
||||
}
|
||||
|
||||
void func_84A01BAC(void) {
|
||||
u8 sp1F;
|
||||
|
||||
if (D_84A030E8 > 0) {
|
||||
if (D_84A030E8 < 0xFF) {
|
||||
if (D_84A030E0 == 0xA) {
|
||||
func_84A01770(&D_84A02F00[D_84A030E0], D_84A030E8, D_84A030E8);
|
||||
} else {
|
||||
func_84A01424(&D_84A02F00[D_84A030E0], D_84A030E8, D_84A030E8);
|
||||
}
|
||||
} else if (D_84A030E4 == 0) {
|
||||
if (D_84A030E0 == 0xA) {
|
||||
func_84A01770(&D_84A02F00[D_84A030E0], 0xFF, 0xFF);
|
||||
} else {
|
||||
func_84A01424(&D_84A02F00[D_84A030E0], 0xFF, 0xFF);
|
||||
}
|
||||
} else {
|
||||
sp1F = ((D_84A030E4 * 0xFF) / 4) & 0xFF;
|
||||
if (D_84A030E0 == 0xA) {
|
||||
func_84A01770(&D_84A02F00[D_84A030E0], 0xFF, 0xFF - sp1F);
|
||||
} else {
|
||||
func_84A01424(&D_84A02F00[D_84A030E0], 0xFF, 0xFF - sp1F);
|
||||
}
|
||||
|
||||
if (D_84A03188 == 0xA) {
|
||||
func_84A01770(&D_84A02F00[D_84A03188], sp1F, sp1F);
|
||||
} else {
|
||||
func_84A01424(&D_84A02F00[D_84A03188], sp1F, sp1F);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void func_84A01DAC(void) {
|
||||
s16 sp1E;
|
||||
s16 sp1C;
|
||||
unk_D_84A02F00* temp_a1 = &D_84A02F00[D_84A030E0];
|
||||
|
||||
if (D_84A030E4 == 0) {
|
||||
sp1E = temp_a1->unk_06 - 0x20;
|
||||
sp1C = temp_a1->unk_08 - 0xD;
|
||||
} else {
|
||||
sp1E = ((((D_84A02F00[D_84A03188].unk_06 - temp_a1->unk_06) * D_84A030E4) / 4) + temp_a1->unk_06) - 0x20;
|
||||
sp1C = ((((D_84A02F00[D_84A03188].unk_08 - temp_a1->unk_08) * D_84A030E4) / 4) + temp_a1->unk_08) - 0xD;
|
||||
|
||||
D_84A030E4--;
|
||||
if ((D_84A030E4 == 0) && ((D_84A030E0 == 8) || (D_84A030E0 == 9))) {
|
||||
func_80007990(1);
|
||||
func_80006CB4(8);
|
||||
}
|
||||
}
|
||||
|
||||
func_80020928(sp1E - 3, sp1C);
|
||||
}
|
||||
|
||||
void func_84A01EE0(void) {
|
||||
func_800079C4();
|
||||
|
||||
if (D_84A030E0 < 9) {
|
||||
if (D_84A030F0 == 0) {
|
||||
func_8001D924(D_84A03174);
|
||||
} else if (D_84A030F0 == 0xFF) {
|
||||
func_8001D924(D_84A03178);
|
||||
} else {
|
||||
func_84A00020(D_84A03174, D_84A03178, D_84A030F0);
|
||||
if (D_84A030F0 < 0xFF) {
|
||||
D_84A030F0 += 5;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
func_8001D924(D_84A0317C);
|
||||
D_84A030F0 = 0xFF;
|
||||
}
|
||||
|
||||
if (D_800AE540.unk_11F2 == 1) {
|
||||
gSPDisplayList(gDisplayListHead++, D_8006F518);
|
||||
|
||||
func_8001C6AC(0x22C, 0x28, 0x24, 0x24, D_3019C38, 0x24, 0);
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, D_8006F630);
|
||||
}
|
||||
|
||||
func_84A00FEC();
|
||||
func_84A012B8();
|
||||
func_84A01BAC();
|
||||
func_84A01DAC();
|
||||
func_84A00B44();
|
||||
func_84A00E98();
|
||||
func_84A008A8();
|
||||
func_80007778();
|
||||
}
|
||||
|
||||
s32 func_84A02074(void) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
s32 func_84A0207C(void) {
|
||||
s16 var_s4;
|
||||
s16 var_s1;
|
||||
s16 var_s3;
|
||||
unk_D_84A02F00* temp_s0;
|
||||
|
||||
var_s4 = 0x1E;
|
||||
var_s3 = 2;
|
||||
|
||||
while (var_s3 == 2) {
|
||||
var_s1 = -1;
|
||||
temp_s0 = &D_84A02F00[D_84A030E0];
|
||||
|
||||
func_800290B4();
|
||||
|
||||
if (func_84A02074() == 0) {
|
||||
if (func_80007604() == 0) {
|
||||
if (D_84A030E4 == 0) {
|
||||
D_84A03188 = D_84A030E0;
|
||||
if (D_84A030E0 == 0xB) {
|
||||
var_s4--;
|
||||
if (var_s4 == 0) {
|
||||
var_s3 = 3;
|
||||
}
|
||||
} else if (BTN_IS_PRESSED(gPlayer1Controller, BTN_A)) {
|
||||
func_80048B90(2);
|
||||
var_s3 = 3;
|
||||
} else if (BTN_IS_PRESSED(gPlayer1Controller, BTN_B)) {
|
||||
func_80048B90(3);
|
||||
if (temp_s0->unk_00 >= 0xA) {
|
||||
D_84A030E0 = 9;
|
||||
D_84A030E4 = 3;
|
||||
} else {
|
||||
var_s3 = 1;
|
||||
}
|
||||
} else if (BTN_IS_PRESSED(gPlayer1Controller, BTN_DUP) && (temp_s0->unk_14 != 0)) {
|
||||
var_s1 = temp_s0->unk_14 - 1;
|
||||
} else if (BTN_IS_PRESSED(gPlayer1Controller, BTN_DDOWN) && (temp_s0->unk_15 != 0)) {
|
||||
var_s1 = temp_s0->unk_15 - 1;
|
||||
} else if (BTN_IS_PRESSED(gPlayer1Controller, BTN_DLEFT) && (temp_s0->unk_16 != 0)) {
|
||||
var_s1 = temp_s0->unk_16 - 1;
|
||||
} else if (BTN_IS_PRESSED(gPlayer1Controller, BTN_DRIGHT) && (temp_s0->unk_17 != 0)) {
|
||||
var_s1 = temp_s0->unk_17 - 1;
|
||||
}
|
||||
|
||||
if ((var_s1 >= 0) && (D_84A02F00[var_s1].unk_01 != 0)) {
|
||||
func_80048B90(1);
|
||||
D_84A030E0 = var_s1;
|
||||
D_84A030E4 = 3;
|
||||
}
|
||||
}
|
||||
} else if (func_80007604() == 1) {
|
||||
if (D_84A030E0 == 8) {
|
||||
D_84A030E0 = 0xA;
|
||||
}
|
||||
|
||||
if (D_84A030E0 == 9) {
|
||||
D_84A030E0 = 7;
|
||||
}
|
||||
func_80006C6C(8);
|
||||
}
|
||||
}
|
||||
func_84A01EE0();
|
||||
}
|
||||
return var_s3;
|
||||
}
|
||||
|
||||
void func_84A02304(void) {
|
||||
s32 i;
|
||||
s32 var_a1;
|
||||
s32 var_s7;
|
||||
TrainerData* var_s1;
|
||||
s32 portrait_file_idx;
|
||||
|
||||
if (D_84A030E0 == 0xB) {
|
||||
var_s7 = 1;
|
||||
} else {
|
||||
var_s7 = 4;
|
||||
}
|
||||
|
||||
if (D_84A030E0 < 8) {
|
||||
var_a1 = D_84A030E0 + 0xC;
|
||||
} else {
|
||||
var_a1 = D_84A030E0 + 0xA;
|
||||
}
|
||||
|
||||
if (D_800AE540.unk_11F2 != 0) {
|
||||
var_a1 += 0x1F;
|
||||
}
|
||||
|
||||
var_s1 = func_8000484C(D_84A03168, var_a1);
|
||||
|
||||
for (i = 0; i < var_s7; i++) {
|
||||
portrait_file_idx = (var_s1[i].gfx_file_idx >> 8) & 0xFF;
|
||||
D_84A03138[i].unk_00 = 1;
|
||||
D_84A03138[i].unk_02 = 0x280;
|
||||
D_84A03138[i].unk_08 = var_s1[i].name1;
|
||||
D_84A03138[i].unk_04 = func_8000484C(D_84A0316C, portrait_file_idx);
|
||||
}
|
||||
}
|
||||
|
||||
void func_84A02410(void) {
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < 4; i++) {
|
||||
D_84A03138[i].unk_00 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void func_84A02434(s16 arg0, s16 arg1, s16 arg2, s16 arg3) {
|
||||
s32 i;
|
||||
|
||||
while (arg2-- > 0) {
|
||||
for (i = arg0; i <= arg1; i++) {
|
||||
D_84A03138[i].unk_02 += arg3;
|
||||
}
|
||||
func_800290B4();
|
||||
func_84A01EE0();
|
||||
}
|
||||
}
|
||||
|
||||
s32 func_84A02580(void) {
|
||||
s16 i;
|
||||
s32 var_s1;
|
||||
s32 var_s1_2 = 0;
|
||||
|
||||
main_pool_push_state('itro');
|
||||
|
||||
func_84A02304();
|
||||
func_8000D278(8);
|
||||
|
||||
for (i = 3; i >= 0; i--) {
|
||||
D_84A030E8 = i << 6;
|
||||
func_800290B4();
|
||||
func_84A01EE0();
|
||||
}
|
||||
|
||||
func_8000D1F0(0x2B);
|
||||
if (D_84A030E0 == 0xB) {
|
||||
func_84A02434(0, 0, 6, -0x40);
|
||||
} else {
|
||||
func_84A02434(0, 3, 3, -0x40);
|
||||
func_84A02434(0, 2, 2, -0x40);
|
||||
func_84A02434(0, 1, 2, -0x40);
|
||||
func_84A02434(0, 0, 2, -0x40);
|
||||
}
|
||||
|
||||
while (var_s1_2 == 0) {
|
||||
func_800290B4();
|
||||
func_84A01EE0();
|
||||
if (BTN_IS_PRESSED(gPlayer1Controller, BTN_A)) {
|
||||
var_s1_2 = 1;
|
||||
} else if (BTN_IS_PRESSED(gPlayer1Controller, BTN_B)) {
|
||||
if (D_84A030E0 == 0xB) {
|
||||
var_s1_2 = 1;
|
||||
} else {
|
||||
var_s1_2 = 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (var_s1_2 == 1) {
|
||||
func_80048B90(0x1C);
|
||||
var_s1 = 0;
|
||||
if (D_84A030E0 == 0xB) {
|
||||
func_84A02434(0, 0, 6, -0x40);
|
||||
} else {
|
||||
func_84A02434(3, 3, 2, -0x40);
|
||||
func_84A02434(2, 3, 2, -0x40);
|
||||
func_84A02434(1, 3, 2, -0x40);
|
||||
func_84A02434(0, 3, 3, -0x40);
|
||||
}
|
||||
func_84A02410();
|
||||
func_84A01EE0();
|
||||
} else {
|
||||
func_80048B90(3);
|
||||
var_s1 = 2;
|
||||
func_8000D278(0x12);
|
||||
if (D_84A030E0 == 0xB) {
|
||||
func_84A02434(0, 0, 6, 0x40);
|
||||
} else {
|
||||
func_84A02434(0, 0, 2, 0x40);
|
||||
func_84A02434(0, 1, 2, 0x40);
|
||||
func_84A02434(0, 2, 2, 0x40);
|
||||
func_84A02434(0, 3, 3, 0x40);
|
||||
}
|
||||
func_84A02410();
|
||||
|
||||
if (D_84A03180.unk_04 < 8) {
|
||||
func_8000D1F0(0x2A);
|
||||
} else {
|
||||
func_8000D1F0(0x27);
|
||||
}
|
||||
|
||||
for (i = 1; i < 5; i++) {
|
||||
D_84A030E8 = (i << 6) - 1;
|
||||
func_800290B4();
|
||||
func_84A01EE0();
|
||||
}
|
||||
}
|
||||
|
||||
main_pool_pop_state('itro');
|
||||
|
||||
return var_s1;
|
||||
}
|
||||
|
||||
s32 func_84A02898(void) {
|
||||
s16 i;
|
||||
|
||||
if (D_800AE540.unk_0002 == 7) {
|
||||
func_8004DF94(0x01100015, 0, 0);
|
||||
D_84A030F0 = 5;
|
||||
}
|
||||
|
||||
for (i = 1; i < 5; i++) {
|
||||
D_84A030EC = i * 0x14;
|
||||
func_800290B4();
|
||||
func_84A01EE0();
|
||||
}
|
||||
|
||||
do {
|
||||
func_800290B4();
|
||||
func_84A01EE0();
|
||||
} while (!BTN_IS_PRESSED(gPlayer1Controller, BTN_A | BTN_B));
|
||||
|
||||
func_80048B90(0x01100011);
|
||||
|
||||
if (D_800AE540.unk_0002 == 8) {
|
||||
D_84A02F00[11].unk_01 = 0x3C;
|
||||
} else {
|
||||
D_84A02F00[D_84A03180.unk_04].unk_01 = 0x3C;
|
||||
}
|
||||
|
||||
if (D_84A03180.unk_04 == 8) {
|
||||
D_84A02F00[9].unk_01 = 0x3C;
|
||||
D_84A02F00[10].unk_01 = 0x3C;
|
||||
}
|
||||
|
||||
for (i = 3; i >= 0; i--) {
|
||||
D_84A030EC = i * 0x14;
|
||||
func_800290B4();
|
||||
func_84A01EE0();
|
||||
}
|
||||
|
||||
D_84A03188 = D_84A030E0;
|
||||
D_84A030E0 += 1;
|
||||
D_84A030E4 = 3;
|
||||
return 2;
|
||||
}
|
||||
|
||||
s16 func_84A02A34(s16 arg0) {
|
||||
s16 i;
|
||||
|
||||
if (func_80007604() == 1) {
|
||||
func_80006C6C(8);
|
||||
for (i = 0; i < 9; i++) {
|
||||
func_800290B4();
|
||||
func_84A01EE0();
|
||||
}
|
||||
}
|
||||
|
||||
while ((arg0 != 0) && (arg0 != 1)) {
|
||||
switch (arg0) {
|
||||
case 2:
|
||||
arg0 = func_84A0207C();
|
||||
break;
|
||||
|
||||
case 3:
|
||||
arg0 = func_84A02580();
|
||||
break;
|
||||
|
||||
case 4:
|
||||
arg0 = func_84A02898();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
D_800AE540.unk_0003 = 1;
|
||||
if (D_84A030E0 < 8) {
|
||||
D_800AE540.unk_0002 = D_84A030E0;
|
||||
} else {
|
||||
D_800AE540.unk_0002 = D_84A030E0 - 2;
|
||||
}
|
||||
return arg0;
|
||||
}
|
||||
|
||||
s16 func_84A02B70(s16 arg0) {
|
||||
s16 i;
|
||||
s16 sp2C = 2;
|
||||
s16 var_v1 = D_84A03180.unk_04;
|
||||
|
||||
if (D_800AE540.unk_0002 < 8) {
|
||||
D_84A030E0 = D_800AE540.unk_0002;
|
||||
} else {
|
||||
D_84A030E0 = D_800AE540.unk_0002 + 2;
|
||||
}
|
||||
|
||||
if (arg0 == 1) {
|
||||
sp2C = 4;
|
||||
if (D_800AE540.unk_0002 < 8) {
|
||||
var_v1--;
|
||||
}
|
||||
}
|
||||
|
||||
if (var_v1 >= 8) {
|
||||
D_84A030F0 = 0xFF;
|
||||
} else {
|
||||
D_84A030F0 = 0;
|
||||
}
|
||||
|
||||
for (i = 0; i <= var_v1; i++) {
|
||||
D_84A02F00[i].unk_01 = 1;
|
||||
}
|
||||
|
||||
if (D_84A02F00[8].unk_01 != 0) {
|
||||
D_84A02F00[9].unk_01 = 1;
|
||||
D_84A02F00[10].unk_01 = 1;
|
||||
}
|
||||
|
||||
for (i = 0; i < 4; i++) {
|
||||
D_84A03138[i].unk_00 = 0;
|
||||
}
|
||||
|
||||
for (i = 0; i < 8; i++) {
|
||||
D_84A02F00[i].unk_24 = func_8000484C(D_84A0316C, i + 2);
|
||||
}
|
||||
|
||||
D_84A02F00[10].unk_24 = D_300CC10;
|
||||
D_84A02F00[11].unk_24 = func_8000484C(D_84A0316C, 0xE);
|
||||
return sp2C;
|
||||
}
|
||||
|
||||
s32 func_84A02D14(s32 arg0, UNUSED s32 arg1) {
|
||||
s16 sp1E;
|
||||
|
||||
main_pool_push_state('PNLV');
|
||||
|
||||
func_8001E94C(0x3C, 0);
|
||||
ASSET_LOAD(D_1000000, common_menu1_ui, 0);
|
||||
ASSET_LOAD(D_3000000, gym_leader_castle_ui, 0);
|
||||
func_8002D510();
|
||||
D_84A03130 = func_8002D5AC(0x19);
|
||||
D_84A03134 = func_8002D5AC(0x22);
|
||||
func_80028AFC(2);
|
||||
func_80027FA0(&D_84A03180, D_800AE540.unk_11F2);
|
||||
D_84A03168 = func_800044F4(0x898000, NULL, 1, 1);
|
||||
D_84A0316C = ASSET_LOAD2(battle_portraits, 1, 1);
|
||||
D_84A03170 = ASSET_LOAD2(backgrounds, 1, 1);
|
||||
D_84A03174 = func_8000484C(D_84A03170, 0xD);
|
||||
D_84A03178 = func_8000484C(D_84A03170, 0x10);
|
||||
D_84A0317C = func_8000484C(D_84A03170, 0xE);
|
||||
func_80007754();
|
||||
|
||||
sp1E = func_84A02B70(arg0);
|
||||
if (D_84A03180.unk_04 < 8) {
|
||||
func_8000D1F0(0x2A);
|
||||
} else {
|
||||
func_8000D1F0(0x27);
|
||||
}
|
||||
|
||||
sp1E = func_84A02A34(sp1E);
|
||||
func_8000771C();
|
||||
func_8001E9CC();
|
||||
|
||||
main_pool_pop_state('PNLV');
|
||||
return sp1E == 0;
|
||||
}
|
||||
|
|
|
|||
61
src/fragments/65/fragment65.h
Normal file
61
src/fragments/65/fragment65.h
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
#ifndef _FRAGMENT65_H_
|
||||
#define _FRAGMENT65_H_
|
||||
|
||||
#include "global.h"
|
||||
|
||||
typedef struct unk_D_84A03138 {
|
||||
/* 0x00 */ u8 unk_00;
|
||||
/* 0x02 */ s16 unk_02;
|
||||
/* 0x04 */ s32 unk_04;
|
||||
/* 0x08 */ char* unk_08;
|
||||
} unk_D_84A03138; // size = 0xC
|
||||
|
||||
typedef struct unk_D_84A02F00 {
|
||||
/* 0x00 */ u8 unk_00;
|
||||
/* 0x01 */ u8 unk_01;
|
||||
/* 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 */ s8 unk_14;
|
||||
/* 0x15 */ s8 unk_15;
|
||||
/* 0x16 */ s8 unk_16;
|
||||
/* 0x17 */ s8 unk_17;
|
||||
/* 0x18 */ Color_RGBA8 unk_18;
|
||||
/* 0x1C */ u8* unk_1C;
|
||||
/* 0x20 */ s16 unk_20;
|
||||
/* 0x22 */ s16 unk_22;
|
||||
/* 0x24 */ u8* unk_24;
|
||||
} unk_D_84A02F00; // size = 0x28
|
||||
|
||||
void func_84A00020(u8* arg0, u8* arg1, u8 arg2);
|
||||
void func_84A003BC(s16 arg0, s16 arg1, s16 arg2, s16 arg3, s16 arg4, u8* arg5, f32 arg6);
|
||||
void func_84A00630(void);
|
||||
void func_84A00638(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u8* arg4, f32 arg5);
|
||||
void func_84A008A8(void);
|
||||
void func_84A00B44(void);
|
||||
void func_84A00E98(void);
|
||||
void func_84A00FEC(void);
|
||||
void func_84A012B8(void);
|
||||
void func_84A01424(unk_D_84A02F00* arg0, u8 arg1, u8 arg2);
|
||||
void func_84A01770(unk_D_84A02F00* arg0, u8 arg1, u8 arg2);
|
||||
void func_84A01BAC(void);
|
||||
void func_84A01DAC(void);
|
||||
void func_84A01EE0(void);
|
||||
s32 func_84A02074(void);
|
||||
s32 func_84A0207C(void);
|
||||
void func_84A02304(void);
|
||||
void func_84A02410(void);
|
||||
void func_84A02434(s16 arg0, s16 arg1, s16 arg2, s16 arg3);
|
||||
s32 func_84A02580(void);
|
||||
s32 func_84A02898(void);
|
||||
s16 func_84A02A34(s16 arg0);
|
||||
s16 func_84A02B70(s16 arg0);
|
||||
s32 func_84A02D14(s32 arg0, UNUSED s32 arg1);
|
||||
|
||||
#endif // _FRAGMENT65_H_
|
||||
|
|
@ -2305,10 +2305,10 @@
|
|||
subsegments:
|
||||
- [0x3B2AE0, textbin, fragments/65/fragment65_header]
|
||||
- [0x3B2B00, c, fragments/65/fragment65]
|
||||
- [0x3B59E0, data, fragments/65/fragment65_data]
|
||||
- [0x3B5BE0, rodata, fragments/65/fragment65_rodata]
|
||||
- [0x3B59E0, .data, fragments/65/fragment65]
|
||||
- [0x3B5BE0, .rodata, fragments/65/fragment65]
|
||||
|
||||
- {vram: 0x84A03130, type: bss, name: fragments/65/fragment65_bss}
|
||||
- {vram: 0x84A03130, type: .bss, name: fragments/65/fragment65}
|
||||
|
||||
- name: fragment65_relocs
|
||||
type: code
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user