From 81f28e81e642952be337aa35b6685dac35eb8e6a Mon Sep 17 00:00:00 2001 From: Seth Barberee Date: Thu, 17 Jul 2025 19:16:40 -0700 Subject: [PATCH] thanks to @DizzyEggg for matching the two funcs --- asm/code_803B050.s | 90 ------------------------------------------ include/pokemon_mail.h | 4 +- ld_script.ld | 1 - src/code_803B344.c | 31 +++++++++++++++ src/code_803C1B4.c | 10 ++--- 5 files changed, 38 insertions(+), 98 deletions(-) delete mode 100644 asm/code_803B050.s diff --git a/asm/code_803B050.s b/asm/code_803B050.s deleted file mode 100644 index 7b92d5155..000000000 --- a/asm/code_803B050.s +++ /dev/null @@ -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 diff --git a/include/pokemon_mail.h b/include/pokemon_mail.h index 4595b6763..e7ff98c61 100644 --- a/include/pokemon_mail.h +++ b/include/pokemon_mail.h @@ -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; diff --git a/ld_script.ld b/ld_script.ld index 57e66c1d6..ec8afa19d 100755 --- a/ld_script.ld +++ b/ld_script.ld @@ -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); diff --git a/src/code_803B344.c b/src/code_803B344.c index 2ab7baba2..ab7e3ea01 100644 --- a/src/code_803B344.c +++ b/src/code_803B344.c @@ -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; +} diff --git a/src/code_803C1B4.c b/src/code_803C1B4.c index 1b97489bb..a24dbb409 100644 --- a/src/code_803C1B4.c +++ b/src/code_803C1B4.c @@ -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;