diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-03-31 14:37:24 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-03-31 14:37:24 -0400 |
commit | 0015d6fe2c6a53c5f757599122ae9fd1a156a69f (patch) | |
tree | 81b7269c767da1ad4a5a9ac01e58ead5e92f0983 /src/fldeff_teleport.c | |
parent | 46bc01f0dd1a3435b3c6ce71e1be0d19b7aaa5bd (diff) | |
parent | 59f81c5f2a25ec77baf4a30c3da9ccb7675d1562 (diff) |
Merge branch 'master' into contest_link_80C2020
Diffstat (limited to 'src/fldeff_teleport.c')
-rw-r--r-- | src/fldeff_teleport.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/fldeff_teleport.c b/src/fldeff_teleport.c new file mode 100644 index 000000000..af48fb414 --- /dev/null +++ b/src/fldeff_teleport.c @@ -0,0 +1,46 @@ +#include "global.h" +#include "fldeff_teleport.h" +#include "field_effect.h" +#include "field_player_avatar.h" +#include "pokemon_menu.h" +#include "overworld.h" +#include "rom6.h" +#include "task.h" + +extern void (*gFieldCallback)(void); +extern u8 gLastFieldPokeMenuOpened; +extern void (*gUnknown_03005CE4)(void); + +bool8 SetUpFieldMove_Teleport(void) +{ + if (Overworld_MapTypeAllowsTeleportAndFly(gMapHeader.mapType) == TRUE) + { + gFieldCallback = FieldCallback_Teleport; + gUnknown_03005CE4 = hm_teleport_run_dp02scr; + return TRUE; + } + + return FALSE; +} + +void hm_teleport_run_dp02scr(void) +{ + Overworld_ResetStateAfterTeleport(); + FieldEffectStart(FLDEFF_USE_TELEPORT); + gFieldEffectArguments[0] = gLastFieldPokeMenuOpened; +} + +bool8 FldEff_UseTeleport(void) +{ + u8 taskId = oei_task_add(); + gTasks[taskId].data[8] = (u32)sub_814A404 >> 16; + gTasks[taskId].data[9] = (u32)sub_814A404; + SetPlayerAvatarTransitionFlags(1); + return 0; +} + +void sub_814A404(void) +{ + FieldEffectActiveListRemove(FLDEFF_USE_TELEPORT); + sub_8087BA8(); +} |