diff options
-rwxr-xr-x | asm/battle_frontier_1.s | 2 | ||||
-rw-r--r-- | asm/fldeff_80F9BCC.s | 6 | ||||
-rwxr-xr-x | asm/fldeff_cut.s | 6 | ||||
-rw-r--r-- | asm/fldeff_flash.s | 4 | ||||
-rw-r--r-- | asm/fldeff_strength.s | 2 | ||||
-rw-r--r-- | asm/fldeff_sweetscent.s | 2 | ||||
-rw-r--r-- | asm/overworld.s | 12 | ||||
-rwxr-xr-x | asm/party_menu.s | 14 | ||||
-rwxr-xr-x | asm/pokenav.s | 2 | ||||
-rw-r--r-- | asm/rom6.s | 6 | ||||
-rw-r--r-- | include/field_effect.h | 2 | ||||
-rw-r--r-- | include/fldeff_teleport.h | 7 | ||||
-rw-r--r-- | include/overworld.h | 3 | ||||
-rw-r--r-- | include/party_menu.h | 2 | ||||
-rw-r--r-- | include/rom6.h | 1 | ||||
-rw-r--r-- | src/fldeff_teleport.c | 44 |
16 files changed, 60 insertions, 55 deletions
diff --git a/asm/battle_frontier_1.s b/asm/battle_frontier_1.s index f6e395065..8e82de6c6 100755 --- a/asm/battle_frontier_1.s +++ b/asm/battle_frontier_1.s @@ -13641,7 +13641,7 @@ sub_8195ED8: @ 8195ED8 push {r4,lr} ldr r4, =gMapHeader ldrb r0, [r4, 0x17] - bl is_light_level_1_2_3_or_6 + bl Overworld_MapTypeAllowsTeleportAndFly lsls r0, 24 cmp r0, 0 beq _08195F30 diff --git a/asm/fldeff_80F9BCC.s b/asm/fldeff_80F9BCC.s index a1e4f4ff6..e31375f9f 100644 --- a/asm/fldeff_80F9BCC.s +++ b/asm/fldeff_80F9BCC.s @@ -591,7 +591,7 @@ sub_80FA004: @ 80FA004 bne _080FA070 bl sub_80F9F5C ldr r1, =gUnknown_03005DB0 - ldr r0, =hm_add_c3_launch_phase_2 + ldr r0, =FieldCallback_Teleport str r0, [r1] ldr r1, =gUnknown_0203CEEC ldr r0, =sub_80FA0DC @@ -606,7 +606,7 @@ _080FA070: bne _080FA0A0 bl sub_80F9F5C ldr r1, =gUnknown_03005DB0 - ldr r0, =hm_add_c3_launch_phase_2 + ldr r0, =FieldCallback_Teleport str r0, [r1] ldr r1, =gUnknown_0203CEEC ldr r0, =sub_80FA1E8 @@ -625,7 +625,7 @@ _080FA0AE: _080FA0B2: bl sub_80F9F5C ldr r1, =gUnknown_03005DB0 - ldr r0, =hm_add_c3_launch_phase_2 + ldr r0, =FieldCallback_Teleport str r0, [r1] ldr r1, =gUnknown_0203CEEC ldr r0, =sub_80FA34C diff --git a/asm/fldeff_cut.s b/asm/fldeff_cut.s index 71137b705..20380e478 100755 --- a/asm/fldeff_cut.s +++ b/asm/fldeff_cut.s @@ -20,7 +20,7 @@ sub_80D3718: @ 80D3718 cmp r0, 0x1 bne _080D3754 ldr r1, =gUnknown_03005DB0 - ldr r0, =hm_add_c3_launch_phase_2 + ldr r0, =FieldCallback_Teleport str r0, [r1] ldr r1, =gUnknown_0203CEEC ldr r0, =sub_80D3A9C @@ -322,7 +322,7 @@ _080D395A: bne _080D39F8 _080D39BC: ldr r1, =gUnknown_03005DB0 - ldr r0, =hm_add_c3_launch_phase_2 + ldr r0, =FieldCallback_Teleport str r0, [r1] ldr r1, =gUnknown_0203CEEC ldr r0, =hm2_ruin_valley @@ -360,7 +360,7 @@ _080D3A18: bne _080D3A2A _080D3A1E: ldr r1, =gUnknown_03005DB0 - ldr r0, =hm_add_c3_launch_phase_2 + ldr r0, =FieldCallback_Teleport str r0, [r1] ldr r1, =gUnknown_0203CEEC ldr r0, =hm2_ruin_valley diff --git a/asm/fldeff_flash.s b/asm/fldeff_flash.s index 9cc3a59a5..d52ee34fc 100644 --- a/asm/fldeff_flash.s +++ b/asm/fldeff_flash.s @@ -18,7 +18,7 @@ SetUpFieldMove_Flash: @ 81370FC lsrs r0, 24 strh r0, [r4] ldr r1, =gUnknown_03005DB0 - ldr r0, =hm_add_c3_launch_phase_2 + ldr r0, =FieldCallback_Teleport str r0, [r1] ldr r1, =gUnknown_0203CEEC ldr r0, =sub_8179918 @@ -35,7 +35,7 @@ _08137134: cmp r0, 0 bne _08137170 ldr r1, =gUnknown_03005DB0 - ldr r0, =hm_add_c3_launch_phase_2 + ldr r0, =FieldCallback_Teleport str r0, [r1] ldr r1, =gUnknown_0203CEEC ldr r0, =hm2_flash diff --git a/asm/fldeff_strength.s b/asm/fldeff_strength.s index 53a088aa3..fdadd2aac 100644 --- a/asm/fldeff_strength.s +++ b/asm/fldeff_strength.s @@ -23,7 +23,7 @@ _08145DD8: lsrs r0, 24 strh r0, [r4] ldr r1, =gUnknown_03005DB0 - ldr r0, =hm_add_c3_launch_phase_2 + ldr r0, =FieldCallback_Teleport str r0, [r1] ldr r1, =gUnknown_0203CEEC ldr r0, =sub_8145E0C diff --git a/asm/fldeff_sweetscent.s b/asm/fldeff_sweetscent.s index eea0df12f..2055f7069 100644 --- a/asm/fldeff_sweetscent.s +++ b/asm/fldeff_sweetscent.s @@ -8,7 +8,7 @@ thumb_func_start SetUpFieldMove_SweetScent SetUpFieldMove_SweetScent: @ 8159EF0 ldr r1, =gUnknown_03005DB0 - ldr r0, =hm_add_c3_launch_phase_2 + ldr r0, =FieldCallback_Teleport str r0, [r1] ldr r1, =gUnknown_0203CEEC ldr r0, =hm2_sweet_scent diff --git a/asm/overworld.s b/asm/overworld.s index 5de62b896..c3140f7a9 100644 --- a/asm/overworld.s +++ b/asm/overworld.s @@ -50,8 +50,8 @@ flag_var_implications_of_teleport_: @ 8084660 .pool thumb_func_end flag_var_implications_of_teleport_ - thumb_func_start sub_808469C -sub_808469C: @ 808469C + thumb_func_start Overworld_ResetStateAfterTeleport +Overworld_ResetStateAfterTeleport: @ 808469C push {lr} bl player_avatar_init_params_reset ldr r0, =0x0000088b @@ -69,7 +69,7 @@ sub_808469C: @ 808469C pop {r0} bx r0 .pool - thumb_func_end sub_808469C + thumb_func_end Overworld_ResetStateAfterTeleport thumb_func_start flagmods_08054D70 flagmods_08054D70: @ 80846E4 @@ -2772,8 +2772,8 @@ _08085BF0: 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: @ 8085BF4 + thumb_func_start Overworld_MapTypeAllowsTeleportAndFly +Overworld_MapTypeAllowsTeleportAndFly: @ 8085BF4 push {lr} lsls r0, 24 lsrs r0, 24 @@ -2793,7 +2793,7 @@ _08085C0E: _08085C10: 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: @ 8085C14 diff --git a/asm/party_menu.s b/asm/party_menu.s index a336b5d63..844043a95 100755 --- a/asm/party_menu.s +++ b/asm/party_menu.s @@ -10027,8 +10027,8 @@ _081B572A: .pool thumb_func_end sub_81B56D8 - thumb_func_start hm_add_c3_launch_phase_2 -hm_add_c3_launch_phase_2: @ 81B5738 + thumb_func_start FieldCallback_Teleport +FieldCallback_Teleport: @ 81B5738 push {lr} bl pal_fill_black ldr r0, =task_launch_hm_phase_2 @@ -10038,7 +10038,7 @@ hm_add_c3_launch_phase_2: @ 81B5738 pop {r1} bx r1 .pool - thumb_func_end hm_add_c3_launch_phase_2 + thumb_func_end FieldCallback_Teleport thumb_func_start task_launch_hm_phase_2 task_launch_hm_phase_2: @ 81B5750 @@ -10160,7 +10160,7 @@ sub_81B5820: @ 81B5820 cmp r0, 0x1 bne _081B585C ldr r1, =gUnknown_03005DB0 - ldr r0, =hm_add_c3_launch_phase_2 + ldr r0, =FieldCallback_Teleport str r0, [r1] ldr r1, =gUnknown_0203CEEC ldr r0, =hm_surf_run_dp02scr @@ -10199,7 +10199,7 @@ sub_81B5884: @ 81B5884 push {lr} ldr r0, =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 @@ -10278,7 +10278,7 @@ hm_prepare_waterfall: @ 81B58F0 cmp r0, 0x1 bne _081B594C ldr r1, =gUnknown_03005DB0 - ldr r0, =hm_add_c3_launch_phase_2 + ldr r0, =FieldCallback_Teleport str r0, [r1] ldr r1, =gUnknown_0203CEEC ldr r0, =hm2_waterfall @@ -10325,7 +10325,7 @@ sub_81B5974: @ 81B5974 .pool _081B5990: ldr r1, =gUnknown_03005DB0 - ldr r0, =hm_add_c3_launch_phase_2 + ldr r0, =FieldCallback_Teleport str r0, [r1] ldr r1, =gUnknown_0203CEEC ldr r0, =sub_81B5958 diff --git a/asm/pokenav.s b/asm/pokenav.s index 35df4d6b7..b52715cb4 100755 --- a/asm/pokenav.s +++ b/asm/pokenav.s @@ -7924,7 +7924,7 @@ sub_81CAF78: @ 81CAF78 strb r0, [r6] ldr r0, =gMapHeader ldrb r0, [r0, 0x17] - bl is_light_level_1_2_3_or_6 + bl Overworld_MapTypeAllowsTeleportAndFly lsls r0, 24 cmp r0, 0 bne _081CAFA4 diff --git a/asm/rom6.s b/asm/rom6.s index 51ae2834f..cc02638bc 100644 --- a/asm/rom6.s +++ b/asm/rom6.s @@ -268,7 +268,7 @@ sub_8135654: @ 8135654 lsrs r0, 24 strh r0, [r4] ldr r1, =gUnknown_03005DB0 - ldr r0, =hm_add_c3_launch_phase_2 + ldr r0, =FieldCallback_Teleport str r0, [r1] ldr r1, =gUnknown_0203CEEC ldr r0, =sub_8179834 @@ -285,7 +285,7 @@ _0813568C: b _081356AC _0813569E: ldr r1, =gUnknown_03005DB0 - ldr r0, =hm_add_c3_launch_phase_2 + ldr r0, =FieldCallback_Teleport str r0, [r1] ldr r1, =gUnknown_0203CEEC ldr r0, =sub_81356C4 @@ -361,7 +361,7 @@ sub_813572C: @ 813572C b _0813574C _0813573E: ldr r1, =gUnknown_03005DB0 - ldr r0, =hm_add_c3_launch_phase_2 + ldr r0, =FieldCallback_Teleport str r0, [r1] ldr r1, =gUnknown_0203CEEC ldr r0, =hm2_dig diff --git a/include/field_effect.h b/include/field_effect.h index 772b20d37..fb0f20f6f 100644 --- a/include/field_effect.h +++ b/include/field_effect.h @@ -75,5 +75,7 @@ u32 FieldEffectStart(u8); bool8 FieldEffectActiveListContains(u8 id); void sub_80B69DC(void); void FieldEffectStop(struct Sprite *sprite, u8 id); +void sub_80B7FC8(void); +void FieldEffectActiveListRemove(u8 id); #endif //GUARD_FIELD_EFFECTS_H diff --git a/include/fldeff_teleport.h b/include/fldeff_teleport.h new file mode 100644 index 000000000..71fb64ad2 --- /dev/null +++ b/include/fldeff_teleport.h @@ -0,0 +1,7 @@ +#ifndef GUARD_FLDEFF_TELEPORT_H +#define GUARD_FLDEFF_TELEPORT_H + +void hm_teleport_run_dp02scr(void); +void sub_817C94C(void); + +#endif // GUARD_FLDEFF_TELEPORT_H diff --git a/include/overworld.h b/include/overworld.h index a5fba0c10..d6f90b666 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -42,6 +42,9 @@ void sub_8084EBC(s16, s16); void player_avatar_init_params_reset(void); +bool8 Overworld_MapTypeAllowsTeleportAndFly(u8 mapType); +void Overworld_ResetStateAfterTeleport(void); + void Overworld_SetFlashLevel(s32 a1); //u8 Overworld_GetFlashLevel(void); void sub_8085524(u16); diff --git a/include/party_menu.h b/include/party_menu.h index 3756ef569..1d1661cee 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -16,5 +16,7 @@ void sub_81B58A8(void); void DoWallyTutorialBagMenu(void); u8 pokemon_ailments_get_primary(u32 status); u8 *GetMonNickname(struct Pokemon *mon, u8 *dst); +u8 GetCursorSelectionMonId(void); +bool8 FieldCallback_Teleport(void); #endif // GUARD_PARTY_MENU_H diff --git a/include/rom6.h b/include/rom6.h index fc33b7d1f..f91b34b4a 100644 --- a/include/rom6.h +++ b/include/rom6.h @@ -11,5 +11,6 @@ void UpdateBirchState(u16 days); void UpdateFrontierManiac(u16 days); void UpdateFrontierGambler(u16 days); void SetShoalItemFlag(u16 days); +u8 oei_task_add(void); #endif //GUARD_ROM6_H diff --git a/src/fldeff_teleport.c b/src/fldeff_teleport.c index 72896904e..5b3492db0 100644 --- a/src/fldeff_teleport.c +++ b/src/fldeff_teleport.c @@ -1,55 +1,45 @@ #include "global.h" +#include "fldeff_teleport.h" #include "field_effect.h" +#include "field_player_avatar.h" +#include "party_menu.h" +#include "overworld.h" +#include "rom6.h" #include "task.h" -extern bool8 is_light_level_1_2_3_or_6(u8 mapType); -extern void* hm_add_c3_launch_phase_2(void); -extern void sub_808469C(void); -extern u8 GetCursorSelectionMonId(void); -extern u8 oei_task_add(void); -extern void FieldEffectActiveListRemove(u8 id); -extern void sub_80B7FC8(void); -extern void SetPlayerAvatarTransitionFlags(u8); +extern bool8 (*gUnknown_03005DB0)(void); +extern void (*gUnknown_0203CEEC)(void); -extern void* gUnknown_0203CEEC; -extern void* gUnknown_03005DB0; - -void hm_teleport_run_dp02scr(void); -void sub_817C94C(void); - -// 817C8BC bool8 SetUpFieldMove_Teleport(void) { - if (is_light_level_1_2_3_or_6(gMapHeader.mapType) == TRUE) + if (Overworld_MapTypeAllowsTeleportAndFly(gMapHeader.mapType) == TRUE) { - gUnknown_03005DB0 = hm_add_c3_launch_phase_2; + gUnknown_03005DB0 = FieldCallback_Teleport; gUnknown_0203CEEC = hm_teleport_run_dp02scr; return TRUE; } return FALSE; } -// 817C8FC void hm_teleport_run_dp02scr(void) { - sub_808469C(); - FieldEffectStart(0x3F); + Overworld_ResetStateAfterTeleport(); + FieldEffectStart(FLDEFF_USE_TELEPORT); gFieldEffectArguments[0] = (u32)GetCursorSelectionMonId(); } -// 817C91C -u8 FldEff_UseTeleport(void) +bool8 FldEff_UseTeleport(void) { - u8 taskID = oei_task_add(); - gTasks[taskID].data[8] = (u32)sub_817C94C >> 16; - gTasks[taskID].data[9] = (u32)sub_817C94C; + u8 taskId = oei_task_add(); + gTasks[taskId].data[8] = (u32)sub_817C94C >> 16; + gTasks[taskId].data[9] = (u32)sub_817C94C; SetPlayerAvatarTransitionFlags(1); - return 0; + return FALSE; } void sub_817C94C(void) { - FieldEffectActiveListRemove(0x3F); + FieldEffectActiveListRemove(FLDEFF_USE_TELEPORT); sub_80B7FC8(); } |