diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2019-07-29 21:10:54 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2019-07-29 21:10:54 -0400 |
commit | e130a00cdf69c58dbff8e98a69559aeb33f87b60 (patch) | |
tree | e128e502a2229f5d934f0436a0eb31dc86350bbb /src/hof_pc.c | |
parent | ef4c86fbfdd18b78700f61b629907a85579197c0 (diff) | |
parent | d4cc0e161bf103d3d3e01fefa02e867d4a2053c2 (diff) |
Merge branch 'master' into slot_machine
Diffstat (limited to 'src/hof_pc.c')
-rw-r--r-- | src/hof_pc.c | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/hof_pc.c b/src/hof_pc.c new file mode 100644 index 000000000..241fbc4f3 --- /dev/null +++ b/src/hof_pc.c @@ -0,0 +1,53 @@ +#include "global.h" +#include "hall_of_fame.h" +#include "palette.h" +#include "overworld.h" +#include "script.h" +#include "script_menu.h" +#include "task.h" +#include "hall_of_fame.h" +#include "bg.h" +#include "window.h" + +static void ReshowPCMenuAfterHallOfFamePC(void); +static void Task_WaitForPaletteFade(u8 taskId); + +static void Task_WaitFadeAndSetCallback(u8 taskId) +{ + if (!gPaletteFade.active) + { + FreeAllWindowBuffers(); + ResetBgsAndClearDma3BusyFlags(0); + DestroyTask(taskId); + SetMainCallback2(sub_80F2978); + } +} + +void HallOfFamePCBeginFade(void) +{ + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + ScriptContext2_Enable(); + CreateTask(Task_WaitFadeAndSetCallback, 0); +} + +void ReturnFromHallOfFamePC(void) +{ + SetMainCallback2(CB2_ReturnToField); + gFieldCallback = ReshowPCMenuAfterHallOfFamePC; +} + +static void ReshowPCMenuAfterHallOfFamePC(void) +{ + ScriptContext2_Enable(); + Overworld_PlaySpecialMapMusic(); + ScrSpecial_CreatePCMenu(); + ScriptMenu_DisplayPCStartupPrompt(); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); + CreateTask(Task_WaitForPaletteFade, 10); +} + +static void Task_WaitForPaletteFade(u8 taskId) +{ + if (!gPaletteFade.active) + DestroyTask(taskId); +} |