diff options
Diffstat (limited to 'src/fldeff_poison.c')
-rw-r--r-- | src/fldeff_poison.c | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/fldeff_poison.c b/src/fldeff_poison.c new file mode 100644 index 000000000..98f54b4d4 --- /dev/null +++ b/src/fldeff_poison.c @@ -0,0 +1,39 @@ +#include "global.h" +#include "task.h" +#include "bg.h" +#include "sound.h" +#include "constants/songs.h" + +static void Task_FieldPoisonEffect(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + + switch (data[0]) + { + case 0: + data[1] += 1; + if (data[1] > 4) + data[0]++; + break; + case 1: + data[1] -= 1; + if (data[1] == 0) + data[0]++; + break; + case 2: + DestroyTask(taskId); + return; + } + AdjustBgMosaic((u8)(((u8)data[1] << 4) | (u8)data[1]), BG_MOSAIC_SET); +} + +void FldEffPoison_Start(void) +{ + PlaySE(SE_DAUGI); + CreateTask(Task_FieldPoisonEffect, 80); +} + +bool32 FldEffPoison_IsActive(void) +{ + return FuncIsActiveTask(Task_FieldPoisonEffect); +} |