Port Lavaridge Gym B1F Warp from Emerald
This commit is contained in:
+55
-597
@@ -5,548 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start StartLavaridgeGymB1FWarp
|
||||
StartLavaridgeGymB1FWarp: @ 8084F2C
|
||||
push {lr}
|
||||
adds r1, r0, 0
|
||||
lsls r1, 24
|
||||
lsrs r1, 24
|
||||
ldr r0, _08084F40 @ =Task_LavaridgeGymB1FWarp
|
||||
bl CreateTask
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08084F40: .4byte Task_LavaridgeGymB1FWarp
|
||||
thumb_func_end StartLavaridgeGymB1FWarp
|
||||
|
||||
thumb_func_start Task_LavaridgeGymB1FWarp
|
||||
Task_LavaridgeGymB1FWarp: @ 8084F44
|
||||
push {r4-r6,lr}
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
ldr r6, _08084F8C @ =sLavaridgeGymB1FWarpEffectFuncs
|
||||
ldr r2, _08084F90 @ =gTasks
|
||||
ldr r5, _08084F94 @ =gPlayerAvatar
|
||||
lsls r1, r0, 2
|
||||
adds r1, r0
|
||||
lsls r1, 3
|
||||
adds r4, r1, r2
|
||||
_08084F58:
|
||||
movs r0, 0x8
|
||||
ldrsh r3, [r4, r0]
|
||||
lsls r3, 2
|
||||
adds r3, r6
|
||||
ldrb r0, [r5, 0x5]
|
||||
lsls r1, r0, 3
|
||||
adds r1, r0
|
||||
lsls r1, 2
|
||||
ldr r0, _08084F98 @ =gObjectEvents
|
||||
adds r1, r0
|
||||
ldrb r0, [r5, 0x4]
|
||||
lsls r2, r0, 4
|
||||
adds r2, r0
|
||||
lsls r2, 2
|
||||
ldr r0, _08084F9C @ =gSprites
|
||||
adds r2, r0
|
||||
ldr r3, [r3]
|
||||
adds r0, r4, 0
|
||||
bl _call_via_r3
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08084F58
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08084F8C: .4byte sLavaridgeGymB1FWarpEffectFuncs
|
||||
_08084F90: .4byte gTasks
|
||||
_08084F94: .4byte gPlayerAvatar
|
||||
_08084F98: .4byte gObjectEvents
|
||||
_08084F9C: .4byte gSprites
|
||||
thumb_func_end Task_LavaridgeGymB1FWarp
|
||||
|
||||
thumb_func_start LavaridgeGymB1FWarpEffect_1
|
||||
LavaridgeGymB1FWarpEffect_1: @ 8084FA0
|
||||
push {r4,r5,lr}
|
||||
adds r4, r0, 0
|
||||
adds r5, r1, 0
|
||||
bl FreezeObjectEvents
|
||||
bl CameraObjectReset2
|
||||
movs r0, 0
|
||||
bl SetCameraPanningCallback
|
||||
ldr r0, _08084FD4 @ =gPlayerAvatar
|
||||
movs r2, 0x1
|
||||
strb r2, [r0, 0x6]
|
||||
ldrb r0, [r5, 0x3]
|
||||
movs r1, 0x4
|
||||
orrs r0, r1
|
||||
strb r0, [r5, 0x3]
|
||||
strh r2, [r4, 0xA]
|
||||
ldrh r0, [r4, 0x8]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4, 0x8]
|
||||
movs r0, 0x1
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_08084FD4: .4byte gPlayerAvatar
|
||||
thumb_func_end LavaridgeGymB1FWarpEffect_1
|
||||
|
||||
thumb_func_start LavaridgeGymB1FWarpEffect_2
|
||||
LavaridgeGymB1FWarpEffect_2: @ 8084FD8
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
movs r0, 0xA
|
||||
ldrsh r1, [r4, r0]
|
||||
movs r0, 0
|
||||
bl SetCameraPanning
|
||||
ldrh r0, [r4, 0xA]
|
||||
negs r0, r0
|
||||
strh r0, [r4, 0xA]
|
||||
ldrh r0, [r4, 0xC]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4, 0xC]
|
||||
lsls r0, 16
|
||||
asrs r0, 16
|
||||
cmp r0, 0x7
|
||||
ble _08085004
|
||||
movs r0, 0
|
||||
strh r0, [r4, 0xC]
|
||||
ldrh r0, [r4, 0x8]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4, 0x8]
|
||||
_08085004:
|
||||
movs r0, 0
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end LavaridgeGymB1FWarpEffect_2
|
||||
|
||||
thumb_func_start LavaridgeGymB1FWarpEffect_3
|
||||
LavaridgeGymB1FWarpEffect_3: @ 808500C
|
||||
push {r4,r5,lr}
|
||||
adds r4, r0, 0
|
||||
movs r0, 0
|
||||
strh r0, [r2, 0x26]
|
||||
movs r0, 0x1
|
||||
strh r0, [r4, 0xE]
|
||||
ldr r3, _08085054 @ =gFieldEffectArguments
|
||||
movs r5, 0x10
|
||||
ldrsh r0, [r1, r5]
|
||||
str r0, [r3]
|
||||
movs r5, 0x12
|
||||
ldrsh r0, [r1, r5]
|
||||
str r0, [r3, 0x4]
|
||||
adds r0, r2, 0
|
||||
adds r0, 0x43
|
||||
ldrb r0, [r0]
|
||||
subs r0, 0x1
|
||||
str r0, [r3, 0x8]
|
||||
ldrb r0, [r2, 0x5]
|
||||
lsls r0, 28
|
||||
lsrs r0, 30
|
||||
str r0, [r3, 0xC]
|
||||
movs r0, 0x32
|
||||
bl FieldEffectStart
|
||||
movs r0, 0xAB
|
||||
bl PlaySE
|
||||
ldrh r0, [r4, 0x8]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4, 0x8]
|
||||
movs r0, 0x1
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_08085054: .4byte gFieldEffectArguments
|
||||
thumb_func_end LavaridgeGymB1FWarpEffect_3
|
||||
|
||||
thumb_func_start LavaridgeGymB1FWarpEffect_4
|
||||
LavaridgeGymB1FWarpEffect_4: @ 8085058
|
||||
push {r4-r7,lr}
|
||||
adds r4, r0, 0
|
||||
adds r6, r1, 0
|
||||
adds r5, r2, 0
|
||||
movs r0, 0xA
|
||||
ldrsh r1, [r4, r0]
|
||||
movs r0, 0
|
||||
bl SetCameraPanning
|
||||
ldrh r0, [r4, 0xA]
|
||||
negs r2, r0
|
||||
strh r2, [r4, 0xA]
|
||||
ldrh r0, [r4, 0xC]
|
||||
adds r1, r0, 0x1
|
||||
strh r1, [r4, 0xC]
|
||||
lsls r0, r1, 16
|
||||
asrs r0, 16
|
||||
cmp r0, 0x11
|
||||
bgt _08085092
|
||||
movs r0, 0x1
|
||||
ands r1, r0
|
||||
cmp r1, 0
|
||||
bne _080850A4
|
||||
lsls r0, r2, 16
|
||||
asrs r0, 16
|
||||
cmp r0, 0x3
|
||||
bgt _080850A4
|
||||
lsls r0, r2, 1
|
||||
b _080850A2
|
||||
_08085092:
|
||||
movs r0, 0x4
|
||||
ands r1, r0
|
||||
cmp r1, 0
|
||||
bne _080850A4
|
||||
lsls r0, r2, 16
|
||||
cmp r0, 0
|
||||
ble _080850A4
|
||||
asrs r0, 17
|
||||
_080850A2:
|
||||
strh r0, [r4, 0xA]
|
||||
_080850A4:
|
||||
movs r1, 0xC
|
||||
ldrsh r0, [r4, r1]
|
||||
cmp r0, 0x6
|
||||
ble _080850F0
|
||||
adds r0, r5, 0
|
||||
adds r0, 0x29
|
||||
movs r1, 0
|
||||
ldrsb r1, [r0, r1]
|
||||
lsls r2, r1, 17
|
||||
negs r2, r2
|
||||
movs r7, 0x26
|
||||
ldrsh r3, [r5, r7]
|
||||
movs r7, 0x22
|
||||
ldrsh r0, [r5, r7]
|
||||
adds r0, r1
|
||||
ldr r1, _080850E8 @ =gSpriteCoordOffsetY
|
||||
movs r7, 0
|
||||
ldrsh r1, [r1, r7]
|
||||
adds r0, r1
|
||||
asrs r2, 16
|
||||
adds r0, r2
|
||||
cmn r3, r0
|
||||
ble _080850EC
|
||||
ldrh r0, [r5, 0x26]
|
||||
ldrh r1, [r4, 0xE]
|
||||
subs r0, r1
|
||||
strh r0, [r5, 0x26]
|
||||
lsls r0, r1, 16
|
||||
asrs r0, 16
|
||||
cmp r0, 0x7
|
||||
bgt _080850F0
|
||||
adds r0, r1, 0x1
|
||||
strh r0, [r4, 0xE]
|
||||
b _080850F0
|
||||
.align 2, 0
|
||||
_080850E8: .4byte gSpriteCoordOffsetY
|
||||
_080850EC:
|
||||
movs r0, 0x1
|
||||
strh r0, [r4, 0x10]
|
||||
_080850F0:
|
||||
ldrh r2, [r4, 0x12]
|
||||
movs r1, 0x12
|
||||
ldrsh r0, [r4, r1]
|
||||
cmp r0, 0
|
||||
bne _0808512E
|
||||
movs r7, 0x26
|
||||
ldrsh r1, [r5, r7]
|
||||
movs r0, 0x10
|
||||
negs r0, r0
|
||||
cmp r1, r0
|
||||
bge _0808512E
|
||||
adds r0, r2, 0x1
|
||||
strh r0, [r4, 0x12]
|
||||
ldrb r0, [r6, 0x3]
|
||||
movs r2, 0x4
|
||||
orrs r0, r2
|
||||
strb r0, [r6, 0x3]
|
||||
ldrb r1, [r5, 0x5]
|
||||
movs r0, 0xD
|
||||
negs r0, r0
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
strb r0, [r5, 0x5]
|
||||
adds r2, r5, 0
|
||||
adds r2, 0x42
|
||||
ldrb r1, [r2]
|
||||
movs r0, 0x3F
|
||||
ands r0, r1
|
||||
movs r1, 0x80
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
_0808512E:
|
||||
movs r1, 0xA
|
||||
ldrsh r0, [r4, r1]
|
||||
cmp r0, 0
|
||||
bne _08085144
|
||||
movs r7, 0x10
|
||||
ldrsh r0, [r4, r7]
|
||||
cmp r0, 0
|
||||
beq _08085144
|
||||
ldrh r0, [r4, 0x8]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4, 0x8]
|
||||
_08085144:
|
||||
movs r0, 0
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end LavaridgeGymB1FWarpEffect_4
|
||||
|
||||
thumb_func_start LavaridgeGymB1FWarpEffect_5
|
||||
LavaridgeGymB1FWarpEffect_5: @ 808514C
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
bl TryFadeOutOldMapMusic
|
||||
bl WarpFadeOutScreen
|
||||
ldrh r0, [r4, 0x8]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4, 0x8]
|
||||
movs r0, 0
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end LavaridgeGymB1FWarpEffect_5
|
||||
|
||||
thumb_func_start LavaridgeGymB1FWarpEffect_6
|
||||
LavaridgeGymB1FWarpEffect_6: @ 8085168
|
||||
push {lr}
|
||||
ldr r0, _080851A8 @ =gPaletteFade
|
||||
ldrb r1, [r0, 0x7]
|
||||
movs r0, 0x80
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _080851A0
|
||||
bl BGMusicStopped
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _080851A0
|
||||
bl WarpIntoMap
|
||||
ldr r1, _080851AC @ =gFieldCallback
|
||||
ldr r0, _080851B0 @ =FieldCB_LavaridgeGymB1FWarpExit
|
||||
str r0, [r1]
|
||||
ldr r0, _080851B4 @ =CB2_LoadMap
|
||||
bl SetMainCallback2
|
||||
ldr r0, _080851B8 @ =Task_LavaridgeGymB1FWarp
|
||||
bl FindTaskIdByFunc
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl DestroyTask
|
||||
_080851A0:
|
||||
movs r0, 0
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_080851A8: .4byte gPaletteFade
|
||||
_080851AC: .4byte gFieldCallback
|
||||
_080851B0: .4byte FieldCB_LavaridgeGymB1FWarpExit
|
||||
_080851B4: .4byte CB2_LoadMap
|
||||
_080851B8: .4byte Task_LavaridgeGymB1FWarp
|
||||
thumb_func_end LavaridgeGymB1FWarpEffect_6
|
||||
|
||||
thumb_func_start FieldCB_LavaridgeGymB1FWarpExit
|
||||
FieldCB_LavaridgeGymB1FWarpExit: @ 80851BC
|
||||
push {lr}
|
||||
bl Overworld_PlaySpecialMapMusic
|
||||
bl pal_fill_for_maplights
|
||||
bl sub_8111CF0
|
||||
bl ScriptContext2_Enable
|
||||
ldr r0, _080851E0 @ =gFieldCallback
|
||||
movs r1, 0
|
||||
str r1, [r0]
|
||||
ldr r0, _080851E4 @ =Task_LavaridgeGymB1FWarpExit
|
||||
bl CreateTask
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080851E0: .4byte gFieldCallback
|
||||
_080851E4: .4byte Task_LavaridgeGymB1FWarpExit
|
||||
thumb_func_end FieldCB_LavaridgeGymB1FWarpExit
|
||||
|
||||
thumb_func_start Task_LavaridgeGymB1FWarpExit
|
||||
Task_LavaridgeGymB1FWarpExit: @ 80851E8
|
||||
push {r4-r6,lr}
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
ldr r6, _08085230 @ =sLavaridgeGymB1FWarpExitEffectFuncs
|
||||
ldr r2, _08085234 @ =gTasks
|
||||
ldr r5, _08085238 @ =gPlayerAvatar
|
||||
lsls r1, r0, 2
|
||||
adds r1, r0
|
||||
lsls r1, 3
|
||||
adds r4, r1, r2
|
||||
_080851FC:
|
||||
movs r0, 0x8
|
||||
ldrsh r3, [r4, r0]
|
||||
lsls r3, 2
|
||||
adds r3, r6
|
||||
ldrb r0, [r5, 0x5]
|
||||
lsls r1, r0, 3
|
||||
adds r1, r0
|
||||
lsls r1, 2
|
||||
ldr r0, _0808523C @ =gObjectEvents
|
||||
adds r1, r0
|
||||
ldrb r0, [r5, 0x4]
|
||||
lsls r2, r0, 4
|
||||
adds r2, r0
|
||||
lsls r2, 2
|
||||
ldr r0, _08085240 @ =gSprites
|
||||
adds r2, r0
|
||||
ldr r3, [r3]
|
||||
adds r0, r4, 0
|
||||
bl _call_via_r3
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _080851FC
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08085230: .4byte sLavaridgeGymB1FWarpExitEffectFuncs
|
||||
_08085234: .4byte gTasks
|
||||
_08085238: .4byte gPlayerAvatar
|
||||
_0808523C: .4byte gObjectEvents
|
||||
_08085240: .4byte gSprites
|
||||
thumb_func_end Task_LavaridgeGymB1FWarpExit
|
||||
|
||||
thumb_func_start LavaridgeGymB1FWarpExitEffect_1
|
||||
LavaridgeGymB1FWarpExitEffect_1: @ 8085244
|
||||
push {r4,r5,lr}
|
||||
adds r5, r0, 0
|
||||
adds r4, r1, 0
|
||||
bl CameraObjectReset2
|
||||
bl FreezeObjectEvents
|
||||
ldr r1, _08085270 @ =gPlayerAvatar
|
||||
movs r0, 0x1
|
||||
strb r0, [r1, 0x6]
|
||||
ldrb r0, [r4, 0x1]
|
||||
movs r1, 0x20
|
||||
orrs r0, r1
|
||||
strb r0, [r4, 0x1]
|
||||
ldrh r0, [r5, 0x8]
|
||||
adds r0, 0x1
|
||||
strh r0, [r5, 0x8]
|
||||
movs r0, 0
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_08085270: .4byte gPlayerAvatar
|
||||
thumb_func_end LavaridgeGymB1FWarpExitEffect_1
|
||||
|
||||
thumb_func_start LavaridgeGymB1FWarpExitEffect_2
|
||||
LavaridgeGymB1FWarpExitEffect_2: @ 8085274
|
||||
push {r4-r6,lr}
|
||||
adds r4, r0, 0
|
||||
adds r5, r1, 0
|
||||
adds r6, r2, 0
|
||||
bl IsWeatherNotFadingIn
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080852B4
|
||||
ldr r1, _080852BC @ =gFieldEffectArguments
|
||||
movs r2, 0x10
|
||||
ldrsh r0, [r5, r2]
|
||||
str r0, [r1]
|
||||
movs r2, 0x12
|
||||
ldrsh r0, [r5, r2]
|
||||
str r0, [r1, 0x4]
|
||||
adds r0, r6, 0
|
||||
adds r0, 0x43
|
||||
ldrb r0, [r0]
|
||||
subs r0, 0x1
|
||||
str r0, [r1, 0x8]
|
||||
ldrb r0, [r6, 0x5]
|
||||
lsls r0, 28
|
||||
lsrs r0, 30
|
||||
str r0, [r1, 0xC]
|
||||
movs r0, 0x31
|
||||
bl FieldEffectStart
|
||||
strh r0, [r4, 0xA]
|
||||
ldrh r0, [r4, 0x8]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4, 0x8]
|
||||
_080852B4:
|
||||
movs r0, 0
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_080852BC: .4byte gFieldEffectArguments
|
||||
thumb_func_end LavaridgeGymB1FWarpExitEffect_2
|
||||
|
||||
thumb_func_start LavaridgeGymB1FWarpExitEffect_3
|
||||
LavaridgeGymB1FWarpExitEffect_3: @ 80852C0
|
||||
push {r4,lr}
|
||||
adds r2, r0, 0
|
||||
adds r4, r1, 0
|
||||
movs r0, 0xA
|
||||
ldrsh r1, [r2, r0]
|
||||
lsls r0, r1, 4
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
ldr r1, _08085310 @ =gSprites
|
||||
adds r0, r1
|
||||
adds r0, 0x2B
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x1
|
||||
bls _08085308
|
||||
ldrh r0, [r2, 0x8]
|
||||
adds r0, 0x1
|
||||
strh r0, [r2, 0x8]
|
||||
ldrb r1, [r4, 0x1]
|
||||
movs r0, 0x21
|
||||
negs r0, r0
|
||||
ands r0, r1
|
||||
strb r0, [r4, 0x1]
|
||||
bl CameraObjectReset1
|
||||
movs r0, 0xA8
|
||||
bl PlaySE
|
||||
movs r0, 0x4
|
||||
bl sub_8064194
|
||||
adds r1, r0, 0
|
||||
lsls r1, 24
|
||||
lsrs r1, 24
|
||||
adds r0, r4, 0
|
||||
bl ObjectEventSetHeldMovement
|
||||
_08085308:
|
||||
movs r0, 0
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_08085310: .4byte gSprites
|
||||
thumb_func_end LavaridgeGymB1FWarpExitEffect_3
|
||||
|
||||
thumb_func_start LavaridgeGymB1FWarpExitEffect_4
|
||||
LavaridgeGymB1FWarpExitEffect_4: @ 8085314
|
||||
push {lr}
|
||||
adds r0, r1, 0
|
||||
bl ObjectEventClearHeldMovementIfFinished
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0808533E
|
||||
ldr r1, _08085344 @ =gPlayerAvatar
|
||||
movs r0, 0
|
||||
strb r0, [r1, 0x6]
|
||||
bl ScriptContext2_Disable
|
||||
bl UnfreezeObjectEvents
|
||||
ldr r0, _08085348 @ =Task_LavaridgeGymB1FWarpExit
|
||||
bl FindTaskIdByFunc
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl DestroyTask
|
||||
_0808533E:
|
||||
movs r0, 0
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_08085344: .4byte gPlayerAvatar
|
||||
_08085348: .4byte Task_LavaridgeGymB1FWarpExit
|
||||
thumb_func_end LavaridgeGymB1FWarpExitEffect_4
|
||||
|
||||
thumb_func_start FldEff_LavaridgeGymWarp
|
||||
FldEff_LavaridgeGymWarp: @ 808534C
|
||||
push {r4,lr}
|
||||
@@ -1406,7 +864,7 @@ _080859C4:
|
||||
FieldCallback_EscapeRopeExit: @ 80859D4
|
||||
push {lr}
|
||||
bl Overworld_PlaySpecialMapMusic
|
||||
bl pal_fill_for_maplights
|
||||
bl WarpFadeInScreen
|
||||
bl sub_8111CF0
|
||||
bl ScriptContext2_Enable
|
||||
bl FreezeObjectEvents
|
||||
@@ -1872,7 +1330,7 @@ _08085D84: .4byte Task_DoTeleportFieldEffect
|
||||
FieldCallback_TeleportIn: @ 8085D88
|
||||
push {lr}
|
||||
bl Overworld_PlaySpecialMapMusic
|
||||
bl pal_fill_for_maplights
|
||||
bl WarpFadeInScreen
|
||||
bl sub_8111CF0
|
||||
bl ScriptContext2_Enable
|
||||
bl FreezeObjectEvents
|
||||
@@ -3372,10 +2830,10 @@ _0808693E:
|
||||
bx r0
|
||||
thumb_func_end sub_8086920
|
||||
|
||||
thumb_func_start sub_8086944
|
||||
sub_8086944: @ 8086944
|
||||
thumb_func_start FldEff_UseSurf
|
||||
FldEff_UseSurf: @ 8086944
|
||||
push {r4,lr}
|
||||
ldr r0, _08086980 @ =sub_8086990
|
||||
ldr r0, _08086980 @ =Task_FldEffUseSurf
|
||||
movs r1, 0xFF
|
||||
bl CreateTask
|
||||
lsls r0, 24
|
||||
@@ -3389,7 +2847,7 @@ sub_8086944: @ 8086944
|
||||
ldr r0, [r0]
|
||||
strh r0, [r1, 0x26]
|
||||
bl sav1_reset_battle_music_maybe
|
||||
ldr r4, _0808698C @ =0x00000131
|
||||
ldr r4, _0808698C @ =0x00000131 @MUS_NAMINORI
|
||||
adds r0, r4, 0
|
||||
bl sub_8056124
|
||||
cmp r0, 0
|
||||
@@ -3402,19 +2860,19 @@ _08086978:
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_08086980: .4byte sub_8086990
|
||||
_08086980: .4byte Task_FldEffUseSurf
|
||||
_08086984: .4byte gTasks
|
||||
_08086988: .4byte gFieldEffectArguments
|
||||
_0808698C: .4byte 0x00000131
|
||||
thumb_func_end sub_8086944
|
||||
_0808698C: .4byte 0x00000131 @MUS_NAMINORI
|
||||
thumb_func_end FldEff_UseSurf
|
||||
|
||||
thumb_func_start sub_8086990
|
||||
sub_8086990: @ 8086990
|
||||
thumb_func_start Task_FldEffUseSurf
|
||||
Task_FldEffUseSurf: @ 8086990
|
||||
push {lr}
|
||||
adds r1, r0, 0
|
||||
lsls r1, 24
|
||||
lsrs r1, 24
|
||||
ldr r3, _080869B8 @ =gUnknown_83CC154
|
||||
ldr r3, _080869B8 @ =sUseSurfEffectFuncs
|
||||
ldr r2, _080869BC @ =gTasks
|
||||
lsls r0, r1, 2
|
||||
adds r0, r1
|
||||
@@ -3429,12 +2887,12 @@ sub_8086990: @ 8086990
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080869B8: .4byte gUnknown_83CC154
|
||||
_080869B8: .4byte sUseSurfEffectFuncs
|
||||
_080869BC: .4byte gTasks
|
||||
thumb_func_end sub_8086990
|
||||
thumb_func_end Task_FldEffUseSurf
|
||||
|
||||
thumb_func_start sub_80869C0
|
||||
sub_80869C0: @ 80869C0
|
||||
thumb_func_start UseSurfEffect_1
|
||||
UseSurfEffect_1: @ 80869C0
|
||||
push {r4-r6,lr}
|
||||
mov r6, r8
|
||||
push {r6}
|
||||
@@ -3476,10 +2934,10 @@ sub_80869C0: @ 80869C0
|
||||
.align 2, 0
|
||||
_08086A18: .4byte gPlayerAvatar
|
||||
_08086A1C: .4byte gObjectEvents
|
||||
thumb_func_end sub_80869C0
|
||||
thumb_func_end UseSurfEffect_1
|
||||
|
||||
thumb_func_start sub_8086A20
|
||||
sub_8086A20: @ 8086A20
|
||||
thumb_func_start UseSurfEffect_2
|
||||
UseSurfEffect_2: @ 8086A20
|
||||
push {r4,r5,lr}
|
||||
adds r5, r0, 0
|
||||
ldr r0, _08086A64 @ =gPlayerAvatar
|
||||
@@ -3514,10 +2972,10 @@ _08086A5C:
|
||||
.align 2, 0
|
||||
_08086A64: .4byte gPlayerAvatar
|
||||
_08086A68: .4byte gObjectEvents
|
||||
thumb_func_end sub_8086A20
|
||||
thumb_func_end UseSurfEffect_2
|
||||
|
||||
thumb_func_start sub_8086A6C
|
||||
sub_8086A6C: @ 8086A6C
|
||||
thumb_func_start UseSurfEffect_3
|
||||
UseSurfEffect_3: @ 8086A6C
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
ldr r0, _08086AA8 @ =gPlayerAvatar
|
||||
@@ -3551,10 +3009,10 @@ _08086AA2:
|
||||
_08086AA8: .4byte gPlayerAvatar
|
||||
_08086AAC: .4byte gObjectEvents
|
||||
_08086AB0: .4byte gFieldEffectArguments
|
||||
thumb_func_end sub_8086A6C
|
||||
thumb_func_end UseSurfEffect_3
|
||||
|
||||
thumb_func_start sub_8086AB4
|
||||
sub_8086AB4: @ 8086AB4
|
||||
thumb_func_start UseSurfEffect_4
|
||||
UseSurfEffect_4: @ 8086AB4
|
||||
push {r4-r6,lr}
|
||||
adds r6, r0, 0
|
||||
movs r0, 0x6
|
||||
@@ -3609,10 +3067,10 @@ _08086B1E:
|
||||
_08086B24: .4byte gPlayerAvatar
|
||||
_08086B28: .4byte gObjectEvents
|
||||
_08086B2C: .4byte gFieldEffectArguments
|
||||
thumb_func_end sub_8086AB4
|
||||
thumb_func_end UseSurfEffect_4
|
||||
|
||||
thumb_func_start sub_8086B30
|
||||
sub_8086B30: @ 8086B30
|
||||
thumb_func_start UseSurfEffect_5
|
||||
UseSurfEffect_5: @ 8086B30
|
||||
push {r4,r5,lr}
|
||||
ldr r5, _08086B9C @ =gPlayerAvatar
|
||||
ldrb r1, [r5, 0x5]
|
||||
@@ -3647,7 +3105,7 @@ sub_8086B30: @ 8086B30
|
||||
bl ScriptContext2_Disable
|
||||
movs r0, 0x9
|
||||
bl FieldEffectActiveListRemove
|
||||
ldr r0, _08086BA4 @ =sub_8086990
|
||||
ldr r0, _08086BA4 @ =Task_FldEffUseSurf
|
||||
bl FindTaskIdByFunc
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
@@ -3661,11 +3119,11 @@ _08086B96:
|
||||
.align 2, 0
|
||||
_08086B9C: .4byte gPlayerAvatar
|
||||
_08086BA0: .4byte gObjectEvents
|
||||
_08086BA4: .4byte sub_8086990
|
||||
thumb_func_end sub_8086B30
|
||||
_08086BA4: .4byte Task_FldEffUseSurf
|
||||
thumb_func_end UseSurfEffect_5
|
||||
|
||||
thumb_func_start sub_8086BA8
|
||||
sub_8086BA8: @ 8086BA8
|
||||
thumb_func_start FldEff_Unk41
|
||||
FldEff_Unk41: @ 8086BA8
|
||||
push {lr}
|
||||
ldr r0, _08086BC8 @ =gQuestLogState
|
||||
ldrb r0, [r0]
|
||||
@@ -3675,7 +3133,7 @@ sub_8086BA8: @ 8086BA8
|
||||
movs r1, 0x59
|
||||
bl sub_811278C
|
||||
_08086BBA:
|
||||
ldr r0, _08086BCC @ =sub_8086BD0
|
||||
ldr r0, _08086BCC @ =Task_FldEffUnk41
|
||||
movs r1, 0xFF
|
||||
bl CreateTask
|
||||
movs r0, 0
|
||||
@@ -3683,16 +3141,16 @@ _08086BBA:
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_08086BC8: .4byte gQuestLogState
|
||||
_08086BCC: .4byte sub_8086BD0
|
||||
thumb_func_end sub_8086BA8
|
||||
_08086BCC: .4byte Task_FldEffUnk41
|
||||
thumb_func_end FldEff_Unk41
|
||||
|
||||
thumb_func_start sub_8086BD0
|
||||
sub_8086BD0: @ 8086BD0
|
||||
thumb_func_start Task_FldEffUnk41
|
||||
Task_FldEffUnk41: @ 8086BD0
|
||||
push {lr}
|
||||
adds r1, r0, 0
|
||||
lsls r1, 24
|
||||
lsrs r1, 24
|
||||
ldr r3, _08086BF8 @ =gUnknown_83CC168
|
||||
ldr r3, _08086BF8 @ =sUnk41EffectFuncs
|
||||
ldr r2, _08086BFC @ =gTasks
|
||||
lsls r0, r1, 2
|
||||
adds r0, r1
|
||||
@@ -3707,12 +3165,12 @@ sub_8086BD0: @ 8086BD0
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08086BF8: .4byte gUnknown_83CC168
|
||||
_08086BF8: .4byte sUnk41EffectFuncs
|
||||
_08086BFC: .4byte gTasks
|
||||
thumb_func_end sub_8086BD0
|
||||
thumb_func_end Task_FldEffUnk41
|
||||
|
||||
thumb_func_start sub_8086C00
|
||||
sub_8086C00: @ 8086C00
|
||||
thumb_func_start Unk41Effect_1
|
||||
Unk41Effect_1: @ 8086C00
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
bl ScriptContext2_Enable
|
||||
@@ -3728,10 +3186,10 @@ sub_8086C00: @ 8086C00
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08086C20: .4byte gPlayerAvatar
|
||||
thumb_func_end sub_8086C00
|
||||
thumb_func_end Unk41Effect_1
|
||||
|
||||
thumb_func_start sub_8086C24
|
||||
sub_8086C24: @ 8086C24
|
||||
thumb_func_start Unk41Effect_2
|
||||
Unk41Effect_2: @ 8086C24
|
||||
push {r4,r5,lr}
|
||||
adds r5, r0, 0
|
||||
ldr r0, _08086C68 @ =gPlayerAvatar
|
||||
@@ -3766,10 +3224,10 @@ _08086C60:
|
||||
.align 2, 0
|
||||
_08086C68: .4byte gPlayerAvatar
|
||||
_08086C6C: .4byte gObjectEvents
|
||||
thumb_func_end sub_8086C24
|
||||
thumb_func_end Unk41Effect_2
|
||||
|
||||
thumb_func_start sub_8086C70
|
||||
sub_8086C70: @ 8086C70
|
||||
thumb_func_start Unk41Effect_3
|
||||
Unk41Effect_3: @ 8086C70
|
||||
push {r4-r6,lr}
|
||||
adds r6, r0, 0
|
||||
ldr r5, _08086C9C @ =gPlayerAvatar
|
||||
@@ -3833,10 +3291,10 @@ _08086CEE:
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8086C70
|
||||
thumb_func_end Unk41Effect_3
|
||||
|
||||
thumb_func_start sub_8086CF4
|
||||
sub_8086CF4: @ 8086CF4
|
||||
thumb_func_start Unk41Effect_4
|
||||
Unk41Effect_4: @ 8086CF4
|
||||
push {r4,lr}
|
||||
ldr r4, _08086D2C @ =gPlayerAvatar
|
||||
ldrb r1, [r4, 0x5]
|
||||
@@ -3853,7 +3311,7 @@ sub_8086CF4: @ 8086CF4
|
||||
strb r0, [r4, 0x6]
|
||||
movs r0, 0x41
|
||||
bl FieldEffectActiveListRemove
|
||||
ldr r0, _08086D34 @ =sub_8086BD0
|
||||
ldr r0, _08086D34 @ =Task_FldEffUnk41
|
||||
bl FindTaskIdByFunc
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
@@ -3865,8 +3323,8 @@ _08086D26:
|
||||
.align 2, 0
|
||||
_08086D2C: .4byte gPlayerAvatar
|
||||
_08086D30: .4byte gObjectEvents
|
||||
_08086D34: .4byte sub_8086BD0
|
||||
thumb_func_end sub_8086CF4
|
||||
_08086D34: .4byte Task_FldEffUnk41
|
||||
thumb_func_end Unk41Effect_4
|
||||
|
||||
thumb_func_start sub_8086D38
|
||||
sub_8086D38: @ 8086D38
|
||||
|
||||
@@ -2720,8 +2720,8 @@ StartAshFieldEffect: @ 80DC23C
|
||||
_080DC26C: .4byte gFieldEffectArguments
|
||||
thumb_func_end StartAshFieldEffect
|
||||
|
||||
thumb_func_start oei_ash
|
||||
oei_ash: @ 80DC270
|
||||
thumb_func_start FldEff_Ash
|
||||
FldEff_Ash: @ 80DC270
|
||||
push {r4,r5,lr}
|
||||
sub sp, 0x4
|
||||
ldr r5, _080DC2F0 @ =gFieldEffectArguments
|
||||
@@ -2789,7 +2789,7 @@ _080DC2E6:
|
||||
_080DC2F0: .4byte gFieldEffectArguments
|
||||
_080DC2F4: .4byte gFieldEffectObjectTemplatePointers
|
||||
_080DC2F8: .4byte gSprites
|
||||
thumb_func_end oei_ash
|
||||
thumb_func_end FldEff_Ash
|
||||
|
||||
thumb_func_start sub_80DC2FC
|
||||
sub_80DC2FC: @ 80DC2FC
|
||||
@@ -2906,8 +2906,8 @@ _080DC3C8:
|
||||
bx r0
|
||||
thumb_func_end sub_80DC3A8
|
||||
|
||||
thumb_func_start sub_80DC3D0
|
||||
sub_80DC3D0: @ 80DC3D0
|
||||
thumb_func_start FldEff_SurfBlob
|
||||
FldEff_SurfBlob: @ 80DC3D0
|
||||
push {r4,r5,lr}
|
||||
ldr r4, _080DC43C @ =gFieldEffectArguments
|
||||
adds r1, r4, 0x4
|
||||
@@ -2964,7 +2964,7 @@ _080DC43C: .4byte gFieldEffectArguments
|
||||
_080DC440: .4byte gFieldEffectObjectTemplatePointers
|
||||
_080DC444: .4byte gSprites
|
||||
_080DC448: .4byte 0x0000ffff
|
||||
thumb_func_end sub_80DC3D0
|
||||
thumb_func_end FldEff_SurfBlob
|
||||
|
||||
thumb_func_start sub_80DC44C
|
||||
sub_80DC44C: @ 80DC44C
|
||||
|
||||
+11
-27
@@ -6,22 +6,6 @@
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
.align 2
|
||||
sLavaridgeGymB1FWarpEffectFuncs:: @ 83CC0A4 dataptr
|
||||
.4byte LavaridgeGymB1FWarpEffect_1
|
||||
.4byte LavaridgeGymB1FWarpEffect_2
|
||||
.4byte LavaridgeGymB1FWarpEffect_3
|
||||
.4byte LavaridgeGymB1FWarpEffect_4
|
||||
.4byte LavaridgeGymB1FWarpEffect_5
|
||||
.4byte LavaridgeGymB1FWarpEffect_6
|
||||
|
||||
.align 2
|
||||
sLavaridgeGymB1FWarpExitEffectFuncs:: @ 83CC0BC dataptr
|
||||
.4byte LavaridgeGymB1FWarpExitEffect_1
|
||||
.4byte LavaridgeGymB1FWarpExitEffect_2
|
||||
.4byte LavaridgeGymB1FWarpExitEffect_3
|
||||
.4byte LavaridgeGymB1FWarpExitEffect_4
|
||||
|
||||
.align 2
|
||||
sLavaridgeGym1FWarpEffectFuncs:: @ 83CC0CC dataptr
|
||||
.4byte LavaridgeGym1FWarpEffect_1
|
||||
@@ -80,19 +64,19 @@ sShowMonIndoorsEffectFuncs:: @ 83CC138 dataptr
|
||||
.4byte ShowMonEffect_Indoors_7
|
||||
|
||||
.align 2
|
||||
gUnknown_83CC154:: @ 83CC154 dataptr
|
||||
.4byte sub_80869C0
|
||||
.4byte sub_8086A20
|
||||
.4byte sub_8086A6C
|
||||
.4byte sub_8086AB4
|
||||
.4byte sub_8086B30
|
||||
sUseSurfEffectFuncs:: @ 83CC154 dataptr
|
||||
.4byte UseSurfEffect_1
|
||||
.4byte UseSurfEffect_2
|
||||
.4byte UseSurfEffect_3
|
||||
.4byte UseSurfEffect_4
|
||||
.4byte UseSurfEffect_5
|
||||
|
||||
.align 2
|
||||
gUnknown_83CC168:: @ 83CC168 dataptr
|
||||
.4byte sub_8086C00
|
||||
.4byte sub_8086C24
|
||||
.4byte sub_8086C70
|
||||
.4byte sub_8086CF4
|
||||
sUnk41EffectFuncs:: @ 83CC168 dataptr
|
||||
.4byte Unk41Effect_1
|
||||
.4byte Unk41Effect_2
|
||||
.4byte Unk41Effect_3
|
||||
.4byte Unk41Effect_4
|
||||
|
||||
gUnknown_83CC178:: @ 83CC178 dataptr (incomplete)
|
||||
.4byte sub_8086E70
|
||||
|
||||
@@ -102,15 +102,15 @@ gFldEffScript_FieldMoveShowMon:: @ 81D97F0
|
||||
end
|
||||
|
||||
gFldEffScript_Ash:: @ 81D97F6
|
||||
loadfadedpal_callnative gUnknown_83A5348, oei_ash
|
||||
loadfadedpal_callnative gUnknown_83A5348, FldEff_Ash
|
||||
end
|
||||
|
||||
gFldEffScript_SurfBlob:: @ 81D9800
|
||||
callnative sub_80DC3D0
|
||||
callnative FldEff_SurfBlob
|
||||
end
|
||||
|
||||
gFldEffScript_UseSurf:: @ 81D9806
|
||||
callnative sub_8086944
|
||||
callnative FldEff_UseSurf
|
||||
end
|
||||
|
||||
gFldEffScript_Dust:: @ 81D980C
|
||||
@@ -326,7 +326,7 @@ gFldEffScript_SmileyFaceIcon:: @ 81D998C
|
||||
end
|
||||
|
||||
gFldEffScript_Unk41:: @ 81D9992
|
||||
callnative sub_8086BA8
|
||||
callnative FldEff_Unk41
|
||||
end
|
||||
|
||||
gFldEffScript_DoubleExclMarkIcon:: @ 81D9998
|
||||
|
||||
@@ -117,6 +117,7 @@ bool32 RfuUnionObjectIsInvisible(u8 objectEventId);
|
||||
void RfuUnionObjectStartWarp(u8 objectEventId, u8 animNo);
|
||||
bool32 RfuUnionObjectIsWarping(u8 objectEventId);
|
||||
u8 sub_8063F2C(u8 direction);
|
||||
u8 sub_8064194(u8 direction);
|
||||
|
||||
void sub_805F378(s16 x, s16 y);
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ void WarpFadeOutScreen(void);
|
||||
void FieldCallback_ReturnToEventScript2(void);
|
||||
void FadeInFromBlack(void);
|
||||
void FadeTransition_FadeInOnReturnToStartMenu(void);
|
||||
void pal_fill_for_maplights(void);
|
||||
void WarpFadeInScreen(void);
|
||||
|
||||
void sub_807DCE4(void);
|
||||
|
||||
|
||||
+209
-2
@@ -1099,7 +1099,7 @@ bool8 (*const sFallWarpEffectCBPtrs[])(struct Task * task) = {
|
||||
void FieldCB_FallWarpExit(void)
|
||||
{
|
||||
Overworld_PlaySpecialMapMusic();
|
||||
pal_fill_for_maplights();
|
||||
WarpFadeInScreen();
|
||||
sub_8111CF0();
|
||||
ScriptContext2_Enable();
|
||||
FreezeObjectEvents();
|
||||
@@ -1403,7 +1403,7 @@ void Escalator_TransitionToWarpInEffect(void)
|
||||
void FieldCB_EscalatorWarpIn(void)
|
||||
{
|
||||
Overworld_PlaySpecialMapMusic();
|
||||
pal_fill_for_maplights();
|
||||
WarpFadeInScreen();
|
||||
sub_8111CF0();
|
||||
ScriptContext2_Enable();
|
||||
FreezeObjectEvents();
|
||||
@@ -1667,3 +1667,210 @@ bool8 dive_3_unknown(struct Task * task)
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void Task_LavaridgeGymB1FWarp(u8 taskId);
|
||||
bool8 LavaridgeGymB1FWarpEffect_1(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite);
|
||||
bool8 LavaridgeGymB1FWarpEffect_2(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite);
|
||||
bool8 LavaridgeGymB1FWarpEffect_3(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite);
|
||||
bool8 LavaridgeGymB1FWarpEffect_4(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite);
|
||||
bool8 LavaridgeGymB1FWarpEffect_5(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite);
|
||||
bool8 LavaridgeGymB1FWarpEffect_6(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite);
|
||||
void FieldCB_LavaridgeGymB1FWarpExit(void);
|
||||
void Task_LavaridgeGymB1FWarpExit(u8 taskId);
|
||||
bool8 LavaridgeGymB1FWarpExitEffect_1(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite);
|
||||
bool8 LavaridgeGymB1FWarpExitEffect_2(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite);
|
||||
bool8 LavaridgeGymB1FWarpExitEffect_3(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite);
|
||||
bool8 LavaridgeGymB1FWarpExitEffect_4(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite);
|
||||
|
||||
bool8 (*const sLavaridgeGymB1FWarpEffectFuncs[])(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite) = {
|
||||
LavaridgeGymB1FWarpEffect_1,
|
||||
LavaridgeGymB1FWarpEffect_2,
|
||||
LavaridgeGymB1FWarpEffect_3,
|
||||
LavaridgeGymB1FWarpEffect_4,
|
||||
LavaridgeGymB1FWarpEffect_5,
|
||||
LavaridgeGymB1FWarpEffect_6
|
||||
};
|
||||
|
||||
bool8 (*const sLavaridgeGymB1FWarpExitEffectFuncs[])(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite) = {
|
||||
LavaridgeGymB1FWarpExitEffect_1,
|
||||
LavaridgeGymB1FWarpExitEffect_2,
|
||||
LavaridgeGymB1FWarpExitEffect_3,
|
||||
LavaridgeGymB1FWarpExitEffect_4
|
||||
};
|
||||
|
||||
void StartLavaridgeGymB1FWarp(u8 priority)
|
||||
{
|
||||
CreateTask(Task_LavaridgeGymB1FWarp, priority);
|
||||
}
|
||||
|
||||
void Task_LavaridgeGymB1FWarp(u8 taskId)
|
||||
{
|
||||
while (sLavaridgeGymB1FWarpEffectFuncs[gTasks[taskId].data[0]](&gTasks[taskId], &gObjectEvents[gPlayerAvatar.objectEventId], &gSprites[gPlayerAvatar.spriteId]));
|
||||
}
|
||||
|
||||
bool8 LavaridgeGymB1FWarpEffect_1(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite)
|
||||
{
|
||||
FreezeObjectEvents();
|
||||
CameraObjectReset2();
|
||||
SetCameraPanningCallback(NULL);
|
||||
gPlayerAvatar.preventStep = TRUE;
|
||||
objectEvent->fixedPriority = 1;
|
||||
task->data[1] = 1;
|
||||
task->data[0]++;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 LavaridgeGymB1FWarpEffect_2(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite)
|
||||
{
|
||||
SetCameraPanning(0, task->data[1]);
|
||||
task->data[1] = -task->data[1];
|
||||
task->data[2]++;
|
||||
if (task->data[2] > 7)
|
||||
{
|
||||
task->data[2] = 0;
|
||||
task->data[0]++;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 LavaridgeGymB1FWarpEffect_3(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite)
|
||||
{
|
||||
sprite->pos2.y = 0;
|
||||
task->data[3] = 1;
|
||||
gFieldEffectArguments[0] = objectEvent->currentCoords.x;
|
||||
gFieldEffectArguments[1] = objectEvent->currentCoords.y;
|
||||
gFieldEffectArguments[2] = sprite->subpriority - 1;
|
||||
gFieldEffectArguments[3] = sprite->oam.priority;
|
||||
FieldEffectStart(FLDEFF_LAVARIDGE_GYM_WARP);
|
||||
PlaySE(SE_W153);
|
||||
task->data[0]++;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 LavaridgeGymB1FWarpEffect_4(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite)
|
||||
{
|
||||
s16 centerToCornerVecY;
|
||||
SetCameraPanning(0, task->data[1]);
|
||||
if (task->data[1] = -task->data[1], ++task->data[2] <= 17)
|
||||
{
|
||||
if (!(task->data[2] & 1) && (task->data[1] <= 3))
|
||||
{
|
||||
task->data[1] <<= 1;
|
||||
}
|
||||
} else if (!(task->data[2] & 4) && (task->data[1] > 0))
|
||||
{
|
||||
task->data[1] >>= 1;
|
||||
}
|
||||
if (task->data[2] > 6)
|
||||
{
|
||||
centerToCornerVecY = -(sprite->centerToCornerVecY << 1);
|
||||
if (sprite->pos2.y > -(sprite->pos1.y + sprite->centerToCornerVecY + gSpriteCoordOffsetY + centerToCornerVecY))
|
||||
{
|
||||
sprite->pos2.y -= task->data[3];
|
||||
if (task->data[3] <= 7)
|
||||
{
|
||||
task->data[3]++;
|
||||
}
|
||||
} else
|
||||
{
|
||||
task->data[4] = 1;
|
||||
}
|
||||
}
|
||||
if (task->data[5] == 0 && sprite->pos2.y < -0x10)
|
||||
{
|
||||
task->data[5]++;
|
||||
objectEvent->fixedPriority = 1;
|
||||
sprite->oam.priority = 1;
|
||||
sprite->subspriteMode = SUBSPRITES_IGNORE_PRIORITY;
|
||||
}
|
||||
if (task->data[1] == 0 && task->data[4] != 0)
|
||||
{
|
||||
task->data[0]++;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 LavaridgeGymB1FWarpEffect_5(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite)
|
||||
{
|
||||
TryFadeOutOldMapMusic();
|
||||
WarpFadeOutScreen();
|
||||
task->data[0]++;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 LavaridgeGymB1FWarpEffect_6(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite)
|
||||
{
|
||||
if (!gPaletteFade.active && BGMusicStopped() == TRUE)
|
||||
{
|
||||
WarpIntoMap();
|
||||
gFieldCallback = FieldCB_LavaridgeGymB1FWarpExit;
|
||||
SetMainCallback2(CB2_LoadMap);
|
||||
DestroyTask(FindTaskIdByFunc(Task_LavaridgeGymB1FWarp));
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void FieldCB_LavaridgeGymB1FWarpExit(void)
|
||||
{
|
||||
Overworld_PlaySpecialMapMusic();
|
||||
WarpFadeInScreen();
|
||||
sub_8111CF0();
|
||||
ScriptContext2_Enable();
|
||||
gFieldCallback = NULL;
|
||||
CreateTask(Task_LavaridgeGymB1FWarpExit, 0);
|
||||
}
|
||||
|
||||
void Task_LavaridgeGymB1FWarpExit(u8 taskId)
|
||||
{
|
||||
while (sLavaridgeGymB1FWarpExitEffectFuncs[gTasks[taskId].data[0]](&gTasks[taskId], &gObjectEvents[gPlayerAvatar.objectEventId], &gSprites[gPlayerAvatar.spriteId]));
|
||||
}
|
||||
|
||||
bool8 LavaridgeGymB1FWarpExitEffect_1(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite)
|
||||
{
|
||||
CameraObjectReset2();
|
||||
FreezeObjectEvents();
|
||||
gPlayerAvatar.preventStep = TRUE;
|
||||
objectEvent->invisible = TRUE;
|
||||
task->data[0]++;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 LavaridgeGymB1FWarpExitEffect_2(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite)
|
||||
{
|
||||
if (IsWeatherNotFadingIn())
|
||||
{
|
||||
gFieldEffectArguments[0] = objectEvent->currentCoords.x;
|
||||
gFieldEffectArguments[1] = objectEvent->currentCoords.y;
|
||||
gFieldEffectArguments[2] = sprite->subpriority - 1;
|
||||
gFieldEffectArguments[3] = sprite->oam.priority;
|
||||
task->data[1] = FieldEffectStart(FLDEFF_POP_OUT_OF_ASH);
|
||||
task->data[0]++;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 LavaridgeGymB1FWarpExitEffect_3(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite)
|
||||
{
|
||||
sprite = &gSprites[task->data[1]];
|
||||
if (sprite->animCmdIndex > 1)
|
||||
{
|
||||
task->data[0]++;
|
||||
objectEvent->invisible = FALSE;
|
||||
CameraObjectReset1();
|
||||
PlaySE(SE_W091);
|
||||
ObjectEventSetHeldMovement(objectEvent, sub_8064194(DIR_EAST));
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 LavaridgeGymB1FWarpExitEffect_4(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite)
|
||||
{
|
||||
if (ObjectEventClearHeldMovementIfFinished(objectEvent))
|
||||
{
|
||||
gPlayerAvatar.preventStep = FALSE;
|
||||
ScriptContext2_Disable();
|
||||
UnfreezeObjectEvents();
|
||||
DestroyTask(FindTaskIdByFunc(Task_LavaridgeGymB1FWarpExit));
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ void palette_bg_faded_fill_black(void)
|
||||
CpuFastFill16(RGB_BLACK, gPlttBufferFaded, 0x400);
|
||||
}
|
||||
|
||||
void pal_fill_for_maplights(void)
|
||||
void WarpFadeInScreen(void)
|
||||
{
|
||||
switch (sub_80C9DCC(get_map_light_from_warp0(), GetCurrentMapType()))
|
||||
{
|
||||
@@ -178,7 +178,7 @@ static void task_mpl_807DD60(u8 taskId)
|
||||
case 1:
|
||||
if (gTasks[task->data[1]].isActive != TRUE)
|
||||
{
|
||||
pal_fill_for_maplights();
|
||||
WarpFadeInScreen();
|
||||
task->data[0]++;
|
||||
}
|
||||
break;
|
||||
@@ -212,7 +212,7 @@ static void sub_807DDF0(u8 taskId)
|
||||
case 1:
|
||||
if (IsLinkTaskFinished())
|
||||
{
|
||||
pal_fill_for_maplights();
|
||||
WarpFadeInScreen();
|
||||
task->data[0]++;
|
||||
}
|
||||
break;
|
||||
@@ -278,7 +278,7 @@ static void sub_807DE78(bool8 a0)
|
||||
static void sub_807DF4C(bool8 a0)
|
||||
{
|
||||
if (!a0)
|
||||
pal_fill_for_maplights();
|
||||
WarpFadeInScreen();
|
||||
else
|
||||
FadeInFromBlack();
|
||||
}
|
||||
@@ -302,7 +302,7 @@ void sub_807DF7C(void)
|
||||
static void sub_807DF94(void)
|
||||
{
|
||||
Overworld_PlaySpecialMapMusic();
|
||||
pal_fill_for_maplights();
|
||||
WarpFadeInScreen();
|
||||
sub_8111CF0();
|
||||
PlaySE(SE_TK_WARPOUT);
|
||||
CreateTask(sub_807E31C, 10);
|
||||
@@ -906,7 +906,7 @@ static void sub_807EC34(u8 taskId)
|
||||
break;
|
||||
case 0:
|
||||
Overworld_PlaySpecialMapMusic();
|
||||
pal_fill_for_maplights();
|
||||
WarpFadeInScreen();
|
||||
ScriptContext2_Enable();
|
||||
sub_807ECBC(&data[1], &data[2], &data[3], &data[4], &data[5]);
|
||||
data[0]++;
|
||||
|
||||
@@ -162,7 +162,7 @@ static void sub_815077C(void)
|
||||
|
||||
static void sub_8150794(u8 taskId)
|
||||
{
|
||||
if (!FieldEffectActiveListContains(0x41))
|
||||
if (!FieldEffectActiveListContains(FLDEFF_UNK_41))
|
||||
{
|
||||
UnfreezeObjectEvents();
|
||||
ScriptContext2_Disable();
|
||||
|
||||
Reference in New Issue
Block a user