diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/field/fldeff_poison.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/field/fldeff_poison.c b/src/field/fldeff_poison.c new file mode 100644 index 000000000..b751ee564 --- /dev/null +++ b/src/field/fldeff_poison.c @@ -0,0 +1,43 @@ +#include "global.h" +#include "task.h" +#include "songs.h" +#include "sound.h" + +static void Task_FieldPoisonEffect(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + + switch (data[0]) + { + case 0: + data[1] += 2; + if (data[1] > 8) + { + data[0]++; + } + break; + case 1: + data[1] -= 2; + if (data[1] == 0) + { + data[0]++; + } + break; + case 2: + DestroyTask(taskId); + return; + } + + REG_MOSAIC = (data[1] << 4) | data[1]; +} + +void DoFieldPoisonEffect() +{ + PlaySE(SE_DOKU); + CreateTask(Task_FieldPoisonEffect, 80); +} + +bool8 FieldPoisonEffectIsRunning(void) +{ + return FuncIsActiveTask(Task_FieldPoisonEffect); +} |