through Task_FallWarpFieldEffect

This commit is contained in:
PikalaxALT
2020-02-27 16:59:05 -05:00
parent 9c03c850a2
commit e07c771f18
4 changed files with 38 additions and 61 deletions
-51
View File
@@ -5,57 +5,6 @@
.text
thumb_func_start FieldCB_FallWarpExit
FieldCB_FallWarpExit: @ 8084454
push {lr}
bl Overworld_PlaySpecialMapMusic
bl pal_fill_for_maplights
bl sub_8111CF0
bl ScriptContext2_Enable
bl FreezeObjectEvents
ldr r0, _0808447C @ =Task_FallWarpFieldEffect
movs r1, 0
bl CreateTask
ldr r1, _08084480 @ =gFieldCallback
movs r0, 0
str r0, [r1]
pop {r0}
bx r0
.align 2, 0
_0808447C: .4byte Task_FallWarpFieldEffect
_08084480: .4byte gFieldCallback
thumb_func_end FieldCB_FallWarpExit
thumb_func_start Task_FallWarpFieldEffect
Task_FallWarpFieldEffect: @ 8084484
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, _080844B4 @ =gTasks
adds r4, r1, r0
ldr r5, _080844B8 @ =sFallWarpEffectCBPtrs
_08084496:
movs r1, 0x8
ldrsh r0, [r4, r1]
lsls r0, 2
adds r0, r5
ldr r1, [r0]
adds r0, r4, 0
bl _call_via_r1
lsls r0, 24
cmp r0, 0
bne _08084496
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080844B4: .4byte gTasks
_080844B8: .4byte sFallWarpEffectCBPtrs
thumb_func_end Task_FallWarpFieldEffect
thumb_func_start FallWarpEffect_1
FallWarpEffect_1: @ 80844BC
push {r4-r6,lr}
-10
View File
@@ -6,16 +6,6 @@
.section .rodata
.align 2
.align 2
sFallWarpEffectCBPtrs:: @ 83CC034 dataptr
.4byte FallWarpEffect_1
.4byte FallWarpEffect_2
.4byte FallWarpEffect_3
.4byte FallWarpEffect_4
.4byte FallWarpEffect_5
.4byte FallWarpEffect_6
.4byte FallWarpEffect_7
.align 2
sEscalatorWarpFieldEffectFuncs:: @ 83CC050 dataptr
.4byte EscalatorWarpEffect_1
+1
View File
@@ -16,6 +16,7 @@ void sub_807DC18(void);
void FieldCallback_ReturnToEventScript2(void);
void FadeInFromBlack(void);
void FadeTransition_FadeInOnReturnToStartMenu(void);
void pal_fill_for_maplights(void);
void sub_807DCE4(void);
+37
View File
@@ -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))
;
}