diff --git a/asm/unk_020932A4.s b/asm/unk_020932A4.s deleted file mode 100644 index 87aff184b..000000000 --- a/asm/unk_020932A4.s +++ /dev/null @@ -1,43 +0,0 @@ -#include "constants/easy_chat.h" -#include "constants/items.h" -#include "constants/maps.h" -#include "constants/moves.h" -#include "constants/species.h" - .include "asm/macros.inc" - .include "unk_020932A4.inc" - .include "global.inc" - - .text - - thumb_func_start PhoneBookTrainerGetRematchInfo -PhoneBookTrainerGetRematchInfo: ; 0x020932A4 - push {r3, r4, r5, r6, r7, lr} - add r4, r1, #0 - add r5, r0, #0 - add r0, r4, #0 - add r6, r2, #0 - add r7, r3, #0 - bl SaveData_GetMomsSavingsAddr - add r1, r5, #0 - bl PhoneRematches_IsSeeking - cmp r0, #0 - bne _020932C2 - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} -_020932C2: - cmp r5, #0x10 - bne _020932CE - cmp r7, #1 - beq _020932CE - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} -_020932CE: - mov r1, #0x14 - ldr r2, [r6, #4] - mul r1, r5 - add r1, r2, r1 - ldrh r1, [r1, #4] - add r0, r4, #0 - bl TryGetRematchTrainerIdByBaseTrainerId - pop {r3, r4, r5, r6, r7, pc} - thumb_func_end PhoneBookTrainerGetRematchInfo diff --git a/include/overlay_26.h b/include/overlay_26.h index b7fb38b52..ad4a1289a 100644 --- a/include/overlay_26.h +++ b/include/overlay_26.h @@ -3,7 +3,7 @@ #include "script.h" -u32 TryGetRematchTrainerIdByBaseTrainerId(SAVEDATA* savedata, u16 trainer_no); +u16 TryGetRematchTrainerIdByBaseTrainerId(SAVEDATA* savedata, u16 trainer_no); void ov26_022599D8(FieldSystem *fsys, LocalMapObject *lastTalked); #endif //POKEHEARTGOLD_OVERLAY_26_H diff --git a/include/phonebook_dat.h b/include/phonebook_dat.h index fdbed782f..7a55321ae 100644 --- a/include/phonebook_dat.h +++ b/include/phonebook_dat.h @@ -3,6 +3,8 @@ #include "heap.h" +struct PhoneBookEntry; + struct PhoneBook *AllocAndReadPhoneBook(HeapID heapId); void FreePhoneBook(struct PhoneBook *phoneBook); u8 LoadPhoneBookEntryI(u16 idx, struct PhoneBookEntry *dest, HeapID heapId); diff --git a/main.lsf b/main.lsf index e242a99fb..3db565a7c 100644 --- a/main.lsf +++ b/main.lsf @@ -305,7 +305,7 @@ Static main Object asm/unk_02092BB8.o Object src/unk_02092BE8.o Object asm/unk_020931C4.o - Object asm/unk_020932A4.o + Object src/unk_020932A4.o Object asm/unk_020932E0.o Object asm/unk_020957B0.o Object asm/unk_02095DF4.o diff --git a/src/overlay_26_022598C0.c b/src/overlay_26_022598C0.c index f4f4a72a9..db0daebff 100644 --- a/src/overlay_26_022598C0.c +++ b/src/overlay_26_022598C0.c @@ -75,7 +75,7 @@ static const u16 sTrainerRematchSets[][6] = { { TRAINER_LEADER_BLUE_BLUE, TRAINER_LEADER_BLUE_BLUE, TRAINER_LEADER_BLUE_BLUE_2, TRAINER_NONE, TRAINER_NONE, TRAINER_NONE }, }; -u32 TryGetRematchTrainerIdByBaseTrainerId(SAVEDATA* savedata, u16 trainer_id) { +u16 TryGetRematchTrainerIdByBaseTrainerId(SAVEDATA* savedata, u16 trainer_id) { u16 rematch_set_no = GetRematchIdByBaseTrainerId(trainer_id); if (rematch_set_no == 0xFF) { return 0; diff --git a/src/unk_020932A4.c b/src/unk_020932A4.c new file mode 100644 index 000000000..473310a11 --- /dev/null +++ b/src/unk_020932A4.c @@ -0,0 +1,24 @@ +#include "global.h" +#include "unk_020932A4.h" +#include "save_pokegear.h" +#include "gear_phone.h" +#include "overlay_26.h" + +THUMB_FUNC u16 PhoneBookTrainerGetRematchInfo(u8 a0, SAVEDATA* saveData, struct PhoneBook* phoneBook, u8 timeOfDay) { + MomsSavings* ms = SaveData_GetMomsSavingsAddr(saveData); + BOOL b = PhoneRematches_IsSeeking(ms, a0); + + if(!b) + { + return FALSE; + } + if(a0 == 0x10 && timeOfDay != 1) + { + return FALSE; + } + + struct PhoneBookEntry* entries = phoneBook->entries; + u16 trainerId = entries[a0].trainerId; + + return TryGetRematchTrainerIdByBaseTrainerId(saveData, trainerId); +} \ No newline at end of file