mirror of
https://github.com/pret/pmd-red.git
synced 2026-08-27 03:07:22 -05:00
Match GetCurrentMissionText and sub_8097318
This commit is contained in:
@@ -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}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user