through sub_8017CB0

This commit is contained in:
PikalaxALT 2019-03-29 15:50:04 -04:00
parent ae0e70d7bb
commit 8fc51b0459
4 changed files with 242 additions and 538 deletions

View File

@ -5,231 +5,6 @@
.text .text
thumb_func_start nullsub_14
nullsub_14: @ 8017B38
bx lr
thumb_func_end nullsub_14
thumb_func_start sub_8017B3C
sub_8017B3C: @ 8017B3C
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0xC
ldr r4, [sp, 0x28]
lsls r0, 24
lsrs r6, r0, 24
lsls r1, 24
lsrs r5, r1, 24
lsls r4, 24
lsrs r4, 24
ldrh r0, [r2, 0x8]
lsls r0, 22
lsrs r0, 22
mov r8, r0
ldrb r0, [r2, 0x9]
lsrs r7, r0, 2
ldrb r0, [r2, 0xB]
lsrs r0, 1
mov r9, r0
str r5, [sp]
str r4, [sp, 0x4]
adds r0, r6, 0
movs r1, 0x1
adds r2, r3, 0
movs r3, 0x8
bl sub_80173E0
movs r0, 0xCE
lsls r0, 1
cmp r8, r0
bne _08017B94
ldr r2, =gUnknown_082EF7D0
str r5, [sp]
str r4, [sp, 0x4]
adds r0, r6, 0
movs r1, 0x1
movs r3, 0x44
bl sub_80173E0
b _08017BD4
.pool
_08017B94:
adds r1, r7, 0x1
adds r0, r6, 0
movs r2, 0x44
adds r3, r5, 0
bl blit_move_info_icon
movs r0, 0xB
mov r2, r8
muls r2, r0
ldr r0, =gSpeciesNames
adds r2, r0
str r5, [sp]
str r4, [sp, 0x4]
adds r0, r6, 0
movs r1, 0x1
movs r3, 0x76
bl sub_80173E0
add r0, sp, 0x8
mov r1, r9
movs r2, 0x1
movs r3, 0x3
bl ConvertIntToDecimalStringN
str r5, [sp]
str r4, [sp, 0x4]
adds r0, r6, 0
movs r1, 0x1
add r2, sp, 0x8
movs r3, 0xC6
bl sub_80173E0
_08017BD4:
add sp, 0xC
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8017B3C
thumb_func_start sub_8017BE8
sub_8017BE8: @ 8017BE8
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x10
adds r4, r1, 0
lsls r0, 24
lsrs r0, 24
mov r9, r0
lsls r2, 24
lsrs r7, r2, 24
ldr r0, =gUnknown_02022C30
ldr r0, [r0]
mov r8, r0
movs r0, 0x3
negs r0, r0
cmp r4, r0
bne _08017C6C
ldr r0, =gUnknown_082F03A4
ldrb r0, [r0, 0x14]
lsls r0, 28
lsrs r0, 28
cmp r7, r0
bne _08017C6C
bl sub_800F7DC
adds r2, r0, 0
ldrh r1, [r2, 0x8]
ldr r0, =0x000003ff
ands r0, r1
cmp r0, 0
beq _08017CA0
ldr r0, =gSaveBlock2Ptr
ldr r3, [r0]
movs r0, 0x5
str r0, [sp]
mov r0, r9
adds r1, r7, 0
bl sub_8017B3C
b _08017CA0
.pool
_08017C4C:
mov r0, r12
adds r1, r0, r4
add r0, sp, 0x4
bl sub_8018404
mov r0, r8
ldr r2, [r0]
adds r2, r4
movs r0, 0x6
str r0, [sp]
mov r0, r9
adds r1, r7, 0
add r3, sp, 0x4
bl sub_8017B3C
b _08017CA0
_08017C6C:
movs r5, 0
movs r1, 0
mov r2, r8
ldr r2, [r2]
mov r12, r2
adds r2, 0x8
movs r3, 0
adds r6, r4, 0x1
_08017C7C:
ldrb r0, [r2, 0x12]
lsls r0, 30
lsrs r0, 30
adds r4, r3, 0
cmp r0, 0x1
bne _08017C92
ldrh r0, [r2]
lsls r0, 22
cmp r0, 0
beq _08017C92
adds r5, 0x1
_08017C92:
cmp r5, r6
beq _08017C4C
adds r2, 0x20
adds r3, 0x20
adds r1, 0x1
cmp r1, 0x7
ble _08017C7C
_08017CA0:
add sp, 0x10
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8017BE8
thumb_func_start sub_8017CB0
sub_8017CB0: @ 8017CB0
push {r4-r7,lr}
movs r4, 0
movs r3, 0
movs r7, 0x3
ldr r6, =0x000003ff
adds r2, r0, 0
adds r2, 0x8
adds r5, r1, 0x1
_08017CC0:
ldrb r1, [r2, 0x12]
adds r0, r7, 0
ands r0, r1
cmp r0, 0x1
bne _08017CD6
ldrh r1, [r2]
adds r0, r6, 0
ands r0, r1
cmp r0, 0
beq _08017CD6
adds r4, 0x1
_08017CD6:
cmp r4, r5
bne _08017CE4
adds r0, r3, 0
b _08017CF0
.pool
_08017CE4:
adds r2, 0x20
adds r3, 0x1
cmp r3, 0x7
ble _08017CC0
movs r0, 0x1
negs r0, r0
_08017CF0:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_8017CB0
thumb_func_start sub_8017CF8 thumb_func_start sub_8017CF8
sub_8017CF8: @ 8017CF8 sub_8017CF8: @ 8017CF8
lsls r0, 5 lsls r0, 5
@ -1124,6 +899,8 @@ sub_8018404: @ 8018404
bx r0 bx r0
thumb_func_end sub_8018404 thumb_func_end sub_8018404
@ file boundary?
thumb_func_start sub_8018424 thumb_func_start sub_8018424
sub_8018424: @ 8018424 sub_8018424: @ 8018424
push {lr} push {lr}

View File

@ -1,12 +1,158 @@
#ifndef GUARD_rom_8011DC0_H #ifndef GUARD_rom_8011DC0_H
#define GUARD_rom_8011DC0_H #define GUARD_rom_8011DC0_H
#include "librfu.h"
// Exported type declarations // Exported type declarations
struct UnkStruct_Shared
{
struct UnkLinkRfuStruct_02022B14 field_0;
u8 ALIGNED(4) playerName[PLAYER_NAME_LENGTH + 1];
};
struct UnkStruct_x1C
{
struct UnkStruct_Shared unk0;
u8 unk18:1;
};
struct UnkStruct_x20
{
struct UnkStruct_Shared unk;
u16 field_18;
u8 field_1A_0:2;
u8 field_1A_1:1;
u8 field_1B;
u8 field_1D;
u8 field_1E;
u8 field_1F;
};
struct UnkStruct_Main0
{
struct UnkStruct_x20 arr[8];
};
struct UnkStruct_Main4
{
struct UnkStruct_x1C arr[5];
};
struct UnkStruct_Main8
{
struct UnkStruct_x20 arr[5];
};
struct UnkStruct_Leader
{
struct UnkStruct_Main0 *field_0;
struct UnkStruct_Main4 *field_4;
struct UnkStruct_Main8 *field_8;
u8 state;
u8 textState;
u8 field_E;
u8 listWindowId;
u8 field_10;
u8 field_11;
u8 listTaskId;
u8 field_13;
u8 field_14;
u8 field_15;
u8 field_16;
u8 field_17;
u8 field_18;
u8 field_19;
u16 field_1A;
};
struct UnkStruct_Group
{
struct UnkStruct_Main0 *field_0;
struct UnkStruct_Main4 *field_4;
u8 state;
u8 textState;
u8 field_A;
u8 listWindowId;
u8 field_C;
u8 field_D;
u8 listTaskId;
u8 field_F;
u8 field_10;
u8 field_11;
u8 field_12;
u8 field_13;
u8 field_14;
u8 field_15;
};
struct UnkStruct_8019BA8
{
u8 field_0;
u8 field_1;
u8 field_2;
u8 field_3;
};
struct UnkStruct_URoom
{
struct UnkStruct_Main0 *field_0;
struct UnkStruct_Main4 *field_4;
struct UnkStruct_Main0 *field_8;
struct UnkStruct_Main4 *field_C;
u16 field_10;
u16 field_12;
u8 state;
u8 stateAfterPrint;
u8 textState;
u8 field_17;
u8 field_18;
u8 field_19;
u8 field_1A;
u8 field_1B;
u8 field_1C;
u8 field_1D;
u8 field_1E;
u8 field_1F;
u8 field_20;
u8 spriteIds[40];
u8 field_49;
u8 field_4A;
u16 field_4C[6];
u8 field_58[0x98 - 0x58];
u16 field_98;
u16 field_9A[3];
struct UnkStruct_8019BA8 field_A0[8];
};
union UnkUnion_Main
{
struct UnkStruct_Leader *leader;
struct UnkStruct_Group *group;
struct UnkStruct_URoom *uRoom;
};
struct TradeUnkStruct
{
u16 field_0;
u16 field_2;
u32 field_4;
u8 field_8;
u8 field_9;
u16 field_A;
u16 field_C;
u16 species;
u16 level;
u16 field_12;
u32 personality;
};
// Exported RAM declarations // Exported RAM declarations
extern u8 gUnknown_02022C2C; extern u8 gUnknown_02022C2C;
extern union UnkUnion_Main gUnknown_02022C30;
extern struct UnkLinkRfuStruct_02022B14Substruct gUnknown_02022C38; extern struct UnkLinkRfuStruct_02022B14Substruct gUnknown_02022C38;
extern u16 gUnknown_02022C3C; extern u16 gUnknown_02022C3C;
extern u8 gUnknown_02022C3E; extern u8 gUnknown_02022C3E;

View File

@ -39,160 +39,17 @@
#include "field_player_avatar.h" #include "field_player_avatar.h"
#include "strings.h" #include "strings.h"
#include "mevent.h" #include "mevent.h"
#include "rom_8011DC0.h"
struct UnkStruct_Shared EWRAM_DATA u8 gUnknown_02022C20[12] = {};
{ EWRAM_DATA u8 gUnknown_02022C2C = 0;
struct UnkLinkRfuStruct_02022B14 field_0; EWRAM_DATA u8 gUnknown_02022C2D = 0;
u8 needingPadding[2]; EWRAM_DATA union UnkUnion_Main gUnknown_02022C30 = {};
u8 playerName[PLAYER_NAME_LENGTH + 1]; EWRAM_DATA u32 gFiller_02022C34 = 0;
}; EWRAM_DATA struct UnkLinkRfuStruct_02022B14Substruct gUnknown_02022C38 = {};
EWRAM_DATA u16 gUnknown_02022C3C = 0;
struct UnkStruct_x1C EWRAM_DATA u8 gUnknown_02022C3E = 0;
{ EWRAM_DATA struct TradeUnkStruct gUnknown_02022C40 = {};
struct UnkStruct_Shared unk0;
u8 unk18:1;
};
struct UnkStruct_x20
{
struct UnkStruct_Shared unk;
u16 field_18;
u8 field_1A_0:2;
u8 field_1A_1:1;
u8 field_1B;
u8 field_1D;
u8 field_1E;
u8 field_1F;
};
struct UnkStruct_Main0
{
struct UnkStruct_x20 arr[8];
};
struct UnkStruct_Main4
{
struct UnkStruct_x1C arr[5];
};
struct UnkStruct_Main8
{
struct UnkStruct_x20 arr[5];
};
struct UnkStruct_Leader
{
struct UnkStruct_Main0 *field_0;
struct UnkStruct_Main4 *field_4;
struct UnkStruct_Main8 *field_8;
u8 state;
u8 textState;
u8 field_E;
u8 listWindowId;
u8 field_10;
u8 field_11;
u8 listTaskId;
u8 field_13;
u8 field_14;
u8 field_15;
u8 field_16;
u8 field_17;
u8 field_18;
u8 field_19;
u16 field_1A;
};
struct UnkStruct_Group
{
struct UnkStruct_Main0 *field_0;
struct UnkStruct_Main4 *field_4;
u8 state;
u8 textState;
u8 field_A;
u8 listWindowId;
u8 field_C;
u8 field_D;
u8 listTaskId;
u8 field_F;
u8 field_10;
u8 field_11;
u8 field_12;
u8 field_13;
u8 field_14;
u8 field_15;
};
struct UnkStruct_8019BA8
{
u8 field_0;
u8 field_1;
u8 field_2;
u8 field_3;
};
struct UnkStruct_URoom
{
struct UnkStruct_Main0 *field_0;
struct UnkStruct_Main4 *field_4;
struct UnkStruct_Main0 *field_8;
struct UnkStruct_Main4 *field_C;
u16 field_10;
u16 field_12;
u8 state;
u8 stateAfterPrint;
u8 textState;
u8 field_17;
u8 field_18;
u8 field_19;
u8 field_1A;
u8 field_1B;
u8 field_1C;
u8 field_1D;
u8 field_1E;
u8 field_1F;
u8 field_20;
u8 spriteIds[40];
u8 field_49;
u8 field_4A;
u16 field_4C[6];
u8 field_58[0x98 - 0x58];
u16 field_98;
u16 field_9A[3];
struct UnkStruct_8019BA8 field_A0[8];
};
union UnkUnion_Main
{
struct UnkStruct_Leader *leader;
struct UnkStruct_Group *group;
struct UnkStruct_URoom *uRoom;
};
struct TradeUnkStruct
{
u16 field_0;
u16 field_2;
u32 field_4;
u8 field_8;
u8 field_9;
u16 field_A;
u16 field_C;
u16 species;
u16 level;
u16 field_12;
u32 personality;
};
extern struct TradeUnkStruct gUnknown_02022C40;
extern struct UnkLinkRfuStruct_02022B14Substruct gUnknown_02022C38;
extern union UnkUnion_Main gUnknown_02022C30;
extern u8 gUnknown_02022C2C;
extern u8 gUnknown_02022C2D;
extern u8 gUnknown_02022C3E;
extern u16 gUnknown_02022C3C;
extern u8 gUnknown_02022C20[];
extern u8 gFieldLinkPlayerCount;
extern u8 gLocalLinkPlayerId;
// IWRAM vars // IWRAM vars
IWRAM_DATA struct UnkStruct_Leader *gUnknown_03000DA0; IWRAM_DATA struct UnkStruct_Leader *gUnknown_03000DA0;
@ -268,7 +125,7 @@ void sub_801818C(bool32 arg0);
void sub_801A3D0(u32 arg0, u32 arg1, struct UnkStruct_Main0 *arg2); void sub_801A3D0(u32 arg0, u32 arg1, struct UnkStruct_Main0 *arg2);
s32 sub_8017178(u8 *arg0, u8 *arg1, u8 *arg2, const struct WindowTemplate *winTemplate, const struct ListMenuTemplate *menuTemplate); s32 sub_8017178(u8 *arg0, u8 *arg1, u8 *arg2, const struct WindowTemplate *winTemplate, const struct ListMenuTemplate *menuTemplate);
s32 sub_80172A0(u8 *arg0, u8 *arg1, u8 *arg2, u8 *arg3, const struct WindowTemplate *winTemplate, const struct ListMenuTemplate *menuTemplate, struct UnkStruct_Main0 *arg6); s32 sub_80172A0(u8 *arg0, u8 *arg1, u8 *arg2, u8 *arg3, const struct WindowTemplate *winTemplate, const struct ListMenuTemplate *menuTemplate, struct UnkStruct_Main0 *arg6);
s32 sub_8017CB0(struct UnkStruct_Main0 * arg); s32 sub_8017CB0(struct UnkStruct_x20 * arg, s32 arg1);
bool32 sub_8018024(void); bool32 sub_8018024(void);
u32 sub_8017984(s32 arg0); u32 sub_8017984(s32 arg0);
void sub_8018220(u8 *unused, struct UnkStruct_URoom *arg1, bool8 arg2); void sub_8018220(u8 *unused, struct UnkStruct_URoom *arg1, bool8 arg2);
@ -1326,7 +1183,7 @@ const u8 gUnknown_082F0530[] = {
}; };
// code // code
void nullsub_89(void) void nullsub_89(u8 taskId)
{ {
} }
@ -4692,7 +4549,6 @@ s32 sub_8017178(u8 *arg0, u8 *arg1, u8 *arg2, const struct WindowTemplate *winTe
return -1; return -1;
} }
#ifdef NONMATCHING
s32 sub_80172A0(u8 *arg0, u8 *arg1, u8 *arg2, u8 *arg3, const struct WindowTemplate *winTemplate, const struct ListMenuTemplate *menuTemplate, struct UnkStruct_Main0 *arg6) s32 sub_80172A0(u8 *arg0, u8 *arg1, u8 *arg2, u8 *arg3, const struct WindowTemplate *winTemplate, const struct ListMenuTemplate *menuTemplate, struct UnkStruct_Main0 *arg6)
{ {
s32 input; s32 input;
@ -4728,7 +4584,7 @@ s32 sub_80172A0(u8 *arg0, u8 *arg1, u8 *arg2, u8 *arg3, const struct WindowTempl
} }
else else
{ {
r4 = sub_8017CB0(arg6); r4 = sub_8017CB0(arg6->arr, input);
if (r4 >= 0) if (r4 >= 0)
{ {
DestroyListMenuTask(*arg2, NULL, NULL); DestroyListMenuTask(*arg2, NULL, NULL);
@ -4748,138 +4604,6 @@ s32 sub_80172A0(u8 *arg0, u8 *arg1, u8 *arg2, u8 *arg3, const struct WindowTempl
return -1; return -1;
} }
#else
NAKED
s32 sub_80172A0(u8 *arg0, u8 *arg1, u8 *arg2, u8 *arg3, const struct WindowTemplate *winTemplate, const struct ListMenuTemplate *menuTemplate, struct UnkStruct_Main0 *arg6)
{
asm_unified("\tpush {r4-r7,lr}\n"
"\tmov r7, r10\n"
"\tmov r6, r9\n"
"\tmov r5, r8\n"
"\tpush {r5-r7}\n"
"\tadds r5, r0, 0\n"
"\tadds r6, r1, 0\n"
"\tmov r10, r2\n"
"\tmov r9, r3\n"
"\tldrb r4, [r5]\n"
"\tcmp r4, 0x1\n"
"\tbeq _0801730C\n"
"\tcmp r4, 0x1\n"
"\tbgt _080172C2\n"
"\tcmp r4, 0\n"
"\tbeq _080172C8\n"
"\tb _0801739C\n"
"_080172C2:\n"
"\tcmp r4, 0x2\n"
"\tbeq _0801731C\n"
"\tb _0801739C\n"
"_080172C8:\n"
"\tldr r0, =gUnknown_082F0344\n"
"\tbl sub_8017118\n"
"\tmov r1, r9\n"
"\tstrb r0, [r1]\n"
"\tldr r0, [sp, 0x20]\n"
"\tbl AddWindow\n"
"\tstrb r0, [r6]\n"
"\tldrb r0, [r6]\n"
"\tmovs r1, 0\n"
"\tbl DrawStdWindowFrame\n"
"\tldr r0, =gMultiuseListMenuTemplate\n"
"\tadds r2, r0, 0\n"
"\tldr r1, [sp, 0x24]\n"
"\tldm r1!, {r3,r4,r7}\n"
"\tstm r2!, {r3,r4,r7}\n"
"\tldm r1!, {r3,r4,r7}\n"
"\tstm r2!, {r3,r4,r7}\n"
"\tldrb r1, [r6]\n"
"\tstrb r1, [r0, 0x10]\n"
"\tmovs r1, 0\n"
"\tmovs r2, 0x1\n"
"\tbl ListMenuInit\n"
"\tmov r1, r10\n"
"\tstrb r0, [r1]\n"
"\tb _08017314\n"
"\t.pool\n"
"_0801730C:\n"
"\tldrb r0, [r6]\n"
"\tmovs r1, 0x1\n"
"\tbl CopyWindowToVram\n"
"_08017314:\n"
"\tldrb r0, [r5]\n"
"\tadds r0, 0x1\n"
"\tstrb r0, [r5]\n"
"\tb _0801739C\n"
"_0801731C:\n"
"\tmov r3, r10\n"
"\tldrb r0, [r3]\n"
"\tbl ListMenu_ProcessInput\n"
"\tadds r1, r0, 0\n"
"\tldr r0, =gMain\n"
"\tldrh r2, [r0, 0x2E]\n"
"\tmovs r0, 0x3\n"
"\tands r0, r2\n"
"\tcmp r0, 0\n"
"\tbeq _0801739C\n"
"\tcmp r1, 0x8\n"
"\tbeq _0801733E\n"
"\tands r4, r2\n"
"\tmov r8, r4\n"
"\tcmp r4, 0\n"
"\tbeq _08017368\n"
"_0801733E:\n"
"\tmov r4, r10\n"
"\tldrb r0, [r4]\n"
"\tmovs r1, 0\n"
"\tmovs r2, 0\n"
"\tbl DestroyListMenuTask\n"
"\tldrb r0, [r6]\n"
"\tbl RemoveWindow\n"
"\tmov r7, r9\n"
"\tldrb r0, [r7]\n"
"\tbl sub_8017168\n"
"\tmovs r0, 0\n"
"\tstrb r0, [r5]\n"
"\tmovs r0, 0x2\n"
"\tnegs r0, r0\n"
"\tb _080173A0\n"
"\t.pool\n"
"_08017368:\n"
"\tldr r0, [sp, 0x28]\n"
"\tbl sub_8017CB0\n"
"\tadds r4, r0, 0\n"
"\tcmp r4, 0\n"
"\tblt _08017396\n"
"\tmov r1, r10\n"
"\tldrb r0, [r1]\n"
"\tmovs r1, 0\n"
"\tmovs r2, 0\n"
"\tbl DestroyListMenuTask\n"
"\tldrb r0, [r6]\n"
"\tbl RemoveWindow\n"
"\tmov r3, r9\n"
"\tldrb r0, [r3]\n"
"\tbl sub_8017168\n"
"\tmov r7, r8\n"
"\tstrb r7, [r5]\n"
"\tadds r0, r4, 0\n"
"\tb _080173A0\n"
"_08017396:\n"
"\tmovs r0, 0x7\n"
"\tbl PlaySE\n"
"_0801739C:\n"
"\tmovs r0, 0x1\n"
"\tnegs r0, r0\n"
"_080173A0:\n"
"\tpop {r3-r5}\n"
"\tmov r8, r3\n"
"\tmov r9, r4\n"
"\tmov r10, r5\n"
"\tpop {r4-r7}\n"
"\tpop {r1}\n"
"\tbx r1");
}
#endif
void sub_80173B0(void) void sub_80173B0(void)
{ {
FillBgTilemapBufferRect(0, 0, 0, 0, 32, 32, 0); FillBgTilemapBufferRect(0, 0, 0, 0, 32, 32, 0);
@ -5212,3 +4936,83 @@ s32 sub_80179D4(struct UnkStruct_Main0 *arg0, u8 arg1, u8 arg2, u32 playerGender
return 0; return 0;
} }
} }
void nullsub_14(u8 windowId, s32 itemId, u8 y)
{
}
void sub_8017B3C(u8 arg0, u8 arg1, struct UnkLinkRfuStruct_02022B14 * arg2, const u8 * str, u8 arg4)
{
u8 sp8[4];
u16 r8 = arg2->species;
u8 r7 = arg2->type;
u8 r9 = arg2->unk_0b_1;
sub_80173E0(arg0, 1, str, 8, arg1, arg4);
if (r8 == SPECIES_EGG)
{
sub_80173E0(arg0, 1, gUnknown_082EF7D0, 0x44, arg1, arg4);
}
else
{
blit_move_info_icon(arg0, r7 + 1, 0x44, arg1);
sub_80173E0(arg0, 1, gSpeciesNames[r8], 0x76, arg1, arg4);
ConvertIntToDecimalStringN(sp8, r9, STR_CONV_MODE_RIGHT_ALIGN, 3);
sub_80173E0(arg0, 1, sp8, 0xC6, arg1, arg4);
}
}
void sub_8017BE8(u8 windowId, s32 itemId, u8 y)
{
struct UnkStruct_Leader *leader = gUnknown_02022C30.leader;
struct UnkLinkRfuStruct_02022B14 *rfu;
s32 i, j;
u8 sp4[11];
if (itemId == -3 && y == gUnknown_082F03A4.upText_Y)
{
rfu = sub_800F7DC();
if (rfu->species != SPECIES_NONE)
{
sub_8017B3C(windowId, y, rfu, gSaveBlock2Ptr->playerName, 5);
}
}
else
{
j = 0;
for (i = 0; i < 8; i++)
{
if (leader->field_0->arr[i].field_1A_0 == 1 && leader->field_0->arr[i].unk.field_0.species != SPECIES_NONE)
{
j++;
}
if (j == itemId + 1)
{
sub_8018404(sp4, &leader->field_0->arr[i]);
sub_8017B3C(windowId, y, &leader->field_0->arr[i].unk.field_0, sp4, 6);
break;
}
}
}
}
s32 sub_8017CB0(struct UnkStruct_x20 * arg, s32 arg1)
{
s32 i;
s32 j = 0;
for (i = 0; i < 8; i++)
{
if (arg[i].field_1A_0 == 1 && arg[i].unk.field_0.species != SPECIES_NONE)
{
j++;
}
if (j == arg1 + 1)
{
return i;
}
}
return -1;
}

View File

@ -6,30 +6,7 @@
.include "src/string_util.o" .include "src/string_util.o"
.include "src/link.o" .include "src/link.o"
.include "src/link_rfu.o" .include "src/link_rfu.o"
.include "src/union_room.o"
gUnknown_02022C20: @ 2022C20
.space 0xC
gUnknown_02022C2C: @ 2022C2C
.space 0x1
gUnknown_02022C2D: @ 2022C2D
.space 0x3
gUnknown_02022C30: @ 2022C30
.space 0x8
gUnknown_02022C38: @ 2022C38
.space 0x4
gUnknown_02022C3C: @ 2022C3C
.space 0x2
gUnknown_02022C3E: @ 2022C3E
.space 0x2
gUnknown_02022C40: @ 2022C40
.space 0x18
gUnknown_02022C58: @ 2022C58 gUnknown_02022C58: @ 2022C58
.space 0x8 .space 0x8