Match GetCurrentMissionText and sub_8097318

This commit is contained in:
Seth Barberee
2022-05-13 12:11:47 -07:00
parent 84107163ef
commit 87262b8744
4 changed files with 40 additions and 60 deletions

View File

@@ -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}

View File

@@ -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);

View File

@@ -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;
}

View File

@@ -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)
{