diff options
Diffstat (limited to 'include/task.h')
-rw-r--r-- | include/task.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/include/task.h b/include/task.h new file mode 100644 index 000000000..a199ba128 --- /dev/null +++ b/include/task.h @@ -0,0 +1,33 @@ +#ifndef GUARD_TASK_H +#define GUARD_TASK_H + +#define NUM_TASKS 16 + +typedef void (*TaskFunc)(u8 taskId); + +struct Task +{ + TaskFunc func; + bool8 isActive; + u8 prev; + u8 next; + u8 priority; + s16 data[16]; +}; + +extern struct Task gTasks[]; + +void ResetTasks(void); +u8 CreateTask(TaskFunc func, u8 priority); +void DestroyTask(u8 taskId); +void RunTasks(void); +void TaskDummy(u8 taskId); +void SetTaskFuncWithFollowupFunc(u8 taskId, TaskFunc func, TaskFunc followupFunc); +void SwitchTaskToFollowupFunc(u8 taskId); +bool8 FuncIsActiveTask(TaskFunc func); +u8 FindTaskIdByFunc(TaskFunc func); +u8 GetTaskCount(void); +void SetWordTaskArg(u8 taskId, u8 dataElem, u32 value); +u32 GetWordTaskArg(u8 taskId, u8 dataElem); + +#endif // GUARD_TASK_H |