mirror of
https://github.com/pret/pmd-red.git
synced 2026-09-27 05:55:27 -04:00
sub_808D750 sub_808D3BC sub_808D3F8
This commit is contained in:
+40
-129
@@ -372,38 +372,30 @@ PokemonStruct1 * sub_808D378(void)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// NOTE: couldn't match with macros..
|
||||
// https://decomp.me/scratch/Qorg0
|
||||
PokemonStruct1 * sub_808D3BC(void)
|
||||
{
|
||||
PokemonStruct1 *pokeStruct;
|
||||
s32 index;
|
||||
|
||||
for(index = 0; index < NUM_MONSTERS; index++)
|
||||
{
|
||||
pokeStruct = &gRecruitedPokemonRef->pokemon[index];
|
||||
if(((*(u8 *)&pokeStruct->unk0 & FLAG_UNK_1) && (pokeStruct->dungeonLocation.id == DUNGEON_JOIN_LOCATION_LEADER))) {
|
||||
return pokeStruct;
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
s32 index;
|
||||
for (index = 0; index < NUM_MONSTERS; index++) {
|
||||
if (PokemonFlag1(&gRecruitedPokemonRef->pokemon[index])
|
||||
&& (gRecruitedPokemonRef->pokemon[index].dungeonLocation.id == DUNGEON_JOIN_LOCATION_LEADER))
|
||||
{
|
||||
return &gRecruitedPokemonRef->pokemon[index];
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// NOTE: couldn't match with macros..
|
||||
// https://decomp.me/scratch/jCa3V
|
||||
PokemonStruct1 * sub_808D3F8(void)
|
||||
{
|
||||
PokemonStruct1 *pokeStruct;
|
||||
s32 index;
|
||||
|
||||
for(index = 0; index < NUM_MONSTERS; index++)
|
||||
{
|
||||
pokeStruct = &gRecruitedPokemonRef->pokemon[index];
|
||||
if(((*(u8 *)&pokeStruct->unk0 & FLAG_UNK_1) && (pokeStruct->dungeonLocation.id == DUNGEON_JOIN_LOCATION_PARTNER))) {
|
||||
s32 index;
|
||||
for (index = 0; index < NUM_MONSTERS; index++) {
|
||||
if (PokemonFlag1(&gRecruitedPokemonRef->pokemon[index])
|
||||
&& (gRecruitedPokemonRef->pokemon[index].dungeonLocation.id == DUNGEON_JOIN_LOCATION_PARTNER))
|
||||
{
|
||||
return &gRecruitedPokemonRef->pokemon[index];
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
PokemonStruct1 * sub_808D434(s16 species, s32 param_2)
|
||||
@@ -598,113 +590,32 @@ bool8 sub_808D6E8()
|
||||
return 0;
|
||||
}
|
||||
|
||||
// this one is surprisingly frustrating
|
||||
// https://decomp.me/scratch/OIMII - (99.24% matching - Seth)
|
||||
NAKED
|
||||
bool8 sub_808D750(s16 index_) {
|
||||
asm_unified(
|
||||
"\tpush {r4-r7,lr}\n"
|
||||
"\tmov r7, r9\n"
|
||||
"\tmov r6, r8\n"
|
||||
"\tpush {r6,r7}\n"
|
||||
"\tlsls r0, 16\n"
|
||||
"\tasrs r0, 16\n"
|
||||
"\tmov r8, r0\n"
|
||||
"\tmovs r6, 0\n"
|
||||
"\tmovs r5, 0\n"
|
||||
"\tmovs r4, 0\n"
|
||||
"\tldr r0, _0808D7C8\n"
|
||||
"\tmov r9, r0\n"
|
||||
"\tmovs r7, 0x1\n"
|
||||
"_0808D76A:\n"
|
||||
"\tmovs r0, 0x58\n"
|
||||
"\tadds r1, r4, 0\n"
|
||||
"\tmuls r1, r0\n"
|
||||
"\tmov r2, r9\n"
|
||||
"\tldr r0, [r2]\n"
|
||||
"\tadds r1, r0, r1\n"
|
||||
"\tldrh r2, [r1]\n"
|
||||
"\tadds r0, r7, 0\n"
|
||||
"\tands r0, r2\n"
|
||||
"\tcmp r0, 0\n"
|
||||
"\tbeq _0808D798\n"
|
||||
"\tlsrs r0, r2, 1\n"
|
||||
"\tands r0, r7\n"
|
||||
"\tcmp r0, 0\n"
|
||||
"\tbeq _0808D798\n"
|
||||
"\tmovs r2, 0x8\n"
|
||||
"\tldrsh r0, [r1, r2]\n"
|
||||
"\tbl GetBodySize\n"
|
||||
"\tlsls r0, 24\n"
|
||||
"\tlsrs r0, 24\n"
|
||||
"\tadds r5, r0\n"
|
||||
"\tadds r6, 0x1\n"
|
||||
"_0808D798:\n"
|
||||
"\tadds r4, 0x1\n"
|
||||
"\tmovs r0, 0xCE\n"
|
||||
"\tlsls r0, 1\n"
|
||||
"\tcmp r4, r0\n"
|
||||
"\tble _0808D76A\n"
|
||||
"\tcmp r6, 0x3\n"
|
||||
"\tbgt _0808D7CC\n"
|
||||
"\tldr r2, _0808D7C8\n"
|
||||
"\tmovs r0, 0x58\n"
|
||||
"\tmov r1, r8\n"
|
||||
"\tmuls r1, r0\n"
|
||||
"\tldr r0, [r2]\n"
|
||||
"\tadds r1, r0, r1\n"
|
||||
"\tmovs r2, 0x8\n"
|
||||
"\tldrsh r0, [r1, r2]\n"
|
||||
"\tbl GetBodySize\n"
|
||||
"\tlsls r0, 24\n"
|
||||
"\tlsrs r0, 24\n"
|
||||
"\tadds r5, r0\n"
|
||||
"\tcmp r5, 0x6\n"
|
||||
"\tbgt _0808D7CC\n"
|
||||
"\tmovs r0, 0x1\n"
|
||||
"\tb _0808D7CE\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_0808D7C8: .4byte gRecruitedPokemonRef\n"
|
||||
"_0808D7CC:\n"
|
||||
"\tmovs r0, 0\n"
|
||||
"_0808D7CE:\n"
|
||||
"\tpop {r3,r4}\n"
|
||||
"\tmov r8, r3\n"
|
||||
"\tmov r9, r4\n"
|
||||
"\tpop {r4-r7}\n"
|
||||
"\tpop {r1}\n"
|
||||
"\tbx r1\n"
|
||||
);
|
||||
}
|
||||
bool8 sub_808D750(s32 index_)
|
||||
{
|
||||
PokemonStruct1* pokemon;
|
||||
s32 i;
|
||||
s32 index = (s16) index_;
|
||||
s32 count = 0;
|
||||
s32 size_count = 0;
|
||||
|
||||
// bool8 sub_808D750(s16 index_) {
|
||||
// s32 i;
|
||||
// register s32 index asm("r8") = index_;
|
||||
// s32 count = 0;
|
||||
// s32 size_count = 0;
|
||||
for (i = 0; i < 413; i++) {
|
||||
pokemon = &gRecruitedPokemonRef->pokemon[i];
|
||||
if (PokemonFlag1(pokemon) && PokemonFlag2(pokemon)) {
|
||||
size_count += GetBodySize(pokemon->speciesNum);
|
||||
count++;
|
||||
}
|
||||
}
|
||||
|
||||
// for (i = 0; i < 413; i++) {
|
||||
// register PokemonStruct1* pokemon = &i[gRecruitedPokemonRef->pokemon];
|
||||
// register u16 unk0 = pokemon->unk0;
|
||||
// if ((unk0 & 1) && ((pokemon->unk0 >> 1) & 1)) {
|
||||
// size_count += GetBodySize(pokemon->speciesNum);
|
||||
// count++;
|
||||
// }
|
||||
// }
|
||||
|
||||
// if (count < 4) {
|
||||
// PokemonStruct1* pokemon;
|
||||
|
||||
// pokemon = &gRecruitedPokemonRef->pokemon[index];
|
||||
|
||||
// size_count += GetBodySize(pokemon->speciesNum);
|
||||
// if (size_count < 7) {
|
||||
// return TRUE;
|
||||
// }
|
||||
// }
|
||||
// return FALSE;
|
||||
// }
|
||||
if (count < 4) {
|
||||
pokemon = &gRecruitedPokemonRef->pokemon[index];
|
||||
size_count += GetBodySize(pokemon->speciesNum);
|
||||
if (size_count < 7) {
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void PeekPokemonItem(s16 index_, BulkItem* item) {
|
||||
s32 index = index_;
|
||||
|
||||
Reference in New Issue
Block a user