From 87262b87447b853e1f9a355fd772ee5bc0cc1335 Mon Sep 17 00:00:00 2001 From: Seth Barberee Date: Fri, 13 May 2022 12:11:47 -0700 Subject: [PATCH] Match GetCurrentMissionText and sub_8097318 --- asm/code_8097318.s | 23 ------------------- src/code_801B3C0.c | 2 +- src/code_80972F4.c | 20 +++++++++++++++++ src/code_809747C.c | 55 ++++++++++++++++------------------------------ 4 files changed, 40 insertions(+), 60 deletions(-) diff --git a/asm/code_8097318.s b/asm/code_8097318.s index d8acc0755..865ccfd24 100644 --- a/asm/code_8097318.s +++ b/asm/code_8097318.s @@ -5,29 +5,6 @@ .text - thumb_func_start sub_8097318 -sub_8097318: - push {lr} - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xD - bne _08097326 - movs r0, 0 - b _08097338 -_08097326: - lsls r2, r0, 16 - lsrs r2, 16 - movs r0, 0 - movs r1, 0x2B - bl sub_8001784 - cmp r0, 0 - beq _08097338 - movs r0, 0x1 -_08097338: - pop {r1} - bx r1 - thumb_func_end sub_8097318 - thumb_func_start sub_809733C sub_809733C: push {r4-r6,lr} diff --git a/src/code_801B3C0.c b/src/code_801B3C0.c index 7dde2484f..6bd8b8093 100644 --- a/src/code_801B3C0.c +++ b/src/code_801B3C0.c @@ -111,7 +111,7 @@ extern void sub_801BE30(void); extern void sub_801BEC8(void); extern void sub_801B760(void); extern void sub_801B874(void); -extern u32 sub_8001784(u32, u32, u32); +extern u32 sub_8001784(u32, u32, u16); extern void sub_800199C(u32, u32, u32, u32); extern void PlaySound(u32); extern s32 sub_808D544(u32); diff --git a/src/code_80972F4.c b/src/code_80972F4.c index 1c7e1258a..61554f0aa 100644 --- a/src/code_80972F4.c +++ b/src/code_80972F4.c @@ -5,6 +5,7 @@ extern void SaveDungeonLocation(struct unkStruct_8094924*, struct DungeonLocation*); extern void RestoreDungeonLocation(struct unkStruct_8094924*, struct DungeonLocation*); extern void sub_80015C0(u32, u32); +extern u32 sub_8001784(u32, u32, u16); struct unkStruct_8097270 { @@ -198,3 +199,22 @@ void sub_80972F4(void) void nullsub_128(void) {} + +s32 sub_8097318(s16 param_1) +{ + s32 iVar1; + s32 param_1_s32; + + param_1_s32 = param_1; + + if (param_1_s32 == 0xd) { + iVar1 = 0; + } + else { + iVar1 = sub_8001784(0,0x2b,param_1_s32); + if (iVar1 != 0) { + iVar1 = 1; + } + } + return iVar1; +} diff --git a/src/code_809747C.c b/src/code_809747C.c index 39d41a898..2b3743d93 100644 --- a/src/code_809747C.c +++ b/src/code_809747C.c @@ -1,9 +1,19 @@ #include "global.h" #include "dungeon.h" -extern u32 *gStoryMissionText[]; -extern const u8 gDummyScenarioText; -extern u32 gUnknown_8109CC0; + +struct MissionText +{ + u8 *text; + u8 unk4; + u8 unk5; + u8 unk6; + u8 unk7; +}; + +extern struct MissionText gStoryMissionText[]; +extern const u8 gUnknown_8109CC0[]; +extern const u8 gDummyScenarioText[]; extern u8 sub_80A270C(); extern void sub_80015C0(u8, u8); @@ -11,7 +21,7 @@ const u8 *sub_809747C(s16 r0) { if(r0 == 0xD) { - return &gDummyScenarioText; + return gDummyScenarioText; } else { @@ -23,7 +33,7 @@ const u8 *sub_80974A0(s16 r0) { if(r0 == 0xD) { - return &gDummyScenarioText; + return gDummyScenarioText; } else { @@ -31,44 +41,17 @@ const u8 *sub_80974A0(s16 r0) } } -#ifndef NONMATCHING -NAKED -#endif -u32 *GetCurrentMissionText(s16 r0) +const u8 *GetCurrentMissionText(s16 r0) { -#ifdef NONMATCHING - // TODO fix regswap memes of r0/r1 if(r0 <= 0x1E) { - return gStoryMissionText[(r0 << 1)]; + return (r0)[gStoryMissionText].text; } else { - return &gUnknown_8109CC0; + return gUnknown_8109CC0; } -#else - asm_unified("\tpush {lr}\n" - "\tlsls r0, 16\n" - "\tasrs r0, 16\n" - "\tcmp r0, 0x1E\n" - "\tble _080974D8\n" - "\tldr r0, _080974D4\n" - "\tb _080974E0\n" - "\t.align 2, 0\n" -"_080974D4: .4byte gUnknown_8109CC0\n" -"_080974D8:\n" - "\tlsls r0, 3\n" - "\tldr r1, _080974E4\n" - "\tadds r0, r1\n" - "\tldr r0, [r0]\n" -"_080974E0:\n" - "\tpop {r1}\n" - "\tbx r1\n" - "\t.align 2, 0\n" -"_080974E4: .4byte gStoryMissionText"); - -#endif -} +} void sub_80974E8(void) {