diff options
author | Marcus Huderle <huderlem@gmail.com> | 2018-03-15 06:35:40 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-03-15 06:35:40 -0700 |
commit | a4988e4a997ae17ff686b8c8b9d62cd9df3c18aa (patch) | |
tree | 8ad23a98fef7efaf4a4ca01d3cf440b39e9009c4 /src/fldeff_sweetscent.c | |
parent | 8ef4e1785212901e77bf10a90138c9f69fcb0d8b (diff) | |
parent | 48eee3aa1efff48045b890796a5e7e795604a679 (diff) |
Merge pull request #574 from camthesaxman/reorganize
remove subdirectories
Diffstat (limited to 'src/fldeff_sweetscent.c')
-rw-r--r-- | src/fldeff_sweetscent.c | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/src/fldeff_sweetscent.c b/src/fldeff_sweetscent.c new file mode 100644 index 000000000..b9dbf619d --- /dev/null +++ b/src/fldeff_sweetscent.c @@ -0,0 +1,88 @@ +#include "global.h" +#include "field_effect.h" +#include "field_player_avatar.h" +#include "palette.h" +#include "pokemon_menu.h" +#include "rom6.h" +#include "script.h" +#include "sound.h" +#include "sprite.h" +#include "task.h" +#include "wild_encounter.h" + +static void sub_812BFD4(void); +static void sub_812C01C(void); +static void sub_812C084(u8); +static void sub_812C118(u8); + +extern u8 gLastFieldPokeMenuOpened; +extern void (*gFieldCallback)(void); +extern void (*gUnknown_03005CE4)(void); + +extern u8 SweetScentNothingHereScript[]; + +bool8 SetUpFieldMove_SweetScent(void) +{ + gFieldCallback = FieldCallback_Teleport; + gUnknown_03005CE4 = sub_812BFD4; + return TRUE; +} + +static void sub_812BFD4(void) +{ + FieldEffectStart(FLDEFF_SWEET_SCENT); + gFieldEffectArguments[0] = gLastFieldPokeMenuOpened; +} + +bool8 FldEff_SweetScent() +{ + u8 taskId = oei_task_add(); + + gTasks[taskId].data[8] = (u32)sub_812C01C >> 16; + gTasks[taskId].data[9] = (u32)sub_812C01C; + return FALSE; +} + +static void sub_812C01C(void) +{ + u8 taskId; + + PlaySE(0xEC); + BeginNormalPaletteFade(~(1 << (gSprites[GetPlayerAvatarObjectId()].oam.paletteNum + 16)), 4, 0, 8, 0x1F); + taskId = CreateTask(sub_812C084, 0); + gTasks[taskId].data[0] = 0; + FieldEffectActiveListRemove(FLDEFF_SWEET_SCENT); +} + +static void sub_812C084(u8 taskId) +{ + if (!gPaletteFade.active) + { + if (gTasks[taskId].data[0] == 64) + { + gTasks[taskId].data[0] = 0; + if (SweetScentWildEncounter() == TRUE) + { + DestroyTask(taskId); + } + else + { + gTasks[taskId].func = sub_812C118; + BeginNormalPaletteFade(~(1 << (gSprites[GetPlayerAvatarObjectId()].oam.paletteNum + 16)), 4, 8, 0, 0x1F); + } + } + else + { + gTasks[taskId].data[0]++; + } + } +} + +static void sub_812C118(u8 taskId) +{ + if (!gPaletteFade.active) + { + ScriptContext1_SetupScript(SweetScentNothingHereScript); + DestroyTask(taskId); + } +} |