From e07c771f1840fe614ac1040d55ce842602f44c4c Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 27 Feb 2020 16:59:05 -0500 Subject: through Task_FallWarpFieldEffect --- src/field_effect.c | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) (limited to 'src') diff --git a/src/field_effect.c b/src/field_effect.c index 9a30088c1..f85a9aef5 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -1066,3 +1066,40 @@ void Task_FlyIn(u8 taskId) DestroyTask(taskId); } } + +void Task_FallWarpFieldEffect(u8 taskId); +bool8 FallWarpEffect_1(struct Task * task); +bool8 FallWarpEffect_2(struct Task * task); +bool8 FallWarpEffect_3(struct Task * task); +bool8 FallWarpEffect_4(struct Task * task); +bool8 FallWarpEffect_5(struct Task * task); +bool8 FallWarpEffect_6(struct Task * task); +bool8 FallWarpEffect_7(struct Task * task); + +bool8 (*const sFallWarpEffectCBPtrs[])(struct Task * task) = { + FallWarpEffect_1, + FallWarpEffect_2, + FallWarpEffect_3, + FallWarpEffect_4, + FallWarpEffect_5, + FallWarpEffect_6, + FallWarpEffect_7 +}; + +void FieldCB_FallWarpExit(void) +{ + Overworld_PlaySpecialMapMusic(); + pal_fill_for_maplights(); + sub_8111CF0(); + ScriptContext2_Enable(); + FreezeObjectEvents(); + CreateTask(Task_FallWarpFieldEffect, 0); + gFieldCallback = NULL; +} + +void Task_FallWarpFieldEffect(u8 taskId) +{ + struct Task * task = &gTasks[taskId]; + while (sFallWarpEffectCBPtrs[task->data[0]](task)) + ; +} -- cgit v1.2.3