mirror of
https://github.com/pret/pmd-red.git
synced 2026-08-26 10:44:40 -05:00
start code 8023868
This commit is contained in:
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user