Escalator field effect

This commit is contained in:
PikalaxALT
2020-02-28 10:02:40 -05:00
parent db12644f00
commit 1779aedbf0
11 changed files with 374 additions and 757 deletions
+9 -673
View File
@@ -5,670 +5,6 @@
.text
thumb_func_start StartEscalatorWarp
StartEscalatorWarp: @ 8084784
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
lsls r1, 24
lsrs r1, 24
ldr r0, _080847B8 @ =Task_EscalatorWarpFieldEffect
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _080847BC @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
movs r0, 0
strh r0, [r1, 0xA]
cmp r4, 0x6A
bne _080847B0
movs r0, 0x1
strh r0, [r1, 0xA]
_080847B0:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080847B8: .4byte Task_EscalatorWarpFieldEffect
_080847BC: .4byte gTasks
thumb_func_end StartEscalatorWarp
thumb_func_start Task_EscalatorWarpFieldEffect
Task_EscalatorWarpFieldEffect: @ 80847C0
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, _080847F0 @ =gTasks
adds r4, r1, r0
ldr r5, _080847F4 @ =sEscalatorWarpFieldEffectFuncs
_080847D2:
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 _080847D2
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080847F0: .4byte gTasks
_080847F4: .4byte sEscalatorWarpFieldEffectFuncs
thumb_func_end Task_EscalatorWarpFieldEffect
thumb_func_start EscalatorWarpEffect_1
EscalatorWarpEffect_1: @ 80847F8
push {r4,lr}
adds r4, r0, 0
bl FreezeObjectEvents
bl CameraObjectReset2
ldrb r0, [r4, 0xA]
bl StartEscalator
movs r0, 0x1
bl sub_81128BC
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
movs r0, 0
pop {r4}
pop {r1}
bx r1
thumb_func_end EscalatorWarpEffect_1
thumb_func_start EscalatorWarpEffect_2
EscalatorWarpEffect_2: @ 8084820
push {r4,r5,lr}
adds r5, r0, 0
ldr r0, _08084888 @ =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
ldr r1, _0808488C @ =gObjectEvents
adds r4, r0, r1
adds r0, r4, 0
bl ObjectEventIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _0808484A
adds r0, r4, 0
bl ObjectEventClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _0808487E
_0808484A:
bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
bl GetFaceDirectionMovementAction
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl ObjectEventSetHeldMovement
ldrh r0, [r5, 0x8]
adds r0, 0x1
movs r1, 0
strh r0, [r5, 0x8]
strh r1, [r5, 0xC]
strh r1, [r5, 0xE]
ldrb r0, [r5, 0xA]
cmp r0, 0
bne _08084878
movs r0, 0x4
strh r0, [r5, 0x8]
_08084878:
movs r0, 0x49
bl PlaySE
_0808487E:
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08084888: .4byte gPlayerAvatar
_0808488C: .4byte gObjectEvents
thumb_func_end EscalatorWarpEffect_2
thumb_func_start EscalatorWarpEffect_3
EscalatorWarpEffect_3: @ 8084890
push {r4,lr}
adds r4, r0, 0
bl sub_80848F8
movs r1, 0xC
ldrsh r0, [r4, r1]
cmp r0, 0x3
ble _080848AA
bl sub_8084990
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
_080848AA:
movs r0, 0
pop {r4}
pop {r1}
bx r1
thumb_func_end EscalatorWarpEffect_3
thumb_func_start EscalatorWarpEffect_4
EscalatorWarpEffect_4: @ 80848B4
push {lr}
bl sub_80848F8
bl sub_80849A0
movs r0, 0
pop {r1}
bx r1
thumb_func_end EscalatorWarpEffect_4
thumb_func_start EscalatorWarpEffect_5
EscalatorWarpEffect_5: @ 80848C4
push {r4,lr}
adds r4, r0, 0
bl sub_8084944
movs r1, 0xC
ldrsh r0, [r4, r1]
cmp r0, 0x3
ble _080848DE
bl sub_8084990
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
_080848DE:
movs r0, 0
pop {r4}
pop {r1}
bx r1
thumb_func_end EscalatorWarpEffect_5
thumb_func_start EscalatorWarpEffect_6
EscalatorWarpEffect_6: @ 80848E8
push {lr}
bl sub_8084944
bl sub_80849A0
movs r0, 0
pop {r1}
bx r1
thumb_func_end EscalatorWarpEffect_6
thumb_func_start sub_80848F8
sub_80848F8: @ 80848F8
push {r4,r5,lr}
adds r5, r0, 0
ldr r0, _0808493C @ =gPlayerAvatar
ldrb r0, [r0, 0x4]
lsls r4, r0, 4
adds r4, r0
lsls r4, 2
ldr r0, _08084940 @ =gSprites
adds r4, r0
movs r0, 0xC
ldrsh r1, [r5, r0]
movs r0, 0x84
bl Cos
strh r0, [r4, 0x24]
movs r0, 0xC
ldrsh r1, [r5, r0]
movs r0, 0x94
bl Sin
strh r0, [r4, 0x26]
ldrh r0, [r5, 0xE]
adds r0, 0x1
strh r0, [r5, 0xE]
movs r1, 0x1
ands r0, r1
cmp r0, 0
beq _08084936
ldrh r0, [r5, 0xC]
adds r0, 0x1
strh r0, [r5, 0xC]
_08084936:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0808493C: .4byte gPlayerAvatar
_08084940: .4byte gSprites
thumb_func_end sub_80848F8
thumb_func_start sub_8084944
sub_8084944: @ 8084944
push {r4,r5,lr}
adds r5, r0, 0
ldr r0, _08084988 @ =gPlayerAvatar
ldrb r0, [r0, 0x4]
lsls r4, r0, 4
adds r4, r0
lsls r4, 2
ldr r0, _0808498C @ =gSprites
adds r4, r0
movs r0, 0xC
ldrsh r1, [r5, r0]
movs r0, 0x7C
bl Cos
strh r0, [r4, 0x24]
movs r0, 0xC
ldrsh r1, [r5, r0]
movs r0, 0x76
bl Sin
strh r0, [r4, 0x26]
ldrh r0, [r5, 0xE]
adds r0, 0x1
strh r0, [r5, 0xE]
movs r1, 0x1
ands r0, r1
cmp r0, 0
beq _08084982
ldrh r0, [r5, 0xC]
adds r0, 0x1
strh r0, [r5, 0xC]
_08084982:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08084988: .4byte gPlayerAvatar
_0808498C: .4byte gSprites
thumb_func_end sub_8084944
thumb_func_start sub_8084990
sub_8084990: @ 8084990
push {lr}
bl sub_8055F88
bl sub_807DC18
pop {r0}
bx r0
thumb_func_end sub_8084990
thumb_func_start sub_80849A0
sub_80849A0: @ 80849A0
push {lr}
ldr r0, _080849E0 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _080849DC
bl BGMusicStopped
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080849DC
bl StopEscalator
bl WarpIntoMap
ldr r1, _080849E4 @ =gFieldCallback
ldr r0, _080849E8 @ =sub_80849F4
str r0, [r1]
ldr r0, _080849EC @ =CB2_LoadMap
bl SetMainCallback2
ldr r0, _080849F0 @ =Task_EscalatorWarpFieldEffect
bl FindTaskIdByFunc
lsls r0, 24
lsrs r0, 24
bl DestroyTask
_080849DC:
pop {r0}
bx r0
.align 2, 0
_080849E0: .4byte gPaletteFade
_080849E4: .4byte gFieldCallback
_080849E8: .4byte sub_80849F4
_080849EC: .4byte CB2_LoadMap
_080849F0: .4byte Task_EscalatorWarpFieldEffect
thumb_func_end sub_80849A0
thumb_func_start sub_80849F4
sub_80849F4: @ 80849F4
push {lr}
bl Overworld_PlaySpecialMapMusic
bl pal_fill_for_maplights
bl sub_8111CF0
bl ScriptContext2_Enable
bl FreezeObjectEvents
ldr r0, _08084A1C @ =sub_8084A24
movs r1, 0
bl CreateTask
ldr r1, _08084A20 @ =gFieldCallback
movs r0, 0
str r0, [r1]
pop {r0}
bx r0
.align 2, 0
_08084A1C: .4byte sub_8084A24
_08084A20: .4byte gFieldCallback
thumb_func_end sub_80849F4
thumb_func_start sub_8084A24
sub_8084A24: @ 8084A24
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, _08084A54 @ =gTasks
adds r4, r1, r0
ldr r5, _08084A58 @ =gUnknown_83CC068
_08084A36:
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 _08084A36
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08084A54: .4byte gTasks
_08084A58: .4byte gUnknown_83CC068
thumb_func_end sub_8084A24
thumb_func_start sub_8084A5C
sub_8084A5C: @ 8084A5C
push {r4,r5,lr}
sub sp, 0x4
adds r5, r0, 0
bl CameraObjectReset2
ldr r0, _08084ABC @ =gPlayerAvatar
ldrb r0, [r0, 0x5]
lsls r4, r0, 3
adds r4, r0
lsls r4, 2
ldr r0, _08084AC0 @ =gObjectEvents
adds r4, r0
movs r0, 0x4
bl GetFaceDirectionMovementAction
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl ObjectEventSetHeldMovement
mov r4, sp
adds r4, 0x2
mov r0, sp
adds r1, r4, 0
bl PlayerGetDestCoords
mov r0, sp
movs r1, 0
ldrsh r0, [r0, r1]
movs r2, 0
ldrsh r1, [r4, r2]
bl MapGridGetMetatileBehaviorAt
lsls r0, 24
lsrs r1, r0, 24
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
movs r0, 0x10
strh r0, [r5, 0xA]
cmp r1, 0x6B
bne _08084AC4
movs r1, 0x1
movs r0, 0x3
strh r0, [r5, 0x8]
b _08084AC6
.align 2, 0
_08084ABC: .4byte gPlayerAvatar
_08084AC0: .4byte gObjectEvents
_08084AC4:
movs r1, 0
_08084AC6:
adds r0, r1, 0
bl StartEscalator
movs r0, 0x1
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8084A5C
thumb_func_start sub_8084AD8
sub_8084AD8: @ 8084AD8
push {r4,r5,lr}
adds r5, r0, 0
ldr r0, _08084B10 @ =gPlayerAvatar
ldrb r0, [r0, 0x4]
lsls r4, r0, 4
adds r4, r0
lsls r4, 2
ldr r0, _08084B14 @ =gSprites
adds r4, r0
movs r0, 0xA
ldrsh r1, [r5, r0]
movs r0, 0x84
bl Cos
strh r0, [r4, 0x24]
movs r0, 0xA
ldrsh r1, [r5, r0]
movs r0, 0x94
bl Sin
strh r0, [r4, 0x26]
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08084B10: .4byte gPlayerAvatar
_08084B14: .4byte gSprites
thumb_func_end sub_8084AD8
thumb_func_start sub_8084B18
sub_8084B18: @ 8084B18
push {r4,r5,lr}
adds r4, r0, 0
ldr r0, _08084B70 @ =gPlayerAvatar
ldrb r1, [r0, 0x4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _08084B74 @ =gSprites
adds r5, r0, r1
movs r0, 0xA
ldrsh r1, [r4, r0]
movs r0, 0x84
bl Cos
strh r0, [r5, 0x24]
movs r0, 0xA
ldrsh r1, [r4, r0]
movs r0, 0x94
bl Sin
strh r0, [r5, 0x26]
ldrh r0, [r4, 0xC]
adds r0, 0x1
strh r0, [r4, 0xC]
movs r1, 0x1
ands r0, r1
cmp r0, 0
beq _08084B56
ldrh r0, [r4, 0xA]
subs r0, 0x1
strh r0, [r4, 0xA]
_08084B56:
movs r1, 0xA
ldrsh r0, [r4, r1]
cmp r0, 0
bne _08084B66
strh r0, [r5, 0x24]
strh r0, [r5, 0x26]
movs r0, 0x5
strh r0, [r4, 0x8]
_08084B66:
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08084B70: .4byte gPlayerAvatar
_08084B74: .4byte gSprites
thumb_func_end sub_8084B18
thumb_func_start sub_8084B78
sub_8084B78: @ 8084B78
push {r4,r5,lr}
adds r5, r0, 0
ldr r0, _08084BB0 @ =gPlayerAvatar
ldrb r0, [r0, 0x4]
lsls r4, r0, 4
adds r4, r0
lsls r4, 2
ldr r0, _08084BB4 @ =gSprites
adds r4, r0
movs r0, 0xA
ldrsh r1, [r5, r0]
movs r0, 0x7C
bl Cos
strh r0, [r4, 0x24]
movs r0, 0xA
ldrsh r1, [r5, r0]
movs r0, 0x76
bl Sin
strh r0, [r4, 0x26]
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08084BB0: .4byte gPlayerAvatar
_08084BB4: .4byte gSprites
thumb_func_end sub_8084B78
thumb_func_start sub_8084BB8
sub_8084BB8: @ 8084BB8
push {r4,r5,lr}
adds r4, r0, 0
ldr r0, _08084C10 @ =gPlayerAvatar
ldrb r1, [r0, 0x4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _08084C14 @ =gSprites
adds r5, r0, r1
movs r0, 0xA
ldrsh r1, [r4, r0]
movs r0, 0x7C
bl Cos
strh r0, [r5, 0x24]
movs r0, 0xA
ldrsh r1, [r4, r0]
movs r0, 0x76
bl Sin
strh r0, [r5, 0x26]
ldrh r0, [r4, 0xC]
adds r0, 0x1
strh r0, [r4, 0xC]
movs r1, 0x1
ands r0, r1
cmp r0, 0
beq _08084BF6
ldrh r0, [r4, 0xA]
subs r0, 0x1
strh r0, [r4, 0xA]
_08084BF6:
movs r1, 0xA
ldrsh r0, [r4, r1]
cmp r0, 0
bne _08084C08
strh r0, [r5, 0x24]
strh r0, [r5, 0x26]
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
_08084C08:
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08084C10: .4byte gPlayerAvatar
_08084C14: .4byte gSprites
thumb_func_end sub_8084BB8
thumb_func_start sub_8084C18
sub_8084C18: @ 8084C18
push {r4,lr}
adds r4, r0, 0
bl IsEscalatorMoving
lsls r0, 24
cmp r0, 0
bne _08084C34
bl StopEscalator
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
movs r0, 0x1
b _08084C36
_08084C34:
movs r0, 0
_08084C36:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8084C18
thumb_func_start sub_8084C3C
sub_8084C3C: @ 8084C3C
push {r4,lr}
ldr r0, _08084C94 @ =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
ldr r1, _08084C98 @ =gObjectEvents
adds r4, r0, r1
adds r0, r4, 0
bl ObjectEventClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _08084C8A
bl CameraObjectReset1
bl ScriptContext2_Disable
bl UnfreezeObjectEvents
movs r0, 0x4
bl GetWalkNormalMovementAction
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl ObjectEventSetHeldMovement
ldr r0, _08084C9C @ =sub_8084A24
bl FindTaskIdByFunc
lsls r0, 24
lsrs r0, 24
bl DestroyTask
movs r0, 0x2
bl sub_81128BC
_08084C8A:
movs r0, 0
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08084C94: .4byte gPlayerAvatar
_08084C98: .4byte gObjectEvents
_08084C9C: .4byte sub_8084A24
thumb_func_end sub_8084C3C
thumb_func_start FldEff_UseWaterfall
FldEff_UseWaterfall: @ 8084CA0
push {r4,lr}
@@ -1304,8 +640,8 @@ _08085144:
LavaridgeGymB1FWarpEffect_5: @ 808514C
push {r4,lr}
adds r4, r0, 0
bl sub_8055F88
bl sub_807DC18
bl TryFadeOutOldMapMusic
bl WarpFadeOutScreen
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
@@ -1808,8 +1144,8 @@ LavaridgeGym1FWarpEffect_4: @ 8085524
lsls r0, 24
cmp r0, 0
bne _08085542
bl sub_8055F88
bl sub_807DC18
bl TryFadeOutOldMapMusic
bl WarpFadeOutScreen
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
@@ -2032,8 +1368,8 @@ _080856DC:
bl sub_80857F0
cmp r0, 0
bne _08085702
bl sub_8055F88
bl sub_807DC18
bl TryFadeOutOldMapMusic
bl WarpFadeOutScreen
movs r0, 0x1
strh r0, [r4, 0x8]
_08085702:
@@ -2823,8 +2159,8 @@ _08085D04:
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
bl sub_8055F88
bl sub_807DC18
bl TryFadeOutOldMapMusic
bl WarpFadeOutScreen
_08085D1A:
add sp, 0x8
pop {r4,r5}
@@ -5376,7 +4712,7 @@ sub_8087118: @ 8087118
lsls r0, 24
cmp r0, 0
beq _08087132
bl sub_807DC18
bl WarpFadeOutScreen
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]