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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
/**
* @file subtaskLocalMapHint.c
* @ingroup Subtasks
*
* @brief Local Map Hint Subtask
*/
#include "menu.h"
#include "subtask.h"
#include "kinstone.h"
#include "functions.h"
#include "screen.h"
#include "sound.h"
#include "common.h"
void Subtask_LocalMapHint() {
extern void (*const gUnk_08128F1C[])(void);
const struct_gUnk_08128E94* ptr;
FlushSprites();
gUnk_08128F1C[gMenu.menuType]();
ptr = &gUnk_08128E94[gMenu.field_0x3];
gScreen.bg1.yOffset = -ptr->unk5;
gScreen.bg2.yOffset = gMenu.field_0xa - (s8)ptr->unk6;
CopyOAM();
}
void sub_080A6B04(void) {
u32 bVar1;
u32 uVar2;
u32 uVar3;
u32 uVar4;
int uVar6;
u32 uVar7;
const KinstoneWorldEvent* ptr;
const WorldEvent* ptr2;
const struct_gUnk_08128E94* ptr3;
sub_080A4D34();
sub_080A4DB8(6);
ptr = &gKinstoneWorldEvents[gFuseInfo.kinstoneId];
ptr2 = &gWorldEvents[ptr->worldEventId];
bVar1 = ptr->mapMarkerIcon;
uVar3 = ptr2->_c;
uVar4 = ptr2->_e;
uVar2 = GetOverworldLocation(uVar3, uVar4)->windcrestId;
gMenu.field_0x3 = uVar2;
gGenericMenu.unk2b = 1;
sub_080A67C4(uVar2);
ShowAreaName(uVar2, 2);
SetColor(0, 0x475f);
SetColor(0x5f, 0x475f);
MemFill16(0x5001, &gBG3Buffer, sizeof(gBG3Buffer));
if ((gPlayerState.flags & PL_NO_CAP) != 0) {
uVar7 = 101;
} else {
uVar7 = 100;
}
sub_080A698C(gRoomTransition.player_status.overworld_map_x, gRoomTransition.player_status.overworld_map_y,
DRAW_DIRECT_SPRITE_INDEX, uVar7 + 0x100);
sub_080A698C(uVar3, uVar4, DRAW_DIRECT_SPRITE_INDEX, bVar1 + 100);
uVar4 = sub_080A69E0(uVar3, uVar4) >> 0x10;
ptr3 = &gUnk_08128E94[gMenu.field_0x3];
gMenu.field_0xa = 0;
if (ptr3->unk2 != 0) {
uVar6 = uVar4 - 0x3c;
if (uVar6 > 0) {
if (ptr3->unk2 < uVar6) {
uVar6 = ptr3->unk2;
}
gMenu.field_0xa = uVar6;
}
}
gMenu.transitionTimer = 30;
SetMenuType(1);
SetFade(FADE_INSTANT, 8);
}
void sub_080A6C1C(void) {
if (!gFadeControl.active) {
switch (gMenu.transitionTimer) {
case 0:
sub_080A66D0();
switch (gInput.newKeys) {
case A_BUTTON:
case B_BUTTON:
case START_BUTTON:
Subtask_Exit();
break;
}
return;
case 1:
SoundReq(SFX_103);
break;
}
gMenu.transitionTimer--;
}
}
|