diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/fldeff_softboiled.c | 19 | ||||
-rw-r--r-- | src/fldeff_strength.c | 46 | ||||
-rw-r--r-- | src/unk_8159F40.c | 2 |
3 files changed, 57 insertions, 10 deletions
diff --git a/src/fldeff_softboiled.c b/src/fldeff_softboiled.c index a31678669..2a3d68e70 100644 --- a/src/fldeff_softboiled.c +++ b/src/fldeff_softboiled.c @@ -4,11 +4,12 @@ #include "string_util.h" #include "menu.h" #include "constants/songs.h" +#include "fldeff.h" -void sub_80E57E8(u8 taskId); -void sub_80E583C(u8 taskId); -void sub_80E58A0(u8 taskId); -void sub_80E5934(u8 taskId); +static void sub_80E57E8(u8 taskId); +static void sub_80E583C(u8 taskId); +static void sub_80E58A0(u8 taskId); +static void sub_80E5934(u8 taskId); extern const u8 gUnknown_84169F8[]; extern const u8 gUnknown_8416F27[]; @@ -61,13 +62,13 @@ void sub_80E5724(u8 taskId) } } -void sub_80E57E8(u8 taskId) +static void sub_80E57E8(u8 taskId) { PlaySE(SE_KAIFUKU); sub_8120760(taskId, gUnknown_203B0A0.unkA, 1, GetMonData(&gPlayerParty[gUnknown_203B0A0.unk9], MON_DATA_MAX_HP) / 5, sub_80E583C); } -void sub_80E583C(u8 taskId) +static void sub_80E583C(u8 taskId) { GetMonNickname(&gPlayerParty[gUnknown_203B0A0.unkA], gStringVar1); StringExpandPlaceholders(gStringVar4, gUnknown_8416F27); @@ -76,7 +77,7 @@ void sub_80E583C(u8 taskId) gTasks[taskId].func = sub_80E58A0; } -void sub_80E58A0(u8 taskId) +static void sub_80E58A0(u8 taskId) { if (sub_8120370() != TRUE) { @@ -91,7 +92,7 @@ void sub_80E58A0(u8 taskId) } } -void sub_80E5900(u8 taskId) +static void sub_80E5900(u8 taskId) { if (sub_8120370() != TRUE) { @@ -100,7 +101,7 @@ void sub_80E5900(u8 taskId) } } -void sub_80E5934(u8 taskId) +static void sub_80E5934(u8 taskId) { PlaySE(SE_SELECT); sub_81202F8(gUnknown_84169F8, 0); diff --git a/src/fldeff_strength.c b/src/fldeff_strength.c new file mode 100644 index 000000000..95ba95061 --- /dev/null +++ b/src/fldeff_strength.c @@ -0,0 +1,46 @@ +#include "global.h" +#include "field_player_avatar.h" +#include "field_effect.h" +#include "party_menu.h" +#include "event_data.h" +#include "script.h" +#include "fldeff.h" +#include "event_scripts.h" + +static void FldEff_UseStrength(void); +static void sub_80D08A8(void); + +bool8 SetUpFieldMove_Strength(void) +{ + if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING) || CheckObjectGraphicsInFrontOfPlayer(0x61) != TRUE) + { + return FALSE; + } + else + { + gSpecialVar_Result = GetCursorSelectionMonId(); + gFieldCallback2 = FieldCallback_PrepareFadeInFromMenu; + gPostMenuFieldCallback = FldEff_UseStrength; + return TRUE; + } +} +static void FldEff_UseStrength(void) +{ + gFieldEffectArguments[0] = GetCursorSelectionMonId(); + ScriptContext1_SetupScript(EventScript_FldEffStrength); +} + +bool8 sub_80D0860(void) +{ + u8 taskId = oei_task_add(); + gTasks[taskId].data[8] = (u32)sub_80D08A8 >> 16; + gTasks[taskId].data[9] = (u32)sub_80D08A8; + GetMonNickname(&gPlayerParty[gFieldEffectArguments[0]], gStringVar1); + return FALSE; +} + +static void sub_80D08A8(void) +{ + FieldEffectActiveListRemove(FLDEFF_USE_STRENGTH); + EnableBothScriptContexts(); +} diff --git a/src/unk_8159F40.c b/src/unk_8159F40.c index a6f6e67fc..b0147d06a 100644 --- a/src/unk_8159F40.c +++ b/src/unk_8159F40.c @@ -612,7 +612,7 @@ void sub_815A540(void) s16 x, y; PlayerGetDestCoords(&x, &y); - if (!MetatileBehavior_IsSurfable(MapGridGetMetatileBehaviorAt(x, y)) && TestPlayerAvatarFlags(0x08)) + if (!MetatileBehavior_IsSurfable(MapGridGetMetatileBehaviorAt(x, y)) && TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING)) { struct MapObject *mapObject = &gMapObjects[gPlayerAvatar.mapObjectId]; SetPlayerAvatarTransitionFlags(0x01); |