start code 8023868

This commit is contained in:
DizzyEggg
2025-05-12 09:34:15 +02:00
parent e01864639c
commit 4ef1c57fb9
3 changed files with 89 additions and 283 deletions

View File

@@ -910,281 +910,5 @@ _08023F84: .4byte 0x00000372
_08023F88: .4byte gUnknown_3001B60
thumb_func_end sub_8023DA4
thumb_func_start sub_8023F8C
sub_8023F8C:
push {r4-r7,lr}
ldr r2, _08023FD0
ldr r1, [r2]
movs r0, 0
str r0, [r1, 0x8]
ldrb r0, [r1, 0x15]
adds r6, r2, 0
cmp r0, 0
bne _08023FE2
movs r4, 0
ldr r2, _08023FD4
_08023FA2:
movs r0, 0x58
adds r1, r4, 0
muls r1, r0
ldr r0, [r2]
adds r1, r0, r1
ldrb r0, [r1, 0x2]
cmp r0, 0
beq _08023FD8
ldrb r1, [r1]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08023FD8
ldr r3, [r6]
ldr r1, [r3, 0x8]
lsls r2, r1, 1
adds r0, r3, 0
adds r0, 0x1A
adds r0, r2
strh r4, [r0]
adds r1, 0x1
str r1, [r3, 0x8]
b _08023FE2
.align 2, 0
_08023FD0: .4byte gUnknown_3001B60
_08023FD4: .4byte gRecruitedPokemonRef
_08023FD8:
adds r4, 0x1
movs r0, 0xCE
lsls r0, 1
cmp r4, r0
ble _08023FA2
_08023FE2:
ldr r0, [r6]
ldrb r0, [r0, 0x16]
cmp r0, 0
bne _08024042
movs r4, 0
ldr r3, _08024034
_08023FEE:
movs r0, 0x58
adds r1, r4, 0
muls r1, r0
ldr r0, [r3]
adds r1, r0, r1
movs r2, 0
ldrb r0, [r1, 0x4]
cmp r0, 0x41
bne _08024002
movs r2, 0x1
_08024002:
cmp r2, 0
beq _08024038
ldrb r0, [r1, 0x2]
cmp r0, 0
bne _08024038
ldrh r1, [r1]
lsrs r0, r1, 1
movs r2, 0x1
ands r0, r2
cmp r0, 0
beq _08024038
adds r0, r2, 0
ands r0, r1
cmp r0, 0
beq _08024038
ldr r3, [r6]
ldr r1, [r3, 0x8]
lsls r2, r1, 1
adds r0, r3, 0
adds r0, 0x1A
adds r0, r2
strh r4, [r0]
adds r1, 0x1
str r1, [r3, 0x8]
b _08024042
.align 2, 0
_08024034: .4byte gRecruitedPokemonRef
_08024038:
adds r4, 0x1
movs r0, 0xCE
lsls r0, 1
cmp r4, r0
ble _08023FEE
_08024042:
ldr r0, [r6]
ldr r1, [r0, 0x8]
str r1, [r0, 0xC]
ldrb r0, [r0, 0x17]
cmp r0, 0
bne _080240A4
movs r4, 0
ldr r7, _08024100
movs r5, 0x1
_08024054:
movs r0, 0x58
adds r1, r4, 0
muls r1, r0
ldr r0, [r7]
adds r1, r0, r1
ldrh r2, [r1]
lsrs r0, r2, 1
ands r0, r5
cmp r0, 0
beq _0802409A
adds r0, r5, 0
ands r0, r2
cmp r0, 0
beq _0802409A
ldrb r0, [r1, 0x2]
cmp r0, 0
bne _0802409A
movs r2, 0
ldrb r0, [r1, 0x4]
cmp r0, 0x41
bne _08024080
movs r2, 0x1
_08024080:
cmp r2, 0
bne _0802409A
ldr r3, [r6]
ldr r1, [r3, 0x8]
lsls r2, r1, 1
adds r0, r3, 0
adds r0, 0x1A
adds r0, r2
strh r4, [r0]
adds r1, 0x1
str r1, [r3, 0x8]
cmp r1, 0x3
bgt _080240A4
_0802409A:
adds r4, 0x1
movs r0, 0xCE
lsls r0, 1
cmp r4, r0
ble _08024054
_080240A4:
ldr r0, [r6]
ldr r1, [r0, 0x8]
str r1, [r0, 0x10]
ldrb r0, [r0, 0x14]
cmp r0, 0
bne _080240EE
movs r4, 0
ldr r7, _08024100
movs r5, 0x1
_080240B6:
movs r0, 0x58
adds r1, r4, 0
muls r1, r0
ldr r0, [r7]
adds r1, r0, r1
ldrh r1, [r1]
adds r0, r5, 0
ands r0, r1
cmp r0, 0
beq _080240E4
lsrs r0, r1, 1
ands r0, r5
cmp r0, 0
bne _080240E4
ldr r3, [r6]
ldr r1, [r3, 0x8]
lsls r2, r1, 1
adds r0, r3, 0
adds r0, 0x1A
adds r0, r2
strh r4, [r0]
adds r1, 0x1
str r1, [r3, 0x8]
_080240E4:
adds r4, 0x1
movs r0, 0xCE
lsls r0, 1
cmp r4, r0
ble _080240B6
_080240EE:
bl sub_80241A8
ldr r0, _08024104
ldr r0, [r0]
ldr r0, [r0, 0x8]
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08024100: .4byte gRecruitedPokemonRef
_08024104: .4byte gUnknown_3001B60
thumb_func_end sub_8023F8C
thumb_func_start sub_8024108
sub_8024108:
push {r4-r7,lr}
adds r5, r0, 0
movs r7, 0
movs r6, 0x1
_08024110:
ldr r2, _08024134
movs r0, 0x58
adds r1, r7, 0
muls r1, r0
ldr r0, [r2]
adds r4, r0, r1
ldrh r1, [r4]
adds r0, r6, 0
ands r0, r1
cmp r0, 0
beq _08024172
cmp r5, 0x2
bne _08024138
lsrs r0, r1, 1
ands r0, r6
cmp r0, 0
beq _08024172
b _0802416E
.align 2, 0
_08024134: .4byte gRecruitedPokemonRef
_08024138:
cmp r5, 0x3
bne _08024140
lsrs r0, r1, 1
b _08024168
_08024140:
cmp r5, 0x4
bne _0802416E
ldrb r0, [r4, 0x2]
cmp r0, 0
bne _08024172
movs r0, 0x9
bl sub_80023E4
lsls r0, 24
cmp r0, 0
bne _0802416E
movs r1, 0
ldrb r0, [r4, 0x4]
cmp r0, 0x41
bne _08024160
movs r1, 0x1
_08024160:
cmp r1, 0
beq _0802416E
ldrh r0, [r4]
lsrs r0, 1
_08024168:
ands r0, r6
cmp r0, 0
bne _08024172
_0802416E:
movs r0, 0
b _0802417E
_08024172:
adds r7, 0x1
movs r0, 0xCE
lsls r0, 1
cmp r7, r0
ble _08024110
movs r0, 0x1
_0802417E:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_8024108
.align 2,0

View File

@@ -5,13 +5,15 @@ struct unkStruct_3001B60
{
u32 unk0;
u32 sortMethod;
u32 unk8;
s32 unk8;
u32 unkC;
u32 unk10;
u8 fill14[0x18 - 0x14];
u8 unk14;
u8 unk15;
u8 unk16;
u8 unk17;
s16 unk18;
s16 unk1A[2];
u8 fill1C[0x370 - 0x1E];
s16 unk1A[427];
s16 unk370;
s16 unk372;
s16 unk374;
@@ -25,6 +27,6 @@ extern s16 sub_8023B44(void);
extern void sub_8023B7C(u32);
extern void sub_8023C60(void);
extern void sub_8023DA4(void);
extern bool8 sub_8024108(u32);
extern bool8 sub_8024108(s32);
#endif // GUARD_CODE_8023868_H
#endif // GUARD_CODE_8023868_H

View File

@@ -5,6 +5,7 @@
#include "pokemon.h"
#include "structs/str_text.h"
#include "text_util.h"
#include "event_flag.h"
//static // MAKE STATIC WHEN code_8023868.s IS DONE
IWRAM_INIT struct unkStruct_3001B60 *gUnknown_3001B60 = {NULL};
@@ -16,10 +17,89 @@ static void SortbyInternalNo(s32, s32);
static void SortbyName(s32, s32);
//static bool8 sub_8024184(PokemonStruct1 *pokemon, u8 area);
//static void sub_80241A8(void);
void sub_80241A8(void);
// THE REMAINING CODE FROM THIS FILE IS IN code_8023868.s STARTING WITH sub_8023868
s32 sub_8023F8C(void)
{
s32 i;
PokemonStruct1 *pokeStruct;
gUnknown_3001B60->unk8 = 0;
if (!gUnknown_3001B60->unk15) {
for (i = 0; i < NUM_MONSTERS; i++) {
pokeStruct = &gRecruitedPokemonRef->pokemon[i];
if (pokeStruct->isTeamLeader && PokemonFlag1(pokeStruct)) {
gUnknown_3001B60->unk1A[gUnknown_3001B60->unk8++] = i;
break;
}
}
}
if (!gUnknown_3001B60->unk16) {
for (i = 0; i < NUM_MONSTERS; i++) {
pokeStruct = &gRecruitedPokemonRef->pokemon[i];
if (IsMonPartner(pokeStruct) && !pokeStruct->isTeamLeader && PokemonFlag2(pokeStruct) && PokemonFlag1(pokeStruct)) {
gUnknown_3001B60->unk1A[gUnknown_3001B60->unk8++] = i;
break;
}
}
}
gUnknown_3001B60->unkC = gUnknown_3001B60->unk8;
if (!gUnknown_3001B60->unk17) {
for (i = 0; i < NUM_MONSTERS; i++) {
pokeStruct = &gRecruitedPokemonRef->pokemon[i];
if (PokemonFlag2(pokeStruct) && PokemonFlag1(pokeStruct) && !pokeStruct->isTeamLeader && !IsMonPartner(pokeStruct)) {
gUnknown_3001B60->unk1A[gUnknown_3001B60->unk8++] = i;
if (gUnknown_3001B60->unk8 >= 4) {
break;
}
}
}
}
gUnknown_3001B60->unk10 = gUnknown_3001B60->unk8;
if (!gUnknown_3001B60->unk14) {
for (i = 0; i < NUM_MONSTERS; i++) {
pokeStruct = &gRecruitedPokemonRef->pokemon[i];
if (PokemonFlag1(pokeStruct) && !PokemonFlag2(&gRecruitedPokemonRef->pokemon[i])) {
gUnknown_3001B60->unk1A[gUnknown_3001B60->unk8++] = i;
}
}
}
sub_80241A8();
return gUnknown_3001B60->unk8;
}
bool8 sub_8024108(s32 param_1)
{
s32 i;
for (i = 0; i < NUM_MONSTERS; i++) {
PokemonStruct1 *pokeStruct = &gRecruitedPokemonRef->pokemon[i];
if (PokemonFlag1(pokeStruct)) {
if (param_1 == 2) {
if (!PokemonFlag2(pokeStruct)) continue;
}
else if (param_1 == 3) {
if (PokemonFlag2(pokeStruct)) continue;
}
else if (param_1 == 4) {
if (pokeStruct->isTeamLeader) continue;
if (!sub_80023E4(9)) {
if (!IsMonPartner(pokeStruct)) return FALSE;
if (PokemonFlag2(pokeStruct)) continue;
}
}
return FALSE;
}
}
return TRUE;
}
//static // MAKE STATIC WHEN code_8023868.s IS DONE
bool8 sub_8024184(PokemonStruct1 *pokemon, u8 area)
{