Port fldeff_teleport

This commit is contained in:
ultima-soul 2019-04-17 14:09:54 -07:00
parent f4b8673938
commit d74dda011a
21 changed files with 158 additions and 191 deletions

View File

@ -5156,8 +5156,8 @@ _08085B58:
_08085B60: .4byte sub_8085A24
thumb_func_end sub_8085A80
thumb_func_start sub_8085B64
sub_8085B64: @ 8085B64
thumb_func_start CreateTeleportFieldEffectTask
CreateTeleportFieldEffectTask: @ 8085B64
push {lr}
ldr r0, _08085B74 @ =sub_8085B78
movs r1, 0
@ -5166,7 +5166,7 @@ sub_8085B64: @ 8085B64
bx r0
.align 2, 0
_08085B74: .4byte sub_8085B78
thumb_func_end sub_8085B64
thumb_func_end CreateTeleportFieldEffectTask
thumb_func_start sub_8085B78
sub_8085B78: @ 8085B78

View File

@ -44,34 +44,34 @@ sub_8097898: @ 8097898
lsrs r0, 24
cmp r0, 0x1
bne _08097904
ldr r1, _080978D0 @ =gUnknown_3005024
ldr r0, _080978D4 @ =hm_add_c3_launch_phase_2
ldr r1, _080978D0 @ =gFieldCallback2
ldr r0, _080978D4 @ =FieldCallback_PrepareFadeInFromMenu
str r0, [r1]
ldr r1, _080978D8 @ =gUnknown_203B0C4
ldr r1, _080978D8 @ =gPostMenuFieldCallback
ldr r0, _080978DC @ =sub_80979D0
b _080978EC
.align 2, 0
_080978CC: .4byte gUnknown_2039874
_080978D0: .4byte gUnknown_3005024
_080978D4: .4byte hm_add_c3_launch_phase_2
_080978D8: .4byte gUnknown_203B0C4
_080978D0: .4byte gFieldCallback2
_080978D4: .4byte FieldCallback_PrepareFadeInFromMenu
_080978D8: .4byte gPostMenuFieldCallback
_080978DC: .4byte sub_80979D0
_080978E0:
strb r0, [r4]
_080978E2:
ldr r1, _080978F4 @ =gUnknown_3005024
ldr r0, _080978F8 @ =hm_add_c3_launch_phase_2
ldr r1, _080978F4 @ =gFieldCallback2
ldr r0, _080978F8 @ =FieldCallback_PrepareFadeInFromMenu
str r0, [r1]
ldr r1, _080978FC @ =gUnknown_203B0C4
ldr r1, _080978FC @ =gPostMenuFieldCallback
ldr r0, _08097900 @ =sub_8097984
_080978EC:
str r0, [r1]
movs r0, 0x1
b _08097970
.align 2, 0
_080978F4: .4byte gUnknown_3005024
_080978F8: .4byte hm_add_c3_launch_phase_2
_080978FC: .4byte gUnknown_203B0C4
_080978F4: .4byte gFieldCallback2
_080978F8: .4byte FieldCallback_PrepareFadeInFromMenu
_080978FC: .4byte gPostMenuFieldCallback
_08097900: .4byte sub_8097984
_08097904:
ldr r4, _0809797C @ =gUnknown_2039A04

View File

@ -17,10 +17,10 @@ sub_80C9B2C: @ 80C9B2C
lsls r0, 24
cmp r0, 0
bne _080C9B6C
ldr r1, _080C9B5C @ =gUnknown_3005024
ldr r0, _080C9B60 @ =hm_add_c3_launch_phase_2
ldr r1, _080C9B5C @ =gFieldCallback2
ldr r0, _080C9B60 @ =FieldCallback_PrepareFadeInFromMenu
str r0, [r1]
ldr r1, _080C9B64 @ =gUnknown_203B0C4
ldr r1, _080C9B64 @ =gPostMenuFieldCallback
ldr r0, _080C9B68 @ =sub_80C9B74
str r0, [r1]
movs r0, 0x1
@ -28,9 +28,9 @@ sub_80C9B2C: @ 80C9B2C
.align 2, 0
_080C9B54: .4byte gMapHeader
_080C9B58: .4byte 0x00000806
_080C9B5C: .4byte gUnknown_3005024
_080C9B60: .4byte hm_add_c3_launch_phase_2
_080C9B64: .4byte gUnknown_203B0C4
_080C9B5C: .4byte gFieldCallback2
_080C9B60: .4byte FieldCallback_PrepareFadeInFromMenu
_080C9B64: .4byte gPostMenuFieldCallback
_080C9B68: .4byte sub_80C9B74
_080C9B6C:
movs r0, 0

View File

@ -28,10 +28,10 @@ _080D080C:
lsls r0, 24
lsrs r0, 24
strh r0, [r4]
ldr r1, _080D0830 @ =gUnknown_3005024
ldr r0, _080D0834 @ =hm_add_c3_launch_phase_2
ldr r1, _080D0830 @ =gFieldCallback2
ldr r0, _080D0834 @ =FieldCallback_PrepareFadeInFromMenu
str r0, [r1]
ldr r1, _080D0838 @ =gUnknown_203B0C4
ldr r1, _080D0838 @ =gPostMenuFieldCallback
ldr r0, _080D083C @ =sub_80D0840
str r0, [r1]
movs r0, 0x1
@ -41,9 +41,9 @@ _080D0826:
bx r1
.align 2, 0
_080D082C: .4byte gSpecialVar_Result
_080D0830: .4byte gUnknown_3005024
_080D0834: .4byte hm_add_c3_launch_phase_2
_080D0838: .4byte gUnknown_203B0C4
_080D0830: .4byte gFieldCallback2
_080D0834: .4byte FieldCallback_PrepareFadeInFromMenu
_080D0838: .4byte gPostMenuFieldCallback
_080D083C: .4byte sub_80D0840
thumb_func_end sub_80D07EC

View File

@ -20,18 +20,18 @@ _080DE0C4: .4byte gUnknown_203B0A0
thumb_func_start sub_80DE0C8
sub_80DE0C8: @ 80DE0C8
ldr r1, _080DE0D8 @ =gUnknown_3005024
ldr r0, _080DE0DC @ =hm_add_c3_launch_phase_2
ldr r1, _080DE0D8 @ =gFieldCallback2
ldr r0, _080DE0DC @ =FieldCallback_PrepareFadeInFromMenu
str r0, [r1]
ldr r1, _080DE0E0 @ =gUnknown_203B0C4
ldr r1, _080DE0E0 @ =gPostMenuFieldCallback
ldr r0, _080DE0E4 @ =hm2_sweet_scent
str r0, [r1]
movs r0, 0x1
bx lr
.align 2, 0
_080DE0D8: .4byte gUnknown_3005024
_080DE0DC: .4byte hm_add_c3_launch_phase_2
_080DE0E0: .4byte gUnknown_203B0C4
_080DE0D8: .4byte gFieldCallback2
_080DE0DC: .4byte FieldCallback_PrepareFadeInFromMenu
_080DE0E0: .4byte gPostMenuFieldCallback
_080DE0E4: .4byte hm2_sweet_scent
thumb_func_end sub_80DE0C8

View File

@ -1,92 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start SetUpFieldMove_Teleport
SetUpFieldMove_Teleport: @ 80F66F0
push {lr}
ldr r0, _080F6708 @ =gMapHeader
ldrb r0, [r0, 0x17]
bl is_light_level_1_2_3_or_6
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _080F670C
movs r0, 0
b _080F671A
.align 2, 0
_080F6708: .4byte gMapHeader
_080F670C:
ldr r1, _080F6720 @ =gUnknown_3005024
ldr r0, _080F6724 @ =hm_add_c3_launch_phase_2
str r0, [r1]
ldr r1, _080F6728 @ =gUnknown_203B0C4
ldr r0, _080F672C @ =hm_teleport_run_dp02scr
str r0, [r1]
movs r0, 0x1
_080F671A:
pop {r1}
bx r1
.align 2, 0
_080F6720: .4byte gUnknown_3005024
_080F6724: .4byte hm_add_c3_launch_phase_2
_080F6728: .4byte gUnknown_203B0C4
_080F672C: .4byte hm_teleport_run_dp02scr
thumb_func_end SetUpFieldMove_Teleport
thumb_func_start hm_teleport_run_dp02scr
hm_teleport_run_dp02scr: @ 80F6730
push {lr}
bl sub_8054D08
movs r0, 0x3F
bl FieldEffectStart
bl GetCursorSelectionMonId
ldr r1, _080F674C @ =gFieldEffectArguments
lsls r0, 24
lsrs r0, 24
str r0, [r1]
pop {r0}
bx r0
.align 2, 0
_080F674C: .4byte gFieldEffectArguments
thumb_func_end hm_teleport_run_dp02scr
thumb_func_start FldEff_UseTeleport
FldEff_UseTeleport: @ 80F6750
push {lr}
bl oei_task_add
lsls r0, 24
lsrs r0, 24
ldr r2, _080F6778 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
ldr r2, _080F677C @ =sub_80F6780
lsrs r0, r2, 16
strh r0, [r1, 0x18]
strh r2, [r1, 0x1A]
movs r0, 0x1
bl SetPlayerAvatarTransitionFlags
movs r0, 0
pop {r1}
bx r1
.align 2, 0
_080F6778: .4byte gTasks
_080F677C: .4byte sub_80F6780
thumb_func_end FldEff_UseTeleport
thumb_func_start sub_80F6780
sub_80F6780: @ 80F6780
push {lr}
movs r0, 0x3F
bl FieldEffectActiveListRemove
bl sub_8085B64
pop {r0}
bx r0
thumb_func_end sub_80F6780
.align 2, 0 @ Don't pad with nop.

View File

@ -246,12 +246,12 @@ _080A117E:
thumb_func_start sub_80A1184
sub_80A1184: @ 80A1184
ldr r1, _080A118C @ =gUnknown_3005024
ldr r1, _080A118C @ =gFieldCallback2
ldr r0, _080A1190 @ =sub_80A1194
str r0, [r1]
bx lr
.align 2, 0
_080A118C: .4byte gUnknown_3005024
_080A118C: .4byte gFieldCallback2
_080A1190: .4byte sub_80A1194
thumb_func_end sub_80A1184

View File

@ -154,8 +154,8 @@ _08054D00: .4byte 0x00000808
_08054D04: .4byte 0x0000404d
thumb_func_end sub_8054CA0
thumb_func_start sub_8054D08
sub_8054D08: @ 8054D08
thumb_func_start Overworld_ResetStateAfterTeleport
Overworld_ResetStateAfterTeleport: @ 8054D08
push {lr}
bl ResetInitialPlayerAvatarState
movs r0, 0x83
@ -191,7 +191,7 @@ _08054D60: .4byte 0x00000805
_08054D64: .4byte 0x00000806
_08054D68: .4byte 0x00000808
_08054D6C: .4byte 0x0000404d
thumb_func_end sub_8054D08
thumb_func_end Overworld_ResetStateAfterTeleport
thumb_func_start sub_8054D70
sub_8054D70: @ 8054D70
@ -2958,8 +2958,8 @@ _080561F8:
bx r1
thumb_func_end is_light_level_1_2_3_5_or_6
thumb_func_start is_light_level_1_2_3_or_6
is_light_level_1_2_3_or_6: @ 80561FC
thumb_func_start Overworld_MapTypeAllowsTeleportAndFly
Overworld_MapTypeAllowsTeleportAndFly: @ 80561FC
push {lr}
lsls r0, 24
lsrs r0, 24
@ -2979,7 +2979,7 @@ _08056216:
_08056218:
pop {r1}
bx r1
thumb_func_end is_light_level_1_2_3_or_6
thumb_func_end Overworld_MapTypeAllowsTeleportAndFly
thumb_func_start is_light_level_8_or_9
is_light_level_8_or_9: @ 805621C
@ -3442,7 +3442,7 @@ _080565E8: .4byte gMain
thumb_func_start map_post_load_hook_exec
map_post_load_hook_exec: @ 80565EC
push {r4,lr}
ldr r4, _08056604 @ =gUnknown_3005024
ldr r4, _08056604 @ =gFieldCallback2
ldr r0, [r4]
cmp r0, 0
beq _08056618
@ -3453,7 +3453,7 @@ map_post_load_hook_exec: @ 80565EC
movs r0, 0
b _08056638
.align 2, 0
_08056604: .4byte gUnknown_3005024
_08056604: .4byte gFieldCallback2
_08056608:
movs r1, 0
str r1, [r4]
@ -3501,7 +3501,7 @@ CB2_NewGame: @ 8056644
ldr r1, _0805668C @ =gUnknown_3005020
ldr r0, _08056690 @ =sub_807DF7C
str r0, [r1]
ldr r1, _08056694 @ =gUnknown_3005024
ldr r1, _08056694 @ =gFieldCallback2
movs r0, 0
str r0, [r1]
ldr r0, _08056698 @ =gMain + 0x438
@ -3516,7 +3516,7 @@ CB2_NewGame: @ 8056644
.align 2, 0
_0805668C: .4byte gUnknown_3005020
_08056690: .4byte sub_807DF7C
_08056694: .4byte gUnknown_3005024
_08056694: .4byte gFieldCallback2
_08056698: .4byte gMain + 0x438
_0805669C: .4byte sub_8056534
_080566A0: .4byte sub_80565B4
@ -3758,14 +3758,14 @@ _080568A4: .4byte sub_807DDD0
sub_80568A8: @ 80568A8
push {lr}
bl sub_80569BC
ldr r1, _080568BC @ =gUnknown_3005024
ldr r1, _080568BC @ =gFieldCallback2
ldr r0, _080568C0 @ =sub_807E3BC
str r0, [r1]
bl c2_exit_to_overworld_2_switch
pop {r0}
bx r0
.align 2, 0
_080568BC: .4byte gUnknown_3005024
_080568BC: .4byte gFieldCallback2
_080568C0: .4byte sub_807E3BC
thumb_func_end sub_80568A8
@ -3847,7 +3847,7 @@ sub_8056938: @ 8056938
bl PlayTimeCounter_Start
bl ScriptContext1_Init
bl ScriptContext2_Disable
ldr r1, _08056990 @ =gUnknown_3005024
ldr r1, _08056990 @ =gFieldCallback2
movs r0, 0
str r0, [r1]
ldr r1, _08056994 @ =gUnknown_2031DE0
@ -3863,7 +3863,7 @@ sub_8056938: @ 8056938
bl SetMainCallback2
b _080569AC
.align 2, 0
_08056990: .4byte gUnknown_3005024
_08056990: .4byte gFieldCallback2
_08056994: .4byte gUnknown_2031DE0
_08056998: .4byte sub_805671C
_0805699C:
@ -5314,7 +5314,7 @@ _08057560:
bl ScriptContext2_Disable
movs r0, 0
bl sub_80565E0
ldr r1, _08057614 @ =gUnknown_3005024
ldr r1, _08057614 @ =gFieldCallback2
ldr r0, _08057618 @ =sub_80574EC
str r0, [r1]
ldr r0, _0805761C @ =gMain
@ -5334,7 +5334,7 @@ _08057604: .4byte 0x0000ffff
_08057608: .4byte gUnknown_2031DBC
_0805760C: .4byte gUnknown_2031DE8
_08057610: .4byte gPaletteFade
_08057614: .4byte gUnknown_3005024
_08057614: .4byte gFieldCallback2
_08057618: .4byte sub_80574EC
_0805761C: .4byte gMain
_08057620:

View File

@ -11943,10 +11943,10 @@ _0812488C:
movs r0, 0x5
bl PlaySE
_08124892:
ldr r0, _081248A8 @ =gUnknown_3005024
ldr r0, _081248A8 @ =gFieldCallback2
movs r1, 0
str r1, [r0]
ldr r0, _081248AC @ =gUnknown_203B0C4
ldr r0, _081248AC @ =gPostMenuFieldCallback
str r1, [r0]
adds r0, r4, 0
bl sub_81203B8
@ -11955,12 +11955,12 @@ _081248A2:
pop {r0}
bx r0
.align 2, 0
_081248A8: .4byte gUnknown_3005024
_081248AC: .4byte gUnknown_203B0C4
_081248A8: .4byte gFieldCallback2
_081248AC: .4byte gPostMenuFieldCallback
thumb_func_end sub_8124828
thumb_func_start hm_add_c3_launch_phase_2
hm_add_c3_launch_phase_2: @ 81248B0
thumb_func_start FieldCallback_PrepareFadeInFromMenu
FieldCallback_PrepareFadeInFromMenu: @ 81248B0
push {lr}
bl sub_807DC00
ldr r0, _081248C4 @ =task_launch_hm_phase_2
@ -11971,7 +11971,7 @@ hm_add_c3_launch_phase_2: @ 81248B0
bx r1
.align 2, 0
_081248C4: .4byte task_launch_hm_phase_2
thumb_func_end hm_add_c3_launch_phase_2
thumb_func_end FieldCallback_PrepareFadeInFromMenu
thumb_func_start task_launch_hm_phase_2
task_launch_hm_phase_2: @ 81248C8
@ -11988,7 +11988,7 @@ task_launch_hm_phase_2: @ 81248C8
lsls r0, 16
lsrs r0, 16
str r0, [r1]
ldr r0, _08124900 @ =gUnknown_203B0C4
ldr r0, _08124900 @ =gPostMenuFieldCallback
ldr r0, [r0]
bl _call_via_r0
adds r0, r4, 0
@ -11999,7 +11999,7 @@ _081248F4:
bx r0
.align 2, 0
_081248FC: .4byte gFieldEffectArguments
_08124900: .4byte gUnknown_203B0C4
_08124900: .4byte gPostMenuFieldCallback
thumb_func_end task_launch_hm_phase_2
thumb_func_start brm_get_selected_species
@ -12118,18 +12118,18 @@ sub_8124998: @ 8124998
lsrs r0, 24
cmp r0, 0x1
bne _08124A00
ldr r1, _081249F0 @ =gUnknown_3005024
ldr r0, _081249F4 @ =hm_add_c3_launch_phase_2
ldr r1, _081249F0 @ =gFieldCallback2
ldr r0, _081249F4 @ =FieldCallback_PrepareFadeInFromMenu
str r0, [r1]
ldr r1, _081249F8 @ =gUnknown_203B0C4
ldr r1, _081249F8 @ =gPostMenuFieldCallback
ldr r0, _081249FC @ =hm_surf_run_dp02scr
str r0, [r1]
movs r0, 0x1
b _08124A02
.align 2, 0
_081249F0: .4byte gUnknown_3005024
_081249F4: .4byte hm_add_c3_launch_phase_2
_081249F8: .4byte gUnknown_203B0C4
_081249F0: .4byte gFieldCallback2
_081249F4: .4byte FieldCallback_PrepareFadeInFromMenu
_081249F8: .4byte gPostMenuFieldCallback
_081249FC: .4byte hm_surf_run_dp02scr
_08124A00:
movs r0, 0
@ -12207,7 +12207,7 @@ sub_8124A8C: @ 8124A8C
push {lr}
ldr r0, _08124AA4 @ =gMapHeader
ldrb r0, [r0, 0x17]
bl is_light_level_1_2_3_or_6
bl Overworld_MapTypeAllowsTeleportAndFly
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@ -12289,18 +12289,18 @@ hm_prepare_waterfall: @ 8124AF8
lsrs r0, 24
cmp r0, 0x1
bne _08124B54
ldr r1, _08124B44 @ =gUnknown_3005024
ldr r0, _08124B48 @ =hm_add_c3_launch_phase_2
ldr r1, _08124B44 @ =gFieldCallback2
ldr r0, _08124B48 @ =FieldCallback_PrepareFadeInFromMenu
str r0, [r1]
ldr r1, _08124B4C @ =gUnknown_203B0C4
ldr r1, _08124B4C @ =gPostMenuFieldCallback
ldr r0, _08124B50 @ =hm2_waterfall
str r0, [r1]
movs r0, 0x1
b _08124B56
.align 2, 0
_08124B44: .4byte gUnknown_3005024
_08124B48: .4byte hm_add_c3_launch_phase_2
_08124B4C: .4byte gUnknown_203B0C4
_08124B44: .4byte gFieldCallback2
_08124B48: .4byte FieldCallback_PrepareFadeInFromMenu
_08124B4C: .4byte gPostMenuFieldCallback
_08124B50: .4byte hm2_waterfall
_08124B54:
movs r0, 0
@ -19301,7 +19301,7 @@ _0812836C: .4byte gUnknown_2022B58
sub_8128370: @ 8128370
push {lr}
sub sp, 0xC
ldr r1, _08128398 @ =gUnknown_3005024
ldr r1, _08128398 @ =gFieldCallback2
ldr r0, _0812839C @ =hm_add_c3_without_phase_2
str r0, [r1]
movs r0, 0xF
@ -19319,7 +19319,7 @@ sub_8128370: @ 8128370
pop {r0}
bx r0
.align 2, 0
_08128398: .4byte gUnknown_3005024
_08128398: .4byte gFieldCallback2
_0812839C: .4byte hm_add_c3_without_phase_2
_081283A0: .4byte sub_811FB28
_081283A4: .4byte c2_exit_to_overworld_2_switch
@ -19331,7 +19331,7 @@ sub_81283A8: @ 81283A8
sub sp, 0xC
lsls r0, 24
lsrs r0, 24
ldr r2, _081283D4 @ =gUnknown_3005024
ldr r2, _081283D4 @ =gFieldCallback2
ldr r1, _081283D8 @ =hm_add_c3_without_phase_2
str r1, [r2]
movs r1, 0
@ -19348,7 +19348,7 @@ sub_81283A8: @ 81283A8
pop {r0}
bx r0
.align 2, 0
_081283D4: .4byte gUnknown_3005024
_081283D4: .4byte gFieldCallback2
_081283D8: .4byte hm_add_c3_without_phase_2
_081283DC: .4byte sub_811FB28
_081283E0: .4byte c2_exit_to_overworld_2_switch

View File

@ -291,10 +291,10 @@ SetUpFieldMove_RockSmash: @ 80C99D8
movs r0, 0
b _080C99FA
_080C99EC:
ldr r1, _080C9A00 @ =gUnknown_3005024
ldr r0, _080C9A04 @ =hm_add_c3_launch_phase_2
ldr r1, _080C9A00 @ =gFieldCallback2
ldr r0, _080C9A04 @ =FieldCallback_PrepareFadeInFromMenu
str r0, [r1]
ldr r1, _080C9A08 @ =gUnknown_203B0C4
ldr r1, _080C9A08 @ =gPostMenuFieldCallback
ldr r0, _080C9A0C @ =sub_80C9A10
str r0, [r1]
movs r0, 0x1
@ -302,9 +302,9 @@ _080C99FA:
pop {r1}
bx r1
.align 2, 0
_080C9A00: .4byte gUnknown_3005024
_080C9A04: .4byte hm_add_c3_launch_phase_2
_080C9A08: .4byte gUnknown_203B0C4
_080C9A00: .4byte gFieldCallback2
_080C9A04: .4byte FieldCallback_PrepareFadeInFromMenu
_080C9A08: .4byte gPostMenuFieldCallback
_080C9A0C: .4byte sub_80C9A10
thumb_func_end SetUpFieldMove_RockSmash
@ -373,10 +373,10 @@ SetUpFieldMove_Dig: @ 80C9A78
movs r0, 0
b _080C9A98
_080C9A8A:
ldr r1, _080C9A9C @ =gUnknown_3005024
ldr r0, _080C9AA0 @ =hm_add_c3_launch_phase_2
ldr r1, _080C9A9C @ =gFieldCallback2
ldr r0, _080C9AA0 @ =FieldCallback_PrepareFadeInFromMenu
str r0, [r1]
ldr r1, _080C9AA4 @ =gUnknown_203B0C4
ldr r1, _080C9AA4 @ =gPostMenuFieldCallback
ldr r0, _080C9AA8 @ =hm2_dig
str r0, [r1]
movs r0, 0x1
@ -384,9 +384,9 @@ _080C9A98:
pop {r1}
bx r1
.align 2, 0
_080C9A9C: .4byte gUnknown_3005024
_080C9AA0: .4byte hm_add_c3_launch_phase_2
_080C9AA4: .4byte gUnknown_203B0C4
_080C9A9C: .4byte gFieldCallback2
_080C9AA0: .4byte FieldCallback_PrepareFadeInFromMenu
_080C9AA4: .4byte gPostMenuFieldCallback
_080C9AA8: .4byte hm2_dig
thumb_func_end SetUpFieldMove_Dig

View File

@ -568,13 +568,13 @@ sub_806F1D4: @ 806F1D4
movs r0, 0
strb r0, [r1]
strb r0, [r1, 0x1]
ldr r1, _0806F1E8 @ =gUnknown_3005024
ldr r1, _0806F1E8 @ =gFieldCallback2
ldr r0, _0806F1EC @ =sub_806F1B8
str r0, [r1]
bx lr
.align 2, 0
_0806F1E4: .4byte gUnknown_20370FF
_0806F1E8: .4byte gUnknown_3005024
_0806F1E8: .4byte gFieldCallback2
_0806F1EC: .4byte sub_806F1B8
thumb_func_end sub_806F1D4

View File

@ -74,9 +74,13 @@ enum FieldEffectScriptIdx
};
extern u32 gFieldEffectArguments[8];
extern void (*gPostMenuFieldCallback)(void);
extern bool8 (*gFieldCallback2)(void);
u8 FieldEffectStart(u8);
bool8 FieldEffectActiveListContains(u8 id);
void sub_80B69DC(void);
void CreateTeleportFieldEffectTask(void);
void FieldEffectActiveListRemove(u8 id);
#endif //GUARD_FIELD_EFFECTS_H

View File

@ -21,5 +21,6 @@ void SetPlayerAvatarStateMask(u8 mask);
void sub_805D9C4(struct Sprite *sprite);
void sub_805D154(u8 direction);
void sub_805DAE4(u8 direction);
void SetPlayerAvatarTransitionFlags(u16 a);
#endif //GUARD_FIELD_PLAYER_AVATAR_H

7
include/fldeff.h Normal file
View File

@ -0,0 +1,7 @@
#ifndef GUARD_FLDEFF_H
#define GUARD_FLDEFF_H
// rock smash
u8 oei_task_add(void);
#endif // GUARD_FLDEFF_H

View File

@ -96,9 +96,11 @@ void sub_80563F0(void);
extern u8 gUnknown_2031DD8;
extern u8 gUnknown_2036E28;
extern bool8 (* gUnknown_3005024)(void);
extern bool8 (* gFieldCallback2)(void);
void SetLastHealLocationWarp(u8 healLocaionId);
void sub_8055864(u8 mapGroup, u8 mapNum);
void CB2_NewGame(void);
bool8 Overworld_MapTypeAllowsTeleportAndFly(u8 mapType);
void Overworld_ResetStateAfterTeleport(void);
#endif //GUARD_ROM4_H

View File

@ -1,7 +1,8 @@
#ifndef GUARD_PARTY_MENU_H
#define GUARD_PARTY_MENU_H
#include "global.h"
#include "main.h"
#include "task.h"
enum {
AILMENT_NONE,
@ -14,6 +15,7 @@ enum {
extern void (*gUnknown_3005E98)(u8 taskId, TaskFunc func);
bool8 FieldCallback_PrepareFadeInFromMenu(void);
bool8 MonKnowsMove(struct Pokemon *, u16);
void sub_81B58A8(void);
void DoWallyTutorialBagMenu(void);
@ -23,5 +25,6 @@ void sub_8125B40(u8 taskId, TaskFunc func);
void sub_8124C8C(void);
void sub_8126EDC(void);
void c2_8123744(void);
u8 GetCursorSelectionMonId(void);
#endif // GUARD_PARTY_MENU_H

View File

@ -201,7 +201,7 @@ SECTIONS {
asm/save_failed_screen.o(.text);
asm/clear_save_data_screen.o(.text);
asm/evolution_graphics.o(.text);
asm/fldeff_teleport.o(.text);
src/fldeff_teleport.o(.text);
asm/new_menu_helpers.o(.text);
asm/box_party_pokemon_dropdown.o(.text);
asm/save_menu_util.o(.text);

42
src/fldeff_teleport.c Normal file
View File

@ -0,0 +1,42 @@
#include "global.h"
#include "field_effect.h"
#include "field_player_avatar.h"
#include "fldeff.h"
#include "party_menu.h"
#include "overworld.h"
static void FieldCallback_Teleport(void);
static void StartTeleportFieldEffect(void);
bool8 SetUpFieldMove_Teleport(void)
{
if (Overworld_MapTypeAllowsTeleportAndFly(gMapHeader.mapType) == TRUE)
{
gFieldCallback2 = FieldCallback_PrepareFadeInFromMenu;
gPostMenuFieldCallback = FieldCallback_Teleport;
return TRUE;
}
return FALSE;
}
static void FieldCallback_Teleport(void)
{
Overworld_ResetStateAfterTeleport();
FieldEffectStart(FLDEFF_USE_TELEPORT);
gFieldEffectArguments[0] = (u32)GetCursorSelectionMonId();
}
bool8 FldEff_UseTeleport(void)
{
u8 taskId = oei_task_add();
gTasks[taskId].data[8] = (u32)StartTeleportFieldEffect >> 16;
gTasks[taskId].data[9] = (u32)StartTeleportFieldEffect;
SetPlayerAvatarTransitionFlags(PLAYER_AVATAR_FLAG_ON_FOOT);
return FALSE;
}
static void StartTeleportFieldEffect(void)
{
FieldEffectActiveListRemove(FLDEFF_USE_TELEPORT);
CreateTeleportFieldEffectTask();
}

View File

@ -990,14 +990,14 @@ void sub_8111368(void)
if (sub_8110AC8() == 1)
{
sub_8111274(gUnknown_203ADF8, 0);
gUnknown_3005024 = sub_8111038;
gFieldCallback2 = sub_8111038;
SetMainCallback2(sub_80572A8);
}
else
{
sub_8111274(gUnknown_203ADF8, 1);
warp_in();
gUnknown_3005024 = sub_8111000;
gFieldCallback2 = sub_8111000;
SetMainCallback2(sub_805726C);
}
}
@ -1237,7 +1237,7 @@ void sub_8111984(void)
Save_ResetSaveCounters();
Save_LoadGameData(0);
SetMainCallback2(sub_8057430);
gUnknown_3005024 = sub_8111F60;
gFieldCallback2 = sub_8111F60;
FreeAllWindowBuffers();
gUnknown_203ADFA = 3;
gUnknown_203AE8C = NULL;

View File

@ -148,7 +148,7 @@ gUnknown_300501C: @ 300501C
gUnknown_3005020: @ 3005020
.space 0x4
gUnknown_3005024: @ 3005024
gFieldCallback2: @ 3005024
.space 0x4
gUnknown_3005028: @ 3005028

View File

@ -1467,7 +1467,7 @@ gUnknown_203B0C0: @ 203B0C0
gUnknown_203B0C1: @ 203B0C1
.space 0x3
gUnknown_203B0C4: @ 203B0C4
gPostMenuFieldCallback: @ 203B0C4
.space 0x4
gUnknown_203B0C8: @ 203B0C8