tmc/src/subtask/subtaskMapHint.c

72 lines
1.7 KiB
C

/**
* @file subtask.c
* @ingroup Subtasks
*
* @brief Map Hint Subtask
*/
#include "menu.h"
#include "functions.h"
#include "subtask.h"
#include "common.h"
#include "main.h"
#include "sound.h"
#include "save.h"
#include "flags.h"
#include "fileselect.h"
#include "kinstone.h"
#include "game.h"
void sub_080A6438();
void Subtask_MapHint(void) {
extern void (*const Subtask_MapHint_Functions[])(void);
FlushSprites();
Subtask_MapHint_Functions[gMenu.menuType]();
if ((gGenericMenu.unk2c & 0x20) != 0) {
sub_080A6438();
}
sub_080A6498();
CopyOAM();
}
void Subtask_MapHint_0(void) {
extern const u16 gUnk_08128F4C[];
u32 val;
sub_080A4D34();
sub_080A4DB8(4);
sub_080A6290();
gScreen.lcd.displayControl = gScreen.lcd.displayControl & 0xf7ff;
SetColor(0, gPaletteBuffer[0x51]);
val = gUnk_08128F4C[gUI.field_0x3];
gSave.map_hints |= val;
gGenericMenu.unk10.h[1] = val & gGenericMenu.unk10.h[0];
gGenericMenu.unk10.h[0] = 0;
gMenu.transitionTimer = 60;
SetMenuType(1);
SetFade(FADE_INSTANT, 8);
}
void Subtask_MapHint_1(void) {
if (!gFadeControl.active) {
gGenericMenu.unk2c++;
switch (gMenu.transitionTimer) {
case 0x1e:
gGenericMenu.unk10.h[0] = gGenericMenu.unk10.h[1];
gGenericMenu.unk2c = 0x20;
SoundReq(SFX_103);
default:
gMenu.transitionTimer--;
break;
case 0:
switch (gInput.newKeys) {
case A_BUTTON:
case B_BUTTON:
case START_BUTTON:
Subtask_Exit();
break;
}
break;
}
}
}