diff options
Diffstat (limited to 'src/fldeff_poison.c')
-rw-r--r-- | src/fldeff_poison.c | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/fldeff_poison.c b/src/fldeff_poison.c new file mode 100644 index 000000000..52afc2516 --- /dev/null +++ b/src/fldeff_poison.c @@ -0,0 +1,44 @@ +#include "global.h" +#include "fldeff_poison.h" +#include "task.h" +#include "constants/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 FldeffPoison_Start(void) +{ + PlaySE(SE_DOKU); + CreateTask(Task_FieldPoisonEffect, 80); +} + +bool32 FldeffPoison_IsActive(void) +{ + return FuncIsActiveTask(Task_FieldPoisonEffect); +} |