From d74dda011ad0fc50d3ffb1a98213308e114933cf Mon Sep 17 00:00:00 2001 From: ultima-soul Date: Wed, 17 Apr 2019 14:09:54 -0700 Subject: Port fldeff_teleport --- src/fldeff_teleport.c | 42 ++++++++++++++++++++++++++++++++++++++++++ src/quest_log.c | 6 +++--- 2 files changed, 45 insertions(+), 3 deletions(-) create mode 100644 src/fldeff_teleport.c (limited to 'src') diff --git a/src/fldeff_teleport.c b/src/fldeff_teleport.c new file mode 100644 index 000000000..35515e9cb --- /dev/null +++ b/src/fldeff_teleport.c @@ -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(); +} \ No newline at end of file diff --git a/src/quest_log.c b/src/quest_log.c index a01cbde2d..340bef957 100644 --- a/src/quest_log.c +++ b/src/quest_log.c @@ -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; -- cgit v1.2.3 From 7ca19ae250abb713ca494a838791adc0dae9fd8d Mon Sep 17 00:00:00 2001 From: ultima-soul Date: Wed, 17 Apr 2019 17:32:52 -0700 Subject: Decompile fldeff_berrytree --- src/fldeff_berrytree.c | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 src/fldeff_berrytree.c (limited to 'src') diff --git a/src/fldeff_berrytree.c b/src/fldeff_berrytree.c new file mode 100644 index 000000000..53d8c2f1b --- /dev/null +++ b/src/fldeff_berrytree.c @@ -0,0 +1,4 @@ +void nullsub_56(void) +{ + return; +} \ No newline at end of file -- cgit v1.2.3 From 57603a0d46c785d845a3fa168f94c01dc8b0b253 Mon Sep 17 00:00:00 2001 From: ultima-soul Date: Thu, 18 Apr 2019 08:18:12 -0700 Subject: Fix formatting and ld_script --- src/fldeff_berrytree.c | 4 ++-- src/fldeff_teleport.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/fldeff_berrytree.c b/src/fldeff_berrytree.c index 53d8c2f1b..90ca36508 100644 --- a/src/fldeff_berrytree.c +++ b/src/fldeff_berrytree.c @@ -1,4 +1,4 @@ void nullsub_56(void) { - return; -} \ No newline at end of file + +} diff --git a/src/fldeff_teleport.c b/src/fldeff_teleport.c index 35515e9cb..74fad1110 100644 --- a/src/fldeff_teleport.c +++ b/src/fldeff_teleport.c @@ -39,4 +39,4 @@ static void StartTeleportFieldEffect(void) { FieldEffectActiveListRemove(FLDEFF_USE_TELEPORT); CreateTeleportFieldEffectTask(); -} \ No newline at end of file +} -- cgit v1.2.3