summaryrefslogtreecommitdiff
path: root/src/fldeff_poison.c
blob: 62c1829878eada610b203a4c17ad64922b40fe97 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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_FIELD_POISON);
    CreateTask(Task_FieldPoisonEffect, 80);
}

bool32 FldeffPoison_IsActive(void)
{
    return FuncIsActiveTask(Task_FieldPoisonEffect);
}