mirror of
https://github.com/pret/pmd-red.git
synced 2026-08-28 03:34:22 -05:00
thanks to @DizzyEggg for matching the two funcs
This commit is contained in:
@@ -1,90 +0,0 @@
|
||||
#include "asm/constants/gba_constants.inc"
|
||||
#include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_803B628
|
||||
sub_803B628:
|
||||
push {r4,r5,lr}
|
||||
adds r4, r0, 0
|
||||
ldr r2, _0803B654
|
||||
movs r3, 0
|
||||
_0803B630:
|
||||
ldr r1, [r2]
|
||||
ldr r0, [r4, 0xC]
|
||||
cmp r1, r0
|
||||
beq _0803B650
|
||||
movs r0, 0x2
|
||||
ldrsh r1, [r2, r0]
|
||||
movs r5, 0xC
|
||||
ldrsh r0, [r4, r5]
|
||||
cmp r1, r0
|
||||
bne _0803B658
|
||||
movs r0, 0
|
||||
ldrsh r1, [r2, r0]
|
||||
movs r5, 0xE
|
||||
ldrsh r0, [r4, r5]
|
||||
cmp r1, r0
|
||||
bne _0803B658
|
||||
_0803B650:
|
||||
adds r0, r3, 0
|
||||
b _0803B664
|
||||
.align 2, 0
|
||||
_0803B654: .4byte gUnknown_80E9F8C
|
||||
_0803B658:
|
||||
adds r2, 0xC
|
||||
adds r3, 0x1
|
||||
cmp r3, 0x2C
|
||||
ble _0803B630
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
_0803B664:
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_803B628
|
||||
|
||||
thumb_func_start sub_803B66C
|
||||
sub_803B66C:
|
||||
push {r4,r5,lr}
|
||||
adds r4, r0, 0
|
||||
ldr r2, _0803B698
|
||||
movs r3, 0
|
||||
_0803B674:
|
||||
ldr r1, [r2]
|
||||
ldr r0, [r4, 0xC]
|
||||
cmp r1, r0
|
||||
beq _0803B694
|
||||
movs r0, 0x2
|
||||
ldrsh r1, [r2, r0]
|
||||
movs r5, 0xC
|
||||
ldrsh r0, [r4, r5]
|
||||
cmp r1, r0
|
||||
bne _0803B69C
|
||||
movs r0, 0
|
||||
ldrsh r1, [r2, r0]
|
||||
movs r5, 0xE
|
||||
ldrsh r0, [r4, r5]
|
||||
cmp r1, r0
|
||||
bne _0803B69C
|
||||
_0803B694:
|
||||
adds r0, r3, 0
|
||||
b _0803B6A8
|
||||
.align 2, 0
|
||||
_0803B698: .4byte gUnknown_80E8168
|
||||
_0803B69C:
|
||||
adds r2, 0x4
|
||||
adds r3, 0x1
|
||||
cmp r3, 0x5
|
||||
ble _0803B674
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
_0803B6A8:
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_803B66C
|
||||
|
||||
.align 2,0
|
||||
@@ -2,6 +2,7 @@
|
||||
#define POKEMON_MAIL_H
|
||||
|
||||
#include "structs/str_802C39C.h"
|
||||
#include "pokemon_mail_pre.h"
|
||||
|
||||
// size: 0x8
|
||||
typedef struct PokemonMail
|
||||
@@ -21,8 +22,7 @@ typedef struct unkStruct_80E9920
|
||||
// size: 0xC
|
||||
typedef struct unkStruct_80E9F8C
|
||||
{
|
||||
/* 0x0 */ s16 speciesA;
|
||||
/* 0x2 */ s16 speciesB;
|
||||
/* 0x0 */ struct PokemonPair species;
|
||||
/* 0x4 */ const u8 *headline;
|
||||
/* 0x8 */ const u8 *text;
|
||||
} unkStruct_80E9F8C;
|
||||
|
||||
@@ -188,7 +188,6 @@ SECTIONS {
|
||||
src/debug_menu4.o(.text);
|
||||
src/code_803B050.o(.text);
|
||||
src/code_803B344.o(.text);
|
||||
asm/code_803B050.o(.text);
|
||||
src/pokemon_mail.o(.text);
|
||||
src/code_803C1B4.o(.text);
|
||||
src/personality_test1.o(.text);
|
||||
|
||||
@@ -201,3 +201,34 @@ static s32 sub_803B600(WonderMail *mail)
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
s32 sub_803B628(WonderMail *param_1)
|
||||
{
|
||||
const unkStruct_80E9F8C *ptr;
|
||||
int i;
|
||||
|
||||
ptr = &gUnknown_80E9F8C[0];
|
||||
for (i = 0; i < ARRAY_COUNT_INT(gUnknown_80E9F8C); ptr++, i++) {
|
||||
if (ptr->species.speciesA == param_1->clientSpecies && ptr->species.speciesB == param_1->targetSpecies)
|
||||
return i;
|
||||
if (ptr->species.speciesB == param_1->clientSpecies && ptr->species.speciesA == param_1->targetSpecies)
|
||||
return i;
|
||||
}
|
||||
return -1;
|
||||
|
||||
}
|
||||
|
||||
s32 sub_803B66C(WonderMail *param_1)
|
||||
{
|
||||
const struct PokemonPair *ptr;
|
||||
int i;
|
||||
|
||||
ptr = &gUnknown_80E8168[0];
|
||||
for (i = 0; i < ARRAY_COUNT_INT(gUnknown_80E8168); ptr++, i++) {
|
||||
if (ptr->speciesA == param_1->clientSpecies && ptr->speciesB == param_1->targetSpecies)
|
||||
return i;
|
||||
if (ptr->speciesB == param_1->clientSpecies && ptr->speciesA == param_1->targetSpecies)
|
||||
return i;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -176,7 +176,7 @@ bool8 sub_803C45C(WonderMail *mail)
|
||||
counter = 0;
|
||||
ptr = &gUnknown_80E9F8C[0];
|
||||
for (id = 0; id < ARRAY_COUNT_INT(gUnknown_80E9F8C); ptr++, id++) {
|
||||
if (sub_803C110(ptr->speciesA) && sub_803C110(ptr->speciesB)) {
|
||||
if (sub_803C110(ptr->species.speciesA) && sub_803C110(ptr->species.speciesB)) {
|
||||
stack[counter++] = id;
|
||||
}
|
||||
}
|
||||
@@ -186,12 +186,12 @@ bool8 sub_803C45C(WonderMail *mail)
|
||||
ptr = &gUnknown_80E9F8C[id];
|
||||
|
||||
if ((Rand32Bit() & 0x10)) {
|
||||
mail->clientSpecies = ptr->speciesA;
|
||||
mail->targetSpecies = ptr->speciesB;
|
||||
mail->clientSpecies = ptr->species.speciesA;
|
||||
mail->targetSpecies = ptr->species.speciesB;
|
||||
}
|
||||
else {
|
||||
mail->clientSpecies = ptr->speciesB;
|
||||
mail->targetSpecies = ptr->speciesA;
|
||||
mail->clientSpecies = ptr->species.speciesB;
|
||||
mail->targetSpecies = ptr->species.speciesA;
|
||||
}
|
||||
|
||||
mail->unk2 = 8;
|
||||
|
||||
Reference in New Issue
Block a user