summaryrefslogtreecommitdiff
path: root/src/code_809747C.c
blob: 39d41a8981e16794aaedbc192ae9acb224362bd7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#include "global.h"
#include "dungeon.h"

extern u32 *gStoryMissionText[];
extern const u8 gDummyScenarioText;
extern u32 gUnknown_8109CC0;
extern u8 sub_80A270C();
extern void sub_80015C0(u8, u8);

const u8 *sub_809747C(s16 r0)
{
    if(r0 == 0xD)
    {
        return &gDummyScenarioText;
    }
    else
    {
        return GetDungeonName1(sub_80A270C(r0));
    }
}

const u8 *sub_80974A0(s16 r0)
{
    if(r0 == 0xD)
    {
        return &gDummyScenarioText;
    }
    else
    {
        return GetDungeonName1(sub_80A270C(r0));
    }
}

#ifndef NONMATCHING
NAKED
#endif
u32 *GetCurrentMissionText(s16 r0)
{
#ifdef NONMATCHING
    // TODO fix regswap memes of r0/r1
    if(r0 <= 0x1E)
    {
        return gStoryMissionText[(r0 << 1)];
    }
    else
    {
        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)
{
    sub_80015C0(0, 0x2E);
    sub_80015C0(0, 0x2F);
}

void nullsub_208(void)
{
}