From b566ae26decaa937c72f608044d8ea604c643260 Mon Sep 17 00:00:00 2001 From: jiangzhengwenjz Date: Sat, 29 Jun 2019 08:36:18 +0800 Subject: finished fldeff_dig + fldeff_rocksmash --- src/fldeff_dig.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 src/fldeff_dig.c (limited to 'src/fldeff_dig.c') diff --git a/src/fldeff_dig.c b/src/fldeff_dig.c new file mode 100644 index 000000000..b38cac7e0 --- /dev/null +++ b/src/fldeff_dig.c @@ -0,0 +1,49 @@ +#include "global.h" +#include "field_effect.h" +#include "field_player_avatar.h" +#include "fldeff.h" +#include "item_use.h" +#include "overworld.h" +#include "party_menu.h" +#include "sprite.h" +#include "constants/map_objects.h" + +static void hm2_dig(void); +static void sub_80C9AFC(void); + +bool8 SetUpFieldMove_Dig(void) +{ + if (CanUseEscapeRopeOnCurrMap() == TRUE) + { + gFieldCallback2 = FieldCallback_PrepareFadeInFromMenu; + gPostMenuFieldCallback = hm2_dig; + return TRUE; + } + return FALSE; +} + +static void hm2_dig(void) +{ + Overworld_ResetStateAfterDigEscRope(); + FieldEffectStart(FLDEFF_USE_DIG); + gFieldEffectArguments[0] = GetCursorSelectionMonId(); +} + +bool8 FldEff_UseDig(void) +{ + u8 taskId = oei_task_add(); + + gTasks[taskId].data[8] = (u32)sub_80C9AFC >> 16; + gTasks[taskId].data[9] = (u32)sub_80C9AFC; + SetPlayerAvatarTransitionFlags(PLAYER_AVATAR_FLAG_ON_FOOT); + return FALSE; +} + +static void sub_80C9AFC(void) +{ + u8 taskId; + + FieldEffectActiveListRemove(FLDEFF_USE_DIG); + taskId = CreateTask(sub_80A1C44, 8); + gTasks[taskId].data[0] = 0; +} -- cgit v1.2.3 From 5384fd020c0e390a677cecfe544529f55d0f0c9f Mon Sep 17 00:00:00 2001 From: jiangzhengwenjz Date: Tue, 2 Jul 2019 09:38:28 +0800 Subject: multiple fixes --- src/fldeff_dig.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'src/fldeff_dig.c') diff --git a/src/fldeff_dig.c b/src/fldeff_dig.c index b38cac7e0..3a28c1adc 100644 --- a/src/fldeff_dig.c +++ b/src/fldeff_dig.c @@ -8,7 +8,7 @@ #include "sprite.h" #include "constants/map_objects.h" -static void hm2_dig(void); +static void FieldCallback_Dig(void); static void sub_80C9AFC(void); bool8 SetUpFieldMove_Dig(void) @@ -16,13 +16,13 @@ bool8 SetUpFieldMove_Dig(void) if (CanUseEscapeRopeOnCurrMap() == TRUE) { gFieldCallback2 = FieldCallback_PrepareFadeInFromMenu; - gPostMenuFieldCallback = hm2_dig; + gPostMenuFieldCallback = FieldCallback_Dig; return TRUE; } return FALSE; } -static void hm2_dig(void) +static void FieldCallback_Dig(void) { Overworld_ResetStateAfterDigEscRope(); FieldEffectStart(FLDEFF_USE_DIG); @@ -33,8 +33,7 @@ bool8 FldEff_UseDig(void) { u8 taskId = oei_task_add(); - gTasks[taskId].data[8] = (u32)sub_80C9AFC >> 16; - gTasks[taskId].data[9] = (u32)sub_80C9AFC; + FLDEFF_SET_FUNC_TO_DATA(sub_80C9AFC); SetPlayerAvatarTransitionFlags(PLAYER_AVATAR_FLAG_ON_FOOT); return FALSE; } -- cgit v1.2.3